@linkshell/gateway 0.2.47 → 0.3.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 (40) hide show
  1. package/README.md +14 -13
  2. package/dist/gateway/src/agent-permission-http.d.ts +10 -37
  3. package/dist/gateway/src/agent-permission-http.js +16 -56
  4. package/dist/gateway/src/agent-permission-http.js.map +1 -1
  5. package/dist/gateway/src/embedded.js +121 -57
  6. package/dist/gateway/src/embedded.js.map +1 -1
  7. package/dist/gateway/src/index.js +161 -94
  8. package/dist/gateway/src/index.js.map +1 -1
  9. package/dist/gateway/src/pairings.d.ts +3 -3
  10. package/dist/gateway/src/pairings.js +4 -5
  11. package/dist/gateway/src/pairings.js.map +1 -1
  12. package/dist/gateway/src/relay.d.ts +2 -2
  13. package/dist/gateway/src/relay.js +27 -38
  14. package/dist/gateway/src/relay.js.map +1 -1
  15. package/dist/gateway/src/sessions.d.ts +31 -28
  16. package/dist/gateway/src/sessions.js +163 -145
  17. package/dist/gateway/src/sessions.js.map +1 -1
  18. package/dist/gateway/src/state-store.d.ts +9 -6
  19. package/dist/gateway/src/state-store.js +26 -19
  20. package/dist/gateway/src/state-store.js.map +1 -1
  21. package/dist/gateway/src/tokens.d.ts +27 -7
  22. package/dist/gateway/src/tokens.js +86 -60
  23. package/dist/gateway/src/tokens.js.map +1 -1
  24. package/dist/gateway/src/tunnel.d.ts +11 -13
  25. package/dist/gateway/src/tunnel.js +36 -36
  26. package/dist/gateway/src/tunnel.js.map +1 -1
  27. package/dist/gateway/tsconfig.tsbuildinfo +1 -1
  28. package/dist/shared-protocol/src/index.d.ts +3961 -5788
  29. package/dist/shared-protocol/src/index.js +19 -84
  30. package/dist/shared-protocol/src/index.js.map +1 -1
  31. package/package.json +10 -10
  32. package/src/agent-permission-http.ts +20 -63
  33. package/src/embedded.ts +124 -56
  34. package/src/index.ts +165 -94
  35. package/src/pairings.ts +6 -7
  36. package/src/relay.ts +38 -48
  37. package/src/sessions.ts +174 -150
  38. package/src/state-store.ts +41 -25
  39. package/src/tokens.ts +109 -63
  40. package/src/tunnel.ts +49 -43
@@ -1,17 +1,18 @@
1
1
  const OUTPUT_BUFFER_CAPACITY = 200;
2
- const HOST_RECONNECT_WINDOW = 60_000; // 60s
2
+ const HOST_RECONNECT_WINDOW = 60_000;
3
3
  const CLEANUP_INTERVAL = 30_000;
