@vercel/board 0.30.0 → 0.31.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 +8 -17
- package/dist/{a2-D_28Pdip.mjs → a2-DngWY2Eb.mjs} +573 -361
- package/dist/{access-CQ39gqEV.mjs → access-CY5xVMIK.mjs} +19 -3
- package/dist/{access-CV96SYgr.d.mts → access-DPcrKIH_.d.mts} +6 -1
- package/dist/access.d.mts +4 -4
- package/dist/access.mjs +5 -4
- package/dist/{actors-xPiamLWk.mjs → actors-Bm-ojWWT.mjs} +2 -2
- package/dist/{auth-BPinwfN0.mjs → auth-CyO2aw5n.mjs} +127 -14
- package/dist/{auth-CU56Q2Xh.d.mts → auth-DLYSt_-A.d.mts} +32 -4
- package/dist/{backend-n3hajfrD.d.mts → backend-Bob-5CM7.d.mts} +86 -41
- package/dist/backend-a2/blob-vercel.d.mts +1 -1
- package/dist/backend-a2/contract.d.mts +37 -97
- package/dist/backend-a2/contract.mjs +1 -1
- package/dist/backend-a2/store-memory.d.mts +1 -1
- package/dist/backend-a2/store-memory.mjs +2 -2
- package/dist/backend-a2/store-postgres.d.mts +1 -1
- package/dist/backend-a2/store-postgres.mjs +1 -1
- package/dist/backend-a2/store-redis-http.d.mts +1 -1
- package/dist/backend-a2/store-redis-http.mjs +1 -1
- package/dist/backend-a2/store-redis.d.mts +1 -1
- package/dist/backend-a2/store-redis.mjs +1 -1
- package/dist/backend-a2/store-sqlite.d.mts +1 -1
- package/dist/backend-a2/store-sqlite.mjs +2 -2
- package/dist/backend-a2.d.mts +131 -240
- package/dist/backend-a2.mjs +2 -2
- package/dist/{backend-http-3PoBYQoo.d.mts → backend-http-BRrRbjRx.d.mts} +49 -45
- package/dist/{backend-http-BPaNYLWj.mjs → backend-http-CvUKOn-m.mjs} +11 -9
- package/dist/{backend-http-16SbvnAK.mjs → backend-http-D8mUzuKQ.mjs} +2 -2
- package/dist/backend-http.d.mts +1 -1
- package/dist/backend-http.mjs +1 -1
- package/dist/backend-http.node.d.mts +1 -1
- package/dist/backend-http.node.mjs +1 -1
- package/dist/{backend-vercel-Kd8nvW5A.mjs → backend-vercel-Ba8JDtqW.mjs} +3 -3
- package/dist/{backend-vercel-qznuDxnN.d.mts → backend-vercel-BaSEUdwg.d.mts} +49 -45
- package/dist/{backend-vercel-C4Kee2-K.mjs → backend-vercel-CmY9yZ9m.mjs} +80 -15
- 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/{blob-CqILvdmr.d.mts → blob-Bx8QPWEd.d.mts} +2 -2
- package/dist/{blob-DQK5prXT.mjs → blob-WbB2DJKn.mjs} +30 -11
- package/dist/{chat-provider-D6jVT4wS.d.mts → chat-provider-BChYrrA7.d.mts} +32 -28
- package/dist/{chat-provider-COtsU5jB.mjs → chat-provider-DkFp2hrh.mjs} +105 -60
- package/dist/cli-commands.d.mts +1 -1
- package/dist/cli-commands.mjs +1 -1
- package/dist/cli-embedded.d.mts +2 -2
- package/dist/cli-embedded.mjs +1 -1
- package/dist/cli.mjs +4 -4
- package/dist/{client-CjAatpV4.d.mts → client-COfYrgfV.d.mts} +184 -221
- package/dist/{commands-BtH69yqt.d.mts → commands-DK4W3HCJ.d.mts} +30 -10
- package/dist/{commands-B5DHjZKK.mjs → commands-L1JSGz2Z.mjs} +162 -45
- package/dist/{conformance-C7fwIvmN.mjs → conformance-DK43HiHf.mjs} +224 -20
- package/dist/conformance.d.mts +8 -2
- package/dist/conformance.mjs +1 -1
- package/dist/{engine-DkdkXQEy.mjs → engine-DurYIRt8.mjs} +29 -210
- package/dist/{errors-87TVtXeb.d.mts → errors-2vGs49Db.d.mts} +1 -1
- package/dist/{errors-C_5rB8Iz.mjs → errors-CJXhhzvT.mjs} +28 -23
- package/dist/{provider-BaVmi4Hi.mjs → events-lujPA3gQ.mjs} +80 -17
- package/dist/{exports-CG0P8Qi4.mjs → exports-CWIdN0Ub.mjs} +146 -80
- package/dist/exports-FBOQWT7O.d.mts +5 -0
- package/dist/{folds-DGYkMW19.mjs → folds-Cu9Q9zyQ.mjs} +2 -22
- package/dist/{folds-8wRRXjAt.d.mts → folds-DLUzfibJ.d.mts} +13 -40
- package/dist/{index-BygAXP7t.d.mts → index-Ho-ayyQL.d.mts} +2 -2
- package/dist/index.d.mts +7 -7
- package/dist/{index.default-DhkgpfR2.mjs → index.default-BUcwDaAe.mjs} +1 -1
- package/dist/index.mjs +5 -5
- package/dist/index.node.d.mts +7 -7
- package/dist/index.node.mjs +3 -3
- package/dist/inspect/app.js +62 -61
- package/dist/inspect/engine.js +3 -3
- package/dist/{main-D2s-QBOK.mjs → main-Dz-8komG.mjs} +189 -112
- package/dist/{middleware-DlJQYiwV.mjs → middleware-BavYSDUa.mjs} +1 -1
- package/dist/{node-D8Rtg1su.mjs → node-BgeGcwX0.mjs} +7 -3
- package/dist/{project-C_2xs57L.mjs → project-CQ4VUibA.mjs} +1 -1
- package/dist/{provider-Bm46LAdp.d.mts → provider-gynDUoyW.d.mts} +13 -43
- package/dist/{redis-tables-BWJZHUGg.mjs → redis-tables-DHf85ixI.mjs} +1 -19
- package/dist/{reducers-8jqLewgw.mjs → reducers-DcENwtwZ.mjs} +72 -75
- package/dist/{serve-lPoBDEds.mjs → serve-CTmow-YH.mjs} +6 -6
- package/dist/{server-D82a4uMe.mjs → server-DG8D6VV0.mjs} +4 -4
- package/dist/{serving-DKny38LK.mjs → serving-DBFRo6U_.mjs} +1 -1
- package/dist/{sql-Bj0fk6dn.mjs → sql-CT5xVuGr.mjs} +2 -8
- package/dist/{sqlite-db-Dc8G78XV.mjs → sqlite-db-0WeSOEZN.mjs} +1 -1
- package/dist/{sync-kapso.d.mts → sync-chat-sdk.d.mts} +33 -37
- package/dist/sync-chat-sdk.mjs +44 -0
- package/dist/sync-github.d.mts +5 -18
- package/dist/sync-github.mjs +4 -70
- package/dist/sync-linear.d.mts +3 -3
- package/dist/sync-linear.mjs +2 -3
- package/dist/sync-slack.d.mts +7 -7
- package/dist/sync-slack.mjs +33 -54
- package/dist/sync.d.mts +3 -3
- package/dist/sync.mjs +2 -4
- package/dist/{tokens-C5_yGRlL.mjs → tokens-Dnyd_y1n.mjs} +15 -6
- package/dist/{types-shZmGZ-q.d.mts → types-CmrFjpml.d.mts} +1 -3
- package/dist/{watchers-hash-B_5b0-ZG.mjs → watchers-hash-BjwlnGD9.mjs} +85 -105
- package/docs/01-board/01-mounting.md +2 -2
- package/docs/01-board/03-identity.md +5 -6
- package/docs/01-board/04-messages.md +3 -2
- package/docs/01-board/05-reading.md +2 -1
- package/docs/01-board/06-watchers.md +8 -6
- package/docs/01-board/08-middleware.md +1 -1
- package/docs/01-board/09-access.md +145 -14
- package/docs/02-sync/01-overview.md +19 -26
- package/docs/02-sync/02-functions.md +8 -9
- package/docs/02-sync/03-slack.md +5 -5
- package/docs/02-sync/04-github.md +2 -2
- package/docs/02-sync/06-providers.md +91 -62
- package/docs/03-guides/01-coding-agents.md +1 -1
- package/docs/03-guides/03-ci.md +7 -4
- package/docs/04-reference/01-cli.md +86 -41
- package/docs/04-reference/02-board.md +56 -23
- package/docs/04-reference/03-http.md +59 -32
- package/docs/04-reference/04-log.md +8 -11
- package/docs/04-reference/05-conformance.md +35 -6
- package/docs/index.md +2 -2
- package/package.json +6 -9
- package/sql/postgres/board.sql +1 -1
- package/sql/postgres/schema.sql +1 -1
- package/dist/events-qf5XG5VQ.mjs +0 -75
- package/dist/exports-CrGA5_yN.d.mts +0 -5
- package/dist/sync-kapso.mjs +0 -89
- package/dist/sync.chat.d.mts +0 -2
- package/dist/sync.chat.mjs +0 -2
- package/dist/users-yryHKFMo.mjs +0 -42
- package/docs/02-sync/05-whatsapp.md +0 -152
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as AccessSummary } from "./access-
|
|
2
|
-
import { a as ExternalCopy, g as BoardEvent, o as Message, p as Link, r as Channel, t as Actor, u as ExternalEvent, x as Attachment } from "./folds-
|
|
1
|
+
import { n as AccessSummary, r as Can } from "./access-DPcrKIH_.mjs";
|
|
2
|
+
import { a as ExternalCopy, g as BoardEvent, o as Message, p as Link, r as Channel, t as Actor, u as ExternalEvent, x as Attachment } from "./folds-DLUzfibJ.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
//#region src/api/routes.d.ts
|
|
5
5
|
/**
|
|
@@ -62,7 +62,12 @@ declare const EventsQuery: z.ZodObject<{
|
|
|
62
62
|
text: z.ZodOptional<z.ZodString>;
|
|
63
63
|
after: z.ZodOptional<z.ZodString>;
|
|
64
64
|
wait: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
65
|
-
all: z.ZodOptional<z.
|
|
65
|
+
all: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
|
|
66
|
+
0: "0";
|
|
67
|
+
1: "1";
|
|
68
|
+
false: "false";
|
|
69
|
+
true: "true";
|
|
70
|
+
}>, z.ZodTransform<boolean, "0" | "1" | "false" | "true">>>;
|
|
66
71
|
}, z.core.$strip>;
|
|
67
72
|
declare const PostBody: z.ZodObject<{
|
|
68
73
|
channel: z.ZodOptional<z.ZodString>;
|
|
@@ -105,7 +110,27 @@ declare const SchedulesQuery: z.ZodObject<{
|
|
|
105
110
|
re: z.ZodOptional<z.ZodString>;
|
|
106
111
|
channel: z.ZodOptional<z.ZodString>;
|
|
107
112
|
by: z.ZodOptional<z.ZodString>;
|
|
108
|
-
all: z.ZodOptional<z.
|
|
113
|
+
all: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
|
|
114
|
+
0: "0";
|
|
115
|
+
1: "1";
|
|
116
|
+
false: "false";
|
|
117
|
+
true: "true";
|
|
118
|
+
}>, z.ZodTransform<boolean, "0" | "1" | "false" | "true">>>;
|
|
119
|
+
}, z.core.$strip>;
|
|
120
|
+
/** Who a grant lets in: an issuer (`vercel`, `github`, or an https URL) and the claims its tokens carry, exactly. */
|
|
121
|
+
declare const GrantBody: z.ZodObject<{
|
|
122
|
+
issuer: z.ZodString;
|
|
123
|
+
claims: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
124
|
+
can: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>]>>;
|
|
125
|
+
}, z.core.$strip>;
|
|
126
|
+
/** A token acting as the caller: what it may do, and the profile and session every request with it writes as. */
|
|
127
|
+
declare const TokenBody: z.ZodObject<{
|
|
128
|
+
name: z.ZodString;
|
|
129
|
+
can: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>]>>;
|
|
130
|
+
profile: z.ZodOptional<z.ZodString>;
|
|
131
|
+
avatar: z.ZodOptional<z.ZodString>;
|
|
132
|
+
session: z.ZodOptional<z.ZodString>;
|
|
133
|
+
expires: z.ZodOptional<z.ZodString>;
|
|
109
134
|
}, z.core.$strip>;
|
|
110
135
|
declare const SyncBody: z.ZodObject<{
|
|
111
136
|
target: z.ZodString;
|
|
@@ -131,7 +156,6 @@ declare const RegisterBody: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
131
156
|
sync: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
132
157
|
key: z.ZodString;
|
|
133
158
|
platform: z.ZodString;
|
|
134
|
-
signIn: z.ZodDefault<z.ZodBoolean>;
|
|
135
159
|
}, z.core.$strip>>>;
|
|
136
160
|
url: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
137
161
|
path: z.ZodOptional<z.ZodNull>;
|
|
@@ -147,7 +171,6 @@ declare const RegisterBody: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
147
171
|
sync: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
148
172
|
key: z.ZodString;
|
|
149
173
|
platform: z.ZodString;
|
|
150
|
-
signIn: z.ZodDefault<z.ZodBoolean>;
|
|
151
174
|
}, z.core.$strip>>>;
|
|
152
175
|
url: z.ZodOptional<z.ZodNull>;
|
|
153
176
|
path: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
@@ -183,9 +206,6 @@ declare const SourceJoinBody: z.ZodObject<{
|
|
|
183
206
|
declare const LinkedQuery: z.ZodObject<{
|
|
184
207
|
url: z.ZodString;
|
|
185
208
|
}, z.core.$strip>;
|
|
186
|
-
declare const IdentityUnlinkBody: z.ZodObject<{
|
|
187
|
-
actor: z.ZodString;
|
|
188
|
-
}, z.core.$strip>;
|
|
189
209
|
/**
|
|
190
210
|
* A platform's write, as its platform author, with where it came from: only a caller with `sync` in
|
|
191
211
|
* the channel it lands in may make one. Posts are idempotent by `id`, derived from the platform
|
|
@@ -355,7 +375,6 @@ declare const SyncReceiptBody: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
355
375
|
external: z.ZodObject<{
|
|
356
376
|
thread: z.ZodString;
|
|
357
377
|
message: z.ZodString;
|
|
358
|
-
asUser: z.ZodOptional<z.ZodLiteral<true>>;
|
|
359
378
|
}, z.core.$strip>;
|
|
360
379
|
files: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
361
380
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -381,23 +400,15 @@ declare const SyncReceiptBody: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
381
400
|
request: "request";
|
|
382
401
|
}>;
|
|
383
402
|
}, z.core.$strip>], "kind">;
|
|
384
|
-
/** What sync looks up by platform ID: a thread or
|
|
403
|
+
/** What sync looks up by platform ID: a thread or a message. */
|
|
385
404
|
declare const SyncFindQuery: z.ZodObject<{
|
|
386
|
-
code: z.ZodOptional<z.ZodString>;
|
|
387
405
|
post: z.ZodOptional<z.ZodString>;
|
|
388
406
|
thread: z.ZodOptional<z.ZodString>;
|
|
389
407
|
message: z.ZodOptional<z.ZodString>;
|
|
390
|
-
account: z.ZodOptional<z.ZodString>;
|
|
391
|
-
person: z.ZodOptional<z.ZodString>;
|
|
392
408
|
}, z.core.$strip>;
|
|
393
409
|
declare const SyncCopiesQuery: z.ZodObject<{
|
|
394
410
|
message: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodString>>;
|
|
395
411
|
}, z.core.$strip>;
|
|
396
|
-
/** A person's own roots since `since`, in epoch milliseconds. */
|
|
397
|
-
declare const SyncRootsQuery: z.ZodObject<{
|
|
398
|
-
by: z.ZodString;
|
|
399
|
-
since: z.ZodCoercedNumber<unknown>;
|
|
400
|
-
}, z.core.$strip>;
|
|
401
412
|
/** Platform events for a sync key's inbox, each with the platform's own ID for it, which dedupes it. */
|
|
402
413
|
declare const InboxPushBody: z.ZodObject<{
|
|
403
414
|
events: z.ZodArray<z.ZodObject<{
|
|
@@ -527,38 +538,6 @@ declare const InboxAckBody: z.ZodObject<{
|
|
|
527
538
|
lease: z.ZodString;
|
|
528
539
|
error: z.ZodOptional<z.ZodString>;
|
|
529
540
|
}, z.core.$strip>;
|
|
530
|
-
/** A one-time code for linking an account on sync entry `sync`: a person's own, for themselves. */
|
|
531
|
-
declare const SyncCodeBody: z.ZodObject<{
|
|
532
|
-
sync: z.ZodString;
|
|
533
|
-
}, z.core.$strip>;
|
|
534
|
-
/**
|
|
535
|
-
* A platform account, linked to whoever a code was issued to: one posted from the account, or
|
|
536
|
-
* carried through its sign-in. `message` is the platform message that posted it.
|
|
537
|
-
*/
|
|
538
|
-
declare const SyncAccountBody: z.ZodObject<{
|
|
539
|
-
sync: z.ZodString;
|
|
540
|
-
account: z.ZodObject<{
|
|
541
|
-
id: z.ZodString;
|
|
542
|
-
handle: z.ZodString;
|
|
543
|
-
name: z.ZodString;
|
|
544
|
-
isBot: z.ZodBoolean;
|
|
545
|
-
avatar: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
|
|
546
|
-
}, z.core.$strip>;
|
|
547
|
-
code: z.ZodString;
|
|
548
|
-
message: z.ZodOptional<z.ZodString>;
|
|
549
|
-
method: z.ZodOptional<z.ZodEnum<{
|
|
550
|
-
code: "code";
|
|
551
|
-
consent: "consent";
|
|
552
|
-
}>>;
|
|
553
|
-
}, z.core.$strip>;
|
|
554
|
-
/** A sign-in that carries a code, on the board whose sync runs the entry. */
|
|
555
|
-
declare const SignInQuery: z.ZodObject<{
|
|
556
|
-
sync: z.ZodString;
|
|
557
|
-
code: z.ZodString;
|
|
558
|
-
}, z.core.$strip>;
|
|
559
|
-
declare const SyncUnlinkBody: z.ZodObject<{
|
|
560
|
-
account: z.ZodString;
|
|
561
|
-
}, z.core.$strip>;
|
|
562
541
|
/**
|
|
563
542
|
* A direct upload, before its bytes: what the file will be called, its type, its exact size, and
|
|
564
543
|
* the SHA-256 of its bytes, in base64, for a store that signs its URL for them (Vercel's).
|
|
@@ -583,7 +562,7 @@ declare const EditBody: z.ZodObject<{
|
|
|
583
562
|
declare const DeleteBody: z.ZodOptional<z.ZodObject<{
|
|
584
563
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
585
564
|
}, z.core.$strip>>;
|
|
586
|
-
/** `status`: what Slack shows in place of "Typing…" (
|
|
565
|
+
/** `status`: what Slack shows in place of "Typing…" (other platforms ignore it). */
|
|
587
566
|
declare const TypingBody: z.ZodOptional<z.ZodObject<{
|
|
588
567
|
status: z.ZodOptional<z.ZodString>;
|
|
589
568
|
}, z.core.$strip>>;
|
|
@@ -591,6 +570,10 @@ declare const ReactBody: z.ZodObject<{
|
|
|
591
570
|
emoji: z.ZodString;
|
|
592
571
|
remove: z.ZodOptional<z.ZodBoolean>;
|
|
593
572
|
}, z.core.$strip>;
|
|
573
|
+
/** A channel to make before anything posts to it. */
|
|
574
|
+
declare const CreateChannelBody: z.ZodObject<{
|
|
575
|
+
path: z.ZodString;
|
|
576
|
+
}, z.core.$strip>;
|
|
594
577
|
/** At most this many labels in a label write's `if`. */
|
|
595
578
|
declare const LABEL_CONDITIONS_MAX = 16;
|
|
596
579
|
declare const LabelBody: z.ZodObject<{
|
|
@@ -602,7 +585,6 @@ type FiltersInput = z.input<typeof Filters$1>;
|
|
|
602
585
|
type SyncImportInput = z.input<typeof SyncImportBody>;
|
|
603
586
|
type SyncReceiptInput = z.input<typeof SyncReceiptBody>;
|
|
604
587
|
type SyncFindInput = z.input<typeof SyncFindQuery>;
|
|
605
|
-
type SyncAccountInput = z.input<typeof SyncAccountBody>;
|
|
606
588
|
type MessagesQueryInput = z.input<typeof MessagesQuery>;
|
|
607
589
|
type ThreadsQueryInput = z.input<typeof ThreadsQuery>;
|
|
608
590
|
type EventsQueryInput = z.input<typeof EventsQuery>;
|
|
@@ -610,6 +592,14 @@ type PostInput = z.input<typeof PostBody>;
|
|
|
610
592
|
type ScheduleInput = z.input<typeof ScheduleBody>;
|
|
611
593
|
type ScheduleBodyOutput = z.output<typeof ScheduleBody>;
|
|
612
594
|
type SchedulesQueryInput = z.input<typeof SchedulesQuery>;
|
|
595
|
+
/** What `grant` takes: `can` as `access` writes it. */
|
|
596
|
+
type GrantInput = Omit<z.input<typeof GrantBody>, 'can'> & {
|
|
597
|
+
can?: Can;
|
|
598
|
+
};
|
|
599
|
+
/** What `token` takes: `can` as `access` writes it. */
|
|
600
|
+
type TokenInput = Omit<z.input<typeof TokenBody>, 'can'> & {
|
|
601
|
+
can?: Can;
|
|
602
|
+
};
|
|
613
603
|
type SchedulesQueryOutput = z.output<typeof SchedulesQuery>;
|
|
614
604
|
/** A scheduled message. It posts as `by`, its creator; each message it posts carries `schedule: { id, n }`. */
|
|
615
605
|
type ScheduleView = {
|
|
@@ -656,20 +646,33 @@ type ScheduleView = {
|
|
|
656
646
|
author: ActorView;
|
|
657
647
|
createdAt: string;
|
|
658
648
|
};
|
|
659
|
-
/**
|
|
660
|
-
type
|
|
649
|
+
/** A grant: who it lets in, what it lets them do, and who set it when. */
|
|
650
|
+
type GrantView = {
|
|
661
651
|
id: string;
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
652
|
+
issuer: string;
|
|
653
|
+
claims: Record<string, string | string[]>;
|
|
654
|
+
can: AccessSummary;
|
|
655
|
+
/** The actor that last set it. */
|
|
656
|
+
by: string;
|
|
657
|
+
at: string;
|
|
665
658
|
};
|
|
666
|
-
/**
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
659
|
+
/** A token, as its minter and `manage` see it: never its secret. */
|
|
660
|
+
type TokenView = {
|
|
661
|
+
id: string;
|
|
662
|
+
name: string;
|
|
663
|
+
/** What it may do now: its minter's access, as the board's rules and grants give it, narrowed by the token's `can`. `{}` once its minter may do nothing. */
|
|
664
|
+
can: AccessSummary;
|
|
665
|
+
profile: string | null;
|
|
666
|
+
session: string | null;
|
|
667
|
+
/** The actor that minted it, and when. */
|
|
668
|
+
by: string;
|
|
669
|
+
at: string;
|
|
670
|
+
expiresAt: string;
|
|
671
|
+
/** The token it was minted with, which it stops with. */
|
|
672
|
+
parent: string | null;
|
|
672
673
|
};
|
|
674
|
+
/** `kind` says who wrote it: a `person` or a platform user (`external`), an agent (`profile`), or a deployment or workflow. */
|
|
675
|
+
type ActorView = Pick<Actor, 'kind' | 'handle' | 'name' | 'avatar'>;
|
|
673
676
|
/** A message as clients see it: its IDs are refs, and `version` says which of two views of it is newer. */
|
|
674
677
|
type MessageView = Omit<Message, 'id' | 're' | 'replyTo' | 'links' | 'schedule' | 'version' | 'revision'> & {
|
|
675
678
|
id: string;
|
|
@@ -750,7 +753,6 @@ type RegistrationView = {
|
|
|
750
753
|
sync: {
|
|
751
754
|
key: string;
|
|
752
755
|
platform: string;
|
|
753
|
-
signIn: boolean;
|
|
754
756
|
}[];
|
|
755
757
|
/** Every wake-up carries it, so the board can tell its registration is stale. */
|
|
756
758
|
hash: string;
|
|
@@ -792,30 +794,6 @@ type Me = {
|
|
|
792
794
|
/** What you may do in each channel pattern, implications included: `{ '*': [...every permission] }` is full access. */
|
|
793
795
|
can: AccessSummary;
|
|
794
796
|
};
|
|
795
|
-
/** A platform account linked to you, as `GET /identity` lists it. */
|
|
796
|
-
type LinkedAccount = {
|
|
797
|
-
actor: string;
|
|
798
|
-
handle: string | null;
|
|
799
|
-
name: string | null;
|
|
800
|
-
method: 'code' | 'consent';
|
|
801
|
-
at: string;
|
|
802
|
-
};
|
|
803
|
-
type IdentityView = {
|
|
804
|
-
principal: string;
|
|
805
|
-
links: LinkedAccount[];
|
|
806
|
-
/** The sync entries you haven't linked an account on. Boards older than it leave it out. */
|
|
807
|
-
unlinked?: string[];
|
|
808
|
-
cursor: string;
|
|
809
|
-
};
|
|
810
|
-
/**
|
|
811
|
-
* How to prove an account is yours: post `code` from it anywhere the board syncs before
|
|
812
|
-
* `expiresAt`, or, when the entry signs people in, open `signIn` and approve: it carries the code.
|
|
813
|
-
*/
|
|
814
|
-
type SyncCodeView = {
|
|
815
|
-
code: string;
|
|
816
|
-
expiresAt: string;
|
|
817
|
-
signIn?: string;
|
|
818
|
-
};
|
|
819
797
|
/** A thread's sync: its root, where it lives, its targets, and the platform thread it is on each. */
|
|
820
798
|
type SyncThreadView = {
|
|
821
799
|
thread: string;
|
|
@@ -830,18 +808,6 @@ type SyncFindView = {
|
|
|
830
808
|
thread: string | null;
|
|
831
809
|
/** The board message a platform message is a copy of, or came in as. */
|
|
832
810
|
message: string | null;
|
|
833
|
-
/** Who a platform account is linked to, and how. */
|
|
834
|
-
person: {
|
|
835
|
-
id: string;
|
|
836
|
-
method: 'code' | 'consent';
|
|
837
|
-
} | null;
|
|
838
|
-
/** The platform accounts linked to a person, and how. */
|
|
839
|
-
accounts: {
|
|
840
|
-
id: string;
|
|
841
|
-
method: 'code' | 'consent';
|
|
842
|
-
}[];
|
|
843
|
-
/** Who a live code was issued to. */
|
|
844
|
-
holder: string | null;
|
|
845
811
|
};
|
|
846
812
|
/** A message's copies, by target: where it went, or came from, on each platform. */
|
|
847
813
|
type SyncCopiesView = {
|
|
@@ -859,7 +825,13 @@ type InboxItem = {
|
|
|
859
825
|
event: z.infer<typeof ExternalEvent>;
|
|
860
826
|
raw: unknown;
|
|
861
827
|
};
|
|
862
|
-
|
|
828
|
+
/**
|
|
829
|
+
* A channel, and what its board counts in it: its threads, its messages, and its last message's
|
|
830
|
+
* position. `a2()` keeps all three; Vercel's API keeps none, so a board on it leaves them out.
|
|
831
|
+
*/
|
|
832
|
+
type ChannelView = {
|
|
833
|
+
path: string;
|
|
834
|
+
} & Partial<Omit<Channel, 'path'>>;
|
|
863
835
|
type MessagesPage = {
|
|
864
836
|
messages: MessageView[];
|
|
865
837
|
cursor: string;
|
|
@@ -966,7 +938,7 @@ type InboxEntry = {
|
|
|
966
938
|
};
|
|
967
939
|
/** The route table: method, path, and the schemas that validate input. */
|
|
968
940
|
declare const routes: {
|
|
969
|
-
/** Where the board is, its project, and
|
|
941
|
+
/** Where the board is, its project, and its sync entries. No token. */
|
|
970
942
|
readonly discovery: {
|
|
971
943
|
readonly method: 'GET';
|
|
972
944
|
readonly path: '/';
|
|
@@ -979,6 +951,14 @@ declare const routes: {
|
|
|
979
951
|
readonly method: 'GET';
|
|
980
952
|
readonly path: '/channels';
|
|
981
953
|
};
|
|
954
|
+
/** Makes a channel before anything posts to it: needs `read` and `post` there. One that's there already is left as it is. */
|
|
955
|
+
readonly createChannel: {
|
|
956
|
+
readonly method: 'POST';
|
|
957
|
+
readonly path: '/channels';
|
|
958
|
+
readonly body: z.ZodObject<{
|
|
959
|
+
path: z.ZodString;
|
|
960
|
+
}, z.core.$strip>;
|
|
961
|
+
};
|
|
982
962
|
readonly actors: {
|
|
983
963
|
readonly method: 'GET';
|
|
984
964
|
readonly path: '/actors';
|
|
@@ -1127,7 +1107,12 @@ declare const routes: {
|
|
|
1127
1107
|
re: z.ZodOptional<z.ZodString>;
|
|
1128
1108
|
channel: z.ZodOptional<z.ZodString>;
|
|
1129
1109
|
by: z.ZodOptional<z.ZodString>;
|
|
1130
|
-
all: z.ZodOptional<z.
|
|
1110
|
+
all: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
|
|
1111
|
+
0: "0";
|
|
1112
|
+
1: "1";
|
|
1113
|
+
false: "false";
|
|
1114
|
+
true: "true";
|
|
1115
|
+
}>, z.ZodTransform<boolean, "0" | "1" | "false" | "true">>>;
|
|
1131
1116
|
}, z.core.$strip>;
|
|
1132
1117
|
};
|
|
1133
1118
|
/** Its creator, or manage in its channel, may cancel a schedule. Canceling one that's done is a no-op. */
|
|
@@ -1135,6 +1120,45 @@ declare const routes: {
|
|
|
1135
1120
|
readonly method: 'POST';
|
|
1136
1121
|
readonly path: '/schedules/:id/cancel';
|
|
1137
1122
|
};
|
|
1123
|
+
/** Grants need manage in every channel. Setting one with the same issuer and claims changes its `can`. */
|
|
1124
|
+
readonly grants: {
|
|
1125
|
+
readonly method: 'GET';
|
|
1126
|
+
readonly path: '/grants';
|
|
1127
|
+
};
|
|
1128
|
+
readonly createGrant: {
|
|
1129
|
+
readonly method: 'POST';
|
|
1130
|
+
readonly path: '/grants';
|
|
1131
|
+
readonly body: z.ZodObject<{
|
|
1132
|
+
issuer: z.ZodString;
|
|
1133
|
+
claims: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
1134
|
+
can: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>]>>;
|
|
1135
|
+
}, z.core.$strip>;
|
|
1136
|
+
};
|
|
1137
|
+
readonly revokeGrant: {
|
|
1138
|
+
readonly method: 'POST';
|
|
1139
|
+
readonly path: '/grants/:id/revoke';
|
|
1140
|
+
};
|
|
1141
|
+
/** Your tokens, or every one with manage in every channel. A token acts as whoever minted it. */
|
|
1142
|
+
readonly tokens: {
|
|
1143
|
+
readonly method: 'GET';
|
|
1144
|
+
readonly path: '/tokens';
|
|
1145
|
+
};
|
|
1146
|
+
readonly createToken: {
|
|
1147
|
+
readonly method: 'POST';
|
|
1148
|
+
readonly path: '/tokens';
|
|
1149
|
+
readonly body: z.ZodObject<{
|
|
1150
|
+
name: z.ZodString;
|
|
1151
|
+
can: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>]>>;
|
|
1152
|
+
profile: z.ZodOptional<z.ZodString>;
|
|
1153
|
+
avatar: z.ZodOptional<z.ZodString>;
|
|
1154
|
+
session: z.ZodOptional<z.ZodString>;
|
|
1155
|
+
expires: z.ZodOptional<z.ZodString>;
|
|
1156
|
+
}, z.core.$strip>;
|
|
1157
|
+
};
|
|
1158
|
+
readonly revokeToken: {
|
|
1159
|
+
readonly method: 'POST';
|
|
1160
|
+
readonly path: '/tokens/:id/revoke';
|
|
1161
|
+
};
|
|
1138
1162
|
/** The caller's own post with the client ID it gave: what `POST /messages` answered, for telling a retry before posting. */
|
|
1139
1163
|
readonly posted: {
|
|
1140
1164
|
readonly method: 'GET';
|
|
@@ -1464,7 +1488,6 @@ declare const routes: {
|
|
|
1464
1488
|
external: z.ZodObject<{
|
|
1465
1489
|
thread: z.ZodString;
|
|
1466
1490
|
message: z.ZodString;
|
|
1467
|
-
asUser: z.ZodOptional<z.ZodLiteral<true>>;
|
|
1468
1491
|
}, z.core.$strip>;
|
|
1469
1492
|
files: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
1470
1493
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -1501,12 +1524,9 @@ declare const routes: {
|
|
|
1501
1524
|
readonly method: 'GET';
|
|
1502
1525
|
readonly path: '/sync/find';
|
|
1503
1526
|
readonly query: z.ZodObject<{
|
|
1504
|
-
code: z.ZodOptional<z.ZodString>;
|
|
1505
1527
|
post: z.ZodOptional<z.ZodString>;
|
|
1506
1528
|
thread: z.ZodOptional<z.ZodString>;
|
|
1507
1529
|
message: z.ZodOptional<z.ZodString>;
|
|
1508
|
-
account: z.ZodOptional<z.ZodString>;
|
|
1509
|
-
person: z.ZodOptional<z.ZodString>;
|
|
1510
1530
|
}, z.core.$strip>;
|
|
1511
1531
|
};
|
|
1512
1532
|
/** Messages' copies on platforms. */
|
|
@@ -1517,52 +1537,6 @@ declare const routes: {
|
|
|
1517
1537
|
message: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodString>>;
|
|
1518
1538
|
}, z.core.$strip>;
|
|
1519
1539
|
};
|
|
1520
|
-
/** A person's recent roots, for telling their own platform copies from new messages. */
|
|
1521
|
-
readonly syncRoots: {
|
|
1522
|
-
readonly method: 'GET';
|
|
1523
|
-
readonly path: '/sync/roots';
|
|
1524
|
-
readonly query: z.ZodObject<{
|
|
1525
|
-
by: z.ZodString;
|
|
1526
|
-
since: z.ZodCoercedNumber<unknown>;
|
|
1527
|
-
}, z.core.$strip>;
|
|
1528
|
-
};
|
|
1529
|
-
/** A one-time code for linking a platform account. */
|
|
1530
|
-
readonly syncCode: {
|
|
1531
|
-
readonly method: 'POST';
|
|
1532
|
-
readonly path: '/sync/codes';
|
|
1533
|
-
readonly body: z.ZodObject<{
|
|
1534
|
-
sync: z.ZodString;
|
|
1535
|
-
}, z.core.$strip>;
|
|
1536
|
-
};
|
|
1537
|
-
/** Links a platform account, by a code or for a person. */
|
|
1538
|
-
readonly syncAccount: {
|
|
1539
|
-
readonly method: 'POST';
|
|
1540
|
-
readonly path: '/sync/accounts';
|
|
1541
|
-
readonly body: z.ZodObject<{
|
|
1542
|
-
sync: z.ZodString;
|
|
1543
|
-
account: z.ZodObject<{
|
|
1544
|
-
id: z.ZodString;
|
|
1545
|
-
handle: z.ZodString;
|
|
1546
|
-
name: z.ZodString;
|
|
1547
|
-
isBot: z.ZodBoolean;
|
|
1548
|
-
avatar: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
|
|
1549
|
-
}, z.core.$strip>;
|
|
1550
|
-
code: z.ZodString;
|
|
1551
|
-
message: z.ZodOptional<z.ZodString>;
|
|
1552
|
-
method: z.ZodOptional<z.ZodEnum<{
|
|
1553
|
-
code: "code";
|
|
1554
|
-
consent: "consent";
|
|
1555
|
-
}>>;
|
|
1556
|
-
}, z.core.$strip>;
|
|
1557
|
-
};
|
|
1558
|
-
/** Unlinks a platform account. */
|
|
1559
|
-
readonly syncUnlink: {
|
|
1560
|
-
readonly method: 'POST';
|
|
1561
|
-
readonly path: '/sync/accounts/unlink';
|
|
1562
|
-
readonly body: z.ZodObject<{
|
|
1563
|
-
account: z.ZodString;
|
|
1564
|
-
}, z.core.$strip>;
|
|
1565
|
-
};
|
|
1566
1540
|
/** Reads a platform channel or thread on demand, where that sync runs, without syncing or storing it. Full access only. */
|
|
1567
1541
|
readonly readSource: {
|
|
1568
1542
|
readonly method: 'GET';
|
|
@@ -1598,7 +1572,12 @@ declare const routes: {
|
|
|
1598
1572
|
text: z.ZodOptional<z.ZodString>;
|
|
1599
1573
|
after: z.ZodOptional<z.ZodString>;
|
|
1600
1574
|
wait: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
1601
|
-
all: z.ZodOptional<z.
|
|
1575
|
+
all: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
|
|
1576
|
+
0: "0";
|
|
1577
|
+
1: "1";
|
|
1578
|
+
false: "false";
|
|
1579
|
+
true: "true";
|
|
1580
|
+
}>, z.ZodTransform<boolean, "0" | "1" | "false" | "true">>>;
|
|
1602
1581
|
}, z.core.$strip>;
|
|
1603
1582
|
};
|
|
1604
1583
|
readonly avatar: {
|
|
@@ -1634,36 +1613,6 @@ declare const routes: {
|
|
|
1634
1613
|
readonly method: 'GET';
|
|
1635
1614
|
readonly path: '/openapi.json';
|
|
1636
1615
|
};
|
|
1637
|
-
/** Your linked platform accounts. */
|
|
1638
|
-
readonly identity: {
|
|
1639
|
-
readonly method: 'GET';
|
|
1640
|
-
readonly path: '/identity';
|
|
1641
|
-
};
|
|
1642
|
-
/** Starts a sign-in that carries a code (no token), on the board that runs the entry's sync. */
|
|
1643
|
-
readonly signIn: {
|
|
1644
|
-
readonly method: 'GET';
|
|
1645
|
-
readonly path: '/identity/sign-in';
|
|
1646
|
-
readonly query: z.ZodObject<{
|
|
1647
|
-
sync: z.ZodString;
|
|
1648
|
-
code: z.ZodString;
|
|
1649
|
-
}, z.core.$strip>;
|
|
1650
|
-
};
|
|
1651
|
-
/** Where a sign-in comes back (no token): links the account it authorized to the code's person. */
|
|
1652
|
-
readonly signedIn: {
|
|
1653
|
-
readonly method: 'GET';
|
|
1654
|
-
readonly path: '/identity/signed-in';
|
|
1655
|
-
readonly query: z.ZodObject<{
|
|
1656
|
-
sync: z.ZodString;
|
|
1657
|
-
code: z.ZodString;
|
|
1658
|
-
}, z.core.$strip>;
|
|
1659
|
-
};
|
|
1660
|
-
readonly identityUnlink: {
|
|
1661
|
-
readonly method: 'POST';
|
|
1662
|
-
readonly path: '/identity/unlink';
|
|
1663
|
-
readonly body: z.ZodObject<{
|
|
1664
|
-
actor: z.ZodString;
|
|
1665
|
-
}, z.core.$strip>;
|
|
1666
|
-
};
|
|
1667
1616
|
/** Watchers registered by boards on `http()`: every one to `manage` everywhere, the caller's own to anyone else. */
|
|
1668
1617
|
readonly watchers: {
|
|
1669
1618
|
readonly method: 'GET';
|
|
@@ -1684,7 +1633,6 @@ declare const routes: {
|
|
|
1684
1633
|
sync: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1685
1634
|
key: z.ZodString;
|
|
1686
1635
|
platform: z.ZodString;
|
|
1687
|
-
signIn: z.ZodDefault<z.ZodBoolean>;
|
|
1688
1636
|
}, z.core.$strip>>>;
|
|
1689
1637
|
url: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
1690
1638
|
path: z.ZodOptional<z.ZodNull>;
|
|
@@ -1700,7 +1648,6 @@ declare const routes: {
|
|
|
1700
1648
|
sync: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1701
1649
|
key: z.ZodString;
|
|
1702
1650
|
platform: z.ZodString;
|
|
1703
|
-
signIn: z.ZodDefault<z.ZodBoolean>;
|
|
1704
1651
|
}, z.core.$strip>>>;
|
|
1705
1652
|
url: z.ZodOptional<z.ZodNull>;
|
|
1706
1653
|
path: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
@@ -1857,17 +1804,16 @@ declare function createBoardClient(options: ClientOptions): {
|
|
|
1857
1804
|
}) => Promise<Response>;
|
|
1858
1805
|
discovery: () => Promise<Discovery>;
|
|
1859
1806
|
me: () => Promise<Me>;
|
|
1860
|
-
channels: () => Promise<
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
ok: true;
|
|
1869
|
-
actor: string;
|
|
1807
|
+
channels: () => Promise<ChannelView[]>;
|
|
1808
|
+
/**
|
|
1809
|
+
* Makes a channel before anything posts to it, as a first post would. Needs `read` and `post`
|
|
1810
|
+
* there. `created` is false when it was there already; it's left as it is.
|
|
1811
|
+
*/
|
|
1812
|
+
createChannel: (path: string) => Promise<{
|
|
1813
|
+
channel: ChannelView;
|
|
1814
|
+
created: boolean;
|
|
1870
1815
|
}>;
|
|
1816
|
+
actors: () => Promise<Actor[]>;
|
|
1871
1817
|
messages: (query?: Filters & Omit<MessagesQueryInput, keyof FiltersInput>) => Promise<MessagesPage>;
|
|
1872
1818
|
thread: (id: string) => Promise<ThreadView>;
|
|
1873
1819
|
/** Your own post with the client ID you gave it, as posting it answered: 404 `post_not_found` when there's none. */
|
|
@@ -1886,12 +1832,44 @@ declare function createBoardClient(options: ClientOptions): {
|
|
|
1886
1832
|
re: string;
|
|
1887
1833
|
}, input: ScheduleOptions): Promise<Written<ScheduleView>>;
|
|
1888
1834
|
/** Pending schedules (`all` for done and canceled too), oldest first. `re` is any message in a thread. */
|
|
1889
|
-
schedules: (query?: SchedulesQueryInput
|
|
1835
|
+
schedules: (query?: Omit<SchedulesQueryInput, 'all'> & {
|
|
1836
|
+
all?: boolean;
|
|
1837
|
+
}) => Promise<ScheduleView[]>;
|
|
1890
1838
|
/** Stops a schedule: yours, or any with manage in its channel. `canceled` is false when it was already done or canceled. */
|
|
1891
1839
|
cancelSchedule: (id: string) => Promise<{
|
|
1892
1840
|
schedule: ScheduleView;
|
|
1893
1841
|
canceled: boolean;
|
|
1894
1842
|
}>;
|
|
1843
|
+
/**
|
|
1844
|
+
* Lets in callers with an OIDC token from `issuer` that carries every one of `claims`, to do
|
|
1845
|
+
* what `can` says (read, post, react, and label everywhere when left out). Setting the same
|
|
1846
|
+
* issuer and claims again changes its `can`: `created` says which. Needs manage in every channel.
|
|
1847
|
+
*/
|
|
1848
|
+
createGrant: (input: GrantInput) => Promise<{
|
|
1849
|
+
grant: GrantView;
|
|
1850
|
+
created: boolean;
|
|
1851
|
+
}>;
|
|
1852
|
+
/** The board's grants. Needs manage in every channel. */
|
|
1853
|
+
grants: () => Promise<GrantView[]>;
|
|
1854
|
+
/** `revoked` is false when it was already gone. Its principals' next requests are refused. */
|
|
1855
|
+
revokeGrant: (id: string) => Promise<{
|
|
1856
|
+
revoked: boolean;
|
|
1857
|
+
}>;
|
|
1858
|
+
/**
|
|
1859
|
+
* A token that acts as you, narrowed to `can`, writing as `profile` and `session` when they're
|
|
1860
|
+
* given: for a widget, a sandbox, a script. `secret` shows only here. It lives 30 days, or
|
|
1861
|
+
* `expires`, at most 90.
|
|
1862
|
+
*/
|
|
1863
|
+
createToken: (input: TokenInput) => Promise<{
|
|
1864
|
+
token: TokenView;
|
|
1865
|
+
secret: string;
|
|
1866
|
+
}>;
|
|
1867
|
+
/** Your live tokens, or everyone's with manage in every channel. Never their secrets. */
|
|
1868
|
+
tokens: () => Promise<TokenView[]>;
|
|
1869
|
+
/** It and every token minted with it stop. `revoked` is false when it was already revoked. */
|
|
1870
|
+
revokeToken: (id: string) => Promise<{
|
|
1871
|
+
revoked: boolean;
|
|
1872
|
+
}>;
|
|
1895
1873
|
/**
|
|
1896
1874
|
* Stores a file on the board, for a post or reply's `attachments`. Up to 4 MB goes in one
|
|
1897
1875
|
* request; bigger, up to 100 MB, goes straight to the board's blob store on a URL the board
|
|
@@ -1935,9 +1913,8 @@ declare function createBoardClient(options: ClientOptions): {
|
|
|
1935
1913
|
ok: true;
|
|
1936
1914
|
}>;
|
|
1937
1915
|
/**
|
|
1938
|
-
* Shows typing in the platform threads the message's thread is synced to
|
|
1939
|
-
*
|
|
1940
|
-
* nothing goes in the log. Answers the external threads that took it.
|
|
1916
|
+
* Shows typing in the platform threads the message's thread is synced to.
|
|
1917
|
+
* Ephemeral: nothing goes in the log. Answers the external threads that took it.
|
|
1941
1918
|
* `status` replaces "Typing…" on Slack ("running tests…").
|
|
1942
1919
|
*/
|
|
1943
1920
|
typing: (id: string, status?: string) => Promise<string[]>;
|
|
@@ -2007,14 +1984,12 @@ declare function createBoardClient(options: ClientOptions): {
|
|
|
2007
1984
|
}>;
|
|
2008
1985
|
/** A board thread's sync, by its key. */
|
|
2009
1986
|
syncThread: (thread: string) => Promise<SyncThreadView>;
|
|
2010
|
-
/** What platform IDs are on the board: a thread, a message
|
|
1987
|
+
/** What platform IDs are on the board: a thread, or a message. */
|
|
2011
1988
|
syncFind: (query: SyncFindInput, opts?: {
|
|
2012
1989
|
signal?: AbortSignal;
|
|
2013
1990
|
}) => Promise<SyncFindView>;
|
|
2014
1991
|
/** Messages' copies on platforms, by message and target. */
|
|
2015
1992
|
syncCopies: (messages: string[]) => Promise<Record<string, Record<string, ExternalCopy>>>;
|
|
2016
|
-
/** A person's roots since `since`. */
|
|
2017
|
-
syncRoots: (by: string, since: Date | number) => Promise<MessageView[]>;
|
|
2018
1993
|
/** Pushes platform events into your inbox for sync key `key`; each platform ID lands once. */
|
|
2019
1994
|
inboxPush: (key: string, events: {
|
|
2020
1995
|
id: string;
|
|
@@ -2034,23 +2009,11 @@ declare function createBoardClient(options: ClientOptions): {
|
|
|
2034
2009
|
}) => Promise<{
|
|
2035
2010
|
ok: true;
|
|
2036
2011
|
}>;
|
|
2037
|
-
/**
|
|
2038
|
-
* A one-time code for linking your account on sync entry `sync`, to post from that account where
|
|
2039
|
-
* the board syncs, and `signIn` when the entry signs people in: open it (only you) and approve.
|
|
2040
|
-
* Only people get one, each for themselves. `identity()` shows the link once it's made.
|
|
2041
|
-
*/
|
|
2042
|
-
syncCode: (sync: string) => Promise<SyncCodeView>;
|
|
2043
|
-
/** Links a platform account to whoever a code was issued to: one posted from it, or carried through its sign-in. */
|
|
2044
|
-
syncAccount: (body: SyncAccountInput) => Promise<{
|
|
2045
|
-
person: string;
|
|
2046
|
-
link: LinkedAccount;
|
|
2047
|
-
}>;
|
|
2048
|
-
/** Unlinks a platform account: your own, or anyone's with `sync`. */
|
|
2049
|
-
syncUnlink: (account: string) => Promise<{
|
|
2050
|
-
ok: true;
|
|
2051
|
-
}>;
|
|
2052
2012
|
/** Live events. Reconnects from the last seen index whenever the stream closes. */
|
|
2053
|
-
events(query?: Filters &
|
|
2013
|
+
events(query?: Filters & {
|
|
2014
|
+
after?: string;
|
|
2015
|
+
all?: boolean;
|
|
2016
|
+
}, opts?: {
|
|
2054
2017
|
signal?: AbortSignal;
|
|
2055
2018
|
}): AsyncGenerator<BoardEventView>;
|
|
2056
2019
|
/** The next matching event after `after` (default: now), or null on timeout. */
|
|
@@ -2059,4 +2022,4 @@ declare function createBoardClient(options: ClientOptions): {
|
|
|
2059
2022
|
}, opts?: WaitOptions): Promise<BoardEventView | null>;
|
|
2060
2023
|
};
|
|
2061
2024
|
//#endregion
|
|
2062
|
-
export { RegisterBody as $,
|
|
2025
|
+
export { RegisterBody as $, InboxAckBody as A, ThreadsPage as At, MatchView as B, routes as Bt, EventsPage as C, SyncImportInput as Ct, GrantBody as D, SyncedView as Dt, FiltersInput as E, SyncThreadView as Et, InboxQuery as F, TokenView as Ft, MessagesQuery as G, Me as H, LABEL_CONDITIONS_MAX as I, TypingBody as It, PostBody as J, MessagesQueryInput as K, LabelBody as L, TypingResult as Lt, InboxItem as M, ThreadsQueryInput as Mt, InboxNextQuery as N, TokenBody as Nt, GrantInput as O, ThreadSummaryView as Ot, InboxPushBody as P, TokenInput as Pt, Ref as Q, LinkView as R, UploadStartBody as Rt, EditBody as S, SyncImportBody as St, EventsQueryInput as T, SyncReceiptInput as Tt, MessageView as U, MatchesQuery as V, MessagesPage as W, REGISTERED_WATCHERS_MAX as X, PostInput as Y, ReactBody as Z, BoardEventView as _, SyncCopiesQuery as _t, PostOptions as a, ScheduleBodyOutput as at, DeleteBody as b, SyncFindQuery as bt, ScheduleOptions as c, SchedulesQuery as ct, WaitOptions as d, SourceJoin as dt, RegisterInput as et, Written as f, SourceJoinBody as ft, ApiError as g, SyncBody as gt, ActorView as h, SourceReadQuery as ht, Filters as i, ScheduleBody as it, InboxEntry as j, ThreadsQuery as jt, GrantView as k, ThreadView as kt, ScheduleTiming as l, SchedulesQueryInput as lt, AckBody as m, SourceRead as mt, BoardError as n, ResolvedSyncTarget as nt, ProfileOption as o, ScheduleInput as ot, duration as p, SourceMessage as pt, ParsedFilters as q, ErrorOrigin as r, RouteName as rt, ReplyOptions as s, ScheduleView as st, BoardClient as t, RegistrationView as tt, UploadInput as u, SchedulesQueryOutput as ut, ChannelView as v, SyncCopiesView as vt, EventsQuery as w, SyncReceiptBody as wt, Discovery as x, SyncFindView as xt, CreateChannelBody as y, SyncFindInput as yt, LinkedQuery as z, UploadTicket as zt };
|