statewire 0.21.0 → 0.22.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 (134) hide show
  1. package/dist/client/changes.d.ts +3 -6
  2. package/dist/client/changes.d.ts.map +1 -1
  3. package/dist/client/changes.js +1 -2
  4. package/dist/client/connection.d.ts +80 -83
  5. package/dist/client/connection.d.ts.map +1 -1
  6. package/dist/client/connection.js +2 -3
  7. package/dist/client/connection.js.map +1 -1
  8. package/dist/client/core.d.ts +39 -41
  9. package/dist/client/core.d.ts.map +1 -1
  10. package/dist/client/core.js +2 -3
  11. package/dist/client/session.d.ts +93 -95
  12. package/dist/client/session.d.ts.map +1 -1
  13. package/dist/client/session.js +6 -7
  14. package/dist/client/session.js.map +1 -1
  15. package/dist/client/sessionStore.d.ts +11 -14
  16. package/dist/client/sessionStore.d.ts.map +1 -1
  17. package/dist/client/sessionStore.js +1 -2
  18. package/dist/client/storageError.d.ts +2 -5
  19. package/dist/client/storageError.d.ts.map +1 -1
  20. package/dist/client/storageError.js +1 -2
  21. package/dist/client/timing.d.ts +11 -14
  22. package/dist/client/timing.d.ts.map +1 -1
  23. package/dist/client/timing.js +1 -2
  24. package/dist/document.d.ts +17 -20
  25. package/dist/document.d.ts.map +1 -1
  26. package/dist/document.js +1 -2
  27. package/dist/host/adapter.d.ts +4 -7
  28. package/dist/host/adapter.d.ts.map +1 -1
  29. package/dist/host/adapter.js +1 -2
  30. package/dist/host/draft.d.ts +13 -16
  31. package/dist/host/draft.d.ts.map +1 -1
  32. package/dist/host/draft.js +1 -2
  33. package/dist/host/engine.d.ts +7 -10
  34. package/dist/host/engine.d.ts.map +1 -1
  35. package/dist/host/engine.js +1 -2
  36. package/dist/host/host.d.ts +42 -45
  37. package/dist/host/host.d.ts.map +1 -1
  38. package/dist/host/host.js +1 -2
  39. package/dist/host/http.d.ts +4 -7
  40. package/dist/host/http.d.ts.map +1 -1
  41. package/dist/host/http.js +2 -3
  42. package/dist/host/socket.d.ts +148 -145
  43. package/dist/host/socket.d.ts.map +1 -1
  44. package/dist/host/socket.js +30 -12
  45. package/dist/host/socket.js.map +1 -1
  46. package/dist/host/synced.d.ts +3 -6
  47. package/dist/host/synced.d.ts.map +1 -1
  48. package/dist/host/synced.js +1 -2
  49. package/dist/host/work.d.ts +2 -5
  50. package/dist/host/work.d.ts.map +1 -1
  51. package/dist/host/work.js +1 -2
  52. package/dist/host-internal.d.ts +101 -93
  53. package/dist/host-internal.d.ts.map +1 -1
  54. package/dist/host.d.ts +90 -91
  55. package/dist/host.d.ts.map +1 -1
  56. package/dist/index.d.ts +11 -8
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +1 -1
  59. package/dist/statewire.d.ts +265 -268
  60. package/dist/statewire.d.ts.map +1 -1
  61. package/dist/statewire.js +1 -2
  62. package/dist/storage.d.ts +23 -26
  63. package/dist/storage.d.ts.map +1 -1
  64. package/dist/storage.js +1 -2
  65. package/dist/transports/fake-sse.d.ts +7 -10
  66. package/dist/transports/fake-sse.d.ts.map +1 -1
  67. package/dist/transports/fake-sse.js +1 -2
  68. package/dist/transports/fixtures.d.ts +19 -25
  69. package/dist/transports/fixtures.d.ts.map +1 -1
  70. package/dist/transports/fixtures.js +1 -2
  71. package/dist/transports/remote.d.ts +8 -11
  72. package/dist/transports/remote.d.ts.map +1 -1
  73. package/dist/transports/remote.js +1 -2
  74. package/dist/transports/sse-parser.d.ts +1 -4
  75. package/dist/transports/sse-parser.d.ts.map +1 -1
  76. package/dist/transports/sse-parser.js +1 -2
  77. package/dist/transports/sse.d.ts +50 -53
  78. package/dist/transports/sse.d.ts.map +1 -1
  79. package/dist/transports/sse.js +2 -3
  80. package/dist/transports/testing.d.ts +31 -34
  81. package/dist/transports/testing.d.ts.map +1 -1
  82. package/dist/transports/testing.js +1 -2
  83. package/dist/transports/ws.d.ts +5 -7
  84. package/dist/transports/ws.d.ts.map +1 -1
  85. package/dist/transports/ws.js +3 -4
  86. package/dist/transports/ws.js.map +1 -1
  87. package/dist/types.d.ts +81 -78
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/types.js +1 -2
  90. package/dist/util/draftTraps.d.ts +2 -4
  91. package/dist/util/draftTraps.d.ts.map +1 -1
  92. package/dist/util/draftTraps.js +1 -2
  93. package/dist/util/macrotask.d.ts +1 -4
  94. package/dist/util/macrotask.d.ts.map +1 -1
  95. package/dist/util/macrotask.js +1 -2
  96. package/dist/util/methodProxy.d.ts +1 -4
  97. package/dist/util/methodProxy.d.ts.map +1 -1
  98. package/dist/util/methodProxy.js +1 -2
  99. package/dist/util/randomId.d.ts +1 -4
  100. package/dist/util/randomId.d.ts.map +1 -1
  101. package/dist/util/randomId.js +1 -2
  102. package/dist/util/recordMutations.d.ts +5 -7
  103. package/dist/util/recordMutations.d.ts.map +1 -1
  104. package/dist/util/recordMutations.js +1 -2
  105. package/dist/util/statePath.d.ts +9 -12
  106. package/dist/util/statePath.d.ts.map +1 -1
  107. package/dist/util/statePath.js +1 -2
  108. package/dist/wire/context.d.ts +7 -12
  109. package/dist/wire/context.d.ts.map +1 -1
  110. package/dist/wire/context.js +2 -3
  111. package/dist/wire/documents.d.ts +36 -39
  112. package/dist/wire/documents.d.ts.map +1 -1
  113. package/dist/wire/documents.js +2 -3
  114. package/dist/wire/documents.js.map +1 -1
  115. package/dist/wire/limits.d.ts +7 -10
  116. package/dist/wire/limits.d.ts.map +1 -1
  117. package/dist/wire/limits.js +1 -2
  118. package/dist/wire/meta.d.ts +9 -11
  119. package/dist/wire/meta.d.ts.map +1 -1
  120. package/dist/wire/meta.js +1 -2
  121. package/dist/wire/meta.js.map +1 -1
  122. package/dist/wire/ops.d.ts +9 -12
  123. package/dist/wire/ops.d.ts.map +1 -1
  124. package/dist/wire/ops.js +1 -2
  125. package/dist/wire/protocol.d.ts +53 -56
  126. package/dist/wire/protocol.d.ts.map +1 -1
  127. package/dist/wire/protocol.js +1 -2
  128. package/dist/wire/version.d.ts +1 -4
  129. package/dist/wire/version.d.ts.map +1 -1
  130. package/dist/wire/version.js +1 -2
  131. package/package.json +6 -6
  132. package/src/client/connection.ts +13 -15
  133. package/src/host/socket.ts +63 -6
  134. package/src/host-internal.ts +12 -0
