@pkcprotocol/pkc-js 0.0.107 → 0.0.109

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 (355) hide show
  1. package/README.md +15 -0
  2. package/dist/browser/clients/base-client-manager.d.ts +1 -1
  3. package/dist/browser/clients/base-client-manager.js +6 -2
  4. package/dist/browser/clients/base-client-manager.js.map +1 -1
  5. package/dist/browser/clients/rpc-client/rpc-schema-util.d.ts +16 -0
  6. package/dist/browser/clients/rpc-client/schema.d.ts +16 -0
  7. package/dist/browser/community/remote-community.d.ts +1 -0
  8. package/dist/browser/community/remote-community.js +1 -0
  9. package/dist/browser/community/remote-community.js.map +1 -1
  10. package/dist/browser/community/rpc-local-community.js +13 -0
  11. package/dist/browser/community/rpc-local-community.js.map +1 -1
  12. package/dist/browser/community/schema.d.ts +1369 -1
  13. package/dist/browser/community/schema.js +90 -4
  14. package/dist/browser/community/schema.js.map +1 -1
  15. package/dist/browser/community/types.d.ts +13 -2
  16. package/dist/browser/constants.d.ts +1 -0
  17. package/dist/browser/constants.js +6 -0
  18. package/dist/browser/constants.js.map +1 -1
  19. package/dist/browser/errors.d.ts +15 -1
  20. package/dist/browser/errors.js +15 -0
  21. package/dist/browser/errors.js.map +1 -1
  22. package/dist/browser/generated-version.d.ts +1 -1
  23. package/dist/browser/generated-version.js +1 -1
  24. package/dist/browser/helia/helia-for-pkc.js +41 -4
  25. package/dist/browser/helia/helia-for-pkc.js.map +1 -1
  26. package/dist/browser/helia/util.js +4 -1
  27. package/dist/browser/helia/util.js.map +1 -1
  28. package/dist/browser/index-with-compile-cache.d.ts +559 -0
  29. package/dist/browser/index.d.ts +1120 -0
  30. package/dist/browser/index.js +5 -0
  31. package/dist/browser/index.js.map +1 -1
  32. package/dist/browser/logger.js +10 -1
  33. package/dist/browser/logger.js.map +1 -1
  34. package/dist/browser/object-key-util.d.ts +2 -0
  35. package/dist/browser/object-key-util.js +12 -0
  36. package/dist/browser/object-key-util.js.map +1 -0
  37. package/dist/browser/pages/page-sort-options.d.ts +14 -0
  38. package/dist/browser/pages/page-sort-options.js +92 -0
  39. package/dist/browser/pages/page-sort-options.js.map +1 -0
  40. package/dist/browser/pages/page-sort-scoring.d.ts +35 -0
  41. package/dist/browser/pages/page-sort-scoring.js +124 -0
  42. package/dist/browser/pages/page-sort-scoring.js.map +1 -0
  43. package/dist/browser/pages/pages-client-manager.d.ts +1 -0
  44. package/dist/browser/pages/pages-client-manager.js +16 -4
  45. package/dist/browser/pages/pages-client-manager.js.map +1 -1
  46. package/dist/browser/pages/pkc-js-page-sorts/active.d.ts +3 -0
  47. package/dist/browser/pages/pkc-js-page-sorts/active.js +15 -0
  48. package/dist/browser/pages/pkc-js-page-sorts/active.js.map +1 -0
  49. package/dist/browser/pages/pkc-js-page-sorts/best.d.ts +3 -0
  50. package/dist/browser/pages/pkc-js-page-sorts/best.js +10 -0
  51. package/dist/browser/pages/pkc-js-page-sorts/best.js.map +1 -0
  52. package/dist/browser/pages/pkc-js-page-sorts/controversial.d.ts +3 -0
  53. package/dist/browser/pages/pkc-js-page-sorts/controversial.js +10 -0
  54. package/dist/browser/pages/pkc-js-page-sorts/controversial.js.map +1 -0
  55. package/dist/browser/pages/pkc-js-page-sorts/hot.d.ts +3 -0
  56. package/dist/browser/pages/pkc-js-page-sorts/hot.js +10 -0
  57. package/dist/browser/pages/pkc-js-page-sorts/hot.js.map +1 -0
  58. package/dist/browser/pages/pkc-js-page-sorts/index.d.ts +2 -0
  59. package/dist/browser/pages/pkc-js-page-sorts/index.js +37 -0
  60. package/dist/browser/pages/pkc-js-page-sorts/index.js.map +1 -0
  61. package/dist/browser/pages/pkc-js-page-sorts/new-flat.d.ts +3 -0
  62. package/dist/browser/pages/pkc-js-page-sorts/new-flat.js +12 -0
  63. package/dist/browser/pages/pkc-js-page-sorts/new-flat.js.map +1 -0
  64. package/dist/browser/pages/pkc-js-page-sorts/new.d.ts +3 -0
  65. package/dist/browser/pages/pkc-js-page-sorts/new.js +10 -0
  66. package/dist/browser/pages/pkc-js-page-sorts/new.js.map +1 -0
  67. package/dist/browser/pages/pkc-js-page-sorts/old-flat.d.ts +3 -0
  68. package/dist/browser/pages/pkc-js-page-sorts/old-flat.js +12 -0
  69. package/dist/browser/pages/pkc-js-page-sorts/old-flat.js.map +1 -0
  70. package/dist/browser/pages/pkc-js-page-sorts/old.d.ts +3 -0
  71. package/dist/browser/pages/pkc-js-page-sorts/old.js +10 -0
  72. package/dist/browser/pages/pkc-js-page-sorts/old.js.map +1 -0
  73. package/dist/browser/pages/pkc-js-page-sorts/top-all.d.ts +3 -0
  74. package/dist/browser/pages/pkc-js-page-sorts/top-all.js +10 -0
  75. package/dist/browser/pages/pkc-js-page-sorts/top-all.js.map +1 -0
  76. package/dist/browser/pages/pkc-js-page-sorts/top-day.d.ts +3 -0
  77. package/dist/browser/pages/pkc-js-page-sorts/top-day.js +11 -0
  78. package/dist/browser/pages/pkc-js-page-sorts/top-day.js.map +1 -0
  79. package/dist/browser/pages/pkc-js-page-sorts/top-hour.d.ts +3 -0
  80. package/dist/browser/pages/pkc-js-page-sorts/top-hour.js +11 -0
  81. package/dist/browser/pages/pkc-js-page-sorts/top-hour.js.map +1 -0
  82. package/dist/browser/pages/pkc-js-page-sorts/top-month.d.ts +3 -0
  83. package/dist/browser/pages/pkc-js-page-sorts/top-month.js +11 -0
  84. package/dist/browser/pages/pkc-js-page-sorts/top-month.js.map +1 -0
  85. package/dist/browser/pages/pkc-js-page-sorts/top-week.d.ts +3 -0
  86. package/dist/browser/pages/pkc-js-page-sorts/top-week.js +11 -0
  87. package/dist/browser/pages/pkc-js-page-sorts/top-week.js.map +1 -0
  88. package/dist/browser/pages/pkc-js-page-sorts/top-year.d.ts +3 -0
  89. package/dist/browser/pages/pkc-js-page-sorts/top-year.js +11 -0
  90. package/dist/browser/pages/pkc-js-page-sorts/top-year.js.map +1 -0
  91. package/dist/browser/pages/pkc-js-page-sorts/top.d.ts +3 -0
  92. package/dist/browser/pages/pkc-js-page-sorts/top.js +12 -0
  93. package/dist/browser/pages/pkc-js-page-sorts/top.js.map +1 -0
  94. package/dist/browser/pages/pkc-js-page-sorts/util.d.ts +3 -0
  95. package/dist/browser/pages/pkc-js-page-sorts/util.js +7 -0
  96. package/dist/browser/pages/pkc-js-page-sorts/util.js.map +1 -0
  97. package/dist/browser/pages/schema.d.ts +1 -0
  98. package/dist/browser/pages/schema.js +10 -3
  99. package/dist/browser/pages/schema.js.map +1 -1
  100. package/dist/browser/pages/types.d.ts +8 -0
  101. package/dist/browser/pages/util.d.ts +2 -1
  102. package/dist/browser/pages/util.js +11 -10
  103. package/dist/browser/pages/util.js.map +1 -1
  104. package/dist/browser/pkc/pkc.d.ts +2 -1
  105. package/dist/browser/pkc/pkc.js +2 -1
  106. package/dist/browser/pkc/pkc.js.map +1 -1
  107. package/dist/browser/pkc-error.d.ts +1 -1
  108. package/dist/browser/publications/comment/comment-client-manager.d.ts +2 -2
  109. package/dist/browser/publications/comment/comment-client-manager.js +3 -1
  110. package/dist/browser/publications/comment/comment-client-manager.js.map +1 -1
  111. package/dist/browser/publications/community-edit/schema.d.ts +64 -0
  112. package/dist/browser/pubsub-messages/schema.d.ts +32 -0
  113. package/dist/browser/rpc/src/index.js +14 -1
  114. package/dist/browser/rpc/src/index.js.map +1 -1
  115. package/dist/browser/rpc/src/lib/pkc-js/index.d.ts +559 -0
  116. package/dist/browser/rpc/src/schema.d.ts +3371 -0
  117. package/dist/browser/rpc/src/schema.js +6 -2
  118. package/dist/browser/rpc/src/schema.js.map +1 -1
  119. package/dist/browser/runtime/browser/community/page-sorts/index.d.ts +1 -0
  120. package/dist/browser/runtime/browser/community/page-sorts/index.js +6 -0
  121. package/dist/browser/runtime/browser/community/page-sorts/index.js.map +1 -0
  122. package/dist/browser/runtime/node/community/db-handler.d.ts +78 -20
  123. package/dist/browser/runtime/node/community/db-handler.js +1151 -734
  124. package/dist/browser/runtime/node/community/db-handler.js.map +1 -1
  125. package/dist/browser/runtime/node/community/db-row-parser.d.ts +13 -0
  126. package/dist/browser/runtime/node/community/db-row-parser.js +58 -1
  127. package/dist/browser/runtime/node/community/db-row-parser.js.map +1 -1
  128. package/dist/browser/runtime/node/community/local-community/cleanup.js +23 -10
  129. package/dist/browser/runtime/node/community/local-community/cleanup.js.map +1 -1
  130. package/dist/browser/runtime/node/community/local-community/comment-updates.d.ts +12 -2
  131. package/dist/browser/runtime/node/community/local-community/comment-updates.js +101 -70
  132. package/dist/browser/runtime/node/community/local-community/comment-updates.js.map +1 -1
  133. package/dist/browser/runtime/node/community/local-community/db-state.js +8 -0
  134. package/dist/browser/runtime/node/community/local-community/db-state.js.map +1 -1
  135. package/dist/browser/runtime/node/community/local-community/editing.d.ts +9 -2
  136. package/dist/browser/runtime/node/community/local-community/editing.js +32 -5
  137. package/dist/browser/runtime/node/community/local-community/editing.js.map +1 -1
  138. package/dist/browser/runtime/node/community/local-community/ipns-publishing.d.ts +2 -2
  139. package/dist/browser/runtime/node/community/local-community/ipns-publishing.js +49 -27
  140. package/dist/browser/runtime/node/community/local-community/ipns-publishing.js.map +1 -1
  141. package/dist/browser/runtime/node/community/local-community/lifecycle.d.ts +1 -0
  142. package/dist/browser/runtime/node/community/local-community/lifecycle.js +49 -18
  143. package/dist/browser/runtime/node/community/local-community/lifecycle.js.map +1 -1
  144. package/dist/browser/runtime/node/community/local-community.d.ts +5 -1
  145. package/dist/browser/runtime/node/community/local-community.js +13 -1
  146. package/dist/browser/runtime/node/community/local-community.js.map +1 -1
  147. package/dist/browser/runtime/node/community/page-generator.d.ts +44 -413
  148. package/dist/browser/runtime/node/community/page-generator.js +531 -308
  149. package/dist/browser/runtime/node/community/page-generator.js.map +1 -1
  150. package/dist/browser/runtime/node/community/page-sorts/index.d.ts +64 -0
  151. package/dist/browser/runtime/node/community/page-sorts/index.js +264 -0
  152. package/dist/browser/runtime/node/community/page-sorts/index.js.map +1 -0
  153. package/dist/browser/runtime/node/util.js +1 -1
  154. package/dist/browser/runtime/node/util.js.map +1 -1
  155. package/dist/browser/schema/schema-util.d.ts +142 -1
  156. package/dist/browser/schema/schema-util.js +11 -0
  157. package/dist/browser/schema/schema-util.js.map +1 -1
  158. package/dist/browser/schema/schema.js +1 -1
  159. package/dist/browser/schema/schema.js.map +1 -1
  160. package/dist/browser/schema.d.ts +4469 -0
  161. package/dist/browser/schema.js +2 -1
  162. package/dist/browser/schema.js.map +1 -1
  163. package/dist/browser/signer/signatures.d.ts +1 -1
  164. package/dist/browser/signer/signatures.js +45 -1
  165. package/dist/browser/signer/signatures.js.map +1 -1
  166. package/dist/browser/test/test-util.d.ts +63 -0
  167. package/dist/browser/test/test-util.js +66 -11
  168. package/dist/browser/test/test-util.js.map +1 -1
  169. package/dist/browser/util.d.ts +4 -0
  170. package/dist/browser/util.js +87 -0
  171. package/dist/browser/util.js.map +1 -1
  172. package/dist/browser/version.js +1 -1
  173. package/dist/bundled/bundle-manifest.json +235 -211
  174. package/dist/bundled/chunks/{helia-for-pkc-BCVI3rjp.js → helia-for-pkc-BFRxfgOR.js} +58 -34
  175. package/dist/bundled/chunks/{local-community-t5S6o-0o.js → local-community-B9vbrS8T.js} +1 -1
  176. package/dist/bundled/chunks/{local-community-CK7TUwwd.js → local-community-C8TU8XWc.js} +6719 -6055
  177. package/dist/bundled/chunks/{node-BpoCiJjL.js → node-BbSBdhh8.js} +1201 -15
  178. package/dist/bundled/chunks/{rpc-local-community-CR1TnLfm.js → rpc-local-community-BIyZJsOt.js} +13632 -14131
  179. package/dist/bundled/chunks/{util-bxE0EcD4.js → util-BJFQrwth.js} +1 -1
  180. package/dist/bundled/chunks/{schema-DWRg9_bS.js → util-CdbKTOCa.js} +751 -601
  181. package/dist/bundled/index.js +2 -2
  182. package/dist/bundled/rpc/src/index.js +22 -9
  183. package/dist/node/clients/base-client-manager.d.ts +1 -1
  184. package/dist/node/clients/base-client-manager.js +6 -2
  185. package/dist/node/clients/base-client-manager.js.map +1 -1
  186. package/dist/node/clients/rpc-client/rpc-schema-util.d.ts +16 -0
  187. package/dist/node/clients/rpc-client/schema.d.ts +16 -0
  188. package/dist/node/community/remote-community.d.ts +1 -0
  189. package/dist/node/community/remote-community.js +1 -0
  190. package/dist/node/community/remote-community.js.map +1 -1
  191. package/dist/node/community/rpc-local-community.js +13 -0
  192. package/dist/node/community/rpc-local-community.js.map +1 -1
  193. package/dist/node/community/schema.d.ts +1369 -1
  194. package/dist/node/community/schema.js +90 -4
  195. package/dist/node/community/schema.js.map +1 -1
  196. package/dist/node/community/types.d.ts +13 -2
  197. package/dist/node/constants.d.ts +1 -0
  198. package/dist/node/constants.js +6 -0
  199. package/dist/node/constants.js.map +1 -1
  200. package/dist/node/errors.d.ts +15 -1
  201. package/dist/node/errors.js +15 -0
  202. package/dist/node/errors.js.map +1 -1
  203. package/dist/node/generated-version.d.ts +1 -1
  204. package/dist/node/generated-version.js +1 -1
  205. package/dist/node/helia/helia-for-pkc.js +41 -4
  206. package/dist/node/helia/helia-for-pkc.js.map +1 -1
  207. package/dist/node/helia/util.js +4 -1
  208. package/dist/node/helia/util.js.map +1 -1
  209. package/dist/node/index-with-compile-cache.d.ts +559 -0
  210. package/dist/node/index.d.ts +1120 -0
  211. package/dist/node/index.js +5 -0
  212. package/dist/node/index.js.map +1 -1
  213. package/dist/node/logger.js +10 -1
  214. package/dist/node/logger.js.map +1 -1
  215. package/dist/node/object-key-util.d.ts +2 -0
  216. package/dist/node/object-key-util.js +12 -0
  217. package/dist/node/object-key-util.js.map +1 -0
  218. package/dist/node/pages/page-sort-options.d.ts +14 -0
  219. package/dist/node/pages/page-sort-options.js +92 -0
  220. package/dist/node/pages/page-sort-options.js.map +1 -0
  221. package/dist/node/pages/page-sort-scoring.d.ts +35 -0
  222. package/dist/node/pages/page-sort-scoring.js +124 -0
  223. package/dist/node/pages/page-sort-scoring.js.map +1 -0
  224. package/dist/node/pages/pages-client-manager.d.ts +1 -0
  225. package/dist/node/pages/pages-client-manager.js +16 -4
  226. package/dist/node/pages/pages-client-manager.js.map +1 -1
  227. package/dist/node/pages/pkc-js-page-sorts/active.d.ts +3 -0
  228. package/dist/node/pages/pkc-js-page-sorts/active.js +15 -0
  229. package/dist/node/pages/pkc-js-page-sorts/active.js.map +1 -0
  230. package/dist/node/pages/pkc-js-page-sorts/best.d.ts +3 -0
  231. package/dist/node/pages/pkc-js-page-sorts/best.js +10 -0
  232. package/dist/node/pages/pkc-js-page-sorts/best.js.map +1 -0
  233. package/dist/node/pages/pkc-js-page-sorts/controversial.d.ts +3 -0
  234. package/dist/node/pages/pkc-js-page-sorts/controversial.js +10 -0
  235. package/dist/node/pages/pkc-js-page-sorts/controversial.js.map +1 -0
  236. package/dist/node/pages/pkc-js-page-sorts/hot.d.ts +3 -0
  237. package/dist/node/pages/pkc-js-page-sorts/hot.js +10 -0
  238. package/dist/node/pages/pkc-js-page-sorts/hot.js.map +1 -0
  239. package/dist/node/pages/pkc-js-page-sorts/index.d.ts +2 -0
  240. package/dist/node/pages/pkc-js-page-sorts/index.js +37 -0
  241. package/dist/node/pages/pkc-js-page-sorts/index.js.map +1 -0
  242. package/dist/node/pages/pkc-js-page-sorts/new-flat.d.ts +3 -0
  243. package/dist/node/pages/pkc-js-page-sorts/new-flat.js +12 -0
  244. package/dist/node/pages/pkc-js-page-sorts/new-flat.js.map +1 -0
  245. package/dist/node/pages/pkc-js-page-sorts/new.d.ts +3 -0
  246. package/dist/node/pages/pkc-js-page-sorts/new.js +10 -0
  247. package/dist/node/pages/pkc-js-page-sorts/new.js.map +1 -0
  248. package/dist/node/pages/pkc-js-page-sorts/old-flat.d.ts +3 -0
  249. package/dist/node/pages/pkc-js-page-sorts/old-flat.js +12 -0
  250. package/dist/node/pages/pkc-js-page-sorts/old-flat.js.map +1 -0
  251. package/dist/node/pages/pkc-js-page-sorts/old.d.ts +3 -0
  252. package/dist/node/pages/pkc-js-page-sorts/old.js +10 -0
  253. package/dist/node/pages/pkc-js-page-sorts/old.js.map +1 -0
  254. package/dist/node/pages/pkc-js-page-sorts/top-all.d.ts +3 -0
  255. package/dist/node/pages/pkc-js-page-sorts/top-all.js +10 -0
  256. package/dist/node/pages/pkc-js-page-sorts/top-all.js.map +1 -0
  257. package/dist/node/pages/pkc-js-page-sorts/top-day.d.ts +3 -0
  258. package/dist/node/pages/pkc-js-page-sorts/top-day.js +11 -0
  259. package/dist/node/pages/pkc-js-page-sorts/top-day.js.map +1 -0
  260. package/dist/node/pages/pkc-js-page-sorts/top-hour.d.ts +3 -0
  261. package/dist/node/pages/pkc-js-page-sorts/top-hour.js +11 -0
  262. package/dist/node/pages/pkc-js-page-sorts/top-hour.js.map +1 -0
  263. package/dist/node/pages/pkc-js-page-sorts/top-month.d.ts +3 -0
  264. package/dist/node/pages/pkc-js-page-sorts/top-month.js +11 -0
  265. package/dist/node/pages/pkc-js-page-sorts/top-month.js.map +1 -0
  266. package/dist/node/pages/pkc-js-page-sorts/top-week.d.ts +3 -0
  267. package/dist/node/pages/pkc-js-page-sorts/top-week.js +11 -0
  268. package/dist/node/pages/pkc-js-page-sorts/top-week.js.map +1 -0
  269. package/dist/node/pages/pkc-js-page-sorts/top-year.d.ts +3 -0
  270. package/dist/node/pages/pkc-js-page-sorts/top-year.js +11 -0
  271. package/dist/node/pages/pkc-js-page-sorts/top-year.js.map +1 -0
  272. package/dist/node/pages/pkc-js-page-sorts/top.d.ts +3 -0
  273. package/dist/node/pages/pkc-js-page-sorts/top.js +12 -0
  274. package/dist/node/pages/pkc-js-page-sorts/top.js.map +1 -0
  275. package/dist/node/pages/pkc-js-page-sorts/util.d.ts +3 -0
  276. package/dist/node/pages/pkc-js-page-sorts/util.js +7 -0
  277. package/dist/node/pages/pkc-js-page-sorts/util.js.map +1 -0
  278. package/dist/node/pages/schema.d.ts +1 -0
  279. package/dist/node/pages/schema.js +10 -3
  280. package/dist/node/pages/schema.js.map +1 -1
  281. package/dist/node/pages/types.d.ts +8 -0
  282. package/dist/node/pages/util.d.ts +2 -1
  283. package/dist/node/pages/util.js +11 -10
  284. package/dist/node/pages/util.js.map +1 -1
  285. package/dist/node/pkc/pkc.d.ts +2 -1
  286. package/dist/node/pkc/pkc.js +2 -1
  287. package/dist/node/pkc/pkc.js.map +1 -1
  288. package/dist/node/pkc-error.d.ts +1 -1
  289. package/dist/node/publications/comment/comment-client-manager.d.ts +2 -2
  290. package/dist/node/publications/comment/comment-client-manager.js +3 -1
  291. package/dist/node/publications/comment/comment-client-manager.js.map +1 -1
  292. package/dist/node/publications/community-edit/schema.d.ts +64 -0
  293. package/dist/node/pubsub-messages/schema.d.ts +32 -0
  294. package/dist/node/rpc/src/index.js +14 -1
  295. package/dist/node/rpc/src/index.js.map +1 -1
  296. package/dist/node/rpc/src/lib/pkc-js/index.d.ts +559 -0
  297. package/dist/node/rpc/src/schema.d.ts +3371 -0
  298. package/dist/node/rpc/src/schema.js +6 -2
  299. package/dist/node/rpc/src/schema.js.map +1 -1
  300. package/dist/node/runtime/browser/community/page-sorts/index.d.ts +1 -0
  301. package/dist/node/runtime/browser/community/page-sorts/index.js +6 -0
  302. package/dist/node/runtime/browser/community/page-sorts/index.js.map +1 -0
  303. package/dist/node/runtime/node/community/db-handler.d.ts +78 -20
  304. package/dist/node/runtime/node/community/db-handler.js +1151 -734
  305. package/dist/node/runtime/node/community/db-handler.js.map +1 -1
  306. package/dist/node/runtime/node/community/db-row-parser.d.ts +13 -0
  307. package/dist/node/runtime/node/community/db-row-parser.js +58 -1
  308. package/dist/node/runtime/node/community/db-row-parser.js.map +1 -1
  309. package/dist/node/runtime/node/community/local-community/cleanup.js +23 -10
  310. package/dist/node/runtime/node/community/local-community/cleanup.js.map +1 -1
  311. package/dist/node/runtime/node/community/local-community/comment-updates.d.ts +12 -2
  312. package/dist/node/runtime/node/community/local-community/comment-updates.js +101 -70
  313. package/dist/node/runtime/node/community/local-community/comment-updates.js.map +1 -1
  314. package/dist/node/runtime/node/community/local-community/db-state.js +8 -0
  315. package/dist/node/runtime/node/community/local-community/db-state.js.map +1 -1
  316. package/dist/node/runtime/node/community/local-community/editing.d.ts +9 -2
  317. package/dist/node/runtime/node/community/local-community/editing.js +32 -5
  318. package/dist/node/runtime/node/community/local-community/editing.js.map +1 -1
  319. package/dist/node/runtime/node/community/local-community/ipns-publishing.d.ts +2 -2
  320. package/dist/node/runtime/node/community/local-community/ipns-publishing.js +49 -27
  321. package/dist/node/runtime/node/community/local-community/ipns-publishing.js.map +1 -1
  322. package/dist/node/runtime/node/community/local-community/lifecycle.d.ts +1 -0
  323. package/dist/node/runtime/node/community/local-community/lifecycle.js +49 -18
  324. package/dist/node/runtime/node/community/local-community/lifecycle.js.map +1 -1
  325. package/dist/node/runtime/node/community/local-community.d.ts +5 -1
  326. package/dist/node/runtime/node/community/local-community.js +13 -1
  327. package/dist/node/runtime/node/community/local-community.js.map +1 -1
  328. package/dist/node/runtime/node/community/page-generator.d.ts +44 -413
  329. package/dist/node/runtime/node/community/page-generator.js +531 -308
  330. package/dist/node/runtime/node/community/page-generator.js.map +1 -1
  331. package/dist/node/runtime/node/community/page-sorts/index.d.ts +64 -0
  332. package/dist/node/runtime/node/community/page-sorts/index.js +264 -0
  333. package/dist/node/runtime/node/community/page-sorts/index.js.map +1 -0
  334. package/dist/node/runtime/node/util.js +1 -1
  335. package/dist/node/runtime/node/util.js.map +1 -1
  336. package/dist/node/schema/schema-util.d.ts +142 -1
  337. package/dist/node/schema/schema-util.js +11 -0
  338. package/dist/node/schema/schema-util.js.map +1 -1
  339. package/dist/node/schema/schema.js +1 -1
  340. package/dist/node/schema/schema.js.map +1 -1
  341. package/dist/node/schema.d.ts +4469 -0
  342. package/dist/node/schema.js +2 -1
  343. package/dist/node/schema.js.map +1 -1
  344. package/dist/node/signer/signatures.d.ts +1 -1
  345. package/dist/node/signer/signatures.js +45 -1
  346. package/dist/node/signer/signatures.js.map +1 -1
  347. package/dist/node/test/test-util.d.ts +63 -0
  348. package/dist/node/test/test-util.js +66 -11
  349. package/dist/node/test/test-util.js.map +1 -1
  350. package/dist/node/util.d.ts +4 -0
  351. package/dist/node/util.js +87 -0
  352. package/dist/node/util.js.map +1 -1
  353. package/dist/node/version.js +1 -1
  354. package/package.json +2 -2
  355. package/dist/bundled/chunks/{src-Dz9wtvrK.js → src-B07ldGHS.js} +1 -1
