@pkcprotocol/pkc-js 0.0.80 → 0.0.82

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 (173) hide show
  1. package/README.md +3 -1
  2. package/dist/browser/clients/base-client-manager.js +19 -1
  3. package/dist/browser/clients/base-client-manager.js.map +1 -1
  4. package/dist/browser/clients/rpc-client/rpc-schema-util.d.ts +1 -0
  5. package/dist/browser/clients/rpc-client/schema.d.ts +3 -0
  6. package/dist/browser/community/schema.d.ts +24 -0
  7. package/dist/browser/community/schema.js +6 -1
  8. package/dist/browser/community/schema.js.map +1 -1
  9. package/dist/browser/errors.d.ts +10 -1
  10. package/dist/browser/errors.js +10 -1
  11. package/dist/browser/errors.js.map +1 -1
  12. package/dist/browser/generated-version.d.ts +1 -1
  13. package/dist/browser/generated-version.js +1 -1
  14. package/dist/browser/pages/pages.js +8 -0
  15. package/dist/browser/pages/pages.js.map +1 -1
  16. package/dist/browser/pages/schema.d.ts +4 -0
  17. package/dist/browser/pages/util.d.ts +2 -0
  18. package/dist/browser/pages/util.js +23 -3
  19. package/dist/browser/pages/util.js.map +1 -1
  20. package/dist/browser/pkc/pkc.d.ts +3 -2
  21. package/dist/browser/pkc/pkc.js +37 -24
  22. package/dist/browser/pkc/pkc.js.map +1 -1
  23. package/dist/browser/pkc-error.d.ts +1 -1
  24. package/dist/browser/publications/comment/comment-client-manager.js +22 -4
  25. package/dist/browser/publications/comment/comment-client-manager.js.map +1 -1
  26. package/dist/browser/publications/comment/comment.d.ts +2 -1
  27. package/dist/browser/publications/comment/comment.js +29 -6
  28. package/dist/browser/publications/comment/comment.js.map +1 -1
  29. package/dist/browser/publications/comment/crosspost-depth.d.ts +5 -0
  30. package/dist/browser/publications/comment/crosspost-depth.js +75 -0
  31. package/dist/browser/publications/comment/crosspost-depth.js.map +1 -0
  32. package/dist/browser/publications/comment/crosspost-runtime.d.ts +30 -0
  33. package/dist/browser/publications/comment/crosspost-runtime.js +133 -0
  34. package/dist/browser/publications/comment/crosspost-runtime.js.map +1 -0
  35. package/dist/browser/publications/comment/schema.d.ts +20 -2
  36. package/dist/browser/publications/comment/schema.js +21 -10
  37. package/dist/browser/publications/comment/schema.js.map +1 -1
  38. package/dist/browser/publications/comment/types.d.ts +10 -0
  39. package/dist/browser/publications/community-edit/schema.d.ts +4 -0
  40. package/dist/browser/publications/publication.d.ts +4 -0
  41. package/dist/browser/publications/publication.js +80 -5
  42. package/dist/browser/publications/publication.js.map +1 -1
  43. package/dist/browser/pubsub-messages/schema.d.ts +5 -0
  44. package/dist/browser/rpc/src/index.js +14 -2
  45. package/dist/browser/rpc/src/index.js.map +1 -1
  46. package/dist/browser/runtime/browser/setup-kubo-http-routers.d.ts +1 -0
  47. package/dist/browser/runtime/browser/setup-kubo-http-routers.js +4 -0
  48. package/dist/browser/runtime/browser/setup-kubo-http-routers.js.map +1 -0
  49. package/dist/browser/runtime/node/community/db-handler.js +3 -2
  50. package/dist/browser/runtime/node/community/db-handler.js.map +1 -1
  51. package/dist/browser/runtime/node/community/local-community/publication-validation.js +15 -0
  52. package/dist/browser/runtime/node/community/local-community/publication-validation.js.map +1 -1
  53. package/dist/browser/runtime/node/community/local-community/reprovide-on-address-change.d.ts +3 -2
  54. package/dist/browser/runtime/node/community/local-community/reprovide-on-address-change.js +19 -10
  55. package/dist/browser/runtime/node/community/local-community/reprovide-on-address-change.js.map +1 -1
  56. package/dist/browser/runtime/node/community/page-generator.d.ts +2 -0
  57. package/dist/browser/runtime/node/setup-kubo-http-routers.d.ts +2 -0
  58. package/dist/browser/runtime/node/{setup-kubo-address-rewriter-and-http-router.js → setup-kubo-http-routers.js} +54 -112
  59. package/dist/browser/runtime/node/setup-kubo-http-routers.js.map +1 -0
  60. package/dist/browser/schema/schema-util.d.ts +17 -0
  61. package/dist/browser/schema/schema-util.js +49 -5
  62. package/dist/browser/schema/schema-util.js.map +1 -1
  63. package/dist/browser/signer/signatures.d.ts +1 -10
  64. package/dist/browser/signer/signatures.js +83 -0
  65. package/dist/browser/signer/signatures.js.map +1 -1
  66. package/dist/browser/test/test-util.d.ts +6 -0
  67. package/dist/browser/util.d.ts +3 -4
  68. package/dist/browser/util.js +7 -3
  69. package/dist/browser/util.js.map +1 -1
  70. package/dist/browser/version.js +1 -1
  71. package/dist/bundled/bundle-manifest.json +78 -93
  72. package/dist/bundled/chunks/{helia-for-pkc-BsYWQ7qS.js → helia-for-pkc-CQY3-UYD.js} +31 -31
  73. package/dist/bundled/chunks/{local-community-EqWKTLxr.js → local-community-AZAEiiht.js} +1 -1
  74. package/dist/bundled/chunks/{local-community-CHzhypCp.js → local-community-DRm3r1-Y.js} +16 -6
  75. package/dist/bundled/chunks/{node-4qAZNuJG.js → node-B1J8psGZ.js} +380 -2372
  76. package/dist/bundled/chunks/{rpc-local-community-Cog5rZLG.js → rpc-local-community-0XmKyOdO.js} +298 -580
  77. package/dist/bundled/chunks/{schema-Iavj-cRD.js → schema-BUUhufdT.js} +26 -11
  78. package/dist/bundled/chunks/{util-CfSUfLkV.js → util-Cct7-RT3.js} +1 -1
  79. package/dist/bundled/index.js +1 -1
  80. package/dist/bundled/rpc/src/index.js +13 -5
  81. package/dist/node/clients/base-client-manager.js +19 -1
  82. package/dist/node/clients/base-client-manager.js.map +1 -1
  83. package/dist/node/clients/rpc-client/rpc-schema-util.d.ts +1 -0
  84. package/dist/node/clients/rpc-client/schema.d.ts +3 -0
  85. package/dist/node/community/schema.d.ts +24 -0
  86. package/dist/node/community/schema.js +6 -1
  87. package/dist/node/community/schema.js.map +1 -1
  88. package/dist/node/errors.d.ts +10 -1
  89. package/dist/node/errors.js +10 -1
  90. package/dist/node/errors.js.map +1 -1
  91. package/dist/node/generated-version.d.ts +1 -1
  92. package/dist/node/generated-version.js +1 -1
  93. package/dist/node/pages/pages.js +8 -0
  94. package/dist/node/pages/pages.js.map +1 -1
  95. package/dist/node/pages/schema.d.ts +4 -0
  96. package/dist/node/pages/util.d.ts +2 -0
  97. package/dist/node/pages/util.js +23 -3
  98. package/dist/node/pages/util.js.map +1 -1
  99. package/dist/node/pkc/pkc.d.ts +3 -2
  100. package/dist/node/pkc/pkc.js +37 -24
  101. package/dist/node/pkc/pkc.js.map +1 -1
  102. package/dist/node/pkc-error.d.ts +1 -1
  103. package/dist/node/publications/comment/comment-client-manager.js +22 -4
  104. package/dist/node/publications/comment/comment-client-manager.js.map +1 -1
  105. package/dist/node/publications/comment/comment.d.ts +2 -1
  106. package/dist/node/publications/comment/comment.js +29 -6
  107. package/dist/node/publications/comment/comment.js.map +1 -1
  108. package/dist/node/publications/comment/crosspost-depth.d.ts +5 -0
  109. package/dist/node/publications/comment/crosspost-depth.js +75 -0
  110. package/dist/node/publications/comment/crosspost-depth.js.map +1 -0
  111. package/dist/node/publications/comment/crosspost-runtime.d.ts +30 -0
  112. package/dist/node/publications/comment/crosspost-runtime.js +133 -0
  113. package/dist/node/publications/comment/crosspost-runtime.js.map +1 -0
  114. package/dist/node/publications/comment/schema.d.ts +20 -2
  115. package/dist/node/publications/comment/schema.js +21 -10
  116. package/dist/node/publications/comment/schema.js.map +1 -1
  117. package/dist/node/publications/comment/types.d.ts +10 -0
  118. package/dist/node/publications/community-edit/schema.d.ts +4 -0
  119. package/dist/node/publications/publication.d.ts +4 -0
  120. package/dist/node/publications/publication.js +80 -5
  121. package/dist/node/publications/publication.js.map +1 -1
  122. package/dist/node/pubsub-messages/schema.d.ts +5 -0
  123. package/dist/node/rpc/src/index.js +14 -2
  124. package/dist/node/rpc/src/index.js.map +1 -1
  125. package/dist/node/runtime/browser/setup-kubo-http-routers.d.ts +1 -0
  126. package/dist/node/runtime/browser/setup-kubo-http-routers.js +4 -0
  127. package/dist/node/runtime/browser/setup-kubo-http-routers.js.map +1 -0
  128. package/dist/node/runtime/node/community/db-handler.js +3 -2
  129. package/dist/node/runtime/node/community/db-handler.js.map +1 -1
  130. package/dist/node/runtime/node/community/local-community/publication-validation.js +15 -0
  131. package/dist/node/runtime/node/community/local-community/publication-validation.js.map +1 -1
  132. package/dist/node/runtime/node/community/local-community/reprovide-on-address-change.d.ts +3 -2
  133. package/dist/node/runtime/node/community/local-community/reprovide-on-address-change.js +19 -10
  134. package/dist/node/runtime/node/community/local-community/reprovide-on-address-change.js.map +1 -1
  135. package/dist/node/runtime/node/community/page-generator.d.ts +2 -0
  136. package/dist/node/runtime/node/setup-kubo-http-routers.d.ts +2 -0
  137. package/dist/node/runtime/node/{setup-kubo-address-rewriter-and-http-router.js → setup-kubo-http-routers.js} +54 -112
  138. package/dist/node/runtime/node/setup-kubo-http-routers.js.map +1 -0
  139. package/dist/node/schema/schema-util.d.ts +17 -0
  140. package/dist/node/schema/schema-util.js +49 -5
  141. package/dist/node/schema/schema-util.js.map +1 -1
  142. package/dist/node/signer/signatures.d.ts +1 -10
  143. package/dist/node/signer/signatures.js +83 -0
  144. package/dist/node/signer/signatures.js.map +1 -1
  145. package/dist/node/test/test-util.d.ts +6 -0
  146. package/dist/node/util.d.ts +3 -4
  147. package/dist/node/util.js +7 -3
  148. package/dist/node/util.js.map +1 -1
  149. package/dist/node/version.js +1 -1
  150. package/package.json +2 -2
  151. package/dist/browser/runtime/browser/setup-kubo-address-rewriter-and-http-router.d.ts +0 -1
  152. package/dist/browser/runtime/browser/setup-kubo-address-rewriter-and-http-router.js +0 -4
  153. package/dist/browser/runtime/browser/setup-kubo-address-rewriter-and-http-router.js.map +0 -1
  154. package/dist/browser/runtime/node/address-rewriter-db.d.ts +0 -33
  155. package/dist/browser/runtime/node/address-rewriter-db.js +0 -156
  156. package/dist/browser/runtime/node/address-rewriter-db.js.map +0 -1
  157. package/dist/browser/runtime/node/addresses-rewriter-proxy-server.d.ts +0 -47
  158. package/dist/browser/runtime/node/addresses-rewriter-proxy-server.js +0 -534
  159. package/dist/browser/runtime/node/addresses-rewriter-proxy-server.js.map +0 -1
  160. package/dist/browser/runtime/node/setup-kubo-address-rewriter-and-http-router.d.ts +0 -4
  161. package/dist/browser/runtime/node/setup-kubo-address-rewriter-and-http-router.js.map +0 -1
  162. package/dist/node/runtime/browser/setup-kubo-address-rewriter-and-http-router.d.ts +0 -1
  163. package/dist/node/runtime/browser/setup-kubo-address-rewriter-and-http-router.js +0 -4
  164. package/dist/node/runtime/browser/setup-kubo-address-rewriter-and-http-router.js.map +0 -1
  165. package/dist/node/runtime/node/address-rewriter-db.d.ts +0 -33
  166. package/dist/node/runtime/node/address-rewriter-db.js +0 -156
  167. package/dist/node/runtime/node/address-rewriter-db.js.map +0 -1
  168. package/dist/node/runtime/node/addresses-rewriter-proxy-server.d.ts +0 -47
  169. package/dist/node/runtime/node/addresses-rewriter-proxy-server.js +0 -534
  170. package/dist/node/runtime/node/addresses-rewriter-proxy-server.js.map +0 -1
  171. package/dist/node/runtime/node/setup-kubo-address-rewriter-and-http-router.d.ts +0 -4
  172. package/dist/node/runtime/node/setup-kubo-address-rewriter-and-http-router.js.map +0 -1
  173. package/dist/bundled/chunks/{src-BEjAH2gY.js → src-WLgFbUwZ.js} +1 -1
