orpc-fn 0.8.0 → 0.9.0

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 (144) hide show
  1. package/README.md +66 -28
  2. package/dist/assemble-procedure.d.ts.map +1 -1
  3. package/dist/assemble-procedure.js +3 -1
  4. package/dist/assemble-procedure.js.map +1 -1
  5. package/dist/client.d.ts +13 -3
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +21 -1
  8. package/dist/client.js.map +1 -1
  9. package/dist/create-fn.d.ts +63 -5
  10. package/dist/create-fn.d.ts.map +1 -1
  11. package/dist/create-fn.js +45 -16
  12. package/dist/create-fn.js.map +1 -1
  13. package/dist/expected-client-error.d.ts +6 -0
  14. package/dist/expected-client-error.d.ts.map +1 -1
  15. package/dist/expected-client-error.js +16 -0
  16. package/dist/expected-client-error.js.map +1 -1
  17. package/dist/hono.d.ts +44 -22
  18. package/dist/hono.d.ts.map +1 -1
  19. package/dist/hono.js +51 -20
  20. package/dist/hono.js.map +1 -1
  21. package/dist/index.d.ts +1 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +0 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/issues.d.ts +12 -0
  26. package/dist/issues.d.ts.map +1 -0
  27. package/dist/issues.js +22 -0
  28. package/dist/issues.js.map +1 -0
  29. package/dist/json-schema.d.ts +3 -6
  30. package/dist/json-schema.d.ts.map +1 -1
  31. package/dist/json-schema.js +12 -7
  32. package/dist/json-schema.js.map +1 -1
  33. package/dist/live/codec.d.ts +2 -0
  34. package/dist/live/codec.d.ts.map +1 -1
  35. package/dist/live/codec.js +21 -16
  36. package/dist/live/codec.js.map +1 -1
  37. package/dist/live/fn-live.d.ts +6 -19
  38. package/dist/live/fn-live.d.ts.map +1 -1
  39. package/dist/live/fn-live.js +15 -23
  40. package/dist/live/fn-live.js.map +1 -1
  41. package/dist/live/index.d.ts +2 -2
  42. package/dist/live/index.d.ts.map +1 -1
  43. package/dist/live/index.js +1 -1
  44. package/dist/live/index.js.map +1 -1
  45. package/dist/live/memory.d.ts +11 -1
  46. package/dist/live/memory.d.ts.map +1 -1
  47. package/dist/live/memory.js +14 -1
  48. package/dist/live/memory.js.map +1 -1
  49. package/dist/live/pub-sub.d.ts +50 -8
  50. package/dist/live/pub-sub.d.ts.map +1 -1
  51. package/dist/live/pub-sub.js +79 -26
  52. package/dist/live/pub-sub.js.map +1 -1
  53. package/dist/live/redis-bun.d.ts +6 -1
  54. package/dist/live/redis-bun.d.ts.map +1 -1
  55. package/dist/live/redis-bun.js +10 -1
  56. package/dist/live/redis-bun.js.map +1 -1
  57. package/dist/live/scoped-change-bus.d.ts +3 -1
  58. package/dist/live/scoped-change-bus.d.ts.map +1 -1
  59. package/dist/live/scoped-change-bus.js +3 -0
  60. package/dist/live/scoped-change-bus.js.map +1 -1
  61. package/dist/mastra.d.ts +8 -3
  62. package/dist/mastra.d.ts.map +1 -1
  63. package/dist/mastra.js +8 -1
  64. package/dist/mastra.js.map +1 -1
  65. package/dist/mcp/core.d.ts +31 -14
  66. package/dist/mcp/core.d.ts.map +1 -1
  67. package/dist/mcp/core.js +39 -20
  68. package/dist/mcp/core.js.map +1 -1
  69. package/dist/mcp/sdk.d.ts +6 -2
  70. package/dist/mcp/sdk.d.ts.map +1 -1
  71. package/dist/mcp/sdk.js +9 -3
  72. package/dist/mcp/sdk.js.map +1 -1
  73. package/dist/mcp/server.d.ts +6 -2
  74. package/dist/mcp/server.d.ts.map +1 -1
  75. package/dist/mcp/server.js +9 -3
  76. package/dist/mcp/server.js.map +1 -1
  77. package/dist/mcp.d.ts +3 -7
  78. package/dist/mcp.d.ts.map +1 -1
  79. package/dist/mcp.js +4 -6
  80. package/dist/mcp.js.map +1 -1
  81. package/dist/meta.d.ts +14 -2
  82. package/dist/meta.d.ts.map +1 -1
  83. package/dist/meta.js +6 -2
  84. package/dist/meta.js.map +1 -1
  85. package/dist/otel.d.ts +16 -4
  86. package/dist/otel.d.ts.map +1 -1
  87. package/dist/otel.js +40 -10
  88. package/dist/otel.js.map +1 -1
  89. package/dist/react.d.ts +6 -1
  90. package/dist/react.d.ts.map +1 -1
  91. package/dist/react.js +5 -1
  92. package/dist/react.js.map +1 -1
  93. package/dist/route-options.d.ts.map +1 -1
  94. package/dist/route-options.js +4 -0
  95. package/dist/route-options.js.map +1 -1
  96. package/dist/stream-call.d.ts +15 -0
  97. package/dist/stream-call.d.ts.map +1 -0
  98. package/dist/stream-call.js +13 -0
  99. package/dist/stream-call.js.map +1 -0
  100. package/dist/timing.d.ts +2 -0
  101. package/dist/timing.d.ts.map +1 -1
  102. package/dist/timing.js +2 -0
  103. package/dist/timing.js.map +1 -1
  104. package/dist/tool-errors.d.ts +24 -0
  105. package/dist/tool-errors.d.ts.map +1 -0
  106. package/dist/tool-errors.js +36 -0
  107. package/dist/tool-errors.js.map +1 -0
  108. package/dist/types.d.ts +2 -0
  109. package/dist/types.d.ts.map +1 -1
  110. package/dist/types.js.map +1 -1
  111. package/dist/vue.d.ts +47 -4
  112. package/dist/vue.d.ts.map +1 -1
  113. package/dist/vue.js +39 -9
  114. package/dist/vue.js.map +1 -1
  115. package/package.json +1 -1
  116. package/src/assemble-procedure.ts +3 -1
  117. package/src/client.ts +26 -2
  118. package/src/create-fn.ts +149 -19
  119. package/src/expected-client-error.ts +19 -0
  120. package/src/hono.ts +120 -41
  121. package/src/index.ts +3 -2
  122. package/src/issues.ts +35 -0
  123. package/src/json-schema.ts +16 -10
  124. package/src/live/codec.ts +21 -19
  125. package/src/live/fn-live.ts +18 -36
  126. package/src/live/index.ts +2 -2
  127. package/src/live/memory.ts +22 -1
  128. package/src/live/pub-sub.ts +142 -37
  129. package/src/live/redis-bun.ts +23 -2
  130. package/src/live/scoped-change-bus.ts +10 -1
  131. package/src/mastra.ts +10 -4
  132. package/src/mcp/core.ts +76 -29
  133. package/src/mcp/sdk.ts +27 -2
  134. package/src/mcp/server.ts +27 -2
  135. package/src/mcp.ts +5 -16
  136. package/src/meta.ts +28 -4
  137. package/src/otel.ts +41 -9
  138. package/src/react.ts +10 -3
  139. package/src/route-options.ts +8 -0
  140. package/src/stream-call.ts +15 -0
  141. package/src/timing.ts +3 -0
  142. package/src/tool-errors.ts +52 -0
  143. package/src/types.ts +2 -0
  144. package/src/vue.ts +92 -19
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Client-context key the `orpc-fn/vue` and `orpc-fn/react` stream helpers set,
3
+ * so `createRpcLink` keeps the call out of a batch without a stream manifest.
4
+ * Shared across package copies.
5
+ */
6
+ export declare const STREAM_CALL: unique symbol;
7
+ /**
8
+ * Pass as the client context of a stream opened by hand:
9
+ * `client.metrics.run(input, { signal, context: streamCall })`.
10
+ */
11
+ export declare const streamCall: {
12
+ readonly [STREAM_CALL]: true;
13
+ };
14
+ export declare const isStreamCall: (context: object) => boolean;
15
+ //# sourceMappingURL=stream-call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-call.d.ts","sourceRoot":"","sources":["../src/stream-call.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,MAAyC,CAAA;AAE1E;;;GAGG;AACH,eAAO,MAAM,UAAU;;CAAmC,CAAA;AAE1D,eAAO,MAAM,YAAY,YAAa,MAAM,YACmB,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Client-context key the `orpc-fn/vue` and `orpc-fn/react` stream helpers set,
3
+ * so `createRpcLink` keeps the call out of a batch without a stream manifest.
4
+ * Shared across package copies.
5
+ */
6
+ export const STREAM_CALL = Symbol.for('orpc-fn.streamCall');
7
+ /**
8
+ * Pass as the client context of a stream opened by hand:
9
+ * `client.metrics.run(input, { signal, context: streamCall })`.
10
+ */
11
+ export const streamCall = { [STREAM_CALL]: true };
12
+ export const isStreamCall = (context) => context[STREAM_CALL] === true;
13
+ //# sourceMappingURL=stream-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-call.js","sourceRoot":"","sources":["../src/stream-call.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAkB,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAE1E;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAW,CAAA;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CAC9C,OAAuC,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA","sourcesContent":["/**\n * Client-context key the `orpc-fn/vue` and `orpc-fn/react` stream helpers set,\n * so `createRpcLink` keeps the call out of a batch without a stream manifest.\n * Shared across package copies.\n */\nexport const STREAM_CALL: unique symbol = Symbol.for('orpc-fn.streamCall')\n\n/**\n * Pass as the client context of a stream opened by hand:\n * `client.metrics.run(input, { signal, context: streamCall })`.\n */\nexport const streamCall = { [STREAM_CALL]: true } as const\n\nexport const isStreamCall = (context: object) =>\n\t(context as { [STREAM_CALL]?: unknown })[STREAM_CALL] === true\n"]}
package/dist/timing.d.ts CHANGED
@@ -5,4 +5,6 @@ export type InvocationTiming = {
5
5
  calls: number;
6
6
  };
