@kernhq/module-quire 0.3.1 → 0.4.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 (57) hide show
  1. package/dist/contract/events.d.ts +5 -0
  2. package/dist/contract/events.d.ts.map +1 -1
  3. package/dist/contract/events.js +1 -0
  4. package/dist/contract/events.js.map +1 -1
  5. package/dist/contract/index.d.ts +1 -0
  6. package/dist/contract/index.d.ts.map +1 -1
  7. package/dist/contract/index.js +1 -0
  8. package/dist/contract/index.js.map +1 -1
  9. package/dist/contract/models.d.ts +82 -0
  10. package/dist/contract/models.d.ts.map +1 -1
  11. package/dist/contract/models.js +41 -0
  12. package/dist/contract/models.js.map +1 -1
  13. package/dist/contract/notifications.d.ts +9 -0
  14. package/dist/contract/notifications.d.ts.map +1 -0
  15. package/dist/contract/notifications.js +16 -0
  16. package/dist/contract/notifications.js.map +1 -0
  17. package/dist/contract/permissions.d.ts +7 -0
  18. package/dist/contract/permissions.d.ts.map +1 -1
  19. package/dist/contract/permissions.js +8 -0
  20. package/dist/contract/permissions.js.map +1 -1
  21. package/dist/contract/router.d.ts +270 -0
  22. package/dist/contract/router.d.ts.map +1 -1
  23. package/dist/contract/router.js +33 -1
  24. package/dist/contract/router.js.map +1 -1
  25. package/dist/server/_impl.d.ts +303 -0
  26. package/dist/server/_impl.d.ts.map +1 -1
  27. package/dist/server/_impl.js +55 -0
  28. package/dist/server/_impl.js.map +1 -1
  29. package/dist/server/index.d.ts.map +1 -1
  30. package/dist/server/index.js +132 -3
  31. package/dist/server/index.js.map +1 -1
  32. package/dist/server/schema.d.ts +335 -1
  33. package/dist/server/schema.d.ts.map +1 -1
  34. package/dist/server/schema.js +44 -2
  35. package/dist/server/schema.js.map +1 -1
  36. package/dist/server/services/comments.d.ts +172 -0
  37. package/dist/server/services/comments.d.ts.map +1 -0
  38. package/dist/server/services/comments.js +182 -0
  39. package/dist/server/services/comments.js.map +1 -0
  40. package/dist/server/services/index.d.ts +3 -0
  41. package/dist/server/services/index.d.ts.map +1 -1
  42. package/dist/server/services/index.js +3 -0
  43. package/dist/server/services/index.js.map +1 -1
  44. package/dist/server/services/notify.d.ts +24 -0
  45. package/dist/server/services/notify.d.ts.map +1 -0
  46. package/dist/server/services/notify.js +54 -0
  47. package/dist/server/services/notify.js.map +1 -0
  48. package/migrations/0003_comments.sql +30 -0
  49. package/migrations/meta/0003_snapshot.json +668 -0
  50. package/migrations/meta/_journal.json +7 -0
  51. package/package.json +1 -1
  52. package/src/contract/events.ts +4 -0
  53. package/src/contract/index.ts +1 -0
  54. package/src/contract/models.ts +48 -0
  55. package/src/contract/notifications.ts +17 -0
  56. package/src/contract/permissions.ts +8 -0
  57. package/src/contract/router.ts +47 -1
@@ -58,6 +58,11 @@ export declare const quireEvents: {
58
58
  workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
59
59
  versionId: z.ZodUUID;
60
60
  }, z.core.$strip>>;
61
+ readonly commentCreated: import("@kernhq/contracts").EventDef<"quire.comment.created", z.ZodObject<{
62
+ commentId: z.ZodUUID;
63
+ pageId: z.ZodUUID;
64
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
65
+ }, z.core.$strip>>;
61
66
  /** The page and its descendants are gone; anything holding a reference should drop it. */
