stitchkit 0.80.0 → 0.81.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 (179) hide show
  1. package/dist/agent-runtime/provider-failure.d.ts.map +1 -1
  2. package/dist/agent-runtime-coding-tools.js +1 -1
  3. package/dist/agent-runtime-harness.js +7 -5
  4. package/dist/agent-runtime.js +15 -19
  5. package/dist/application/notification-outbox.d.ts +80 -0
  6. package/dist/application/notification-outbox.d.ts.map +1 -0
  7. package/dist/application/process-lifecycle.d.ts +166 -0
  8. package/dist/application/process-lifecycle.d.ts.map +1 -0
  9. package/dist/application/revision-signal.d.ts +86 -0
  10. package/dist/application/revision-signal.d.ts.map +1 -0
  11. package/dist/application/state-store.d.ts +18 -0
  12. package/dist/application/state-store.d.ts.map +1 -0
  13. package/dist/application.d.ts +4 -0
  14. package/dist/application.d.ts.map +1 -1
  15. package/dist/application.js +725 -1
  16. package/dist/browser/http.d.ts +14 -0
  17. package/dist/browser/http.d.ts.map +1 -1
  18. package/dist/browser/resumable.d.ts +6 -0
  19. package/dist/browser/resumable.d.ts.map +1 -1
  20. package/dist/cli.js +9 -7
  21. package/dist/contract/define.d.ts +27 -4
  22. package/dist/contract/define.d.ts.map +1 -1
  23. package/dist/contract/errors-factory.d.ts +22 -3
  24. package/dist/contract/errors-factory.d.ts.map +1 -1
  25. package/dist/contract/index.d.ts +2 -2
  26. package/dist/contract/index.d.ts.map +1 -1
  27. package/dist/contract/index.js +1 -1
  28. package/dist/geo/index.d.ts +4 -0
  29. package/dist/geo/index.d.ts.map +1 -0
  30. package/dist/geo/maxmind.d.ts +4 -0
  31. package/dist/geo/maxmind.d.ts.map +1 -0
  32. package/dist/geo/resolver.d.ts +9 -0
  33. package/dist/geo/resolver.d.ts.map +1 -0
  34. package/dist/geo/types.d.ts +59 -0
  35. package/dist/geo/types.d.ts.map +1 -0
  36. package/dist/geo.d.ts +3 -0
  37. package/dist/geo.d.ts.map +1 -0
  38. package/dist/geo.js +245 -0
  39. package/dist/{index-9s6z8vgf.js → index-1dd82z59.js} +1 -1
  40. package/dist/{index-vwp69871.js → index-27487ay5.js} +4 -4
  41. package/dist/{index-7ag81v2f.js → index-27gm3d6g.js} +10 -321
  42. package/dist/{index-y01f4223.js → index-2bxcmqkb.js} +127 -43
  43. package/dist/{index-dxesg10d.js → index-3ds42w1w.js} +3 -3
  44. package/dist/index-3xwxfj4z.js +334 -0
  45. package/dist/{index-egaabxkz.js → index-5z8tezpx.js} +2 -2
  46. package/dist/{index-fxz0v7vg.js → index-7evdsyez.js} +1 -83
  47. package/dist/{index-xcetq6j3.js → index-90d7h2cr.js} +32 -13
  48. package/dist/{index-t0z5p5w6.js → index-apn8repm.js} +1 -1
  49. package/dist/{index-758zx2ha.js → index-dggwnnjv.js} +2 -2
  50. package/dist/{index-dwf1f2ap.js → index-f9mb610r.js} +1 -62
  51. package/dist/{index-5mtc969c.js → index-fwbkp2jn.js} +1 -1
  52. package/dist/index-p13mwz16.js +16 -0
  53. package/dist/{index-m9kzax52.js → index-p18f59zy.js} +21 -5
  54. package/dist/{index-hb5pf3s4.js → index-qmgs7y68.js} +1 -1
  55. package/dist/{index-2rwwmr7v.js → index-s4ckmrac.js} +1 -1
  56. package/dist/{index-h4pj6fta.js → index-s8cnx02s.js} +8 -5
  57. package/dist/{index-k9ay6v6d.js → index-vchzar7e.js} +74 -23
  58. package/dist/index-vsbzgd7b.js +84 -0
  59. package/dist/{index-dxjjv399.js → index-xbppf54a.js} +95 -15
  60. package/dist/index-y91ry9h2.js +4 -0
  61. package/dist/index-zcgf3gqf.js +83 -0
  62. package/dist/index.js +17 -13
  63. package/dist/internal/error-message.d.ts +3 -0
  64. package/dist/internal/error-message.d.ts.map +1 -0
  65. package/dist/internal/media-type.d.ts +8 -0
  66. package/dist/internal/media-type.d.ts.map +1 -0
  67. package/dist/internal/route-pattern.d.ts +21 -0
  68. package/dist/internal/route-pattern.d.ts.map +1 -1
  69. package/dist/node.js +9 -6
  70. package/dist/observability/audit.d.ts +28 -1
  71. package/dist/observability/audit.d.ts.map +1 -1
  72. package/dist/observability/bounded-logger.d.ts +20 -0
  73. package/dist/observability/bounded-logger.d.ts.map +1 -0
  74. package/dist/observability/context.d.ts +12 -3
  75. package/dist/observability/context.d.ts.map +1 -1
  76. package/dist/observability/index.d.ts +3 -2
  77. package/dist/observability/index.d.ts.map +1 -1
  78. package/dist/observability/index.js +138 -8
  79. package/dist/observability/sanitize.d.ts +17 -0
  80. package/dist/observability/sanitize.d.ts.map +1 -1
  81. package/dist/primitives.js +1 -1
  82. package/dist/react/query-client.d.ts +33 -0
  83. package/dist/react/query-client.d.ts.map +1 -0
  84. package/dist/react.d.ts +1 -0
  85. package/dist/react.d.ts.map +1 -1
  86. package/dist/react.js +83 -1
  87. package/dist/realtime/registry.d.ts +93 -0
  88. package/dist/realtime/registry.d.ts.map +1 -0
  89. package/dist/release/header.d.ts +9 -0
  90. package/dist/release/header.d.ts.map +1 -0
  91. package/dist/release/marker.d.ts +39 -0
  92. package/dist/release/marker.d.ts.map +1 -0
  93. package/dist/release/socket.d.ts +44 -0
  94. package/dist/release/socket.d.ts.map +1 -0
  95. package/dist/release/watcher.d.ts +66 -0
  96. package/dist/release/watcher.d.ts.map +1 -0
  97. package/dist/release.d.ts +15 -0
  98. package/dist/release.d.ts.map +1 -0
  99. package/dist/release.js +196 -0
  100. package/dist/remote.js +12 -7
  101. package/dist/server/context.d.ts +2 -1
  102. package/dist/server/context.d.ts.map +1 -1
  103. package/dist/server/create.d.ts.map +1 -1
  104. package/dist/server/error-hook.d.ts +17 -16
  105. package/dist/server/error-hook.d.ts.map +1 -1
  106. package/dist/server/file-state-store.d.ts +23 -0
  107. package/dist/server/file-state-store.d.ts.map +1 -0
  108. package/dist/server/implement.d.ts.map +1 -1
  109. package/dist/server/index.d.ts +5 -2
  110. package/dist/server/index.d.ts.map +1 -1
  111. package/dist/server/index.js +469 -11
  112. package/dist/server/middleware/cookies.d.ts +33 -1
  113. package/dist/server/middleware/cookies.d.ts.map +1 -1
  114. package/dist/server/middleware/cors.d.ts +16 -1
  115. package/dist/server/middleware/cors.d.ts.map +1 -1
  116. package/dist/server/openapi.d.ts.map +1 -1
  117. package/dist/server/release-signal.d.ts +35 -0
  118. package/dist/server/release-signal.d.ts.map +1 -0
  119. package/dist/server/router.d.ts.map +1 -1
  120. package/dist/server/types.d.ts +26 -2
  121. package/dist/server/types.d.ts.map +1 -1
  122. package/dist/testing/surface-manifest.d.ts.map +1 -1
  123. package/dist/testing.js +7 -4
  124. package/dist/tool-invoker.js +8 -6
  125. package/dist/tools/download-core.d.ts.map +1 -1
  126. package/dist/tools/remote.d.ts.map +1 -1
  127. package/dist/tools/view-file.d.ts.map +1 -1
  128. package/dist/tools.js +20 -16
  129. package/dist/tracking/attribution.d.ts +51 -0
  130. package/dist/tracking/attribution.d.ts.map +1 -0
  131. package/dist/tracking/beacon.d.ts +14 -0
  132. package/dist/tracking/beacon.d.ts.map +1 -0
  133. package/dist/tracking/clicks.d.ts +46 -0
  134. package/dist/tracking/clicks.d.ts.map +1 -0
  135. package/dist/tracking/client.d.ts +121 -0
  136. package/dist/tracking/client.d.ts.map +1 -0
  137. package/dist/tracking/contract.d.ts +46 -0
  138. package/dist/tracking/contract.d.ts.map +1 -0
  139. package/dist/tracking/delivery.d.ts +24 -0
  140. package/dist/tracking/delivery.d.ts.map +1 -0
  141. package/dist/tracking/host.d.ts +43 -0
  142. package/dist/tracking/host.d.ts.map +1 -0
  143. package/dist/tracking/once-per-page.d.ts +17 -0
  144. package/dist/tracking/once-per-page.d.ts.map +1 -0
  145. package/dist/tracking/outbox-storage-indexeddb.d.ts +12 -0
  146. package/dist/tracking/outbox-storage-indexeddb.d.ts.map +1 -0
  147. package/dist/tracking/outbox-storage-memory.d.ts +12 -0
  148. package/dist/tracking/outbox-storage-memory.d.ts.map +1 -0
  149. package/dist/tracking/outbox.d.ts +98 -0
  150. package/dist/tracking/outbox.d.ts.map +1 -0
  151. package/dist/tracking/schemas.d.ts +183 -0
  152. package/dist/tracking/schemas.d.ts.map +1 -0
  153. package/dist/tracking/scroll.d.ts +22 -0
  154. package/dist/tracking/scroll.d.ts.map +1 -0
  155. package/dist/tracking/sequence-reserve.d.ts +34 -0
  156. package/dist/tracking/sequence-reserve.d.ts.map +1 -0
  157. package/dist/tracking/server/active-interval.d.ts +26 -0
  158. package/dist/tracking/server/active-interval.d.ts.map +1 -0
  159. package/dist/tracking/server/bot.d.ts +9 -0
  160. package/dist/tracking/server/bot.d.ts.map +1 -0
  161. package/dist/tracking/server/disposition.d.ts +55 -0
  162. package/dist/tracking/server/disposition.d.ts.map +1 -0
  163. package/dist/tracking/server/hash.d.ts +13 -0
  164. package/dist/tracking/server/hash.d.ts.map +1 -0
  165. package/dist/tracking/server/presence.d.ts +27 -0
  166. package/dist/tracking/server/presence.d.ts.map +1 -0
  167. package/dist/tracking/server/visit-lease.d.ts +92 -0
  168. package/dist/tracking/server/visit-lease.d.ts.map +1 -0
  169. package/dist/tracking/visible-time.d.ts +38 -0
  170. package/dist/tracking/visible-time.d.ts.map +1 -0
  171. package/dist/tracking-server.d.ts +14 -0
  172. package/dist/tracking-server.d.ts.map +1 -0
  173. package/dist/tracking-server.js +173 -0
  174. package/dist/tracking.d.ts +24 -0
  175. package/dist/tracking.d.ts.map +1 -0
  176. package/dist/tracking.js +1090 -0
  177. package/llms-full.txt +986 -30
  178. package/llms.txt +4 -0
  179. package/package.json +26 -5