7
7
  export declare const RAW_INPUT: unique symbol;
8
+ /** Extras a `createTestCall` replaces, carried through nested calls. */
9
+ export declare const EXTRAS_OVERRIDE: unique symbol;
8
10
  //# sourceMappingURL=timing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../src/timing.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,eAAO,MAAM,cAAc,eAAkC,CAAA;AAC7D,MAAM,MAAM,gBAAgB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAErE,eAAO,MAAM,SAAS,eAA6B,CAAA"}
1
+ {"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../src/timing.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,eAAO,MAAM,cAAc,eAAkC,CAAA;AAC7D,MAAM,MAAM,gBAAgB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAErE,eAAO,MAAM,SAAS,eAA6B,CAAA;AAEnD,wEAAwE;AACxE,eAAO,MAAM,eAAe,eAAmC,CAAA"}
package/dist/timing.js CHANGED
@@ -1,4 +1,6 @@
1
1
  /** Internal bridge shared by the execution middleware and HTTP adapters. */
2
2
  export const REQUEST_TIMING = Symbol('orpc-fn.requestTiming');
3
3
  export const RAW_INPUT = Symbol('orpc-fn.rawInput');
4
+ /** Extras a `createTestCall` replaces, carried through nested calls. */
5
+ export const EXTRAS_OVERRIDE = Symbol('orpc-fn.extrasOverride');
4
6
  //# sourceMappingURL=timing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timing.js","sourceRoot":"","sources":["../src/timing.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAA;AAG7D,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA","sourcesContent":["/** Internal bridge shared by the execution middleware and HTTP adapters. */\nexport const REQUEST_TIMING = Symbol('orpc-fn.requestTiming')\nexport type InvocationTiming = { procedureMs: number; calls: number }\n\nexport const RAW_INPUT = Symbol('orpc-fn.rawInput')\n"]}