62
67
  readonly pageDeleted: import("@kernhq/contracts").EventDef<"quire.page.deleted", z.ZodObject<{
63
68
  pageId: z.ZodUUID;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/contract/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,8EAA8E;AAC9E,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkBtB,0FAA0F;;;;;;;CAElF,CAAA"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/contract/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,8EAA8E;AAC9E,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBtB,0FAA0F;;;;;;;CAElF,CAAA"}
@@ -14,6 +14,7 @@ export const quireEvents = {
14
14
  pageRestored: defineEvent('quire.page.restored', page),
15
15
  pagePublished: defineEvent('quire.page.published', page.extend({ versionId: Id })),
16
16
  pageRestoredVersion: defineEvent('quire.page.restored_version', z.object({ pageId: Id, workspaceId: WorkspaceId, versionId: Id })),
17
+ commentCreated: defineEvent('quire.comment.created', z.object({ commentId: Id, pageId: Id, workspaceId: WorkspaceId })),
17
18
  /** The page and its descendants are gone; anything holding a reference should drop it. */
18
19
  pageDeleted: defineEvent('quire.page.deleted', page.extend({ pageIds: z.array(Id) })),
19
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/contract/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;AAE5E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;IACrG,YAAY,EAAE,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;IACrG,aAAa,EAAE,WAAW,CACxB,sBAAsB,EACtB,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC3E;IACD,WAAW,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC;IACpD,WAAW,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC;IACpD,SAAS,EAAE,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpF,YAAY,EAAE,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxF,WAAW,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACtG,YAAY,EAAE,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC;IACtD,aAAa,EAAE,WAAW,CAAC,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAClF,mBAAmB,EAAE,WAAW,CAC9B,6BAA6B,EAC7B,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAClE;IACD,0FAA0F;IAC1F,WAAW,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAC7E,CAAA"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/contract/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;AAE5E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;IACrG,YAAY,EAAE,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;IACrG,aAAa,EAAE,WAAW,CACxB,sBAAsB,EACtB,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC3E;IACD,WAAW,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC;IACpD,WAAW,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC;IACpD,SAAS,EAAE,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpF,YAAY,EAAE,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxF,WAAW,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACtG,YAAY,EAAE,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC;IACtD,aAAa,EAAE,WAAW,CAAC,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAClF,mBAAmB,EAAE,WAAW,CAC9B,6BAA6B,EAC7B,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAClE;IACD,cAAc,EAAE,WAAW,CACzB,uBAAuB,EACvB,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAClE;IACD,0FAA0F;IAC1F,WAAW,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAC7E,CAAA"}
@@ -1,6 +1,7 @@
1
1
  export * from './capabilities.js';
2
2
  export * from './events.js';
3
3
  export * from './models.js';
4
+ export * from './notifications.js';
4
5
  export * from './permissions.js';
5
6
  export * from './router.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA"}
@@ -1,6 +1,7 @@
1
1
  export * from './capabilities.js';
2
2
  export * from './events.js';
3
3
  export * from './models.js';
4
+ export * from './notifications.js';
4
5
  export * from './permissions.js';
5
6
  export * from './router.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA"}
@@ -118,6 +118,88 @@ export declare const PageVersion: z.ZodObject<{
118
118
  published: z.ZodBoolean;
119
119
  }, z.core.$strip>;
120
120
  export type PageVersion = z.infer<typeof PageVersion>;
