@vercel/board 0.0.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +180 -0
  2. package/dist/a2-C41hD8SF.mjs +3045 -0
  3. package/dist/a2-D24cvwpN.d.mts +3359 -0
  4. package/dist/access-CJU2-vaa.mjs +226 -0
  5. package/dist/access-CV96SYgr.d.mts +32 -0
  6. package/dist/access.d.mts +30 -0
  7. package/dist/access.mjs +4 -0
  8. package/dist/actors-DjMeZpnU.mjs +224 -0
  9. package/dist/attempts-Bxp9KgPf.mjs +919 -0
  10. package/dist/auth-COzc09sn.mjs +276 -0
  11. package/dist/auth-CU56Q2Xh.d.mts +204 -0
  12. package/dist/backend-a2/blob-vercel.d.mts +8 -0
  13. package/dist/backend-a2/blob-vercel.mjs +81 -0
  14. package/dist/backend-a2/contract.d.mts +18 -0
  15. package/dist/backend-a2/contract.mjs +5 -0
  16. package/dist/backend-a2/scheduler-local.d.mts +11 -0
  17. package/dist/backend-a2/scheduler-local.mjs +2 -0
  18. package/dist/backend-a2/scheduler-qstash.d.mts +2 -0
  19. package/dist/backend-a2/scheduler-qstash.mjs +2 -0
  20. package/dist/backend-a2/scheduler-vercel.d.mts +2 -0
  21. package/dist/backend-a2/scheduler-vercel.mjs +2 -0
  22. package/dist/backend-a2/store-memory.d.mts +11 -0
  23. package/dist/backend-a2/store-memory.mjs +19 -0
  24. package/dist/backend-a2/store-postgres.d.mts +38 -0
  25. package/dist/backend-a2/store-postgres.mjs +110 -0
  26. package/dist/backend-a2/store-redis-http.d.mts +17 -0
  27. package/dist/backend-a2/store-redis-http.mjs +32 -0
  28. package/dist/backend-a2/store-redis.d.mts +23 -0
  29. package/dist/backend-a2/store-redis.mjs +39 -0
  30. package/dist/backend-a2/store-sqlite.d.mts +12 -0
  31. package/dist/backend-a2/store-sqlite.mjs +31 -0
  32. package/dist/backend-a2.d.mts +4 -0
  33. package/dist/backend-a2.mjs +2 -0
  34. package/dist/backend-http-0roEmjl0.mjs +613 -0
  35. package/dist/backend-http-BVRno-ca.mjs +469 -0
  36. package/dist/backend-http-Bid7RIpC.d.mts +630 -0
  37. package/dist/backend-http.d.mts +10 -0
  38. package/dist/backend-http.mjs +2 -0
  39. package/dist/backend-http.node.d.mts +10 -0
  40. package/dist/backend-http.node.mjs +2 -0
  41. package/dist/blob-C0J3wbGv.d.mts +39 -0
  42. package/dist/bots-CGkO76qH.mjs +67 -0
  43. package/dist/chat-provider-XCnQlxq6.d.mts +140 -0
  44. package/dist/chat-provider-jFSeyNmB.mjs +389 -0
  45. package/dist/cli.d.mts +1 -0
  46. package/dist/cli.mjs +2252 -0
  47. package/dist/client-DGDPaN7U.mjs +380 -0
  48. package/dist/conformance-DRR23YNy.mjs +512 -0
  49. package/dist/conformance.d.mts +30 -0
  50. package/dist/conformance.mjs +2 -0
  51. package/dist/contract-CuJmlrhw.mjs +566 -0
  52. package/dist/emoji-CTLpvH-A.mjs +445 -0
  53. package/dist/engine-Bir5s8ts.mjs +1449 -0
  54. package/dist/errors-DX3hpwWt.mjs +64 -0
  55. package/dist/exports-DLiE7fLY.d.mts +4 -0
  56. package/dist/exports-Dvc1o52I.mjs +1285 -0
  57. package/dist/files-SniSmeEr.mjs +47 -0
  58. package/dist/index.d.mts +13 -0
  59. package/dist/index.default-Bkg77Pxn.mjs +12 -0
  60. package/dist/index.mjs +19 -0
  61. package/dist/index.node.d.mts +14 -0
  62. package/dist/index.node.mjs +5 -0
  63. package/dist/inspect/app.js +416 -0
  64. package/dist/inspect/engine.js +5 -0
  65. package/dist/local-Cr_dSjvs.mjs +44 -0
  66. package/dist/own-OwgPWdmh.mjs +15 -0
  67. package/dist/project-CFiArraX.mjs +124 -0
  68. package/dist/provider-BGjz-mDa.d.mts +2473 -0
  69. package/dist/provider-CuewcDNZ.mjs +205 -0
  70. package/dist/redis-tables-B35vv4CZ.mjs +842 -0
  71. package/dist/reducers-B_vUGQRp.d.mts +1172 -0
  72. package/dist/reducers-mUPFuFJV.mjs +293 -0
  73. package/dist/schemas-Be08nyfW.mjs +74 -0
  74. package/dist/schemas-CWxs3ECJ.d.mts +50 -0
  75. package/dist/serve-BsOOc-6_.mjs +170 -0
  76. package/dist/server-jwPY7_wi.mjs +17 -0
  77. package/dist/serving-BNbzc96L.mjs +2 -0
  78. package/dist/sql-DbiEnqM0.mjs +571 -0
  79. package/dist/sqlite-db-Cbj03vmp.mjs +70 -0
  80. package/dist/sync-github.d.mts +473 -0
  81. package/dist/sync-github.mjs +603 -0
  82. package/dist/sync-kapso.d.mts +175 -0
  83. package/dist/sync-kapso.mjs +86 -0
  84. package/dist/sync-slack.d.mts +364 -0
  85. package/dist/sync-slack.mjs +728 -0
  86. package/dist/sync.chat.d.mts +2 -0
  87. package/dist/sync.chat.mjs +2 -0
  88. package/dist/sync.d.mts +3 -0
  89. package/dist/sync.mjs +4 -0
  90. package/dist/targets-yM5JBUgr.mjs +94 -0
  91. package/dist/tokens-DKLn5P9B.mjs +256 -0
  92. package/dist/types-BHCjTZdB.d.mts +104 -0
  93. package/dist/users-Dls7_ANV.mjs +42 -0
  94. package/dist/watch-spec-W0c7ypHJ.mjs +787 -0
  95. package/dist/watchers-hash-CLjsa6od.mjs +225 -0
  96. package/docs/01-board/01-mounting.md +506 -0
  97. package/docs/01-board/02-database.md +258 -0
  98. package/docs/01-board/03-identity.md +264 -0
  99. package/docs/01-board/04-messages.md +192 -0
  100. package/docs/01-board/05-reading.md +177 -0
  101. package/docs/01-board/06-watchers.md +249 -0
  102. package/docs/01-board/07-schedules.md +133 -0
  103. package/docs/01-board/08-middleware.md +139 -0
  104. package/docs/01-board/09-access.md +501 -0
  105. package/docs/01-quickstart.md +196 -0
  106. package/docs/02-sync/01-overview.md +290 -0
  107. package/docs/02-sync/02-callbacks.md +265 -0
  108. package/docs/02-sync/03-slack.md +248 -0
  109. package/docs/02-sync/04-github.md +201 -0
  110. package/docs/02-sync/05-whatsapp.md +148 -0
  111. package/docs/02-sync/06-providers.md +228 -0
  112. package/docs/03-guides/01-coding-agents.md +226 -0
  113. package/docs/03-guides/02-inspector.md +104 -0
  114. package/docs/03-guides/03-ci.md +251 -0
  115. package/docs/03-guides/04-triage.md +233 -0
  116. package/docs/03-guides/05-agent-factory.md +142 -0
  117. package/docs/04-reference/01-cli.md +606 -0
  118. package/docs/04-reference/02-board.md +579 -0
  119. package/docs/04-reference/03-http.md +489 -0
  120. package/docs/04-reference/04-log.md +250 -0
  121. package/docs/04-reference/05-conformance.md +97 -0
  122. package/docs/index.md +186 -0
  123. package/package.json +168 -1
  124. package/sql/postgres/board.sql +145 -0
  125. package/sql/postgres/notifications.sql +24 -0
  126. package/sql/postgres/schema.sql +451 -0