@@ -0,0 +1,66 @@
1
+ /**
2
+ * The browser's side: is the page still the build the server is serving?
3
+ *
4
+ * `observe(buildId)` compares what the server said to the id this bundle was
5
+ * built with — its **own** id, not the first one it happened to hear. That
6
+ * difference is the whole reason this exists: a tab that loaded a cached
7
+ * bundle after a release and then heard the new id would, under "first seen
8
+ * wins", adopt it as its own and never reload.
9
+ *
10
+ * Once stale, the watcher applies a policy. `immediate` is what a chat app
11
+ * wants and what a form-heavy app does not: `when-hidden` reloads when the
12
+ * tab is next hidden, `on-navigation` when the app next reports a route
13
+ * change, and both give up waiting after `maxDeferMs`.
14
+ *
15
+ * One reload per id. The id a reload was attempted for is remembered across
16
+ * that reload (session storage in a tab); if the page comes back and the
17
+ * server still names it, the server is wrong about what it serves — a marker
18
+ * reading the wrong root, a cached response — and reloading again would be
19
+ * a loop with a policy as its excuse. The page stays, `stale()` is true, and
20
+ * `onStale` has said so. → ADR 0167.
21
+ */
22
+ export type ReleaseReloadPolicy = 'immediate' | 'when-hidden' | 'on-navigation';
23
+ /** What the watcher takes from a browser tab; a test supplies its own. */
24
+ export interface ReleaseWatcherHost {
25
+ hidden(): boolean;
26
+ /** Subscribe to visibility changes; returns the unsubscribe. */
27
+ onVisibilityChange(handler: () => void): () => void;
28
+ setTimeout(handler: () => void, ms: number): () => void;
29
+ reload(): void;
30
+ /** Keep the id a reload was attempted for, across that reload. */
31
+ remember(buildId: string): void;
32
+ /** The id the last reload was attempted for, if the tab still knows. */
33
+ recall(): string | null;
34
+ }
35
+ export interface ReleaseWatcherConfig {
36
+ /** The build id this bundle was built with — `NEXT_PUBLIC_BUILD_ID`, a git SHA. */
37
+ own: string;
38
+ /** Default `when-hidden`. */
39
+ policy?: ReleaseReloadPolicy;
40
+ /** Longest a deferred reload waits for its moment. Default 15 minutes. */
41
+ maxDeferMs?: number;
42
+ /**
43
+ * Own ids that mean "not a release build" — the watcher never reloads for
44
+ * them, so a dev bundle talking to a production API is not sent in a loop.
45
+ * An empty or missing `own` is treated the same way. Default `['dev']`.
46
+ */
47
+ ignore?: readonly string[];
48
+ host?: ReleaseWatcherHost;
49
+ /** Hear the moment the page becomes stale — to show "a new version is ready" yourself. */
50
+ onStale?: (buildId: string) => void;
51
+ }
52
+ export interface ReleaseWatcher {
53
+ /** What the server said; `null` (no release) is ignored. */
54
+ observe(buildId: string | null | undefined): void;
55
+ /** The app changed route — the `on-navigation` policy's moment. */
56
+ navigated(): void;
57
+ stale(): boolean;
58
+ dispose(): void;
59
+ }
60
+ /**
61
+ * The tab. Every read of `document` / `window` is guarded, so the watcher can
62
+ * be constructed during server-side rendering and simply never reload there.
63
+ */
64
+ export declare function browserReleaseHost(): ReleaseWatcherHost;
65
+ export declare function createReleaseWatcher(config: ReleaseWatcherConfig): ReleaseWatcher;
66
+ //# sourceMappingURL=watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/release/watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,aAAa,GAAG,eAAe,CAAC;AAEhF,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,MAAM,IAAI,OAAO,CAAC;IAClB,gEAAgE;IAChE,kBAAkB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACpD,UAAU,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IACxD,MAAM,IAAI,IAAI,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,wEAAwE;IACxE,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAClD,mEAAmE;IACnE,SAAS,IAAI,IAAI,CAAC;IAClB,KAAK,IAAI,OAAO,CAAC;IACjB,OAAO,IAAI,IAAI,CAAC;CACjB;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CA8BvD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAqEjF"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `stitchkit/release` — a page follows the release it was built for.
3
+ *
4
+ * The server keeps a marker of the current frontend build and names it on
5
+ * every HTTP response and every socket connection; the browser compares that
6
+ * to its own build id and reloads under a declared policy. Reading the build
7
+ * id, sending the deploy signal and the moment to reload are the
8
+ * application's; the comparison, the channels and the policy are here, once.
9
+ * → ADR 0167.
10
+ */
11
+ export { RELEASE_HEADER } from './release/header.js';
12
+ export { createReleaseMarker, type ReleaseMarker, type ReleaseMarkerConfig, type ReleaseRefresh, } from './release/marker.js';
13
+ export { bindReleaseToSocketServer, observeReleaseFromSocket, type ReleaseSocketEmitter, type ReleaseSocketListener, type ReleaseSocketOptions, type ReleaseSocketServer, } from './release/socket.js';
14
+ export { browserReleaseHost, createReleaseWatcher, type ReleaseReloadPolicy, type ReleaseWatcher, type ReleaseWatcherConfig, type ReleaseWatcherHost, } from './release/watcher.js';
15
+ //# sourceMappingURL=release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,196 @@
1
+ import {
2
+ RELEASE_HEADER
3
+ } from "./index-y91ry9h2.js";
4
+ // src/release/marker.ts
5
+ var BUILD_ID = /^[!-~]{1,200}$/;
6
+ function createReleaseMarker(config) {
7
+ const listeners = new Set;
8
+ const report = (error) => {
9
+ try {
10
+ config.onError?.(error);
11
+ } catch {}
12
+ };
13
+ const read = () => {
14
+ let value;
15
+ try {
16
+ value = config.read();
17
+ } catch (error) {
18
+ report(error);
19
+ return null;
20
+ }
21
+ if (value === null || value === undefined)
22
+ return null;
23
+ const trimmed = typeof value === "string" ? value.trim() : "";
24
+ if (trimmed === "")
25
+ return null;
26
+ if (!BUILD_ID.test(trimmed)) {
27
+ report(new Error(`release marker: not a build id: ${JSON.stringify(value).slice(0, 80)}`));
28
+ return null;
29
+ }
30
+ return trimmed;
31
+ };
32
+ let current = read();
33
+ return {
34
+ current: () => current,
35
+ refresh() {
36
+ const next = read();
37
+ if (next === null)
38
+ return { changed: false, buildId: current };
39
+ if (next === current)
40
+ return { changed: false, buildId: current };
41
+ current = next;
42
+ for (const listener of listeners) {
43
+ try {
44
+ listener(next);
45
+ } catch (error) {
46
+ report(error);
47
+ }
48
+ }
49
+ return { changed: true, buildId: next };
50
+ },
51
+ subscribe(listener) {
52
+ listeners.add(listener);
53
+ return () => void listeners.delete(listener);
54
+ }
55
+ };
56
+ }
57
+ // src/release/socket.ts
58
+ function bindReleaseToSocketServer(io, marker, options = {}) {
59
+ const event = options.event ?? "release";
60
+ const refreshOnConnection = options.refreshOnConnection ?? true;
61
+ const unsubscribe = marker.subscribe((buildId) => {
62
+ io.emit(event, { buildId });
63
+ });
64
+ io.on("connection", (socket) => {
65
+ if (refreshOnConnection)
66
+ marker.refresh();
67
+ const buildId = marker.current();
68
+ if (buildId !== null)
69
+ socket.emit(event, { buildId });
70
+ });
71
+ return unsubscribe;
72
+ }
73
+ function observeReleaseFromSocket(socket, watcher, options = {}) {
74
+ const event = options.event ?? "release";
75
+ const handler = (payload) => watcher.observe(payload.buildId);
76
+ const returned = socket.on(event, handler);
77
+ return () => {
78
+ if (typeof returned === "function")
79
+ returned();
80
+ else
81
+ socket.off?.(event, handler);
82
+ };
83
+ }
84
+ // src/release/watcher.ts
85
+ var REMEMBER_KEY = "stitchkit.release.reloaded-for";
86
+ function browserReleaseHost() {
87
+ const doc = typeof document === "undefined" ? null : document;
88
+ const win = typeof window === "undefined" ? null : window;
89
+ return {
90
+ hidden: () => doc?.visibilityState === "hidden",
91
+ onVisibilityChange(handler) {
92
+ if (!doc)
93
+ return () => {
94
+ return;
95
+ };
96
+ doc.addEventListener("visibilitychange", handler);
97
+ return () => doc.removeEventListener("visibilitychange", handler);
98
+ },
99
+ setTimeout(handler, ms) {
100
+ const id = globalThis.setTimeout(handler, ms);
101
+ return () => globalThis.clearTimeout(id);
102
+ },
103
+ reload: () => win?.location.reload(),
104
+ remember(buildId) {
105
+ try {
106
+ win?.sessionStorage.setItem(REMEMBER_KEY, buildId);
107
+ } catch {}
108
+ },
109
+ recall() {
110
+ try {
111
+ return win?.sessionStorage.getItem(REMEMBER_KEY) ?? null;
112
+ } catch {
113
+ return null;
114
+ }
115
+ }
116
+ };
117
+ }
118
+ function createReleaseWatcher(config) {
119
+ const policy = config.policy ?? "when-hidden";
120
+ const maxDeferMs = config.maxDeferMs ?? 15 * 60 * 1000;
121
+ const ignore = new Set(config.ignore ?? ["dev"]);
122
+ const host = config.host ?? browserReleaseHost();
123
+ let stale = false;
124
+ let done = false;
125
+ let target = null;
126
+ const cleanups = [];
127
+ const reload = () => {
128
+ if (done)
129
+ return;
130
+ done = true;
131
+ for (const off of cleanups.splice(0))
132
+ off();
133
+ if (target !== null)
134
+ host.remember(target);
135
+ host.reload();
136
+ };
137
+ const notify = (buildId) => {
138
+ try {
139
+ config.onStale?.(buildId);
140
+ } catch {}
141
+ };
142
+ return {
143
+ observe(buildId) {
144
+ if (stale || done)
145
+ return;
146
+ if (buildId === null || buildId === undefined || buildId === "")
147
+ return;
148
+ if (!config.own || ignore.has(config.own))
149
+ return;
150
+ if (buildId === config.own)
151
+ return;
152
+ stale = true;
153
+ target = buildId;
154
+ if (host.recall() === buildId) {
155
+ notify(buildId);
156
+ return;
157
+ }
158
+ if (policy === "immediate") {
159
+ reload();
160
+ notify(buildId);
161
+ return;
162
+ }
163
+ if (policy === "when-hidden") {
164
+ if (host.hidden()) {
165
+ reload();
166
+ notify(buildId);
167
+ return;
168
+ }
169
+ cleanups.push(host.onVisibilityChange(() => {
170
+ if (host.hidden())
171
+ reload();
172
+ }));
173
+ }
174
+ cleanups.push(host.setTimeout(reload, maxDeferMs));
175
+ notify(buildId);
176
+ },
177
+ navigated() {
178
+ if (stale && policy === "on-navigation")
179
+ reload();
180
+ },
181
+ stale: () => stale,
182
+ dispose() {
183
+ done = true;
184
+ for (const off of cleanups.splice(0))
185
+ off();
186
+ }
187
+ };
188
+ }
189
+ export {
190
+ observeReleaseFromSocket,
191
+ createReleaseWatcher,
192
+ createReleaseMarker,
193
+ browserReleaseHost,
194
+ bindReleaseToSocketServer,
195
+ RELEASE_HEADER
196
+ };
package/dist/remote.js CHANGED
@@ -1,16 +1,20 @@
1
1
  import {
2
- ApiError,
3
2
  createClient
4
- } from "./index-7ag81v2f.js";
5
- import"./index-hb5pf3s4.js";
6
- import"./index-fxz0v7vg.js";
3
+ } from "./index-27gm3d6g.js";
4
+ import"./index-qmgs7y68.js";
7
5
  import {
8
- mergeMeta
9
- } from "./index-y01f4223.js";
6
+ ApiError
7
+ } from "./index-3xwxfj4z.js";
8
+ import"./index-7evdsyez.js";
9
+ import {
10
+ mergeMeta,
11
+ resolveRouteParamsSchema
12
+ } from "./index-2bxcmqkb.js";
10
13
  import"./index-6k1937bx.js";
