mates-fullstack 1.0.0-beta.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 (202) hide show
  1. package/README.md +311 -0
  2. package/dist/arctic-auth.d.ts +101 -0
  3. package/dist/arctic-auth.d.ts.map +1 -0
  4. package/dist/arctic-auth.js +538 -0
  5. package/dist/arctic-auth.js.map +1 -0
  6. package/dist/asset-manifest.d.ts +14 -0
  7. package/dist/asset-manifest.d.ts.map +1 -0
  8. package/dist/asset-manifest.js +102 -0
  9. package/dist/asset-manifest.js.map +1 -0
  10. package/dist/browser.d.ts +18 -0
  11. package/dist/browser.d.ts.map +1 -0
  12. package/dist/browser.js +25 -0
  13. package/dist/browser.js.map +1 -0
  14. package/dist/build-esbuild.d.ts +29 -0
  15. package/dist/build-esbuild.d.ts.map +1 -0
  16. package/dist/build-esbuild.js +699 -0
  17. package/dist/build-esbuild.js.map +1 -0
  18. package/dist/build-prod.d.ts +126 -0
  19. package/dist/build-prod.d.ts.map +1 -0
  20. package/dist/build-prod.js +1014 -0
  21. package/dist/build-prod.js.map +1 -0
  22. package/dist/cli-new.d.ts +14 -0
  23. package/dist/cli-new.d.ts.map +1 -0
  24. package/dist/cli-new.js +637 -0
  25. package/dist/cli-new.js.map +1 -0
  26. package/dist/client.d.ts +43 -0
  27. package/dist/client.d.ts.map +1 -0
  28. package/dist/client.js +130 -0
  29. package/dist/client.js.map +1 -0
  30. package/dist/cors.d.ts +16 -0
  31. package/dist/cors.d.ts.map +1 -0
  32. package/dist/cors.js +60 -0
  33. package/dist/cors.js.map +1 -0
  34. package/dist/ctx.d.ts +78 -0
  35. package/dist/ctx.d.ts.map +1 -0
  36. package/dist/ctx.js +280 -0
  37. package/dist/ctx.js.map +1 -0
  38. package/dist/dev-watcher.d.ts +23 -0
  39. package/dist/dev-watcher.d.ts.map +1 -0
  40. package/dist/dev-watcher.js +136 -0
  41. package/dist/dev-watcher.js.map +1 -0
  42. package/dist/docs-generator.d.ts +69 -0
  43. package/dist/docs-generator.d.ts.map +1 -0
  44. package/dist/docs-generator.js +557 -0
  45. package/dist/docs-generator.js.map +1 -0
  46. package/dist/docs-page.d.ts +20 -0
  47. package/dist/docs-page.d.ts.map +1 -0
  48. package/dist/docs-page.js +1152 -0
  49. package/dist/docs-page.js.map +1 -0
  50. package/dist/download.d.ts +78 -0
  51. package/dist/download.d.ts.map +1 -0
  52. package/dist/download.js +202 -0
  53. package/dist/download.js.map +1 -0
  54. package/dist/env-loader.d.ts +76 -0
  55. package/dist/env-loader.d.ts.map +1 -0
  56. package/dist/env-loader.js +213 -0
  57. package/dist/env-loader.js.map +1 -0
  58. package/dist/errors.d.ts +146 -0
  59. package/dist/errors.d.ts.map +1 -0
  60. package/dist/errors.js +386 -0
  61. package/dist/errors.js.map +1 -0
  62. package/dist/head.d.ts +31 -0
  63. package/dist/head.d.ts.map +1 -0
  64. package/dist/head.js +245 -0
  65. package/dist/head.js.map +1 -0
  66. package/dist/index.d.ts +30 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +30 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/internal-prefixes.d.ts +16 -0
  71. package/dist/internal-prefixes.d.ts.map +1 -0
  72. package/dist/internal-prefixes.js +16 -0
  73. package/dist/internal-prefixes.js.map +1 -0
  74. package/dist/internal.d.ts +25 -0
  75. package/dist/internal.d.ts.map +1 -0
  76. package/dist/internal.js +25 -0
  77. package/dist/internal.js.map +1 -0
  78. package/dist/jwt.d.ts +166 -0
  79. package/dist/jwt.d.ts.map +1 -0
  80. package/dist/jwt.js +261 -0
  81. package/dist/jwt.js.map +1 -0
  82. package/dist/log.d.ts +44 -0
  83. package/dist/log.d.ts.map +1 -0
  84. package/dist/log.js +66 -0
  85. package/dist/log.js.map +1 -0
  86. package/dist/logger.d.ts +76 -0
  87. package/dist/logger.d.ts.map +1 -0
  88. package/dist/logger.js +138 -0
  89. package/dist/logger.js.map +1 -0
  90. package/dist/main-runner.d.ts +59 -0
  91. package/dist/main-runner.d.ts.map +1 -0
  92. package/dist/main-runner.js +157 -0
  93. package/dist/main-runner.js.map +1 -0
  94. package/dist/mates-auth.d.ts +82 -0
  95. package/dist/mates-auth.d.ts.map +1 -0
  96. package/dist/mates-auth.js +323 -0
  97. package/dist/mates-auth.js.map +1 -0
  98. package/dist/middleware.d.ts +30 -0
  99. package/dist/middleware.d.ts.map +1 -0
  100. package/dist/middleware.js +67 -0
  101. package/dist/middleware.js.map +1 -0
  102. package/dist/project-resolver.d.ts +102 -0
  103. package/dist/project-resolver.d.ts.map +1 -0
  104. package/dist/project-resolver.js +271 -0
  105. package/dist/project-resolver.js.map +1 -0
  106. package/dist/rate-limit.d.ts +37 -0
  107. package/dist/rate-limit.d.ts.map +1 -0
  108. package/dist/rate-limit.js +109 -0
  109. package/dist/rate-limit.js.map +1 -0
  110. package/dist/redirect.d.ts +84 -0
  111. package/dist/redirect.d.ts.map +1 -0
  112. package/dist/redirect.js +105 -0
  113. package/dist/redirect.js.map +1 -0
  114. package/dist/renderer.d.ts +91 -0
  115. package/dist/renderer.d.ts.map +1 -0
  116. package/dist/renderer.js +630 -0
  117. package/dist/renderer.js.map +1 -0
  118. package/dist/request-logger.d.ts +12 -0
  119. package/dist/request-logger.d.ts.map +1 -0
  120. package/dist/request-logger.js +55 -0
  121. package/dist/request-logger.js.map +1 -0
  122. package/dist/rest.d.ts +25 -0
  123. package/dist/rest.d.ts.map +1 -0
  124. package/dist/rest.js +93 -0
  125. package/dist/rest.js.map +1 -0
  126. package/dist/router.d.ts +71 -0
  127. package/dist/router.d.ts.map +1 -0
  128. package/dist/router.js +222 -0
  129. package/dist/router.js.map +1 -0
  130. package/dist/rpc-registry.d.ts +84 -0
  131. package/dist/rpc-registry.d.ts.map +1 -0
  132. package/dist/rpc-registry.js +271 -0
  133. package/dist/rpc-registry.js.map +1 -0
  134. package/dist/rpc-runner.d.ts +82 -0
  135. package/dist/rpc-runner.d.ts.map +1 -0
  136. package/dist/rpc-runner.js +564 -0
  137. package/dist/rpc-runner.js.map +1 -0
  138. package/dist/sanitize.d.ts +61 -0
  139. package/dist/sanitize.d.ts.map +1 -0
  140. package/dist/sanitize.js +193 -0
  141. package/dist/sanitize.js.map +1 -0
  142. package/dist/security-headers.d.ts +114 -0
  143. package/dist/security-headers.d.ts.map +1 -0
  144. package/dist/security-headers.js +121 -0
  145. package/dist/security-headers.js.map +1 -0
  146. package/dist/server-fn.d.ts +323 -0
  147. package/dist/server-fn.d.ts.map +1 -0
  148. package/dist/server-fn.js +373 -0
  149. package/dist/server-fn.js.map +1 -0
  150. package/dist/server-public.d.ts +13 -0
  151. package/dist/server-public.d.ts.map +1 -0
  152. package/dist/server-public.js +12 -0
  153. package/dist/server-public.js.map +1 -0
  154. package/dist/server-timeout.d.ts +38 -0
  155. package/dist/server-timeout.d.ts.map +1 -0
  156. package/dist/server-timeout.js +46 -0
  157. package/dist/server-timeout.js.map +1 -0
  158. package/dist/server.d.ts +100 -0
  159. package/dist/server.d.ts.map +1 -0
  160. package/dist/server.js +1218 -0
  161. package/dist/server.js.map +1 -0
  162. package/dist/socket-router.d.ts +153 -0
  163. package/dist/socket-router.d.ts.map +1 -0
  164. package/dist/socket-router.js +612 -0
  165. package/dist/socket-router.js.map +1 -0
  166. package/dist/sso.d.ts +90 -0
  167. package/dist/sso.d.ts.map +1 -0
  168. package/dist/sso.js +261 -0
  169. package/dist/sso.js.map +1 -0
  170. package/dist/ssr-context.d.ts +49 -0
  171. package/dist/ssr-context.d.ts.map +1 -0
  172. package/dist/ssr-context.js +85 -0
  173. package/dist/ssr-context.js.map +1 -0
  174. package/dist/ssr-globals.d.ts +32 -0
  175. package/dist/ssr-globals.d.ts.map +1 -0
  176. package/dist/ssr-globals.js +1010 -0
  177. package/dist/ssr-globals.js.map +1 -0
  178. package/dist/ssr-template.d.ts +73 -0
  179. package/dist/ssr-template.d.ts.map +1 -0
  180. package/dist/ssr-template.js +507 -0
  181. package/dist/ssr-template.js.map +1 -0
  182. package/dist/stack-mapper.d.ts +25 -0
  183. package/dist/stack-mapper.d.ts.map +1 -0
  184. package/dist/stack-mapper.js +139 -0
  185. package/dist/stack-mapper.js.map +1 -0
  186. package/dist/stream.d.ts +89 -0
  187. package/dist/stream.d.ts.map +1 -0
  188. package/dist/stream.js +299 -0
  189. package/dist/stream.js.map +1 -0
  190. package/dist/upload.d.ts +69 -0
  191. package/dist/upload.d.ts.map +1 -0
  192. package/dist/upload.js +110 -0
  193. package/dist/upload.js.map +1 -0
  194. package/dist/validate.d.ts +58 -0
  195. package/dist/validate.d.ts.map +1 -0
  196. package/dist/validate.js +89 -0
  197. package/dist/validate.js.map +1 -0
  198. package/dist/verify-package.d.ts +3 -0
  199. package/dist/verify-package.d.ts.map +1 -0
  200. package/dist/verify-package.js +128 -0
  201. package/dist/verify-package.js.map +1 -0
  202. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssr-template.js","sourceRoot":"","sources":["../src/ssr-template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface ParsedStackFrame {
2
+ raw: string;
3
+ fnName: string | null;
4
+ file: string;
5
+ line: number;
6
+ column: number;
7
+ }
8
+ export interface MappedStackFrame extends ParsedStackFrame {
9
+ mappedFile: string | null;
10
+ mappedLine: number | null;
11
+ mappedColumn: number | null;
12
+ mappedName: string | null;
13
+ }
14
+ export type SourceLoader = (url: string) => Promise<string | null>;
15
+ export declare function parseStackFrames(stack: string): ParsedStackFrame[];
16
+ export declare function extractInlineSourceMap(code: string): unknown | null;
17
+ export declare function mapStackTrace(stack: string, loadSource?: SourceLoader): Promise<MappedStackFrame[]>;
18
+ export declare function formatMappedStack(frames: MappedStackFrame[]): string;
19
+ export declare function renderMappedStack(container: {
20
+ textContent: string | null;
21
+ }, error: {
22
+ stack?: string;
23
+ message?: string;
24
+ } | Error, loadSource?: SourceLoader): Promise<void>;
25
+ //# sourceMappingURL=stack-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-mapper.d.ts","sourceRoot":"","sources":["../src/stack-mapper.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAKnE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA+BlE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CASnE;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,YAAkC,GAC7C,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyB7B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAYpE;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE;IAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACzC,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,EACnD,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -0,0 +1,139 @@
1
+ import { TraceMap, originalPositionFor, } from "@jridgewell/trace-mapping";
2
+ const INLINE_SOURCE_MAP_RE = /\/\/# sourceMappingURL=data:application\/json(?:;charset=[^;,]+)?;base64,([A-Za-z0-9+/=]+)/;
3
+ export function parseStackFrames(stack) {
4
+ const frames = [];
5
+ for (const raw of stack.split(/\r?\n/)) {
6
+ const trimmed = raw.trim();
7
+ if (!trimmed.startsWith("at "))
8
+ continue;
9
+ const withFn = trimmed.match(/^at\s+(.+?)\s+\((.+):(\d+):(\d+)\)$/);
10
+ const withoutFn = trimmed.match(/^at\s+(.+):(\d+):(\d+)$/);
11
+ if (withFn) {
12
+ frames.push({
13
+ raw,
14
+ fnName: withFn[1],
15
+ file: withFn[2],
16
+ line: Number(withFn[3]),
17
+ column: Number(withFn[4]),
18
+ });
19
+ continue;
20
+ }
21
+ if (withoutFn) {
22
+ frames.push({
23
+ raw,
24
+ fnName: null,
25
+ file: withoutFn[1],
26
+ line: Number(withoutFn[2]),
27
+ column: Number(withoutFn[3]),
28
+ });
29
+ }
30
+ }
31
+ return frames;
32
+ }
33
+ export function extractInlineSourceMap(code) {
34
+ const match = code.match(INLINE_SOURCE_MAP_RE);
35
+ if (!match)
36
+ return null;
37
+ try {
38
+ return JSON.parse(decodeBase64(match[1]));
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ }
44
+ export async function mapStackTrace(stack, loadSource = defaultSourceLoader) {
45
+ const frames = parseStackFrames(stack);
46
+ const mapCache = new Map();
47
+ const mapped = [];
48
+ for (const frame of frames) {
49
+ let traceMap = mapCache.get(frame.file);
50
+ if (traceMap === undefined) {
51
+ traceMap = await loadTraceMap(frame.file, loadSource);
52
+ mapCache.set(frame.file, traceMap);
53
+ }
54
+ if (!traceMap) {
55
+ mapped.push(toUnmappedFrame(frame));
56
+ continue;
57
+ }
58
+ const original = originalPositionFor(traceMap, {
59
+ line: frame.line,
60
+ column: Math.max(0, frame.column - 1),
61
+ });
62
+ mapped.push(toMappedFrame(frame, original));
63
+ }
64
+ return mapped;
65
+ }
66
+ export function formatMappedStack(frames) {
67
+ return frames
68
+ .map((frame) => {
69
+ const file = frame.mappedFile ?? frame.file;
70
+ const line = frame.mappedLine ?? frame.line;
71
+ const column = frame.mappedColumn ?? frame.column;
72
+ const name = frame.mappedName ?? frame.fnName;
73
+ return name
74
+ ? ` at ${name} (${file}:${line}:${column})`
75
+ : ` at ${file}:${line}:${column}`;
76
+ })
77
+ .join("\n");
78
+ }
79
+ export async function renderMappedStack(container, error, loadSource) {
80
+ const stack = error.stack ?? error.message ?? String(error);
81
+ const frames = await mapStackTrace(stack, loadSource);
82
+ container.textContent = frames.length > 0 ? formatMappedStack(frames) : stack;
83
+ }
84
+ async function loadTraceMap(url, loadSource) {
85
+ const code = await loadSource(url);
86
+ if (!code)
87
+ return null;
88
+ const map = extractInlineSourceMap(code);
89
+ if (!map)
90
+ return null;
91
+ try {
92
+ return new TraceMap(map);
93
+ }
94
+ catch {
95
+ return null;
96
+ }
97
+ }
98
+ function toMappedFrame(frame, original) {
99
+ if (!original.source || original.line == null || original.column == null) {
100
+ return toUnmappedFrame(frame);
101
+ }
102
+ return {
103
+ ...frame,
104
+ mappedFile: original.source,
105
+ mappedLine: original.line,
106
+ mappedColumn: original.column + 1,
107
+ mappedName: original.name ?? frame.fnName,
108
+ };
109
+ }
110
+ function toUnmappedFrame(frame) {
111
+ return {
112
+ ...frame,
113
+ mappedFile: null,
114
+ mappedLine: null,
115
+ mappedColumn: null,
116
+ mappedName: null,
117
+ };
118
+ }
119
+ async function defaultSourceLoader(url) {
120
+ if (typeof fetch !== "function")
121
+ return null;
122
+ try {
123
+ const res = await fetch(url);
124
+ if (!res.ok)
125
+ return null;
126
+ return await res.text();
127
+ }
128
+ catch {
129
+ return null;
130
+ }
131
+ }
132
+ function decodeBase64(value) {
133
+ if (typeof atob === "function")
134
+ return atob(value);
135
+ if (typeof Buffer !== "undefined")
136
+ return Buffer.from(value, "base64").toString("utf-8");
137
+ throw new Error("No base64 decoder available");
138
+ }
139
+ //# sourceMappingURL=stack-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-mapper.js","sourceRoot":"","sources":["../src/stack-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * mates-fullstack — stream.ts
3
+ *
4
+ * The stream() helper for server functions.
5
+ * Returns a StreamResponse that the RPC runner serializes as SSE.
6
+ *
7
+ * Usage:
8
+ * import { stream } from "mates-fullstack/server";
9
+ *
10
+ * export async function generate(payload: { prompt: string }) {
11
+ * return stream(async function*() {
12
+ * for await (const chunk of llm.stream(payload.prompt)) {
13
+ * yield chunk.text; // string chunk
14
+ * }
15
+ * });
16
+ * }
17
+ *
18
+ * export async function watchProgress(payload: { jobId: string }) {
19
+ * return stream(async function*() {
20
+ * while (true) {
21
+ * const status = await getStatus(payload.jobId);
22
+ * yield { percent: status.percent, done: status.done }; // object chunk
23
+ * if (status.done) break;
24
+ * await sleep(500);
25
+ * }
26
+ * });
27
+ * }
28
+ *
29
+ * Client receives an async iterable:
30
+ * for await (const chunk of await generate({ prompt })) {
31
+ * text += chunk;
32
+ * }
33
+ *
34
+ * Wire format: SSE (text/event-stream)
35
+ * data: hello world\n\n ← string chunk
36
+ * data: {"percent":42}\n\n ← object chunk (JSON)
37
+ * event: error\ndata: {...}\n\n ← terminal error event
38
+ * event: done\ndata: {}\n\n ← stream completed normally
39
+ */
40
+ /// <reference types="node" />
41
+ import type { ServerResponse } from "node:http";
42
+ /**
43
+ * Returned by stream() and detected by rpc-runner to trigger SSE mode.
44
+ */
45
+ export declare class StreamResponse {
46
+ readonly generator: () => AsyncGenerator<string | object>;
47
+ constructor(generator: () => AsyncGenerator<string | object>);
48
+ }
49
+ /**
50
+ * Return a streaming response from a server function.
51
+ * The generator is called once per request when the response begins.
52
+ *
53
+ * Yield strings or plain objects. Objects are JSON-serialized per event.
54
+ * Throw inside the generator to send a terminal error event.
55
+ * The generator's finally block always runs, even if the client disconnects.
56
+ *
57
+ * @example
58
+ * return stream(async function*() {
59
+ * yield "Hello ";
60
+ * yield "world";
61
+ * yield { type: "done", result: 42 };
62
+ * });
63
+ */
64
+ export declare function stream(generator: () => AsyncGenerator<string | object>): StreamResponse;
65
+ /**
66
+ * Write a StreamResponse to a Node.js ServerResponse as SSE.
67
+ *
68
+ * Sets the correct headers and writes each yielded value as an SSE event.
69
+ * Handles client disconnect via the AbortSignal.
70
+ * Always closes the response when done (normally or via error).
71
+ */
72
+ export declare function writeStream(streamResponse: StreamResponse, res: ServerResponse, signal: AbortSignal): Promise<void>;
73
+ /**
74
+ * Read an SSE response as an async iterable.
75
+ * Used by the RPC stub on the client side.
76
+ *
77
+ * Yields parsed values:
78
+ * - String data events → string
79
+ * - JSON data events → parsed object
80
+ * - "done" event → stops iteration
81
+ * - "error" event → throws the reconstructed error
82
+ */
83
+ export declare function readSseStream(response: Response): AsyncGenerator<string | object>;
84
+ /**
85
+ * Returns true if the value is a StreamResponse.
86
+ * Used by rpc-runner to detect stream returns.
87
+ */
88
+ export declare function isStreamResponse(value: unknown): value is StreamResponse;
89
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIhD;;GAEG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;gBAE9C,SAAS,EAAE,MAAM,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;CAG7D;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CACpB,SAAS,EAAE,MAAM,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,GAC/C,cAAc,CAEhB;AAID;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CA6Df;AAID;;;;;;;;;GASG;AACH,wBAAuB,aAAa,CAClC,QAAQ,EAAE,QAAQ,GACjB,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,CAuDjC;AA6GD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE"}
package/dist/stream.js ADDED
@@ -0,0 +1,299 @@
1
+ /**
2
+ * mates-fullstack — stream.ts
3
+ *
4
+ * The stream() helper for server functions.
5
+ * Returns a StreamResponse that the RPC runner serializes as SSE.
6
+ *
7
+ * Usage:
8
+ * import { stream } from "mates-fullstack/server";
9
+ *
10
+ * export async function generate(payload: { prompt: string }) {
11
+ * return stream(async function*() {
12
+ * for await (const chunk of llm.stream(payload.prompt)) {
13
+ * yield chunk.text; // string chunk
14
+ * }
15
+ * });
16
+ * }
17
+ *
18
+ * export async function watchProgress(payload: { jobId: string }) {
19
+ * return stream(async function*() {
20
+ * while (true) {
21
+ * const status = await getStatus(payload.jobId);
22
+ * yield { percent: status.percent, done: status.done }; // object chunk
23
+ * if (status.done) break;
24
+ * await sleep(500);
25
+ * }
26
+ * });
27
+ * }
28
+ *
29
+ * Client receives an async iterable:
30
+ * for await (const chunk of await generate({ prompt })) {
31
+ * text += chunk;
32
+ * }
33
+ *
34
+ * Wire format: SSE (text/event-stream)
35
+ * data: hello world\n\n ← string chunk
36
+ * data: {"percent":42}\n\n ← object chunk (JSON)
37
+ * event: error\ndata: {...}\n\n ← terminal error event
38
+ * event: done\ndata: {}\n\n ← stream completed normally
39
+ */
40
+ // ─── StreamResponse class ─────────────────────────────────────────────────────
41
+ /**
42
+ * Returned by stream() and detected by rpc-runner to trigger SSE mode.
43
+ */
44
+ export class StreamResponse {
45
+ generator;
46
+ constructor(generator) {
47
+ this.generator = generator;
48
+ }
49
+ }
50
+ // ─── stream() helper ──────────────────────────────────────────────────────────
51
+ /**
52
+ * Return a streaming response from a server function.
53
+ * The generator is called once per request when the response begins.
54
+ *
55
+ * Yield strings or plain objects. Objects are JSON-serialized per event.
56
+ * Throw inside the generator to send a terminal error event.
57
+ * The generator's finally block always runs, even if the client disconnects.
58
+ *
59
+ * @example
60
+ * return stream(async function*() {
61
+ * yield "Hello ";
62
+ * yield "world";
63
+ * yield { type: "done", result: 42 };
64
+ * });
65
+ */
66
+ export function stream(generator) {
67
+ return new StreamResponse(generator);
68
+ }
69
+ // ─── SSE writer ───────────────────────────────────────────────────────────────
70
+ /**
71
+ * Write a StreamResponse to a Node.js ServerResponse as SSE.
72
+ *
73
+ * Sets the correct headers and writes each yielded value as an SSE event.
74
+ * Handles client disconnect via the AbortSignal.
75
+ * Always closes the response when done (normally or via error).
76
+ */
77
+ export async function writeStream(streamResponse, res, signal) {
78
+ // Set SSE headers before any data is written
79
+ if (!res.headersSent) {
80
+ res.writeHead(200, {
81
+ "Content-Type": "text/event-stream; charset=utf-8",
82
+ "Cache-Control": "no-cache, no-transform",
83
+ "Connection": "keep-alive",
84
+ // Disable nginx/proxy buffering for SSE
85
+ "X-Accel-Buffering": "no",
86
+ });
87
+ }
88
+ const gen = streamResponse.generator();
89
+ // Track whether we've already closed
90
+ let closed = false;
91
+ function close() {
92
+ if (closed)
93
+ return;
94
+ closed = true;
95
+ if (!res.writableEnded) {
96
+ res.end();
97
+ }
98
+ }
99
+ // Handle client disconnect
100
+ signal.addEventListener("abort", () => {
101
+ close();
102
+ }, { once: true });
103
+ try {
104
+ for await (const chunk of gen) {
105
+ // Stop if client disconnected or response ended
106
+ if (signal.aborted || res.writableEnded) {
107
+ break;
108
+ }
109
+ const data = _serializeChunk(chunk);
110
+ // Write the SSE event — write() returns false if buffer is full (backpressure)
111
+ // For simplicity we don't await drain; SSE clients handle this gracefully
112
+ if (!res.writableEnded) {
113
+ res.write(_formatSseEvent(undefined, data));
114
+ }
115
+ }
116
+ // Send terminal done event if client is still connected
117
+ if (!signal.aborted && !res.writableEnded) {
118
+ res.write(_formatSseEvent("done", "{}"));
119
+ }
120
+ }
121
+ catch (err) {
122
+ // Generator threw — send terminal error event if still connected
123
+ if (!signal.aborted && !res.writableEnded) {
124
+ const errorData = _serializeStreamError(err);
125
+ res.write(_formatSseEvent("error", errorData));
126
+ }
127
+ }
128
+ finally {
129
+ // Return from generator (runs generator's finally block)
130
+ await gen.return?.(undefined).catch(() => { });
131
+ close();
132
+ }
133
+ }
134
+ // ─── Client-side SSE reader ───────────────────────────────────────────────────
135
+ /**
136
+ * Read an SSE response as an async iterable.
137
+ * Used by the RPC stub on the client side.
138
+ *
139
+ * Yields parsed values:
140
+ * - String data events → string
141
+ * - JSON data events → parsed object
142
+ * - "done" event → stops iteration
143
+ * - "error" event → throws the reconstructed error
144
+ */
145
+ export async function* readSseStream(response) {
146
+ const reader = response.body?.getReader();
147
+ if (!reader)
148
+ return;
149
+ const decoder = new TextDecoder();
150
+ let buffer = "";
151
+ try {
152
+ while (true) {
153
+ const { done, value } = await reader.read();
154
+ if (done)
155
+ break;
156
+ buffer += decoder.decode(value, { stream: true });
157
+ // SSE events are separated by double newline
158
+ const events = buffer.split("\n\n");
159
+ // Keep the last incomplete event in the buffer
160
+ buffer = events.pop() ?? "";
161
+ for (const event of events) {
162
+ if (!event.trim())
163
+ continue;
164
+ const parsed = _parseSseEvent(event);
165
+ if (!parsed)
166
+ continue;
167
+ // Terminal done event — stop iteration
168
+ if (parsed.event === "done")
169
+ return;
170
+ // Terminal error event — reconstruct and throw
171
+ if (parsed.event === "error") {
172
+ const { reconstructError, isMatesError } = await import("./errors.js");
173
+ try {
174
+ const errorData = JSON.parse(parsed.data);
175
+ if (isMatesError(errorData)) {
176
+ throw reconstructError(errorData);
177
+ }
178
+ }
179
+ catch (e) {
180
+ if (e instanceof SyntaxError) {
181
+ throw new Error(`Stream error: ${parsed.data}`);
182
+ }
183
+ throw e;
184
+ }
185
+ return;
186
+ }
187
+ // Data event — parse and yield
188
+ if (parsed.data) {
189
+ yield _parseChunk(parsed.data);
190
+ }
191
+ }
192
+ }
193
+ }
194
+ finally {
195
+ reader.releaseLock();
196
+ }
197
+ }
198
+ // ─── Internal helpers ─────────────────────────────────────────────────────────
199
+ /**
200
+ * Serialize a chunk to a string for SSE data.
201
+ * Objects are JSON-stringified. Strings are used as-is.
202
+ */
203
+ function _serializeChunk(chunk) {
204
+ if (typeof chunk === "string")
205
+ return chunk;
206
+ try {
207
+ return JSON.stringify(chunk);
208
+ }
209
+ catch {
210
+ // Circular reference or non-serializable — send empty object
211
+ return "{}";
212
+ }
213
+ }
214
+ /**
215
+ * Format an SSE event.
216
+ * Handles multi-line data by prefixing each line with "data: ".
217
+ *
218
+ * Format:
219
+ * [event: <name>\n]
220
+ * data: <line1>\n
221
+ * [data: <line2>\n]
222
+ * \n
223
+ */
224
+ function _formatSseEvent(eventName, data) {
225
+ let out = "";
226
+ if (eventName) {
227
+ out += `event: ${eventName}\n`;
228
+ }
229
+ // Handle multi-line data — each line needs its own "data: " prefix
230
+ const lines = data.split("\n");
231
+ for (const line of lines) {
232
+ out += `data: ${line}\n`;
233
+ }
234
+ out += "\n"; // Double newline to end the event
235
+ return out;
236
+ }
237
+ /**
238
+ * Parse a raw SSE event string into event name and data.
239
+ */
240
+ function _parseSseEvent(raw) {
241
+ let event;
242
+ const dataLines = [];
243
+ for (const line of raw.split("\n")) {
244
+ if (line.startsWith("event:")) {
245
+ event = line.slice(6).trim();
246
+ }
247
+ else if (line.startsWith("data:")) {
248
+ dataLines.push(line.slice(5).trim());
249
+ }
250
+ // Ignore "id:", "retry:", and comment lines (": ...")
251
+ }
252
+ if (dataLines.length === 0)
253
+ return null;
254
+ return { event, data: dataLines.join("\n") };
255
+ }
256
+ /**
257
+ * Parse a received SSE data string.
258
+ * Attempts JSON parse first; falls back to raw string.
259
+ */
260
+ function _parseChunk(data) {
261
+ // Try JSON parse for object chunks
262
+ if (data.startsWith("{") || data.startsWith("[")) {
263
+ try {
264
+ return JSON.parse(data);
265
+ }
266
+ catch {
267
+ // Not valid JSON — treat as string
268
+ }
269
+ }
270
+ return data;
271
+ }
272
+ /**
273
+ * Serialize an error thrown inside a stream generator for the SSE error event.
274
+ */
275
+ function _serializeStreamError(err) {
276
+ // Import serializeError lazily to avoid circular deps at module load time
277
+ try {
278
+ const { serializeError } = require("./errors.js");
279
+ const dev = process.env.NODE_ENV !== "production";
280
+ return JSON.stringify(serializeError(err, dev));
281
+ }
282
+ catch {
283
+ return JSON.stringify({
284
+ __type: "AppError",
285
+ message: "Stream error",
286
+ status: 500,
287
+ code: "STREAM_ERROR",
288
+ });
289
+ }
290
+ }
291
+ // ─── Type guard ───────────────────────────────────────────────────────────────
292
+ /**
293
+ * Returns true if the value is a StreamResponse.
294
+ * Used by rpc-runner to detect stream returns.
295
+ */
296
+ export function isStreamResponse(value) {
297
+ return value instanceof StreamResponse;
298
+ }
299
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}