@pedit/serve 0.5.4 → 0.6.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.
package/README.md CHANGED
@@ -83,9 +83,36 @@ const extensions = [yCollab(conn.text, conn.awareness)] // plus basicSetup, Edit
83
83
  | Export | |
84
84
  | --- | --- |
85
85
  | `ServedFiles` | The layer below the routes: `acquire(path)` starts or reuses a child, `close()` ends all. |
86
+ | `ServedFile.share(opts)`, `unshare()`, `close()` | Open a room for the file (needs pedit with `serve` 2; the child is not idle-stopped while shared). `share` resolves `{ type: 'shared', room, links, keptUntil, resumed }`, or `{ type: 'choice', room, choices }` when the file has a kept room of another history (share again with `choice`). A link is `<room>.<fragment>`: put your page URL and `#` before it. `onEvent` also gets `peers`, `room_ended` and `shared`. |
86
87
  | `resolvePedit({ bin, install })`, `MIN_PEDIT_VERSION` | Finds pedit, checks the binary and its version. With `install: true`, downloads it when none is usable (see above) and returns `installed`. |
87
88
  | `HeldError`, `LimitError`, `NoPeditError` | Another process serves the file; 32 files or 8 clients; pedit missing or too old. |
88
89
 
90
+ ## Sharing
91
+
92
+ `peditRoutes(...)` also returns `share(path, opts)`, `unshare(path)` and `close(path)`. `path` is an absolute path to a file under `root`, checked as the routes check it (a path outside `root`, a link out of it or a missing file rejects with `file not found`, and starts no child). Sharing needs pedit with `serve` 2; the child is not stopped for idleness while the file is shared.
93
+
94
+ ```ts
95
+ const result = await routes.share('/home/me/notes/a.md', {
96
+ origins: ['https://cms.example.com'], // pages that may open the room
97
+ keep: '1d', // how long the relay keeps it after you leave; '0' is a live room
98
+ })
99
+ if (result.type === 'shared') {
100
+ const url = `https://cms.example.com/review#${result.links.comment ?? result.links.read}`
101
+ }
102
+ ```
103
+
104
+ `share` resolves one of:
105
+
106
+ | Result | Meaning |
107
+ | --- | --- |
108
+ | `{ type: 'shared', room, links: { edit, comment?, read }, keptUntil, resumed }` | The room is open. A link is `<room>.<fragment>`: the page link is `<page URL>#<link>`. |
109
+ | `{ type: 'choice', room, choices }` | The file has a kept room of another history. Ask the user which to keep (`room`, `app` or `later`; `text` is the characters each side holds), then call `share` again with the same options and `choice`. |
110
+ | `{ type: 'closed' }` | `choice: 'app'` ended the kept room, so nothing is shared. Call `share` again to open a new one. |
111
+
112
+ `unshare` leaves the room: a kept room stays until its deadline, a live one ends. `close` ends a kept room for good (called with no path it stops every child, as before). A failure from pedit rejects with its message.
113
+
114
+ `onEvent` also gets `shared`, `peers` (`{ peers: [{ name, access }], more? }`, `more` counts people left out of the list), `room_ended` (`reason`: `closed`, `expired` or `maintenance`, also when the relay ended the room unasked) and `unshared`. Each carries `path` and `id`: the id the routes last served that path under, or `null`.
115
+
89
116
  ## Installing pedit for the user
90
117
 
91
118
  Nothing is ever downloaded unless your app asks for it. Without the opt-in, a missing or old pedit
package/dist/bridge.d.ts CHANGED
@@ -5,6 +5,9 @@ export declare const OPEN = 1;
5
5
  export declare const DATA = 2;
6
6
  export declare const CLOSE = 3;
7
7
  export declare const EVENT = 4;