11
14
  import {
12
15
  AppError
13
16
  } from "./index-0w9abg87.js";
17
+ import"./index-zcgf3gqf.js";
14
18
  import"./index-kzfs85xp.js";
15
19
  import {
16
20
  isRecord
@@ -42,7 +46,7 @@ function implementRemote(contract, http, options) {
42
46
  annotations: "annotations" in endpoint ? endpoint.annotations : undefined,
43
47
  meta: mergeMeta(contract.meta.meta, endpoint.meta),
44
48
  scope: endpoint.scope ?? groupScope,
45
- paramsSchema: endpoint.params,
49
+ paramsSchema: resolveRouteParamsSchema(endpoint.path, endpoint.params),
46
50
  inputSchema: endpoint.input,
47
51
  outputSchema: endpoint.output,
48
52
  multipart: endpoint.multipart,
@@ -50,6 +54,7 @@ function implementRemote(contract, http, options) {
50
54
  idempotent: endpoint.idempotent,
51
55
  rawResponse: endpoint.rawResponse,
52
56
  rawBody: endpoint.rawBody,
57
+ safelistedBody: endpoint.safelistedBody,
53
58
  responseMeta: endpoint.responseMeta,
54
59
  contentType: "contentType" in endpoint ? endpoint.contentType : undefined,
55
60
  handler: async (ctx) => {
@@ -3,6 +3,7 @@
3
3
  * endpoint schemas and gathers request metadata (trace id, client info).
4
4
  */
5
5
  import { type RuntimeContext } from '../contract/index.js';
6
+ import { type CorsConfig } from './middleware/cors.js';
6
7
  import { type MultipartLifecycle } from './multipart.js';
7
8
  import { type ClientIpOptions } from './request.js';
8
9
  import type { AuthorizationContext, MethodDef } from './types.js';
@@ -25,6 +26,6 @@ export declare function buildBaseContext(req: Request, url: URL, pathParams: Rec
25
26
  */
26
27
  export declare function parsePathParamsInto(ctx: RuntimeContext, method: MethodDef): void;
27
28
  /** Parse query, JSON or multipart payload after pre-body authorization. */
28
- export declare function parseRequestPayloadInto(ctx: RuntimeContext, req: Request, url: URL, method: MethodDef, maxJsonBodyBytes?: number): Promise<MultipartLifecycle | undefined>;
29
+ export declare function parseRequestPayloadInto(ctx: RuntimeContext, req: Request, url: URL, method: MethodDef, maxJsonBodyBytes?: number, cors?: CorsConfig): Promise<MultipartLifecycle | undefined>;
29
30
  export declare function buildErrorContext(req: Request, url: URL, traceId: string, clientIp: ClientIpOptions): RuntimeContext;
30
31
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,KAAK,kBAAkB,EAAkB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAmC,MAAM,WAAW,CAAC;AAElF,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAoB/D;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,GACxB,oBAAoB,CAoBtB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAIhF;AAED,2EAA2E;AAC3E,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,SAAS,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA+BzC;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,GACxB,cAAc,CAYhB"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAIzE,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,KAAK,kBAAkB,EAAkB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAmC,MAAM,WAAW,CAAC;AAElF,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA2C/D;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,GACxB,oBAAoB,CAoBtB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAIhF;AAED,2EAA2E;AAC3E,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,SAAS,EACjB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA8BzC;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,GACxB,cAAc,CAYhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/server/create.ts"],"names":[],"mappings":"AAuDA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAId,MAAM,SAAS,CAAC;AAkCjB,wBAAgB,aAAa,CAAC,OAAO,GAAG,OAAO,EAC7C,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAC7B,YAAY,CAAC,OAAO,CAAC,CAujBvB"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/server/create.ts"],"names":[],"mappings":"AAwDA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAId,MAAM,SAAS,CAAC;AAkCjB,wBAAgB,aAAa,CAAC,OAAO,GAAG,OAAO,EAC7C,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAC7B,YAAY,CAAC,OAAO,CAAC,CA+jBvB"}
@@ -52,7 +52,21 @@ export interface ResolvedError {
52
52
  hint?: string;
53
53
  }
54
54
  /** Config for `createErrorHook`. */
55
- export interface ErrorHookConfig<TWireCode extends string = string> {
55
+ export interface ErrorHookBase {
56
+ /** Build the response body from the resolved error. */
57
+ render: (info: ResolvedError, ctx: RuntimeContext, endpoint?: MethodDef) => unknown | Promise<unknown>;
58
+ /** Observe the raw thrown value before rendering. */
59
+ onError?: (error: unknown, info: ResolvedError, ctx: RuntimeContext, endpoint?: MethodDef) => unknown | Promise<unknown>;
60
+ }
61
+ export type ErrorHookMapping<TWireCode extends string> = {
62
+ /** A vocabulary returned by `defineErrors`; its generated map is canonical. */
63
+ vocabulary: {
64
+ readonly codeMap: Partial<Record<StitchErrorCode, TWireCode>>;
65
+ };
66
+ codeMap?: never;
67
+ unmappedCode?: never;
68
+ } | {
69
+ vocabulary?: never;
56
70
  /**
57
71
  * Remap stitchkit's own error codes to your public wire codes.
58
72
  *
@@ -72,21 +86,8 @@ export interface ErrorHookConfig<TWireCode extends string = string> {
72
86
  * fallback and continue to pass through unchanged.
73
87
  */
74
88
  unmappedCode?: TWireCode | ((code: StitchErrorCode) => TWireCode);
75
- /** Build the response body from the resolved error. */
76
- /**
77
- * Build the response body from the resolved error. `ctx` is the request's
78
- * `RuntimeContext` — read `ctx.traceId` / `ctx.spanId` to put a correlation id
79
- * in the envelope, which is the ordinary reason to have one. Declaring the
80
- * parameter is optional: a one-argument `render` stays assignable.
81
- */
82
- render: (info: ResolvedError, ctx: RuntimeContext, endpoint?: MethodDef) => unknown | Promise<unknown>;
83
- /**
84
- * Observe the raw thrown value before rendering — logging, metrics or
85
- * asynchronous request attribution. The matched endpoint is absent for
86
- * failures that happen before the router resolves an operation.
87
- */
88
- onError?: (error: unknown, info: ResolvedError, ctx: RuntimeContext, endpoint?: MethodDef) => unknown | Promise<unknown>;
89
- }
89
+ };
90
+ export type ErrorHookConfig<TWireCode extends string = string> = ErrorHookBase & ErrorHookMapping<TWireCode>;
90
91
  /** Build an `onError` hook from a code map + envelope renderer. */
91
92
  export declare function createErrorHook<TWireCode extends string = string>(config: ErrorHookConfig<TWireCode>): NonNullable<LifecycleHooks['onError']>;
92
93
  //# sourceMappingURL=error-hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-hook.d.ts","sourceRoot":"","sources":["../../src/server/error-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzD,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAe,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IAChE;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC;IAClE,uDAAuD;IACvD;;;;;OAKG;IACH,MAAM,EAAE,CACN,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,SAAS,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,SAAS,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAC/D,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,GACjC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAkCxC"}
1
+ {"version":3,"file":"error-hook.d.ts","sourceRoot":"","sources":["../../src/server/error-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzD,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,MAAM,EAAE,CACN,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,SAAS,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,qDAAqD;IACrD,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,SAAS,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,gBAAgB,CAAC,SAAS,SAAS,MAAM,IACjD;IACE,+EAA+E;IAC/E,UAAU,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAA;KAAE,CAAC;IAC9E,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB,GACD;IACE,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC;CACnE,CAAC;AAEN,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,IAAI,aAAa,GAC5E,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAE9B,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAC/D,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,GACjC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CA8CxC"}
@@ -0,0 +1,23 @@
1
+ import type { z } from 'zod';
2
+ import type { StateStore } from '../application/state-store.js';
3
+ export interface FileStateStoreCorruption {
4
+ readonly path: string;
5
+ readonly error: unknown;
6
+ }
7
+ export interface FileStateStoreOptions<TState> {
8
+ readonly schema: z.ZodType<TState>;
9
+ /** `throw` is the safe default. `empty` is appropriate for reconstructable ledgers. */
10
+ readonly corrupt?: 'throw' | 'empty';
11
+ readonly onCorrupt?: (failure: FileStateStoreCorruption) => void | Promise<void>;
12
+ readonly lockTimeoutMs?: number;
13
+ readonly staleLockMs?: number;
14
+ readonly retryMs?: number;
15
+ }
16
+ /**
17
+ * A versioned JSON state store with one cross-process atomic update boundary.
18
+ *
19
+ * The lock is an exclusive file, not an in-memory mutex. Writes use a unique
20
+ * temporary file in the destination directory followed by an atomic rename.
21
+ */
22
+ export declare function createFileStateStore<TState>(path: string, options: FileStateStoreOptions<TState>): StateStore<TState>;
23
+ //# sourceMappingURL=file-state-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-state-store.d.ts","sourceRoot":"","sources":["../../src/server/file-state-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,4BAA4B,CAAC;AAG/E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB,CAAC,MAAM;IAC3C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAqID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,GACrC,UAAU,CAAC,MAAM,CAAC,CAuIpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"implement.d.ts","sourceRoot":"","sources":["../../src/server/implement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"implement.d.ts","sourceRoot":"","sources":["../../src/server/implement.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,19 @@
1
1
  export { AppError, appError, badRequest, conflict, forbidden, isStitchErrorCode, notFound, rateLimited, STITCH_ERROR_STATUS, type StitchErrorCode, unauthorized, } from '../contract/index.js';
2
2
  export { errorCode, formatZodError, normalizeError, type ZodIssueSummary, zodIssues, } from '../internal/errors.js';
3
3
  export { isWithinDir } from '../internal/within-dir.js';
4
+ export { type AuthorizedSocketRoom, bindSocketRegistry, type SocketRegistry, type SocketRegistryConnection, type SocketRegistryOptions, type SocketRegistryServer, type SocketRegistrySnapshot, type SocketReplayFrame, } from '../realtime/registry.js';
4
5
  export { type BunFetchComposition as FetchComposition, type BunFetchHandler as FetchHandler, type BunHandlerConfig as HandlerConfig, type BunRawRoute as RawRoute, type BunRawRouteContext as RawRouteContext, type BunServer, type BunServerConfig, type BunServerHandle, createServer, type ServerPassthrough, type UnixListenConfig, } from './bun.js';
5
6
  export { type CacheOptions, cacheHeaders, createCache } from './cache.js';
6
7
  export { createHandler } from './create.js';
7
- export { createErrorHook, type ErrorHookConfig, type ResolvedError, } from './error-hook.js';
8
+ export { createErrorHook, type ErrorHookBase, type ErrorHookConfig, type ErrorHookMapping, type ResolvedError, } from './error-hook.js';
8
9
  export { createEventBus, type DefaultEventMap, type EventBus, type EventBusOptions, type EventHandler, } from './event-bus.js';
9
10
  export { type ByteRange, parseByteRange, type ServeFileOptions, serveFile, staticRoute, weakETag, } from './file.js';
11
+ export { createFileStateStore, type FileStateStoreCorruption, type FileStateStoreOptions, } from './file-state-store.js';
10
12
  export { createImplement, createImplementRegistry, createMultipartStream, createScopedImplement, createScopedImplementRegistry, defineMultipartStream, type ExactRegistryHandlers, type ExactScopedRegistryHandlers, type ImplementationRegistry, implement, implementRegistry, type KeyedServices, type MultipartStreamConfig, type RegistryHandlers, type ScopedImplementationRegistry, type ScopedRegistryHandlers, type StreamScope, } from './implement.js';
11
13
  export { composeLifecycleHooks } from './lifecycle.js';
12
14
  export type { LogFormat } from './logger.js';
13
15
  export { type AuthHook, type AuthHookConfig, type AuthRule, type AuthRuleContribution, type AuthRules, type AuthScopes, type BearerResolverConfig, type ComposeAuthHooksConfig, type ComposedAuthScopes, composeAuthHooks, createAuthHook, createBearerResolver, extractToken, type JwtPayload, type RuleScopes, type ScopedAuthHook, type ScopedAuthRule, type SignJwtOptions, signJwt, type VerifyJwtOptions, verifyJwt, } from './middleware/auth.js';
14
- export { type CookieDef, type CookieOptions, defineCookie, parseCookies, serializeCookie, } from './middleware/cookies.js';
16
+ export { type CookieDef, type CookieDuplicatesPolicy, type CookieOptions, defineCookie, parseCookieHeader, parseCookies, serializeCookie, } from './middleware/cookies.js';
15
17
  export { type CorsConfig, corsHeaders, corsPreflightResponse, DEFAULT_CORS_ALLOW_HEADERS, DEFAULT_CORS_EXPOSE_HEADERS, } from './middleware/cors.js';
16
18
  export { deriveCodeChallenge, type PkceMethod, verifyPkce } from './middleware/pkce.js';
17
19
  export { createTrustFence, isLoopbackAddress, type TrustFence, type TrustFenceConfig, type TrustLane, type TrustRefusal, type TrustRefusalReason, } from './middleware/trust-fence.js';
@@ -21,6 +23,7 @@ export { bindProcessSignals, type ProcessSignalName, type ProcessSignalsBinding,
21
23
  export { createRateLimiter, type RateLimitConfig } from './rate-limit.js';
22
24
  export { errorResponse, parseBody, respondJson } from './raw.js';
23
25
  export { bindRealtimeServer, type RealtimeServer, type RealtimeServerConnection, type RealtimeServerHandle, } from './realtime.js';
26
+ export { bindReleaseRefreshSignal, type ReleaseRefreshSignal, type ReleaseRefreshSignalOptions, } from './release-signal.js';
24
27
  export { type ClientIpOptions, extractIp, generateTraceId, getClientInfo, isPublicIp, resolveSocketIp, resolveTraceId, } from './request.js';
25
28
  export { type ManagedServerHandle, type ShutdownOptions, ShutdownOptionsSchema, type ShutdownResult, ShutdownResultSchema, type ShutdownState, ShutdownStateSchema, type ShutdownStatus, ShutdownStatusSchema, } from './shutdown.js';
26
29
  export type { SocketIOHandshakeConfig, SocketIOPeerLoaders, SocketIORequestPolicy, SocketIOServerConfig, SocketIOServerHandle, SocketIOServerLifecycle, } from './socket-io.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}