121
+ /**
122
+ * Where a comment is attached, as **Yjs relative positions**.
123
+ *
124
+ * Not character offsets: an offset names a place that only exists while nobody else is typing, and
125
+ * two words inserted above would move a comment onto text it was never about. A relative position
126
+ * points at the content rather than the index, so it survives concurrent editing — which is the
127
+ * whole reason a comment on a collaborative document is harder than a comment on a row.
128
+ */
129
+ export declare const CommentAnchor: z.ZodObject<{
130
+ from: z.ZodBase64;
131
+ to: z.ZodBase64;
132
+ }, z.core.$strip>;
133
+ export type CommentAnchor = z.infer<typeof CommentAnchor>;
134
+ /** A Tiptap/ProseMirror document. Kept opaque here; the renderer is what knows its shape. */
135
+ export declare const RichDoc: z.ZodRecord<z.ZodString, z.ZodUnknown>;
136
+ export declare const Comment: z.ZodObject<{
137
+ id: z.ZodUUID;
138
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
139
+ pageId: z.ZodUUID;
140
+ parentId: z.ZodNullable<z.ZodUUID>;
141
+ threadId: z.ZodUUID;
142
+ authorId: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
143
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
144
+ bodyText: z.ZodString;
145
+ mentionIds: z.ZodArray<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
146
+ anchor: z.ZodNullable<z.ZodObject<{
147
+ from: z.ZodBase64;
148
+ to: z.ZodBase64;
149
+ }, z.core.$strip>>;
150
+ quotedText: z.ZodString;
151
+ resolvedAt: z.ZodNullable<z.ZodISODateTime>;
152
+ resolvedBy: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
153
+ editedAt: z.ZodNullable<z.ZodISODateTime>;
154
+ createdAt: z.ZodISODateTime;
155
+ }, z.core.$strip>;
156
+ export type Comment = z.infer<typeof Comment>;
157
+ /** A root comment and its replies, which is how a page's margin is actually read. */
158
+ export declare const CommentThread: z.ZodObject<{
159
+ id: z.ZodUUID;
160
+ root: z.ZodObject<{
161
+ id: z.ZodUUID;
162
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
163
+ pageId: z.ZodUUID;
164
+ parentId: z.ZodNullable<z.ZodUUID>;
165
+ threadId: z.ZodUUID;
166
+ authorId: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
167
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
168
+ bodyText: z.ZodString;
169
+ mentionIds: z.ZodArray<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
170
+ anchor: z.ZodNullable<z.ZodObject<{
171
+ from: z.ZodBase64;
172
+ to: z.ZodBase64;
173
+ }, z.core.$strip>>;
174
+ quotedText: z.ZodString;
175
+ resolvedAt: z.ZodNullable<z.ZodISODateTime>;
176
+ resolvedBy: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
177
+ editedAt: z.ZodNullable<z.ZodISODateTime>;
178
+ createdAt: z.ZodISODateTime;
179
+ }, z.core.$strip>;
180
+ replies: z.ZodArray<z.ZodObject<{
181
+ id: z.ZodUUID;
182
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
183
+ pageId: z.ZodUUID;
184
+ parentId: z.ZodNullable<z.ZodUUID>;
185
+ threadId: z.ZodUUID;
186
+ authorId: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
187
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
188
+ bodyText: z.ZodString;
189
+ mentionIds: z.ZodArray<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
190
+ anchor: z.ZodNullable<z.ZodObject<{
191
+ from: z.ZodBase64;
192
+ to: z.ZodBase64;
193
+ }, z.core.$strip>>;
194
+ quotedText: z.ZodString;
195
+ resolvedAt: z.ZodNullable<z.ZodISODateTime>;
196
+ resolvedBy: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
197
+ editedAt: z.ZodNullable<z.ZodISODateTime>;
198
+ createdAt: z.ZodISODateTime;
199
+ }, z.core.$strip>>;
200
+ resolved: z.ZodBoolean;
201
+ }, z.core.$strip>;
202
+ export type CommentThread = z.infer<typeof CommentThread>;
121
203
  export declare const Ok: z.ZodObject<{
122
204
  ok: z.ZodLiteral<true>;
123
205
  }, z.core.$strip>;
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/contract/models.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,yGAAyG;AACzG,eAAO,MAAM,SAAS,UAAU,CAAA;AAEhC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;EAA4C,CAAA;AACxE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE7D,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;iBAoBhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAA;AAEzC;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ;;;;EAAuC,CAAA;AAC5D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAA;AAE/C,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;iBAwBf,CAAA;AACF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAA;AAEvC,uFAAuF;AACvF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;iBASnB,CAAA;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;EAAmD,CAAA;AAC3E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAErD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;iBAatB,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAErD,eAAO,MAAM,EAAE;;iBAAoC,CAAA"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/contract/models.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,yGAAyG;AACzG,eAAO,MAAM,SAAS,UAAU,CAAA;AAEhC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;EAA4C,CAAA;AACxE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE7D,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;iBAoBhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAA;AAEzC;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ;;;;EAAuC,CAAA;AAC5D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAA;AAE/C,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;iBAwBf,CAAA;AACF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAA;AAEvC,uFAAuF;AACvF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;iBASnB,CAAA;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;EAAmD,CAAA;AAC3E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAErD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;iBAatB,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;;;iBAIxB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEzD,6FAA6F;AAC7F,eAAO,MAAM,OAAO,wCAAoC,CAAA;AAExD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;iBAkBlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;AAE7C,qFAAqF;AACrF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKxB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEzD,eAAO,MAAM,EAAE;;iBAAoC,CAAA"}
@@ -97,5 +97,46 @@ export const PageVersion = z.object({
97
97
  /** whether this is the version a reader is currently served */
98
98
  published: z.boolean(),
99
99
  });