@@ -1,174 +1,178 @@
1
- import { CommandsHost } from "./host.js";
2
- import { StatewireHost } from "../host.js";
3
- import { StatewireProtocol } from "../wire/protocol.js";
4
- import { StatewireDocument } from "../document.js";
5
- import { Statewire } from "../types.js";
6
- import { StatewirePath } from "../wire/ops.js";
7
- import { StatewireHostInternal } from "../host-internal.js";
8
- import { ResourceElement } from "@assistant-ui/tap";
9
- //#region src/host/socket.d.ts
10
- declare const CLIENT_ID_RE: RegExp;
11
- declare const PRINCIPAL_MISMATCH_MESSAGE = "client id is bound to another principal";
1
+ import type { StatewireProtocol } from "../wire/protocol.js";
2
+ import type { ResourceElement } from "@assistant-ui/tap";
3
+ import type { CommandsHost } from "./host.js";
4
+ import type { Statewire } from "../types.js";
5
+ import type { StatewireHost } from "../host.js";
6
+ import type { StatewireHostInternal } from "../host-internal.js";
7
+ import type { StatewireDocument } from "../document.js";
8
+ import type { StatewirePath } from "../wire/ops.js";
9
+ export declare const CLIENT_ID_RE: RegExp;
10
+ export declare const PRINCIPAL_MISMATCH_MESSAGE = "client id is bound to another principal";
12
11
  /** Structural equality over auth values: primitives, Dates, arrays, and plain
13
12
  * objects compare by value; anything else by identity. */