8
+ export declare const COMMAND = 5;
9
+ /** The most pedit takes in one command frame (docs/design/embedding.md "Commands"). */
10
+ export declare const MAX_COMMAND: number;
8
11
  export interface Bridge {
9
12
  /** page -> pedit. A frame over 16 MiB closes the bridge. */
10
13
  send(frame: Uint8Array): void;
@@ -42,6 +45,8 @@ export declare class Streams {
42
45
  deliver(frame: Frame): void;
43
46
  /** The child is gone: end every stream. */
44
47
  abort(): void;
48
+ /** A command to pedit: one JSON object on stream 0. */
49
+ command(json: string): void;
45
50
  /** Open a stream. `onGone` is called once, when it ends. */
46
51
  open(role: Role, onGone: () => void): Bridge;
47
52
  }
package/dist/bridge.js CHANGED
@@ -6,6 +6,9 @@ export const OPEN = 1;
6
6
  export const DATA = 2;
7
7
  export const CLOSE = 3;
8
8
  export const EVENT = 4;
9
+ export const COMMAND = 5;
10
+ /** The most pedit takes in one command frame (docs/design/embedding.md "Commands"). */
11
+ export const MAX_COMMAND = 64 * 1024;
9
12
  /** pedit sent something that is not a frame: the child cannot be trusted any more. */
10
13
  export class FrameError extends Error {
11
14
  }
@@ -122,6 +125,10 @@ export class Streams {
122
125
  if (this.#stdin.writable && !this.#stdin.destroyed)
123
126
  this.#stdin.write(frame, flushed);
124
127
  }
128
+ /** A command to pedit: one JSON object on stream 0. */
129
+ command(json) {
130
+ this.#write(encodeFrame(COMMAND, 0, Buffer.from(json)));
131
+ }
125
132
  /** Open a stream. `onGone` is called once, when it ends. */
126
133
  open(role, onGone) {
127
134
  const id = this.#next++;
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
package/dist/hono.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type Context, type Env, Hono } from 'hono';
2
2
  import type { UpgradeWebSocket } from 'hono/ws';
3
- import type { Role } from './types.ts';
3
+ import type { Peer, Role, Shared, ShareOptions, ShareResult } from './types.ts';
4
4
  export type { Role };
5
5
  export interface PeditOptions<E extends Env = Env> {
6
6
  /** From the adapter, created on the PARENT app (`createNodeWebSocket({ app })`). */
@@ -39,12 +39,42 @@ export type PeditEvent = {
39
39
  type: 'error';
40
40
  id: string | null;
41
41
  message: string;
42
+ }
43
+ /** The room events: `id` is the one the routes last served the path under, or null. */
44
+ | ({
45
+ type: 'shared';
46
+ id: string | null;
47
+ path: string;
48
+ } & Omit<Shared, 'type'>) | {
49
+ type: 'peers';
50
+ id: string | null;
51
+ path: string;
52
+ peers: Peer[];
53
+ more?: number;
54
+ } | {
55
+ type: 'room_ended';
56
+ id: string | null;
57
+ path: string;
58
+ reason: string;
59
+ } | {
60
+ type: 'unshared';
61
+ id: string | null;
62
+ path: string;
42
63
  } | {
43
64
  type: 'update_available';
44
65
  version: string;
45
66
  url: string;
46
67
  security: boolean;
47
68
  };
69
+ /** What `peditRoutes` adds to the Hono app. Paths are absolute and must be files under `root`. */
70
+ export interface PeditRoutes {
71
+ /** Open a room for a file under `root`. The child stays up while it is shared. */
72
+ share(path: string, opts?: ShareOptions): Promise<ShareResult>;
73
+ /** Leave the room: a kept room stays kept, a live one ends. */
74
+ unshare(path: string): Promise<void>;
75
+ /** With a path: end that file's kept room for good. Without: stop every child. */
76
+ close(path?: string): Promise<void>;
77
+ }
48
78
  /** True for 127.0.0.0/8, ::1 and their IPv4-mapped forms. */
49
79
  export declare function isLoopback(address: string | undefined): boolean;
50
80
  /**
@@ -53,6 +83,4 @@ export declare function isLoopback(address: string | undefined): boolean;
53
83
  * directories (per-directory case sensitivity). Another drive or share is never a prefix.
54
84
  */
55
85
  export declare function inside(root: string, path: string): boolean;
56
- export declare function peditRoutes<E extends Env = Env>(options: PeditOptions<E>): Hono<E> & {
57
- close(): Promise<void>;
58
- };
86
+ export declare function peditRoutes<E extends Env = Env>(options: PeditOptions<E>): Hono<E> & PeditRoutes;
package/dist/hono.js CHANGED
@@ -91,7 +91,12 @@ export function peditRoutes(options) {
91
91
  const id = (e.path !== null && idByPath.get(e.path)) || null;
92
92
  if (e.type === 'error')
93
93
  emit({ type: 'error', id, message: e.message });
94
- else if (id !== null) {
94
+ else if (e.type === 'shared' ||
95
+ e.type === 'peers' ||
96
+ e.type === 'room_ended' ||
97
+ e.type === 'unshared')
98
+ emit({ ...e, id });
99
+ else if (id !== null && (e.type === 'started' || e.type === 'stopped')) {
95
100
  emit(e.type === 'started'
96
101
  ? {
97
102
  type: 'started',
@@ -140,6 +145,21 @@ export function peditRoutes(options) {
140
145
  return null;
141
146
  }
142
147
  }
148
+ /** A path for the share API: under root, a regular file, as the routes' lookup demands. */
149
+ async function sharable(path) {
150
+ if (typeof path !== 'string' || !isAbsolute(path))
151
+ throw new TypeError('path must be absolute');
152
+ let real;
153
+ try {
154
+ real = await nativeRealpath(path);
155
+ if (!inside(root, real) || !(await stat(real)).isFile())
156
+ throw new Error();
157
+ }
158
+ catch {
159
+ throw new Error('file not found');
160
+ }
161
+ return (await getFiles()).acquire(real);
162
+ }
143
163
  async function open(id, found) {
144
164
  idByPath.set(found.real, id);
145
165
  return (await getFiles()).acquire(found.real);
@@ -298,7 +318,13 @@ export function peditRoutes(options) {
298
318
  });
299
319
  app.notFound((c) => c.body(null, 404));
300
320
  return Object.assign(app, {
301
- close: async () => {
321
+ /** Open a room for a file under `root`. The child stays up while it is shared. */
322
+ share: async (path, opts) => (await sharable(path)).share(opts),
323
+ unshare: async (path) => (await sharable(path)).unshare(),
324
+ /** With a path: end that file's kept room for good. Without: stop every child. */
325
+ close: async (path) => {
326
+ if (path !== undefined)
327
+ return (await sharable(path)).close();
302
328
  await (await filesP?.catch(() => undefined))?.close();
303
329
  },
304
330
  });
package/dist/hono.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hono.js","sourceRoot":"","sources":["../src/hono.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hono.js","sourceRoot":"","sources":["../src/hono.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,4 +3,4 @@ export { HeldError, LimitError, NoPeditError } from './errors.ts';
3
3
  export type { Installed, Verified } from './install.ts';
4
4
  export { MIN_PEDIT_VERSION, peditVersionOk, resolvePedit } from './resolve.ts';
5
5
  export { type ServedFile, ServedFiles, type ServedFilesOptions } from './served.ts';
6
- export type { Role, ServeEvent } from './types.ts';
6
+ export type { Peer, Role, ServeEvent, ShareChoice, ShareClosed, Shared, ShareOptions, ShareResult, } from './types.ts';
package/dist/served.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type Bridge } from './bridge.ts';
2
- import type { Role, ServeEvent } from './types.ts';
2
+ import type { Role, ServeEvent, ShareOptions, ShareResult } from './types.ts';
3
3
  export interface ServedFilesOptions {
4
4
  bin: string;
5
5
  /** Shown by another pedit's refusal. */
@@ -19,6 +19,16 @@ export interface ServedFile {
19
19
  readonly generation: string;
20
20
  /** One stream to the child; at most 8 per file (LimitError). */
21
21
  dial(role: Role): Promise<Bridge>;
22
+ /**
23
+ * Open a room for the file (serve >= 2). Resolves with the links, or with a `choice` when the
24
+ * file has a kept room of another history; rejects with pedit's error. While shared, the child
25
+ * is not stopped for idleness.
26
+ */
27
+ share(options?: ShareOptions): Promise<ShareResult>;
28
+ /** Leave the room: a kept room stays kept, a live one ends. */
29
+ unshare(): Promise<void>;
30
+ /** End the file's kept room for good (a live one is only left). Resolves once it is over. */
31
+ close(): Promise<void>;
22
32
  }
23
33
  export declare class ServedFiles {
24
34
  #private;
package/dist/served.js CHANGED
@@ -2,13 +2,16 @@ import { spawn } from 'node:child_process';
2
2
  import { stat } from 'node:fs/promises';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { basename, dirname, isAbsolute } from 'node:path';
5
- import { EVENT, FrameParser, Streams } from "./bridge.js";
5
+ import { EVENT, FrameParser, MAX_COMMAND, Streams } from "./bridge.js";
6
6
  import { HeldError, LimitError, NoPeditError } from "./errors.js";
7
7
  import { nativeRealpath } from "./paths.js";
8
8
  import { peditEnv } from "./resolve.js";
9
9
  const MAX_FILES = 32;
10
10
  const MAX_CLIENTS = 8;
11
- const MAX_EVENT = 4096;
11
+ const MAX_EVENT = 64 * 1024;
12
+ const MAX_PENDING = 16;
13
+ /** The first serve version that takes commands. */
14
+ const SHARE_SERVE = 2;
12
15
  const STDERR_KEEP = 1024;
13
16
  const TERM_AFTER_MS = 5000;
14
17
  /**
@@ -22,6 +25,16 @@ async function inodeOf(real) {
22
25
  throw new Error('not a regular file');
23
26
  return st.ino === 0n ? '' : `${st.dev}:${st.ino}`;
24
27
  }
28
+ function sharedOf(ev) {
29
+ const links = (ev.links ?? {});
30
+ return {
31
+ type: 'shared',
32
+ room: String(ev.room),
33
+ links: { edit: links.edit, read: links.read, ...(links.comment && { comment: links.comment }) },
34
+ keptUntil: Number(ev.keptUntil) || 0,
35
+ resumed: ev.resumed === true,
36
+ };
37
+ }
25
38
  export class ServedFiles {
26
39
  #options;
27
40
  #byPath = new Map();
@@ -138,6 +151,10 @@ export class ServedFiles {
138
151
  ready,
139
152
  streams: new Streams(child.stdin),
140
153
  listening: false,
154
+ serve: 0,
155
+ shared: false,
156
+ pending: [],
157
+ commands: 0,
141
158
  generation: '',
142
159
  clients: 0,
143
160
  idle: undefined,
@@ -167,6 +184,17 @@ export class ServedFiles {
167
184
  return entry.generation;
168
185
  },
169
186
  dial: (role) => this.#dial(entry, role),
187
+ share: async (options) => {
188
+ const { choice, keep, origins, relay } = options ?? {};
189
+ const ev = await this.#command(entry, 'share', { origins, keep, relay, choice });
190
+ if (ev.event === 'resume_choice')
191
+ return { type: 'choice', room: String(ev.room), choices: ev.choices };
192
+ if (ev.event === 'room_ended')
193
+ return { type: 'closed' }; // choice "app" ended the room
194
+ return sharedOf(ev);
195
+ },
196
+ unshare: async () => void (await this.#command(entry, 'unshare')),
197
+ close: async () => void (await this.#command(entry, 'close')),
170
198
  },
171
199
  };
172
200
  this.#byPath.set(path, entry);
@@ -183,20 +211,20 @@ export class ServedFiles {
183
211
  if (stderr.length < STDERR_KEEP)
184
212
  stderr = (stderr + d).slice(0, STDERR_KEEP);
185
213
  });
186
- const onEvent = (payload) => {
187
- let ev;
188
- try {
189
- ev = JSON.parse(payload.toString());
190
- }
191
- catch {
192
- return;
193
- }
194
- if (ev.event === 'listening' && !entry.listening) {
214
+ const emitRoom = (ev, event) => {
215
+ this.#answer(entry, ev); // before any callback: a reentrant command must not be taken for it
216
+ this.#emit(event);
217
+ };
218
+ const handlers = {
219
+ listening: (ev) => {
220
+ if (entry.listening)
221
+ return;
195
222
  if (typeof ev.generation !== 'string' || ev.generation === '') {
196
223
  errorMessage = 'pedit did not report a generation; it is too old';
197
224
  return this.#terminate(entry);
198
225
  }
199
226
  entry.listening = true;
227
+ entry.serve = typeof ev.serve === 'number' ? ev.serve : 0;
200
228
  entry.generation = ev.generation;
201
229
  this.#emit({
202
230
  type: 'started',
@@ -206,8 +234,8 @@ export class ServedFiles {
206
234
  });
207
235
  this.#armIdle(entry);
208
236
  onReady();
209
- }
210
- else if (ev.event === 'update_available') {
237
+ },
238
+ update_available: (ev) => {
211
239
  const { version, url, security } = ev;
212
240
  if (typeof version !== 'string' || typeof url !== 'string' || version === this.#updateSeen)
213
241
  return;
@@ -218,13 +246,53 @@ export class ServedFiles {
218
246
  url: url.slice(0, 512),
219
247
  security: security === true,
220
248
  });
221
- }
222
- else if (ev.event === 'held') {
249
+ },
250
+ held: (ev) => {
223
251
  held = { pid: Number(ev.pid), ...(typeof ev.app === 'string' ? { app: ev.app } : {}) };
224
- }
225
- else if (ev.event === 'error' && typeof ev.message === 'string') {
252
+ },
253
+ error: (ev) => {
254
+ if (typeof ev.message !== 'string')
255
+ return;
226
256
  errorMessage = ev.message.slice(0, STDERR_KEEP);
257
+ this.#answer(entry, ev);
258
+ },
259
+ shared: (ev) => {
260
+ entry.shared = true;
261
+ clearTimeout(entry.idle);
262
+ emitRoom(ev, { path, ...sharedOf(ev) });
263
+ },
264
+ resume_choice: (ev) => this.#answer(entry, ev),
265
+ unshared: (ev) => {
266
+ this.#left(entry);
267
+ emitRoom(ev, { type: 'unshared', path });
268
+ },
269
+ room_ended: (ev) => {
270
+ this.#left(entry);
271
+ emitRoom(ev, { type: 'room_ended', path, reason: String(ev.reason).slice(0, 64) });
272
+ },
273
+ peers: (ev) => {
274
+ if (!Array.isArray(ev.peers))
275
+ return;
276
+ const peers = ev.peers.map((p) => ({ name: String(p?.name), access: p?.access }));
277
+ this.#emit({
278
+ type: 'peers',
279
+ path,
280
+ peers,
281
+ ...(typeof ev.more === 'number' && { more: ev.more }),
282
+ });
283
+ },
284
+ };
285
+ const onEvent = (payload) => {
286
+ let ev;
287
+ try {
288
+ ev = JSON.parse(payload.toString());
227
289
  }
290
+ catch {
291
+ return;
292
+ }
293
+ const name = String(ev?.event);
294
+ if (Object.hasOwn(handlers, name))
295
+ handlers[name]?.(ev);
228
296
  };
229
297
  let broken = false;
230
298
  const frameBroke = () => {
@@ -279,6 +347,8 @@ export class ServedFiles {
279
347
  /** Drop an exited entry from the indexes and end what hangs off it. */
280
348
  #forget(entry) {
281
349
  entry.streams.abort();
350
+ for (const p of entry.pending.splice(0))
351
+ p.reject(new Error('the file is no longer served'));
282
352
  clearTimeout(entry.idle);
283
353
  if (this.#byPath.get(entry.path) === entry)
284
354
  this.#byPath.delete(entry.path);
@@ -289,9 +359,51 @@ export class ServedFiles {
289
359
  #grace(entry, overdue) {
290
360
  setTimeout(() => entry.dead || overdue(), this.#options.graceMs ?? TERM_AFTER_MS).unref();
291
361
  }
362
+ /**
363
+ * Send a command with an id of its own; only the event that carries that id answers it. The
364
+ * idle stop waits while a command is pending.
365
+ */
366
+ #command(entry, cmd, fields = {}) {
367
+ if (entry.dead || entry.stopping || !entry.listening)
368
+ return Promise.reject(new Error('the file is no longer served'));
369
+ if (entry.serve < SHARE_SERVE)
370
+ return Promise.reject(new Error(`sharing needs pedit serve ${SHARE_SERVE}; this pedit is older`));
371
+ if (entry.pending.length >= MAX_PENDING)
372
+ return Promise.reject(new LimitError('too many commands'));
373
+ const id = `c${++entry.commands}`;
374
+ const json = JSON.stringify({ cmd, id, ...fields });
375
+ if (Buffer.byteLength(json) > MAX_COMMAND)
376
+ return Promise.reject(new Error('command too large'));
377
+ return new Promise((resolve, reject) => {
378
+ clearTimeout(entry.idle);
379
+ entry.pending.push({ id, cmd, resolve, reject });
380
+ entry.streams.command(json);
381
+ });
382
+ }
383
+ /** Settle the command `ev` answers, by its id; an event without one answers nothing. */
384
+ #answer(entry, ev) {
385
+ const i = entry.pending.findIndex((p) => p.id === ev.id);
386
+ if (i < 0)
387
+ return;
388
+ const [done] = entry.pending.splice(i, 1);
389
+ if (ev.event === 'error')
390
+ done.reject(new Error(String(ev.message).slice(0, STDERR_KEEP)));
391
+ else
392
+ done.resolve(ev);
393
+ this.#armIdle(entry); // once the queue is empty, with no client and no room, the child may idle out
394
+ }
395
+ /** The room is gone: the child may idle out again. */
396
+ #left(entry) {
397
+ entry.shared = false;
398
+ this.#armIdle(entry);
399
+ }
292
400
  #armIdle(entry) {
293
401
  clearTimeout(entry.idle);
294
- if (entry.clients > 0 || entry.dead || entry.stopping)
402
+ if (entry.clients > 0 ||
403
+ entry.shared ||
404
+ entry.pending.length > 0 ||
405
+ entry.dead ||
406
+ entry.stopping)
295
407
  return;
296
408
  entry.idle = setTimeout(() => this.#stop(entry, 'idle'), this.#options.idleMs ?? 60_000);
297
409
  entry.idle.unref();
@@ -1 +1 @@
1
- {"version":3,"file":"served.js","sourceRoot":"","sources":["../src/served.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"served.js","sourceRoot":"","sources":["../src/served.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,47 @@
1
1
  /** `read` sends `X-Pedit-Role: read`, which pedit enforces. */
2
2
  export type Role = 'edit' | 'read';
3
+ export type Access = 'edit' | 'comment' | 'read';
4
+ export interface ShareOptions {
5
+ /** Page origins the relay admits to this room (at most 4). */
6
+ origins?: string[];
7
+ /** How long the relay keeps the room after the host leaves, e.g. `1d`; `0` makes a live room. */
8
+ keep?: string;
9
+ /** The relay's URL; default is the project's, or https://edit.piconic.ai. */
10
+ relay?: string;
11
+ /** The user's answer to a `choice` result. */
12
+ choice?: 'room' | 'app' | 'later';
13
+ }
14
+ /** The room is open. A link is `<room>.<fragment>`: the app puts its page URL and `#` in front. */
15
+ export interface Shared {
16
+ type: 'shared';
17
+ room: string;
18
+ links: {
19
+ edit: string;
20
+ comment?: string;
21
+ read: string;
22
+ };
23
+ /** Unix ms; 0 when the relay keeps nothing. */
24
+ keptUntil: number;
25
+ resumed: boolean;
26
+ }
27
+ /** The file has a kept room of another history: ask the user, then share again with `choice`. */
28
+ export interface ShareChoice {
29
+ type: 'choice';
30
+ room: string;
31
+ choices: {
32
+ choice: 'room' | 'app' | 'later';
33
+ text?: number;
34
+ }[];
35
+ }
36
+ /** Choosing `app` ended the kept room instead of sharing. */
37
+ export interface ShareClosed {
38
+ type: 'closed';
39
+ }
40
+ export type ShareResult = Shared | ShareChoice | ShareClosed;
41
+ export interface Peer {
42
+ name: string;
43
+ access: Access;
44
+ }
3
45
  export type ServeEvent =
4
46
  /** `version` and `serve` come from pedit's `listening` event; a pedit that predates them leaves them out. */
5
47
  {
@@ -22,4 +64,26 @@ export type ServeEvent =
22
64
  version: string;
23
65
  url: string;
24
66
  security: boolean;
67
+ }
68
+ /** Who is in the room, when it changed. `more` counts people pedit left out of the list. */
69
+ | {
70
+ type: 'peers';
71
+ path: string;
72
+ peers: Peer[];
73
+ more?: number;
74
+ }
75
+ /** The room ended, possibly without the app asking: the relay expired or closed it. */
76
+ | {
77
+ type: 'room_ended';
78
+ path: string;
79
+ reason: string;
80
+ } | ({
81
+ path: string;
82
+ } & Omit<Shared, 'type'> & {
83
+ type: 'shared';
84
+ })
85
+ /** `unshare` (or `close` on a live room) left the room. */
86
+ | {
87
+ type: 'unshared';
88
+ path: string;
25
89
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pedit/serve",
3
- "version": "0.5.4",
3
+ "version": "0.6.0",
4
4
  "description": "Run pedit serve for a local app: the file's Yjs document over the child's stdin and stdout, with Hono routes and a browser client",
5
5
  "keywords": [
6
6
  "pedit",