1
+ {"version":3,"file":"timing.js","sourceRoot":"","sources":["../src/timing.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAA;AAG7D,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAEnD,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAA","sourcesContent":["/** Internal bridge shared by the execution middleware and HTTP adapters. */\nexport const REQUEST_TIMING = Symbol('orpc-fn.requestTiming')\nexport type InvocationTiming = { procedureMs: number; calls: number }\n\nexport const RAW_INPUT = Symbol('orpc-fn.rawInput')\n\n/** Extras a `createTestCall` replaces, carried through nested calls. */\nexport const EXTRAS_OVERRIDE = Symbol('orpc-fn.extrasOverride')\n"]}
@@ -0,0 +1,24 @@
1
+ /** How a tool adapter turns a failed call into text for the model. */
2
+ export type ToolErrorOptions = {
3
+ /**
4
+ * Errors the model may read. Default: `isExpectedClientError` (4xx
5
+ * `ORPCError`, aborts, and whatever the factory's `isExpectedError` accepted).
6
+ */
7
+ isExpectedError?: (error: unknown) => boolean;
8
+ /** Unexpected errors, whose text the model does not see. Report them here. */
9
+ onError?: (error: unknown, info: {
10
+ tool: string;
11
+ }) => void;
12
+ /** Replace the text the model reads. */
13
+ formatError?: (error: unknown, info: {
14
+ tool: string;
15
+ expected: boolean;
16
+ }) => string;
17
+ };
18
+ /**
19
+ * An expected error reads `CODE: message`, then one `path: message` line per
20
+ * validation issue, so the model can fix its arguments. Anything else reads
21
+ * as a fixed sentence: its text may hold internals and goes to `onError`.
22
+ */
23
+ export declare function toolErrorText(error: unknown, tool: string, options: ToolErrorOptions): string;
24
+ //# sourceMappingURL=tool-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-errors.d.ts","sourceRoot":"","sources":["../src/tool-errors.ts"],"names":[],"mappings":"AAIA,sEAAsE;AACtE,MAAM,MAAM,gBAAgB,GAAG;IAC9B;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;IAC7C,8EAA8E;IAC9E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAC1D,wCAAwC;IACxC,WAAW,CAAC,EAAE,CACb,KAAK,EAAE,OAAO,EACd,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KACrC,MAAM,CAAA;CACX,CAAA;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,gBAAgB,GACvB,MAAM,CAsBR"}
@@ -0,0 +1,36 @@
1
+ import { isExpectedClientError } from './expected-client-error.js';
2
+ import { formatIssue, issuesOf } from './issues.js';
3
+ import { errorCodeOf, errorMessageOf } from './otel.js';
4
+ /**
5
+ * An expected error reads `CODE: message`, then one `path: message` line per
6
+ * validation issue, so the model can fix its arguments. Anything else reads
7
+ * as a fixed sentence: its text may hold internals and goes to `onError`.
8
+ */
9
+ export function toolErrorText(error, tool, options) {
10
+ let expected = false;
11
+ try {
12
+ expected = (options.isExpectedError ?? isExpectedClientError)(error);
13
+ }
14
+ catch {
15
+ /* A failing classifier hides the error. */
16
+ }
17
+ if (!expected) {
18
+ try {
19
+ options.onError?.(error, { tool });
20
+ }
21
+ catch {
22
+ /* Reporting cannot change the tool's answer. */
23
+ }
24
+ }
25
+ if (options.formatError)
26
+ return options.formatError(error, { tool, expected });
27
+ if (!expected)
28
+ return `${tool} failed unexpectedly. The error was reported.`;
29
+ const code = errorCodeOf(error);
30
+ const message = errorMessageOf(error);
31
+ return [
32
+ code ? `${code}: ${message}` : message,
33
+ ...issuesOf(error).map(formatIssue)
34
+ ].join('\n');
35
+ }
36
+ //# sourceMappingURL=tool-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-errors.js","sourceRoot":"","sources":["../src/tool-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAkBvD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC5B,KAAc,EACd,IAAY,EACZ,OAAyB;IAEzB,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,CAAC;QACJ,QAAQ,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAA;IACrE,CAAC;IAAC,MAAM,CAAC;QACR,2CAA2C;IAC5C,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,IAAI,CAAC;YACJ,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QACnC,CAAC;QAAC,MAAM,CAAC;YACR,gDAAgD;QACjD,CAAC;IACF,CAAC;IACD,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC9E,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,IAAI,+CAA+C,CAAA;IAC5E,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAC/B,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IACrC,OAAO;QACN,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO;QACtC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;KACnC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACb,CAAC","sourcesContent":["import { isExpectedClientError } from './expected-client-error.js'\nimport { formatIssue, issuesOf } from './issues.js'\nimport { errorCodeOf, errorMessageOf } from './otel.js'\n\n/** How a tool adapter turns a failed call into text for the model. */\nexport type ToolErrorOptions = {\n\t/**\n\t * Errors the model may read. Default: `isExpectedClientError` (4xx\n\t * `ORPCError`, aborts, and whatever the factory's `isExpectedError` accepted).\n\t */\n\tisExpectedError?: (error: unknown) => boolean\n\t/** Unexpected errors, whose text the model does not see. Report them here. */\n\tonError?: (error: unknown, info: { tool: string }) => void\n\t/** Replace the text the model reads. */\n\tformatError?: (\n\t\terror: unknown,\n\t\tinfo: { tool: string; expected: boolean }\n\t) => string\n}\n\n/**\n * An expected error reads `CODE: message`, then one `path: message` line per\n * validation issue, so the model can fix its arguments. Anything else reads\n * as a fixed sentence: its text may hold internals and goes to `onError`.\n */\nexport function toolErrorText(\n\terror: unknown,\n\ttool: string,\n\toptions: ToolErrorOptions\n): string {\n\tlet expected = false\n\ttry {\n\t\texpected = (options.isExpectedError ?? isExpectedClientError)(error)\n\t} catch {\n\t\t/* A failing classifier hides the error. */\n\t}\n\tif (!expected) {\n\t\ttry {\n\t\t\toptions.onError?.(error, { tool })\n\t\t} catch {\n\t\t\t/* Reporting cannot change the tool's answer. */\n\t\t}\n\t}\n\tif (options.formatError) return options.formatError(error, { tool, expected })\n\tif (!expected) return `${tool} failed unexpectedly. The error was reported.`\n\tconst code = errorCodeOf(error)\n\tconst message = errorMessageOf(error)\n\treturn [\n\t\tcode ? `${code}: ${message}` : message,\n\t\t...issuesOf(error).map(formatIssue)\n\t].join('\\n')\n}\n"]}
package/dist/types.d.ts CHANGED
@@ -42,6 +42,8 @@ export type BuildProcedure = (options: {
42
42
  procedure: string | undefined;
43
43
  route: Record<string, unknown>;
44
44
  meta: Record<string, unknown>;
45
+ guards?: Record<string, unknown>;
46
+ dynamicGuards?: readonly string[];
45
47
  input?: AnySchema | undefined;
46
48
  output?: AnySchema | undefined;
47
49
  stream?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAkFA,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,MAAM;IACN,QAAQ;IACR,SAAS;IACT,aAAa;IACb,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,gBAAgB;IAChB,iBAAiB;IACjB,MAAM;CACsC,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IACnC,GAAG,iBAAiB;IACpB,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,SAAS;IACT,MAAM;IACN,aAAa;IACb,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,gBAAgB;CACP,CAAA","sourcesContent":["import type {\n\tAnySchema,\n\tErrorMap,\n\tInferSchemaInput,\n\tInferSchemaOutput,\n\tMergedErrorMap,\n\tSchema\n} from '@orpc/contract'\nimport type {\n\tAnyProcedure,\n\tDecoratedProcedure,\n\tProcedure,\n\tRoute\n} from '@orpc/server'\nimport type { createORPCErrorConstructorMap } from '@orpc/server'\nimport type { StoredFnMeta } from './meta.js'\nimport type { NativeErrors, NativeMeta } from './compatibility.js'\nimport type { BoundCall } from './bound-call.js'\nimport type { FnLogger } from './logger.js'\nimport type { SpanLike } from './otel.js'\n\nexport type MaybePromise<T> = T | Promise<T>\n\n/**\n * An oRPC builder without input or output schema: `os`, `os.$context<T>()`,\n * `os.use(...)`. A schema set on the builder is rejected by `createFn`; set it\n * on the route instead.\n */\n/* biome-ignore-start lint/suspicious/noExplicitAny: matches every builder's generic methods */\nexport type BuilderLike = {\n\troute(route: any): unknown\n\tmeta(meta: any): unknown\n\tinput(schema: any): unknown\n\toutput(schema: any): unknown\n\thandler(handler: any): Procedure<any, any, any, any, any, any>\n}\n/* biome-ignore-end lint/suspicious/noExplicitAny: matches every builder's generic methods */\n\n/** Input a procedure is called with (before its input schema runs). */\nexport type ProcedureInput<T> =\n\tT extends Procedure<\n\t\tinfer _TInitial,\n\t\tinfer _TCurrent,\n\t\tinfer TInputSchema extends AnySchema,\n\t\tinfer _TOut,\n\t\tinfer _TErrors,\n\t\tinfer _TMeta\n\t>\n\t\t? InferSchemaInput<TInputSchema>\n\t\t: unknown\n\n/** What a procedure resolves to (after its output schema runs). */\nexport type ProcedureOutput<T> =\n\tT extends Procedure<\n\t\tinfer _TInitial,\n\t\tinfer _TCurrent,\n\t\tinfer _TIn,\n\t\tinfer TOutputSchema extends AnySchema,\n\t\tinfer _TErrors,\n\t\tinfer _TMeta\n\t>\n\t\t? InferSchemaOutput<TOutputSchema>\n\t\t: unknown\n\n/** Context a procedure must be called with. */\nexport type ProcedureContext<T> =\n\tT extends Procedure<\n\t\tinfer TContext,\n\t\tinfer _TCurrent,\n\t\tinfer _TIn,\n\t\tinfer _TOut,\n\t\tinfer _TErrors,\n\t\tinfer _TMeta\n\t>\n\t\t? TContext\n\t\t: never\n\n/** `Omit` that keeps each member of a union (handler params narrow by discriminant). */\nexport type DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n\t? Omit<T, K>\n\t: never\n\n/** `fn()` options passed to oRPC's `.route()`; `RouteConfig` is derived from it. */\nexport const ROUTE_OPTION_KEYS = [\n\t'path',\n\t'method',\n\t'summary',\n\t'description',\n\t'deprecated',\n\t'successStatus',\n\t'successDescription',\n\t'inputStructure',\n\t'outputStructure',\n\t'tags'\n] as const satisfies readonly (keyof Route)[]\n\n/**\n * `fn()` option names owned by the route itself. Guard keys must not\n * reuse them: such an option would be read as the route option and the guard\n * would never run.\n */\nexport const RESERVED_OPTION_KEYS = [\n\t...ROUTE_OPTION_KEYS,\n\t'name',\n\t'procedure',\n\t'input',\n\t'output',\n\t'handler',\n\t'live',\n\t'operationId',\n\t'meta',\n\t'stream',\n\t'errors',\n\t'guardResolvers'\n] as const\n\nexport type ReservedOptionKey = (typeof RESERVED_OPTION_KEYS)[number]\n\n/** @internal Builds one route from a selected native procedure builder. */\nexport type BuildProcedure = (options: {\n\tname: string\n\tprocedure: string | undefined\n\troute: Record<string, unknown>\n\tmeta: Record<string, unknown>\n\tinput?: AnySchema | undefined\n\toutput?: AnySchema | undefined\n\tstream?: boolean\n\terrors?: ErrorMap\n\thandler: (options: {\n\t\tinput: unknown\n\t\tcontext: Record<string | symbol, unknown>\n\t\tsignal?: AbortSignal\n\t\tlastEventId?: string\n\t\terrors: ReturnType<typeof createORPCErrorConstructorMap>\n\t}) => unknown\n}) => AnyProcedure\n\n/** Turns every key of `T` found in `K` into a readable type error. */\nexport type RejectKeys<T, K extends PropertyKey, TMessage extends string> = {\n\t[P in Extract<keyof T, K>]: TMessage\n}\n\n/** Params every handler receives; extras may not reuse these names. */\ntype HandlerParamKey =\n\t| 'input'\n\t| 'context'\n\t| 'call'\n\t| 'signal'\n\t| 'span'\n\t| 'logger'\n\t| 'errors'\n\t| 'lastEventId'\n\n/**\n * Handler extras must have known keys: an index signature would claim every\n * handler param. Intersected into `createFn`'s options to reject it.\n */\nexport type FiniteExtras<T> = T extends unknown\n\t? string extends keyof T\n\t\t? { extras: 'orpc-fn: extras need known keys, not an index signature' }\n\t\t: number extends keyof T\n\t\t\t? { extras: 'orpc-fn: extras need known keys, not an index signature' }\n\t\t\t: Extract<keyof T, HandlerParamKey> extends never\n\t\t\t\t? unknown\n\t\t\t\t: { extras: 'orpc-fn: extras cannot shadow handler parameters' }\n\t: never\n\ntype ProcedureOf<TBuilder> = TBuilder extends {\n\thandler(handler: never): infer TProcedure\n}\n\t? TProcedure\n\t: never\n\n/** Context a route built from this builder is called with. */\nexport type InitialContextOf<TBuilder> = ProcedureContext<ProcedureOf<TBuilder>>\n\n/** Context the handler sees, after the builder's middleware. */\nexport type CurrentContextOf<TBuilder> =\n\tProcedureOf<TBuilder> extends Procedure<\n\t\tinfer _TInitial,\n\t\tinfer TContext,\n\t\tinfer _TIn,\n\t\tinfer _TOut,\n\t\tinfer _TErrors,\n\t\tinfer _TMeta\n\t>\n\t\t? TContext\n\t\t: never\n\nexport type ErrorMapOf<TBuilder> = NativeErrors<ProcedureOf<TBuilder>>\ntype MetaOf<TBuilder> = NativeMeta<ProcedureOf<TBuilder>>\n\n/**\n * Everything `createFn` inferred from its options. Route types read from it;\n * apps rarely spell it out.\n */\nexport type FnDefinition = {\n\tprocedures: Record<string, BuilderLike>\n\tdefault: string\n\textras: object\n\textrasByProcedure?: Partial<Record<string, object>>\n\tguards: object\n\tmeta: object\n\ttag: string\n\tspan: SpanLike\n\tlogger: FnLogger\n}\n\nexport type ProcedureKey<TDef extends FnDefinition> = keyof TDef['procedures'] &\n\tstring\n\n/** Context the handler of a `procedure: TKey` route receives. */\nexport type FnContext<\n\tTDef extends FnDefinition,\n\tTKey extends ProcedureKey<TDef>\n> = CurrentContextOf<TDef['procedures'][TKey]>\n\n/** Union of every procedure's handler context: what guards and extras see. */\nexport type AnyFnContext<TDef extends FnDefinition> = {\n\t[K in ProcedureKey<TDef>]: FnContext<TDef, K>\n}[ProcedureKey<TDef>]\n\nexport type GuardParams<TContext, TMeta> = {\n\tcontext: TContext\n\tinput: unknown\n\t/** Route name (operationId). */\n\tname: string\n\t/** Procedures key the route was built from. */\n\tprocedure: string\n\tmeta: Partial<TMeta>\n\tsignal: AbortSignal | undefined\n}\n\n/**\n * A check run before the handler. Its first parameter becomes an option on\n * `fn({...})`; the guard runs only on routes that set it. Throw (usually an\n * `ORPCError`) to refuse the call.\n */\n/* biome-ignore-start lint/suspicious/noConfusingVoidType: union prevents accidental value returns while accepting assertion-style guards */\nexport type Guard<TValue, TParams> = (\n\tvalue: TValue,\n\tparams: TParams\n) => MaybePromise<void | boolean>\n/* biome-ignore-end lint/suspicious/noConfusingVoidType: assertion-style guards */\n\nexport type GuardOptions<TGuards> = {\n\t[K in keyof TGuards]?: TGuards[K] extends (\n\t\tvalue: infer TValue,\n\t\tparams: never\n\t) => unknown\n\t\t? TValue\n\t\t: never\n}\n\n/** Match object spread: scoped extras replace shared keys, preserving unions. */\ntype MergeExtras<TShared, TScoped> = TShared extends unknown\n\t? TScoped extends unknown\n\t\t? Omit<TShared, keyof TScoped> & TScoped\n\t\t: never\n\t: never\n\nexport type HandlerParams<\n\tTDef extends FnDefinition,\n\tTInput,\n\tTKey extends ProcedureKey<TDef>,\n\tTErrors extends ErrorMap = Record<never, never>\n> = DistributiveOmit<\n\tMergeExtras<\n\t\tTDef['extras'],\n\t\tTDef extends { extrasByProcedure: infer E }\n\t\t\t? TKey extends keyof E\n\t\t\t\t? E[TKey]\n\t\t\t\t: object\n\t\t\t: object\n\t>,\n\tHandlerParamKey\n> & {\n\tinput: TInput\n\tcontext: FnContext<TDef, TKey>\n\t/** Calls another procedure with this context and signal, in a child span. */\n\tcall: BoundCall<FnContext<TDef, TKey>>\n\t/** Cancellation is inherited by nested calls; pass to interruptible I/O. */\n\tsignal: AbortSignal | undefined\n\t/** Active OpenTelemetry span, undefined when `createFn({ otel })` is not set. */\n\tspan: TDef['span'] | undefined\n\tlogger: TDef['logger']\n\tlastEventId: string | undefined\n\terrors: ReturnType<\n\t\ttypeof createORPCErrorConstructorMap<\n\t\t\tMergedErrorMap<ErrorMapOf<TDef['procedures'][TKey]>, TErrors>\n\t\t>\n\t>\n}\n\n/** Route options shared by every `fn()` overload. */\nexport type RouteConfig<TTag extends string = string> = Pick<\n\tRoute,\n\tExclude<(typeof ROUTE_OPTION_KEYS)[number], 'tags'>\n> & {\n\t/** Required. Becomes the OpenAPI operationId and the span name (e.g. 'user.create'). */\n\tname: string\n\ttags?: TTag[]\n}\n\nexport type FnRouteOptions<\n\tTDef extends FnDefinition,\n\tTKey extends ProcedureKey<TDef>,\n\tTInput = unknown,\n\tTErrors extends ErrorMap = Record<never, never>\n> = RouteConfig<TDef['tag']> &\n\tGuardOptions<TDef['guards']> & {\n\t\tmeta?: TDef['meta']\n\t\tstream?: boolean\n\t\terrors?: TErrors\n\t\tguardResolvers?: {\n\t\t\t[K in keyof TDef['guards']]?: (params: {\n\t\t\t\tinput: TInput\n\t\t\t\tcontext: FnContext<TDef, TKey>\n\t\t\t\tsignal: AbortSignal | undefined\n\t\t\t}) => MaybePromise<GuardOptions<TDef['guards']>[K]>\n\t\t}\n\t} & ProcedureOption<TDef, TKey>\n\n/**\n * Which `createFn({ procedures })` builder a route uses. Optional when\n * `createFn` has a `default`; required on every route when it has none.\n */\nexport type ProcedureOption<\n\tTDef extends FnDefinition,\n\tTKey extends ProcedureKey<TDef>\n> = [TDef['default']] extends [never]\n\t? { procedure: TKey }\n\t: { procedure?: TKey }\n\nexport type FnProcedure<\n\tTDef extends FnDefinition,\n\tTKey extends ProcedureKey<TDef>,\n\tTInputSchema extends Schema<unknown, unknown>,\n\tTOutputSchema extends Schema<unknown, unknown>,\n\tTErrors extends ErrorMap = Record<never, never>\n> = DecoratedProcedure<\n\tInitialContextOf<TDef['procedures'][TKey]>,\n\tFnContext<TDef, TKey>,\n\tTInputSchema,\n\tTOutputSchema,\n\tMergedErrorMap<ErrorMapOf<TDef['procedures'][TKey]>, TErrors>,\n\tMetaOf<TDef['procedures'][TKey]> & {\n\t\t'orpc-fn': StoredFnMeta<TDef['meta'], TKey>\n\t}\n>\n\ntype InputOf<T> = [T] extends [AnySchema] ? InferSchemaOutput<T> : unknown\ntype ReturnOf<TOut, TReturn> = [TOut] extends [AnySchema]\n\t? InferSchemaInput<TOut>\n\t: TReturn\n\n/** `fn()`: four overloads for input/output schema × inferred. */\nexport interface Fn<TDef extends FnDefinition> {\n\t// 1. With input + output schema\n\t<\n\t\tTInput extends AnySchema,\n\t\tTOut extends AnySchema,\n\t\tTKey extends ProcedureKey<TDef> = TDef['default'],\n\t\tTErrors extends ErrorMap = Record<never, never>\n\t>(\n\t\toptions: {\n\t\t\tinput: TInput\n\t\t\toutput: TOut\n\t\t\t// The output schema parses what the handler returns: its input type.\n\t\t\thandler: (\n\t\t\t\tparams: HandlerParams<\n\t\t\t\t\tTDef,\n\t\t\t\t\tInferSchemaOutput<TInput>,\n\t\t\t\t\tNoInfer<TKey>,\n\t\t\t\t\tTErrors\n\t\t\t\t>\n\t\t\t) => MaybePromise<InferSchemaInput<TOut>>\n\t\t} & FnRouteOptions<TDef, TKey, InferSchemaOutput<TInput>, TErrors>\n\t): FnProcedure<TDef, TKey, TInput, TOut, TErrors>\n\n\t// 2. With input, inferred output\n\t<\n\t\tTInput extends AnySchema,\n\t\tTReturn,\n\t\tTKey extends ProcedureKey<TDef> = TDef['default'],\n\t\tTErrors extends ErrorMap = Record<never, never>\n\t>(\n\t\toptions: {\n\t\t\tinput: TInput\n\t\t\toutput?: undefined\n\t\t\thandler: (\n\t\t\t\tparams: HandlerParams<\n\t\t\t\t\tTDef,\n\t\t\t\t\tInferSchemaOutput<TInput>,\n\t\t\t\t\tNoInfer<TKey>,\n\t\t\t\t\tTErrors\n\t\t\t\t>\n\t\t\t) => MaybePromise<TReturn>\n\t\t} & FnRouteOptions<TDef, TKey, InferSchemaOutput<TInput>, TErrors>\n\t): FnProcedure<TDef, TKey, TInput, Schema<TReturn, TReturn>, TErrors>\n\n\t// 3. No input, with output schema\n\t<\n\t\tTOut extends AnySchema,\n\t\tTKey extends ProcedureKey<TDef> = TDef['default'],\n\t\tTErrors extends ErrorMap = Record<never, never>\n\t>(\n\t\toptions: {\n\t\t\tinput?: undefined\n\t\t\toutput: TOut\n\t\t\thandler: (\n\t\t\t\tparams: HandlerParams<TDef, unknown, NoInfer<TKey>, TErrors>\n\t\t\t) => MaybePromise<InferSchemaInput<TOut>>\n\t\t} & FnRouteOptions<TDef, TKey, unknown, TErrors>\n\t): FnProcedure<TDef, TKey, Schema<unknown, unknown>, TOut, TErrors>\n\n\t// 4. No input, inferred output\n\t<\n\t\tTReturn,\n\t\tTKey extends ProcedureKey<TDef> = TDef['default'],\n\t\tTErrors extends ErrorMap = Record<never, never>\n\t>(\n\t\toptions: {\n\t\t\tinput?: undefined\n\t\t\toutput?: undefined\n\t\t\thandler: (\n\t\t\t\tparams: HandlerParams<TDef, unknown, NoInfer<TKey>, TErrors>\n\t\t\t) => MaybePromise<TReturn>\n\t\t} & FnRouteOptions<TDef, TKey, unknown, TErrors>\n\t): FnProcedure<\n\t\tTDef,\n\t\tTKey,\n\t\tSchema<unknown, unknown>,\n\t\tSchema<TReturn, TReturn>,\n\t\tTErrors\n\t>\n\n\t// 5. Never matches valid code first; it only words the type errors, which\n\t// TypeScript reports against the last overload.\n\t<\n\t\tTReturn,\n\t\tTInput extends AnySchema | undefined = undefined,\n\t\tTOut extends AnySchema | undefined = undefined,\n\t\tTKey extends ProcedureKey<TDef> = TDef['default'],\n\t\tTErrors extends ErrorMap = Record<never, never>\n\t>(\n\t\toptions: {\n\t\t\tinput?: TInput\n\t\t\toutput?: TOut\n\t\t\t// The output schema parses what the handler returns: its input type.\n\t\t\thandler: (\n\t\t\t\tparams: HandlerParams<TDef, InputOf<TInput>, NoInfer<TKey>, TErrors>\n\t\t\t) => MaybePromise<ReturnOf<TOut, TReturn>>\n\t\t} & FnRouteOptions<TDef, TKey, InputOf<TInput>, TErrors>\n\t): FnProcedure<\n\t\tTDef,\n\t\tTKey,\n\t\t[TInput] extends [AnySchema] ? TInput : Schema<unknown, unknown>,\n\t\t[TOut] extends [AnySchema] ? TOut : Schema<TReturn, TReturn>,\n\t\tTErrors\n\t>\n}\n\n/** What `fn.completed` reports, and what `onCompleted` receives. */\nexport type FnCompletedEvent<TContext = unknown, TSpan = SpanLike> = {\n\tname: string\n\tprocedure: string\n\tdurationMs: number\n\tsuccess: boolean\n\t/** False when authentication or input validation prevented handler execution. */\n\thandlerStarted: boolean\n\terror: unknown\n\tinput: unknown\n\tcontext: TContext\n\tspan: TSpan | undefined\n\tmeta: Record<string, unknown>\n}\n\n/** Factory hooks retain the builder key/context relationship. */\nexport type ProcedureHookParams<\n\tTProcedures extends Record<string, BuilderLike>,\n\tTExtra = object\n> = {\n\t[K in keyof TProcedures & string]: TExtra & {\n\t\tprocedure: K\n\t\tcontext: CurrentContextOf<TProcedures[K]>\n\t}\n}[keyof TProcedures & string]\n\nexport type CompletedHookEvent<\n\tTProcedures extends Record<string, BuilderLike>,\n\tTSpan\n> = {\n\t[K in keyof TProcedures & string]: Omit<\n\t\tFnCompletedEvent<unknown, TSpan>,\n\t\t'context' | 'procedure' | 'handlerStarted'\n\t> & { procedure: K } & (\n\t\t\t| { handlerStarted: true; context: CurrentContextOf<TProcedures[K]> }\n\t\t\t| { handlerStarted: false; context: InitialContextOf<TProcedures[K]> }\n\t\t)\n}[keyof TProcedures & string]\n\n/**\n * Intersected into each scoped extras function's return type: rejects index\n * signatures and handler-parameter names at the offending property. A\n * top-level conditional over the whole map broke inference when zero-argument\n * and context-reading functions were mixed.\n */\nexport type ScopedExtrasGuard<T> = (string extends keyof T\n\t? { 'orpc-fn: scoped extras need finite keys': never }\n\t: number extends keyof T\n\t\t? { 'orpc-fn: scoped extras need finite keys': never }\n\t\t: unknown) & { [K in HandlerParamKey]?: never }\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAkFA,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,MAAM;IACN,QAAQ;IACR,SAAS;IACT,aAAa;IACb,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,gBAAgB;IAChB,iBAAiB;IACjB,MAAM;CACsC,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IACnC,GAAG,iBAAiB;IACpB,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,SAAS;IACT,MAAM;IACN,aAAa;IACb,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,gBAAgB;CACP,CAAA","sourcesContent":["import type {\n\tAnySchema,\n\tErrorMap,\n\tInferSchemaInput,\n\tInferSchemaOutput,\n\tMergedErrorMap,\n\tSchema\n} from '@orpc/contract'\nimport type {\n\tAnyProcedure,\n\tDecoratedProcedure,\n\tProcedure,\n\tRoute\n} from '@orpc/server'\nimport type { createORPCErrorConstructorMap } from '@orpc/server'\nimport type { StoredFnMeta } from './meta.js'\nimport type { NativeErrors, NativeMeta } from './compatibility.js'\nimport type { BoundCall } from './bound-call.js'\nimport type { FnLogger } from './logger.js'\nimport type { SpanLike } from './otel.js'\n\nexport type MaybePromise<T> = T | Promise<T>\n\n/**\n * An oRPC builder without input or output schema: `os`, `os.$context<T>()`,\n * `os.use(...)`. A schema set on the builder is rejected by `createFn`; set it\n * on the route instead.\n */\n/* biome-ignore-start lint/suspicious/noExplicitAny: matches every builder's generic methods */\nexport type BuilderLike = {\n\troute(route: any): unknown\n\tmeta(meta: any): unknown\n\tinput(schema: any): unknown\n\toutput(schema: any): unknown\n\thandler(handler: any): Procedure<any, any, any, any, any, any>\n}\n/* biome-ignore-end lint/suspicious/noExplicitAny: matches every builder's generic methods */\n\n/** Input a procedure is called with (before its input schema runs). */\nexport type ProcedureInput<T> =\n\tT extends Procedure<\n\t\tinfer _TInitial,\n\t\tinfer _TCurrent,\n\t\tinfer TInputSchema extends AnySchema,\n\t\tinfer _TOut,\n\t\tinfer _TErrors,\n\t\tinfer _TMeta\n\t>\n\t\t? InferSchemaInput<TInputSchema>\n\t\t: unknown\n\n/** What a procedure resolves to (after its output schema runs). */\nexport type ProcedureOutput<T> =\n\tT extends Procedure<\n\t\tinfer _TInitial,\n\t\tinfer _TCurrent,\n\t\tinfer _TIn,\n\t\tinfer TOutputSchema extends AnySchema,\n\t\tinfer _TErrors,\n\t\tinfer _TMeta\n\t>\n\t\t? InferSchemaOutput<TOutputSchema>\n\t\t: unknown\n\n/** Context a procedure must be called with. */\nexport type ProcedureContext<T> =\n\tT extends Procedure<\n\t\tinfer TContext,\n\t\tinfer _TCurrent,\n\t\tinfer _TIn,\n\t\tinfer _TOut,\n\t\tinfer _TErrors,\n\t\tinfer _TMeta\n\t>\n\t\t? TContext\n\t\t: never\n\n/** `Omit` that keeps each member of a union (handler params narrow by discriminant). */\nexport type DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n\t? Omit<T, K>\n\t: never\n\n/** `fn()` options passed to oRPC's `.route()`; `RouteConfig` is derived from it. */\nexport const ROUTE_OPTION_KEYS = [\n\t'path',\n\t'method',\n\t'summary',\n\t'description',\n\t'deprecated',\n\t'successStatus',\n\t'successDescription',\n\t'inputStructure',\n\t'outputStructure',\n\t'tags'\n] as const satisfies readonly (keyof Route)[]\n\n/**\n * `fn()` option names owned by the route itself. Guard keys must not\n * reuse them: such an option would be read as the route option and the guard\n * would never run.\n */\nexport const RESERVED_OPTION_KEYS = [\n\t...ROUTE_OPTION_KEYS,\n\t'name',\n\t'procedure',\n\t'input',\n\t'output',\n\t'handler',\n\t'live',\n\t'operationId',\n\t'meta',\n\t'stream',\n\t'errors',\n\t'guardResolvers'\n] as const\n\nexport type ReservedOptionKey = (typeof RESERVED_OPTION_KEYS)[number]\n\n/** @internal Builds one route from a selected native procedure builder. */\nexport type BuildProcedure = (options: {\n\tname: string\n\tprocedure: string | undefined\n\troute: Record<string, unknown>\n\tmeta: Record<string, unknown>\n\tguards?: Record<string, unknown>\n\tdynamicGuards?: readonly string[]\n\tinput?: AnySchema | undefined\n\toutput?: AnySchema | undefined\n\tstream?: boolean\n\terrors?: ErrorMap\n\thandler: (options: {\n\t\tinput: unknown\n\t\tcontext: Record<string | symbol, unknown>\n\t\tsignal?: AbortSignal\n\t\tlastEventId?: string\n\t\terrors: ReturnType<typeof createORPCErrorConstructorMap>\n\t}) => unknown\n}) => AnyProcedure\n\n/** Turns every key of `T` found in `K` into a readable type error. */\nexport type RejectKeys<T, K extends PropertyKey, TMessage extends string> = {\n\t[P in Extract<keyof T, K>]: TMessage\n}\n\n/** Params every handler receives; extras may not reuse these names. */\ntype HandlerParamKey =\n\t| 'input'\n\t| 'context'\n\t| 'call'\n\t| 'signal'\n\t| 'span'\n\t| 'logger'\n\t| 'errors'\n\t| 'lastEventId'\n\n/**\n * Handler extras must have known keys: an index signature would claim every\n * handler param. Intersected into `createFn`'s options to reject it.\n */\nexport type FiniteExtras<T> = T extends unknown\n\t? string extends keyof T\n\t\t? { extras: 'orpc-fn: extras need known keys, not an index signature' }\n\t\t: number extends keyof T\n\t\t\t? { extras: 'orpc-fn: extras need known keys, not an index signature' }\n\t\t\t: Extract<keyof T, HandlerParamKey> extends never\n\t\t\t\t? unknown\n\t\t\t\t: { extras: 'orpc-fn: extras cannot shadow handler parameters' }\n\t: never\n\ntype ProcedureOf<TBuilder> = TBuilder extends {\n\thandler(handler: never): infer TProcedure\n}\n\t? TProcedure\n\t: never\n\n/** Context a route built from this builder is called with. */\nexport type InitialContextOf<TBuilder> = ProcedureContext<ProcedureOf<TBuilder>>\n\n/** Context the handler sees, after the builder's middleware. */\nexport type CurrentContextOf<TBuilder> =\n\tProcedureOf<TBuilder> extends Procedure<\n\t\tinfer _TInitial,\n\t\tinfer TContext,\n\t\tinfer _TIn,\n\t\tinfer _TOut,\n\t\tinfer _TErrors,\n\t\tinfer _TMeta\n\t>\n\t\t? TContext\n\t\t: never\n\nexport type ErrorMapOf<TBuilder> = NativeErrors<ProcedureOf<TBuilder>>\ntype MetaOf<TBuilder> = NativeMeta<ProcedureOf<TBuilder>>\n\n/**\n * Everything `createFn` inferred from its options. Route types read from it;\n * apps rarely spell it out.\n */\nexport type FnDefinition = {\n\tprocedures: Record<string, BuilderLike>\n\tdefault: string\n\textras: object\n\textrasByProcedure?: Partial<Record<string, object>>\n\tguards: object\n\tmeta: object\n\ttag: string\n\tspan: SpanLike\n\tlogger: FnLogger\n}\n\nexport type ProcedureKey<TDef extends FnDefinition> = keyof TDef['procedures'] &\n\tstring\n\n/** Context the handler of a `procedure: TKey` route receives. */\nexport type FnContext<\n\tTDef extends FnDefinition,\n\tTKey extends ProcedureKey<TDef>\n> = CurrentContextOf<TDef['procedures'][TKey]>\n\n/** Union of every procedure's handler context: what guards and extras see. */\nexport type AnyFnContext<TDef extends FnDefinition> = {\n\t[K in ProcedureKey<TDef>]: FnContext<TDef, K>\n}[ProcedureKey<TDef>]\n\nexport type GuardParams<TContext, TMeta> = {\n\tcontext: TContext\n\tinput: unknown\n\t/** Route name (operationId). */\n\tname: string\n\t/** Procedures key the route was built from. */\n\tprocedure: string\n\tmeta: Partial<TMeta>\n\tsignal: AbortSignal | undefined\n}\n\n/**\n * A check run before the handler. Its first parameter becomes an option on\n * `fn({...})`; the guard runs only on routes that set it. Throw (usually an\n * `ORPCError`) to refuse the call.\n */\n/* biome-ignore-start lint/suspicious/noConfusingVoidType: union prevents accidental value returns while accepting assertion-style guards */\nexport type Guard<TValue, TParams> = (\n\tvalue: TValue,\n\tparams: TParams\n) => MaybePromise<void | boolean>\n/* biome-ignore-end lint/suspicious/noConfusingVoidType: assertion-style guards */\n\nexport type GuardOptions<TGuards> = {\n\t[K in keyof TGuards]?: TGuards[K] extends (\n\t\tvalue: infer TValue,\n\t\tparams: never\n\t) => unknown\n\t\t? TValue\n\t\t: never\n}\n\n/** Match object spread: scoped extras replace shared keys, preserving unions. */\ntype MergeExtras<TShared, TScoped> = TShared extends unknown\n\t? TScoped extends unknown\n\t\t? Omit<TShared, keyof TScoped> & TScoped\n\t\t: never\n\t: never\n\nexport type HandlerParams<\n\tTDef extends FnDefinition,\n\tTInput,\n\tTKey extends ProcedureKey<TDef>,\n\tTErrors extends ErrorMap = Record<never, never>\n> = DistributiveOmit<\n\tMergeExtras<\n\t\tTDef['extras'],\n\t\tTDef extends { extrasByProcedure: infer E }\n\t\t\t? TKey extends keyof E\n\t\t\t\t? E[TKey]\n\t\t\t\t: object\n\t\t\t: object\n\t>,\n\tHandlerParamKey\n> & {\n\tinput: TInput\n\tcontext: FnContext<TDef, TKey>\n\t/** Calls another procedure with this context and signal, in a child span. */\n\tcall: BoundCall<FnContext<TDef, TKey>>\n\t/** Cancellation is inherited by nested calls; pass to interruptible I/O. */\n\tsignal: AbortSignal | undefined\n\t/** Active OpenTelemetry span, undefined when `createFn({ otel })` is not set. */\n\tspan: TDef['span'] | undefined\n\tlogger: TDef['logger']\n\tlastEventId: string | undefined\n\terrors: ReturnType<\n\t\ttypeof createORPCErrorConstructorMap<\n\t\t\tMergedErrorMap<ErrorMapOf<TDef['procedures'][TKey]>, TErrors>\n\t\t>\n\t>\n}\n\n/** Route options shared by every `fn()` overload. */\nexport type RouteConfig<TTag extends string = string> = Pick<\n\tRoute,\n\tExclude<(typeof ROUTE_OPTION_KEYS)[number], 'tags'>\n> & {\n\t/** Required. Becomes the OpenAPI operationId and the span name (e.g. 'user.create'). */\n\tname: string\n\ttags?: TTag[]\n}\n\nexport type FnRouteOptions<\n\tTDef extends FnDefinition,\n\tTKey extends ProcedureKey<TDef>,\n\tTInput = unknown,\n\tTErrors extends ErrorMap = Record<never, never>\n> = RouteConfig<TDef['tag']> &\n\tGuardOptions<TDef['guards']> & {\n\t\tmeta?: TDef['meta']\n\t\tstream?: boolean\n\t\terrors?: TErrors\n\t\tguardResolvers?: {\n\t\t\t[K in keyof TDef['guards']]?: (params: {\n\t\t\t\tinput: TInput\n\t\t\t\tcontext: FnContext<TDef, TKey>\n\t\t\t\tsignal: AbortSignal | undefined\n\t\t\t}) => MaybePromise<GuardOptions<TDef['guards']>[K]>\n\t\t}\n\t} & ProcedureOption<TDef, TKey>\n\n/**\n * Which `createFn({ procedures })` builder a route uses. Optional when\n * `createFn` has a `default`; required on every route when it has none.\n */\nexport type ProcedureOption<\n\tTDef extends FnDefinition,\n\tTKey extends ProcedureKey<TDef>\n> = [TDef['default']] extends [never]\n\t? { procedure: TKey }\n\t: { procedure?: TKey }\n\nexport type FnProcedure<\n\tTDef extends FnDefinition,\n\tTKey extends ProcedureKey<TDef>,\n\tTInputSchema extends Schema<unknown, unknown>,\n\tTOutputSchema extends Schema<unknown, unknown>,\n\tTErrors extends ErrorMap = Record<never, never>\n> = DecoratedProcedure<\n\tInitialContextOf<TDef['procedures'][TKey]>,\n\tFnContext<TDef, TKey>,\n\tTInputSchema,\n\tTOutputSchema,\n\tMergedErrorMap<ErrorMapOf<TDef['procedures'][TKey]>, TErrors>,\n\tMetaOf<TDef['procedures'][TKey]> & {\n\t\t'orpc-fn': StoredFnMeta<TDef['meta'], TKey>\n\t}\n>\n\ntype InputOf<T> = [T] extends [AnySchema] ? InferSchemaOutput<T> : unknown\ntype ReturnOf<TOut, TReturn> = [TOut] extends [AnySchema]\n\t? InferSchemaInput<TOut>\n\t: TReturn\n\n/** `fn()`: four overloads for input/output schema × inferred. */\nexport interface Fn<TDef extends FnDefinition> {\n\t// 1. With input + output schema\n\t<\n\t\tTInput extends AnySchema,\n\t\tTOut extends AnySchema,\n\t\tTKey extends ProcedureKey<TDef> = TDef['default'],\n\t\tTErrors extends ErrorMap = Record<never, never>\n\t>(\n\t\toptions: {\n\t\t\tinput: TInput\n\t\t\toutput: TOut\n\t\t\t// The output schema parses what the handler returns: its input type.\n\t\t\thandler: (\n\t\t\t\tparams: HandlerParams<\n\t\t\t\t\tTDef,\n\t\t\t\t\tInferSchemaOutput<TInput>,\n\t\t\t\t\tNoInfer<TKey>,\n\t\t\t\t\tTErrors\n\t\t\t\t>\n\t\t\t) => MaybePromise<InferSchemaInput<TOut>>\n\t\t} & FnRouteOptions<TDef, TKey, InferSchemaOutput<TInput>, TErrors>\n\t): FnProcedure<TDef, TKey, TInput, TOut, TErrors>\n\n\t// 2. With input, inferred output\n\t<\n\t\tTInput extends AnySchema,\n\t\tTReturn,\n\t\tTKey extends ProcedureKey<TDef> = TDef['default'],\n\t\tTErrors extends ErrorMap = Record<never, never>\n\t>(\n\t\toptions: {\n\t\t\tinput: TInput\n\t\t\toutput?: undefined\n\t\t\thandler: (\n\t\t\t\tparams: HandlerParams<\n\t\t\t\t\tTDef,\n\t\t\t\t\tInferSchemaOutput<TInput>,\n\t\t\t\t\tNoInfer<TKey>,\n\t\t\t\t\tTErrors\n\t\t\t\t>\n\t\t\t) => MaybePromise<TReturn>\n\t\t} & FnRouteOptions<TDef, TKey, InferSchemaOutput<TInput>, TErrors>\n\t): FnProcedure<TDef, TKey, TInput, Schema<TReturn, TReturn>, TErrors>\n\n\t// 3. No input, with output schema\n\t<\n\t\tTOut extends AnySchema,\n\t\tTKey extends ProcedureKey<TDef> = TDef['default'],\n\t\tTErrors extends ErrorMap = Record<never, never>\n\t>(\n\t\toptions: {\n\t\t\tinput?: undefined\n\t\t\toutput: TOut\n\t\t\thandler: (\n\t\t\t\tparams: HandlerParams<TDef, unknown, NoInfer<TKey>, TErrors>\n\t\t\t) => MaybePromise<InferSchemaInput<TOut>>\n\t\t} & FnRouteOptions<TDef, TKey, unknown, TErrors>\n\t): FnProcedure<TDef, TKey, Schema<unknown, unknown>, TOut, TErrors>\n\n\t// 4. No input, inferred output\n\t<\n\t\tTReturn,\n\t\tTKey extends ProcedureKey<TDef> = TDef['default'],\n\t\tTErrors extends ErrorMap = Record<never, never>\n\t>(\n\t\toptions: {\n\t\t\tinput?: undefined\n\t\t\toutput?: undefined\n\t\t\thandler: (\n\t\t\t\tparams: HandlerParams<TDef, unknown, NoInfer<TKey>, TErrors>\n\t\t\t) => MaybePromise<TReturn>\n\t\t} & FnRouteOptions<TDef, TKey, unknown, TErrors>\n\t): FnProcedure<\n\t\tTDef,\n\t\tTKey,\n\t\tSchema<unknown, unknown>,\n\t\tSchema<TReturn, TReturn>,\n\t\tTErrors\n\t>\n\n\t// 5. Never matches valid code first; it only words the type errors, which\n\t// TypeScript reports against the last overload.\n\t<\n\t\tTReturn,\n\t\tTInput extends AnySchema | undefined = undefined,\n\t\tTOut extends AnySchema | undefined = undefined,\n\t\tTKey extends ProcedureKey<TDef> = TDef['default'],\n\t\tTErrors extends ErrorMap = Record<never, never>\n\t>(\n\t\toptions: {\n\t\t\tinput?: TInput\n\t\t\toutput?: TOut\n\t\t\t// The output schema parses what the handler returns: its input type.\n\t\t\thandler: (\n\t\t\t\tparams: HandlerParams<TDef, InputOf<TInput>, NoInfer<TKey>, TErrors>\n\t\t\t) => MaybePromise<ReturnOf<TOut, TReturn>>\n\t\t} & FnRouteOptions<TDef, TKey, InputOf<TInput>, TErrors>\n\t): FnProcedure<\n\t\tTDef,\n\t\tTKey,\n\t\t[TInput] extends [AnySchema] ? TInput : Schema<unknown, unknown>,\n\t\t[TOut] extends [AnySchema] ? TOut : Schema<TReturn, TReturn>,\n\t\tTErrors\n\t>\n}\n\n/** What `fn.completed` reports, and what `onCompleted` receives. */\nexport type FnCompletedEvent<TContext = unknown, TSpan = SpanLike> = {\n\tname: string\n\tprocedure: string\n\tdurationMs: number\n\tsuccess: boolean\n\t/** False when authentication or input validation prevented handler execution. */\n\thandlerStarted: boolean\n\terror: unknown\n\tinput: unknown\n\tcontext: TContext\n\tspan: TSpan | undefined\n\tmeta: Record<string, unknown>\n}\n\n/** Factory hooks retain the builder key/context relationship. */\nexport type ProcedureHookParams<\n\tTProcedures extends Record<string, BuilderLike>,\n\tTExtra = object\n> = {\n\t[K in keyof TProcedures & string]: TExtra & {\n\t\tprocedure: K\n\t\tcontext: CurrentContextOf<TProcedures[K]>\n\t}\n}[keyof TProcedures & string]\n\nexport type CompletedHookEvent<\n\tTProcedures extends Record<string, BuilderLike>,\n\tTSpan\n> = {\n\t[K in keyof TProcedures & string]: Omit<\n\t\tFnCompletedEvent<unknown, TSpan>,\n\t\t'context' | 'procedure' | 'handlerStarted'\n\t> & { procedure: K } & (\n\t\t\t| { handlerStarted: true; context: CurrentContextOf<TProcedures[K]> }\n\t\t\t| { handlerStarted: false; context: InitialContextOf<TProcedures[K]> }\n\t\t)\n}[keyof TProcedures & string]\n\n/**\n * Intersected into each scoped extras function's return type: rejects index\n * signatures and handler-parameter names at the offending property. A\n * top-level conditional over the whole map broke inference when zero-argument\n * and context-reading functions were mixed.\n */\nexport type ScopedExtrasGuard<T> = (string extends keyof T\n\t? { 'orpc-fn: scoped extras need finite keys': never }\n\t: number extends keyof T\n\t\t? { 'orpc-fn: scoped extras need finite keys': never }\n\t\t: unknown) & { [K in HandlerParamKey]?: never }\n"]}
package/dist/vue.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { type DefaultError, type FetchQueryOptions, type InferDataFromTag, type InfiniteData, type InvalidateQueryFilters, type MutationObserverOptions, type UseInfiniteQueryOptions, type UseInfiniteQueryReturnType, type UseMutationReturnType, type UseQueryReturnType, type Updater, type QueryKey, type UseQueryOptions, useQuery as useVueQuery } from '@tanstack/vue-query';
2
2
  import { type App, type MaybeRefOrGetter, type Ref } from 'vue';
3
+ import { streamCall } from './client.js';
3
4
  import { type InvalidationStreamOptions, type LiveConnectionStatus } from './realtime.js';
4
5
  export type { InvalidationDomain, LiveConnectionStatus } from './realtime.js';
5
6
  /**
@@ -32,17 +33,34 @@ export declare function provideOrpc<TClient, TUtils>(app: App, orpc: {
32
33
  client: TClient;
33
34
  utils: TUtils;
34
35
  }): void;
35
- /** The client and utils from {@link provideOrpc}. */
36
- export declare function useOrpc(): {
36
+ type RegisteredOrpc = {
37
37
  client: RegisteredOrpcClient;
38
38
  utils: RegisteredOrpcUtils;
39
39
  };
40
+ /**
41
+ * The client and utils from {@link provideOrpc}. Throws when none was
42
+ * provided, unless `optional`, which returns null instead.
43
+ */
44
+ export declare function useOrpc(options: {
45
+ optional: true;
46
+ }): RegisteredOrpc | null;
47
+ export declare function useOrpc(options?: {
48
+ optional?: false;
49
+ }): RegisteredOrpc;
50
+ /**
51
+ * Whether the page is visible, from TanStack's `focusManager` (which follows
52
+ * `visibilitychange` in browsers). Live streams pause while it is false.
53
+ */
54
+ export declare function useDocumentVisible(): Ref<boolean>;
40
55
  /**
41
56
  * Picks the stream to open from the utils. A procedure's `call` fits as is:
42
- * `(o) => o.order.watch.call`. The composable passes the input and an abort signal.
57
+ * `(o) => o.order.watch.call`. The composable passes the input, an abort
58
+ * signal and `streamCall` as the client context, which keeps the call out of
59
+ * `createRpcLink`'s batches.
43
60
  */
44
61
  export type OrpcSubscribeFn<TInput, TEvent, TOrpc = RegisteredOrpcUtils> = (orpc: TOrpc) => (input: TInput, options: {
45
62
  signal: AbortSignal;
63
+ context: typeof streamCall;
46
64
  }) => Promise<AsyncIterable<TEvent>>;
47
65
  export interface UseSubscriptionOptions<TEvent, TOrpc = RegisteredOrpcUtils> {
48
66
  /** Start the stream on its own (default: true). With false, call `connect()`. */
@@ -106,12 +124,15 @@ declare function useBoundApiClient<TOrpc>(orpc: MaybeRefOrGetter<TOrpc> | undefi
106
124
  useMutation: {
107
125
  <TData = unknown, TError = Error, TVariables = unknown, TContext = unknown>(optionsFn: (orpc: TOrpc) => MutationObserverOptions<TData, TError, TVariables, TContext>, config: {
108
126
  initialInput: NoInfer<TVariables>;
127
+ invalidates?: (orpc: TOrpc) => readonly QueryKey[];
109
128
  }): UseMutationReturnType<TData, TError, TVariables, TContext> & {
110
129
  inputData: Ref<TVariables>;
111
130
  mutate: (variables?: TVariables) => void;
112
131
  mutateAsync: (variables?: TVariables) => Promise<TData>;
113
132
  };
114
- <TData = unknown, TError = Error, TVariables = void, TContext = unknown>(optionsFn: (orpc: TOrpc) => MutationObserverOptions<TData, TError, TVariables, TContext>): UseMutationReturnType<TData, TError, TVariables, TContext>;
133
+ <TData = unknown, TError = Error, TVariables = void, TContext = unknown>(optionsFn: (orpc: TOrpc) => MutationObserverOptions<TData, TError, TVariables, TContext>, config?: {
134
+ invalidates?: (orpc: TOrpc) => readonly QueryKey[];
135
+ }): UseMutationReturnType<TData, TError, TVariables, TContext>;
115
136
  };
116
137
  useSubscription: <TInput, TEvent>(input: MaybeRefOrGetter<TInput>, subscribeFn: OrpcSubscribeFn<TInput, TEvent, TOrpc>, options?: UseSubscriptionOptions<TEvent, TOrpc>) => UseSubscriptionReturn<TEvent>;
117
138
  invalidate: (keyFn: (orpc: TOrpc) => QueryKey, filters?: Omit<InvalidateQueryFilters, 'queryKey'>) => Promise<void>;
@@ -214,4 +235,26 @@ export declare function useInvalidationStream<TInput, TEvent extends {
214
235
  }, TOrpc = RegisteredOrpcUtils>(input: MaybeRefOrGetter<TInput>, subscribe: OrpcSubscribeFn<TInput, TEvent, TOrpc>, options: InvalidationStreamOptions<TEvent> & Pick<UseSubscriptionOptions<TEvent, TOrpc>, 'immediate' | 'respectVisibility' | 'orpc'>): UseSubscriptionReturn<TEvent>;
215
236
  /** Localized text for a failed query: your fallback unless the server marked its message user-safe. */
216
237
  export declare function useQueryErrorMessage(error: MaybeRefOrGetter<unknown>, fallback: MaybeRefOrGetter<string>): import("vue").ComputedRef<string | null>;
238
+ /** The parts of a query `useQueryState` reads. */
239
+ export type QueryStateSource = {
240
+ status: Ref<'pending' | 'error' | 'success'>;
241
+ error: Ref<unknown>;
242
+ isFetching: Ref<boolean>;
243
+ failureCount: Ref<number>;
244
+ refetch: () => Promise<unknown>;
245
+ };
246
+ /**
247
+ * A query as the props a list or loading component takes, in one reactive
248
+ * object: `<ListStates v-bind="useQueryState(query, { fallback })" />`.
249
+ * `errorMessage` follows {@link useQueryErrorMessage}.
250
+ */
251
+ export declare function useQueryState(query: QueryStateSource, options: {
252
+ fallback: MaybeRefOrGetter<string>;
253
+ }): {
254
+ status: "error" | "pending" | "success";
255
+ error: unknown;
256
+ errorMessage: string | null;
257
+ isRetrying: boolean;
258
+ retry: () => void;
259
+ };
217
260
  //# sourceMappingURL=vue.d.ts.map
package/dist/vue.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"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"}
package/dist/vue.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { focusManager, hashKey, keepPreviousData, useInfiniteQuery as useVueInfiniteQuery, useMutation as useVueMutation, useQuery as useVueQuery, useQueryClient } from '@tanstack/vue-query';
2
- import { computed, getCurrentScope, hasInjectionContext, inject, onScopeDispose, ref, shallowRef, toValue, watch } from 'vue';
3
- import { userFacingErrorMessage } from './client.js';
2
+ import { computed, getCurrentScope, hasInjectionContext, inject, onScopeDispose, reactive, ref, shallowRef, toValue, watch } from 'vue';
3
+ import { streamCall, userFacingErrorMessage } from './client.js';
4
4
  import { createInvalidationCoordinator, createStreamScope, createSubscriptionRunner, seedQueryFn } from './realtime.js';
5
5
  const orpcKey = Symbol('orpc-fn');
6
6
  /**
@@ -12,10 +12,9 @@ export function provideOrpc(app, orpc) {
12
12
  app.provide(orpcKey, orpc);
13
13
  }
14
14
  const missingOrpc = () => new Error('orpc-fn/vue: no oRPC client provided. Call provideOrpc(app, { client, utils }) or pass `orpc` to the composable.');
15
- /** The client and utils from {@link provideOrpc}. */
16
- export function useOrpc() {
15
+ export function useOrpc(options) {
17
16
  const provided = hasInjectionContext() ? inject(orpcKey, null) : null;
18
- if (!provided)
17
+ if (!provided && !options?.optional)
19
18
  throw missingOrpc();
20
19
  return provided;
21
20
  }
@@ -35,7 +34,7 @@ let documentVisible = null;
35
34
  * Whether the page is visible, from TanStack's `focusManager` (which follows
36
35
  * `visibilitychange` in browsers). Live streams pause while it is false.
37
36
  */
38
- function useDocumentVisible() {
37
+ export function useDocumentVisible() {
39
38
  if (!documentVisible) {
40
39
  const visible = ref(focusManager.isFocused());
41
40
  focusManager.subscribe((focused) => {
@@ -70,7 +69,7 @@ export function useOrpcSubscription(input, subscribeFn, options = {}) {
70
69
  const status = ref('idle');
71
70
  const error = ref(null);
72
71
  const runner = createSubscriptionRunner({
73
- open: (signal) => subscribeFn(getUtils())(toValue(input), { signal }),
72
+ open: (signal) => subscribeFn(getUtils())(toValue(input), { signal, context: streamCall }),
74
73
  canConnect: () => isStreamAllowed.value,
75
74
  shouldReconnect: () => autoReconnectOnClose && shouldAutoConnect.value,
76
75
  onStatus: (next) => {
@@ -160,10 +159,23 @@ function useBoundApiClient(orpc) {
160
159
  return useVueInfiniteQuery(options);
161
160
  }
162
161
  function useMutation(optionsFn, config) {
163
- const mutation = useVueMutation(computed(() => optionsFn(getO())));
162
+ const invalidates = config?.invalidates;
163
+ const mutation = useVueMutation(computed(() => {
164
+ const options = optionsFn(getO());
165
+ if (!invalidates)
166
+ return options;
167
+ return {
168
+ ...options,
169
+ onSuccess: async (...args) => {
170
+ await Promise.all(invalidates(getO()).map((queryKey) => queryClient.invalidateQueries({ queryKey })));
171
+ return options.onSuccess?.(...args);
172
+ }
173
+ };
174
+ }));
164
175
  if (config?.initialInput === undefined)
165
176
  return mutation;
166
- const inputData = ref(config.initialInput);
177
+ const initialInput = config.initialInput;
178
+ const inputData = ref(initialInput);
167
179
  return {
168
180
  ...mutation,
169
181
  inputData,
@@ -311,4 +323,22 @@ export function useQueryErrorMessage(error, fallback) {
311
323
  return err ? userFacingErrorMessage(err, toValue(fallback)) : null;
312
324
  });
313
325
  }
326
+ /**
327
+ * A query as the props a list or loading component takes, in one reactive
328
+ * object: `<ListStates v-bind="useQueryState(query, { fallback })" />`.
329
+ * `errorMessage` follows {@link useQueryErrorMessage}.
330
+ */
331
+ export function useQueryState(query, options) {
332
+ const errorMessage = useQueryErrorMessage(query.error, options.fallback);
333
+ return reactive({
334
+ status: computed(() => query.status.value),
335
+ error: computed(() => query.error.value),
336
+ errorMessage,
337
+ isRetrying: computed(() => query.isFetching.value &&
338
+ (query.status.value === 'error' || query.failureCount.value > 0)),
339
+ retry: () => {
340
+ void query.refetch();
341
+ }
342
+ });
343
+ }
314
344
  //# sourceMappingURL=vue.js.map