14
- declare const authEquals: (a: unknown, b: unknown) => boolean;
15
- declare const SUBSCRIBER_LIMIT_MESSAGE = "stream subscriber limit reached";
13
+ export declare const authEquals: (a: unknown, b: unknown) => boolean;
14
+ export declare const SUBSCRIBER_LIMIT_MESSAGE = "stream subscriber limit reached";
16
15
  type Cmd = StatewireHostInternal.Cmd;
17
16
  type WireOp = {
18
- op: string;
19
- doc?: number;
20
- path?: StatewirePath;
21
- value?: unknown;
22
- meta?: StatewireDocument.MetaEntry[];
23
- protocol?: string;
24
- key?: readonly string[];
25
- main?: boolean;
17
+ op: string;
18
+ doc?: number;
19
+ path?: StatewirePath;
20
+ value?: unknown;
21
+ meta?: StatewireDocument.MetaEntry[];
22
+ protocol?: string;
23
+ key?: readonly string[];
24
+ main?: boolean;
26
25
  };
27
26
  type Admission = {
28
- protocol: string;
29
- seq: number;
30
- method: string;
31
- applied: boolean;
32
- appliedSent: boolean;
33
- settled: boolean;
27
+ protocol: string;
28
+ seq: number;
29
+ method: string;
30
+ applied: boolean;
31
+ appliedSent: boolean;
32
+ settled: boolean;
34
33
  };
35
34
  /** One statement lane: durable lanes live on the client record, ephemeral lanes on the attach. */
36
35
  type Lane = {
37
- protocol: string;
38
- clientId: string;
39
- conn: Conn | null;
40
- lastSeq: number;
41
- results: Map<number, {
42
- ts: number;
43
- cmd: Cmd;
44
- }>;
45
- inflight: Map<number, Admission>;
36
+ protocol: string;
37
+ clientId: string;
38
+ conn: Conn | null;
39
+ lastSeq: number;
40
+ results: Map<number, {
41
+ ts: number;
42
+ cmd: Cmd;
43
+ }>;
44
+ inflight: Map<number, Admission>;
46
45
  };