@@ -1,4 +1,11 @@
1
1
  import { z } from "zod";
2
+ import type { CommentIpfsType } from "./types.js";
3
+ export interface Crosspost {
4
+ cid: string;
5
+ comment: Omit<CommentIpfsType, "crosspost"> & {
6
+ crosspost?: Crosspost;
7
+ };
8
+ }
2
9
  export declare const CreateCommentOptionsSchema: z.ZodObject<{
3
10
  flairs: z.ZodOptional<z.ZodArray<z.ZodObject<{
4
11
  text: z.ZodString;
@@ -17,6 +24,7 @@ export declare const CreateCommentOptionsSchema: z.ZodObject<{
17
24
  parentCid: z.ZodOptional<z.ZodString>;
18
25
  postCid: z.ZodOptional<z.ZodString>;
19
26
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
27
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
20
28
  signer: z.ZodObject<{
21
29
  type: z.ZodEnum<{
22
30
  ed25519: "ed25519";
@@ -80,6 +88,7 @@ export declare const CreateCommentOptionsWithRefinementSchema: z.ZodObject<{
80
88
  parentCid: z.ZodOptional<z.ZodString>;
81
89
  postCid: z.ZodOptional<z.ZodString>;
82
90
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
91
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
83
92
  signer: z.ZodObject<{
84
93
  type: z.ZodEnum<{
85
94
  ed25519: "ed25519";
@@ -125,7 +134,7 @@ export declare const CreateCommentOptionsWithRefinementSchema: z.ZodObject<{
125
134
  challengeCommentCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
126
135
  }, z.core.$strip>>;
127
136
  }, z.core.$strict>;
128
- export declare const CommentSignedPropertyNames: ("timestamp" | "flairs" | "author" | "communityPublicKey" | "communityName" | "protocolVersion" | "link" | "spoiler" | "nsfw" | "content" | "title" | "linkWidth" | "linkHeight" | "linkHtmlTagName" | "parentCid" | "postCid" | "quotedCids")[];
137
+ export declare const CommentSignedPropertyNames: ("timestamp" | "flairs" | "author" | "communityPublicKey" | "communityName" | "protocolVersion" | "link" | "spoiler" | "nsfw" | "content" | "title" | "linkWidth" | "linkHeight" | "linkHtmlTagName" | "parentCid" | "postCid" | "quotedCids" | "crosspost")[];
129
138
  export declare const CommentPubsubMessagePublicationSchema: z.ZodObject<{
130
139
  timestamp: z.ZodNumber;
131
140
  signature: z.ZodObject<{
@@ -183,6 +192,7 @@ export declare const CommentPubsubMessagePublicationSchema: z.ZodObject<{
183
192
  parentCid: z.ZodOptional<z.ZodString>;
184
193
  postCid: z.ZodOptional<z.ZodString>;
185
194
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
195
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
186
196
  }, z.core.$strict>;
187
197
  export declare const CommentPubsubMessageWithFlexibleAuthorSchema: z.ZodObject<{
188
198
  timestamp: z.ZodNumber;
@@ -212,6 +222,7 @@ export declare const CommentPubsubMessageWithFlexibleAuthorSchema: z.ZodObject<{
212
222
  parentCid: z.ZodOptional<z.ZodString>;
213
223
  postCid: z.ZodOptional<z.ZodString>;
214
224
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
225
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
215
226
  author: z.ZodOptional<z.ZodObject<{
216
227
  name: z.ZodOptional<z.ZodString>;
217
228
  previousCommentCid: z.ZodOptional<z.ZodString>;
@@ -270,6 +281,7 @@ export declare const CommentPubsubMessageWithFlexibleAuthorRefinementSchema: z.Z
270
281
  parentCid: z.ZodOptional<z.ZodString>;
271
282
  postCid: z.ZodOptional<z.ZodString>;
272
283
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
284
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
273
285
  author: z.ZodOptional<z.ZodObject<{
274
286
  name: z.ZodOptional<z.ZodString>;
275
287
  previousCommentCid: z.ZodOptional<z.ZodString>;
@@ -357,6 +369,7 @@ export declare const CommentPubsubMessageWithRefinementSchema: z.ZodObject<{
357
369
  parentCid: z.ZodOptional<z.ZodString>;
358
370
  postCid: z.ZodOptional<z.ZodString>;
359
371
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
372
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
360
373
  }, z.core.$strict>;
361
374
  export declare const CommentChallengeRequestToEncryptSchema: z.ZodObject<{
362
375
  challengeAnswers: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -389,6 +402,7 @@ export declare const CommentChallengeRequestToEncryptSchema: z.ZodObject<{
389
402
  parentCid: z.ZodOptional<z.ZodString>;
390
403
  postCid: z.ZodOptional<z.ZodString>;
391
404
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
405
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
392
406
  author: z.ZodOptional<z.ZodObject<{
393
407
  name: z.ZodOptional<z.ZodString>;
394
408
  previousCommentCid: z.ZodOptional<z.ZodString>;
@@ -448,6 +462,7 @@ export declare const CommentIpfsSchema: z.ZodObject<{
448
462
  parentCid: z.ZodOptional<z.ZodString>;
449
463
  postCid: z.ZodOptional<z.ZodString>;
450
464
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
465
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
451
466
  author: z.ZodOptional<z.ZodObject<{
452
467
  name: z.ZodOptional<z.ZodString>;
453
468
  previousCommentCid: z.ZodOptional<z.ZodString>;
@@ -488,7 +503,7 @@ export declare const CommentIpfsSchema: z.ZodObject<{
488
503
  "per-author": "per-author";
489
504
  }>>;
490
505
  }, z.core.$strict>;
491
- export declare const CommentIpfsWithRefinmentSchema: z.ZodObject<{
506
+ export declare const CommentIpfsWithRefinementSchema: z.ZodObject<{
492
507
  timestamp: z.ZodNumber;
493
508
  signature: z.ZodObject<{
494
509
  type: z.ZodString;
@@ -516,6 +531,7 @@ export declare const CommentIpfsWithRefinmentSchema: z.ZodObject<{
516
531
  parentCid: z.ZodOptional<z.ZodString>;
517
532
  postCid: z.ZodOptional<z.ZodString>;
518
533
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
534
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
519
535
  author: z.ZodOptional<z.ZodObject<{
520
536
  name: z.ZodOptional<z.ZodString>;
521
537
  previousCommentCid: z.ZodOptional<z.ZodString>;
@@ -735,6 +751,7 @@ export declare const CommentUpdateSchema: z.ZodObject<{
735
751
  parentCid: z.ZodOptional<z.ZodString>;
736
752
  postCid: z.ZodOptional<z.ZodString>;
737
753
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
754
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
738
755
  author: z.ZodOptional<z.ZodObject<{
739
756
  name: z.ZodOptional<z.ZodString>;
740
757
  previousCommentCid: z.ZodOptional<z.ZodString>;
@@ -886,6 +903,7 @@ export declare const CommentsTableRowSchema: z.ZodObject<{
886
903
  linkHtmlTagName: z.ZodOptional<z.ZodString>;
887
904
  parentCid: z.ZodOptional<z.ZodString>;
888
905
  quotedCids: z.ZodOptional<z.ZodArray<z.ZodString>>;
906
+ crosspost: z.ZodOptional<z.ZodType<Crosspost, Crosspost, z.core.$ZodTypeInternals<Crosspost, Crosspost>>>;
889
907
  author: z.ZodOptional<z.ZodObject<{
890
908
  name: z.ZodOptional<z.ZodString>;
891
909
  previousCommentCid: z.ZodOptional<z.ZodString>;
@@ -7,11 +7,19 @@ import { keysToOmitFromSignedPropertyNames } from "../../signer/constants.js";
7
7
  import { RepliesPagesIpfsSchema } from "../../pages/schema.js";
8
8
  // Comment schemas here
9
9
  const CommentContentSchema = z.string();
10
- // Create Comment schemas here
11
- // Need to validate if post.link is valid
12
- // Also add a limitation of 2000 characters to link
13
- // Need to have multiple types of schema for posts with or without link
14
- // link posts have no content
10
+ // .loose() is load-bearing, not stylistic. crosspost.cid hashes the entire embedded record, so any
11
+ // normalization of it breaks the crosspost. Zod's strip behavior is per-schema, so leaving this at
12
+ // the default would let the CommentIpfsSchema.strip().parse() in storePublication silently delete
13
+ // author-signed extra props from the embedded record changing the CID that
14
+ // deriveCommentIpfsFromCommentTableRow reconstructs, breaking page generation, and getting the
15
+ // comment purged by the post-migration signature sweep.
16
+ // Both generic params are pinned: zod 4's ZodType defaults Input to `unknown` (zod 3 defaulted it to
17
+ // Output), and leaving it inferred makes z.input of any schema containing a crosspost degrade to
18
+ // `unknown`, which breaks the z.input/z.infer equivalence the RPC parse helpers rely on.
19
+ const CrosspostSchema = z.object({
20
+ cid: CidStringSchema,
21
+ comment: z.lazy(() => CommentIpfsSchema.loose())
22
+ });
15
23
  export const CreateCommentOptionsSchema = z
16
24
  .object({
17
25
  flairs: FlairSchema.array().optional(), // Author chosen colored labels for the comment
@@ -25,12 +33,15 @@ export const CreateCommentOptionsSchema = z
25
33
  linkHtmlTagName: z.string().min(1).optional(),
26
34
  parentCid: CidStringSchema.optional(), // The parent comment CID
27
35
  postCid: CidStringSchema.optional(), // the post cid, required if the comment is reply
28
- quotedCids: z.array(CidStringSchema).optional() // CIDs of comments being quoted/referenced in this reply
36
+ quotedCids: z.array(CidStringSchema).optional(), // CIDs of comments being quoted/referenced in this reply
37
+ crosspost: CrosspostSchema.optional() // this comment IS a repost of the embedded comment. Distinct from quotedCids, which only references comments the text refers to
29
38
  })
30
39
  .merge(CreatePublicationUserOptionsSchema)
31
40
  .strict();
32
41
  // This one is used for parsing user's input
33
- export const CreateCommentOptionsWithRefinementSchema = CreateCommentOptionsSchema.refine((arg) => arg.link || arg.content || arg.title, messages.ERR_COMMENT_HAS_NO_CONTENT_LINK_TITLE)
42
+ // crosspost counts as payload on its own: a comment that only reposts another comment (a
43
+ // "retweet") is valid with no content, link or title. See docs/protocol/crossposts.md.
44
+ export const CreateCommentOptionsWithRefinementSchema = CreateCommentOptionsSchema.refine((arg) => arg.link || arg.content || arg.title || arg.crosspost, messages.ERR_COMMENT_HAS_NO_CONTENT_LINK_TITLE)
34
45
  .refine((arg) => (arg.parentCid ? arg.postCid : true), messages.ERR_REPLY_HAS_NOT_DEFINED_POST_CID)
35
46
  .refine(hasAtLeastOneCommunityIdentifier, atLeastOneCommunityIdentifierMessage);
36
47
  // Below is what's used to initialize a local publication to be published
@@ -42,8 +53,8 @@ export const CommentPubsubMessagePublicationSchema = CreateCommentOptionsSchema.
42
53
  .strict();
43
54
  export const CommentPubsubMessageWithFlexibleAuthorSchema = CommentPubsubMessagePublicationSchema.merge(z.object({ author: AuthorPubsubSchema.loose().optional() })).strict();
44
55
  // This is used by the community when parsing request.comment
45
- export const CommentPubsubMessageWithFlexibleAuthorRefinementSchema = CommentPubsubMessageWithFlexibleAuthorSchema.loose().refine((arg) => arg.link || arg.content || arg.title, messages.ERR_COMMENT_HAS_NO_CONTENT_LINK_TITLE);
46
- export const CommentPubsubMessageWithRefinementSchema = CommentPubsubMessagePublicationSchema.refine((arg) => arg.link || arg.content || arg.title, messages.ERR_COMMENT_HAS_NO_CONTENT_LINK_TITLE).refine((arg) => (arg.parentCid ? arg.postCid : true), messages.ERR_REPLY_HAS_NOT_DEFINED_POST_CID);
56
+ export const CommentPubsubMessageWithFlexibleAuthorRefinementSchema = CommentPubsubMessageWithFlexibleAuthorSchema.loose().refine((arg) => arg.link || arg.content || arg.title || arg.crosspost, messages.ERR_COMMENT_HAS_NO_CONTENT_LINK_TITLE);
57
+ export const CommentPubsubMessageWithRefinementSchema = CommentPubsubMessagePublicationSchema.refine((arg) => arg.link || arg.content || arg.title || arg.crosspost, messages.ERR_COMMENT_HAS_NO_CONTENT_LINK_TITLE).refine((arg) => (arg.parentCid ? arg.postCid : true), messages.ERR_REPLY_HAS_NOT_DEFINED_POST_CID);
47
58
  export const CommentChallengeRequestToEncryptSchema = CreateCommentOptionsSchema.shape.challengeRequest
48
59
  .unwrap()
49
60
  .extend({
@@ -61,7 +72,7 @@ export const CommentIpfsSchema = CommentPubsubMessageWithFlexibleAuthorSchema.ex
61
72
  pseudonymityMode: z.enum(["per-post", "per-reply", "per-author"]).optional()
62
73
  }).strict();
63
74
  // This one should be used for parsing user's input or from gateway/p2p etc
64
- export const CommentIpfsWithRefinmentSchema = CommentIpfsSchema.refine((arg) => arg.link || arg.content || arg.title, messages.ERR_COMMENT_HAS_NO_CONTENT_LINK_TITLE);
75
+ export const CommentIpfsWithRefinementSchema = CommentIpfsSchema.refine((arg) => arg.link || arg.content || arg.title || arg.crosspost, messages.ERR_COMMENT_HAS_NO_CONTENT_LINK_TITLE);
65
76
  // Comment update schemas
66
77
  export const AuthorWithCommentUpdateSchema = CommentPubsubMessagePublicationSchema.shape.author
67
78
  .unwrap()
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/publications/comment/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/publications/comment/schema.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { CommentChallengeRequestToEncryptSchema, CommentIpfsSchema, CommentPubsubMessagePublicationSchema, CommentSignedPropertyNames, CommentsTableRowSchema, CommentUpdateForChallengeVerificationSchema, CommentUpdateForChallengeVerificationSignedPropertyNames, CommentUpdateForDisapprovedPendingComment, CommentUpdateSchema, CommentUpdateSignedPropertyNames, CommentUpdateTableRowSchema, CreateCommentOptionsSchema, DbRepliesSchema, DbRepliesSortEntrySchema, DbPostsSchema } from "./schema.js";
3
+ import type { Crosspost } from "./schema.js";
3
4
  import { CommunityAuthorSchema } from "../../schema/schema.js";
4
5
  import { RpcCommentEventResultSchema, RpcCommentUpdateResultSchema } from "../../clients/rpc-client/schema.js";
5
6
  import type { JsonOfClass, RuntimeAuthorWithCommentUpdateType } from "../../types.js";
@@ -19,6 +20,15 @@ export type CommentUpdateType = z.infer<typeof CommentUpdateSchema>;
19
20
  export type CommentUpdateForDisapprovedPendingComment = z.infer<typeof CommentUpdateForDisapprovedPendingComment>;
20
21
  export type CommentUpdateForChallengeVerification = z.infer<typeof CommentUpdateForChallengeVerificationSchema>;
21
22
  export type CommentIpfsType = z.infer<typeof CommentIpfsSchema>;
23
+ export type CrosspostRuntime = {
24
+ cid: Crosspost["cid"];
25
+ comment: Omit<Crosspost["comment"], "author" | "crosspost"> & {
26
+ author?: NonNullable<Crosspost["comment"]["author"]> & {
27
+ nameResolved?: boolean;
28
+ };
29
+ crosspost?: CrosspostRuntime;
30
+ };
31
+ };
22
32
  export type CommentChallengeRequestToEncryptType = z.infer<typeof CommentChallengeRequestToEncryptSchema>;
23
33
  export type RpcCommentUpdateResultType = z.infer<typeof RpcCommentUpdateResultSchema>;
24
34
  export type RpcCommentResultType = z.infer<typeof RpcCommentEventResultSchema>;
@@ -65,6 +65,7 @@ export declare const CreateCommunityEditPublicationOptionsSchema: import("zod").
65
65
  noReplyLinks: import("zod").ZodOptional<import("zod").ZodBoolean>;
66
66
  noPolls: import("zod").ZodOptional<import("zod").ZodBoolean>;
67
67
  noCrossposts: import("zod").ZodOptional<import("zod").ZodBoolean>;
68
+ maxCrosspostDepth: import("zod").ZodOptional<import("zod").ZodNumber>;
68
69
  noNestedReplies: import("zod").ZodOptional<import("zod").ZodBoolean>;
69
70
  safeForWork: import("zod").ZodOptional<import("zod").ZodBoolean>;
70
71
  authorFlairs: import("zod").ZodOptional<import("zod").ZodBoolean>;
@@ -224,6 +225,7 @@ export declare const CreateCommunityEditPublicationOptionsWithRefinementSchema:
224
225
  noReplyLinks: import("zod").ZodOptional<import("zod").ZodBoolean>;
225
226
  noPolls: import("zod").ZodOptional<import("zod").ZodBoolean>;
226
227
  noCrossposts: import("zod").ZodOptional<import("zod").ZodBoolean>;
228
+ maxCrosspostDepth: import("zod").ZodOptional<import("zod").ZodNumber>;
227
229
  noNestedReplies: import("zod").ZodOptional<import("zod").ZodBoolean>;
228
230
  safeForWork: import("zod").ZodOptional<import("zod").ZodBoolean>;
229
231
  authorFlairs: import("zod").ZodOptional<import("zod").ZodBoolean>;
@@ -379,6 +381,7 @@ export declare const CommunityEditPubsubMessagePublicationSchema: import("zod").
379
381
  noReplyLinks: import("zod").ZodOptional<import("zod").ZodBoolean>;
380
382
  noPolls: import("zod").ZodOptional<import("zod").ZodBoolean>;
381
383
  noCrossposts: import("zod").ZodOptional<import("zod").ZodBoolean>;
384
+ maxCrosspostDepth: import("zod").ZodOptional<import("zod").ZodNumber>;
382
385
  noNestedReplies: import("zod").ZodOptional<import("zod").ZodBoolean>;
383
386
  safeForWork: import("zod").ZodOptional<import("zod").ZodBoolean>;
384
387
  authorFlairs: import("zod").ZodOptional<import("zod").ZodBoolean>;
@@ -536,6 +539,7 @@ export declare const CommunityEditPublicationChallengeRequestToEncryptSchema: im
536
539
  noReplyLinks: import("zod").ZodOptional<import("zod").ZodBoolean>;
537
540
  noPolls: import("zod").ZodOptional<import("zod").ZodBoolean>;
538
541
  noCrossposts: import("zod").ZodOptional<import("zod").ZodBoolean>;
542
+ maxCrosspostDepth: import("zod").ZodOptional<import("zod").ZodNumber>;
539
543
  noNestedReplies: import("zod").ZodOptional<import("zod").ZodBoolean>;
540
544
  safeForWork: import("zod").ZodOptional<import("zod").ZodBoolean>;
541
545
  authorFlairs: import("zod").ZodOptional<import("zod").ZodBoolean>;
@@ -36,6 +36,7 @@ declare class Publication extends TypedEmitter<PublicationEvents> {
36
36
  pubsubTopic?: CommunityIpfsType["pubsubTopic"];
37
37
  };
38
38
  _publishingToLocalCommunity?: LocalCommunity;
39
+ _backgroundCommunityRefresh?: Promise<unknown>;
39
40
  _challengeExchanges: Record<string, // challengeRequestId stringified
40
41
  {
41
42
  challengeAnswer?: DecryptedChallengeAnswerMessageType;
@@ -102,6 +103,8 @@ declare class Publication extends TypedEmitter<PublicationEvents> {
102
103
  _fetchCommunityForPublishing(): Promise<NonNullable<Publication["_community"]>>;
103
104
  stop(): Promise<void>;
104
105
  _isAllAttemptsExhausted(maxNumOfChallengeExchanges: number): boolean;
106
+ private _abandonProviderIfStoppedWhileSubscribing;
107
+ private _unregisterFromPkcOncePublishWorkSettles;
105
108
  private _postSucessOrFailurePublishing;
106
109
  private _handleIncomingChallengeRequestFromRpc;
107
110
  private _handleIncomingChallengeFromRpc;
@@ -122,5 +125,6 @@ declare class Publication extends TypedEmitter<PublicationEvents> {
122
125
  private _getPubsubProviders;
123
126
  private _publishWithLocalCommunity;
124
127
  publish(): Promise<void>;
128
+ private _publishAfterRegistering;
125
129
  }
126
130
  export default Publication;
@@ -562,9 +562,16 @@ class Publication extends TypedEmitter {
562
562
  // cache.has will return false if the item is stale
563
563
  if (!this._pkc._memCaches.communityForPublishing.has(this.communityAddress)) {
564
564
  log("The cache of community is stale, we will use the cached and update in the background");
565
- this._pkc
565
+ // Held on the publication so stop() can drain it. Without that the refresh outlives
566
+ // the PKC and goes on creating community instances after teardown (issue #270).
567
+ const refresh = this._pkc
566
568
  .getCommunity({ publicKey: this.communityPublicKey, name: this.communityName })
567
- .catch((e) => log.error("Failed to update cache of community", this.communityAddress, e));
569
+ .catch((e) => log.error("Failed to update cache of community", this.communityAddress, e))
570
+ .finally(() => {
571
+ if (this._backgroundCommunityRefresh === refresh)
572
+ this._backgroundCommunityRefresh = undefined;
573
+ });
574
+ this._backgroundCommunityRefresh = refresh;
568
575
  }
569
576
  return cachedCommunity;
570
577
  }
@@ -572,8 +579,19 @@ class Publication extends TypedEmitter {
572
579
  return this._clientsManager.fetchCommunityForPublishingWithCacheGuard();
573
580
  }
574
581
  async stop() {
575
- await this._postSucessOrFailurePublishing();
576
- this._updatePublishingStateWithEmission("stopped");
582
+ try {
583
+ await this._postSucessOrFailurePublishing();
584
+ }
585
+ finally {
586
+ // Stopping the publication does not cancel a refresh that is already in flight, so wait
587
+ // it out. On the pkc.destroy() path the destroy abort has already fired, so this unwinds
588
+ // fast. In a finally because pkc.destroy() catches a rejecting stop() and then clears
589
+ // _publishingPublications, so a cleanup failure would otherwise leave the refresh
590
+ // running past teardown, which is the exact thing this is here to prevent.
591
+ if (this._backgroundCommunityRefresh)
592
+ await this._backgroundCommunityRefresh;
593
+ this._updatePublishingStateWithEmission("stopped");
594
+ }
577
595
  }
578
596
  _isAllAttemptsExhausted(maxNumOfChallengeExchanges) {
579
597
  // When all providers failed to publish
@@ -588,8 +606,40 @@ class Publication extends TypedEmitter {
588
606
  return doneWaitingForChallenge;
589
607
  });
590
608
  }
609
+ // stop() and pkc.destroy() are not cancellation: they unsubscribe and mark us stopped, but a
610
+ // pubsub subscribe that was already in flight still resolves afterwards and the publish loop
611
+ // carries on to publish a challenge request behind a torn-down PKC. Worse, that subscribe
612
+ // re-established a subscription after teardown already ran its unsubscribe, so returning
613
+ // without undoing it leaves it dangling on the provider. Returns true when the caller should
614
+ // abandon this provider (issue #270).
615
+ async _abandonProviderIfStoppedWhileSubscribing(providerUrl) {
616
+ if (!this._pkc.destroyed && this.state !== "stopped")
617
+ return false;
618
+ const log = Logger("pkc-js:publication:publish:_abandonProviderIfStoppedWhileSubscribing");
619
+ log("Publication was stopped while subscribing to pubsub, will not publish a challenge request", providerUrl);
620
+ try {
621
+ await this._clientsManager.pubsubUnsubscribeOnProvider(this._communityChallengePubsubExchangeTopic(), providerUrl, this._handleChallengeExchange);
622
+ }
623
+ catch (e) {
624
+ log.error("Failed to undo the pubsub subscription that resolved after being stopped", providerUrl, e);
625
+ }
626
+ this._updatePubsubState("stopped", providerUrl);
627
+ return true;
628
+ }
629
+ // A refresh fired at the start of publish can outlive the exchange it was fired from:
630
+ // getCommunity() on a remote community waits for an IPNS update, while a local challenge
631
+ // exchange finishes in milliseconds. Stay registered until it settles, otherwise the publish
632
+ // ends, we unregister, and pkc.destroy() has nothing left to drain the refresh through.
633
+ _unregisterFromPkcOncePublishWorkSettles() {
634
+ const refresh = this._backgroundCommunityRefresh;
635
+ if (refresh)
636
+ void refresh.finally(() => this._pkc._publishingPublications.delete(this));
637
+ else
638
+ this._pkc._publishingPublications.delete(this);
639
+ }
591
640
  async _postSucessOrFailurePublishing() {
592
641
  const log = Logger("pkc-js:publication:_postSucessOrFailurePublishing");
642
+ this._unregisterFromPkcOncePublishWorkSettles();
593
643
  this._setStateWithEmission("stopped");
594
644
  if (this._rpcPublishSubscriptionId) {
595
645
  try {
@@ -844,6 +894,8 @@ class Publication extends TypedEmitter {
844
894
  this._updatePubsubState("subscribing-pubsub", providerUrl);
845
895
  try {
846
896
  await this._clientsManager.pubsubSubscribeOnProvider(this._communityChallengePubsubExchangeTopic(), this._handleChallengeExchange, providerUrl);
897
+ if (await this._abandonProviderIfStoppedWhileSubscribing(providerUrl))
898
+ return;
847
899
  this._updatePubsubState("publishing-challenge-request", providerUrl);
848
900
  await this._clientsManager.pubsubPublishOnProvider(this._communityChallengePubsubExchangeTopic(), challengeRequest, providerUrl);
849
901
  this._challengeExchanges[challengeRequest.challengeRequestId.toString()].challengeRequestPublishTimestamp =
@@ -946,8 +998,29 @@ class Publication extends TypedEmitter {
946
998
  });
947
999
  }
948
1000
  async publish() {
949
- const log = Logger("pkc-js:publication:publish");
950
1001
  this._validatePublicationFields();
1002
+ // Track before the first await so pkc.destroy() can stop us no matter how far the exchange
1003
+ // has progressed. Untracked in _postSucessOrFailurePublishing once the exchange ends, or in
1004
+ // the catch below if publish never got that far.
1005
+ this._pkc._publishingPublications.add(this);
1006
+ try {
1007
+ return await this._publishAfterRegistering();
1008
+ }
1009
+ catch (e) {
1010
+ // Not every throw reaches the funnel: pre-flight failures (_initCommunity, signing, the
1011
+ // signature hook, the RPC publish call) reject before a challenge exchange exists, and
1012
+ // _initCommunity does its own stopped/failed emission and rethrows. Without this we stay
1013
+ // strongly referenced in _publishingPublications for the lifetime of the PKC, and
1014
+ // destroy() later stops a publication that never started. Unregistering directly rather
1015
+ // than through the funnel keeps the error path free of a redundant state emission and of
1016
+ // a pubsub unsubscribe for a topic that was never subscribed. Deleting twice is a no-op,
1017
+ // so the throw sites that do funnel are unaffected.
1018
+ this._unregisterFromPkcOncePublishWorkSettles();
1019
+ throw e;
1020
+ }
1021
+ }
1022
+ async _publishAfterRegistering() {
1023
+ const log = Logger("pkc-js:publication:publish");
951
1024
  this._setStateWithEmission("publishing");
952
1025
  // Fetch community for BOTH RPC and non-RPC paths (needed for signing)
953
1026
  await this._initCommunity();
@@ -992,6 +1065,8 @@ class Publication extends TypedEmitter {
992
1065
  try {
993
1066
  // this will throw if we succeed in subscribing first attempt, but then fail to publish
994
1067
  await this._clientsManager.pubsubSubscribeOnProvider(this._communityChallengePubsubExchangeTopic(), this._handleChallengeExchange, providerUrl);
1068
+ if (await this._abandonProviderIfStoppedWhileSubscribing(providerUrl))
1069
+ return;
995
1070
  this._updatePubsubState("publishing-challenge-request", providerUrl);
996
1071
  await this._clientsManager.pubsubPublishOnProvider(this._communityChallengePubsubExchangeTopic(), challengeRequest, providerUrl);
997
1072
  this._challengeExchanges[challengeRequest.challengeRequestId.toString()].challengeRequestPublishTimestamp = timestamp();