@@ -8,6 +8,7 @@ import browserNativeFunctions from "./runtime/browser/native-functions.js";
8
8
  import { shortifyAddress, shortifyCid } from "./util.js";
9
9
  import { createAnchorIpnsRecord as signerCreateAnchorIpnsRecord } from "./signer/ipns-record.js";
10
10
  import { pkcJsChallenges } from "./runtime/browser/community/challenges/index.js";
11
+ import { pkcJsPageSorts } from "./runtime/browser/community/page-sorts/index.js";
11
12
  import { PKCWithRpcClient } from "./pkc/pkc-with-rpc-client.js";
12
13
  import { parseRpcAuthorNameParam, parseRpcCidParam } from "./clients/rpc-client/rpc-schema-util.js";
13
14
  const PKC = async function PKC(pkcOptions = {}) {
@@ -28,6 +29,9 @@ PKC.nativeFunctions = { node: nodeNativeFunctions, browser: browserNativeFunctio
28
29
  PKC.getShortCid = getShortCidValue;
29
30
  PKC.getShortAddress = getShortAddressValue;
30
31
  PKC.challenges = pkcJsChallenges;
32
+ // The built-in page sorts (issue #73), keyed by the name settings.pages[].name refers to. A consumer may add or
33
+ // shadow entries here or pass `pageSorts` in the PKC options; packages installed by bitsocial-cli register the same way.
34
+ PKC.pageSorts = pkcJsPageSorts;
31
35
  // Delegation setup (#234): the anchor record An -> Mn is signed with As, the one key that by design
32
36
  // never reaches the node, so this is the single step of the flow that has to run in the consumer's
33
37
  // process. Nothing in src/ calls it and nothing ever can, which is exactly why it belongs on the
@@ -40,5 +44,6 @@ export const nativeFunctions = PKC.nativeFunctions;
40
44
  export const getShortCid = PKC.getShortCid;
41
45
  export const getShortAddress = PKC.getShortAddress;
42
46
  export const challenges = PKC.challenges;
47
+ export const pageSorts = PKC.pageSorts;
43
48
  export const createAnchorIpnsRecord = PKC.createAnchorIpnsRecord;
44
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAClD,QAAQ,EAAE,CAAC;AACX,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,sBAAsB,IAAI,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAEpG,MAAM,GAAG,GAAG,KAAK,UAAU,GAAG,CAAC,aAA8B,EAAE;IAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9G,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,MAA0B,EAAE,EAAE;IACxD,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAE,EAAE;IAC7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,GAAG,CAAC,kBAAkB,GAAG,sBAAsB,CAAC;AAChD,GAAG,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;AACrF,GAAG,CAAC,WAAW,GAAG,gBAAgB,CAAC;AACnC,GAAG,CAAC,eAAe,GAAG,oBAAoB,CAAC;AAC3C,GAAG,CAAC,UAAU,GAAG,eAAe,CAAC;AACjC,oGAAoG;AACpG,mGAAmG;AACnG,iGAAiG;AACjG,iGAAiG;AACjG,qGAAqG;AACrG,GAAG,CAAC,sBAAsB,GAAG,4BAA4B,CAAC;AAC1D,eAAe,GAAG,CAAC;AACnB,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;AACzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAClD,QAAQ,EAAE,CAAC;AACX,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,sBAAsB,IAAI,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAEpG,MAAM,GAAG,GAAG,KAAK,UAAU,GAAG,CAAC,aAA8B,EAAE;IAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9G,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,MAA0B,EAAE,EAAE;IACxD,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAE,EAAE;IAC7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,GAAG,CAAC,kBAAkB,GAAG,sBAAsB,CAAC;AAChD,GAAG,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;AACrF,GAAG,CAAC,WAAW,GAAG,gBAAgB,CAAC;AACnC,GAAG,CAAC,eAAe,GAAG,oBAAoB,CAAC;AAC3C,GAAG,CAAC,UAAU,GAAG,eAAe,CAAC;AACjC,gHAAgH;AAChH,yHAAyH;AACzH,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC;AAC/B,oGAAoG;AACpG,mGAAmG;AACnG,iGAAiG;AACjG,iGAAiG;AACjG,qGAAqG;AACrG,GAAG,CAAC,sBAAsB,GAAG,4BAA4B,CAAC;AAC1D,eAAe,GAAG,CAAC;AACnB,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;AACzC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC,sBAAsB,CAAC"}
@@ -1,6 +1,15 @@
1
1
  import BaseLogger from "@pkcprotocol/pkc-logger";
2
+ // One logger per namespace: BaseLogger builds six debug instances per call (each probing the tty), and the hot paths
3
+ // of the community's update cycle ask for a logger per comment (issue #351). Namespaces are static strings, so the
4
+ // map stays small; enable/disable still apply, since a debug instance's `enabled` is evaluated on each log call.
5
+ const loggers = new Map();
2
6
  function Logger(namespace) {
3
- return BaseLogger(namespace);
7
+ let logger = loggers.get(namespace);
8
+ if (!logger) {
9
+ logger = BaseLogger(namespace);
10
+ loggers.set(namespace, logger);
11
+ }
12
+ return logger;
4
13
  }
5
14
  (function (Logger) {
6
15
  Logger.disable = () => BaseLogger.disable();
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,yBAAyB,CAAC;AAQjD,SAAS,MAAM,CAAC,SAAiB;IAC7B,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,WAAU,MAAM;IACC,cAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,aAAM,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/D,cAAO,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAClF,CAAC,EAJS,MAAM,KAAN,MAAM,QAIf;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,yBAAyB,CAAC;AAQjD,qHAAqH;AACrH,mHAAmH;AACnH,iHAAiH;AACjH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE1C,SAAS,MAAM,CAAC,SAAiB;IAC7B,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,WAAU,MAAM;IACC,cAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,aAAM,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/D,cAAO,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAClF,CAAC,EAJS,MAAM,KAAN,MAAM,QAIf;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const RESERVED_OBJECT_KEYS: ReadonlySet<string>;
2
+ export declare function isReservedObjectKey(key: string): boolean;
@@ -0,0 +1,12 @@
1
+ // Keys that must never come from the wire into a plain-object map. This module MUST stay dependency-free: it is
2
+ // imported by zod schema modules (see src/domain-util.ts for why a schema module cannot import src/util.ts).
3
+ //
4
+ // Sort names are map keys on the client (`pages.clients[...][sortName]`, `pages.pages[sortName]`), so a record that
5
+ // names a sort `__proto__` would write through Object.prototype, and `constructor`/`prototype` resolve to inherited
6
+ // values instead of own entries. zod drops an own `__proto__` key without visiting it, so a key refine alone does not
7
+ // see it; the pages client manager skips these keys as well.
8
+ export const RESERVED_OBJECT_KEYS = new Set(["__proto__", "constructor", "prototype"]);
9
+ export function isReservedObjectKey(key) {
10
+ return RESERVED_OBJECT_KEYS.has(key);
11
+ }
12
+ //# sourceMappingURL=object-key-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-key-util.js","sourceRoot":"","sources":["../../src/object-key-util.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAChH,6GAA6G;AAC7G,EAAE;AACF,oHAAoH;AACpH,oHAAoH;AACpH,sHAAsH;AACtH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAE5G,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC3C,OAAO,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { PageSortExclusionOptionName } from "./types.js";
2
+ import type { PageSortScope } from "../community/types.js";
3
+ export declare const MAX_AGE_UNIT_SECONDS: Record<string, number>;
4
+ export declare function parseMaxAgeToSeconds(raw: string): number | undefined;
5
+ export declare const PAGE_SORT_EXCLUSION_OPTION_NAMES: readonly PageSortExclusionOptionName[];
6
+ export declare const RESERVED_PAGE_SORT_OPTION_NAMES: readonly string[];
7
+ export declare const DEFAULT_RESERVED_OPTIONS: Record<PageSortScope, Record<PageSortExclusionOptionName | "pinnedFirst", "true" | "false">>;
8
+ export declare function parseBooleanOption(raw: string | undefined): boolean | undefined;
9
+ export type ParsedReservedPageSortOptions = {
10
+ maxAgeSeconds?: number;
11
+ pinnedFirst: boolean;
12
+ exclusions: Record<PageSortExclusionOptionName, boolean>;
13
+ };
14
+ export declare function parseReservedPageSortOptions(options: Record<string, string>): ParsedReservedPageSortOptions;
@@ -0,0 +1,92 @@
1
+ import { PKCError } from "../pkc-error.js";
2
+ // The options pkc-js itself reads off every settings.pages[] entry (the "reserved options", issue #73). They are
3
+ // ordinary string options (a config UI renders them like any other) and are passed through to the sort file
4
+ // unstripped, so a file can read the window it runs in; the exclusions themselves are applied by pkc-js, to the
5
+ // comment set and to the `replies` a file receives. Browser-safe: a client re-sorting a page locally reads the same
6
+ // options out of community.pageSorts[sortName].publicOptions (docs/protocol/page-sorts.md, "Client side").
7
+ // `M` and `y` reproduce the windows the legacy topMonth / topYear sorts have always used (TIMEFRAMES_TO_SECONDS),
8
+ // so the built-in files produce the same pages as before.
9
+ export const MAX_AGE_UNIT_SECONDS = Object.freeze({
10
+ s: 1,
11
+ m: 60,
12
+ h: 3600,
13
+ d: 86400,
14
+ w: 604800,
15
+ M: 2629746, // average seconds in a month (60 * 60 * 24 * 30.436875)
16
+ y: 31557600 // seconds in a year including leap years (60 * 60 * 24 * 365.25)
17
+ });
18
+ const MAX_AGE_REGEX = /^(\d+(?:\.\d+)?)\s*([smhdwMy])$/;
19
+ export function parseMaxAgeToSeconds(raw) {
20
+ const match = MAX_AGE_REGEX.exec(raw.trim());
21
+ if (!match)
22
+ return undefined;
23
+ const seconds = Number(match[1]) * MAX_AGE_UNIT_SECONDS[match[2]];
24
+ return Number.isFinite(seconds) && seconds > 0 ? seconds : undefined;
25
+ }
26
+ export const PAGE_SORT_EXCLUSION_OPTION_NAMES = Object.freeze([
27
+ "excludeRemovedComments",
28
+ "excludeDeletedComments",
29
+ "excludeCommentPendingApproval",
30
+ "excludeCommentWithApprovedFalse",
31
+ "excludeCommentsWithDifferentCommunityAddress"
32
+ ]);
33
+ export const RESERVED_PAGE_SORT_OPTION_NAMES = Object.freeze([
34
+ "maxAge",
35
+ "pinnedFirst",
36
+ ...PAGE_SORT_EXCLUSION_OPTION_NAMES
37
+ ]);
38
+ // What every sort runs with unless the file's defaultOptions or the entry's options say otherwise: the exclusions
39
+ // the generator has always applied per scope (docs/protocol/pages.md, "Moderation Visibility": the posts feed hides
40
+ // moderated comments, reply pages keep removed and deleted ones so clients can render tombstones) and pinned
41
+ // placement. The full merged set is published per sort in community.pageSorts, so a client never has to know these.
42
+ export const DEFAULT_RESERVED_OPTIONS = Object.freeze({
43
+ posts: {
44
+ pinnedFirst: "true",
45
+ excludeRemovedComments: "true",
46
+ excludeDeletedComments: "true",
47
+ excludeCommentPendingApproval: "true",
48
+ excludeCommentWithApprovedFalse: "true",
49
+ excludeCommentsWithDifferentCommunityAddress: "true"
50
+ },
51
+ replies: {
52
+ pinnedFirst: "true",
53
+ excludeRemovedComments: "false",
54
+ excludeDeletedComments: "false",
55
+ excludeCommentPendingApproval: "true",
56
+ excludeCommentWithApprovedFalse: "false",
57
+ excludeCommentsWithDifferentCommunityAddress: "true"
58
+ }
59
+ });
60
+ export function parseBooleanOption(raw) {
61
+ if (raw === undefined)
62
+ return undefined;
63
+ const normalized = raw.trim().toLowerCase();
64
+ if (normalized === "true")
65
+ return true;
66
+ if (normalized === "false")
67
+ return false;
68
+ return undefined;
69
+ }
70
+ // Parse the reserved keys out of an already-merged option record. Throws ERR_PAGE_SORT_INVALID_RESERVED_OPTION
71
+ // with the offending key so the edit path can reject the entry before anything is persisted.
72
+ export function parseReservedPageSortOptions(options) {
73
+ const invalid = (option) => new PKCError("ERR_PAGE_SORT_INVALID_RESERVED_OPTION", { option, value: options[option] });
74
+ let maxAgeSeconds;
75
+ if (options.maxAge !== undefined) {
76
+ maxAgeSeconds = parseMaxAgeToSeconds(options.maxAge);
77
+ if (maxAgeSeconds === undefined)
78
+ throw invalid("maxAge");
79
+ }
80
+ const pinnedFirst = parseBooleanOption(options.pinnedFirst ?? "true");
81
+ if (pinnedFirst === undefined)
82
+ throw invalid("pinnedFirst");
83
+ const exclusions = {};
84
+ for (const name of PAGE_SORT_EXCLUSION_OPTION_NAMES) {
85
+ const parsed = parseBooleanOption(options[name] ?? "false");
86
+ if (parsed === undefined)
87
+ throw invalid(name);
88
+ exclusions[name] = parsed;
89
+ }
90
+ return { maxAgeSeconds, pinnedFirst, exclusions };
91
+ }
92
+ //# sourceMappingURL=page-sort-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-sort-options.js","sourceRoot":"","sources":["../../../src/pages/page-sort-options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ParsedReservedPageSortOptions } from "./page-sort-options.js";
2
+ import type { PageSortFile } from "../community/types.js";
3
+ import type { PageIpfs, PageSortExclusionOptionName, PageSortReplyEntry } from "./types.js";
4
+ type PageComment = PageIpfs["comments"][number];
5
+ export declare function validatePageSortFile(rawFile: unknown): PageSortFile;
6
+ export declare function applyPageSortExclusions<T extends PageSortReplyEntry>({ comments, exclusions, communityAddress }: {
7
+ comments: T[];
8
+ exclusions: Record<PageSortExclusionOptionName, boolean>;
9
+ communityAddress?: string;
10
+ }): T[];
11
+ export declare function partitionPageCommentsForSort({ comments, reserved, baseTimestamp }: {
12
+ comments: PageComment[];
13
+ reserved: Pick<ParsedReservedPageSortOptions, "pinnedFirst" | "maxAgeSeconds">;
14
+ baseTimestamp: number;
15
+ }): {
16
+ pinned: PageComment[];
17
+ unpinned: PageComment[];
18
+ };
19
+ export declare function orderPageCommentsByScore({ pinned, unpinned, scoreOf, sortName }: {
20
+ pinned: PageComment[];
21
+ unpinned: PageComment[];
22
+ scoreOf: (entry: PageComment) => number | null | undefined;
23
+ sortName: string;
24
+ }): PageComment[];
25
+ export declare function stripRepliesFromPageComment<T extends PageSortReplyEntry>(entry: T): T;
26
+ export declare function createDescendantsLookup(replies: PageSortReplyEntry[]): (cid: string) => PageSortReplyEntry[];
27
+ export declare function scorePageCommentsWithFile({ file, options, baseTimestamp, replies, stripEntry, descendantsOf: descendantsOfOverride }: {
28
+ file: PageSortFile;
29
+ options: Record<string, string>;
30
+ baseTimestamp: number;
31
+ replies?: PageSortReplyEntry[];
32
+ stripEntry?: (entry: PageComment) => PageComment;
33
+ descendantsOf?: (cid: string) => PageSortReplyEntry[];
34
+ }): (entry: PageComment) => number | null;
35
+ export {};
@@ -0,0 +1,124 @@
1
+ import { PageSortFileSchema } from "../community/schema.js";
2
+ import { getEquivalentCommunityAddresses } from "../util.js";
3
+ // Validate what a factory returned, once, and hand back the file with its own functions rather than the schema's
4
+ // per-call wrappers: `score` runs once per comment per sort, and the wrapper re-validated its argument object (the
5
+ // whole `replies` list included, for a requireReplies file) on every call (issue #351). The generator checks the
6
+ // score's type itself.
7
+ export function validatePageSortFile(rawFile) {
8
+ const validated = PageSortFileSchema.parse(rawFile);
9
+ const raw = rawFile;
10
+ return {
11
+ ...validated,
12
+ score: raw.score,
13
+ ...(raw.validatePageSortSettings ? { validatePageSortSettings: raw.validatePageSortSettings } : {})
14
+ };
15
+ }
16
+ // The reserved exclusions applied to page entries in JS (the `replies` a requireReplies file receives). Mirrors the SQL clauses in DbHandler
17
+ // (exclusionClauses): a comment is removed when commentUpdate.removed is true, deleted when its author's edit says so,
18
+ // disapproved when commentUpdate.approved is false, pending when commentUpdate.pendingApproval is true.
19
+ export function applyPageSortExclusions({ comments, exclusions, communityAddress }) {
20
+ const equivalentAddresses = communityAddress ? new Set(getEquivalentCommunityAddresses(communityAddress)) : undefined;
21
+ return comments.filter(({ comment, commentUpdate }) => {
22
+ if (exclusions.excludeRemovedComments && commentUpdate.removed === true)
23
+ return false;
24
+ if (exclusions.excludeDeletedComments && commentUpdate.edit?.deleted === true)
25
+ return false;
26
+ if (exclusions.excludeCommentWithApprovedFalse && commentUpdate.approved === false)
27
+ return false;
28
+ if (exclusions.excludeCommentPendingApproval && commentUpdate.pendingApproval === true)
29
+ return false;
30
+ if (exclusions.excludeCommentsWithDifferentCommunityAddress && equivalentAddresses) {
31
+ const belongs = (comment.communityPublicKey ? equivalentAddresses.has(comment.communityPublicKey) : false) ||
32
+ (comment.communityName ? equivalentAddresses.has(comment.communityName) : false);
33
+ if (!belongs)
34
+ return false;
35
+ }
36
+ return true;
37
+ });
38
+ }
39
+ // Pinned placement and the maxAge window, the two reserved options that shape every sort's set and order. Pinned
40
+ // comments sort first and bypass the window when pinnedFirst is on (the default), so a sticky never ages out of a
41
+ // windowed index; with pinnedFirst off they are ordinary comments. Shared with the community's page generator.
42
+ export function partitionPageCommentsForSort({ comments, reserved, baseTimestamp }) {
43
+ const pinned = reserved.pinnedFirst ? comments.filter((entry) => entry.commentUpdate.pinned === true) : [];
44
+ let unpinned = reserved.pinnedFirst ? comments.filter((entry) => entry.commentUpdate.pinned !== true) : comments;
45
+ if (typeof reserved.maxAgeSeconds === "number") {
46
+ const timestampLower = baseTimestamp - reserved.maxAgeSeconds;
47
+ unpinned = unpinned.filter((entry) => entry.comment.timestamp >= timestampLower);
48
+ }
49
+ return { pinned, unpinned };
50
+ }
51
+ // Order pinned then unpinned by descending score. `null` declines the comment from this sort, pinned or not. A
52
+ // missing or non-numeric score is a bug in the sort file. Equal scores keep the input order (a stable sort), which is
53
+ // the community's insertion order at generation and the page's order on a client.
54
+ export function orderPageCommentsByScore({ pinned, unpinned, scoreOf, sortName }) {
55
+ const kept = (entries) => {
56
+ const scored = [];
57
+ for (const entry of entries) {
58
+ const score = scoreOf(entry);
59
+ if (score === null)
60
+ continue;
61
+ if (typeof score !== "number" || Number.isNaN(score))
62
+ throw Error(`Page sort ${sortName} returned no numeric score for comment ${entry.commentUpdate.cid}`);
63
+ scored.push({ entry, score });
64
+ }
65
+ return scored.sort((a, b) => b.score - a.score).map(({ entry }) => entry); // Array.prototype.sort is stable
66
+ };
67
+ return kept(pinned).concat(kept(unpinned));
68
+ }
69
+ // What `score` receives: the entry with the CommentUpdate's nested `replies` stripped, so a file cannot mistake the
70
+ // preloaded slice for the reply set (docs/protocol/page-sorts.md, "Writing a page sort file").
71
+ export function stripRepliesFromPageComment(entry) {
72
+ if (!("replies" in entry.commentUpdate))
73
+ return entry;
74
+ const { replies: _replies, ...commentUpdate } = entry.commentUpdate;
75
+ return { comment: entry.comment, commentUpdate };
76
+ }
77
+ // The `replies` a file with requireReplies gets per scored comment: its descendants, out of one flat list of every
78
+ // descendant of the page's comments (the community loads the scope's descendants once; a client passes what it
79
+ // walked). Indexed by parentCid, so a reply on a reply page gets its own subtree and a post gets everything under it;
80
+ // a node whose parent was excluded is unreachable, the same cut the community's exclusions make.
81
+ export function createDescendantsLookup(replies) {
82
+ const childrenByParent = new Map();
83
+ for (const entry of replies) {
84
+ const stripped = stripRepliesFromPageComment(entry);
85
+ const parentCid = stripped.comment.parentCid;
86
+ if (!parentCid)
87
+ continue;
88
+ const siblings = childrenByParent.get(parentCid);
89
+ if (siblings)
90
+ siblings.push(stripped);
91
+ else
92
+ childrenByParent.set(parentCid, [stripped]);
93
+ }
94
+ return (cid) => {
95
+ const collected = [];
96
+ const stack = [cid];
97
+ while (stack.length) {
98
+ const children = childrenByParent.get(stack.pop());
99
+ if (!children)
100
+ continue;
101
+ for (const child of children) {
102
+ collected.push(child);
103
+ stack.push(child.commentUpdate.cid);
104
+ }
105
+ }
106
+ return collected;
107
+ };
108
+ }
109
+ // Score every entry the way both the community and a client do: the stripped entry, plus its descendants when the
110
+ // file asks for them. `replies` is required here only when the file requires it.
111
+ export function scorePageCommentsWithFile({ file, options, baseTimestamp, replies, stripEntry = stripRepliesFromPageComment, descendantsOf: descendantsOfOverride }) {
112
+ const descendantsOf = file.requireReplies ? descendantsOfOverride ?? createDescendantsLookup(replies ?? []) : undefined;
113
+ return (entry) => {
114
+ const { comment, commentUpdate } = stripEntry(entry);
115
+ return file.score({
116
+ comment,
117
+ commentUpdate,
118
+ options,
119
+ baseTimestamp,
120
+ ...(descendantsOf ? { replies: descendantsOf(commentUpdate.cid) } : {})
121
+ });
122
+ };
123
+ }
124
+ //# sourceMappingURL=page-sort-scoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-sort-scoring.js","sourceRoot":"","sources":["../../../src/pages/page-sort-scoring.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ export declare class BasePagesClientsManager extends BaseClientsManager {
33
33
  pages: BasePagesClientsManager["_pages"];
34
34
  pkc: PKC;
35
35
  });
36
+ private _indexableSortTypes;
36
37
  protected _updateIpfsGatewayClientStates(sortTypes: string[]): void;
37
38
  protected _updateKuboRpcClientStates(sortTypes: string[]): void;
38
39
  protected _updateLibp2pJsClientStates(sortTypes: string[]): void;
@@ -1,4 +1,5 @@
1
1
  import { BaseClientsManager } from "../clients/base-client-manager.js";
2
+ import { isReservedObjectKey } from "../object-key-util.js";
2
3
  import { isEmpty, keys, unique } from "remeda";
3
4
  import Logger from "../logger.js";
4
5
  import { POSTS_SORT_TYPES, POST_REPLIES_SORT_TYPES } from "./util.js";
@@ -21,10 +22,16 @@ export class BasePagesClientsManager extends BaseClientsManager {
21
22
  hideClassPrivateProps(this);
22
23
  }
23
24
  // Init functions here
25
+ // The per-sort client maps are plain objects keyed by whatever sort names a record carries, and the record is kept
26
+ // as parsed JSON (zod drops an own `__proto__` key without rejecting it). A reserved key would write through
27
+ // Object.prototype or an inherited value, so it is skipped: no page is ever fetched under such a name.
28
+ _indexableSortTypes(sortTypes) {
29
+ return sortTypes.filter((sortType) => !isReservedObjectKey(sortType));
30
+ }
24
31
  _updateIpfsGatewayClientStates(sortTypes) {
25
32
  if (!this.clients.ipfsGateways)
26
33
  this.clients.ipfsGateways = {};
27
- for (const sortType of sortTypes) {
34
+ for (const sortType of this._indexableSortTypes(sortTypes)) {
28
35
  if (!this.clients.ipfsGateways[sortType])
29
36
  this.clients.ipfsGateways[sortType] = {};
30
37
  for (const gatewayUrl of keys(this._pkc.clients.ipfsGateways))
@@ -35,7 +42,7 @@ export class BasePagesClientsManager extends BaseClientsManager {
35
42
  _updateKuboRpcClientStates(sortTypes) {
36
43
  if (this._pkc.clients.kuboRpcClients && !this.clients.kuboRpcClients)
37
44
  this.clients.kuboRpcClients = {};
38
- for (const sortType of sortTypes) {
45
+ for (const sortType of this._indexableSortTypes(sortTypes)) {
39
46
  if (!this.clients.kuboRpcClients[sortType])
40
47
  this.clients.kuboRpcClients[sortType] = {};
41
48
  for (const kuboRpcUrl of keys(this._pkc.clients.kuboRpcClients))
@@ -46,7 +53,7 @@ export class BasePagesClientsManager extends BaseClientsManager {
46
53
  _updateLibp2pJsClientStates(sortTypes) {
47
54
  if (this._pkc.clients.libp2pJsClients && !this.clients.libp2pJsClients)
48
55
  this.clients.libp2pJsClients = {};
49
- for (const sortType of sortTypes) {
56
+ for (const sortType of this._indexableSortTypes(sortTypes)) {
50
57
  if (!this.clients.libp2pJsClients[sortType])
51
58
  this.clients.libp2pJsClients[sortType] = {};
52
59
  for (const libp2pJsClientKey of keys(this._pkc.clients.libp2pJsClients))
@@ -57,7 +64,7 @@ export class BasePagesClientsManager extends BaseClientsManager {
57
64
  _updatePKCRpcClientStates(sortTypes) {
58
65
  if (this._pkc.clients.pkcRpcClients && !this.clients.pkcRpcClients)
59
66
  this.clients.pkcRpcClients = {};
60
- for (const sortType of sortTypes) {
67
+ for (const sortType of this._indexableSortTypes(sortTypes)) {
61
68
  if (!this.clients.pkcRpcClients[sortType])
62
69
  this.clients.pkcRpcClients[sortType] = {};
63
70
  for (const rpcUrl of keys(this._pkc.clients.pkcRpcClients))
@@ -94,11 +101,16 @@ export class BasePagesClientsManager extends BaseClientsManager {
94
101
  }
95
102
  updatePageCidsToSortTypes(newPageCids) {
96
103
  for (const [sortType, pageCid] of Object.entries(newPageCids)) {
104
+ if (isReservedObjectKey(sortType))
105
+ continue;
97
106
  this._updatePageCidsSortCache(pageCid, [sortType]);
98
107
  }
108
+ // A community may publish pageCids under any sort name its page-sort packages declare (settings.pages, #73),
109
+ // so every transport's state is seeded for the discovered keys, not only the built-in sort names (#348)
99
110
  this._updateIpfsGatewayClientStates(Object.keys(newPageCids));
100
111
  this._updateKuboRpcClientStates(Object.keys(newPageCids));
101
112
  this._updatePKCRpcClientStates(Object.keys(newPageCids));
113
+ this._updateLibp2pJsClientStates(Object.keys(newPageCids));
102
114
  }
103
115
  _calculatePageMaxSizeCacheKey(pageCid) {
104
116
  return sha256((this._pages._community.name || this._pages._community.publicKey) + pageCid);
@@ -1 +1 @@
1
- {"version":3,"file":"pages-client-manager.js","sourceRoot":"","sources":["../../../src/pages/pages-client-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages-client-manager.js","sourceRoot":"","sources":["../../../src/pages/pages-client-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { PageSortFileFactory } from "../../community/types.js";
2
+ declare const active: PageSortFileFactory;
3
+ export default active;
@@ -0,0 +1,15 @@
1
+ // Bump order: a post's score is the newest timestamp among the post and its surviving replies, which is what its
2
+ // CommentUpdate already carries as lastReplyTimestamp (the recursive MAX(timestamp) the community computes when a
3
+ // descendant changes, before pages are generated in the same cycle). A per-comment score like every other built-in,
4
+ // so a client re-sorts by bump order from the page alone. lastReplyTimestamp hard-codes the removed/deleted/unapproved
5
+ // exclusions, so an owner who turns excludeRemovedComments off for posts still does not get removed replies bumping
6
+ // threads: bump time is what the CommentUpdate carries.
7
+ const active = () => ({
8
+ sortName: "active",
9
+ description: "Most recently bumped first: posts ordered by the newest reply anywhere in their thread",
10
+ optionInputs: [], // reads nothing beyond the reserved options (maxAge, pinnedFirst, exclude*)
11
+ scope: "posts",
12
+ score: ({ comment, commentUpdate }) => Math.max(comment.timestamp, commentUpdate.lastReplyTimestamp ?? 0)
13
+ });
14
+ export default active;
15
+ //# sourceMappingURL=active.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active.js","sourceRoot":"","sources":["../../../../src/pages/pkc-js-page-sorts/active.ts"],"names":[],"mappings":"AAEA,iHAAiH;AACjH,kHAAkH;AAClH,oHAAoH;AACpH,uHAAuH;AACvH,oHAAoH;AACpH,wDAAwD;AACxD,MAAM,MAAM,GAAwB,GAAG,EAAE,CAAC,CAAC;IACvC,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,wFAAwF;IACrG,YAAY,EAAE,EAAE,EAAE,4EAA4E;IAC9F,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,kBAAkB,IAAI,CAAC,CAAC;CAC5G,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PageSortFileFactory } from "../../community/types.js";
2
+ declare const best: PageSortFileFactory;
3
+ export default best;
@@ -0,0 +1,10 @@
1
+ import { bestScore } from "../util.js";
2
+ import { perCommentScore } from "./util.js";
3
+ const best = () => ({
4
+ sortName: "best",
5
+ description: "Wilson score confidence of the vote ratio",
6
+ optionInputs: [], // reads nothing beyond the reserved options (maxAge, pinnedFirst, exclude*)
7
+ score: perCommentScore(bestScore)
8
+ });
9
+ export default best;
10
+ //# sourceMappingURL=best.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"best.js","sourceRoot":"","sources":["../../../../src/pages/pkc-js-page-sorts/best.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,IAAI,GAAwB,GAAG,EAAE,CAAC,CAAC;IACrC,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,2CAA2C;IACxD,YAAY,EAAE,EAAE,EAAE,4EAA4E;IAC9F,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC;CACpC,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PageSortFileFactory } from "../../community/types.js";
2
+ declare const controversial: PageSortFileFactory;
3
+ export default controversial;
@@ -0,0 +1,10 @@
1
+ import { controversialScore } from "../util.js";
2
+ import { perCommentScore } from "./util.js";
3
+ const controversial = () => ({
4
+ sortName: "controversial",
5
+ description: "Comments with many votes split between upvotes and downvotes first",
6
+ optionInputs: [], // reads nothing beyond the reserved options (maxAge, pinnedFirst, exclude*)
7
+ score: perCommentScore(controversialScore)
8
+ });
9
+ export default controversial;
10
+ //# sourceMappingURL=controversial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controversial.js","sourceRoot":"","sources":["../../../../src/pages/pkc-js-page-sorts/controversial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,aAAa,GAAwB,GAAG,EAAE,CAAC,CAAC;IAC9C,QAAQ,EAAE,eAAe;IACzB,WAAW,EAAE,oEAAoE;IACjF,YAAY,EAAE,EAAE,EAAE,4EAA4E;IAC9F,KAAK,EAAE,eAAe,CAAC,kBAAkB,CAAC;CAC7C,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PageSortFileFactory } from "../../community/types.js";
2
+ declare const hot: PageSortFileFactory;
3
+ export default hot;
@@ -0,0 +1,10 @@
1
+ import { hotScore } from "../util.js";
2
+ import { perCommentScore } from "./util.js";
3
+ const hot = () => ({
4
+ sortName: "hot",
5
+ description: "Reddit-style hot ranking: votes weighted by age",
6
+ optionInputs: [], // reads nothing beyond the reserved options (maxAge, pinnedFirst, exclude*)
7
+ score: perCommentScore(hotScore)
8
+ });
9
+ export default hot;
10
+ //# sourceMappingURL=hot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hot.js","sourceRoot":"","sources":["../../../../src/pages/pkc-js-page-sorts/hot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,GAAG,GAAwB,GAAG,EAAE,CAAC,CAAC;IACpC,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,iDAAiD;IAC9D,YAAY,EAAE,EAAE,EAAE,4EAA4E;IAC9F,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC;CACnC,CAAC,CAAC;AAEH,eAAe,GAAG,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { PageSortFileFactoryInput } from "../../community/types.js";
2
+ export declare const pkcJsPageSorts: Record<string, PageSortFileFactoryInput>;