4
- export class SessionManager {
5
- sessions = new Map();
4
+ export class DeviceManager {
5
+ devices = new Map();
6
6
  cleanupTimer;
7
7
  constructor() {
8
8
  this.cleanupTimer = setInterval(() => this.cleanup(), CLEANUP_INTERVAL);
9
9
  }
10
- getOrCreate(sessionId) {
11
- let session = this.sessions.get(sessionId);
12
- if (!session) {
13
- session = {
14
- id: sessionId,
10
+ getOrCreate(hostDeviceId) {
11
+ let device = this.devices.get(hostDeviceId);
12
+ if (!device) {
13
+ device = {
14
+ id: hostDeviceId,
15
+ hostDeviceId,
15
16
  state: "active",
16
17
  host: undefined,
17
18
  clients: new Map(),
@@ -21,117 +22,137 @@ export class SessionManager {
21
22
  outputBuffers: new Map(),
22
23
  lastStatusByTerminal: new Map(),
23
24
  hostDisconnectedAt: undefined,
24
- provider: undefined,
25
25
  machineId: undefined,
26
26
  hostname: undefined,
27
27
  platform: undefined,
28
28
  cwd: undefined,
29
- projectName: undefined,
29
+ capabilities: [],
30
30
  userId: undefined,
31
31
  };
32
- this.sessions.set(sessionId, session);
32
+ this.devices.set(hostDeviceId, device);
33
33
  }
34
- return session;
35
- }
36
- get(sessionId) {
37
- return this.sessions.get(sessionId);
38
- }
39
- setHost(sessionId, device) {
40
- const session = this.getOrCreate(sessionId);
41
- session.host = device;
42
- session.state = "active";
43
- session.hostDisconnectedAt = undefined;
44
- session.lastActivity = Date.now();
45
- }
46
- addClient(sessionId, device) {
47
- const session = this.getOrCreate(sessionId);
48
- session.clients.set(device.deviceId, device);
49
- if (!session.controllerId) {
50
- session.controllerId = device.deviceId;
34
+ return device;
35
+ }
36
+ get(hostDeviceId) {
37
+ return this.devices.get(hostDeviceId);
38
+ }
39
+ setHost(hostDeviceId, socketDevice) {
40
+ const device = this.getOrCreate(hostDeviceId);
41
+ device.host = socketDevice;
42
+ device.state = "active";
43
+ device.hostDisconnectedAt = undefined;
44
+ device.lastActivity = Date.now();
45
+ }
46
+ addClient(hostDeviceId, socketDevice) {
47
+ const device = this.getOrCreate(hostDeviceId);
48
+ device.clients.set(socketDevice.deviceId, socketDevice);
49
+ if (!device.controllerId) {
50
+ device.controllerId = socketDevice.deviceId;
51
51
  }
52
- session.lastActivity = Date.now();
52
+ device.lastActivity = Date.now();
53
53
  }
54
- removeHost(sessionId) {
55
- const session = this.sessions.get(sessionId);
56
- if (!session)
54
+ removeHost(hostDeviceId) {
55
+ const device = this.devices.get(hostDeviceId);
56
+ if (!device)
57
57
  return undefined;
58
- session.host = undefined;
59
- session.state = "host_disconnected";
60
- session.hostDisconnectedAt = Date.now();
61
- return { clients: session.clients };
62
- }
63
- removeClient(sessionId, deviceId) {
64
- const session = this.sessions.get(sessionId);
65
- if (!session)
58
+ device.host = undefined;
59
+ device.state = "host_disconnected";
60
+ device.hostDisconnectedAt = Date.now();
61
+ return { clients: device.clients };
62
+ }
63
+ removeClient(hostDeviceId, deviceId) {
64
+ const device = this.devices.get(hostDeviceId);
65
+ if (!device)
66
66
  return;
67
- session.clients.delete(deviceId);
68
- if (session.controllerId === deviceId) {
69
- // Transfer control to next client or clear
70
- const next = session.clients.keys().next();
71
- session.controllerId = next.done ? undefined : next.value;
67
+ device.clients.delete(deviceId);
68
+ if (device.controllerId === deviceId) {
69
+ const next = device.clients.keys().next();
70
+ device.controllerId = next.done ? undefined : next.value;
71
+ }
72
+ this.maybeDelete(hostDeviceId);
73
+ }
74
+ disconnectAuthorization(hostDeviceId, authorizationId) {
75
+ const device = this.devices.get(hostDeviceId);
76
+ if (!device)
77
+ return 0;
78
+ let closed = 0;
79
+ for (const [deviceId, client] of device.clients) {
80
+ if (client.authorizationId !== authorizationId)
81
+ continue;
82
+ try {
83
+ client.socket.close(4001, "authorization revoked");
84
+ }
85
+ catch { }
86
+ device.clients.delete(deviceId);
87
+ closed++;
88
+ }
89
+ if (device.controllerId && !device.clients.has(device.controllerId)) {
90
+ const next = device.clients.keys().next();
91
+ device.controllerId = next.done ? undefined : next.value;
72
92
  }
73
- this.maybeDelete(sessionId);
93
+ this.maybeDelete(hostDeviceId);
94
+ return closed;
74
95
  }
75
- /** Force-delete a session: disconnect host + all clients, remove from map. */
76
- forceDelete(sessionId) {
77
- const session = this.sessions.get(sessionId);
78
- if (!session)
96
+ forceDelete(hostDeviceId) {
97
+ const device = this.devices.get(hostDeviceId);
98
+ if (!device)
79
99
  return false;
80
- if (session.host) {
100
+ if (device.host) {
81
101
  try {
82
- session.host.socket.close(1000, "session deleted");
102
+ device.host.socket.close(1000, "device deleted");
83
103
  }
84
104
  catch { }
85
105
  }
86
- for (const [, client] of session.clients) {
106
+ for (const [, client] of device.clients) {
87
107
  try {
88
- client.socket.close(1000, "session deleted");
108
+ client.socket.close(1000, "device deleted");
89
109
  }
90
110
  catch { }
91
111
  }
92
- this.sessions.delete(sessionId);
112
+ this.devices.delete(hostDeviceId);
93
113
  return true;
94
114
  }
95
- bufferOutput(sessionId, envelope) {
96
- const session = this.sessions.get(sessionId);
97
- if (!session)
115
+ bufferOutput(hostDeviceId, envelope) {
116
+ const device = this.devices.get(hostDeviceId);
117
+ if (!device)
98
118
  return;
99
- const tid = envelope.terminalId ?? "default";
100
- let buf = session.outputBuffers.get(tid);
101
- if (!buf) {
102
- buf = [];
103
- session.outputBuffers.set(tid, buf);
119
+ const terminalId = envelope.terminalId ?? "default";
120
+ let buffer = device.outputBuffers.get(terminalId);
121
+ if (!buffer) {
122
+ buffer = [];
123
+ device.outputBuffers.set(terminalId, buffer);
104
124
  }
105
- buf.push(envelope);
106
- if (buf.length > OUTPUT_BUFFER_CAPACITY) {
107
- buf.shift();
125
+ buffer.push(envelope);
126
+ if (buffer.length > OUTPUT_BUFFER_CAPACITY) {
127
+ buffer.shift();
108
128
  }
109
- session.lastActivity = Date.now();
129
+ device.lastActivity = Date.now();
110
130
  }
111
- cacheStatus(sessionId, envelope) {
112
- const session = this.sessions.get(sessionId);
113
- if (!session)
131
+ cacheStatus(hostDeviceId, envelope) {
132
+ const device = this.devices.get(hostDeviceId);
133
+ if (!device)
114
134
  return;
115
- const tid = envelope.terminalId ?? "default";
116
- session.lastStatusByTerminal.set(tid, envelope);
117
- session.lastActivity = Date.now();
135
+ const terminalId = envelope.terminalId ?? "default";
136
+ device.lastStatusByTerminal.set(terminalId, envelope);
137
+ device.lastActivity = Date.now();
118
138
  }
119
- getStatusReplay(sessionId) {
120
- const session = this.sessions.get(sessionId);
121
- if (!session)
139
+ getStatusReplay(hostDeviceId) {
140
+ const device = this.devices.get(hostDeviceId);
141
+ if (!device)
122
142
  return [];
123
- return [...session.lastStatusByTerminal.values()];
143
+ return [...device.lastStatusByTerminal.values()];
124
144
  }
125
- getReplayFrom(sessionId, afterSeqByTerminal, fallbackAfterSeq = -1) {
126
- const session = this.sessions.get(sessionId);
127
- if (!session)
145
+ getReplayFrom(hostDeviceId, afterSeqByTerminal, fallbackAfterSeq = -1) {
146
+ const device = this.devices.get(hostDeviceId);
147
+ if (!device)
128
148
  return [];
129
149
  const result = [];
130
- for (const [terminalId, buf] of session.outputBuffers) {
150
+ for (const [terminalId, buffer] of device.outputBuffers) {
131
151
  const afterSeq = afterSeqByTerminal[terminalId] ?? fallbackAfterSeq;
132
- for (const e of buf) {
133
- if (e.seq !== undefined && e.seq > afterSeq)
134
- result.push(e);
152
+ for (const envelope of buffer) {
153
+ if (envelope.seq !== undefined && envelope.seq > afterSeq) {
154
+ result.push(envelope);
155
+ }
135
156
  }
136
157
  }
137
158
  return result.sort((a, b) => {
@@ -142,94 +163,91 @@ export class SessionManager {
142
163
  return (a.seq ?? 0) - (b.seq ?? 0);
143
164
  });
144
165
  }
145
- claimControl(sessionId, deviceId) {
146
- const session = this.sessions.get(sessionId);
147
- if (!session)
166
+ claimControl(hostDeviceId, deviceId) {
167
+ const device = this.devices.get(hostDeviceId);
168
+ if (!device)
148
169
  return false;
149
- // Always allow takeover – last claimer wins
150
- session.controllerId = deviceId;
170
+ device.controllerId = deviceId;
151
171
  return true;
152
172
  }
153
- releaseControl(sessionId, deviceId) {
154
- const session = this.sessions.get(sessionId);
155
- if (!session)
173
+ releaseControl(hostDeviceId, deviceId) {
174
+ const device = this.devices.get(hostDeviceId);
175
+ if (!device)
156
176
  return false;
157
- if (session.controllerId !== deviceId)
177
+ if (device.controllerId !== deviceId)
158
178
  return false;
159
- session.controllerId = undefined;
179
+ device.controllerId = undefined;
160
180
  return true;
161
181
  }
162
- terminate(sessionId) {
163
- const session = this.sessions.get(sessionId);
164
- if (!session)
182
+ terminate(hostDeviceId) {
183
+ const device = this.devices.get(hostDeviceId);
184
+ if (!device)
165
185
  return;
166
- session.state = "terminated";
186
+ device.state = "terminated";
167
187
  }
168
188
  listActive() {
169
- return [...this.sessions.values()].filter((s) => s.state !== "terminated");
189
+ return [...this.devices.values()].filter((device) => device.state !== "terminated");
170
190
  }
171
- getSummary(sessionId) {
172
- const session = this.sessions.get(sessionId);
173
- if (!session)
191
+ getSummary(hostDeviceId) {
192
+ const device = this.devices.get(hostDeviceId);
193
+ if (!device)
174
194
  return undefined;
175
195
  return {
176
- id: session.id,
177
- state: session.state,
178
- hasHost: !!session.host &&
179
- session.host.socket.readyState === session.host.socket.OPEN,
180
- clientCount: session.clients.size,
181
- controllerId: session.controllerId ?? null,
182
- lastActivity: session.lastActivity,
183
- createdAt: session.createdAt,
184
- bufferSize: [...session.outputBuffers.values()].reduce((sum, buf) => sum + buf.length, 0),
185
- provider: session.provider ?? null,
186
- machineId: session.machineId ?? null,
187
- hostname: session.hostname ?? null,
188
- platform: session.platform ?? null,
189
- cwd: session.cwd ?? null,
190
- projectName: session.projectName ?? null,
191
- userId: session.userId ?? null,
196
+ id: device.hostDeviceId,
197
+ hostDeviceId: device.hostDeviceId,
198
+ state: device.state,
199
+ online: !!device.host &&
200
+ device.host.socket.readyState === device.host.socket.OPEN,
201
+ hasHost: !!device.host &&
202
+ device.host.socket.readyState === device.host.socket.OPEN,
203
+ clientCount: device.clients.size,
204
+ controllerId: device.controllerId ?? null,
205
+ lastActivity: device.lastActivity,
206
+ createdAt: device.createdAt,
207
+ bufferSize: [...device.outputBuffers.values()].reduce((sum, buf) => sum + buf.length, 0),
208
+ machineId: device.machineId ?? null,
209
+ hostname: device.hostname ?? null,
210
+ platform: device.platform ?? null,
211
+ cwd: device.cwd ?? null,
212
+ capabilities: device.capabilities,
213
+ userId: device.userId ?? null,
192
214
  };
193
215
  }
194
- setMetadata(sessionId, provider, machineId, hostname, platform, cwd, projectName) {
195
- const session = this.sessions.get(sessionId);
196
- if (!session)
216
+ setMetadata(hostDeviceId, _provider, machineId, hostname, platform, cwd, _projectName, capabilities) {
217
+ const device = this.devices.get(hostDeviceId);
218
+ if (!device)
197
219
  return;
198
- if (provider)
199
- session.provider = provider;
200
220
  if (machineId)
201
- session.machineId = machineId;
221
+ device.machineId = machineId;
202
222
  if (hostname)
203
- session.hostname = hostname;
223
+ device.hostname = hostname;
204
224
  if (platform)
205
- session.platform = platform;
225
+ device.platform = platform;
206
226
  if (cwd)
207
- session.cwd = cwd;
208
- if (projectName)
209
- session.projectName = projectName;
227
+ device.cwd = cwd;
228
+ if (capabilities)
229
+ device.capabilities = capabilities;
210
230
  }
211
- maybeDelete(sessionId) {
212
- const session = this.sessions.get(sessionId);
213
- if (!session)
231
+ maybeDelete(hostDeviceId) {
232
+ const device = this.devices.get(hostDeviceId);
233
+ if (!device)
214
234
  return;
215
- if (!session.host && session.clients.size === 0) {
216
- this.sessions.delete(sessionId);
235
+ if (!device.host && device.clients.size === 0) {
236
+ this.devices.delete(hostDeviceId);
217
237
  }
218
238
  }
219
239
  cleanup() {
220
240
  const now = Date.now();
221
- for (const [id, session] of this.sessions) {
222
- // Remove sessions where host disconnected and window expired
223
- if (session.state === "host_disconnected" &&
224
- session.hostDisconnectedAt &&
225
- now - session.hostDisconnectedAt > HOST_RECONNECT_WINDOW) {
226
- session.state = "terminated";
241
+ for (const [hostDeviceId, device] of this.devices) {
242
+ if (device.state === "host_disconnected" &&
243
+ device.hostDisconnectedAt &&
244
+ now - device.hostDisconnectedAt > HOST_RECONNECT_WINDOW) {
245
+ device.state = "terminated";
227
246
  }
228
- // Clean up terminated sessions with no connections
229
- if (session.state === "terminated" &&
230
- !session.host &&
231
- session.clients.size === 0) {
232
- this.sessions.delete(id);
247
+ if (device.state === "terminated" &&
248
+ !device.host &&
249
+ device.clients.size === 0) {
250
+ this.devices.delete(hostDeviceId);
233
251
  }
234
252
  }
235
253
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/sessions.ts"],"names":[],"mappings":"AAkCA,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,qBAAqB,GAAG,MAAM,CAAC,CAAC,MAAM;AAC5C,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,MAAM,OAAO,cAAc;IACjB,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IACtC,YAAY,CAAiC;IAErD;QACE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG;gBACR,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI,GAAG,EAAE;gBAClB,YAAY,EAAE,SAAS;gBACvB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;gBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,aAAa,EAAE,IAAI,GAAG,EAAE;gBACxB,oBAAoB,EAAE,IAAI,GAAG,EAAE;gBAC/B,kBAAkB,EAAE,SAAS;gBAC7B,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,SAAS;gBACnB,GAAG,EAAE,SAAS;gBACd,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,SAAiB,EAAE,MAAuB;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;QACtB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;QACzB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACvC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,SAAiB,EAAE,MAAuB;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;IAED,UAAU,CACR,SAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;QACzB,OAAO,CAAC,KAAK,GAAG,mBAAmB,CAAC;QACpC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,SAAiB,EAAE,QAAgB;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACtC,2CAA2C;YAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,8EAA8E;IAC9E,WAAW,CAAC,SAAiB;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACtE,CAAC;QACD,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACzC,IAAI,CAAC;gBAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,SAAiB,EAAE,QAAkB;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,GAAG,GAAI,QAAgB,CAAC,UAAU,IAAI,SAAS,CAAC;QACtD,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnB,IAAI,GAAG,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;YACxC,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,SAAiB,EAAE,QAAkB;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,GAAG,GAAI,QAAgB,CAAC,UAAU,IAAI,SAAS,CAAC;QACtD,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,aAAa,CACX,SAAiB,EACjB,kBAA0C,EAC1C,gBAAgB,GAAG,CAAC,CAAC;QAErB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC;YACpE,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,GAAG,QAAQ;oBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YACxE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,SAAiB,EAAE,QAAgB;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,4CAA4C;QAC5C,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,QAAgB;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACpD,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,SAAiB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;IAC/B,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC;IAC7E,CAAC;IAED,UAAU,CAAC,SAAiB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EACL,CAAC,CAAC,OAAO,CAAC,IAAI;gBACd,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAC7D,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;YACjC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;YAC1C,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACzF,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YACxC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;SAC/B,CAAC;IACJ,CAAC;IAED,WAAW,CACT,SAAiB,EACjB,QAAiB,EACjB,SAAkB,EAClB,QAAiB,EACjB,QAAiB,EACjB,GAAY,EACZ,WAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1C,IAAI,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7C,IAAI,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1C,IAAI,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1C,IAAI,GAAG;YAAE,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;QAC3B,IAAI,WAAW;YAAE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IACrD,CAAC;IAEO,WAAW,CAAC,SAAiB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,OAAO;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,6DAA6D;YAC7D,IACE,OAAO,CAAC,KAAK,KAAK,mBAAmB;gBACrC,OAAO,CAAC,kBAAkB;gBAC1B,GAAG,GAAG,OAAO,CAAC,kBAAkB,GAAG,qBAAqB,EACxD,CAAC;gBACD,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;YAC/B,CAAC;YACD,mDAAmD;YACnD,IACE,OAAO,CAAC,KAAK,KAAK,YAAY;gBAC9B,CAAC,OAAO,CAAC,IAAI;gBACb,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAC1B,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/sessions.ts"],"names":[],"mappings":"AAkCA,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AACrC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,MAAM,OAAO,aAAa;IAChB,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IACxC,YAAY,CAAiC;IAErD;QACE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,YAAoB;QAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG;gBACP,EAAE,EAAE,YAAY;gBAChB,YAAY;gBACZ,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI,GAAG,EAAE;gBAClB,YAAY,EAAE,SAAS;gBACvB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;gBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,aAAa,EAAE,IAAI,GAAG,EAAE;gBACxB,oBAAoB,EAAE,IAAI,GAAG,EAAE;gBAC/B,kBAAkB,EAAE,SAAS;gBAC7B,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,SAAS;gBACnB,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,EAAE;gBAChB,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,YAAoB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,YAAoB,EAAE,YAA6B;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC;QAC3B,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;QACxB,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,YAAoB,EAAE,YAA6B;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACzB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC;QAC9C,CAAC;QACD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,UAAU,CACR,YAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;QACxB,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAC;QACnC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,YAAoB,EAAE,QAAgB;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,uBAAuB,CAAC,YAAoB,EAAE,eAAuB;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QACtB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAChD,IAAI,MAAM,CAAC,eAAe,KAAK,eAAe;gBAAE,SAAS;YACzD,IAAI,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,EAAE,CAAC;QACX,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,YAAoB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QACD,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,YAAoB,EAAE,QAAkB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,SAAS,CAAC;QACpD,IAAI,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,EAAE,CAAC;YACZ,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,MAAM,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,WAAW,CAAC,YAAoB,EAAE,QAAkB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,SAAS,CAAC;QACpD,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,eAAe,CAAC,YAAoB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,aAAa,CACX,YAAoB,EACpB,kBAA0C,EAC1C,gBAAgB,GAAG,CAAC,CAAC;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC;YACpE,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC9B,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,GAAG,QAAQ,EAAE,CAAC;oBAC1D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YACxE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,YAAoB,EAAE,QAAgB;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,YAAoB,EAAE,QAAgB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,IAAI,MAAM,CAAC,YAAY,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACnD,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,YAAoB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;IAC9B,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC;IACtF,CAAC;IAED,UAAU,CAAC,YAAoB;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,YAAY;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EACJ,CAAC,CAAC,MAAM,CAAC,IAAI;gBACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAC3D,OAAO,EACL,CAAC,CAAC,MAAM,CAAC,IAAI;gBACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAC3D,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YAChC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;YACzC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACxF,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;YACjC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;SAC9B,CAAC;IACJ,CAAC;IAED,WAAW,CACT,YAAoB,EACpB,SAAkB,EAClB,SAAkB,EAClB,QAAiB,EACjB,QAAiB,EACjB,GAAY,EACZ,YAAqB,EACrB,YAAuB;QAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5C,IAAI,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,IAAI,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,IAAI,GAAG;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QAC1B,IAAI,YAAY;YAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IACvD,CAAC;IAEO,WAAW,CAAC,YAAoB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,OAAO;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClD,IACE,MAAM,CAAC,KAAK,KAAK,mBAAmB;gBACpC,MAAM,CAAC,kBAAkB;gBACzB,GAAG,GAAG,MAAM,CAAC,kBAAkB,GAAG,qBAAqB,EACvD,CAAC;gBACD,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;YAC9B,CAAC;YACD,IACE,MAAM,CAAC,KAAK,KAAK,YAAY;gBAC7B,CAAC,MAAM,CAAC,IAAI;gBACZ,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EACzB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACF"}
@@ -1,19 +1,22 @@
1
- export interface StoredTokenRecord {
1
+ export interface StoredAuthorizationRecord {
2
+ authorizationId: string;
2
3
  token: string;
3
- sessionIds: string[];
4
+ hostDeviceId: string;
5
+ clientDeviceId?: string;
6
+ clientName?: string;
4
7
  createdAt: number;
5
8
  lastUsedAt: number;
6
9
  }
7
10
  export interface StoredPairingRecord {
8
- sessionId: string;
11
+ hostDeviceId: string;
9
12
  pairingCode: string;
10
13
  expiresAt: number;
11
14
  claimed: boolean;
12
15
  }
13
16
  export interface GatewayStateStore {
14
- loadTokens(): Promise<StoredTokenRecord[]>;
15
- saveToken(record: StoredTokenRecord): Promise<void>;
16
- deleteToken(token: string): Promise<void>;
17
+ loadAuthorizations(): Promise<StoredAuthorizationRecord[]>;
18
+ saveAuthorization(record: StoredAuthorizationRecord): Promise<void>;
19
+ deleteAuthorization(authorizationId: string): Promise<void>;
17
20
  loadPairings(): Promise<StoredPairingRecord[]>;
18
21
  savePairing(record: StoredPairingRecord): Promise<void>;
19
22
  deletePairing(pairingCode: string): Promise<void>;
@@ -1,5 +1,7 @@
1
- const TOKEN_TABLE = process.env.SUPABASE_GATEWAY_TOKEN_TABLE ?? "linkshell_gateway_tokens";
2
- const PAIRING_TABLE = process.env.SUPABASE_GATEWAY_PAIRING_TABLE ?? "linkshell_gateway_pairings";
1
+ const AUTHORIZATION_TABLE = process.env.SUPABASE_GATEWAY_AUTHORIZATION_TABLE ??
2
+ "linkshell_gateway_device_authorizations";
3
+ const PAIRING_TABLE = process.env.SUPABASE_GATEWAY_PAIRING_TABLE ??
4
+ "linkshell_gateway_pairing_challenges";
3
5
  const STORE_TIMEOUT_MS = Number(process.env.SUPABASE_STATE_TIMEOUT_MS ?? 3_000);
4
6
  function msToIso(ms) {
5
7
  return new Date(ms).toISOString();
@@ -10,6 +12,9 @@ function isoToMs(value) {
10
12
  const parsed = Date.parse(value);
11
13
  return Number.isNaN(parsed) ? Date.now() : parsed;
12
14
  }
15
+ function maybeString(value) {
16
+ return typeof value === "string" && value.length > 0 ? value : undefined;
17
+ }
13
18
  export function createSupabaseStateStore() {
14
19
  const url = process.env.SUPABASE_URL?.replace(/\/+$/, "");
15
20
  const key = process.env.SUPABASE_SERVICE_ROLE_KEY || process.env.SUPABASE_ANON_KEY;
@@ -38,42 +43,44 @@ export function createSupabaseStateStore() {
38
43
  return (await res.json());
39
44
  }
40
45
  return {
41
- async loadTokens() {
42
- const rows = await request(`${TOKEN_TABLE}?select=token,session_ids,created_at,last_used_at`);
46
+ async loadAuthorizations() {
47
+ const rows = await request(`${AUTHORIZATION_TABLE}?select=authorization_id,token,host_device_id,client_device_id,client_name,created_at,last_used_at`);
43
48
  return rows.map((row) => ({
49
+ authorizationId: String(row.authorization_id ?? ""),
44
50
  token: String(row.token ?? ""),
45
- sessionIds: Array.isArray(row.session_ids)
46
- ? row.session_ids.map(String)
47
- : [],
51
+ hostDeviceId: String(row.host_device_id ?? ""),
52
+ clientDeviceId: maybeString(row.client_device_id),
53
+ clientName: maybeString(row.client_name),
48
54
  createdAt: isoToMs(row.created_at),
49
55
  lastUsedAt: isoToMs(row.last_used_at),
50
- })).filter((record) => record.token);
56
+ })).filter((record) => record.authorizationId && record.token && record.hostDeviceId);
51
57
  },
52
- async saveToken(record) {
53
- await request(`${TOKEN_TABLE}?on_conflict=token`, {
58
+ async saveAuthorization(record) {
59
+ await request(`${AUTHORIZATION_TABLE}?on_conflict=authorization_id`, {
54
60
  method: "POST",
55
61
  headers: { Prefer: "resolution=merge-duplicates" },
56
62
  body: JSON.stringify({
63
+ authorization_id: record.authorizationId,
57
64
  token: record.token,
58
- session_ids: record.sessionIds,
65
+ host_device_id: record.hostDeviceId,
66
+ client_device_id: record.clientDeviceId ?? null,
67
+ client_name: record.clientName ?? null,
59
68
  created_at: msToIso(record.createdAt),
60
69
  last_used_at: msToIso(record.lastUsedAt),
61
70
  }),
62
71
  });
63
72
  },
64
- async deleteToken(token) {
65
- await request(`${TOKEN_TABLE}?token=eq.${encodeURIComponent(token)}`, {
66
- method: "DELETE",
67
- });
73
+ async deleteAuthorization(authorizationId) {
74
+ await request(`${AUTHORIZATION_TABLE}?authorization_id=eq.${encodeURIComponent(authorizationId)}`, { method: "DELETE" });
68
75
  },
69
76
  async loadPairings() {
70
- const rows = await request(`${PAIRING_TABLE}?select=pairing_code,session_id,expires_at,claimed`);
77
+ const rows = await request(`${PAIRING_TABLE}?select=pairing_code,host_device_id,expires_at,claimed`);
71
78
  return rows.map((row) => ({
72
79
  pairingCode: String(row.pairing_code ?? ""),
73
- sessionId: String(row.session_id ?? ""),
80
+ hostDeviceId: String(row.host_device_id ?? ""),
74
81
  expiresAt: isoToMs(row.expires_at),
75
82
  claimed: row.claimed === true,
76
- })).filter((record) => record.pairingCode && record.sessionId);
83
+ })).filter((record) => record.pairingCode && record.hostDeviceId);
77
84
  },
78
85
  async savePairing(record) {
79
86
  await request(`${PAIRING_TABLE}?on_conflict=pairing_code`, {
@@ -81,7 +88,7 @@ export function createSupabaseStateStore() {
81
88
  headers: { Prefer: "resolution=merge-duplicates" },
82
89
  body: JSON.stringify({
83
90
  pairing_code: record.pairingCode,
84
- session_id: record.sessionId,
91
+ host_device_id: record.hostDeviceId,
85
92
  expires_at: msToIso(record.expiresAt),
86
93
  claimed: record.claimed,
87
94
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"state-store.js","sourceRoot":"","sources":["../../../src/state-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-store.js","sourceRoot":"","sources":["../../../src/state-store.ts"],"names":[],"mappings":"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"}