@@ -0,0 +1,445 @@
1
+ //#region src/contract/emoji-table.ts
2
+ /** Canonical name → its characters (the first is the one shown) and Slack's names for it. */
3
+ const EMOJI_TABLE = {
4
+ "100": {
5
+ characters: ["💯"],
6
+ aliases: []
7
+ },
8
+ thumbs_up: {
9
+ characters: ["👍"],
10
+ aliases: ["+1", "thumbsup"]
11
+ },
12
+ thumbs_down: {
13
+ characters: ["👎"],
14
+ aliases: ["-1", "thumbsdown"]
15
+ },
16
+ clap: {
17
+ characters: ["👏"],
18
+ aliases: []
19
+ },
20
+ wave: {
21
+ characters: ["👋"],
22
+ aliases: []
23
+ },
24
+ pray: {
25
+ characters: ["🙏"],
26
+ aliases: []
27
+ },
28
+ muscle: {
29
+ characters: ["💪"],
30
+ aliases: []
31
+ },
32
+ ok_hand: {
33
+ characters: ["👌"],
34
+ aliases: []
35
+ },
36
+ point_up: {
37
+ characters: ["👆"],
38
+ aliases: []
39
+ },
40
+ point_down: {
41
+ characters: ["👇"],
42
+ aliases: []
43
+ },
44
+ point_left: {
45
+ characters: ["👈"],
46
+ aliases: []
47
+ },
48
+ point_right: {
49
+ characters: ["👉"],
50
+ aliases: []
51
+ },
52
+ raised_hands: {
53
+ characters: ["🙌"],
54
+ aliases: []
55
+ },
56
+ shrug: {
57
+ characters: ["🤷"],
58
+ aliases: []
59
+ },
60
+ facepalm: {
61
+ characters: ["🤦"],
62
+ aliases: []
63
+ },
64
+ heart: {
65
+ characters: ["❤️", "❤"],
66
+ aliases: []
67
+ },
68
+ smile: {
69
+ characters: ["😊"],
70
+ aliases: ["slightly_smiling_face"]
71
+ },
72
+ laugh: {
73
+ characters: ["😂", "😆"],
74
+ aliases: [
75
+ "laughing",
76
+ "satisfied",
77
+ "joy"
78
+ ]
79
+ },
80
+ thinking: {
81
+ characters: ["🤔"],
82
+ aliases: ["thinking_face"]
83
+ },
84
+ sad: {
85
+ characters: ["😢"],
86
+ aliases: ["cry", "white_frowning_face"]
87
+ },
88
+ cry: {
89
+ characters: ["😭"],
90
+ aliases: ["sob"]
91
+ },
92
+ angry: {
93
+ characters: ["😠"],
94
+ aliases: []
95
+ },
96
+ love_eyes: {
97
+ characters: ["😍"],
98
+ aliases: ["heart_eyes"]
99
+ },
100
+ cool: {
101
+ characters: ["😎"],
102
+ aliases: ["sunglasses"]
103
+ },
104
+ wink: {
105
+ characters: ["😉"],
106
+ aliases: []
107
+ },
108
+ surprised: {
109
+ characters: ["😮"],
110
+ aliases: ["open_mouth"]
111
+ },
112
+ worried: {
113
+ characters: ["😟"],
114
+ aliases: []
115
+ },
116
+ confused: {
117
+ characters: ["😕"],
118
+ aliases: []
119
+ },
120
+ neutral: {
121
+ characters: ["😐"],
122
+ aliases: ["neutral_face"]
123
+ },
124
+ sleeping: {
125
+ characters: ["😴"],
126
+ aliases: []
127
+ },
128
+ sick: {
129
+ characters: ["🤢"],
130
+ aliases: ["nauseated_face"]
131
+ },
132
+ mind_blown: {
133
+ characters: ["🤯"],
134
+ aliases: ["exploding_head"]
135
+ },
136
+ relieved: {
137
+ characters: ["😌"],
138
+ aliases: []
139
+ },
140
+ grimace: {
141
+ characters: ["😬"],
142
+ aliases: ["grimacing"]
143
+ },
144
+ rolling_eyes: {
145
+ characters: ["🙄"],
146
+ aliases: []
147
+ },
148
+ hug: {
149
+ characters: ["🤗"],
150
+ aliases: ["hugging_face"]
151
+ },
152
+ zany: {
153
+ characters: ["🤪"],
154
+ aliases: ["zany_face"]
155
+ },
156
+ check: {
157
+ characters: ["✅", "✔️"],
158
+ aliases: ["white_check_mark", "heavy_check_mark"]
159
+ },
160
+ x: {
161
+ characters: ["❌", "✖️"],
162
+ aliases: ["heavy_multiplication_x"]
163
+ },
164
+ question: {
165
+ characters: ["❓", "?"],
166
+ aliases: []
167
+ },
168
+ exclamation: {
169
+ characters: ["❗"],
170
+ aliases: []
171
+ },
172
+ warning: {
173
+ characters: ["⚠️"],
174
+ aliases: []
175
+ },
176
+ stop: {
177
+ characters: ["🛑"],
178
+ aliases: ["octagonal_sign"]
179
+ },
180
+ info: {
181
+ characters: ["ℹ️"],
182
+ aliases: ["information_source"]
183
+ },
184
+ fire: {
185
+ characters: ["🔥"],
186
+ aliases: []
187
+ },
188
+ star: {
189
+ characters: ["⭐"],
190
+ aliases: []
191
+ },
192
+ sparkles: {
193
+ characters: ["✨"],
194
+ aliases: []
195
+ },
196
+ lightning: {
197
+ characters: ["⚡"],
198
+ aliases: ["zap"]
199
+ },
200
+ boom: {
201
+ characters: ["💥"],
202
+ aliases: []
203
+ },
204
+ eyes: {
205
+ characters: ["👀"],
206
+ aliases: []
207
+ },
208
+ green_circle: {
209
+ characters: ["🟢"],
210
+ aliases: ["large_green_circle"]
211
+ },
212
+ yellow_circle: {
213
+ characters: ["🟡"],
214
+ aliases: ["large_yellow_circle"]
215
+ },
216
+ red_circle: {
217
+ characters: ["🔴"],
218
+ aliases: []
219
+ },
220
+ blue_circle: {
221
+ characters: ["🔵"],
222
+ aliases: ["large_blue_circle"]
223
+ },
224
+ white_circle: {
225
+ characters: ["⚪"],
226
+ aliases: []
227
+ },
228
+ black_circle: {
229
+ characters: ["⚫"],
230
+ aliases: []
231
+ },
232
+ rocket: {
233
+ characters: ["🚀"],
234
+ aliases: []
235
+ },
236
+ party: {
237
+ characters: ["🎉", "🥳"],
238
+ aliases: ["tada", "partying_face"]
239
+ },
240
+ confetti: {
241
+ characters: ["🎊"],
242
+ aliases: ["confetti_ball"]
243
+ },
244
+ balloon: {
245
+ characters: ["🎈"],
246
+ aliases: []
247
+ },
248
+ gift: {
249
+ characters: ["🎁"],
250
+ aliases: []
251
+ },
252
+ trophy: {
253
+ characters: ["🏆"],
254
+ aliases: []
255
+ },
256
+ medal: {
257
+ characters: ["🥇"],
258
+ aliases: ["first_place_medal"]
259
+ },
260
+ lightbulb: {
261
+ characters: ["💡"],
262
+ aliases: ["bulb"]
263
+ },
264
+ gear: {
265
+ characters: ["⚙️"],
266
+ aliases: []
267
+ },
268
+ wrench: {
269
+ characters: ["🔧"],
270
+ aliases: []
271
+ },
272
+ hammer: {
273
+ characters: ["🔨"],
274
+ aliases: []
275
+ },
276
+ bug: {
277
+ characters: ["🐛"],
278
+ aliases: []
279
+ },
280
+ link: {
281
+ characters: ["🔗"],
282
+ aliases: []
283
+ },
284
+ lock: {
285
+ characters: ["🔒"],
286
+ aliases: []
287
+ },
288
+ unlock: {
289
+ characters: ["🔓"],
290
+ aliases: []
291
+ },
292
+ key: {
293
+ characters: ["🔑"],
294
+ aliases: []
295
+ },
296
+ pin: {
297
+ characters: ["📌"],
298
+ aliases: ["pushpin"]
299
+ },
300
+ memo: {
301
+ characters: ["📝"],
302
+ aliases: []
303
+ },
304
+ clipboard: {
305
+ characters: ["📋"],
306
+ aliases: []
307
+ },
308
+ calendar: {
309
+ characters: ["📅"],
310
+ aliases: []
311
+ },
312
+ clock: {
313
+ characters: ["🕐"],
314
+ aliases: ["clock1"]
315
+ },
316
+ hourglass: {
317
+ characters: ["⏳"],
318
+ aliases: []
319
+ },
320
+ bell: {
321
+ characters: ["🔔"],
322
+ aliases: []
323
+ },
324
+ megaphone: {
325
+ characters: ["📢"],
326
+ aliases: ["mega"]
327
+ },
328
+ speech_bubble: {
329
+ characters: ["💬"],
330
+ aliases: ["speech_balloon"]
331
+ },
332
+ email: {
333
+ characters: ["📧"],
334
+ aliases: []
335
+ },
336
+ inbox: {
337
+ characters: ["📥"],
338
+ aliases: ["inbox_tray"]
339
+ },
340
+ outbox: {
341
+ characters: ["📤"],
342
+ aliases: ["outbox_tray"]
343
+ },
344
+ package: {
345
+ characters: ["📦"],
346
+ aliases: []
347
+ },
348
+ folder: {
349
+ characters: ["📁"],
350
+ aliases: ["file_folder"]
351
+ },
352
+ file: {
353
+ characters: ["📄"],
354
+ aliases: ["page_facing_up"]
355
+ },
356
+ chart_up: {
357
+ characters: ["📈"],
358
+ aliases: ["chart_with_upwards_trend"]
359
+ },
360
+ chart_down: {
361
+ characters: ["📉"],
362
+ aliases: ["chart_with_downwards_trend"]
363
+ },
364
+ coffee: {
365
+ characters: ["☕"],
366
+ aliases: []
367
+ },
368
+ pizza: {
369
+ characters: ["🍕"],
370
+ aliases: []
371
+ },
372
+ beer: {
373
+ characters: ["🍺"],
374
+ aliases: []
375
+ },
376
+ arrow_up: {
377
+ characters: ["⬆️"],
378
+ aliases: []
379
+ },
380
+ arrow_down: {
381
+ characters: ["⬇️"],
382
+ aliases: []
383
+ },
384
+ arrow_left: {
385
+ characters: ["⬅️"],
386
+ aliases: []
387
+ },
388
+ arrow_right: {
389
+ characters: ["➡️"],
390
+ aliases: []
391
+ },
392
+ refresh: {
393
+ characters: ["🔄"],
394
+ aliases: ["arrows_counterclockwise"]
395
+ },
396
+ sun: {
397
+ characters: ["☀️"],
398
+ aliases: ["sunny"]
399
+ },
400
+ cloud: {
401
+ characters: ["☁️"],
402
+ aliases: []
403
+ },
404
+ rain: {
405
+ characters: ["🌧️"],
406
+ aliases: ["rain_cloud"]
407
+ },
408
+ snow: {
409
+ characters: ["❄️"],
410
+ aliases: ["snowflake"]
411
+ },
412
+ rainbow: {
413
+ characters: ["🌈"],
414
+ aliases: []
415
+ }
416
+ };
417
+ //#endregion
418
+ //#region src/contract/emoji.ts
419
+ const CANONICAL = /* @__PURE__ */ new Map();
420
+ const SHOWN = /* @__PURE__ */ new Map();
421
+ const BY_CHARACTER = /* @__PURE__ */ new Map();
422
+ const bare = (character) => character.replace(/️/g, "");
423
+ function add(name, characters, aliases) {
424
+ CANONICAL.set(name, name);
425
+ for (const alias of aliases) if (!CANONICAL.has(alias)) CANONICAL.set(alias, name);
426
+ if (characters[0]) SHOWN.set(name, characters[0]);
427
+ for (const character of characters) if (!BY_CHARACTER.has(bare(character))) BY_CHARACTER.set(bare(character), name);
428
+ }
429
+ for (const [name, entry] of Object.entries(EMOJI_TABLE)) add(name, entry.characters, entry.aliases);
430
+ add("rotating_light", ["🚨"], []);
431
+ add("ship", ["🚢"], []);
432
+ /** A stored name in its canonical form: `+1` → `thumbs_up`. Unknown names are their own. */
433
+ const canonicalEmoji = (name) => CANONICAL.get(name) ?? name;
434
+ /** `eyes`, `:eyes:`, `+1`, or 👍 → a canonical short name. */
435
+ function normalizeEmoji(input) {
436
+ const trimmed = input.trim();
437
+ const named = trimmed.match(/^:?([a-z0-9_+-]+):?$/i);
438
+ if (named) return canonicalEmoji(named[1].toLowerCase());
439
+ const name = BY_CHARACTER.get(bare(trimmed));
440
+ if (name) return name;
441
+ throw new Error(`unknown emoji: ${input} (use a short name like eyes or thumbs_up)`);
442
+ }
443
+ const displayEmoji = (name) => SHOWN.get(canonicalEmoji(name)) ?? `:${name}:`;
444
+ //#endregion
445
+ export { displayEmoji as n, normalizeEmoji as r, canonicalEmoji as t };