100
+ /**
101
+ * Where a comment is attached, as **Yjs relative positions**.
102
+ *
103
+ * Not character offsets: an offset names a place that only exists while nobody else is typing, and
104
+ * two words inserted above would move a comment onto text it was never about. A relative position
105
+ * points at the content rather than the index, so it survives concurrent editing — which is the
106
+ * whole reason a comment on a collaborative document is harder than a comment on a row.
107
+ */
108
+ export const CommentAnchor = z.object({
109
+ /** base64 `Y.encodeRelativePosition` */
110
+ from: z.base64(),
111
+ to: z.base64(),
112
+ });
113
+ /** A Tiptap/ProseMirror document. Kept opaque here; the renderer is what knows its shape. */
114
+ export const RichDoc = z.record(z.string(), z.unknown());
115
+ export const Comment = z.object({
116
+ id: Id,
117
+ workspaceId: WorkspaceId,
118
+ pageId: Id,
119
+ parentId: Id.nullable(),
120
+ threadId: Id,
121
+ authorId: UserId.nullable(),
122
+ body: RichDoc,
123
+ bodyText: z.string(),
124
+ mentionIds: z.array(UserId),
125
+ /** null for a comment about the page rather than a piece of it */
126
+ anchor: CommentAnchor.nullable(),
127
+ /** what the anchor pointed at when it was written, so a thread whose text is gone still reads */
128
+ quotedText: z.string(),
129
+ resolvedAt: Timestamp.nullable(),
130
+ resolvedBy: UserId.nullable(),
131
+ editedAt: Timestamp.nullable(),
132
+ createdAt: Timestamp,
133
+ });
134
+ /** A root comment and its replies, which is how a page's margin is actually read. */
135
+ export const CommentThread = z.object({
136
+ id: Id,
137
+ root: Comment,
138
+ replies: z.array(Comment),
139
+ resolved: z.boolean(),
140
+ });
100
141
  export const Ok = z.object({ ok: z.literal(true) });