47
- type ClientRec = {
48
- id: string;
49
- touched: number;
50
- lanes: Map<string, Lane>;
51
- /** The auth captured at the record's first attach; later attaches must match. */
52
- principal: unknown;
46
+ export type ClientRec = {
47
+ id: string;
48
+ touched: number;
49
+ lanes: Map<string, Lane>;
50
+ /** The auth captured at the record's first attach; later attaches must match. */
51
+ principal: unknown;
53
52
  };
54
- type Conn = {
55
- selection: StatewireProtocol.Selection;
56
- clientId: string;
57
- socket: StatewireHostInternal.Socket;
58
- open: boolean;
59
- ready: boolean;
60
- sawFrame: boolean;
61
- lastSentAt: number;
62
- lease: string | null;
63
- /** The awaited `authorize` return captured at this attach's authorization. */
64
- auth: unknown;
65
- authorizedAt: number | undefined;
66
- leaseTimer: ReturnType<typeof setTimeout> | null;
67
- lanes: Map<string, Lane>;
68
- contexts: Map<string, Statewire.Context>;
69
- documents: Map<string, StatewireHost.Document>;
70
- included: Set<string>;
71
- view: Map<string, {
72
- doc: number;
73
- value: unknown;
74
- }>;
75
- nextDoc: number;
76
- pendingApplied: Cmd[];
77
- pendingCmds: Cmd[];
78
- attach: StatewireHost.Attach;
53
+ export type Conn = {
54
+ selection: StatewireProtocol.Selection;
55
+ clientId: string;
56
+ socket: StatewireHostInternal.Socket;
57
+ open: boolean;
58
+ ready: boolean;
59
+ sawFrame: boolean;
60
+ lastSentAt: number;
61
+ lease: string | null;
62
+ /** The awaited `authorize` return captured at this attach's authorization. */
63
+ auth: unknown;
64
+ authorizedAt: number | undefined;
65
+ leaseTimer: ReturnType<typeof setTimeout> | null;
66
+ timedLease: boolean;
67
+ lanes: Map<string, Lane>;
68
+ contexts: Map<string, Statewire.Context>;
69
+ documents: Map<string, StatewireHost.Document>;
70
+ included: Set<string>;
71
+ onIncludedChange: ((included: readonly StatewireHostInternal.IncludedDocument[]) => void) | undefined;
72
+ view: Map<string, {
73
+ doc: number;
74
+ value: unknown;
75
+ }>;
76
+ nextDoc: number;
77
+ pendingApplied: Cmd[];
78
+ pendingCmds: Cmd[];
79
+ attach: StatewireHost.Attach;
79
80
  };
80
81
  type PendingConn = {
81
- socket: StatewireHostInternal.Socket;
82
- open: boolean;
83
- authorizing: boolean;
84
- queued: string[];
85
- timer: ReturnType<typeof setTimeout> | null;
86
- connection: StatewireHostInternal.SocketConnection | null;
82
+ socket: StatewireHostInternal.Socket;
83
+ open: boolean;
84
+ authorizing: boolean;
85
+ queued: string[];
86
+ timer: ReturnType<typeof setTimeout> | null;
87
+ connection: StatewireHostInternal.SocketConnection | null;
87
88
  };
88
89
  type CmdStatement = {
89
- protocol: string;
90
- seq: number;
91
- method: string;
92
- params: unknown;
93
- meta?: unknown;
94
- };
95
- type ParsedFrame = {
96
- cmd: CmdStatement[];
97
- ctx?: {
98
90
  protocol: string;
99
- value: Statewire.Context;
100
- }[];
91
+ seq: number;
92
+ method: string;
93
+ params: unknown;
94
+ meta?: unknown;
95
+ };
96
+ export type ParsedFrame = {
97
+ cmd: CmdStatement[];
98
+ ctx?: {
99
+ protocol: string;
100
+ value: Statewire.Context;
101
+ }[];
101
102
  };
102
- declare const parseFrameValue: (frame: unknown) => ParsedFrame;
103
- declare const parseFrame: (raw: string) => ParsedFrame;
104
- type SocketHostState = {
105
- protocol: StatewireProtocol.Definition;
106
- key: readonly string[] | undefined;
107
- wireVersion: StatewireProtocol.Range;
108
- heartbeatMs: number;
109
- maxLeaseLifetimeMs: number | null;
110
- wsInitTimeoutMs: number;
111
- maxSubscribers: number;
112
- maxInflightCommands: number;
113
- streamQueueSize: number;
114
- clientRecordLimit: number;
115
- finOnIdle: boolean;
116
- pushback: (() => number | null) | undefined;
117
- authorize: StatewireHostInternal.SocketHostOptions["authorize"];
118
- clients: Map<string, ClientRec>;
119
- conns: Set<Conn>;
120
- pendingConns: Set<PendingConn>;
121
- pendingOps: WireOp[];
122
- pendingApplied: Map<string, Cmd[]>;
123
- pendingCmds: Map<string, Cmd[]>;
124
- viewsDirty: boolean;
125
- idleWire: boolean;
126
- finished: StatewireHost.Fin | null;
127
- disposed: boolean;
128
- flushScheduled: boolean;
129
- heartbeatTimer: ReturnType<typeof setInterval> | null;
130
- stateHost: StatewireHost.StateHost | null;
131
- commandsHost: CommandsHost | null;
132
- current: Statewire<unknown> | null;
133
- persistence: StatewireHostInternal.SocketHostPersistence | undefined;
134
- post: () => void;
135
- connect: (clientId: string, socket: StatewireHostInternal.Socket, options?: StatewireHostInternal.SocketConnectOptions) => StatewireHostInternal.SocketConnection | null;
136
- finish: (fin: StatewireHost.Fin) => void;
137
- stream: (request: Request) => Promise<Response>;
138
- frames: (request: Request) => Promise<Response>;
103
+ export declare const parseFrameValue: (frame: unknown) => ParsedFrame;
104
+ export declare const parseFrame: (raw: string) => ParsedFrame;
105
+ export type SocketHostState = {
106
+ protocol: StatewireProtocol.Definition;
107
+ key: readonly string[] | undefined;
108
+ wireVersion: StatewireProtocol.Range;
109
+ heartbeatMs: number;
110
+ maxLeaseLifetimeMs: number | null;
111
+ leaseTimers: boolean;
112
+ wsInitTimeoutMs: number;
113
+ maxSubscribers: number;
114
+ maxInflightCommands: number;
115
+ streamQueueSize: number;
116
+ clientRecordLimit: number;
117
+ finOnIdle: boolean;
118
+ pushback: (() => number | null) | undefined;
119
+ authorize: StatewireHostInternal.SocketHostOptions["authorize"];
120
+ clients: Map<string, ClientRec>;
121
+ conns: Set<Conn>;
122
+ pendingConns: Set<PendingConn>;
123
+ pendingOps: WireOp[];
124
+ pendingApplied: Map<string, Cmd[]>;
125
+ pendingCmds: Map<string, Cmd[]>;
126
+ viewsDirty: boolean;
127
+ idleWire: boolean;
128
+ finished: StatewireHost.Fin | null;
129
+ disposed: boolean;
130
+ flushScheduled: boolean;
131
+ heartbeatTimer: ReturnType<typeof setInterval> | null;
132
+ stateHost: StatewireHost.StateHost | null;
133
+ commandsHost: CommandsHost | null;
134
+ current: Statewire<unknown> | null;
135
+ persistence: StatewireHostInternal.SocketHostPersistence | undefined;
136
+ post: () => void;
137
+ connect: (clientId: string, socket: StatewireHostInternal.Socket, options?: StatewireHostInternal.SocketConnectOptions) => StatewireHostInternal.SocketConnection | null;
138
+ finish: (fin: StatewireHost.Fin) => void;
139
+ stream: (request: Request) => Promise<Response>;
140
+ frames: (request: Request) => Promise<Response>;
139
141
  };
140
- declare const closeConn: (h: SocketHostState, conn: Conn, code?: number, reason?: string) => void;
141
- declare const sendTo: (h: SocketHostState, conn: Conn, data: string) => void;
142
- declare const expireLease: (h: SocketHostState, conn: Conn) => boolean;
143
- declare const atSubscriberLimit: (h: SocketHostState) => boolean;
144
- declare const flush: (h: SocketHostState, fin?: StatewireHost.Fin) => void;
145
- type FrameAdmission = {
146
- type: "ok";
142
+ export declare const closeConn: (h: SocketHostState, conn: Conn, code?: number, reason?: string) => void;
143
+ export declare const sendTo: (h: SocketHostState, conn: Conn, data: string) => void;
144
+ export declare const expireLease: (h: SocketHostState, conn: Conn) => boolean;
145
+ export declare const atSubscriberLimit: (h: SocketHostState) => boolean;
146
+ export declare const flush: (h: SocketHostState, fin?: StatewireHost.Fin) => void;
147
+ export type FrameAdmission = {
148
+ type: "ok";
147
149
  } | {
148
- type: "expired";
150
+ type: "expired";
149
151
  } | {
150
- type: "refused";
151
- syn: {
152
+ type: "refused";
152
153
  syn: {
153
- protocols: {
154
- name: string;
155
- seq: number;
156
- }[];
157
- retry?: number;
154
+ syn: {
155
+ protocols: {
156
+ name: string;
157
+ seq: number;
158
+ }[];
159
+ retry?: number;
160
+ };
158
161
  };
159
- };
160
162
  };
161
- declare const admitFrame: (h: SocketHostState, conn: Conn, frame: ParsedFrame) => FrameAdmission;
162
- type Registration = {
163
- conn: Conn;
164
- connection: StatewireHostInternal.SocketConnection;
163
+ export declare const admitFrame: (h: SocketHostState, conn: Conn, frame: ParsedFrame) => FrameAdmission;
164
+ export type Registration = {
165
+ conn: Conn;
166
+ connection: StatewireHostInternal.SocketConnection;
165
167
  };
166
168
  /**
167
169
  * Attach a socket: ephemeral-lane statements of the attach frame are admitted
168
170
  * before the snapshot (their documents and answers ride the hello), durable
169
171
  * ones after it. A violation in the attach frame closes the attach and throws.
170
172
  */
171
- declare const register: (h: SocketHostState, clientId: string, socket: StatewireHostInternal.Socket, sawFrame?: boolean, auth?: unknown, selection?: StatewireProtocol.Selection, frame?: ParsedFrame, authorizedAt?: number) => Registration | null;
173
+ export declare const register: (h: SocketHostState, clientId: string, socket: StatewireHostInternal.Socket, sawFrame?: boolean, auth?: unknown, selection?: StatewireProtocol.Selection, frame?: ParsedFrame, authorizedAt?: number, included?: Pick<StatewireHostInternal.SocketConnectOptions, "included" | "onIncludedChange"> & {
174
+ timedLease?: boolean;
175
+ }) => Registration | null;
172
176
  /**
173
177
  * Transport-agnostic WS binding over a statewire/host transport:
174
178
  * feed it sockets (anything with `send`/`close`) and raw text frames, and it
@@ -178,7 +182,6 @@ declare const register: (h: SocketHostState, clientId: string, socket: Statewire
178
182
  * admitting attach (ephemeral lanes), per-attach document views, idle edges,
179
183
  * and `fin` on finish.
180
184
  */
181
- declare const StatewireSocketHost: (transport: ResourceElement<Statewire>, options?: StatewireHostInternal.SocketHostOptions, persistence?: StatewireHostInternal.SocketHostPersistence) => StatewireHostInternal.SocketHost;
182
- //#endregion
183
- export { CLIENT_ID_RE, ClientRec, Conn, FrameAdmission, PRINCIPAL_MISMATCH_MESSAGE, ParsedFrame, Registration, SUBSCRIBER_LIMIT_MESSAGE, SocketHostState, StatewireSocketHost, admitFrame, atSubscriberLimit, authEquals, closeConn, expireLease, flush, parseFrame, parseFrameValue, register, sendTo };
185
+ export declare const StatewireSocketHost: (transport: ResourceElement<Statewire>, options?: StatewireHostInternal.SocketHostOptions, persistence?: StatewireHostInternal.SocketHostPersistence) => StatewireHostInternal.SocketHost;
186
+ export {};
184
187
  //# sourceMappingURL=socket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","names":[],"sources":["../../src/host/socket.ts"],"mappings":";;;;;;;;;cAiCa,cAAY;cACZ;;;cAKA,aAAc,YAAY;cAoC1B;KAGR,MAAM,sBAAsB;KAE5B;EACH;EACA;EACA,OAAO;EACP;EACA,OAAO,kBAAkB;EACzB;EACA;EACA;;KAGG;EACH;EACA;EACA;EACA;EACA;EACA;;;KAIG;EACH;EACA;EACA,MAAM;EACN;EACA,SAAS;IAAc;IAAY,KAAK;;EACxC,UAAU,YAAY;;KAGZ;EACV;EACA;EACA,OAAO,YAAY;;EAEnB;;KAIU;EACV,WAAW,kBAAkB;EAC7B;EACA,QAAQ,sBAAsB;EAC9B;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA,YAAY,kBAAkB;EAC9B,OAAO,YAAY;EACnB,UAAU,YAAY,UAAU;EAChC,WAAW,YAAY,cAAc;EACrC,UAAU;EACV,MAAM;IAAc;IAAa;;EACjC;EACA,gBAAgB;EAChB,aAAa;EACb,QAAQ,cAAc;;KAGnB;EACH,QAAQ,sBAAsB;EAC9B;EACA;EACA;EACA,OAAO,kBAAkB;EACzB,YAAY,sBAAsB;;KAc/B;EACH;EACA;EACA;EACA;EACA;;KAGU;EACV,KAAK;EACL;IAAQ;IAAkB,OAAO,UAAU;;;cAQhC,kBAAmB,mBAAiB;cAqFpC,aAAc,gBAAc;KAuF7B;EACV,UAAU,kBAAkB;EAC5B;EACA,aAAa,kBAAkB;EAC/B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW,sBAAsB;EACjC,SAAS,YAAY;EACrB,OAAO,IAAI;EACX,cAAc,IAAI;EAClB,YAAY;EACZ,gBAAgB,YAAY;EAC5B,aAAa,YAAY;EACzB;EACA;EACA,UAAU,cAAc;EACxB;EACA;EACA,gBAAgB,kBAAkB;EAClC,WAAW,cAAc;EACzB,cAAc;EACd,SAAS;EACT,aAAa,sBAAsB;EACnC;EACA,UACE,kBACA,QAAQ,sBAAsB,QAC9B,UAAU,sBAAsB,yBAC7B,sBAAsB;EAC3B,SAAS,KAAK,cAAc;EAC5B,SAAS,SAAS,YAAY,QAAQ;EACtC,SAAS,SAAS,YAAY,QAAQ;;cAsD3B,YACX,GAAG,iBACH,MAAM,MACN,eACA;cAqBW,SAAU,GAAG,iBAAiB,MAAM,MAAM;cA0B1C,cAAe,GAAG,iBAAiB,MAAM;cAoCzC,oBAAqB,GAAG;cAsLxB,QAAS,GAAG,iBAAiB,MAAM,cAAc;KAoUlD;EACN;;EACA;;EAEA;EACA;IACE;MAAO;QAAa;QAAc;;MAAiB;;;;cAyE9C,aACX,GAAG,iBACH,MAAM,MACN,OAAO,gBACN;KAkaS;EACV,MAAM;EACN,YAAY,sBAAsB;;;;;;;cAQvB,WACX,GAAG,iBACH,kBACA,QAAQ,sBAAsB,QAC9B,oBACA,gBACA,YAAW,kBAAkB,WAI7B,QAAO,aACP,0BACC;;;;;;;;;;cA6WU,sBACX,WAAW,gBAAgB,YAC3B,UAAU,sBAAsB,mBAChC,cAAc,sBAAsB,0BACnC,sBAAsB"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/host/socket.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
+ import { DEFAULT_PROTOCOL, WIRE_VERSION, negotiateProtocols } from "../wire/protocol.js";
1
2
  import { encodeDocument, reviveDocumentValue } from "../document.js";
2
3
  import { COMMAND_CAPACITY_RETRY_MS, MAX_INFLIGHT_COMMANDS_PER_HOST } from "../wire/limits.js";
3
- import { DEFAULT_PROTOCOL, WIRE_VERSION, negotiateProtocols } from "../wire/protocol.js";
4
4
  import { captureContext, contextValue } from "../wire/context.js";
5
5
  import { sanitizeValue } from "../wire/ops.js";
6
6
  import { StatewireSendError } from "../types.js";
@@ -9,7 +9,7 @@ import { createMacrotaskPoster } from "../util/macrotask.js";
9
9
  import { frames, stream } from "./http.js";
10
10
  import { useEffect, useState } from "@assistant-ui/tap/react-shim";
11
11
  import { createTapRoot, flushTapSync, useResource } from "@assistant-ui/tap";
12
- //#region src/host/socket.ts
12
+ // src/host/socket.ts
13
13
  const CLIENT_ID_RE = /^[A-Za-z0-9._~-]{1,256}$/;
14
14
  const PRINCIPAL_MISMATCH_MESSAGE = "client id is bound to another principal";
15
15
  /** Structural equality over auth values: primitives, Dates, arrays, and plain
@@ -256,7 +256,7 @@ const expireLease = (h, conn) => {
256
256
  const armLeaseTimer = (h, conn) => {
257
257
  if (conn.leaseTimer !== null) clearTimeout(conn.leaseTimer);
258
258
  conn.leaseTimer = null;
259
- if (h.disposed || h.maxLeaseLifetimeMs === null || expireLease(h, conn)) return;
259
+ if (h.disposed || h.maxLeaseLifetimeMs === null || expireLease(h, conn) || !conn.timedLease) return;
260
260
  const delay = h.maxLeaseLifetimeMs - (Date.now() - conn.authorizedAt);
261
261
  conn.leaseTimer = setTimeout(() => {
262
262
  conn.leaseTimer = null;
@@ -276,7 +276,7 @@ const ensureHeartbeat = (h) => {
276
276
  if (h.heartbeatTimer !== null || h.heartbeatMs <= 0) return;
277
277
  h.heartbeatTimer = setInterval(() => {
278
278
  const now = Date.now();
279
- for (const conn of [...h.conns]) if (now - conn.lastSentAt >= h.heartbeatMs) sendTo(h, conn, "{}");
279
+ for (const conn of [...h.conns]) if (now - conn.lastSentAt >= h.heartbeatMs && !expireLease(h, conn)) sendTo(h, conn, "{}");
280
280
  }, h.heartbeatMs);
281
281
  h.heartbeatTimer.unref?.();
282
282
  };
@@ -354,6 +354,11 @@ const diffView = (h, conn) => {
354
354
  }
355
355
  return ops;
356
356
  };
357
+ const notifyIncluded = (conn) => conn.onIncludedChange?.([...conn.included].map((id) => JSON.parse(id)));
358
+ const restoredIncluded = (included) => new Set(included.map((entry) => {
359
+ if (!Array.isArray(entry) || entry.length !== 2 || typeof entry[0] !== "string" || !(entry[1] === null || Array.isArray(entry[1]) && entry[1].every((part) => typeof part === "string"))) throw new TypeError("statewire: invalid restored include");
360
+ return documentIdentity(entry[0], entry[1] ?? void 0);
361
+ }));
357
362
  const attachOf = (h, conn) => {
358
363
  const requireSelected = (protocol) => {
359
364
  const entry = conn.selection.protocols.find((p) => p.name === protocol);
@@ -396,11 +401,15 @@ const attachOf = (h, conn) => {
396
401
  },
397
402
  include: (protocol, key) => {
398
403
  if (requireSelected(protocol).record !== void 0) throw new Error(`statewire: protocol ${protocol} is not durable`);
399
- conn.included.add(documentIdentity(protocol, key));
404
+ const id = documentIdentity(protocol, key);
405
+ if (conn.included.has(id)) return;
406
+ conn.included.add(id);
407
+ notifyIncluded(conn);
400
408
  markViews(h);
401
409
  },
402
410
  exclude: (protocol, key) => {
403
- conn.included.delete(documentIdentity(protocol, key));
411
+ if (!conn.included.delete(documentIdentity(protocol, key))) return;
412
+ notifyIncluded(conn);
404
413
  markViews(h);
405
414
  }
406
415
  };
@@ -425,7 +434,7 @@ const flush = (h, fin) => {
425
434
  h.pendingApplied = /* @__PURE__ */ new Map();
426
435
  h.pendingCmds = /* @__PURE__ */ new Map();
427
436
  for (const conn of [...h.conns]) {
428
- if (!conn.ready) continue;
437
+ if (!conn.ready || expireLease(h, conn)) continue;
429
438
  const forConn = (list) => (list ?? []).filter((cmd) => selects(conn, cmd.protocol));
430
439
  const ops = [...selects(conn, h.protocol.name) ? mainOps : [], ...diffView(h, conn)];
431
440
  const cmd = [
@@ -802,7 +811,10 @@ const connectAuthorized = (h, clientId, socket, options) => {
802
811
  } catch {}
803
812
  return null;
804
813
  }
805
- return register(h, clientId, socket, options.authorized === true, options.auth, options.selection, void 0, options.authorizedAt)?.connection ?? null;
814
+ return register(h, clientId, socket, options.authorized === true, options.auth, options.selection, void 0, options.authorizedAt, {
815
+ ...options,
816
+ timedLease: h.leaseTimers
817
+ })?.connection ?? null;
806
818
  }
807
819
  const refuse = (code, reason) => {
808
820
  try {
@@ -907,7 +919,10 @@ const connectAuthorized = (h, clientId, socket, options) => {
907
919
  if (pending.timer !== null) clearTimeout(pending.timer);
908
920
  let registration;
909
921
  try {
910
- registration = register(h, clientId, socket, true, auth, selection, frame, authorizedAt);
922
+ registration = register(h, clientId, socket, true, auth, selection, frame, authorizedAt, {
923
+ timedLease: h.leaseTimers,
924
+ ...options.onIncludedChange !== void 0 && { onIncludedChange: options.onIncludedChange }
925
+ });
911
926
  } catch (error) {
912
927
  if (violationReason(error) === null) throw error;
913
928
  return;
@@ -951,7 +966,8 @@ const register = (h, clientId, socket, sawFrame = false, auth = void 0, selectio
951
966
  name: h.protocol.name,
952
967
  version: h.protocol.version
953
968
  }]
954
- }, frame = { cmd: [] }, authorizedAt) => {
969
+ }, frame = { cmd: [] }, authorizedAt, included = {}) => {
970
+ const restored = restoredIncluded(included.included ?? []);
955
971
  const refuse = (code, reason) => {
956
972
  try {
957
973
  socket.close(code, reason);
@@ -1009,10 +1025,12 @@ const register = (h, clientId, socket, sawFrame = false, auth = void 0, selectio
1009
1025
  auth,
1010
1026
  authorizedAt,
1011
1027
  leaseTimer: null,
1028
+ timedLease: included.timedLease ?? true,
1012
1029
  lanes: /* @__PURE__ */ new Map(),
1013
1030
  contexts: /* @__PURE__ */ new Map(),
1014
1031
  documents: /* @__PURE__ */ new Map(),
1015
- included: /* @__PURE__ */ new Set(),
1032
+ included: restored,
1033
+ onIncludedChange: included.onIncludedChange,
1016
1034
  view: /* @__PURE__ */ new Map(),
1017
1035
  nextDoc: 1,
1018
1036
  pendingApplied: [],
@@ -1153,6 +1171,7 @@ const useSocketHost = (transport, options, persistence) => {
1153
1171
  wireVersion: { version: WIRE_VERSION },
1154
1172
  heartbeatMs: 15e3,
1155
1173
  maxLeaseLifetimeMs: 864e5,
1174
+ leaseTimers: persistence?.hibernatable !== true,
1156
1175
  wsInitTimeoutMs: 5e3,
1157
1176
  maxSubscribers: MAX_SUBSCRIBERS,
1158
1177
  maxInflightCommands: MAX_INFLIGHT_COMMANDS_PER_HOST,
@@ -1258,7 +1277,6 @@ const StatewireSocketHost = (transport, options, persistence) => {
1258
1277
  }
1259
1278
  };
1260
1279
  };
1261
- //#endregion
1262
1280
  export { CLIENT_ID_RE, PRINCIPAL_MISMATCH_MESSAGE, SUBSCRIBER_LIMIT_MESSAGE, StatewireSocketHost, admitFrame, atSubscriberLimit, authEquals, closeConn, expireLease, flush, parseFrame, parseFrameValue, register, sendTo };
1263
1281
 
1264
1282
  //# sourceMappingURL=socket.js.map