@absolutejs/sync-pack-comments 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -177,3 +177,13 @@ gates the join the same way it gates the base.
177
177
  table.
178
178
  - **Reactions** — a `reactionsTable` config that adds an emoji-reaction
179
179
  side table with create/remove/list mutations.
180
+
181
+ ## Persistent append-only streams (0.7+)
182
+
183
+ `createPersistentCommentsPack<Ctx, Tx>` supports database-backed comment streams with asynchronous ACLs. Configure `table`, `dependencies` (including membership/session tables), `getActorId`, separate `canReadResource` / `canWriteResource`, and `canMention(actorId, resourceId, ctx)`.
184
+
185
+ Provide `store.list(resourceId, ctx)` and `store.insert(row, ctx, tx)`. The latter receives the Sync engine transaction: persist comments and any audit/outbox records using that transaction. Configure the engine's durable mutation runner and send operation IDs to prevent duplicate comments on retries. Authorization runs before receipt replay and again at the writer boundary. Do not send email directly inside the transaction.
186
+
187
+ The collection is named after `table`, scoped by `{resourceId}`; the mutation is `table + ':create'`. It accepts `{resourceId, body, mentions?, links?}`. Actor, ID and timestamp are server-generated. Mentions are explicit actor IDs validated through the host's resource permissions; links require HTTPS without embedded credentials. Bodies are plain text (10,000 characters), with up to 50 mentions and 10 supporting links. Render bodies as text, never raw HTML. No editing/deletion or threading is exposed by this append-only API; `createCommentsPack` remains the existing synchronous threaded API.
188
+
189
+ This package records mention metadata. Delivery, inboxes, and email are separate host integrations; mentioning someone never grants access.
package/dist/index.d.ts CHANGED
@@ -210,3 +210,4 @@ export type CommentWithAuthor<AuthorRow = unknown> = CommentRow & {
210
210
  * `unknown` is fine.
211
211
  */
212
212
  export declare const createCommentsPack: <Ctx = CollectionContext, AuthorRow = unknown>(config: CommentsPackConfig<Ctx, AuthorRow>) => SyncPack;
213
+ export * from "./persistent";
package/dist/index.js CHANGED
@@ -17,15 +17,118 @@ var __export = (target, all) => {
17
17
  // src/index.ts
18
18
  import {
19
19
  createTextIndex,
20
- defineCollection,
20
+ defineCollection as defineCollection2,
21
21
  defineJoinCollection,
22
- defineMutation,
22
+ defineMutation as defineMutation2,
23
23
  defineSchema,
24
24
  defineSearchCollection,
25
- defineSyncPack,
25
+ defineSyncPack as defineSyncPack2,
26
26
  field,
27
+ UnauthorizedError as UnauthorizedError2
28
+ } from "@absolutejs/sync/engine";
29
+
30
+ // src/persistent.ts
31
+ import {
32
+ defineSyncPack,
33
+ defineCollection,
34
+ defineMutation,
27
35
  UnauthorizedError
28
36
  } from "@absolutejs/sync/engine";
37
+ function validateCommentDraft(value) {
38
+ if (!value || typeof value !== "object" || Array.isArray(value))
39
+ throw Error("Invalid comment");
40
+ const data = value;
41
+ if (Object.keys(data).some((k) => !["resourceId", "body", "mentions", "links"].includes(k)) || typeof data.resourceId !== "string" || !data.resourceId || data.resourceId.length > 200 || typeof data.body !== "string" || data.body.length > 1e4)
42
+ throw Error("Invalid comment");
43
+ const mentions = data.mentions ?? [], links = data.links ?? [];
44
+ if (!Array.isArray(mentions) || mentions.length > 50 || mentions.some((m) => typeof m !== "string" || !m || m.length > 500) || !Array.isArray(links) || links.length > 10)
45
+ throw Error("Invalid comment metadata");
46
+ const safeLinks = links.map((link) => {
47
+ if (!link || typeof link.label !== "string" || link.label.length > 200 || typeof link.url !== "string" || link.url.length > 2000 || Object.keys(link).some((k) => !["label", "url"].includes(k)))
48
+ throw Error("Invalid comment link");
49
+ let url;
50
+ try {
51
+ url = new URL(link.url);
52
+ } catch {
53
+ throw Error("Invalid comment link");
54
+ }
55
+ if (url.protocol !== "https:" || url.username || url.password)
56
+ throw Error("Invalid comment link: use an HTTPS URL without credentials");
57
+ return { label: link.label.trim() || url.hostname, url: url.href };
58
+ });
59
+ if (!data.body.trim() && !safeLinks.length)
60
+ throw Error("Invalid comment: enter text or a supporting link");
61
+ return {
62
+ resourceId: data.resourceId,
63
+ body: data.body.trim(),
64
+ mentions: [...new Set(mentions)],
65
+ links: safeLinks
66
+ };
67
+ }
68
+ function createPersistentCommentsPack(config) {
69
+ const { table } = config;
70
+ const allowed = async (id, ctx) => !!await config.getActorId(ctx) && await config.canReadResource(id, ctx) && await config.canWriteResource(id, ctx);
71
+ return defineSyncPack({
72
+ name: "@absolutejs/sync-pack-comments/persistent",
73
+ version: "0.7.0",
74
+ ownsTables: [table],
75
+ readsTables: config.dependencies ?? [],
76
+ writers: {
77
+ [table]: {
78
+ insert: async (value, raw, tx) => {
79
+ const ctx = raw;
80
+ if (!await allowed(value.resourceId, ctx) || value.authorId !== await config.getActorId(ctx))
81
+ throw new UnauthorizedError("comment write");
82
+ const draft = validateCommentDraft({
83
+ resourceId: value.resourceId,
84
+ body: value.body,
85
+ mentions: value.mentions,
86
+ links: value.links
87
+ });
88
+ for (const actor of draft.mentions)
89
+ if (!await config.canMention(actor, draft.resourceId, ctx))
90
+ throw Error("Invalid comment mention: recipient must have resource access");
91
+ return config.store.insert({ ...value, ...draft }, ctx, tx);
92
+ },
93
+ update: () => {
94
+ throw Error("Comment streams are append-only");
95
+ },
96
+ delete: () => {
97
+ throw Error("Comment streams are append-only");
98
+ }
99
+ }
100
+ },
101
+ collections: [
102
+ defineCollection({
103
+ name: table,
104
+ tables: [table, ...config.dependencies ?? []],
105
+ key: (row) => row.id,
106
+ authorize: async (params, ctx) => typeof params?.resourceId === "string" && await config.canReadResource(params.resourceId, ctx),
107
+ hydrate: async (params, ctx) => await config.canReadResource(params.resourceId, ctx) ? (await config.store.list(params.resourceId, ctx)).filter((row) => row.resourceId === params.resourceId) : []
108
+ })
109
+ ],
110
+ mutations: [
111
+ defineMutation({
112
+ name: table + ":create",
113
+ authorize: async (args, ctx) => typeof args?.resourceId === "string" && await allowed(args.resourceId, ctx),
114
+ handler: async (args, ctx, actions) => {
115
+ const draft = validateCommentDraft(args);
116
+ const authorId = await config.getActorId(ctx);
117
+ if (!authorId || !await allowed(draft.resourceId, ctx))
118
+ throw new UnauthorizedError("comment write");
119
+ return await actions.insert(table, {
120
+ ...draft,
121
+ id: crypto.randomUUID(),
122
+ authorId,
123
+ createdAt: Date.now()
124
+ });
125
+ }
126
+ })
127
+ ]
128
+ });
129
+ }
130
+
131
+ // src/index.ts
29
132
  var createInMemoryCommentsStore = () => {
30
133
  const rows = new Map;
31
134
  return {
@@ -84,7 +187,7 @@ var DEFAULT_USER_TABLE = "users";
84
187
  var resolveActor = (getActorId, ctx) => {
85
188
  const actorId = getActorId(ctx);
86
189
  if (actorId === undefined || actorId === "") {
87
- throw new UnauthorizedError("comments mutation (no actor id)");
190
+ throw new UnauthorizedError2("comments mutation (no actor id)");
88
191
  }
89
192
  return actorId;
90
193
  };
@@ -182,7 +285,7 @@ var createCommentsPack = (config) => {
182
285
  }
183
286
  },
184
287
  collections: [
185
- defineCollection({
288
+ defineCollection2({
186
289
  name: collectionName,
187
290
  tables: [table],
188
291
  key: (row) => row.id,
@@ -192,11 +295,11 @@ var createCommentsPack = (config) => {
192
295
  })
193
296
  ],
194
297
  mutations: [
195
- defineMutation({
298
+ defineMutation2({
196
299
  name: createMutationName,
197
300
  handler: async (args, ctx, actions) => {
198
301
  if (!canReadResource(args.resourceId, ctx)) {
199
- throw new UnauthorizedError(`comments:create on resource "${args.resourceId}"`);
302
+ throw new UnauthorizedError2(`comments:create on resource "${args.resourceId}"`);
200
303
  }
201
304
  const actorId = resolveActor(getActorId, ctx);
202
305
  let depth = 0;
@@ -223,16 +326,16 @@ var createCommentsPack = (config) => {
223
326
  return await actions.insert(table, row);
224
327
  }
225
328
  }),
226
- defineMutation({
329
+ defineMutation2({
227
330
  name: editMutationName,
228
331
  handler: async (args, ctx, actions) => {
229
332
  const actorId = resolveActor(getActorId, ctx);
230
333
  const existing = store.getById(args.commentId);
231
334
  if (existing === undefined) {
232
- throw new UnauthorizedError(`comments:edit on missing comment "${args.commentId}"`);
335
+ throw new UnauthorizedError2(`comments:edit on missing comment "${args.commentId}"`);
233
336
  }
234
337
  if (existing.authorId !== actorId) {
235
- throw new UnauthorizedError(`comments:edit on "${args.commentId}" (not author)`);
338
+ throw new UnauthorizedError2(`comments:edit on "${args.commentId}" (not author)`);
236
339
  }
237
340
  const updated = {
238
341
  ...existing,
@@ -242,18 +345,18 @@ var createCommentsPack = (config) => {
242
345
  return await actions.update(table, updated);
243
346
  }
244
347
  }),
245
- defineMutation({
348
+ defineMutation2({
246
349
  name: deleteMutationName,
247
350
  handler: async (args, ctx, actions) => {
248
351
  const actorId = resolveActor(getActorId, ctx);
249
352
  const existing = store.getById(args.commentId);
250
353
  if (existing === undefined) {
251
- throw new UnauthorizedError(`comments:delete on missing comment "${args.commentId}"`);
354
+ throw new UnauthorizedError2(`comments:delete on missing comment "${args.commentId}"`);
252
355
  }
253
356
  const isAuthor = existing.authorId === actorId;
254
357
  const isModerator = canModerate(ctx);
255
358
  if (!isAuthor && !isModerator) {
256
- throw new UnauthorizedError(`comments:delete on "${args.commentId}" (not author, not moderator)`);
359
+ throw new UnauthorizedError2(`comments:delete on "${args.commentId}" (not author, not moderator)`);
257
360
  }
258
361
  await actions.delete(table, { id: args.commentId });
259
362
  }
@@ -358,7 +461,7 @@ var createCommentsPack = (config) => {
358
461
  };
359
462
  pack.collections = [
360
463
  ...pack.collections ?? [],
361
- defineCollection({
464
+ defineCollection2({
362
465
  name: reactionsCollectionName,
363
466
  tables: [reactionsTable],
364
467
  key: (row) => row.id,
@@ -383,7 +486,7 @@ var createCommentsPack = (config) => {
383
486
  ];
384
487
  pack.mutations = [
385
488
  ...pack.mutations ?? [],
386
- defineMutation({
489
+ defineMutation2({
387
490
  name: reactMutationName,
388
491
  handler: async (args, ctx, actions) => {
389
492
  if (!isAllowed(args.emoji)) {
@@ -392,10 +495,10 @@ var createCommentsPack = (config) => {
392
495
  const actorId = resolveActor(getActorId, ctx);
393
496
  const comment = store.getById(args.commentId);
394
497
  if (comment === undefined) {
395
- throw new UnauthorizedError(`comments:react on missing comment "${args.commentId}"`);
498
+ throw new UnauthorizedError2(`comments:react on missing comment "${args.commentId}"`);
396
499
  }
397
500
  if (!canReadResource(comment.resourceId, ctx)) {
398
- throw new UnauthorizedError(`comments:react on comment "${args.commentId}" (no read access)`);
501
+ throw new UnauthorizedError2(`comments:react on comment "${args.commentId}" (no read access)`);
399
502
  }
400
503
  const id = reactionId(args.commentId, actorId, args.emoji);
401
504
  const existing = reactionStore.get(id);
@@ -411,7 +514,7 @@ var createCommentsPack = (config) => {
411
514
  return await actions.insert(reactionsTable, row);
412
515
  }
413
516
  }),
414
- defineMutation({
517
+ defineMutation2({
415
518
  name: unreactMutationName,
416
519
  handler: async (args, ctx, actions) => {
417
520
  const actorId = resolveActor(getActorId, ctx);
@@ -421,7 +524,7 @@ var createCommentsPack = (config) => {
421
524
  await actions.delete(reactionsTable, { id });
422
525
  }
423
526
  }),
424
- defineMutation({
527
+ defineMutation2({
425
528
  name: toggleReactionMutationName,
426
529
  handler: async (args, ctx, actions) => {
427
530
  if (!isAllowed(args.emoji)) {
@@ -430,10 +533,10 @@ var createCommentsPack = (config) => {
430
533
  const actorId = resolveActor(getActorId, ctx);
431
534
  const comment = store.getById(args.commentId);
432
535
  if (comment === undefined) {
433
- throw new UnauthorizedError(`comments:toggleReaction on missing comment "${args.commentId}"`);
536
+ throw new UnauthorizedError2(`comments:toggleReaction on missing comment "${args.commentId}"`);
434
537
  }
435
538
  if (!canReadResource(comment.resourceId, ctx)) {
436
- throw new UnauthorizedError(`comments:toggleReaction on comment "${args.commentId}" (no read access)`);
539
+ throw new UnauthorizedError2(`comments:toggleReaction on comment "${args.commentId}" (no read access)`);
437
540
  }
438
541
  const id = reactionId(args.commentId, actorId, args.emoji);
439
542
  const existing = reactionStore.get(id);
@@ -454,15 +557,17 @@ var createCommentsPack = (config) => {
454
557
  })
455
558
  ];
456
559
  }
457
- return defineSyncPack(pack);
560
+ return defineSyncPack2(pack);
458
561
  };
459
562
  export {
460
- createInMemoryCommentsStore,
461
- createCommentsPack,
462
- CommentReactionNotAllowedError,
563
+ CommentDepthExceededError,
463
564
  CommentParentMismatchError,
464
- CommentDepthExceededError
565
+ CommentReactionNotAllowedError,
566
+ createCommentsPack,
567
+ createInMemoryCommentsStore,
568
+ createPersistentCommentsPack,
569
+ validateCommentDraft
465
570
  };
466
571
 
467
- //# debugId=041BEB316C29DEDC64756E2164756E21
572
+ //# debugId=3D784B89104BF86F64756E2164756E21
468
573
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts"],
3
+ "sources": ["../src/index.ts", "../src/persistent.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * `@absolutejs/sync-pack-comments` — threaded comments on host-side resources\n * as a sync pack.\n *\n * Owns a single `comments` table. Per-resource read access is gated through\n * host-injected `canReadResource(resourceId, ctx)`. Edits are author-only;\n * deletes are author or moderator. Optional `bodyCrdt` config wires the\n * body field through `registerCrdt` for conflict-free editing. Optional\n * `joinUsers` config registers a `comments-with-author` join collection\n * that pairs each comment with the host's user row.\n *\n * @example\n * ```ts\n * import { createSyncEngine } from '@absolutejs/sync/engine';\n * import { createCommentsPack } from '@absolutejs/sync-pack-comments';\n *\n * const engine = createSyncEngine();\n * engine.registerPack(createCommentsPack({\n * getActorId: (ctx) => ctx.session.userId,\n * canReadResource: (resourceId, ctx) =>\n * hostAcl.canRead(resourceId, ctx.session.userId),\n * maxDepth: 8,\n * }));\n * ```\n */\n\nimport {\n createTextIndex,\n defineCollection,\n defineJoinCollection,\n defineMutation,\n defineSchema,\n defineSearchCollection,\n defineSyncPack,\n field,\n UnauthorizedError,\n type CollectionContext,\n type CrdtMergeable,\n type SyncPack,\n type TableReader,\n type TableWriter,\n} from \"@absolutejs/sync/engine\";\n\n/** A comment row stored in the pack's owned table. */\nexport type CommentRow = {\n id: string;\n resourceId: string;\n /** Null on top-level comments, the parent's id on replies. */\n parentCommentId: string | null;\n authorId: string;\n body: string;\n /** Depth in the thread (0 for top-level, parent.depth + 1 for replies). */\n depth: number;\n createdAt: number;\n /** Null until the comment is edited; otherwise the timestamp of the most\n * recent edit. */\n editedAt: number | null;\n};\n\n/** Storage adapter the pack uses for the comments table. */\nexport type CommentsStore = {\n reader: TableReader<CollectionContext>;\n writer: TableWriter<CommentRow, CollectionContext, unknown>;\n /** Lookup by row id; used by edit + delete mutations to verify ownership\n * and by create to walk the parent chain for depth math. */\n getById: (id: string) => CommentRow | undefined;\n};\n\n/** Default in-memory store. Each pack instance creates its own. */\nexport const createInMemoryCommentsStore = (): CommentsStore => {\n const rows = new Map<string, CommentRow>();\n return {\n getById: (id) => rows.get(id),\n reader: {\n all: () => [...rows.values()],\n },\n writer: {\n delete: (row) => {\n rows.delete((row as { id: string }).id);\n },\n insert: (data) => {\n rows.set(data.id, data);\n return data;\n },\n update: (data) => {\n const prior = rows.get(data.id);\n const merged = { ...(prior ?? {}), ...data } as CommentRow;\n rows.set(data.id, merged);\n return merged;\n },\n },\n };\n};\n\n/** Thrown when a reply would exceed the configured `maxDepth`. */\nexport class CommentDepthExceededError extends Error {\n readonly maxDepth: number;\n readonly attemptedDepth: number;\n constructor(maxDepth: number, attemptedDepth: number) {\n super(\n `Comment reply rejected: depth ${attemptedDepth} exceeds maxDepth ${maxDepth}`,\n );\n this.name = \"CommentDepthExceededError\";\n this.maxDepth = maxDepth;\n this.attemptedDepth = attemptedDepth;\n }\n}\n\n/** Thrown when the requested parent comment doesn't exist or doesn't match. */\nexport class CommentParentMismatchError extends Error {\n readonly parentCommentId: string;\n constructor(parentCommentId: string) {\n super(\n `Parent comment ${parentCommentId} not found, or its resourceId doesn't match the reply's resourceId`,\n );\n this.name = \"CommentParentMismatchError\";\n this.parentCommentId = parentCommentId;\n }\n}\n\n/** Factory config. `canReadResource` is the only required field. */\nexport type CommentsPackConfig<Ctx = CollectionContext, AuthorRow = unknown> = {\n /**\n * Prefix applied to the owned table name AND every collection/mutation\n * the pack exposes. Default `\"\"`. Use a non-empty prefix when\n * registering multiple comments packs on one engine (e.g. one per\n * product surface).\n */\n prefix?: string;\n /**\n * Extract the current actor id from the app's ctx. Default:\n * `(ctx) => ctx.userId`. **This is the only contract the pack assumes\n * about the app's ctx**, alongside `canReadResource` / `canModerate`.\n */\n getActorId?: (ctx: Ctx) => string | undefined;\n /**\n * Gate read access on a resource. The host knows which resources a\n * given ctx can read — the pack does NOT duplicate the host's ACL.\n * Required: pack reads return zero rows otherwise.\n */\n canReadResource: (resourceId: string, ctx: Ctx) => boolean;\n /**\n * Optional moderation predicate. Used by `comments:delete` — author OR\n * moderator can delete. Default `() => false` (only authors delete).\n */\n canModerate?: (ctx: Ctx) => boolean;\n /**\n * Maximum thread depth (top-level = 0, first reply = 1, ...). Replies\n * past this depth reject with {@link CommentDepthExceededError}.\n * Default `8`.\n */\n maxDepth?: number;\n /**\n * When provided, register the comment row's `body` field as a CRDT via\n * `engine.registerCrdt`. The engine then merges concurrent edits\n * instead of overwriting. Typically `yjsText` from\n * `@absolutejs/sync-yjs` — the pack does NOT import Yjs; the host\n * provides the mergeable.\n */\n bodyCrdt?: CrdtMergeable<unknown>;\n /**\n * Override the storage adapter. Default: a per-instance in-memory\n * store. Pass your own for a persistent backend (Drizzle, Postgres,\n * Redis, ...).\n */\n store?: CommentsStore;\n /** Wall-clock function. Default `Date.now`. */\n now?: () => number;\n /**\n * Generate a fresh row id. Default `crypto.randomUUID()`. Override for\n * deterministic ids in tests, or to route through your existing id\n * scheme.\n */\n newId?: () => string;\n /**\n * When set, the pack additionally registers a `comments-with-author`\n * join collection. The host's user table must have a registered\n * reader/writer (so user-row changes propagate into the join). The\n * pack itself does NOT own the users table; it only `readsTables`\n * the configured name.\n */\n joinUsers?: JoinUsersConfig<Ctx, AuthorRow>;\n /**\n * When set, register a `comments-search` full-text search collection\n * over the body field. The subscription's `params` is the query string;\n * results are the ranked top-K, re-ranked live as comments are added,\n * edited, or removed. Per-row read permission (which routes through\n * `canReadResource`) still filters hits per caller.\n */\n search?: { topK?: number };\n /**\n * When set, register a `comment_reactions` table + matching collection\n * + react / unreact / toggleReaction mutations. Each row is one\n * actor's reaction with a single emoji on a single comment, deterministic\n * id `${commentId}:${actorId}:${emoji}` for idempotent toggling.\n */\n reactions?: ReactionsConfig;\n};\n\n/** Config for the optional reactions surface. */\nexport type ReactionsConfig = {\n /**\n * Allowed emojis. Setting this filters react mutations — anything\n * outside the list is rejected. Empty array (default) means any\n * single-character or grapheme string is accepted.\n */\n allowedEmojis?: string[];\n /**\n * Custom row id generator for reaction rows. Default\n * `(commentId, actorId, emoji) => \\`${commentId}:${actorId}:${emoji}\\``.\n */\n newId?: (commentId: string, actorId: string, emoji: string) => string;\n};\n\n/** A reaction row — one per (comment, actor, emoji). */\nexport type CommentReactionRow = {\n id: string;\n commentId: string;\n actorId: string;\n emoji: string;\n createdAt: number;\n};\n\n/** Thrown when a react mutation supplies an emoji outside `allowedEmojis`. */\nexport class CommentReactionNotAllowedError extends Error {\n readonly emoji: string;\n constructor(emoji: string) {\n super(`Comment reaction \"${emoji}\" is not in the configured allowedEmojis`);\n this.name = \"CommentReactionNotAllowedError\";\n this.emoji = emoji;\n }\n}\n\n/**\n * Config for the optional `comments-with-author` join collection.\n *\n * The pack does not own the host's user table. The host supplies the\n * right-side hydrate (typically reading from its registered reader) and\n * the join key. The engine maintains the join incrementally — changes to\n * either side fan in through `engine.applyChange`.\n */\nexport type JoinUsersConfig<Ctx, AuthorRow = unknown> = {\n /**\n * The host's user table name. Surfaced in `readsTables` so the\n * dependency graph is reviewable. Default `\"users\"`.\n */\n table?: string;\n /**\n * Get the user's id (the join field). Default `(user) => user.id`.\n */\n key?: (user: AuthorRow) => string;\n /**\n * Host-side hydrate for the users side of the join. The pack passes\n * the subscription params + ctx; this returns the candidate users.\n * Returning all users (small set) or just the authors referenced by\n * the comments are both fine — the engine inner-joins on `authorId\n * === id` after hydrate.\n */\n hydrate: (\n params: { resourceId: string },\n ctx: Ctx,\n ) => Iterable<AuthorRow> | Promise<Iterable<AuthorRow>>;\n};\n\n/** A joined row emitted by the `comments-with-author` collection. */\nexport type CommentWithAuthor<AuthorRow = unknown> = CommentRow & {\n author: AuthorRow;\n};\n\nconst DEFAULT_MAX_DEPTH = 8;\nconst DEFAULT_USER_TABLE = \"users\";\n\nconst resolveActor = (\n getActorId: NonNullable<CommentsPackConfig[\"getActorId\"]>,\n ctx: unknown,\n): string => {\n const actorId = getActorId(ctx as CollectionContext);\n if (actorId === undefined || actorId === \"\") {\n throw new UnauthorizedError(\"comments mutation (no actor id)\");\n }\n return actorId;\n};\n\n/**\n * Build a {@link SyncPack} that exposes threaded comments. Each call returns\n * a fresh pack with its own store (unless a custom `store` is supplied).\n *\n * The `AuthorRow` generic is only consulted by the\n * `comments-with-author` join collection (when `joinUsers` is set); pass\n * it to recover types for the joined output. With no `joinUsers`, default\n * `unknown` is fine.\n */\nexport const createCommentsPack = <\n Ctx = CollectionContext,\n AuthorRow = unknown,\n>(\n config: CommentsPackConfig<Ctx, AuthorRow>,\n): SyncPack => {\n const prefix = config.prefix ?? \"\";\n const table = `${prefix}comments`;\n const collectionName = table;\n const createMutationName = `${prefix}comments:create`;\n const editMutationName = `${prefix}comments:edit`;\n const deleteMutationName = `${prefix}comments:delete`;\n const maxDepth = config.maxDepth ?? DEFAULT_MAX_DEPTH;\n const store = config.store ?? createInMemoryCommentsStore();\n const now = config.now ?? Date.now;\n const newId = config.newId ?? (() => globalThis.crypto.randomUUID());\n const getActorId = (config.getActorId ??\n ((ctx: CollectionContext) => (ctx as { userId?: string }).userId)) as (\n ctx: CollectionContext,\n ) => string | undefined;\n const canReadResource = config.canReadResource as (\n resourceId: string,\n ctx: CollectionContext,\n ) => boolean;\n const canModerate = (config.canModerate ?? (() => false)) as (\n ctx: CollectionContext,\n ) => boolean;\n\n type Params = { resourceId: string };\n\n const joinUsers = config.joinUsers;\n const userTable = joinUsers?.table ?? DEFAULT_USER_TABLE;\n const joinCollectionName = `${prefix}comments-with-author`;\n const userKey = (joinUsers?.key ??\n ((row: unknown) => (row as { id: string }).id)) as (\n user: unknown,\n ) => string;\n const search = config.search;\n const searchCollectionName = `${prefix}comments-search`;\n const searchTopK = search?.topK ?? 20;\n const reactionsConfig = config.reactions;\n const reactionsTable = `${prefix}comment_reactions`;\n const reactionsCollectionName = reactionsTable;\n const reactMutationName = `${prefix}comments:react`;\n const unreactMutationName = `${prefix}comments:unreact`;\n const toggleReactionMutationName = `${prefix}comments:toggleReaction`;\n const reactionId =\n reactionsConfig?.newId ??\n ((commentId: string, actorId: string, emoji: string) =>\n `${commentId}:${actorId}:${emoji}`);\n const reactionStore = new Map<string, CommentReactionRow>();\n const reactionReader: TableReader<CollectionContext> = {\n all: () => [...reactionStore.values()],\n };\n const reactionWriter: TableWriter<\n CommentReactionRow,\n CollectionContext,\n unknown\n > = {\n delete: (row) => {\n reactionStore.delete((row as { id: string }).id);\n },\n insert: (data) => {\n reactionStore.set(data.id, data);\n return data;\n },\n update: (data) => {\n reactionStore.set(data.id, data);\n return data;\n },\n };\n\n const pack: SyncPack = {\n name: \"@absolutejs/sync-pack-comments\",\n ownsTables:\n reactionsConfig === undefined ? [table] : [table, reactionsTable],\n readsTables: joinUsers === undefined ? [] : [userTable],\n version: \"0.4.0\",\n\n schemas: defineSchema({\n [table]: {\n fields: {\n id: field.string,\n resourceId: field.string,\n parentCommentId: (value) =>\n value === null || typeof value === \"string\",\n authorId: field.string,\n body: field.string,\n depth: field.number,\n createdAt: field.number,\n editedAt: (value) => value === null || typeof value === \"number\",\n },\n },\n }),\n\n readers: { [table]: store.reader },\n writers: { [table]: store.writer },\n\n permissions: {\n [table]: {\n read: (ctx: unknown, row: CommentRow) =>\n canReadResource(row.resourceId, ctx as CollectionContext),\n // The pack's own create handler stamps `authorId` from the\n // resolved actor, so this check passes inside the pack.\n // A host-side `actions.insert(\"comments\", { ... })` that\n // tried to forge an `authorId` would be rejected here.\n insert: (ctx: unknown, row: CommentRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n return callerId !== undefined && row.authorId === callerId;\n },\n // Edits: author only. Same row-level check as insert.\n update: (ctx: unknown, row: CommentRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n return callerId !== undefined && row.authorId === callerId;\n },\n // Deletes: author OR moderator. `actions.delete` may pass\n // the full row or just the key; if `authorId` isn't in the\n // supplied subject we look it up from the store.\n delete: (ctx: unknown, row: CommentRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n if (callerId === undefined) return false;\n const authorId =\n (row as { authorId?: string }).authorId ??\n (() => {\n const id = (row as { id?: string }).id;\n return id === undefined ? undefined : store.getById(id)?.authorId;\n })();\n if (authorId === undefined) return false;\n if (authorId === callerId) return true;\n return canModerate(ctx as CollectionContext);\n },\n },\n },\n\n collections: [\n defineCollection<CommentRow, Params, CollectionContext>({\n name: collectionName,\n tables: [table],\n key: (row) => row.id,\n hydrate: (params, ctx) =>\n (store.reader.all(ctx) as CommentRow[]).filter(\n (row) =>\n row.resourceId === params.resourceId &&\n canReadResource(row.resourceId, ctx),\n ),\n match: (row, params, ctx) =>\n row.resourceId === params.resourceId &&\n canReadResource(row.resourceId, ctx),\n authorize: (params, ctx) => canReadResource(params.resourceId, ctx),\n }),\n ],\n\n mutations: [\n defineMutation<\n {\n resourceId: string;\n body: string;\n parentCommentId?: string | null;\n },\n CollectionContext,\n CommentRow\n >({\n name: createMutationName,\n handler: async (args, ctx, actions) => {\n if (!canReadResource(args.resourceId, ctx)) {\n throw new UnauthorizedError(\n `comments:create on resource \"${args.resourceId}\"`,\n );\n }\n const actorId = resolveActor(getActorId, ctx);\n let depth = 0;\n if (\n args.parentCommentId !== undefined &&\n args.parentCommentId !== null\n ) {\n const parent = store.getById(args.parentCommentId);\n if (parent === undefined || parent.resourceId !== args.resourceId) {\n throw new CommentParentMismatchError(args.parentCommentId);\n }\n depth = parent.depth + 1;\n if (depth > maxDepth) {\n throw new CommentDepthExceededError(maxDepth, depth);\n }\n }\n const row: CommentRow = {\n id: newId(),\n resourceId: args.resourceId,\n parentCommentId: args.parentCommentId ?? null,\n authorId: actorId,\n body: args.body,\n depth,\n createdAt: now(),\n editedAt: null,\n };\n return (await actions.insert(table, row)) as CommentRow;\n },\n }),\n defineMutation<\n { commentId: string; body: string },\n CollectionContext,\n CommentRow\n >({\n name: editMutationName,\n handler: async (args, ctx, actions) => {\n const actorId = resolveActor(getActorId, ctx);\n const existing = store.getById(args.commentId);\n if (existing === undefined) {\n throw new UnauthorizedError(\n `comments:edit on missing comment \"${args.commentId}\"`,\n );\n }\n if (existing.authorId !== actorId) {\n throw new UnauthorizedError(\n `comments:edit on \"${args.commentId}\" (not author)`,\n );\n }\n const updated: CommentRow = {\n ...existing,\n body: args.body,\n editedAt: now(),\n };\n return (await actions.update(table, updated)) as CommentRow;\n },\n }),\n defineMutation<{ commentId: string }, CollectionContext, void>({\n name: deleteMutationName,\n handler: async (args, ctx, actions) => {\n const actorId = resolveActor(getActorId, ctx);\n const existing = store.getById(args.commentId);\n if (existing === undefined) {\n throw new UnauthorizedError(\n `comments:delete on missing comment \"${args.commentId}\"`,\n );\n }\n const isAuthor = existing.authorId === actorId;\n const isModerator = canModerate(ctx);\n if (!isAuthor && !isModerator) {\n throw new UnauthorizedError(\n `comments:delete on \"${args.commentId}\" (not author, not moderator)`,\n );\n }\n await actions.delete(table, { id: args.commentId });\n },\n }),\n ],\n };\n\n if (config.bodyCrdt !== undefined) {\n pack.crdt = { [table]: { body: config.bodyCrdt } };\n }\n\n if (search !== undefined) {\n pack.searchCollections = [\n defineSearchCollection<CommentRow>({\n name: searchCollectionName,\n table,\n index: () =>\n createTextIndex<CommentRow>({\n fields: [\"body\"],\n key: (row) => row.id,\n }),\n key: (row) => row.id,\n limit: searchTopK,\n source: () => store.reader.all({}) as Iterable<CommentRow>,\n }),\n ];\n }\n\n if (joinUsers !== undefined) {\n const usersHydrate = joinUsers.hydrate;\n pack.joinCollections = [\n defineJoinCollection<\n CommentRow,\n unknown,\n CommentWithAuthor,\n Params,\n CollectionContext\n >({\n name: joinCollectionName,\n key: (out) => out.id,\n left: {\n table,\n hydrate: (params, ctx) =>\n (store.reader.all(ctx) as CommentRow[]).filter(\n (row) =>\n row.resourceId === params.resourceId &&\n canReadResource(row.resourceId, ctx),\n ),\n key: (row) => row.id,\n on: (row) => row.authorId,\n // Per-resource read gate, also applied to incoming changes.\n match: (row, params, ctx) =>\n row.resourceId === params.resourceId &&\n canReadResource(row.resourceId, ctx),\n },\n right: {\n table: userTable,\n hydrate: (params, ctx) =>\n usersHydrate(params, ctx as Ctx) as Iterable<unknown>,\n key: (user) => userKey(user),\n on: (user) => userKey(user),\n },\n select: (comment, author) => ({ ...comment, author }),\n authorize: (params, ctx) => canReadResource(params.resourceId, ctx),\n }),\n ];\n }\n\n if (reactionsConfig !== undefined) {\n const allowed = reactionsConfig.allowedEmojis;\n const isAllowed = (emoji: string): boolean =>\n allowed === undefined || allowed.length === 0\n ? true\n : allowed.includes(emoji);\n\n pack.schemas = {\n ...(pack.schemas ?? {}),\n [reactionsTable]: {\n fields: {\n actorId: field.string,\n commentId: field.string,\n createdAt: field.number,\n emoji: field.string,\n id: field.string,\n },\n },\n };\n pack.readers = {\n ...(pack.readers ?? {}),\n [reactionsTable]: reactionReader,\n };\n pack.writers = {\n ...(pack.writers ?? {}),\n [reactionsTable]: reactionWriter,\n };\n pack.permissions = {\n ...(pack.permissions ?? {}),\n [reactionsTable]: {\n // Reactions are visible to anyone who can read the comment's\n // resource. We look the comment up to gate on canReadResource.\n read: (ctx: unknown, row: CommentReactionRow) => {\n const comment = store.getById(row.commentId);\n if (comment === undefined) return false;\n return canReadResource(comment.resourceId, ctx as CollectionContext);\n },\n // Per-row writes: the row's actorId must match the caller.\n insert: (ctx: unknown, row: CommentReactionRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n return callerId !== undefined && row.actorId === callerId;\n },\n update: (ctx: unknown, row: CommentReactionRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n return callerId !== undefined && row.actorId === callerId;\n },\n delete: (ctx: unknown, row: CommentReactionRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n if (callerId === undefined) return false;\n if ((row as { actorId?: string }).actorId !== undefined) {\n return (row as { actorId: string }).actorId === callerId;\n }\n const id = (row as { id?: string }).id;\n if (id === undefined) return false;\n return reactionStore.get(id)?.actorId === callerId;\n },\n },\n };\n\n pack.collections = [\n ...(pack.collections ?? []),\n defineCollection<\n CommentReactionRow,\n { commentId: string },\n CollectionContext\n >({\n name: reactionsCollectionName,\n tables: [reactionsTable],\n key: (row) => row.id,\n hydrate: (params, ctx) => {\n const comment = store.getById(params.commentId);\n if (\n comment === undefined ||\n !canReadResource(comment.resourceId, ctx)\n ) {\n return [];\n }\n return (reactionReader.all(ctx) as CommentReactionRow[]).filter(\n (row) => row.commentId === params.commentId,\n );\n },\n match: (row, params, ctx) => {\n if (row.commentId !== params.commentId) return false;\n const comment = store.getById(params.commentId);\n return (\n comment !== undefined && canReadResource(comment.resourceId, ctx)\n );\n },\n authorize: (params, ctx) => {\n const comment = store.getById(params.commentId);\n return (\n comment !== undefined && canReadResource(comment.resourceId, ctx)\n );\n },\n }),\n ];\n\n pack.mutations = [\n ...(pack.mutations ?? []),\n defineMutation<\n { commentId: string; emoji: string },\n CollectionContext,\n CommentReactionRow\n >({\n name: reactMutationName,\n handler: async (args, ctx, actions) => {\n if (!isAllowed(args.emoji)) {\n throw new CommentReactionNotAllowedError(args.emoji);\n }\n const actorId = resolveActor(getActorId, ctx);\n const comment = store.getById(args.commentId);\n if (comment === undefined) {\n throw new UnauthorizedError(\n `comments:react on missing comment \"${args.commentId}\"`,\n );\n }\n if (!canReadResource(comment.resourceId, ctx)) {\n throw new UnauthorizedError(\n `comments:react on comment \"${args.commentId}\" (no read access)`,\n );\n }\n const id = reactionId(args.commentId, actorId, args.emoji);\n const existing = reactionStore.get(id);\n if (existing !== undefined) return existing;\n const row: CommentReactionRow = {\n actorId,\n commentId: args.commentId,\n createdAt: now(),\n emoji: args.emoji,\n id,\n };\n return (await actions.insert(\n reactionsTable,\n row,\n )) as CommentReactionRow;\n },\n }),\n defineMutation<\n { commentId: string; emoji: string },\n CollectionContext,\n void\n >({\n name: unreactMutationName,\n handler: async (args, ctx, actions) => {\n const actorId = resolveActor(getActorId, ctx);\n const id = reactionId(args.commentId, actorId, args.emoji);\n if (reactionStore.get(id) === undefined) return;\n await actions.delete(reactionsTable, { id });\n },\n }),\n defineMutation<\n { commentId: string; emoji: string },\n CollectionContext,\n { reacted: boolean }\n >({\n name: toggleReactionMutationName,\n handler: async (args, ctx, actions) => {\n if (!isAllowed(args.emoji)) {\n throw new CommentReactionNotAllowedError(args.emoji);\n }\n const actorId = resolveActor(getActorId, ctx);\n const comment = store.getById(args.commentId);\n if (comment === undefined) {\n throw new UnauthorizedError(\n `comments:toggleReaction on missing comment \"${args.commentId}\"`,\n );\n }\n if (!canReadResource(comment.resourceId, ctx)) {\n throw new UnauthorizedError(\n `comments:toggleReaction on comment \"${args.commentId}\" (no read access)`,\n );\n }\n const id = reactionId(args.commentId, actorId, args.emoji);\n const existing = reactionStore.get(id);\n if (existing === undefined) {\n const row: CommentReactionRow = {\n actorId,\n commentId: args.commentId,\n createdAt: now(),\n emoji: args.emoji,\n id,\n };\n await actions.insert(reactionsTable, row);\n return { reacted: true };\n }\n await actions.delete(reactionsTable, { id });\n return { reacted: false };\n },\n }),\n ];\n }\n\n return defineSyncPack(pack);\n};\n"
5
+ "/**\n * `@absolutejs/sync-pack-comments` — threaded comments on host-side resources\n * as a sync pack.\n *\n * Owns a single `comments` table. Per-resource read access is gated through\n * host-injected `canReadResource(resourceId, ctx)`. Edits are author-only;\n * deletes are author or moderator. Optional `bodyCrdt` config wires the\n * body field through `registerCrdt` for conflict-free editing. Optional\n * `joinUsers` config registers a `comments-with-author` join collection\n * that pairs each comment with the host's user row.\n *\n * @example\n * ```ts\n * import { createSyncEngine } from '@absolutejs/sync/engine';\n * import { createCommentsPack } from '@absolutejs/sync-pack-comments';\n *\n * const engine = createSyncEngine();\n * engine.registerPack(createCommentsPack({\n * getActorId: (ctx) => ctx.session.userId,\n * canReadResource: (resourceId, ctx) =>\n * hostAcl.canRead(resourceId, ctx.session.userId),\n * maxDepth: 8,\n * }));\n * ```\n */\n\nimport {\n createTextIndex,\n defineCollection,\n defineJoinCollection,\n defineMutation,\n defineSchema,\n defineSearchCollection,\n defineSyncPack,\n field,\n UnauthorizedError,\n type CollectionContext,\n type CrdtMergeable,\n type SyncPack,\n type TableReader,\n type TableWriter,\n} from \"@absolutejs/sync/engine\";\n\n/** A comment row stored in the pack's owned table. */\nexport type CommentRow = {\n id: string;\n resourceId: string;\n /** Null on top-level comments, the parent's id on replies. */\n parentCommentId: string | null;\n authorId: string;\n body: string;\n /** Depth in the thread (0 for top-level, parent.depth + 1 for replies). */\n depth: number;\n createdAt: number;\n /** Null until the comment is edited; otherwise the timestamp of the most\n * recent edit. */\n editedAt: number | null;\n};\n\n/** Storage adapter the pack uses for the comments table. */\nexport type CommentsStore = {\n reader: TableReader<CollectionContext>;\n writer: TableWriter<CommentRow, CollectionContext, unknown>;\n /** Lookup by row id; used by edit + delete mutations to verify ownership\n * and by create to walk the parent chain for depth math. */\n getById: (id: string) => CommentRow | undefined;\n};\n\n/** Default in-memory store. Each pack instance creates its own. */\nexport const createInMemoryCommentsStore = (): CommentsStore => {\n const rows = new Map<string, CommentRow>();\n return {\n getById: (id) => rows.get(id),\n reader: {\n all: () => [...rows.values()],\n },\n writer: {\n delete: (row) => {\n rows.delete((row as { id: string }).id);\n },\n insert: (data) => {\n rows.set(data.id, data);\n return data;\n },\n update: (data) => {\n const prior = rows.get(data.id);\n const merged = { ...(prior ?? {}), ...data } as CommentRow;\n rows.set(data.id, merged);\n return merged;\n },\n },\n };\n};\n\n/** Thrown when a reply would exceed the configured `maxDepth`. */\nexport class CommentDepthExceededError extends Error {\n readonly maxDepth: number;\n readonly attemptedDepth: number;\n constructor(maxDepth: number, attemptedDepth: number) {\n super(\n `Comment reply rejected: depth ${attemptedDepth} exceeds maxDepth ${maxDepth}`,\n );\n this.name = \"CommentDepthExceededError\";\n this.maxDepth = maxDepth;\n this.attemptedDepth = attemptedDepth;\n }\n}\n\n/** Thrown when the requested parent comment doesn't exist or doesn't match. */\nexport class CommentParentMismatchError extends Error {\n readonly parentCommentId: string;\n constructor(parentCommentId: string) {\n super(\n `Parent comment ${parentCommentId} not found, or its resourceId doesn't match the reply's resourceId`,\n );\n this.name = \"CommentParentMismatchError\";\n this.parentCommentId = parentCommentId;\n }\n}\n\n/** Factory config. `canReadResource` is the only required field. */\nexport type CommentsPackConfig<Ctx = CollectionContext, AuthorRow = unknown> = {\n /**\n * Prefix applied to the owned table name AND every collection/mutation\n * the pack exposes. Default `\"\"`. Use a non-empty prefix when\n * registering multiple comments packs on one engine (e.g. one per\n * product surface).\n */\n prefix?: string;\n /**\n * Extract the current actor id from the app's ctx. Default:\n * `(ctx) => ctx.userId`. **This is the only contract the pack assumes\n * about the app's ctx**, alongside `canReadResource` / `canModerate`.\n */\n getActorId?: (ctx: Ctx) => string | undefined;\n /**\n * Gate read access on a resource. The host knows which resources a\n * given ctx can read — the pack does NOT duplicate the host's ACL.\n * Required: pack reads return zero rows otherwise.\n */\n canReadResource: (resourceId: string, ctx: Ctx) => boolean;\n /**\n * Optional moderation predicate. Used by `comments:delete` — author OR\n * moderator can delete. Default `() => false` (only authors delete).\n */\n canModerate?: (ctx: Ctx) => boolean;\n /**\n * Maximum thread depth (top-level = 0, first reply = 1, ...). Replies\n * past this depth reject with {@link CommentDepthExceededError}.\n * Default `8`.\n */\n maxDepth?: number;\n /**\n * When provided, register the comment row's `body` field as a CRDT via\n * `engine.registerCrdt`. The engine then merges concurrent edits\n * instead of overwriting. Typically `yjsText` from\n * `@absolutejs/sync-yjs` — the pack does NOT import Yjs; the host\n * provides the mergeable.\n */\n bodyCrdt?: CrdtMergeable<unknown>;\n /**\n * Override the storage adapter. Default: a per-instance in-memory\n * store. Pass your own for a persistent backend (Drizzle, Postgres,\n * Redis, ...).\n */\n store?: CommentsStore;\n /** Wall-clock function. Default `Date.now`. */\n now?: () => number;\n /**\n * Generate a fresh row id. Default `crypto.randomUUID()`. Override for\n * deterministic ids in tests, or to route through your existing id\n * scheme.\n */\n newId?: () => string;\n /**\n * When set, the pack additionally registers a `comments-with-author`\n * join collection. The host's user table must have a registered\n * reader/writer (so user-row changes propagate into the join). The\n * pack itself does NOT own the users table; it only `readsTables`\n * the configured name.\n */\n joinUsers?: JoinUsersConfig<Ctx, AuthorRow>;\n /**\n * When set, register a `comments-search` full-text search collection\n * over the body field. The subscription's `params` is the query string;\n * results are the ranked top-K, re-ranked live as comments are added,\n * edited, or removed. Per-row read permission (which routes through\n * `canReadResource`) still filters hits per caller.\n */\n search?: { topK?: number };\n /**\n * When set, register a `comment_reactions` table + matching collection\n * + react / unreact / toggleReaction mutations. Each row is one\n * actor's reaction with a single emoji on a single comment, deterministic\n * id `${commentId}:${actorId}:${emoji}` for idempotent toggling.\n */\n reactions?: ReactionsConfig;\n};\n\n/** Config for the optional reactions surface. */\nexport type ReactionsConfig = {\n /**\n * Allowed emojis. Setting this filters react mutations — anything\n * outside the list is rejected. Empty array (default) means any\n * single-character or grapheme string is accepted.\n */\n allowedEmojis?: string[];\n /**\n * Custom row id generator for reaction rows. Default\n * `(commentId, actorId, emoji) => \\`${commentId}:${actorId}:${emoji}\\``.\n */\n newId?: (commentId: string, actorId: string, emoji: string) => string;\n};\n\n/** A reaction row — one per (comment, actor, emoji). */\nexport type CommentReactionRow = {\n id: string;\n commentId: string;\n actorId: string;\n emoji: string;\n createdAt: number;\n};\n\n/** Thrown when a react mutation supplies an emoji outside `allowedEmojis`. */\nexport class CommentReactionNotAllowedError extends Error {\n readonly emoji: string;\n constructor(emoji: string) {\n super(`Comment reaction \"${emoji}\" is not in the configured allowedEmojis`);\n this.name = \"CommentReactionNotAllowedError\";\n this.emoji = emoji;\n }\n}\n\n/**\n * Config for the optional `comments-with-author` join collection.\n *\n * The pack does not own the host's user table. The host supplies the\n * right-side hydrate (typically reading from its registered reader) and\n * the join key. The engine maintains the join incrementally — changes to\n * either side fan in through `engine.applyChange`.\n */\nexport type JoinUsersConfig<Ctx, AuthorRow = unknown> = {\n /**\n * The host's user table name. Surfaced in `readsTables` so the\n * dependency graph is reviewable. Default `\"users\"`.\n */\n table?: string;\n /**\n * Get the user's id (the join field). Default `(user) => user.id`.\n */\n key?: (user: AuthorRow) => string;\n /**\n * Host-side hydrate for the users side of the join. The pack passes\n * the subscription params + ctx; this returns the candidate users.\n * Returning all users (small set) or just the authors referenced by\n * the comments are both fine — the engine inner-joins on `authorId\n * === id` after hydrate.\n */\n hydrate: (\n params: { resourceId: string },\n ctx: Ctx,\n ) => Iterable<AuthorRow> | Promise<Iterable<AuthorRow>>;\n};\n\n/** A joined row emitted by the `comments-with-author` collection. */\nexport type CommentWithAuthor<AuthorRow = unknown> = CommentRow & {\n author: AuthorRow;\n};\n\nconst DEFAULT_MAX_DEPTH = 8;\nconst DEFAULT_USER_TABLE = \"users\";\n\nconst resolveActor = (\n getActorId: NonNullable<CommentsPackConfig[\"getActorId\"]>,\n ctx: unknown,\n): string => {\n const actorId = getActorId(ctx as CollectionContext);\n if (actorId === undefined || actorId === \"\") {\n throw new UnauthorizedError(\"comments mutation (no actor id)\");\n }\n return actorId;\n};\n\n/**\n * Build a {@link SyncPack} that exposes threaded comments. Each call returns\n * a fresh pack with its own store (unless a custom `store` is supplied).\n *\n * The `AuthorRow` generic is only consulted by the\n * `comments-with-author` join collection (when `joinUsers` is set); pass\n * it to recover types for the joined output. With no `joinUsers`, default\n * `unknown` is fine.\n */\nexport const createCommentsPack = <\n Ctx = CollectionContext,\n AuthorRow = unknown,\n>(\n config: CommentsPackConfig<Ctx, AuthorRow>,\n): SyncPack => {\n const prefix = config.prefix ?? \"\";\n const table = `${prefix}comments`;\n const collectionName = table;\n const createMutationName = `${prefix}comments:create`;\n const editMutationName = `${prefix}comments:edit`;\n const deleteMutationName = `${prefix}comments:delete`;\n const maxDepth = config.maxDepth ?? DEFAULT_MAX_DEPTH;\n const store = config.store ?? createInMemoryCommentsStore();\n const now = config.now ?? Date.now;\n const newId = config.newId ?? (() => globalThis.crypto.randomUUID());\n const getActorId = (config.getActorId ??\n ((ctx: CollectionContext) => (ctx as { userId?: string }).userId)) as (\n ctx: CollectionContext,\n ) => string | undefined;\n const canReadResource = config.canReadResource as (\n resourceId: string,\n ctx: CollectionContext,\n ) => boolean;\n const canModerate = (config.canModerate ?? (() => false)) as (\n ctx: CollectionContext,\n ) => boolean;\n\n type Params = { resourceId: string };\n\n const joinUsers = config.joinUsers;\n const userTable = joinUsers?.table ?? DEFAULT_USER_TABLE;\n const joinCollectionName = `${prefix}comments-with-author`;\n const userKey = (joinUsers?.key ??\n ((row: unknown) => (row as { id: string }).id)) as (\n user: unknown,\n ) => string;\n const search = config.search;\n const searchCollectionName = `${prefix}comments-search`;\n const searchTopK = search?.topK ?? 20;\n const reactionsConfig = config.reactions;\n const reactionsTable = `${prefix}comment_reactions`;\n const reactionsCollectionName = reactionsTable;\n const reactMutationName = `${prefix}comments:react`;\n const unreactMutationName = `${prefix}comments:unreact`;\n const toggleReactionMutationName = `${prefix}comments:toggleReaction`;\n const reactionId =\n reactionsConfig?.newId ??\n ((commentId: string, actorId: string, emoji: string) =>\n `${commentId}:${actorId}:${emoji}`);\n const reactionStore = new Map<string, CommentReactionRow>();\n const reactionReader: TableReader<CollectionContext> = {\n all: () => [...reactionStore.values()],\n };\n const reactionWriter: TableWriter<\n CommentReactionRow,\n CollectionContext,\n unknown\n > = {\n delete: (row) => {\n reactionStore.delete((row as { id: string }).id);\n },\n insert: (data) => {\n reactionStore.set(data.id, data);\n return data;\n },\n update: (data) => {\n reactionStore.set(data.id, data);\n return data;\n },\n };\n\n const pack: SyncPack = {\n name: \"@absolutejs/sync-pack-comments\",\n ownsTables:\n reactionsConfig === undefined ? [table] : [table, reactionsTable],\n readsTables: joinUsers === undefined ? [] : [userTable],\n version: \"0.4.0\",\n\n schemas: defineSchema({\n [table]: {\n fields: {\n id: field.string,\n resourceId: field.string,\n parentCommentId: (value) =>\n value === null || typeof value === \"string\",\n authorId: field.string,\n body: field.string,\n depth: field.number,\n createdAt: field.number,\n editedAt: (value) => value === null || typeof value === \"number\",\n },\n },\n }),\n\n readers: { [table]: store.reader },\n writers: { [table]: store.writer },\n\n permissions: {\n [table]: {\n read: (ctx: unknown, row: CommentRow) =>\n canReadResource(row.resourceId, ctx as CollectionContext),\n // The pack's own create handler stamps `authorId` from the\n // resolved actor, so this check passes inside the pack.\n // A host-side `actions.insert(\"comments\", { ... })` that\n // tried to forge an `authorId` would be rejected here.\n insert: (ctx: unknown, row: CommentRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n return callerId !== undefined && row.authorId === callerId;\n },\n // Edits: author only. Same row-level check as insert.\n update: (ctx: unknown, row: CommentRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n return callerId !== undefined && row.authorId === callerId;\n },\n // Deletes: author OR moderator. `actions.delete` may pass\n // the full row or just the key; if `authorId` isn't in the\n // supplied subject we look it up from the store.\n delete: (ctx: unknown, row: CommentRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n if (callerId === undefined) return false;\n const authorId =\n (row as { authorId?: string }).authorId ??\n (() => {\n const id = (row as { id?: string }).id;\n return id === undefined ? undefined : store.getById(id)?.authorId;\n })();\n if (authorId === undefined) return false;\n if (authorId === callerId) return true;\n return canModerate(ctx as CollectionContext);\n },\n },\n },\n\n collections: [\n defineCollection<CommentRow, Params, CollectionContext>({\n name: collectionName,\n tables: [table],\n key: (row) => row.id,\n hydrate: (params, ctx) =>\n (store.reader.all(ctx) as CommentRow[]).filter(\n (row) =>\n row.resourceId === params.resourceId &&\n canReadResource(row.resourceId, ctx),\n ),\n match: (row, params, ctx) =>\n row.resourceId === params.resourceId &&\n canReadResource(row.resourceId, ctx),\n authorize: (params, ctx) => canReadResource(params.resourceId, ctx),\n }),\n ],\n\n mutations: [\n defineMutation<\n {\n resourceId: string;\n body: string;\n parentCommentId?: string | null;\n },\n CollectionContext,\n CommentRow\n >({\n name: createMutationName,\n handler: async (args, ctx, actions) => {\n if (!canReadResource(args.resourceId, ctx)) {\n throw new UnauthorizedError(\n `comments:create on resource \"${args.resourceId}\"`,\n );\n }\n const actorId = resolveActor(getActorId, ctx);\n let depth = 0;\n if (\n args.parentCommentId !== undefined &&\n args.parentCommentId !== null\n ) {\n const parent = store.getById(args.parentCommentId);\n if (parent === undefined || parent.resourceId !== args.resourceId) {\n throw new CommentParentMismatchError(args.parentCommentId);\n }\n depth = parent.depth + 1;\n if (depth > maxDepth) {\n throw new CommentDepthExceededError(maxDepth, depth);\n }\n }\n const row: CommentRow = {\n id: newId(),\n resourceId: args.resourceId,\n parentCommentId: args.parentCommentId ?? null,\n authorId: actorId,\n body: args.body,\n depth,\n createdAt: now(),\n editedAt: null,\n };\n return (await actions.insert(table, row)) as CommentRow;\n },\n }),\n defineMutation<\n { commentId: string; body: string },\n CollectionContext,\n CommentRow\n >({\n name: editMutationName,\n handler: async (args, ctx, actions) => {\n const actorId = resolveActor(getActorId, ctx);\n const existing = store.getById(args.commentId);\n if (existing === undefined) {\n throw new UnauthorizedError(\n `comments:edit on missing comment \"${args.commentId}\"`,\n );\n }\n if (existing.authorId !== actorId) {\n throw new UnauthorizedError(\n `comments:edit on \"${args.commentId}\" (not author)`,\n );\n }\n const updated: CommentRow = {\n ...existing,\n body: args.body,\n editedAt: now(),\n };\n return (await actions.update(table, updated)) as CommentRow;\n },\n }),\n defineMutation<{ commentId: string }, CollectionContext, void>({\n name: deleteMutationName,\n handler: async (args, ctx, actions) => {\n const actorId = resolveActor(getActorId, ctx);\n const existing = store.getById(args.commentId);\n if (existing === undefined) {\n throw new UnauthorizedError(\n `comments:delete on missing comment \"${args.commentId}\"`,\n );\n }\n const isAuthor = existing.authorId === actorId;\n const isModerator = canModerate(ctx);\n if (!isAuthor && !isModerator) {\n throw new UnauthorizedError(\n `comments:delete on \"${args.commentId}\" (not author, not moderator)`,\n );\n }\n await actions.delete(table, { id: args.commentId });\n },\n }),\n ],\n };\n\n if (config.bodyCrdt !== undefined) {\n pack.crdt = { [table]: { body: config.bodyCrdt } };\n }\n\n if (search !== undefined) {\n pack.searchCollections = [\n defineSearchCollection<CommentRow>({\n name: searchCollectionName,\n table,\n index: () =>\n createTextIndex<CommentRow>({\n fields: [\"body\"],\n key: (row) => row.id,\n }),\n key: (row) => row.id,\n limit: searchTopK,\n source: () => store.reader.all({}) as Iterable<CommentRow>,\n }),\n ];\n }\n\n if (joinUsers !== undefined) {\n const usersHydrate = joinUsers.hydrate;\n pack.joinCollections = [\n defineJoinCollection<\n CommentRow,\n unknown,\n CommentWithAuthor,\n Params,\n CollectionContext\n >({\n name: joinCollectionName,\n key: (out) => out.id,\n left: {\n table,\n hydrate: (params, ctx) =>\n (store.reader.all(ctx) as CommentRow[]).filter(\n (row) =>\n row.resourceId === params.resourceId &&\n canReadResource(row.resourceId, ctx),\n ),\n key: (row) => row.id,\n on: (row) => row.authorId,\n // Per-resource read gate, also applied to incoming changes.\n match: (row, params, ctx) =>\n row.resourceId === params.resourceId &&\n canReadResource(row.resourceId, ctx),\n },\n right: {\n table: userTable,\n hydrate: (params, ctx) =>\n usersHydrate(params, ctx as Ctx) as Iterable<unknown>,\n key: (user) => userKey(user),\n on: (user) => userKey(user),\n },\n select: (comment, author) => ({ ...comment, author }),\n authorize: (params, ctx) => canReadResource(params.resourceId, ctx),\n }),\n ];\n }\n\n if (reactionsConfig !== undefined) {\n const allowed = reactionsConfig.allowedEmojis;\n const isAllowed = (emoji: string): boolean =>\n allowed === undefined || allowed.length === 0\n ? true\n : allowed.includes(emoji);\n\n pack.schemas = {\n ...(pack.schemas ?? {}),\n [reactionsTable]: {\n fields: {\n actorId: field.string,\n commentId: field.string,\n createdAt: field.number,\n emoji: field.string,\n id: field.string,\n },\n },\n };\n pack.readers = {\n ...(pack.readers ?? {}),\n [reactionsTable]: reactionReader,\n };\n pack.writers = {\n ...(pack.writers ?? {}),\n [reactionsTable]: reactionWriter,\n };\n pack.permissions = {\n ...(pack.permissions ?? {}),\n [reactionsTable]: {\n // Reactions are visible to anyone who can read the comment's\n // resource. We look the comment up to gate on canReadResource.\n read: (ctx: unknown, row: CommentReactionRow) => {\n const comment = store.getById(row.commentId);\n if (comment === undefined) return false;\n return canReadResource(comment.resourceId, ctx as CollectionContext);\n },\n // Per-row writes: the row's actorId must match the caller.\n insert: (ctx: unknown, row: CommentReactionRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n return callerId !== undefined && row.actorId === callerId;\n },\n update: (ctx: unknown, row: CommentReactionRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n return callerId !== undefined && row.actorId === callerId;\n },\n delete: (ctx: unknown, row: CommentReactionRow) => {\n const callerId = getActorId(ctx as CollectionContext);\n if (callerId === undefined) return false;\n if ((row as { actorId?: string }).actorId !== undefined) {\n return (row as { actorId: string }).actorId === callerId;\n }\n const id = (row as { id?: string }).id;\n if (id === undefined) return false;\n return reactionStore.get(id)?.actorId === callerId;\n },\n },\n };\n\n pack.collections = [\n ...(pack.collections ?? []),\n defineCollection<\n CommentReactionRow,\n { commentId: string },\n CollectionContext\n >({\n name: reactionsCollectionName,\n tables: [reactionsTable],\n key: (row) => row.id,\n hydrate: (params, ctx) => {\n const comment = store.getById(params.commentId);\n if (\n comment === undefined ||\n !canReadResource(comment.resourceId, ctx)\n ) {\n return [];\n }\n return (reactionReader.all(ctx) as CommentReactionRow[]).filter(\n (row) => row.commentId === params.commentId,\n );\n },\n match: (row, params, ctx) => {\n if (row.commentId !== params.commentId) return false;\n const comment = store.getById(params.commentId);\n return (\n comment !== undefined && canReadResource(comment.resourceId, ctx)\n );\n },\n authorize: (params, ctx) => {\n const comment = store.getById(params.commentId);\n return (\n comment !== undefined && canReadResource(comment.resourceId, ctx)\n );\n },\n }),\n ];\n\n pack.mutations = [\n ...(pack.mutations ?? []),\n defineMutation<\n { commentId: string; emoji: string },\n CollectionContext,\n CommentReactionRow\n >({\n name: reactMutationName,\n handler: async (args, ctx, actions) => {\n if (!isAllowed(args.emoji)) {\n throw new CommentReactionNotAllowedError(args.emoji);\n }\n const actorId = resolveActor(getActorId, ctx);\n const comment = store.getById(args.commentId);\n if (comment === undefined) {\n throw new UnauthorizedError(\n `comments:react on missing comment \"${args.commentId}\"`,\n );\n }\n if (!canReadResource(comment.resourceId, ctx)) {\n throw new UnauthorizedError(\n `comments:react on comment \"${args.commentId}\" (no read access)`,\n );\n }\n const id = reactionId(args.commentId, actorId, args.emoji);\n const existing = reactionStore.get(id);\n if (existing !== undefined) return existing;\n const row: CommentReactionRow = {\n actorId,\n commentId: args.commentId,\n createdAt: now(),\n emoji: args.emoji,\n id,\n };\n return (await actions.insert(\n reactionsTable,\n row,\n )) as CommentReactionRow;\n },\n }),\n defineMutation<\n { commentId: string; emoji: string },\n CollectionContext,\n void\n >({\n name: unreactMutationName,\n handler: async (args, ctx, actions) => {\n const actorId = resolveActor(getActorId, ctx);\n const id = reactionId(args.commentId, actorId, args.emoji);\n if (reactionStore.get(id) === undefined) return;\n await actions.delete(reactionsTable, { id });\n },\n }),\n defineMutation<\n { commentId: string; emoji: string },\n CollectionContext,\n { reacted: boolean }\n >({\n name: toggleReactionMutationName,\n handler: async (args, ctx, actions) => {\n if (!isAllowed(args.emoji)) {\n throw new CommentReactionNotAllowedError(args.emoji);\n }\n const actorId = resolveActor(getActorId, ctx);\n const comment = store.getById(args.commentId);\n if (comment === undefined) {\n throw new UnauthorizedError(\n `comments:toggleReaction on missing comment \"${args.commentId}\"`,\n );\n }\n if (!canReadResource(comment.resourceId, ctx)) {\n throw new UnauthorizedError(\n `comments:toggleReaction on comment \"${args.commentId}\" (no read access)`,\n );\n }\n const id = reactionId(args.commentId, actorId, args.emoji);\n const existing = reactionStore.get(id);\n if (existing === undefined) {\n const row: CommentReactionRow = {\n actorId,\n commentId: args.commentId,\n createdAt: now(),\n emoji: args.emoji,\n id,\n };\n await actions.insert(reactionsTable, row);\n return { reacted: true };\n }\n await actions.delete(reactionsTable, { id });\n return { reacted: false };\n },\n }),\n ];\n }\n\n return defineSyncPack(pack);\n};\n\nexport * from \"./persistent\";\n",
6
+ "import {\n defineSyncPack,\n defineCollection,\n defineMutation,\n UnauthorizedError,\n type SyncPack,\n} from \"@absolutejs/sync/engine\";\n\nexport type CommentLink = { label: string; url: string };\nexport type PersistentComment = {\n id: string;\n resourceId: string;\n authorId: string;\n body: string;\n mentions: string[];\n links: CommentLink[];\n createdAt: number;\n};\nexport type CommentDraft = {\n resourceId: string;\n body: string;\n mentions?: string[];\n links?: CommentLink[];\n};\ntype Awaitable<T> = T | Promise<T>;\nexport type PersistentCommentsConfig<Ctx, Tx = unknown> = {\n /** The same name as the persistent table, so revision sources invalidate it. */\n table: string;\n /** Permission changes must invalidate existing subscribers too. */\n dependencies?: string[];\n getActorId: (ctx: Ctx) => Awaitable<string | undefined>;\n canReadResource: (id: string, ctx: Ctx) => Awaitable<boolean>;\n canWriteResource: (id: string, ctx: Ctx) => Awaitable<boolean>;\n canMention: (\n actorId: string,\n resourceId: string,\n ctx: Ctx,\n ) => Awaitable<boolean>;\n store: {\n list: (resourceId: string, ctx: Ctx) => Awaitable<PersistentComment[]>;\n /** Use the supplied engine transaction, including any audit or outbox writes. */\n insert: (\n row: PersistentComment,\n ctx: Ctx,\n tx: Tx,\n ) => Awaitable<PersistentComment>;\n };\n};\nexport function validateCommentDraft(value: unknown): Required<CommentDraft> {\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n throw Error(\"Invalid comment\");\n const data = value as CommentDraft;\n if (\n Object.keys(data).some(\n (k) => ![\"resourceId\", \"body\", \"mentions\", \"links\"].includes(k),\n ) ||\n typeof data.resourceId !== \"string\" ||\n !data.resourceId ||\n data.resourceId.length > 200 ||\n typeof data.body !== \"string\" ||\n data.body.length > 10000\n )\n throw Error(\"Invalid comment\");\n const mentions = data.mentions ?? [],\n links = data.links ?? [];\n if (\n !Array.isArray(mentions) ||\n mentions.length > 50 ||\n mentions.some((m) => typeof m !== \"string\" || !m || m.length > 500) ||\n !Array.isArray(links) ||\n links.length > 10\n )\n throw Error(\"Invalid comment metadata\");\n const safeLinks = links.map((link) => {\n if (\n !link ||\n typeof link.label !== \"string\" ||\n link.label.length > 200 ||\n typeof link.url !== \"string\" ||\n link.url.length > 2000 ||\n Object.keys(link).some((k) => ![\"label\", \"url\"].includes(k))\n )\n throw Error(\"Invalid comment link\");\n let url: URL;\n try {\n url = new URL(link.url);\n } catch {\n throw Error(\"Invalid comment link\");\n }\n if (url.protocol !== \"https:\" || url.username || url.password)\n throw Error(\"Invalid comment link: use an HTTPS URL without credentials\");\n return { label: link.label.trim() || url.hostname, url: url.href };\n });\n if (!data.body.trim() && !safeLinks.length)\n throw Error(\"Invalid comment: enter text or a supporting link\");\n return {\n resourceId: data.resourceId,\n body: data.body.trim(),\n mentions: [...new Set(mentions)],\n links: safeLinks,\n };\n}\n/** Append-only, persistent collaboration stream. Async ACLs are checked before\n * receipt replay and again at the writer boundary. Actor and time are trusted. */\nexport function createPersistentCommentsPack<Ctx, Tx = unknown>(\n config: PersistentCommentsConfig<Ctx, Tx>,\n): SyncPack {\n const { table } = config;\n const allowed = async (id: string, ctx: Ctx) =>\n !!(await config.getActorId(ctx)) &&\n (await config.canReadResource(id, ctx)) &&\n (await config.canWriteResource(id, ctx));\n return defineSyncPack({\n name: \"@absolutejs/sync-pack-comments/persistent\",\n version: \"0.7.0\",\n ownsTables: [table],\n readsTables: config.dependencies ?? [],\n writers: {\n [table]: {\n insert: async (value: PersistentComment, raw: unknown, tx: unknown) => {\n const ctx = raw as Ctx;\n if (\n !(await allowed(value.resourceId, ctx)) ||\n value.authorId !== (await config.getActorId(ctx))\n )\n throw new UnauthorizedError(\"comment write\");\n const draft = validateCommentDraft({\n resourceId: value.resourceId,\n body: value.body,\n mentions: value.mentions,\n links: value.links,\n });\n for (const actor of draft.mentions)\n if (!(await config.canMention(actor, draft.resourceId, ctx)))\n throw Error(\n \"Invalid comment mention: recipient must have resource access\",\n );\n return config.store.insert({ ...value, ...draft }, ctx, tx as Tx);\n },\n update: () => {\n throw Error(\"Comment streams are append-only\");\n },\n delete: () => {\n throw Error(\"Comment streams are append-only\");\n },\n },\n },\n collections: [\n defineCollection<PersistentComment, { resourceId: string }, Ctx>({\n name: table,\n tables: [table, ...(config.dependencies ?? [])],\n key: (row) => row.id,\n authorize: async (params, ctx) =>\n typeof params?.resourceId === \"string\" &&\n (await config.canReadResource(params.resourceId, ctx)),\n hydrate: async (params, ctx) =>\n (await config.canReadResource(params.resourceId, ctx))\n ? (await config.store.list(params.resourceId, ctx)).filter(\n (row) => row.resourceId === params.resourceId,\n )\n : [],\n }),\n ],\n mutations: [\n defineMutation<CommentDraft, Ctx, PersistentComment>({\n name: table + \":create\",\n authorize: async (args, ctx) =>\n typeof args?.resourceId === \"string\" &&\n (await allowed(args.resourceId, ctx)),\n handler: async (args, ctx, actions) => {\n const draft = validateCommentDraft(args);\n const authorId = await config.getActorId(ctx);\n if (!authorId || !(await allowed(draft.resourceId, ctx)))\n throw new UnauthorizedError(\"comment write\");\n return (await actions.insert(table, {\n ...draft,\n id: crypto.randomUUID(),\n authorId,\n createdAt: Date.now(),\n })) as PersistentComment;\n },\n }),\n ],\n });\n}\n"
6
7
  ],
7
- "mappings": "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",
8
- "debugId": "041BEB316C29DEDC64756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "3D784B89104BF86F64756E2164756E21",
9
10
  "names": []
10
11
  }
package/dist/manifest.js CHANGED
@@ -63,22 +63,22 @@ var TypeSystemPolicy;
63
63
  // ../node_modules/.bun/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs
64
64
  var exports_value = {};
65
65
  __export(exports_value, {
66
- IsUndefined: () => IsUndefined2,
67
- IsUint8Array: () => IsUint8Array,
68
- IsSymbol: () => IsSymbol,
69
- IsString: () => IsString,
70
- IsRegExp: () => IsRegExp,
71
- IsObject: () => IsObject2,
72
- IsNumber: () => IsNumber2,
73
- IsNull: () => IsNull,
74
- IsIterator: () => IsIterator,
75
- IsFunction: () => IsFunction,
76
- IsDate: () => IsDate,
77
- IsBoolean: () => IsBoolean,
78
- IsBigInt: () => IsBigInt,
79
- IsAsyncIterator: () => IsAsyncIterator,
66
+ HasPropertyKey: () => HasPropertyKey,
80
67
  IsArray: () => IsArray2,
81
- HasPropertyKey: () => HasPropertyKey
68
+ IsAsyncIterator: () => IsAsyncIterator,
69
+ IsBigInt: () => IsBigInt,
70
+ IsBoolean: () => IsBoolean,
71
+ IsDate: () => IsDate,
72
+ IsFunction: () => IsFunction,
73
+ IsIterator: () => IsIterator,
74
+ IsNull: () => IsNull,
75
+ IsNumber: () => IsNumber2,
76
+ IsObject: () => IsObject2,
77
+ IsRegExp: () => IsRegExp,
78
+ IsString: () => IsString,
79
+ IsSymbol: () => IsSymbol,
80
+ IsUint8Array: () => IsUint8Array,
81
+ IsUndefined: () => IsUndefined2
82
82
  });
83
83
  function HasPropertyKey(value, key) {
84
84
  return key in value;
@@ -1097,57 +1097,57 @@ function Unknown(options) {
1097
1097
  // ../node_modules/.bun/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/guard/type.mjs
1098
1098
  var exports_type = {};
1099
1099
  __export(exports_type, {
1100
- TypeGuardUnknownTypeError: () => TypeGuardUnknownTypeError,
1101
- IsVoid: () => IsVoid2,
1102
- IsUnsafe: () => IsUnsafe2,
1103
- IsUnknown: () => IsUnknown2,
1104
- IsUnionLiteral: () => IsUnionLiteral,
1105
- IsUnion: () => IsUnion2,
1106
- IsUndefined: () => IsUndefined4,
1107
- IsUint8Array: () => IsUint8Array3,
1108
- IsTuple: () => IsTuple2,
1109
- IsTransform: () => IsTransform2,
1110
- IsThis: () => IsThis2,
1111
- IsTemplateLiteral: () => IsTemplateLiteral2,
1112
- IsSymbol: () => IsSymbol3,
1113
- IsString: () => IsString3,
1114
- IsSchema: () => IsSchema2,
1115
- IsRegExp: () => IsRegExp3,
1116
- IsRef: () => IsRef2,
1117
- IsRecursive: () => IsRecursive,
1118
- IsRecord: () => IsRecord2,
1119
- IsReadonly: () => IsReadonly2,
1120
- IsProperties: () => IsProperties,
1121
- IsPromise: () => IsPromise2,
1122
- IsOptional: () => IsOptional2,
1123
- IsObject: () => IsObject4,
1124
- IsNumber: () => IsNumber4,
1125
- IsNull: () => IsNull3,
1126
- IsNot: () => IsNot2,
1127
- IsNever: () => IsNever2,
1128
- IsMappedResult: () => IsMappedResult2,
1129
- IsMappedKey: () => IsMappedKey2,
1130
- IsLiteralValue: () => IsLiteralValue2,
1131
- IsLiteralString: () => IsLiteralString,
1132
- IsLiteralNumber: () => IsLiteralNumber,
1133
- IsLiteralBoolean: () => IsLiteralBoolean,
1134
- IsLiteral: () => IsLiteral2,
1135
- IsKindOf: () => IsKindOf2,
1136
- IsKind: () => IsKind2,
1137
- IsIterator: () => IsIterator3,
1138
- IsIntersect: () => IsIntersect2,
1139
- IsInteger: () => IsInteger2,
1140
- IsImport: () => IsImport,
1141
- IsFunction: () => IsFunction3,
1142
- IsDate: () => IsDate3,
1143
- IsConstructor: () => IsConstructor2,
1144
- IsComputed: () => IsComputed2,
1145
- IsBoolean: () => IsBoolean3,
1146
- IsBigInt: () => IsBigInt3,
1147
- IsAsyncIterator: () => IsAsyncIterator3,
1148
- IsArray: () => IsArray4,
1100
+ IsAny: () => IsAny2,
1149
1101
  IsArgument: () => IsArgument2,
1150
- IsAny: () => IsAny2
1102
+ IsArray: () => IsArray4,
1103
+ IsAsyncIterator: () => IsAsyncIterator3,
1104
+ IsBigInt: () => IsBigInt3,
1105
+ IsBoolean: () => IsBoolean3,
1106
+ IsComputed: () => IsComputed2,
1107
+ IsConstructor: () => IsConstructor2,
1108
+ IsDate: () => IsDate3,
1109
+ IsFunction: () => IsFunction3,
1110
+ IsImport: () => IsImport,
1111
+ IsInteger: () => IsInteger2,
1112
+ IsIntersect: () => IsIntersect2,
1113
+ IsIterator: () => IsIterator3,
1114
+ IsKind: () => IsKind2,
1115
+ IsKindOf: () => IsKindOf2,
1116
+ IsLiteral: () => IsLiteral2,
1117
+ IsLiteralBoolean: () => IsLiteralBoolean,
1118
+ IsLiteralNumber: () => IsLiteralNumber,
1119
+ IsLiteralString: () => IsLiteralString,
1120
+ IsLiteralValue: () => IsLiteralValue2,
1121
+ IsMappedKey: () => IsMappedKey2,
1122
+ IsMappedResult: () => IsMappedResult2,
1123
+ IsNever: () => IsNever2,
1124
+ IsNot: () => IsNot2,
1125
+ IsNull: () => IsNull3,
1126
+ IsNumber: () => IsNumber4,
1127
+ IsObject: () => IsObject4,
1128
+ IsOptional: () => IsOptional2,
1129
+ IsPromise: () => IsPromise2,
1130
+ IsProperties: () => IsProperties,
1131
+ IsReadonly: () => IsReadonly2,
1132
+ IsRecord: () => IsRecord2,
1133
+ IsRecursive: () => IsRecursive,
1134
+ IsRef: () => IsRef2,
1135
+ IsRegExp: () => IsRegExp3,
1136
+ IsSchema: () => IsSchema2,
1137
+ IsString: () => IsString3,
1138
+ IsSymbol: () => IsSymbol3,
1139
+ IsTemplateLiteral: () => IsTemplateLiteral2,
1140
+ IsThis: () => IsThis2,
1141
+ IsTransform: () => IsTransform2,
1142
+ IsTuple: () => IsTuple2,
1143
+ IsUint8Array: () => IsUint8Array3,
1144
+ IsUndefined: () => IsUndefined4,
1145
+ IsUnion: () => IsUnion2,
1146
+ IsUnionLiteral: () => IsUnionLiteral,
1147
+ IsUnknown: () => IsUnknown2,
1148
+ IsUnsafe: () => IsUnsafe2,
1149
+ IsVoid: () => IsVoid2,
1150
+ TypeGuardUnknownTypeError: () => TypeGuardUnknownTypeError
1151
1151
  });
1152
1152
  class TypeGuardUnknownTypeError extends TypeBoxError {
1153
1153
  }
@@ -2498,68 +2498,68 @@ function Void(options) {
2498
2498
  // ../node_modules/.bun/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/type/type.mjs
2499
2499
  var exports_type2 = {};
2500
2500
  __export(exports_type2, {
2501
- Void: () => Void,
2502
- Uppercase: () => Uppercase,
2503
- Unsafe: () => Unsafe,
2504
- Unknown: () => Unknown,
2505
- Union: () => Union,
2506
- Undefined: () => Undefined,
2507
- Uncapitalize: () => Uncapitalize,
2508
- Uint8Array: () => Uint8Array2,
2509
- Tuple: () => Tuple,
2510
- Transform: () => Transform,
2511
- TemplateLiteral: () => TemplateLiteral,
2512
- Symbol: () => Symbol2,
2513
- String: () => String2,
2514
- ReturnType: () => ReturnType,
2515
- Rest: () => Rest,
2516
- Required: () => Required,
2517
- RegExp: () => RegExp2,
2518
- Ref: () => Ref,
2519
- Recursive: () => Recursive,
2520
- Record: () => Record,
2521
- ReadonlyOptional: () => ReadonlyOptional,
2522
- Readonly: () => Readonly,
2523
- Promise: () => Promise2,
2524
- Pick: () => Pick,
2525
- Partial: () => Partial,
2526
- Parameters: () => Parameters,
2527
- Optional: () => Optional,
2528
- Omit: () => Omit,
2529
- Object: () => Object2,
2530
- Number: () => Number2,
2531
- Null: () => Null,
2532
- Not: () => Not,
2533
- Never: () => Never,
2534
- Module: () => Module,
2535
- Mapped: () => Mapped,
2536
- Lowercase: () => Lowercase,
2537
- Literal: () => Literal,
2538
- KeyOf: () => KeyOf,
2539
- Iterator: () => Iterator,
2540
- Intersect: () => Intersect,
2541
- Integer: () => Integer,
2542
- Instantiate: () => Instantiate,
2543
- InstanceType: () => InstanceType,
2544
- Index: () => Index,
2545
- Function: () => Function,
2546
- Extract: () => Extract,
2547
- Extends: () => Extends,
2548
- Exclude: () => Exclude,
2549
- Enum: () => Enum,
2550
- Date: () => Date2,
2551
- ConstructorParameters: () => ConstructorParameters,
2552
- Constructor: () => Constructor,
2553
- Const: () => Const,
2554
- Composite: () => Composite,
2555
- Capitalize: () => Capitalize,
2556
- Boolean: () => Boolean2,
2557
- BigInt: () => BigInt,
2558
- Awaited: () => Awaited,
2559
- AsyncIterator: () => AsyncIterator,
2560
- Array: () => Array2,
2501
+ Any: () => Any,
2561
2502
  Argument: () => Argument,
2562
- Any: () => Any
2503
+ Array: () => Array2,
2504
+ AsyncIterator: () => AsyncIterator,
2505
+ Awaited: () => Awaited,
2506
+ BigInt: () => BigInt,
2507
+ Boolean: () => Boolean2,
2508
+ Capitalize: () => Capitalize,
2509
+ Composite: () => Composite,
2510
+ Const: () => Const,
2511
+ Constructor: () => Constructor,
2512
+ ConstructorParameters: () => ConstructorParameters,
2513
+ Date: () => Date2,
2514
+ Enum: () => Enum,
2515
+ Exclude: () => Exclude,
2516
+ Extends: () => Extends,
2517
+ Extract: () => Extract,
2518
+ Function: () => Function,
2519
+ Index: () => Index,
2520
+ InstanceType: () => InstanceType,
2521
+ Instantiate: () => Instantiate,
2522
+ Integer: () => Integer,
2523
+ Intersect: () => Intersect,
2524
+ Iterator: () => Iterator,
2525
+ KeyOf: () => KeyOf,
2526
+ Literal: () => Literal,
2527
+ Lowercase: () => Lowercase,
2528
+ Mapped: () => Mapped,
2529
+ Module: () => Module,
2530
+ Never: () => Never,
2531
+ Not: () => Not,
2532
+ Null: () => Null,
2533
+ Number: () => Number2,
2534
+ Object: () => Object2,
2535
+ Omit: () => Omit,
2536
+ Optional: () => Optional,
2537
+ Parameters: () => Parameters,
2538
+ Partial: () => Partial,
2539
+ Pick: () => Pick,
2540
+ Promise: () => Promise2,
2541
+ Readonly: () => Readonly,
2542
+ ReadonlyOptional: () => ReadonlyOptional,
2543
+ Record: () => Record,
2544
+ Recursive: () => Recursive,
2545
+ Ref: () => Ref,
2546
+ RegExp: () => RegExp2,
2547
+ Required: () => Required,
2548
+ Rest: () => Rest,
2549
+ ReturnType: () => ReturnType,
2550
+ String: () => String2,
2551
+ Symbol: () => Symbol2,
2552
+ TemplateLiteral: () => TemplateLiteral,
2553
+ Transform: () => Transform,
2554
+ Tuple: () => Tuple,
2555
+ Uint8Array: () => Uint8Array2,
2556
+ Uncapitalize: () => Uncapitalize,
2557
+ Undefined: () => Undefined,
2558
+ Union: () => Union,
2559
+ Unknown: () => Unknown,
2560
+ Unsafe: () => Unsafe,
2561
+ Uppercase: () => Uppercase,
2562
+ Void: () => Void
2563
2563
  });
2564
2564
 
2565
2565
  // ../node_modules/.bun/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/type/index.mjs
@@ -2960,5 +2960,5 @@ export {
2960
2960
  manifest
2961
2961
  };
2962
2962
 
2963
- //# debugId=5A2FC8E934BBE6CE64756E2164756E21
2963
+ //# debugId=C388323DD66FC3AC64756E2164756E21
2964
2964
  //# sourceMappingURL=manifest.js.map
@@ -118,6 +118,6 @@
118
118
  "import { defineManifest, toolFactory } from \"@absolutejs/manifest\";\nimport type { SyncPack } from \"@absolutejs/sync/engine\";\nimport { Type } from \"@sinclair/typebox\";\nimport type { CommentsPackConfig } from \"./index\";\n\nconst tool = toolFactory<SyncPack>();\n\n/* Serializable subset of CommentsPackConfig: prefix, maxDepth, and the\n * reactions / search feature blocks. getActorId / canReadResource /\n * canModerate / store / now / newId / joinUsers are function-or-instance-\n * valued → wiring concerns; bodyCrdt is the sync/crdt-adapter slot. */\nexport const manifest = defineManifest<CommentsPackConfig, SyncPack>()({\n contract: 2,\n identity: {\n accent: \"#f59e0b\",\n category: \"sync\",\n description:\n \"Threaded comments pack for `@absolutejs/sync` — one `engine.registerPack(createCommentsPack(...))` adds per-resource comment threads with author/moderator delete gates, the host’s own ACL injected via `canReadResource`, optional emoji reactions, optional live full-text search over bodies, an optional author-join collection, and optional CRDT comment bodies (concurrent edits merge instead of clobbering).\",\n docsUrl: \"https://github.com/absolutejs/sync-packs/tree/main/comments\",\n name: \"@absolutejs/sync-pack-comments\",\n tagline: \"Let people comment on anything — threads, live.\",\n },\n settings: Type.Object({\n maxDepth: Type.Optional(\n Type.Integer({\n description:\n \"How deep reply threads can nest (top level is 0). Default 8.\",\n minimum: 0,\n title: \"Reply depth limit\",\n }),\n ),\n prefix: Type.Optional(\n Type.String({\n description:\n \"Name prefix for the pack’s tables, collections, and mutations — set one when running several comments packs on the same engine.\",\n title: \"Name prefix\",\n }),\n ),\n reactions: Type.Optional(\n Type.Object(\n {\n allowedEmojis: Type.Optional(\n Type.Array(Type.String(), {\n description:\n \"Which emojis people can react with. Leave empty to allow any.\",\n title: \"Allowed emojis\",\n }),\n ),\n },\n {\n description:\n \"Turn on emoji reactions: one tap per person per emoji per comment, live counts.\",\n title: \"Reactions\",\n },\n ),\n ),\n search: Type.Optional(\n Type.Object(\n {\n topK: Type.Optional(\n Type.Integer({\n description: \"How many best-matching comments a search returns.\",\n minimum: 1,\n title: \"Results per search\",\n }),\n ),\n },\n {\n description:\n \"Turn on live full-text search over comment bodies — results re-rank as comments change.\",\n title: \"Comment search\",\n },\n ),\n ),\n }),\n slots: {\n bodyCrdt: {\n configPath: \"bodyCrdt\",\n contract: \"sync/crdt-adapter\",\n description:\n \"Optional: merge simultaneous edits to a comment body instead of overwriting\",\n known: [\n \"@absolutejs/sync#rga-text\",\n \"@absolutejs/sync-yjs\",\n \"@absolutejs/sync-automerge\",\n \"@absolutejs/sync-loro\",\n ],\n },\n },\n tools: {\n pack_surface: tool.runtime({\n annotations: { readOnlyHint: true },\n authorization: {\n approval: \"never\",\n audience: \"owner\",\n effects: [\"read\"],\n requiredScopes: [\"sync:packs:read\"],\n },\n description:\n \"What this comments pack adds to the sync engine: owned tables, read tables (author join), collections (including search/join), and mutations.\",\n handler: (_input, pack) =>\n JSON.stringify({\n collections: [\n ...(pack.collections ?? []).map((collection) => collection.name),\n ...(pack.joinCollections ?? []).map(\n (collection) => collection.name,\n ),\n ...(pack.searchCollections ?? []).map(\n (collection) => collection.name,\n ),\n ],\n mutations: (pack.mutations ?? []).map((mutation) => mutation.name),\n name: pack.name,\n ownsTables: pack.ownsTables,\n readsTables: pack.readsTables ?? [],\n version: pack.version,\n }),\n input: Type.Object({}),\n }),\n },\n wiring: [\n {\n description:\n \"Rides @absolutejs/sync’s engine recipe: `engine` is its module-scope binding. The host’s ACL gates every read — the pack never duplicates it.\",\n id: \"default\",\n server: {\n code: [\n \"engine.registerPack(createCommentsPack({\",\n \"\\tbodyCrdt: ${slot.bodyCrdt},\",\n \"\\t// TODO: your ACL — who can read comments on this resource?\",\n \"\\tcanReadResource: (resourceId, ctx) => true,\",\n \"\\t// getActorId defaults to (ctx) => ctx.userId; add canModerate for\",\n \"\\t// admin deletes and joinUsers for a comments-with-author collection.\",\n \"\\t...${settings}\",\n \"}));\",\n ].join(\"\\n\"),\n imports: [\n {\n from: \"@absolutejs/sync-pack-comments\",\n names: [\"createCommentsPack\"],\n },\n ],\n placement: \"module-scope\",\n },\n title: \"Register threaded comments on the sync engine\",\n },\n ],\n});\n"
119
119
  ],
120
120
  "mappings": "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",
121
- "debugId": "5A2FC8E934BBE6CE64756E2164756E21",
121
+ "debugId": "C388323DD66FC3AC64756E2164756E21",
122
122
  "names": []
123
123
  }
@@ -0,0 +1,41 @@
1
+ import { type SyncPack } from "@absolutejs/sync/engine";
2
+ export type CommentLink = {
3
+ label: string;
4
+ url: string;
5
+ };
6
+ export type PersistentComment = {
7
+ id: string;
8
+ resourceId: string;
9
+ authorId: string;
10
+ body: string;
11
+ mentions: string[];
12
+ links: CommentLink[];
13
+ createdAt: number;
14
+ };
15
+ export type CommentDraft = {
16
+ resourceId: string;
17
+ body: string;
18
+ mentions?: string[];
19
+ links?: CommentLink[];
20
+ };
21
+ type Awaitable<T> = T | Promise<T>;
22
+ export type PersistentCommentsConfig<Ctx, Tx = unknown> = {
23
+ /** The same name as the persistent table, so revision sources invalidate it. */
24
+ table: string;
25
+ /** Permission changes must invalidate existing subscribers too. */
26
+ dependencies?: string[];
27
+ getActorId: (ctx: Ctx) => Awaitable<string | undefined>;
28
+ canReadResource: (id: string, ctx: Ctx) => Awaitable<boolean>;
29
+ canWriteResource: (id: string, ctx: Ctx) => Awaitable<boolean>;
30
+ canMention: (actorId: string, resourceId: string, ctx: Ctx) => Awaitable<boolean>;
31
+ store: {
32
+ list: (resourceId: string, ctx: Ctx) => Awaitable<PersistentComment[]>;
33
+ /** Use the supplied engine transaction, including any audit or outbox writes. */
34
+ insert: (row: PersistentComment, ctx: Ctx, tx: Tx) => Awaitable<PersistentComment>;
35
+ };
36
+ };
37
+ export declare function validateCommentDraft(value: unknown): Required<CommentDraft>;
38
+ /** Append-only, persistent collaboration stream. Async ACLs are checked before
39
+ * receipt replay and again at the writer boundary. Actor and time are trusted. */
40
+ export declare function createPersistentCommentsPack<Ctx, Tx = unknown>(config: PersistentCommentsConfig<Ctx, Tx>): SyncPack;
41
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolutejs/sync-pack-comments",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "description": "Threaded comments pack for @absolutejs/sync — per-resource ACL-scoped, author/moderator gates, optional CRDT bodies",
5
5
  "repository": {
6
6
  "type": "git",
@@ -39,7 +39,7 @@
39
39
  "@absolutejs/sync": ">=2.11.0 <3"
40
40
  },
41
41
  "devDependencies": {
42
- "@absolutejs/sync": "2.28.0",
42
+ "@absolutejs/sync": "2.29.0",
43
43
  "@types/bun": "1.3.14",
44
44
  "prettier": "3.5.3",
45
45
  "typescript": "5.8.3"
@@ -81,7 +81,10 @@
81
81
  "match": "*comment*",
82
82
  "sensitivity": "private",
83
83
  "protection": "required",
84
- "onProtectionUnavailable": "memory-only"
84
+ "onProtectionUnavailable": "memory-only",
85
+ "conflict": {
86
+ "strategy": "manual"
87
+ }
85
88
  }
86
89
  ]
87
90
  }