101
142
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/contract/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/contract/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { core } from '@kernhq/contracts';
2
+ /**
3
+ * What Quire can put in somebody's inbox.
4
+ *
5
+ * Declared rather than invented at the call site: the inbox renders a notification from its type,
6
+ * and one that was never declared arrives as a blank row.
7
+ */
8
+ export declare const quireNotificationTypes: core.NotificationTypeDef[];
9
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/contract/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,EAQ5D,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * What Quire can put in somebody's inbox.
3
+ *
4
+ * Declared rather than invented at the call site: the inbox renders a notification from its type,
5
+ * and one that was never declared arrives as a blank row.
6
+ */
7
+ export const quireNotificationTypes = [
8
+ {
9
+ type: 'quire.mention',
10
+ label: 'Mentioned in a page comment',
11
+ description: 'Somebody named you in a remark on a page',
12
+ defaults: { inapp: true, push: true, email: false },
13
+ urgent: false,
14
+ },
15
+ ];
16
+ //# sourceMappingURL=notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/contract/notifications.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA+B;IAChE;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;QACnD,MAAM,EAAE,KAAK;KACd;CACF,CAAA"}
@@ -40,6 +40,13 @@ export declare const quirePermissions: readonly [{
40
40
  readonly scope: "space";
41
41
  readonly defaultRoles: ["owner", "admin", "member"];
42
42
  readonly dangerous: false;
43
+ }, {
44
+ readonly key: "quire.page.comment";
45
+ readonly label: "Comment on pages";
46
+ readonly description: "Leave a remark in the margin without being able to change the page";
47
+ readonly scope: "space";
48
+ readonly defaultRoles: ["owner", "admin", "member", "guest"];
49
+ readonly dangerous: false;
43
50
  }, {
44
51
  readonly key: "quire.page.publish";
45
52
  readonly label: "Publish pages";
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuD3B,CAAA"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+D3B,CAAA"}
@@ -47,6 +47,14 @@ export const quirePermissions = definePermissions([
47
47
  defaultRoles: ['owner', 'admin', 'member'],
48
48
  dangerous: false,
49
49
  },
50
+ {
51
+ key: 'quire.page.comment',
52
+ label: 'Comment on pages',
53
+ description: 'Leave a remark in the margin without being able to change the page',
54
+ scope: 'space',
55
+ defaultRoles: ['owner', 'admin', 'member', 'guest'],
56
+ dangerous: false,
57
+ },
50
58
  {
51
59
  key: 'quire.page.publish',
52
60
  label: 'Publish pages',
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAChD;QACE,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,4DAA4D;QACzE,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QACnD,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,+DAA+D;QAC5E,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAChC,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QACnD,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC1C,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,qDAAqD;QAClE,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC1C,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,6DAA6D;QAC1E,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC1C,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,qEAAqE;QAClF,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAChC,SAAS,EAAE,IAAI;KAChB;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAChD;QACE,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,4DAA4D;QACzE,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QACnD,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,+DAA+D;QAC5E,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAChC,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QACnD,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC1C,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,qDAAqD;QAClE,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC1C,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,oEAAoE;QACjF,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QACnD,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,6DAA6D;QAC1E,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC1C,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,qEAAqE;QAClF,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAChC,SAAS,EAAE,IAAI;KAChB;CACF,CAAC,CAAA"}
@@ -891,6 +891,276 @@ export declare const quireContract: {
891
891
  };
892
892
  }>, Record<never, never>>;
893
893
  };
894
+ readonly comments: {
895
+ /** Every open thread on a page, and optionally the resolved ones too. */
896
+ readonly list: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
897
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
898
+ pageId: z.ZodUUID;
899
+ includeResolved: z.ZodDefault<z.ZodBoolean>;
900
+ }, z.core.$strip>, z.ZodArray<z.ZodObject<{
901
+ id: z.ZodUUID;
902
+ root: z.ZodObject<{
903
+ id: z.ZodUUID;
904
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
905
+ pageId: z.ZodUUID;
906
+ parentId: z.ZodNullable<z.ZodUUID>;
907
+ threadId: z.ZodUUID;
908
+ authorId: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
909
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
910
+ bodyText: z.ZodString;
911
+ mentionIds: z.ZodArray<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
912
+ anchor: z.ZodNullable<z.ZodObject<{
913
+ from: z.ZodBase64;
914
+ to: z.ZodBase64;
915
+ }, z.core.$strip>>;
916
+ quotedText: z.ZodString;
917
+ resolvedAt: z.ZodNullable<z.ZodISODateTime>;
918
+ resolvedBy: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
919
+ editedAt: z.ZodNullable<z.ZodISODateTime>;
920
+ createdAt: z.ZodISODateTime;
921
+ }, z.core.$strip>;
922
+ replies: z.ZodArray<z.ZodObject<{
923
+ id: z.ZodUUID;
924
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
925
+ pageId: z.ZodUUID;
926
+ parentId: z.ZodNullable<z.ZodUUID>;
927
+ threadId: z.ZodUUID;
928
+ authorId: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
929
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
930
+ bodyText: z.ZodString;
931
+ mentionIds: z.ZodArray<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
932
+ anchor: z.ZodNullable<z.ZodObject<{
933
+ from: z.ZodBase64;
934
+ to: z.ZodBase64;
935
+ }, z.core.$strip>>;
936
+ quotedText: z.ZodString;
937
+ resolvedAt: z.ZodNullable<z.ZodISODateTime>;
938
+ resolvedBy: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
939
+ editedAt: z.ZodNullable<z.ZodISODateTime>;
940
+ createdAt: z.ZodISODateTime;
941
+ }, z.core.$strip>>;
942
+ resolved: z.ZodBoolean;
943
+ }, z.core.$strip>>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
944
+ BAD_REQUEST: {
945
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
946
+ };
947
+ UNAUTHORIZED: {};
948
+ FORBIDDEN: {
949
+ data: z.ZodOptional<z.ZodObject<{
950
+ permission: z.ZodOptional<z.ZodString>;
951
+ }, z.core.$strip>>;
952
+ };
953
+ NOT_FOUND: {};
954
+ CONFLICT: {
955
+ data: z.ZodOptional<z.ZodObject<{
956
+ reason: z.ZodOptional<z.ZodString>;
957
+ }, z.core.$strip>>;
958
+ };
959
+ RATE_LIMITED: {};
960
+ MODULE_DISABLED: {
961
+ data: z.ZodObject<{
962
+ module: z.ZodString;
963
+ }, z.core.$strip>;
964
+ };
965
+ }>, Record<never, never>>;
966
+ readonly create: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
967
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
968
+ pageId: z.ZodUUID;
969
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
970
+ anchor: z.ZodDefault<z.ZodNullable<z.ZodObject<{
971
+ from: z.ZodBase64;
972
+ to: z.ZodBase64;
973
+ }, z.core.$strip>>>;
974
+ quotedText: z.ZodDefault<z.ZodString>;
975
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodUUID>>;
976
+ }, z.core.$strip>, z.ZodObject<{
977
+ id: z.ZodUUID;
978
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
979
+ pageId: z.ZodUUID;
980
+ parentId: z.ZodNullable<z.ZodUUID>;
981
+ threadId: z.ZodUUID;
982
+ authorId: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
983
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
984
+ bodyText: z.ZodString;
985
+ mentionIds: z.ZodArray<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
986
+ anchor: z.ZodNullable<z.ZodObject<{
987
+ from: z.ZodBase64;
988
+ to: z.ZodBase64;
989
+ }, z.core.$strip>>;
990
+ quotedText: z.ZodString;
991
+ resolvedAt: z.ZodNullable<z.ZodISODateTime>;
992
+ resolvedBy: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
993
+ editedAt: z.ZodNullable<z.ZodISODateTime>;
994
+ createdAt: z.ZodISODateTime;
995
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
996
+ BAD_REQUEST: {
997
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
998
+ };
999
+ UNAUTHORIZED: {};
1000
+ FORBIDDEN: {
1001
+ data: z.ZodOptional<z.ZodObject<{
1002
+ permission: z.ZodOptional<z.ZodString>;
1003
+ }, z.core.$strip>>;
1004
+ };
1005
+ NOT_FOUND: {};
1006
+ CONFLICT: {
1007
+ data: z.ZodOptional<z.ZodObject<{
1008
+ reason: z.ZodOptional<z.ZodString>;
1009
+ }, z.core.$strip>>;
1010
+ };
1011
+ RATE_LIMITED: {};
1012
+ MODULE_DISABLED: {
1013
+ data: z.ZodObject<{
1014
+ module: z.ZodString;
1015
+ }, z.core.$strip>;
1016
+ };
1017
+ }>, Record<never, never>>;
1018
+ readonly update: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
1019
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
1020
+ commentId: z.ZodUUID;
1021
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1022
+ }, z.core.$strip>, z.ZodObject<{
1023
+ id: z.ZodUUID;
1024
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
1025
+ pageId: z.ZodUUID;
1026
+ parentId: z.ZodNullable<z.ZodUUID>;
1027
+ threadId: z.ZodUUID;
1028
+ authorId: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
1029
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1030
+ bodyText: z.ZodString;
1031
+ mentionIds: z.ZodArray<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
1032
+ anchor: z.ZodNullable<z.ZodObject<{
1033
+ from: z.ZodBase64;
1034
+ to: z.ZodBase64;
1035
+ }, z.core.$strip>>;
1036
+ quotedText: z.ZodString;
1037
+ resolvedAt: z.ZodNullable<z.ZodISODateTime>;
1038
+ resolvedBy: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
1039
+ editedAt: z.ZodNullable<z.ZodISODateTime>;
1040
+ createdAt: z.ZodISODateTime;
1041
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
1042
+ BAD_REQUEST: {
1043
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1044
+ };
1045
+ UNAUTHORIZED: {};
1046
+ FORBIDDEN: {
1047
+ data: z.ZodOptional<z.ZodObject<{
1048
+ permission: z.ZodOptional<z.ZodString>;
1049
+ }, z.core.$strip>>;
1050
+ };
1051
+ NOT_FOUND: {};
1052
+ CONFLICT: {
1053
+ data: z.ZodOptional<z.ZodObject<{
1054
+ reason: z.ZodOptional<z.ZodString>;
1055
+ }, z.core.$strip>>;
1056
+ };
1057
+ RATE_LIMITED: {};
1058
+ MODULE_DISABLED: {
1059
+ data: z.ZodObject<{
1060
+ module: z.ZodString;
1061
+ }, z.core.$strip>;
1062
+ };
1063
+ }>, Record<never, never>>;
1064
+ readonly remove: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
1065
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
1066
+ commentId: z.ZodUUID;
1067
+ }, z.core.$strip>, z.ZodObject<{
1068
+ ok: z.ZodLiteral<true>;
1069
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
1070
+ BAD_REQUEST: {
1071
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1072
+ };
1073
+ UNAUTHORIZED: {};
1074
+ FORBIDDEN: {
1075
+ data: z.ZodOptional<z.ZodObject<{
1076
+ permission: z.ZodOptional<z.ZodString>;
1077
+ }, z.core.$strip>>;
1078
+ };
1079
+ NOT_FOUND: {};
1080
+ CONFLICT: {
1081
+ data: z.ZodOptional<z.ZodObject<{
1082
+ reason: z.ZodOptional<z.ZodString>;
1083
+ }, z.core.$strip>>;
1084
+ };
1085
+ RATE_LIMITED: {};
1086
+ MODULE_DISABLED: {
1087
+ data: z.ZodObject<{
1088
+ module: z.ZodString;
1089
+ }, z.core.$strip>;
1090
+ };
1091
+ }>, Record<never, never>>;
1092
+ /** Settle a thread. Resolving the root resolves the thread; it is not a per-reply state. */
1093
+ readonly resolve: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
1094
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
1095
+ commentId: z.ZodUUID;
1096
+ resolved: z.ZodDefault<z.ZodBoolean>;
1097
+ }, z.core.$strip>, z.ZodObject<{
1098
+ id: z.ZodUUID;
1099
+ root: z.ZodObject<{
1100
+ id: z.ZodUUID;
1101
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
1102
+ pageId: z.ZodUUID;
1103
+ parentId: z.ZodNullable<z.ZodUUID>;
1104
+ threadId: z.ZodUUID;
1105
+ authorId: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
1106
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1107
+ bodyText: z.ZodString;
1108
+ mentionIds: z.ZodArray<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
1109
+ anchor: z.ZodNullable<z.ZodObject<{
1110
+ from: z.ZodBase64;
1111
+ to: z.ZodBase64;
1112
+ }, z.core.$strip>>;
1113
+ quotedText: z.ZodString;
1114
+ resolvedAt: z.ZodNullable<z.ZodISODateTime>;
1115
+ resolvedBy: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
1116
+ editedAt: z.ZodNullable<z.ZodISODateTime>;
1117
+ createdAt: z.ZodISODateTime;
1118
+ }, z.core.$strip>;
1119
+ replies: z.ZodArray<z.ZodObject<{
1120
+ id: z.ZodUUID;
1121
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
1122
+ pageId: z.ZodUUID;
1123
+ parentId: z.ZodNullable<z.ZodUUID>;
1124
+ threadId: z.ZodUUID;
1125
+ authorId: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
1126
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1127
+ bodyText: z.ZodString;
1128
+ mentionIds: z.ZodArray<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
1129
+ anchor: z.ZodNullable<z.ZodObject<{
1130
+ from: z.ZodBase64;
1131
+ to: z.ZodBase64;
1132
+ }, z.core.$strip>>;
1133
+ quotedText: z.ZodString;
1134
+ resolvedAt: z.ZodNullable<z.ZodISODateTime>;
1135
+ resolvedBy: z.ZodNullable<z.core.$ZodBranded<z.ZodUUID, "UserId", "out">>;
1136
+ editedAt: z.ZodNullable<z.ZodISODateTime>;
1137
+ createdAt: z.ZodISODateTime;
1138
+ }, z.core.$strip>>;
1139
+ resolved: z.ZodBoolean;
1140
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
1141
+ BAD_REQUEST: {
1142
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1143
+ };
1144
+ UNAUTHORIZED: {};
1145
+ FORBIDDEN: {
1146
+ data: z.ZodOptional<z.ZodObject<{
1147
+ permission: z.ZodOptional<z.ZodString>;
1148
+ }, z.core.$strip>>;
1149
+ };
1150
+ NOT_FOUND: {};
1151
+ CONFLICT: {
1152
+ data: z.ZodOptional<z.ZodObject<{
1153
+ reason: z.ZodOptional<z.ZodString>;
1154
+ }, z.core.$strip>>;
1155
+ };
1156
+ RATE_LIMITED: {};
1157
+ MODULE_DISABLED: {
1158
+ data: z.ZodObject<{
1159
+ module: z.ZodString;
1160
+ }, z.core.$strip>;
1161
+ };
1162
+ }>, Record<never, never>>;
1163
+ };
894
1164
  readonly publishing: {
895
1165
  /** Make what is written now the version readers are served. Only meaningful for a `page`. */
896
1166
  readonly publish: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/contract/router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,EAAE,EAAiE,MAAM,aAAa,CAAA;AAK/F,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA0CtB;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QASH,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA+BrD,6FAA6F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAK7F,kGAAkG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAKlG,uEAAuE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QASvE,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAYlE,qFAAqF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAKrF,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAKxC;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAQH,6FAA6F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAK7F,wEAAwE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlE,CAAA;AACV,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA;AAEhD,OAAO,EAAE,EAAE,EAAE,CAAA"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/contract/router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAGL,EAAE,EAQH,MAAM,aAAa,CAAA;AAKpB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA0CtB;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QASH,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA+BrD,6FAA6F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAK7F,kGAAkG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAKlG,uEAAuE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QASvE,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAYlE,qFAAqF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAKrF,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAKxC;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAQH,yEAAyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA2BzE,4FAA4F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAQ5F,6FAA6F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAK7F,wEAAwE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlE,CAAA;AACV,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA;AAEhD,OAAO,EAAE,EAAE,EAAE,CAAA"}