@vercel/board 0.23.0 → 0.25.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 +14 -19
- package/dist/{a2-NMEbIKNZ.mjs → a2-CQ3WcqMv.mjs} +6 -6
- package/dist/access.mjs +3 -3
- package/dist/{actors-rPnEQLZu.mjs → actors-CDDhhFNY.mjs} +2 -2
- package/dist/{auth-5nLsx9qB.mjs → auth-BwWH3Twu.mjs} +1 -1
- package/dist/{backend-CWmd4UH-.d.mts → backend-DmXjVnil.d.mts} +7 -3
- package/dist/backend-a2.d.mts +2 -2
- package/dist/backend-a2.mjs +1 -1
- package/dist/{backend-http-DQUsVgML.mjs → backend-http-BJ7AdK0c.mjs} +6 -6
- package/dist/{backend-http-BfWQfvqB.d.mts → backend-http-BsP0Xq9e.d.mts} +2 -2
- package/dist/{backend-http-D_rjJVmW.mjs → backend-http-Cs-UKpYp.mjs} +3 -3
- package/dist/backend-http.d.mts +1 -1
- package/dist/backend-http.mjs +1 -1
- package/dist/backend-http.node.d.mts +2 -2
- package/dist/backend-http.node.mjs +1 -1
- package/dist/{backend-vercel-BSuIfOyF.mjs → backend-vercel-B0Q0K0O5.mjs} +3 -3
- package/dist/{backend-vercel-CYOqtLPc.d.mts → backend-vercel-CED673bx.d.mts} +2 -2
- package/dist/{backend-vercel-BWVAihZC.mjs → backend-vercel-CG2SYa03.mjs} +3 -3
- package/dist/backend-vercel.d.mts +1 -1
- package/dist/backend-vercel.mjs +1 -1
- package/dist/backend-vercel.node.d.mts +1 -1
- package/dist/backend-vercel.node.mjs +1 -1
- package/dist/{chat-provider-D0k3y8zY.d.mts → chat-provider-6eYkL2ef.d.mts} +1 -1
- package/dist/cli-commands.mjs +1 -1
- package/dist/cli-embedded.d.mts +57 -6
- package/dist/cli-embedded.mjs +40 -20
- package/dist/cli.mjs +44 -37
- package/dist/{client-ClznIBMg.mjs → client-BY-BCggB.mjs} +13 -7
- package/dist/{commands-D_ODblQY.mjs → commands-BtL4jFq8.mjs} +0 -30
- package/dist/{conformance-DQ9qVzWP.mjs → conformance-BZ53bxrG.mjs} +1 -1
- package/dist/conformance.d.mts +1 -1
- package/dist/conformance.mjs +1 -1
- package/dist/{engine-kHfSOXnQ.mjs → engine-SeaJ_CIY.mjs} +2 -2
- package/dist/{errors-CQ-fwxM3.mjs → errors-Bven0k29.mjs} +7 -3
- package/dist/{exports-DAVHon9y.mjs → exports-ByvYtxFT.mjs} +6 -6
- package/dist/exports-CPrIkpz3.d.mts +4 -0
- package/dist/{index-DsMPCv_K.d.mts → index-k2LfZxl-.d.mts} +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/{index.default-TBybqjGV.mjs → index.default-DmfhBZZi.mjs} +1 -1
- package/dist/index.mjs +6 -6
- package/dist/index.node.d.mts +3 -3
- package/dist/index.node.mjs +4 -4
- package/dist/inspect/app.js +1 -1
- package/dist/{main-B5BCEQ0l.mjs → main-BNkywL2P.mjs} +713 -189
- package/dist/{middleware-DUjyQP_a.mjs → middleware-B0J7QBq7.mjs} +1 -1
- package/dist/{node-BeKPcokJ.mjs → node-C51_xzCb.mjs} +29 -52
- package/dist/{provider-D11Dfda0.d.mts → provider-C_sj4-GL.d.mts} +10 -1
- package/dist/{serve-BC218-NQ.mjs → serve-DYQ64Q5R.mjs} +6 -5
- package/dist/{server-BxUruJxv.mjs → server-BgK1sgj7.mjs} +5 -5
- package/dist/{serving-B307gppu.mjs → serving-rXQcEgTO.mjs} +1 -1
- package/dist/sync-github.d.mts +2 -2
- package/dist/sync-kapso.d.mts +2 -2
- package/dist/sync-linear.d.mts +2 -2
- package/dist/sync-slack.d.mts +2 -2
- package/dist/sync.chat.d.mts +1 -1
- package/dist/sync.d.mts +1 -1
- package/dist/{tokens-DUXaXwOj.mjs → tokens-U-XRlEfq.mjs} +2 -2
- package/dist/{watchers-hash-DYu8WWXj.mjs → watchers-hash-C4CJg7K1.mjs} +3 -3
- package/docs/01-board/01-mounting.md +4 -5
- package/docs/01-board/03-identity.md +16 -7
- package/docs/01-board/04-messages.md +2 -2
- package/docs/01-board/05-reading.md +16 -8
- package/docs/01-board/07-schedules.md +2 -2
- package/docs/01-board/09-access.md +5 -4
- package/docs/01-quickstart.md +8 -8
- package/docs/03-guides/01-coding-agents.md +21 -22
- package/docs/03-guides/02-inspector.md +1 -1
- package/docs/03-guides/03-ci.md +2 -2
- package/docs/04-reference/01-cli.md +95 -58
- package/docs/04-reference/02-board.md +4 -5
- package/docs/04-reference/03-http.md +4 -0
- package/docs/index.md +2 -3
- package/package.json +1 -1
- package/dist/exports-ggfE9jNv.d.mts +0 -4
package/dist/cli.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { t as ATTACHMENT_BYTES_MAX } from "./files-SniSmeEr.mjs";
|
|
3
3
|
import "./schemas-Be08nyfW.mjs";
|
|
4
|
-
import { a as option } from "./commands-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { a as option } from "./commands-BtL4jFq8.mjs";
|
|
5
|
+
import { a as projectDir } from "./node-C51_xzCb.mjs";
|
|
6
|
+
import { r as main, u as who } from "./main-BNkywL2P.mjs";
|
|
7
7
|
import { randomBytes, timingSafeEqual } from "node:crypto";
|
|
8
|
-
import { readFile } from "node:fs/promises";
|
|
8
|
+
import { appendFile, readFile } from "node:fs/promises";
|
|
9
9
|
import { join } from "node:path";
|
|
10
10
|
import { createServer } from "node:http";
|
|
11
11
|
//#region src/inspect/style.ts
|
|
@@ -605,36 +605,46 @@ const stopped = () => new Promise((resolve) => {
|
|
|
605
605
|
process.once("SIGINT", done);
|
|
606
606
|
process.once("SIGTERM", done);
|
|
607
607
|
});
|
|
608
|
+
const inspect = {
|
|
609
|
+
spec: {
|
|
610
|
+
name: "inspect",
|
|
611
|
+
description: "the board in your browser, as you: read, post, react (local only)",
|
|
612
|
+
arguments: [],
|
|
613
|
+
options: [option("port", "the port to listen on (default: a free one)"), option("no-open")],
|
|
614
|
+
examples: [{
|
|
615
|
+
name: "open the board in your browser",
|
|
616
|
+
value: "inspect"
|
|
617
|
+
}]
|
|
618
|
+
},
|
|
619
|
+
async run(_args, { flags, out, portFlag, client, openBrowser }) {
|
|
620
|
+
const port = portFlag();
|
|
621
|
+
const inspector = await startInspector({
|
|
622
|
+
client: client(),
|
|
623
|
+
...port !== void 0 ? { port } : {}
|
|
624
|
+
});
|
|
625
|
+
out(`inspecting ${inspector.board} as ${who(inspector.me)} at ${inspector.url} (Ctrl-C to stop)`);
|
|
626
|
+
if (!flags["no-open"]) openBrowser(inspector.url);
|
|
627
|
+
await stopped();
|
|
628
|
+
await inspector.close();
|
|
629
|
+
return 0;
|
|
630
|
+
}
|
|
631
|
+
};
|
|
632
|
+
/** Keeps the local board's log (`.board/`) out of the project's Git. */
|
|
633
|
+
async function ignoreLog(root) {
|
|
634
|
+
const path = join(root, ".gitignore");
|
|
635
|
+
const ignore = await readFile(path, "utf8").catch((error) => {
|
|
636
|
+
if (error.code === "ENOENT") return "";
|
|
637
|
+
throw error;
|
|
638
|
+
});
|
|
639
|
+
if (!ignore.split(/\r?\n/).some((line) => /^\/?\.board\/?$/.test(line))) await appendFile(path, `${ignore && !ignore.endsWith("\n") ? "\n" : ""}.board/\n`);
|
|
640
|
+
}
|
|
608
641
|
/** The commands only the standalone `board` has, in the order its help lists them. */
|
|
609
642
|
const local = {
|
|
610
|
-
inspect
|
|
611
|
-
spec: {
|
|
612
|
-
name: "inspect",
|
|
613
|
-
description: "the board in your browser, as you: read, post, react (local only)",
|
|
614
|
-
arguments: [],
|
|
615
|
-
options: [option("port", "the port to listen on (default: a free one)"), option("no-open")],
|
|
616
|
-
examples: [{
|
|
617
|
-
name: "open the board in your browser",
|
|
618
|
-
value: "inspect"
|
|
619
|
-
}]
|
|
620
|
-
},
|
|
621
|
-
async run(_args, { flags, out, portFlag, client, openBrowser }) {
|
|
622
|
-
const port = portFlag();
|
|
623
|
-
const inspector = await startInspector({
|
|
624
|
-
client: client(),
|
|
625
|
-
...port !== void 0 ? { port } : {}
|
|
626
|
-
});
|
|
627
|
-
out(`inspecting ${inspector.board} as ${who(inspector.me)} at ${inspector.url} (Ctrl-C to stop)`);
|
|
628
|
-
if (!flags["no-open"]) openBrowser(inspector.url);
|
|
629
|
-
await stopped();
|
|
630
|
-
await inspector.close();
|
|
631
|
-
return 0;
|
|
632
|
-
}
|
|
633
|
-
},
|
|
643
|
+
inspect,
|
|
634
644
|
serve: {
|
|
635
645
|
spec: {
|
|
636
646
|
name: "serve",
|
|
637
|
-
description: "run a board on this machine (127.0.0.1:4100, no sync)
|
|
647
|
+
description: "run a board on this machine (127.0.0.1:4100, no sync) and open the inspector: other commands reach it with --url or BOARD_URL. Its log lives in .board/, and you're local:user:<your OS user> (or --handle)",
|
|
638
648
|
arguments: [],
|
|
639
649
|
options: [
|
|
640
650
|
option("port", "the port to listen on (default: 4100)"),
|
|
@@ -647,11 +657,11 @@ const local = {
|
|
|
647
657
|
value: "serve"
|
|
648
658
|
}]
|
|
649
659
|
},
|
|
650
|
-
async run(args, { flags, out, usage, portFlag, connection, openBrowser
|
|
651
|
-
if (args.length > 0) throw usage("
|
|
660
|
+
async run(args, { flags, out, usage, portFlag, connection, openBrowser }) {
|
|
661
|
+
if (args.length > 0) throw usage("serve takes no arguments: pass its port with --port, and its directory with --dir.");
|
|
652
662
|
const port = portFlag();
|
|
653
663
|
const root = projectDir();
|
|
654
|
-
const { localHandle, serveLocal } = await import("./serve-
|
|
664
|
+
const { localHandle, serveLocal } = await import("./serve-DYQ64Q5R.mjs");
|
|
655
665
|
const handle = flags.handle ?? process.env.BOARD_HANDLE;
|
|
656
666
|
const local = await serveLocal({
|
|
657
667
|
dir: flags.dir ?? join(root, ".board"),
|
|
@@ -660,12 +670,9 @@ const local = {
|
|
|
660
670
|
});
|
|
661
671
|
let inspector = null;
|
|
662
672
|
try {
|
|
663
|
-
|
|
664
|
-
if (linked === void 0 || linked === local.url || linkedByServe(root)) {
|
|
665
|
-
await saveLink(root, local.url, { serve: true });
|
|
666
|
-
if (linked !== local.url) out(`linked ${root} to ${local.url}`);
|
|
667
|
-
} else out(`${root} stays linked to ${linked}; reach this board with BOARD_URL=${local.url}`);
|
|
673
|
+
if (!flags.dir) await ignoreLog(root);
|
|
668
674
|
out(`serving a local board at ${local.url} as ${local.principal}, its log in ${local.dir} (Ctrl-C to stop)`);
|
|
675
|
+
out(`reach it with --url ${local.url}, or BOARD_URL=${local.url}`);
|
|
669
676
|
if (!flags["no-inspect"]) {
|
|
670
677
|
const { board } = connection(local.url, {
|
|
671
678
|
token: local.token,
|
|
@@ -39,14 +39,20 @@ async function* parseSse(body, signal) {
|
|
|
39
39
|
}
|
|
40
40
|
//#endregion
|
|
41
41
|
//#region src/client/client.ts
|
|
42
|
+
/**
|
|
43
|
+
* What went wrong: `message` says what and why, `code` is what to branch on, and `hint`, when the
|
|
44
|
+
* handle knows one, says what fixes it (`Set VERCEL_AUTOMATION_BYPASS_SECRET…`).
|
|
45
|
+
*/
|
|
42
46
|
var BoardError = class extends Error {
|
|
43
47
|
code;
|
|
44
48
|
status;
|
|
45
|
-
|
|
49
|
+
hint;
|
|
50
|
+
constructor(code, message, status, options = {}) {
|
|
46
51
|
super(message);
|
|
47
52
|
this.name = "BoardError";
|
|
48
53
|
this.code = code;
|
|
49
54
|
this.status = status;
|
|
55
|
+
this.hint = options.hint;
|
|
50
56
|
}
|
|
51
57
|
};
|
|
52
58
|
const resolve = async (value) => typeof value === "function" ? await value() : value;
|
|
@@ -76,7 +82,7 @@ const UNITS = {
|
|
|
76
82
|
function duration(value) {
|
|
77
83
|
if (typeof value === "number") return value;
|
|
78
84
|
const match = value.trim().match(/^(\d+(?:\.\d+)?)(ms|s|m|h|d)?$/);
|
|
79
|
-
if (!match) throw new BoardError("invalid_duration",
|
|
85
|
+
if (!match) throw new BoardError("invalid_duration", `${value} isn't a duration like 30s, 10m, or 1h.`, 0);
|
|
80
86
|
return Number(match[1]) * UNITS[match[2] ?? "ms"];
|
|
81
87
|
}
|
|
82
88
|
/** A ref as a path segment: opaque, so it's encoded as it is. */
|
|
@@ -214,13 +220,13 @@ function createBoardClient(options) {
|
|
|
214
220
|
const type = input.type || (input.data instanceof Blob ? input.data.type : "") || typeOf(input.name);
|
|
215
221
|
const size = input.data instanceof Blob ? input.data.size : input.data.byteLength;
|
|
216
222
|
if (size > 4194304) {
|
|
217
|
-
if (size > 104857600) throw new BoardError("too_large", `
|
|
223
|
+
if (size > 104857600) throw new BoardError("too_large", `Attachments are at most ${DIRECT_UPLOAD_BYTES_MAX / 1024 / 1024} MB.`, 413);
|
|
218
224
|
const ticket = await call("POST", "/attachments/uploads", { body: {
|
|
219
225
|
name: input.name,
|
|
220
226
|
type,
|
|
221
227
|
size
|
|
222
228
|
} }).catch((error) => {
|
|
223
|
-
if (error instanceof BoardError && error.status === 404 && error.code === "not_found") throw new BoardError("too_large", `
|
|
229
|
+
if (error instanceof BoardError && error.status === 404 && error.code === "not_found") throw new BoardError("too_large", `This board takes files of at most ${ATTACHMENT_BYTES_MAX / 1024 / 1024} MB.`, 413);
|
|
224
230
|
throw error;
|
|
225
231
|
});
|
|
226
232
|
const put = await storeFetch(ticket.url, {
|
|
@@ -228,7 +234,7 @@ function createBoardClient(options) {
|
|
|
228
234
|
headers: ticket.headers,
|
|
229
235
|
body: input.data
|
|
230
236
|
});
|
|
231
|
-
if (!put.ok) throw new BoardError("upload_failed", `
|
|
237
|
+
if (!put.ok) throw new BoardError("upload_failed", `The blob store refused the file: ${put.status} ${(await put.text().catch(() => "")).slice(0, 300) || put.statusText}`, put.status);
|
|
232
238
|
return (await call("POST", `/attachments/uploads/${encodeURIComponent(ticket.id)}`, { body: {} })).attachment;
|
|
233
239
|
}
|
|
234
240
|
const response = await doFetch(`${base}/attachments`, {
|
|
@@ -382,9 +388,9 @@ function createBoardClient(options) {
|
|
|
382
388
|
async function toError(response) {
|
|
383
389
|
try {
|
|
384
390
|
const body = await response.json();
|
|
385
|
-
if (body.error?.message) return new BoardError(body.error.code ?? "error", body.error.message, response.status);
|
|
391
|
+
if (body.error?.message) return new BoardError(body.error.code ?? "error", body.error.message, response.status, typeof body.error.hint === "string" ? { hint: body.error.hint } : {});
|
|
386
392
|
} catch {}
|
|
387
|
-
return new BoardError("http_error", `${response.status} ${response.statusText}
|
|
393
|
+
return new BoardError("http_error", `The board answered ${`${response.status} ${response.statusText}`.trim()}.`, response.status);
|
|
388
394
|
}
|
|
389
395
|
//#endregion
|
|
390
396
|
export { createBoardClient as n, duration as r, BoardError as t };
|
|
@@ -264,36 +264,6 @@ const commands = [
|
|
|
264
264
|
value: "whoami"
|
|
265
265
|
}]
|
|
266
266
|
},
|
|
267
|
-
{
|
|
268
|
-
group: "you",
|
|
269
|
-
name: "link",
|
|
270
|
-
description: "link this project to a board (.board/config.json)",
|
|
271
|
-
arguments: [{
|
|
272
|
-
name: "url",
|
|
273
|
-
required: true,
|
|
274
|
-
description: "the board's URL"
|
|
275
|
-
}],
|
|
276
|
-
options: [],
|
|
277
|
-
examples: [{
|
|
278
|
-
name: "link this project to a team's board",
|
|
279
|
-
value: "link https://www.example.com/api/board"
|
|
280
|
-
}]
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
group: "you",
|
|
284
|
-
name: "use",
|
|
285
|
-
description: "save the default board",
|
|
286
|
-
arguments: [{
|
|
287
|
-
name: "url",
|
|
288
|
-
required: true,
|
|
289
|
-
description: "the board's URL"
|
|
290
|
-
}],
|
|
291
|
-
options: [],
|
|
292
|
-
examples: [{
|
|
293
|
-
name: "use a board everywhere nothing else is linked",
|
|
294
|
-
value: "use https://www.example.com/api/board"
|
|
295
|
-
}]
|
|
296
|
-
},
|
|
297
267
|
{
|
|
298
268
|
group: "the board",
|
|
299
269
|
name: "channels",
|
package/dist/conformance.d.mts
CHANGED
package/dist/conformance.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as conformance } from "./conformance-
|
|
1
|
+
import { t as conformance } from "./conformance-BZ53bxrG.mjs";
|
|
2
2
|
export { conformance };
|
|
@@ -3,9 +3,9 @@ import { C as toStorable, c as ChannelPath, m as MESSAGE_TEXT_MAX } from "./sche
|
|
|
3
3
|
import { c as externalMessageKey, l as isThreadTarget, s as channelOf } from "./external-BV_cUncs.mjs";
|
|
4
4
|
import { t as canonicalEmoji } from "./emoji-CTLpvH-A.mjs";
|
|
5
5
|
import { n as derivedId } from "./ids-C6AYo1bu.mjs";
|
|
6
|
-
import { r as badRequest, s as notFound, t as HttpError } from "./errors-
|
|
6
|
+
import { r as badRequest, s as notFound, t as HttpError } from "./errors-Bven0k29.mjs";
|
|
7
7
|
import { n as replaceMentions } from "./mentions-CB6ShY4R.mjs";
|
|
8
|
-
import { t as DroppedError } from "./middleware-
|
|
8
|
+
import { t as DroppedError } from "./middleware-B0J7QBq7.mjs";
|
|
9
9
|
import { n as waitUntil, t as afterRetry } from "./attempts-CLG840Oj.mjs";
|
|
10
10
|
import { a as channelMissing, i as UnreadableError, n as ResolvedTarget, o as routesFor, t as ReceivedEvent } from "./provider-poIkXapd.mjs";
|
|
11
11
|
import { a as immutable, n as SyncOverrides } from "./events-CewD4kw7.mjs";
|
|
@@ -3,10 +3,13 @@ import { ZodError } from "zod";
|
|
|
3
3
|
var HttpError = class extends Error {
|
|
4
4
|
status;
|
|
5
5
|
code;
|
|
6
|
-
|
|
6
|
+
/** What fixes it, when the handle that raised it knows (`BoardError`'s `hint`). */
|
|
7
|
+
hint;
|
|
8
|
+
constructor(status, code, message, options = {}) {
|
|
7
9
|
super(message);
|
|
8
10
|
this.status = status;
|
|
9
11
|
this.code = code;
|
|
12
|
+
this.hint = options.hint;
|
|
10
13
|
}
|
|
11
14
|
};
|
|
12
15
|
/** A request a host's own verifier rejected with `response`, which the board answers with as it is. */
|
|
@@ -41,12 +44,13 @@ function reported(issue) {
|
|
|
41
44
|
path: [...issue.path, ...first.path]
|
|
42
45
|
}) : issue;
|
|
43
46
|
}
|
|
44
|
-
/** Every failure becomes `{ error: { code, message } }` with a matching status. */
|
|
47
|
+
/** Every failure becomes `{ error: { code, message, hint? } }` with a matching status. */
|
|
45
48
|
function toErrorResponse(error) {
|
|
46
49
|
if (error instanceof RejectedError) return error.response;
|
|
47
50
|
if (error instanceof HttpError) return json({ error: {
|
|
48
51
|
code: error.code,
|
|
49
|
-
message: error.message
|
|
52
|
+
message: error.message,
|
|
53
|
+
...error.hint !== void 0 ? { hint: error.hint } : {}
|
|
50
54
|
} }, error.status);
|
|
51
55
|
if (error instanceof ZodError) {
|
|
52
56
|
const issue = error.issues[0] && reported(error.issues[0]);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as ATTACHMENT_BYTES_MAX } from "./files-SniSmeEr.mjs";
|
|
2
2
|
import "./schemas-Be08nyfW.mjs";
|
|
3
|
-
import { A as SchedulesQuery, B as SyncReceiptBody, C as MatchesQuery, D as Ref, E as ReactBody, F as SyncBody, G as UploadStartBody, H as SyncUnlinkBody, I as SyncCodeBody, L as SyncCopiesQuery, M as SourceJoinBody, N as SourceReadQuery, O as RegisterBody, P as SyncAccountBody, R as SyncFindQuery, S as LinkedQuery, T as PostBody, U as ThreadsQuery, V as SyncRootsQuery, W as TypingBody, _ as InboxAckBody, a as METHODS, b as InboxQuery, c as queryObject, d as VERSION, f as SYNC, g as IdentityUnlinkBody, h as EventsQuery, j as SignInQuery, k as ScheduleBody, l as readCapped, m as EditBody, o as createRouter, p as AckBody, s as openapi, u as readJson, v as InboxNextQuery, w as MessagesQuery, x as LabelBody, y as InboxPushBody, z as SyncImportBody } from "./watchers-hash-
|
|
4
|
-
import { n as createBoardClient, t as BoardError } from "./client-
|
|
3
|
+
import { A as SchedulesQuery, B as SyncReceiptBody, C as MatchesQuery, D as Ref, E as ReactBody, F as SyncBody, G as UploadStartBody, H as SyncUnlinkBody, I as SyncCodeBody, L as SyncCopiesQuery, M as SourceJoinBody, N as SourceReadQuery, O as RegisterBody, P as SyncAccountBody, R as SyncFindQuery, S as LinkedQuery, T as PostBody, U as ThreadsQuery, V as SyncRootsQuery, W as TypingBody, _ as InboxAckBody, a as METHODS, b as InboxQuery, c as queryObject, d as VERSION, f as SYNC, g as IdentityUnlinkBody, h as EventsQuery, j as SignInQuery, k as ScheduleBody, l as readCapped, m as EditBody, o as createRouter, p as AckBody, s as openapi, u as readJson, v as InboxNextQuery, w as MessagesQuery, x as LabelBody, y as InboxPushBody, z as SyncImportBody } from "./watchers-hash-C4CJg7K1.mjs";
|
|
4
|
+
import { n as createBoardClient, t as BoardError } from "./client-BY-BCggB.mjs";
|
|
5
5
|
import { n as derivedId } from "./ids-C6AYo1bu.mjs";
|
|
6
|
-
import { a as forbidden, c as toErrorResponse, l as unauthorized, n as RejectedError, o as json, r as badRequest, s as notFound, t as HttpError } from "./errors-
|
|
7
|
-
import { d as issuersOf, g as verifiesTokens, l as hostPrincipal, o as createAuthority, s as fromTokens } from "./auth-
|
|
8
|
-
import { i as resolveActor, r as claimsOf, t as KNOWN_AGENTS } from "./actors-
|
|
9
|
-
import { r as runMiddleware, t as DroppedError } from "./middleware-
|
|
6
|
+
import { a as forbidden, c as toErrorResponse, l as unauthorized, n as RejectedError, o as json, r as badRequest, s as notFound, t as HttpError } from "./errors-Bven0k29.mjs";
|
|
7
|
+
import { d as issuersOf, g as verifiesTokens, l as hostPrincipal, o as createAuthority, s as fromTokens } from "./auth-BwWH3Twu.mjs";
|
|
8
|
+
import { i as resolveActor, r as claimsOf, t as KNOWN_AGENTS } from "./actors-CDDhhFNY.mjs";
|
|
9
|
+
import { r as runMiddleware, t as DroppedError } from "./middleware-B0J7QBq7.mjs";
|
|
10
10
|
import { n as syncTarget, r as withEmailMentions, t as mentionsEmails } from "./targets-C-wdR5wP.mjs";
|
|
11
11
|
//#region src/server/policy.ts
|
|
12
12
|
/**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { d as Board, f as BoardOptions } from "./backend-
|
|
2
|
-
import "./exports-
|
|
1
|
+
import { d as Board, f as BoardOptions } from "./backend-DmXjVnil.mjs";
|
|
2
|
+
import "./exports-CPrIkpz3.mjs";
|
|
3
3
|
//#region src/server/index.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* The handle on a board. With a `backend`, the board lives there: `a2()` keeps it in this
|
|
6
6
|
* deployment, `http(url)` uses another. Without one, it's `http()` to the board the environment
|
|
7
|
-
* points at: `BOARD_URL
|
|
7
|
+
* points at: `BOARD_URL`.
|
|
8
8
|
*/
|
|
9
9
|
declare function board(options?: BoardOptions): Board;
|
|
10
10
|
//#endregion
|
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as CallerRequest, o as Claims } from "./auth-CU56Q2Xh.mjs";
|
|
2
2
|
import { i as Attachment } from "./schemas-CWxs3ECJ.mjs";
|
|
3
|
-
import { $ as Discovery, $t as SyncCodeView, At as Ref, B as ReplyOptions, Bt as SchedulesQuery, Ct as MessagesQueryInput, Dt as PostInput, Et as PostBody, Ft as RouteName, G as Written, Gt as SourceJoinBody, H as ScheduleTiming, Ht as SchedulesQueryOutput, I as BoardError, It as ScheduleBody, J as ActorView, Jt as SourceReadQuery, K as duration, Kt as SourceMessage, L as Filters, Lt as ScheduleBodyOutput, Mt as RegisterInput, Nt as RegistrationView, Ot as REGISTERED_WATCHERS_MAX, Pt as ResolvedSyncTarget, Q as DeleteBody, Qt as SyncCodeBody, R as PostOptions, Rt as ScheduleInput, Sn as routes, St as MessagesQuery, Tt as PersonView, U as UploadInput, Ut as SignInQuery, V as ScheduleOptions, Vt as SchedulesQueryInput, W as WaitOptions, Wt as SourceJoin, X as BoardEventView, Xt as SyncAccountInput, Y as ApiError, Yt as SyncAccountBody, Z as ChannelView, Zt as SyncBody, _n as ThreadsQueryInput, _t as MatchView, an as SyncImportBody, at as IdentityUnlinkBody, bn as UploadStartBody, bt as MessageView, cn as SyncReceiptInput, ct as InboxEntry, dn as SyncUnlinkBody, dt as InboxPushBody, en as SyncCopiesQuery, et as EditBody, fn as SyncedView, ft as InboxQuery, gn as ThreadsQuery, gt as LinkedQuery, hn as ThreadsPage, ht as LinkedAccount, in as SyncFindView, it as FiltersInput, jt as RegisterBody, kt as ReactBody, ln as SyncRootsQuery, lt as InboxItem, mn as ThreadView, mt as LinkView, nn as SyncFindInput, nt as EventsQuery, on as SyncImportInput, ot as IdentityView, pn as ThreadSummaryView, pt as LabelBody, q as AckBody, qt as SourceRead, rn as SyncFindQuery, rt as EventsQueryInput, sn as SyncReceiptBody, st as InboxAckBody, tn as SyncCopiesView, tt as EventsPage, un as SyncThreadView, ut as InboxNextQuery, vn as TypingBody, vt as MatchesQuery, wt as ParsedFilters, xn as UploadTicket, xt as MessagesPage, yn as TypingResult, yt as Me, z as ProfileOption, zt as ScheduleView } from "./provider-
|
|
4
|
-
import { C as Protocol, S as Method, _ as MiddlewareContext, a as Identity, b as WriteSource, c as SelfCaller, d as Board, f as BoardOptions, g as Middleware, h as DroppedError, i as Caller, l as Subscription, m as WatcherContext, n as BackendRoute, o as InboxDelivery, p as Watcher, r as BoardBinding, s as ProtocolMethods, t as Backend, u as VerifiedCaller, v as Write, x as HttpError, y as WritePatch } from "./backend-
|
|
5
|
-
import "./exports-
|
|
3
|
+
import { $ as Discovery, $t as SyncCodeView, At as Ref, B as ReplyOptions, Bt as SchedulesQuery, Ct as MessagesQueryInput, Dt as PostInput, Et as PostBody, Ft as RouteName, G as Written, Gt as SourceJoinBody, H as ScheduleTiming, Ht as SchedulesQueryOutput, I as BoardError, It as ScheduleBody, J as ActorView, Jt as SourceReadQuery, K as duration, Kt as SourceMessage, L as Filters, Lt as ScheduleBodyOutput, Mt as RegisterInput, Nt as RegistrationView, Ot as REGISTERED_WATCHERS_MAX, Pt as ResolvedSyncTarget, Q as DeleteBody, Qt as SyncCodeBody, R as PostOptions, Rt as ScheduleInput, Sn as routes, St as MessagesQuery, Tt as PersonView, U as UploadInput, Ut as SignInQuery, V as ScheduleOptions, Vt as SchedulesQueryInput, W as WaitOptions, Wt as SourceJoin, X as BoardEventView, Xt as SyncAccountInput, Y as ApiError, Yt as SyncAccountBody, Z as ChannelView, Zt as SyncBody, _n as ThreadsQueryInput, _t as MatchView, an as SyncImportBody, at as IdentityUnlinkBody, bn as UploadStartBody, bt as MessageView, cn as SyncReceiptInput, ct as InboxEntry, dn as SyncUnlinkBody, dt as InboxPushBody, en as SyncCopiesQuery, et as EditBody, fn as SyncedView, ft as InboxQuery, gn as ThreadsQuery, gt as LinkedQuery, hn as ThreadsPage, ht as LinkedAccount, in as SyncFindView, it as FiltersInput, jt as RegisterBody, kt as ReactBody, ln as SyncRootsQuery, lt as InboxItem, mn as ThreadView, mt as LinkView, nn as SyncFindInput, nt as EventsQuery, on as SyncImportInput, ot as IdentityView, pn as ThreadSummaryView, pt as LabelBody, q as AckBody, qt as SourceRead, rn as SyncFindQuery, rt as EventsQueryInput, sn as SyncReceiptBody, st as InboxAckBody, tn as SyncCopiesView, tt as EventsPage, un as SyncThreadView, ut as InboxNextQuery, vn as TypingBody, vt as MatchesQuery, wt as ParsedFilters, xn as UploadTicket, xt as MessagesPage, yn as TypingResult, yt as Me, z as ProfileOption, zt as ScheduleView } from "./provider-C_sj4-GL.mjs";
|
|
4
|
+
import { C as Protocol, S as Method, _ as MiddlewareContext, a as Identity, b as WriteSource, c as SelfCaller, d as Board, f as BoardOptions, g as Middleware, h as DroppedError, i as Caller, l as Subscription, m as WatcherContext, n as BackendRoute, o as InboxDelivery, p as Watcher, r as BoardBinding, s as ProtocolMethods, t as Backend, u as VerifiedCaller, v as Write, x as HttpError, y as WritePatch } from "./backend-DmXjVnil.mjs";
|
|
5
|
+
import "./exports-CPrIkpz3.mjs";
|
|
6
6
|
//#region src/server/index.default.d.ts
|
|
7
7
|
/**
|
|
8
8
|
* The handle on a board. Outside Node there's no environment to find one in, so pass its
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as createHttp } from "./backend-http-
|
|
1
|
+
import { r as createHttp } from "./backend-http-BJ7AdK0c.mjs";
|
|
2
2
|
//#region src/backend-http/index.default.ts
|
|
3
3
|
/**
|
|
4
4
|
* The board at `url`, which keeps the log. Outside Node there's no environment to find it or a
|
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r as duration, t as BoardError } from "./client-
|
|
2
|
-
import { t as HttpError } from "./errors-
|
|
3
|
-
import { t as http } from "./index.default-
|
|
4
|
-
import { t as createBoard } from "./exports-
|
|
5
|
-
import { t as DroppedError } from "./middleware-
|
|
1
|
+
import { r as duration, t as BoardError } from "./client-BY-BCggB.mjs";
|
|
2
|
+
import { t as HttpError } from "./errors-Bven0k29.mjs";
|
|
3
|
+
import { t as http } from "./index.default-DmfhBZZi.mjs";
|
|
4
|
+
import { t as createBoard } from "./exports-ByvYtxFT.mjs";
|
|
5
|
+
import { t as DroppedError } from "./middleware-B0J7QBq7.mjs";
|
|
6
6
|
//#region src/server/index.default.ts
|
|
7
7
|
/**
|
|
8
8
|
* The handle on a board. Outside Node there's no environment to find one in, so pass its
|
|
@@ -11,7 +11,7 @@ import { t as DroppedError } from "./middleware-DUjyQP_a.mjs";
|
|
|
11
11
|
function board(options = {}) {
|
|
12
12
|
return createBoard(options, {
|
|
13
13
|
http: () => http(),
|
|
14
|
-
sync: () => import("./engine-
|
|
14
|
+
sync: () => import("./engine-SeaJ_CIY.mjs"),
|
|
15
15
|
serving: null
|
|
16
16
|
});
|
|
17
17
|
}
|
package/dist/index.node.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as CallerRequest, o as Claims } from "./auth-CU56Q2Xh.mjs";
|
|
2
2
|
import { i as Attachment } from "./schemas-CWxs3ECJ.mjs";
|
|
3
|
-
import { $ as Discovery, $t as SyncCodeView, At as Ref, B as ReplyOptions, Bt as SchedulesQuery, Ct as MessagesQueryInput, Dt as PostInput, Et as PostBody, Ft as RouteName, G as Written, Gt as SourceJoinBody, H as ScheduleTiming, Ht as SchedulesQueryOutput, I as BoardError, It as ScheduleBody, J as ActorView, Jt as SourceReadQuery, K as duration, Kt as SourceMessage, L as Filters, Lt as ScheduleBodyOutput, Mt as RegisterInput, Nt as RegistrationView, Ot as REGISTERED_WATCHERS_MAX, Pt as ResolvedSyncTarget, Q as DeleteBody, Qt as SyncCodeBody, R as PostOptions, Rt as ScheduleInput, Sn as routes, St as MessagesQuery, Tt as PersonView, U as UploadInput, Ut as SignInQuery, V as ScheduleOptions, Vt as SchedulesQueryInput, W as WaitOptions, Wt as SourceJoin, X as BoardEventView, Xt as SyncAccountInput, Y as ApiError, Yt as SyncAccountBody, Z as ChannelView, Zt as SyncBody, _n as ThreadsQueryInput, _t as MatchView, an as SyncImportBody, at as IdentityUnlinkBody, bn as UploadStartBody, bt as MessageView, cn as SyncReceiptInput, ct as InboxEntry, dn as SyncUnlinkBody, dt as InboxPushBody, en as SyncCopiesQuery, et as EditBody, fn as SyncedView, ft as InboxQuery, gn as ThreadsQuery, gt as LinkedQuery, hn as ThreadsPage, ht as LinkedAccount, in as SyncFindView, it as FiltersInput, jt as RegisterBody, kt as ReactBody, ln as SyncRootsQuery, lt as InboxItem, mn as ThreadView, mt as LinkView, nn as SyncFindInput, nt as EventsQuery, on as SyncImportInput, ot as IdentityView, pn as ThreadSummaryView, pt as LabelBody, q as AckBody, qt as SourceRead, rn as SyncFindQuery, rt as EventsQueryInput, sn as SyncReceiptBody, st as InboxAckBody, tn as SyncCopiesView, tt as EventsPage, un as SyncThreadView, ut as InboxNextQuery, vn as TypingBody, vt as MatchesQuery, wt as ParsedFilters, xn as UploadTicket, xt as MessagesPage, yn as TypingResult, yt as Me, z as ProfileOption, zt as ScheduleView } from "./provider-
|
|
4
|
-
import { C as Protocol, S as Method, _ as MiddlewareContext, a as Identity, b as WriteSource, c as SelfCaller, d as Board, f as BoardOptions, g as Middleware, h as DroppedError, i as Caller, l as Subscription, m as WatcherContext, n as BackendRoute, o as InboxDelivery, p as Watcher, r as BoardBinding, s as ProtocolMethods, t as Backend, u as VerifiedCaller, v as Write, x as HttpError, y as WritePatch } from "./backend-
|
|
5
|
-
import { t as board } from "./index-
|
|
3
|
+
import { $ as Discovery, $t as SyncCodeView, At as Ref, B as ReplyOptions, Bt as SchedulesQuery, Ct as MessagesQueryInput, Dt as PostInput, Et as PostBody, Ft as RouteName, G as Written, Gt as SourceJoinBody, H as ScheduleTiming, Ht as SchedulesQueryOutput, I as BoardError, It as ScheduleBody, J as ActorView, Jt as SourceReadQuery, K as duration, Kt as SourceMessage, L as Filters, Lt as ScheduleBodyOutput, Mt as RegisterInput, Nt as RegistrationView, Ot as REGISTERED_WATCHERS_MAX, Pt as ResolvedSyncTarget, Q as DeleteBody, Qt as SyncCodeBody, R as PostOptions, Rt as ScheduleInput, Sn as routes, St as MessagesQuery, Tt as PersonView, U as UploadInput, Ut as SignInQuery, V as ScheduleOptions, Vt as SchedulesQueryInput, W as WaitOptions, Wt as SourceJoin, X as BoardEventView, Xt as SyncAccountInput, Y as ApiError, Yt as SyncAccountBody, Z as ChannelView, Zt as SyncBody, _n as ThreadsQueryInput, _t as MatchView, an as SyncImportBody, at as IdentityUnlinkBody, bn as UploadStartBody, bt as MessageView, cn as SyncReceiptInput, ct as InboxEntry, dn as SyncUnlinkBody, dt as InboxPushBody, en as SyncCopiesQuery, et as EditBody, fn as SyncedView, ft as InboxQuery, gn as ThreadsQuery, gt as LinkedQuery, hn as ThreadsPage, ht as LinkedAccount, in as SyncFindView, it as FiltersInput, jt as RegisterBody, kt as ReactBody, ln as SyncRootsQuery, lt as InboxItem, mn as ThreadView, mt as LinkView, nn as SyncFindInput, nt as EventsQuery, on as SyncImportInput, ot as IdentityView, pn as ThreadSummaryView, pt as LabelBody, q as AckBody, qt as SourceRead, rn as SyncFindQuery, rt as EventsQueryInput, sn as SyncReceiptBody, st as InboxAckBody, tn as SyncCopiesView, tt as EventsPage, un as SyncThreadView, ut as InboxNextQuery, vn as TypingBody, vt as MatchesQuery, wt as ParsedFilters, xn as UploadTicket, xt as MessagesPage, yn as TypingResult, yt as Me, z as ProfileOption, zt as ScheduleView } from "./provider-C_sj4-GL.mjs";
|
|
4
|
+
import { C as Protocol, S as Method, _ as MiddlewareContext, a as Identity, b as WriteSource, c as SelfCaller, d as Board, f as BoardOptions, g as Middleware, h as DroppedError, i as Caller, l as Subscription, m as WatcherContext, n as BackendRoute, o as InboxDelivery, p as Watcher, r as BoardBinding, s as ProtocolMethods, t as Backend, u as VerifiedCaller, v as Write, x as HttpError, y as WritePatch } from "./backend-DmXjVnil.mjs";
|
|
5
|
+
import { t as board } from "./index-k2LfZxl-.mjs";
|
|
6
6
|
export { type AckBody, type ActorView, type ApiError, type Attachment, type Backend, type BackendRoute, type Board, type BoardBinding, BoardError, type BoardEventView, type BoardOptions, type Caller, type CallerRequest, type ChannelView, type Claims, type DeleteBody, type Discovery, DroppedError, type EditBody, type EventsPage, type EventsQuery, type EventsQueryInput, type Filters, type FiltersInput, HttpError, type Identity, type IdentityUnlinkBody, type IdentityView, type InboxAckBody, type InboxDelivery, type InboxEntry, type InboxItem, type InboxNextQuery, type InboxPushBody, type InboxQuery, type LabelBody, type LinkView, type LinkedAccount, type LinkedQuery, type MatchView, type MatchesQuery, type Me, type MessageView, type MessagesPage, type MessagesQuery, type MessagesQueryInput, type Method, type Middleware, type MiddlewareContext, type ParsedFilters, type PersonView, type PostBody, type PostInput, type PostOptions, type ProfileOption, type Protocol, type ProtocolMethods, type REGISTERED_WATCHERS_MAX, type ReactBody, type Ref, type RegisterBody, type RegisterInput, type RegistrationView, type ReplyOptions, type ResolvedSyncTarget, type RouteName, type ScheduleBody, type ScheduleBodyOutput, type ScheduleInput, type ScheduleOptions, type ScheduleTiming, type ScheduleView, type SchedulesQuery, type SchedulesQueryInput, type SchedulesQueryOutput, type SelfCaller, type SignInQuery, type SourceJoin, type SourceJoinBody, type SourceMessage, type SourceRead, type SourceReadQuery, type Subscription, type SyncAccountBody, type SyncAccountInput, type SyncBody, type SyncCodeBody, type SyncCodeView, type SyncCopiesQuery, type SyncCopiesView, type SyncFindInput, type SyncFindQuery, type SyncFindView, type SyncImportBody, type SyncImportInput, type SyncReceiptBody, type SyncReceiptInput, type SyncRootsQuery, type SyncThreadView, type SyncUnlinkBody, type SyncedView, type ThreadSummaryView, type ThreadView, type ThreadsPage, type ThreadsQuery, type ThreadsQueryInput, type TypingBody, type TypingResult, type UploadInput, type UploadStartBody, type UploadTicket, type VerifiedCaller, type WaitOptions, type Watcher, type WatcherContext, type Write, type WritePatch, type WriteSource, type Written, board, duration, type routes };
|
package/dist/index.node.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as duration, t as BoardError } from "./client-
|
|
2
|
-
import { t as HttpError } from "./errors-
|
|
3
|
-
import { t as DroppedError } from "./middleware-
|
|
4
|
-
import { t as board } from "./server-
|
|
1
|
+
import { r as duration, t as BoardError } from "./client-BY-BCggB.mjs";
|
|
2
|
+
import { t as HttpError } from "./errors-Bven0k29.mjs";
|
|
3
|
+
import { t as DroppedError } from "./middleware-B0J7QBq7.mjs";
|
|
4
|
+
import { t as board } from "./server-BgK1sgj7.mjs";
|
|
5
5
|
export { BoardError, DroppedError, HttpError, board, duration };
|