@welshman/domain 0.9.0-pre1

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 (443) hide show
  1. package/LICENSE +21 -0
  2. package/dist/domain/src/EventBuilder.d.ts +35 -0
  3. package/dist/domain/src/EventBuilder.d.ts.map +1 -0
  4. package/dist/domain/src/EventBuilder.js +111 -0
  5. package/dist/domain/src/EventBuilder.js.map +1 -0
  6. package/dist/domain/src/EventReader.d.ts +24 -0
  7. package/dist/domain/src/EventReader.d.ts.map +1 -0
  8. package/dist/domain/src/EventReader.js +57 -0
  9. package/dist/domain/src/EventReader.js.map +1 -0
  10. package/dist/domain/src/ListBuilder.d.ts +21 -0
  11. package/dist/domain/src/ListBuilder.d.ts.map +1 -0
  12. package/dist/domain/src/ListBuilder.js +73 -0
  13. package/dist/domain/src/ListBuilder.js.map +1 -0
  14. package/dist/domain/src/ListReader.d.ts +12 -0
  15. package/dist/domain/src/ListReader.d.ts.map +1 -0
  16. package/dist/domain/src/ListReader.js +31 -0
  17. package/dist/domain/src/ListReader.js.map +1 -0
  18. package/dist/domain/src/index.d.ts +54 -0
  19. package/dist/domain/src/index.d.ts.map +1 -0
  20. package/dist/domain/src/index.js +54 -0
  21. package/dist/domain/src/index.js.map +1 -0
  22. package/dist/domain/src/kinds/BlockedRelayList.d.ts +15 -0
  23. package/dist/domain/src/kinds/BlockedRelayList.d.ts.map +1 -0
  24. package/dist/domain/src/kinds/BlockedRelayList.js +30 -0
  25. package/dist/domain/src/kinds/BlockedRelayList.js.map +1 -0
  26. package/dist/domain/src/kinds/BlossomServerList.d.ts +15 -0
  27. package/dist/domain/src/kinds/BlossomServerList.d.ts.map +1 -0
  28. package/dist/domain/src/kinds/BlossomServerList.js +30 -0
  29. package/dist/domain/src/kinds/BlossomServerList.js.map +1 -0
  30. package/dist/domain/src/kinds/BookmarkList.d.ts +17 -0
  31. package/dist/domain/src/kinds/BookmarkList.d.ts.map +1 -0
  32. package/dist/domain/src/kinds/BookmarkList.js +36 -0
  33. package/dist/domain/src/kinds/BookmarkList.js.map +1 -0
  34. package/dist/domain/src/kinds/Classified.d.ts +27 -0
  35. package/dist/domain/src/kinds/Classified.d.ts.map +1 -0
  36. package/dist/domain/src/kinds/Classified.js +65 -0
  37. package/dist/domain/src/kinds/Classified.js.map +1 -0
  38. package/dist/domain/src/kinds/Comment.d.ts +29 -0
  39. package/dist/domain/src/kinds/Comment.d.ts.map +1 -0
  40. package/dist/domain/src/kinds/Comment.js +82 -0
  41. package/dist/domain/src/kinds/Comment.js.map +1 -0
  42. package/dist/domain/src/kinds/EmojiList.d.ts +16 -0
  43. package/dist/domain/src/kinds/EmojiList.d.ts.map +1 -0
  44. package/dist/domain/src/kinds/EmojiList.js +33 -0
  45. package/dist/domain/src/kinds/EmojiList.js.map +1 -0
  46. package/dist/domain/src/kinds/Feed.d.ts +17 -0
  47. package/dist/domain/src/kinds/Feed.d.ts.map +1 -0
  48. package/dist/domain/src/kinds/Feed.js +33 -0
  49. package/dist/domain/src/kinds/Feed.js.map +1 -0
  50. package/dist/domain/src/kinds/FeedList.d.ts +15 -0
  51. package/dist/domain/src/kinds/FeedList.d.ts.map +1 -0
  52. package/dist/domain/src/kinds/FeedList.js +30 -0
  53. package/dist/domain/src/kinds/FeedList.js.map +1 -0
  54. package/dist/domain/src/kinds/FollowList.d.ts +14 -0
  55. package/dist/domain/src/kinds/FollowList.d.ts.map +1 -0
  56. package/dist/domain/src/kinds/FollowList.js +27 -0
  57. package/dist/domain/src/kinds/FollowList.js.map +1 -0
  58. package/dist/domain/src/kinds/GroupList.d.ts +13 -0
  59. package/dist/domain/src/kinds/GroupList.d.ts.map +1 -0
  60. package/dist/domain/src/kinds/GroupList.js +24 -0
  61. package/dist/domain/src/kinds/GroupList.js.map +1 -0
  62. package/dist/domain/src/kinds/Handler.d.ts +41 -0
  63. package/dist/domain/src/kinds/Handler.d.ts.map +1 -0
  64. package/dist/domain/src/kinds/Handler.js +86 -0
  65. package/dist/domain/src/kinds/Handler.js.map +1 -0
  66. package/dist/domain/src/kinds/HandlerRecommendation.d.ts +15 -0
  67. package/dist/domain/src/kinds/HandlerRecommendation.d.ts.map +1 -0
  68. package/dist/domain/src/kinds/HandlerRecommendation.js +32 -0
  69. package/dist/domain/src/kinds/HandlerRecommendation.js.map +1 -0
  70. package/dist/domain/src/kinds/MessagingRelayList.d.ts +14 -0
  71. package/dist/domain/src/kinds/MessagingRelayList.d.ts.map +1 -0
  72. package/dist/domain/src/kinds/MessagingRelayList.js +27 -0
  73. package/dist/domain/src/kinds/MessagingRelayList.js.map +1 -0
  74. package/dist/domain/src/kinds/MuteList.d.ts +15 -0
  75. package/dist/domain/src/kinds/MuteList.d.ts.map +1 -0
  76. package/dist/domain/src/kinds/MuteList.js +30 -0
  77. package/dist/domain/src/kinds/MuteList.js.map +1 -0
  78. package/dist/domain/src/kinds/Pin.d.ts +37 -0
  79. package/dist/domain/src/kinds/Pin.d.ts.map +1 -0
  80. package/dist/domain/src/kinds/Pin.js +74 -0
  81. package/dist/domain/src/kinds/Pin.js.map +1 -0
  82. package/dist/domain/src/kinds/PinList.d.ts +15 -0
  83. package/dist/domain/src/kinds/PinList.d.ts.map +1 -0
  84. package/dist/domain/src/kinds/PinList.js +30 -0
  85. package/dist/domain/src/kinds/PinList.js.map +1 -0
  86. package/dist/domain/src/kinds/Pinboard.d.ts +21 -0
  87. package/dist/domain/src/kinds/Pinboard.d.ts.map +1 -0
  88. package/dist/domain/src/kinds/Pinboard.js +53 -0
  89. package/dist/domain/src/kinds/Pinboard.js.map +1 -0
  90. package/dist/domain/src/kinds/Poll.d.ts +37 -0
  91. package/dist/domain/src/kinds/Poll.d.ts.map +1 -0
  92. package/dist/domain/src/kinds/Poll.js +80 -0
  93. package/dist/domain/src/kinds/Poll.js.map +1 -0
  94. package/dist/domain/src/kinds/PollResponse.d.ts +15 -0
  95. package/dist/domain/src/kinds/PollResponse.d.ts.map +1 -0
  96. package/dist/domain/src/kinds/PollResponse.js +33 -0
  97. package/dist/domain/src/kinds/PollResponse.js.map +1 -0
  98. package/dist/domain/src/kinds/Profile.d.ts +36 -0
  99. package/dist/domain/src/kinds/Profile.d.ts.map +1 -0
  100. package/dist/domain/src/kinds/Profile.js +105 -0
  101. package/dist/domain/src/kinds/Profile.js.map +1 -0
  102. package/dist/domain/src/kinds/RelayAddMember.d.ts +12 -0
  103. package/dist/domain/src/kinds/RelayAddMember.d.ts.map +1 -0
  104. package/dist/domain/src/kinds/RelayAddMember.js +21 -0
  105. package/dist/domain/src/kinds/RelayAddMember.js.map +1 -0
  106. package/dist/domain/src/kinds/RelayInvite.d.ts +12 -0
  107. package/dist/domain/src/kinds/RelayInvite.d.ts.map +1 -0
  108. package/dist/domain/src/kinds/RelayInvite.js +21 -0
  109. package/dist/domain/src/kinds/RelayInvite.js.map +1 -0
  110. package/dist/domain/src/kinds/RelayJoin.d.ts +14 -0
  111. package/dist/domain/src/kinds/RelayJoin.d.ts.map +1 -0
  112. package/dist/domain/src/kinds/RelayJoin.js +27 -0
  113. package/dist/domain/src/kinds/RelayJoin.js.map +1 -0
  114. package/dist/domain/src/kinds/RelayLeave.d.ts +10 -0
  115. package/dist/domain/src/kinds/RelayLeave.d.ts.map +1 -0
  116. package/dist/domain/src/kinds/RelayLeave.js +14 -0
  117. package/dist/domain/src/kinds/RelayLeave.js.map +1 -0
  118. package/dist/domain/src/kinds/RelayList.d.ts +24 -0
  119. package/dist/domain/src/kinds/RelayList.d.ts.map +1 -0
  120. package/dist/domain/src/kinds/RelayList.js +89 -0
  121. package/dist/domain/src/kinds/RelayList.js.map +1 -0
  122. package/dist/domain/src/kinds/RelayMembers.d.ts +17 -0
  123. package/dist/domain/src/kinds/RelayMembers.d.ts.map +1 -0
  124. package/dist/domain/src/kinds/RelayMembers.js +38 -0
  125. package/dist/domain/src/kinds/RelayMembers.js.map +1 -0
  126. package/dist/domain/src/kinds/RelayRemoveMember.d.ts +12 -0
  127. package/dist/domain/src/kinds/RelayRemoveMember.d.ts.map +1 -0
  128. package/dist/domain/src/kinds/RelayRemoveMember.js +21 -0
  129. package/dist/domain/src/kinds/RelayRemoveMember.js.map +1 -0
  130. package/dist/domain/src/kinds/RelaySet.d.ts +20 -0
  131. package/dist/domain/src/kinds/RelaySet.d.ts.map +1 -0
  132. package/dist/domain/src/kinds/RelaySet.js +45 -0
  133. package/dist/domain/src/kinds/RelaySet.js.map +1 -0
  134. package/dist/domain/src/kinds/Report.d.ts +18 -0
  135. package/dist/domain/src/kinds/Report.d.ts.map +1 -0
  136. package/dist/domain/src/kinds/Report.js +59 -0
  137. package/dist/domain/src/kinds/Report.js.map +1 -0
  138. package/dist/domain/src/kinds/RoomAddMember.d.ts +12 -0
  139. package/dist/domain/src/kinds/RoomAddMember.d.ts.map +1 -0
  140. package/dist/domain/src/kinds/RoomAddMember.js +21 -0
  141. package/dist/domain/src/kinds/RoomAddMember.js.map +1 -0
  142. package/dist/domain/src/kinds/RoomAdmins.d.ts +14 -0
  143. package/dist/domain/src/kinds/RoomAdmins.d.ts.map +1 -0
  144. package/dist/domain/src/kinds/RoomAdmins.js +27 -0
  145. package/dist/domain/src/kinds/RoomAdmins.js.map +1 -0
  146. package/dist/domain/src/kinds/RoomCreate.d.ts +11 -0
  147. package/dist/domain/src/kinds/RoomCreate.d.ts.map +1 -0
  148. package/dist/domain/src/kinds/RoomCreate.js +20 -0
  149. package/dist/domain/src/kinds/RoomCreate.js.map +1 -0
  150. package/dist/domain/src/kinds/RoomCreatePermission.d.ts +15 -0
  151. package/dist/domain/src/kinds/RoomCreatePermission.d.ts.map +1 -0
  152. package/dist/domain/src/kinds/RoomCreatePermission.js +30 -0
  153. package/dist/domain/src/kinds/RoomCreatePermission.js.map +1 -0
  154. package/dist/domain/src/kinds/RoomDelete.d.ts +11 -0
  155. package/dist/domain/src/kinds/RoomDelete.d.ts.map +1 -0
  156. package/dist/domain/src/kinds/RoomDelete.js +20 -0
  157. package/dist/domain/src/kinds/RoomDelete.js.map +1 -0
  158. package/dist/domain/src/kinds/RoomEdit.d.ts +28 -0
  159. package/dist/domain/src/kinds/RoomEdit.d.ts.map +1 -0
  160. package/dist/domain/src/kinds/RoomEdit.js +80 -0
  161. package/dist/domain/src/kinds/RoomEdit.js.map +1 -0
  162. package/dist/domain/src/kinds/RoomJoin.d.ts +15 -0
  163. package/dist/domain/src/kinds/RoomJoin.d.ts.map +1 -0
  164. package/dist/domain/src/kinds/RoomJoin.js +33 -0
  165. package/dist/domain/src/kinds/RoomJoin.js.map +1 -0
  166. package/dist/domain/src/kinds/RoomLeave.d.ts +11 -0
  167. package/dist/domain/src/kinds/RoomLeave.d.ts.map +1 -0
  168. package/dist/domain/src/kinds/RoomLeave.js +20 -0
  169. package/dist/domain/src/kinds/RoomLeave.js.map +1 -0
  170. package/dist/domain/src/kinds/RoomList.d.ts +14 -0
  171. package/dist/domain/src/kinds/RoomList.d.ts.map +1 -0
  172. package/dist/domain/src/kinds/RoomList.js +27 -0
  173. package/dist/domain/src/kinds/RoomList.js.map +1 -0
  174. package/dist/domain/src/kinds/RoomMembers.d.ts +15 -0
  175. package/dist/domain/src/kinds/RoomMembers.d.ts.map +1 -0
  176. package/dist/domain/src/kinds/RoomMembers.js +30 -0
  177. package/dist/domain/src/kinds/RoomMembers.js.map +1 -0
  178. package/dist/domain/src/kinds/RoomMeta.d.ts +27 -0
  179. package/dist/domain/src/kinds/RoomMeta.d.ts.map +1 -0
  180. package/dist/domain/src/kinds/RoomMeta.js +72 -0
  181. package/dist/domain/src/kinds/RoomMeta.js.map +1 -0
  182. package/dist/domain/src/kinds/RoomRemoveMember.d.ts +14 -0
  183. package/dist/domain/src/kinds/RoomRemoveMember.d.ts.map +1 -0
  184. package/dist/domain/src/kinds/RoomRemoveMember.js +27 -0
  185. package/dist/domain/src/kinds/RoomRemoveMember.js.map +1 -0
  186. package/dist/domain/src/kinds/SearchRelayList.d.ts +15 -0
  187. package/dist/domain/src/kinds/SearchRelayList.d.ts.map +1 -0
  188. package/dist/domain/src/kinds/SearchRelayList.js +30 -0
  189. package/dist/domain/src/kinds/SearchRelayList.js.map +1 -0
  190. package/dist/domain/src/kinds/SlashCommand.d.ts +38 -0
  191. package/dist/domain/src/kinds/SlashCommand.d.ts.map +1 -0
  192. package/dist/domain/src/kinds/SlashCommand.js +91 -0
  193. package/dist/domain/src/kinds/SlashCommand.js.map +1 -0
  194. package/dist/domain/src/kinds/Thread.d.ts +12 -0
  195. package/dist/domain/src/kinds/Thread.d.ts.map +1 -0
  196. package/dist/domain/src/kinds/Thread.js +21 -0
  197. package/dist/domain/src/kinds/Thread.js.map +1 -0
  198. package/dist/domain/src/kinds/TimeEvent.d.ts +21 -0
  199. package/dist/domain/src/kinds/TimeEvent.d.ts.map +1 -0
  200. package/dist/domain/src/kinds/TimeEvent.js +58 -0
  201. package/dist/domain/src/kinds/TimeEvent.js.map +1 -0
  202. package/dist/domain/src/kinds/TopicList.d.ts +17 -0
  203. package/dist/domain/src/kinds/TopicList.d.ts.map +1 -0
  204. package/dist/domain/src/kinds/TopicList.js +36 -0
  205. package/dist/domain/src/kinds/TopicList.js.map +1 -0
  206. package/dist/domain/src/kinds/ZapGoal.d.ts +20 -0
  207. package/dist/domain/src/kinds/ZapGoal.d.ts.map +1 -0
  208. package/dist/domain/src/kinds/ZapGoal.js +52 -0
  209. package/dist/domain/src/kinds/ZapGoal.js.map +1 -0
  210. package/dist/domain/src/kinds/ZapReceipt.d.ts +28 -0
  211. package/dist/domain/src/kinds/ZapReceipt.d.ts.map +1 -0
  212. package/dist/domain/src/kinds/ZapReceipt.js +93 -0
  213. package/dist/domain/src/kinds/ZapReceipt.js.map +1 -0
  214. package/dist/domain/src/kinds/ZapRequest.d.ts +20 -0
  215. package/dist/domain/src/kinds/ZapRequest.d.ts.map +1 -0
  216. package/dist/domain/src/kinds/ZapRequest.js +47 -0
  217. package/dist/domain/src/kinds/ZapRequest.js.map +1 -0
  218. package/dist/feeds/src/compiler.d.ts +49 -0
  219. package/dist/feeds/src/compiler.d.ts.map +1 -0
  220. package/dist/feeds/src/compiler.js +253 -0
  221. package/dist/feeds/src/compiler.js.map +1 -0
  222. package/dist/feeds/src/controller.d.ts +32 -0
  223. package/dist/feeds/src/controller.d.ts.map +1 -0
  224. package/dist/feeds/src/controller.js +329 -0
  225. package/dist/feeds/src/controller.js.map +1 -0
  226. package/dist/feeds/src/core.d.ts +76 -0
  227. package/dist/feeds/src/core.d.ts.map +1 -0
  228. package/dist/feeds/src/core.js +28 -0
  229. package/dist/feeds/src/core.js.map +1 -0
  230. package/dist/feeds/src/display.d.ts +21 -0
  231. package/dist/feeds/src/display.d.ts.map +1 -0
  232. package/dist/feeds/src/display.js +144 -0
  233. package/dist/feeds/src/display.js.map +1 -0
  234. package/dist/feeds/src/index.d.ts +7 -0
  235. package/dist/feeds/src/index.d.ts.map +1 -0
  236. package/dist/feeds/src/index.js +7 -0
  237. package/dist/feeds/src/index.js.map +1 -0
  238. package/dist/feeds/src/request.d.ts +26 -0
  239. package/dist/feeds/src/request.d.ts.map +1 -0
  240. package/dist/feeds/src/request.js +83 -0
  241. package/dist/feeds/src/request.js.map +1 -0
  242. package/dist/feeds/src/utils.d.ts +58 -0
  243. package/dist/feeds/src/utils.d.ts.map +1 -0
  244. package/dist/feeds/src/utils.js +218 -0
  245. package/dist/feeds/src/utils.js.map +1 -0
  246. package/dist/feeds/src/validate.d.ts +24 -0
  247. package/dist/feeds/src/validate.d.ts.map +1 -0
  248. package/dist/feeds/src/validate.js +137 -0
  249. package/dist/feeds/src/validate.js.map +1 -0
  250. package/dist/lib/src/Deferred.d.ts +21 -0
  251. package/dist/lib/src/Deferred.d.ts.map +1 -0
  252. package/dist/lib/src/Deferred.js +21 -0
  253. package/dist/lib/src/Deferred.js.map +1 -0
  254. package/dist/lib/src/Emitter.d.ts +14 -0
  255. package/dist/lib/src/Emitter.d.ts.map +1 -0
  256. package/dist/lib/src/Emitter.js +18 -0
  257. package/dist/lib/src/Emitter.js.map +1 -0
  258. package/dist/lib/src/LRUCache.d.ts +45 -0
  259. package/dist/lib/src/LRUCache.d.ts.map +1 -0
  260. package/dist/lib/src/LRUCache.js +72 -0
  261. package/dist/lib/src/LRUCache.js.map +1 -0
  262. package/dist/lib/src/TaskQueue.d.ts +21 -0
  263. package/dist/lib/src/TaskQueue.d.ts.map +1 -0
  264. package/dist/lib/src/TaskQueue.js +63 -0
  265. package/dist/lib/src/TaskQueue.js.map +1 -0
  266. package/dist/lib/src/Tools.d.ts +828 -0
  267. package/dist/lib/src/Tools.d.ts.map +1 -0
  268. package/dist/lib/src/Tools.js +1402 -0
  269. package/dist/lib/src/Tools.js.map +1 -0
  270. package/dist/lib/src/index.d.ts +7 -0
  271. package/dist/lib/src/index.d.ts.map +1 -0
  272. package/dist/lib/src/index.js +7 -0
  273. package/dist/lib/src/index.js.map +1 -0
  274. package/dist/lib/src/normalize-url/index.d.ts +286 -0
  275. package/dist/lib/src/normalize-url/index.d.ts.map +1 -0
  276. package/dist/lib/src/normalize-url/index.js +252 -0
  277. package/dist/lib/src/normalize-url/index.js.map +1 -0
  278. package/dist/net/src/adapter.d.ts +47 -0
  279. package/dist/net/src/adapter.d.ts.map +1 -0
  280. package/dist/net/src/adapter.js +130 -0
  281. package/dist/net/src/adapter.js.map +1 -0
  282. package/dist/net/src/auth.d.ts +40 -0
  283. package/dist/net/src/auth.d.ts.map +1 -0
  284. package/dist/net/src/auth.js +124 -0
  285. package/dist/net/src/auth.js.map +1 -0
  286. package/dist/net/src/context.d.ts +10 -0
  287. package/dist/net/src/context.d.ts.map +1 -0
  288. package/dist/net/src/context.js +2 -0
  289. package/dist/net/src/context.js.map +1 -0
  290. package/dist/net/src/diff.d.ts +57 -0
  291. package/dist/net/src/diff.d.ts.map +1 -0
  292. package/dist/net/src/diff.js +162 -0
  293. package/dist/net/src/diff.js.map +1 -0
  294. package/dist/net/src/index.d.ts +15 -0
  295. package/dist/net/src/index.d.ts.map +1 -0
  296. package/dist/net/src/index.js +15 -0
  297. package/dist/net/src/index.js.map +1 -0
  298. package/dist/net/src/message.d.ts +64 -0
  299. package/dist/net/src/message.d.ts.map +1 -0
  300. package/dist/net/src/message.js +37 -0
  301. package/dist/net/src/message.js.map +1 -0
  302. package/dist/net/src/negentropy.d.ts +48 -0
  303. package/dist/net/src/negentropy.d.ts.map +1 -0
  304. package/dist/net/src/negentropy.js +535 -0
  305. package/dist/net/src/negentropy.js.map +1 -0
  306. package/dist/net/src/policy.d.ts +40 -0
  307. package/dist/net/src/policy.d.ts.map +1 -0
  308. package/dist/net/src/policy.js +210 -0
  309. package/dist/net/src/policy.js.map +1 -0
  310. package/dist/net/src/pool.d.ts +13 -0
  311. package/dist/net/src/pool.d.ts.map +1 -0
  312. package/dist/net/src/pool.js +44 -0
  313. package/dist/net/src/pool.js.map +1 -0
  314. package/dist/net/src/publish.d.ts +45 -0
  315. package/dist/net/src/publish.d.ts.map +1 -0
  316. package/dist/net/src/publish.js +98 -0
  317. package/dist/net/src/publish.js.map +1 -0
  318. package/dist/net/src/repository.d.ts +69 -0
  319. package/dist/net/src/repository.d.ts.map +1 -0
  320. package/dist/net/src/repository.js +304 -0
  321. package/dist/net/src/repository.js.map +1 -0
  322. package/dist/net/src/request.d.ts +58 -0
  323. package/dist/net/src/request.d.ts.map +1 -0
  324. package/dist/net/src/request.js +224 -0
  325. package/dist/net/src/request.js.map +1 -0
  326. package/dist/net/src/socket.d.ts +49 -0
  327. package/dist/net/src/socket.d.ts.map +1 -0
  328. package/dist/net/src/socket.js +126 -0
  329. package/dist/net/src/socket.js.map +1 -0
  330. package/dist/net/src/tracker.d.ts +16 -0
  331. package/dist/net/src/tracker.d.ts.map +1 -0
  332. package/dist/net/src/tracker.js +63 -0
  333. package/dist/net/src/tracker.js.map +1 -0
  334. package/dist/net/src/util.d.ts +2 -0
  335. package/dist/net/src/util.d.ts.map +1 -0
  336. package/dist/net/src/util.js +2 -0
  337. package/dist/net/src/util.js.map +1 -0
  338. package/dist/net/src/wrapManager.d.ts +37 -0
  339. package/dist/net/src/wrapManager.d.ts.map +1 -0
  340. package/dist/net/src/wrapManager.js +94 -0
  341. package/dist/net/src/wrapManager.js.map +1 -0
  342. package/dist/signer/src/index.d.ts +7 -0
  343. package/dist/signer/src/index.d.ts.map +1 -0
  344. package/dist/signer/src/index.js +7 -0
  345. package/dist/signer/src/index.js.map +1 -0
  346. package/dist/signer/src/nip59.d.ts +19 -0
  347. package/dist/signer/src/nip59.d.ts.map +1 -0
  348. package/dist/signer/src/nip59.js +70 -0
  349. package/dist/signer/src/nip59.js.map +1 -0
  350. package/dist/signer/src/signers/nip01.d.ts +20 -0
  351. package/dist/signer/src/signers/nip01.d.ts.map +1 -0
  352. package/dist/signer/src/signers/nip01.js +23 -0
  353. package/dist/signer/src/signers/nip01.js.map +1 -0
  354. package/dist/signer/src/signers/nip07.d.ts +23 -0
  355. package/dist/signer/src/signers/nip07.d.ts.map +1 -0
  356. package/dist/signer/src/signers/nip07.js +29 -0
  357. package/dist/signer/src/signers/nip07.js.map +1 -0
  358. package/dist/signer/src/signers/nip46.d.ts +127 -0
  359. package/dist/signer/src/signers/nip46.d.ts.map +1 -0
  360. package/dist/signer/src/signers/nip46.js +379 -0
  361. package/dist/signer/src/signers/nip46.js.map +1 -0
  362. package/dist/signer/src/signers/nip55.d.ts +20 -0
  363. package/dist/signer/src/signers/nip55.d.ts.map +1 -0
  364. package/dist/signer/src/signers/nip55.js +87 -0
  365. package/dist/signer/src/signers/nip55.js.map +1 -0
  366. package/dist/signer/src/util.d.ts +56 -0
  367. package/dist/signer/src/util.d.ts.map +1 -0
  368. package/dist/signer/src/util.js +65 -0
  369. package/dist/signer/src/util.js.map +1 -0
  370. package/dist/tsconfig.build.tsbuildinfo +1 -0
  371. package/dist/util/src/Address.d.ts +21 -0
  372. package/dist/util/src/Address.d.ts.map +1 -0
  373. package/dist/util/src/Address.js +43 -0
  374. package/dist/util/src/Address.js.map +1 -0
  375. package/dist/util/src/Blossom.d.ts +66 -0
  376. package/dist/util/src/Blossom.d.ts.map +1 -0
  377. package/dist/util/src/Blossom.js +124 -0
  378. package/dist/util/src/Blossom.js.map +1 -0
  379. package/dist/util/src/Events.d.ts +71 -0
  380. package/dist/util/src/Events.d.ts.map +1 -0
  381. package/dist/util/src/Events.js +91 -0
  382. package/dist/util/src/Events.js.map +1 -0
  383. package/dist/util/src/Filters.d.ts +48 -0
  384. package/dist/util/src/Filters.d.ts.map +1 -0
  385. package/dist/util/src/Filters.js +182 -0
  386. package/dist/util/src/Filters.js.map +1 -0
  387. package/dist/util/src/Handles.d.ts +15 -0
  388. package/dist/util/src/Handles.d.ts.map +1 -0
  389. package/dist/util/src/Handles.js +25 -0
  390. package/dist/util/src/Handles.js.map +1 -0
  391. package/dist/util/src/Keys.d.ts +37 -0
  392. package/dist/util/src/Keys.d.ts.map +1 -0
  393. package/dist/util/src/Keys.js +26 -0
  394. package/dist/util/src/Keys.js.map +1 -0
  395. package/dist/util/src/Kinds.d.ts +194 -0
  396. package/dist/util/src/Kinds.d.ts.map +1 -0
  397. package/dist/util/src/Kinds.js +203 -0
  398. package/dist/util/src/Kinds.js.map +1 -0
  399. package/dist/util/src/Links.d.ts +3 -0
  400. package/dist/util/src/Links.d.ts.map +1 -0
  401. package/dist/util/src/Links.js +3 -0
  402. package/dist/util/src/Links.js.map +1 -0
  403. package/dist/util/src/Nip42.d.ts +7 -0
  404. package/dist/util/src/Nip42.d.ts.map +1 -0
  405. package/dist/util/src/Nip42.js +9 -0
  406. package/dist/util/src/Nip42.js.map +1 -0
  407. package/dist/util/src/Nip86.d.ts +39 -0
  408. package/dist/util/src/Nip86.d.ts.map +1 -0
  409. package/dist/util/src/Nip86.js +49 -0
  410. package/dist/util/src/Nip86.js.map +1 -0
  411. package/dist/util/src/Nip98.d.ts +9 -0
  412. package/dist/util/src/Nip98.d.ts.map +1 -0
  413. package/dist/util/src/Nip98.js +16 -0
  414. package/dist/util/src/Nip98.js.map +1 -0
  415. package/dist/util/src/Pow.d.ts +11 -0
  416. package/dist/util/src/Pow.d.ts.map +1 -0
  417. package/dist/util/src/Pow.js +127 -0
  418. package/dist/util/src/Pow.js.map +1 -0
  419. package/dist/util/src/Pubkey.d.ts +10 -0
  420. package/dist/util/src/Pubkey.d.ts.map +1 -0
  421. package/dist/util/src/Pubkey.js +32 -0
  422. package/dist/util/src/Pubkey.js.map +1 -0
  423. package/dist/util/src/Relay.d.ts +38 -0
  424. package/dist/util/src/Relay.d.ts.map +1 -0
  425. package/dist/util/src/Relay.js +55 -0
  426. package/dist/util/src/Relay.js.map +1 -0
  427. package/dist/util/src/Tags.d.ts +37 -0
  428. package/dist/util/src/Tags.d.ts.map +1 -0
  429. package/dist/util/src/Tags.js +79 -0
  430. package/dist/util/src/Tags.js.map +1 -0
  431. package/dist/util/src/Wallet.d.ts +32 -0
  432. package/dist/util/src/Wallet.d.ts.map +1 -0
  433. package/dist/util/src/Wallet.js +9 -0
  434. package/dist/util/src/Wallet.js.map +1 -0
  435. package/dist/util/src/Zaps.d.ts +86 -0
  436. package/dist/util/src/Zaps.d.ts.map +1 -0
  437. package/dist/util/src/Zaps.js +184 -0
  438. package/dist/util/src/Zaps.js.map +1 -0
  439. package/dist/util/src/index.d.ts +18 -0
  440. package/dist/util/src/index.d.ts.map +1 -0
  441. package/dist/util/src/index.js +18 -0
  442. package/dist/util/src/index.js.map +1 -0
  443. package/package.json +37 -0
@@ -0,0 +1,218 @@
1
+ import { ensureNumber } from "@welshman/lib";
2
+ import { unionFilters } from "@welshman/util";
3
+ import { getTagValues } from "@welshman/util";
4
+ import { FeedType, } from "./core.js";
5
+ export const makeAddressFeed = (...addresses) => [
6
+ FeedType.Address,
7
+ ...addresses,
8
+ ];
9
+ export const makeAuthorFeed = (...pubkeys) => [FeedType.Author, ...pubkeys];
10
+ export const makeCreatedAtFeed = (...items) => [
11
+ FeedType.CreatedAt,
12
+ ...items,
13
+ ];
14
+ export const makeDVMFeed = (...items) => [FeedType.DVM, ...items];
15
+ export const makeDifferenceFeed = (...feeds) => [
16
+ FeedType.Difference,
17
+ ...feeds,
18
+ ];
19
+ export const makeIDFeed = (...ids) => [FeedType.ID, ...ids];
20
+ export const makeIntersectionFeed = (...feeds) => [
21
+ FeedType.Intersection,
22
+ ...feeds,
23
+ ];
24
+ export const makeGlobalFeed = () => [FeedType.Global];
25
+ export const makeKindFeed = (...kinds) => [FeedType.Kind, ...kinds];
26
+ export const makeListFeed = (...items) => [FeedType.List, ...items];
27
+ export const makeLabelFeed = (...items) => [FeedType.Label, ...items];
28
+ export const makeWOTFeed = (...items) => [FeedType.WOT, ...items];
29
+ export const makeRelayFeed = (...urls) => [FeedType.Relay, ...urls];
30
+ export const makeScopeFeed = (...scopes) => [FeedType.Scope, ...scopes];
31
+ export const makeSearchFeed = (...searches) => [FeedType.Search, ...searches];
32
+ export const makeTagFeed = (key, ...values) => [
33
+ FeedType.Tag,
34
+ key,
35
+ ...values,
36
+ ];
37
+ export const makeUnionFeed = (...feeds) => [FeedType.Union, ...feeds];
38
+ export const isAddressFeed = (feed) => feed[0] === FeedType.Address;
39
+ export const isAuthorFeed = (feed) => feed[0] === FeedType.Author;
40
+ export const isCreatedAtFeed = (feed) => feed[0] === FeedType.CreatedAt;
41
+ export const isDVMFeed = (feed) => feed[0] === FeedType.DVM;
42
+ export const isDifferenceFeed = (feed) => feed[0] === FeedType.Difference;
43
+ export const isIDFeed = (feed) => feed[0] === FeedType.ID;
44
+ export const isIntersectionFeed = (feed) => feed[0] === FeedType.Intersection;
45
+ export const isGlobalFeed = (feed) => feed[0] === FeedType.Global;
46
+ export const isKindFeed = (feed) => feed[0] === FeedType.Kind;
47
+ export const isListFeed = (feed) => feed[0] === FeedType.List;
48
+ export const isLabelFeed = (feed) => feed[0] === FeedType.Label;
49
+ export const isWOTFeed = (feed) => feed[0] === FeedType.WOT;
50
+ export const isRelayFeed = (feed) => feed[0] === FeedType.Relay;
51
+ export const isScopeFeed = (feed) => feed[0] === FeedType.Scope;
52
+ export const isSearchFeed = (feed) => feed[0] === FeedType.Search;
53
+ export const isTagFeed = (feed) => feed[0] === FeedType.Tag;
54
+ export const isUnionFeed = (feed) => feed[0] === FeedType.Union;
55
+ export function getFeedArgs(feed) {
56
+ switch (feed[0]) {
57
+ case FeedType.Intersection:
58
+ return feed.slice(1);
59
+ case FeedType.Union:
60
+ return feed.slice(1);
61
+ case FeedType.Difference:
62
+ return feed.slice(1);
63
+ case FeedType.Address:
64
+ return feed.slice(1);
65
+ case FeedType.Author:
66
+ return feed.slice(1);
67
+ case FeedType.ID:
68
+ return feed.slice(1);
69
+ case FeedType.Relay:
70
+ return feed.slice(1);
71
+ case FeedType.Search:
72
+ return feed.slice(1);
73
+ case FeedType.Tag:
74
+ return feed.slice(1);
75
+ case FeedType.CreatedAt:
76
+ return feed.slice(1);
77
+ case FeedType.List:
78
+ return feed.slice(1);
79
+ case FeedType.Label:
80
+ return feed.slice(1);
81
+ case FeedType.DVM:
82
+ return feed.slice(1);
83
+ case FeedType.WOT:
84
+ return feed.slice(1);
85
+ case FeedType.Scope:
86
+ return feed.slice(1);
87
+ case FeedType.Kind:
88
+ return feed.slice(1);
89
+ case FeedType.Global:
90
+ return feed.slice(1);
91
+ default:
92
+ throw new Error(`Invalid feed type ${feed[0]}`);
93
+ }
94
+ }
95
+ export const hasSubFeeds = (feed) => [FeedType.Union, FeedType.Intersection, FeedType.Difference].includes(feed[0]);
96
+ export const defaultTagFeedMappings = [
97
+ ["a", [FeedType.Address]],
98
+ ["e", [FeedType.ID]],
99
+ ["p", [FeedType.Author]],
100
+ ["r", [FeedType.Relay]],
101
+ ["t", [FeedType.Tag, "#t"]],
102
+ ];
103
+ export const feedsFromTags = (tags, mappings) => {
104
+ const feeds = [];
105
+ for (const [tagName, templateFeed] of mappings || defaultTagFeedMappings) {
106
+ let values = getTagValues(tagName, tags);
107
+ if (values.length > 0) {
108
+ if (isKindFeed(templateFeed)) {
109
+ values = values.map(ensureNumber);
110
+ }
111
+ feeds.push([...templateFeed, ...values]);
112
+ }
113
+ }
114
+ return feeds;
115
+ };
116
+ export const feedFromTags = (tags, mappings) => makeIntersectionFeed(...feedsFromTags(tags, mappings));
117
+ export const feedsFromFilter = ({ since, until, ...filter }) => {
118
+ const feeds = [];
119
+ if (since && until) {
120
+ feeds.push(makeCreatedAtFeed({ since, until }));
121
+ }
122
+ else if (since) {
123
+ feeds.push(makeCreatedAtFeed({ since }));
124
+ }
125
+ else if (until) {
126
+ feeds.push(makeCreatedAtFeed({ until }));
127
+ }
128
+ for (const [k, v] of Object.entries(filter)) {
129
+ if (k === "ids")
130
+ feeds.push(makeIDFeed(...v));
131
+ else if (k === "kinds")
132
+ feeds.push(makeKindFeed(...v));
133
+ else if (k === "authors")
134
+ feeds.push(makeAuthorFeed(...v));
135
+ else if (k.startsWith("#"))
136
+ feeds.push(makeTagFeed(k, ...v));
137
+ else
138
+ throw new Error(`Unable to create feed from filter ${k}: ${v}`);
139
+ }
140
+ return feeds;
141
+ };
142
+ export const feedFromFilter = (filter) => {
143
+ const feeds = feedsFromFilter(filter);
144
+ return feeds.length === 1 ? feeds[0] : makeIntersectionFeed(...feeds);
145
+ };
146
+ export const feedFromFilters = (filters) => {
147
+ const feeds = unionFilters(filters).map(filter => feedFromFilter(filter));
148
+ return feeds.length === 1 ? feeds[0] : makeUnionFeed(...feeds);
149
+ };
150
+ export const walkFeed = (feed, visit) => {
151
+ visit(feed);
152
+ if (hasSubFeeds(feed)) {
153
+ for (const subFeed of getFeedArgs(feed)) {
154
+ walkFeed(subFeed, visit);
155
+ }
156
+ }
157
+ };
158
+ export const findFeed = (feed, match) => {
159
+ if (match(feed))
160
+ return feed;
161
+ if (hasSubFeeds(feed)) {
162
+ for (const subFeed of getFeedArgs(feed)) {
163
+ const found = findFeed(subFeed, match);
164
+ if (found) {
165
+ return found;
166
+ }
167
+ }
168
+ }
169
+ };
170
+ export const simplifyFeed = (feed) => {
171
+ if (isUnionFeed(feed)) {
172
+ const args = getFeedArgs(feed);
173
+ if (args.length === 1)
174
+ return simplifyFeed(args[0]);
175
+ const modified = [];
176
+ for (const sub of args.map(simplifyFeed)) {
177
+ if (isUnionFeed(sub)) {
178
+ modified.push(...getFeedArgs(sub));
179
+ }
180
+ else {
181
+ modified.push(sub);
182
+ }
183
+ }
184
+ return makeUnionFeed(...modified);
185
+ }
186
+ if (isIntersectionFeed(feed)) {
187
+ const args = getFeedArgs(feed);
188
+ if (args.length === 1)
189
+ return simplifyFeed(args[0]);
190
+ const modified = [];
191
+ for (const sub of args.map(simplifyFeed)) {
192
+ if (isIntersectionFeed(sub)) {
193
+ modified.push(...getFeedArgs(sub));
194
+ }
195
+ else {
196
+ modified.push(sub);
197
+ }
198
+ }
199
+ return makeIntersectionFeed(...modified);
200
+ }
201
+ if (isDifferenceFeed(feed)) {
202
+ const args = getFeedArgs(feed);
203
+ if (args.length === 1)
204
+ return simplifyFeed(args[0]);
205
+ const modified = [];
206
+ for (const sub of args.map(simplifyFeed)) {
207
+ if (isDifferenceFeed(sub)) {
208
+ modified.push(...getFeedArgs(sub));
209
+ }
210
+ else {
211
+ modified.push(sub);
212
+ }
213
+ }
214
+ return makeDifferenceFeed(...modified);
215
+ }
216
+ return feed;
217
+ };
218
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../feeds/src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import Trava from "trava";
2
+ declare const ValidationError: typeof Trava.ValidationError;
3
+ export { ValidationError };
4
+ export declare const validateTagFeedMapping: Trava.Validator;
5
+ export declare const validateFeedArgs: (validateArgument: Trava.Validator) => (feed: any) => any;
6
+ export declare const validateAddressFeed: (feed: any) => any;
7
+ export declare const validateAuthorFeed: (feed: any) => any;
8
+ export declare const validateCreatedAtFeed: (feed: any) => any;
9
+ export declare const validateDVMFeed: (feed: any) => any;
10
+ export declare const validateDifferenceFeed: (feed: any) => any;
11
+ export declare const validateIDFeed: (feed: any) => any;
12
+ export declare const validateIntersectionFeed: (feed: any) => any;
13
+ export declare const validateGlobalFeed: (feed: any) => any;
14
+ export declare const validateKindFeed: (feed: any) => any;
15
+ export declare const validateListFeed: (feed: any) => any;
16
+ export declare const validateLabelFeed: (feed: any) => any;
17
+ export declare const validateWOTFeed: (feed: any) => any;
18
+ export declare const validateRelayFeed: (feed: any) => any;
19
+ export declare const validateScopeFeed: (feed: any) => any;
20
+ export declare const validateSearchFeed: (feed: any) => any;
21
+ export declare const validateTagFeed: (feed: any) => any;
22
+ export declare const validateUnionFeed: (feed: any) => any;
23
+ export declare const validateFeed: (feed: any) => any;
24
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../feeds/src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,QAAA,MAAO,eAAe,8BAA+C,CAAA;AAqBrE,OAAO,EAAC,eAAe,EAAC,CAAA;AAExB,eAAO,MAAM,sBAAsB,iBAKjC,CAAA;AAEF,eAAO,MAAM,gBAAgB,GAAI,kBAAkB,KAAK,CAAC,SAAS,MAAM,MAAM,GAAG,QAUhF,CAAA;AAED,eAAO,MAAM,mBAAmB,SAZ8C,GAAG,QAYb,CAAA;AAEpE,eAAO,MAAM,kBAAkB,SAd+C,GAAG,QAclB,CAAA;AAE/D,eAAO,MAAM,qBAAqB,SAhB4C,GAAG,QAsBhF,CAAA;AAED,eAAO,MAAM,eAAe,SAxBkD,GAAG,QA+BhF,CAAA;AAED,eAAO,MAAM,sBAAsB,SAjC2C,GAAG,QAiCE,CAAA;AAEnF,eAAO,MAAM,cAAc,SAnCmD,GAAG,QAmCtB,CAAA;AAE3D,eAAO,MAAM,wBAAwB,SArCyC,GAAG,QAqCI,CAAA;AAErF,eAAO,MAAM,kBAAkB,SAvC+C,GAAG,QAuCF,CAAA;AAE/E,eAAO,MAAM,gBAAgB,SAzCiD,GAAG,QAyCjB,CAAA;AAEhE,eAAO,MAAM,gBAAgB,SA3CiD,GAAG,QAgDhF,CAAA;AAED,eAAO,MAAM,iBAAiB,SAlDgD,GAAG,QA+EhF,CAAA;AAED,eAAO,MAAM,eAAe,SAjFkD,GAAG,QAsFhF,CAAA;AAED,eAAO,MAAM,iBAAiB,SAxFgD,GAAG,QAwFjB,CAAA;AAEhE,eAAO,MAAM,iBAAiB,SA1FgD,GAAG,QA0FjB,CAAA;AAEhE,eAAO,MAAM,kBAAkB,SA5F+C,GAAG,QA4Ff,CAAA;AAElE,eAAO,MAAM,eAAe,SA9FkD,GAAG,QA8FlB,CAAA;AAE/D,eAAO,MAAM,iBAAiB,SAhGgD,GAAG,QAgGH,CAAA;AAE9E,eAAO,MAAM,YAAY,GAAI,MAAM,GAAG,QA0CrC,CAAA"}
@@ -0,0 +1,137 @@
1
+ import Trava from "trava";
2
+ import { spec, isPojo } from "@welshman/lib";
3
+ import { isRelayUrl, Address } from "@welshman/util";
4
+ import { Scope, FeedType } from "./core.js";
5
+ import { getFeedArgs } from "./utils.js";
6
+ const { ValidationError, Compose, Check, Each, Optional, Keys } = Trava;
7
+ const validateNumber = Check((x) => typeof x === "number", "Value must be a number");
8
+ const validateString = Check((x) => typeof x === "string", "Value must be a string");
9
+ const validateRelay = Check((x) => typeof x === "string" && isRelayUrl(x), "Invalid relay url");
10
+ const validateScope = Check((x) => Object.values(Scope).includes(x), "Invalid scope");
11
+ const validateHex = Check((x) => typeof x === "string" && x.length === 64, "Invalid hex value");
12
+ const validateAddress = Check((x) => typeof x === "string" && Address.isAddress(x), "Invalid address");
13
+ const validateArray = Check((x) => Array.isArray(x), "Value must be an array");
14
+ const validateObject = Check((x) => isPojo(x), "Value must be an object");
15
+ export { ValidationError };
16
+ export const validateTagFeedMapping = Compose([
17
+ validateArray,
18
+ Check(spec({ length: 2 }), "Tag feed mappings must have two entries"),
19
+ (a) => validateString(a[0]),
20
+ (a) => validateFeed(a[1]),
21
+ ]);
22
+ export const validateFeedArgs = (validateArgument) => (feed) => {
23
+ let error = validateArray(feed);
24
+ if (error instanceof ValidationError)
25
+ return error;
26
+ for (const argument of getFeedArgs(feed)) {
27
+ error = validateArgument(argument);
28
+ if (error instanceof ValidationError)
29
+ return error;
30
+ }
31
+ return feed;
32
+ };
33
+ export const validateAddressFeed = validateFeedArgs(validateAddress);
34
+ export const validateAuthorFeed = validateFeedArgs(validateHex);
35
+ export const validateCreatedAtFeed = validateFeedArgs(Keys({
36
+ since: Optional(validateNumber),
37
+ until: Optional(validateNumber),
38
+ relative: Optional(Each(validateString)),
39
+ }));
40
+ export const validateDVMFeed = validateFeedArgs(Keys({
41
+ kind: validateNumber,
42
+ tags: Optional(Each(validateString)),
43
+ relays: Optional(Each(validateString)),
44
+ mappings: Optional(Each(validateTagFeedMapping)),
45
+ }));
46
+ export const validateDifferenceFeed = validateFeedArgs((x) => validateFeed(x));
47
+ export const validateIDFeed = validateFeedArgs(validateHex);
48
+ export const validateIntersectionFeed = validateFeedArgs((x) => validateFeed(x));
49
+ export const validateGlobalFeed = validateFeedArgs((x) => validateFeed(x));
50
+ export const validateKindFeed = validateFeedArgs(validateNumber);
51
+ export const validateListFeed = validateFeedArgs(Keys({
52
+ addresses: Optional(Each(validateString)),
53
+ mappings: Optional(Each(validateTagFeedMapping)),
54
+ }));
55
+ export const validateLabelFeed = validateFeedArgs(Compose([
56
+ validateObject,
57
+ (item) => {
58
+ const validateRelays = Each(validateRelay);
59
+ const validateAuthors = Each(validateHex);
60
+ const validateStrings = Each(validateString);
61
+ const validateMappings = Each(validateTagFeedMapping);
62
+ for (const [key, value] of Object.entries(item)) {
63
+ let error;
64
+ if (key === "relays") {
65
+ error = validateRelays(value);
66
+ }
67
+ else if (key === "authors") {
68
+ error = validateAuthors(value);
69
+ }
70
+ else if (key === "mappings") {
71
+ error = validateMappings(value);
72
+ }
73
+ else if (key.match("^#.$")) {
74
+ error = validateStrings(value);
75
+ }
76
+ else {
77
+ error = new ValidationError("Invalid label item");
78
+ }
79
+ if (error instanceof ValidationError)
80
+ return error;
81
+ }
82
+ return item;
83
+ },
84
+ ]));
85
+ export const validateWOTFeed = validateFeedArgs(Keys({
86
+ min: Optional(validateNumber),
87
+ max: Optional(validateNumber),
88
+ }));
89
+ export const validateRelayFeed = validateFeedArgs(validateRelay);
90
+ export const validateScopeFeed = validateFeedArgs(validateScope);
91
+ export const validateSearchFeed = validateFeedArgs(validateString);
92
+ export const validateTagFeed = validateFeedArgs(validateString);
93
+ export const validateUnionFeed = validateFeedArgs((x) => validateFeed(x));
94
+ export const validateFeed = (feed) => {
95
+ const error = validateArray(feed);
96
+ if (error instanceof ValidationError)
97
+ return error;
98
+ switch (feed[0]) {
99
+ case FeedType.Address:
100
+ return validateAddressFeed(feed);
101
+ case FeedType.Author:
102
+ return validateAuthorFeed(feed);
103
+ case FeedType.CreatedAt:
104
+ return validateCreatedAtFeed(feed);
105
+ case FeedType.DVM:
106
+ return validateDVMFeed(feed);
107
+ case FeedType.Difference:
108
+ return validateDifferenceFeed(feed);
109
+ case FeedType.ID:
110
+ return validateIDFeed(feed);
111
+ case FeedType.Intersection:
112
+ return validateIntersectionFeed(feed);
113
+ case FeedType.Global:
114
+ return validateGlobalFeed(feed);
115
+ case FeedType.Kind:
116
+ return validateKindFeed(feed);
117
+ case FeedType.List:
118
+ return validateListFeed(feed);
119
+ case FeedType.Label:
120
+ return validateLabelFeed(feed);
121
+ case FeedType.WOT:
122
+ return validateWOTFeed(feed);
123
+ case FeedType.Relay:
124
+ return validateRelayFeed(feed);
125
+ case FeedType.Scope:
126
+ return validateScopeFeed(feed);
127
+ case FeedType.Search:
128
+ return validateSearchFeed(feed);
129
+ case FeedType.Tag:
130
+ return validateTagFeed(feed);
131
+ case FeedType.Union:
132
+ return validateUnionFeed(feed);
133
+ default:
134
+ return new ValidationError("Unknown feed type");
135
+ }
136
+ };
137
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../feeds/src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAC,UAAU,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAA;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAA;AAEtC,MAAM,EAAC,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,GAAG,KAAK,CAAA;AAErE,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,wBAAwB,CAAC,CAAA;AAEzF,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,wBAAwB,CAAC,CAAA;AAEzF,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAA;AAEpG,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;AAE1F,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,EAAE,mBAAmB,CAAC,CAAA;AAEpG,MAAM,eAAe,GAAG,KAAK,CAC3B,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EACzD,iBAAiB,CAClB,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAA;AAEnF,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAA;AAE9E,OAAO,EAAC,eAAe,EAAC,CAAA;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC;IAC5C,aAAa;IACb,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,CAAC,EAAE,yCAAyC,CAAC;IACnE,CAAC,CAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,gBAAiC,EAAE,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE;IACnF,IAAI,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,KAAK,YAAY,eAAe;QAAE,OAAO,KAAK,CAAA;IAElD,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,KAAK,YAAY,eAAe;YAAE,OAAO,KAAK,CAAA;IACpD,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CACnD,IAAI,CAAC;IACH,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC;IAC/B,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;CACzC,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAC7C,IAAI,CAAC;IACH,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;CACjD,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AAEnF,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;AAE3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AAErF,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;AAEhE,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAC9C,IAAI,CAAC;IACH,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;CACjD,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAC/C,OAAO,CAAC;IACN,cAAc;IACd,CAAC,IAAS,EAAE,EAAE;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA;QACzC,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAErD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,IAAI,KAAK,CAAA;YACT,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;YAC/B,CAAC;iBAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7B,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACjC,CAAC;iBAAM,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;YACnD,CAAC;YAED,IAAI,KAAK,YAAY,eAAe;gBAAE,OAAO,KAAK,CAAA;QACpD,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAC7C,IAAI,CAAC;IACH,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC;IAC7B,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC;CAC9B,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;AAEhE,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;AAElE,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AAE9E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAS,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,KAAK,YAAY,eAAe;QAAE,OAAO,KAAK,CAAA;IAElD,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,KAAK,QAAQ,CAAC,OAAO;YACnB,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAClC,KAAK,QAAQ,CAAC,MAAM;YAClB,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACjC,KAAK,QAAQ,CAAC,SAAS;YACrB,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACpC,KAAK,QAAQ,CAAC,GAAG;YACf,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,QAAQ,CAAC,UAAU;YACtB,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAA;QACrC,KAAK,QAAQ,CAAC,EAAE;YACd,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;QAC7B,KAAK,QAAQ,CAAC,YAAY;YACxB,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;QACvC,KAAK,QAAQ,CAAC,MAAM;YAClB,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACjC,KAAK,QAAQ,CAAC,IAAI;YAChB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC/B,KAAK,QAAQ,CAAC,IAAI;YAChB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC/B,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAChC,KAAK,QAAQ,CAAC,GAAG;YACf,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAChC,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAChC,KAAK,QAAQ,CAAC,MAAM;YAClB,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACjC,KAAK,QAAQ,CAAC,GAAG;YACf,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAChC;YACE,OAAO,IAAI,eAAe,CAAC,mBAAmB,CAAC,CAAA;IACnD,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ /** Promise type with strongly typed error */
2
+ export type CustomPromise<T, E> = Promise<T> & {
3
+ __errorType: E;
4
+ };
5
+ /**
6
+ * Creates a Promise with strongly typed error
7
+ * @param executor - Promise executor function
8
+ * @returns Promise with typed error
9
+ */
10
+ export declare function makePromise<T, E>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason: E) => void) => void): CustomPromise<T, E>;
11
+ /** Promise with exposed resolve/reject functions and typed error */
12
+ export type Deferred<T, E = T> = CustomPromise<T, E> & {
13
+ resolve: (arg: T) => void;
14
+ reject: (arg: E) => void;
15
+ };
16
+ /**
17
+ * Creates a Deferred promise
18
+ * @returns Promise with resolve/reject methods exposed
19
+ */
20
+ export declare const defer: <T, E = T>() => Deferred<T, E>;
21
+ //# sourceMappingURL=Deferred.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Deferred.d.ts","sourceRoot":"","sources":["../../../../lib/src/Deferred.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IAC7C,WAAW,EAAE,CAAC,CAAA;CACf,CAAA;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,GAC5F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAErB;AAED,oEAAoE;AACpE,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IACrD,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;IACzB,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;CACzB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,CAQ/C,CAAA"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Creates a Promise with strongly typed error
3
+ * @param executor - Promise executor function
4
+ * @returns Promise with typed error
5
+ */
6
+ export function makePromise(executor) {
7
+ return new Promise(executor);
8
+ }
9
+ /**
10
+ * Creates a Deferred promise
11
+ * @returns Promise with resolve/reject methods exposed
12
+ */
13
+ export const defer = () => {
14
+ let resolve, reject;
15
+ const p = makePromise((resolve_, reject_) => {
16
+ resolve = resolve_;
17
+ reject = reject_;
18
+ });
19
+ return Object.assign(p, { resolve, reject });
20
+ };
21
+ //# sourceMappingURL=Deferred.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../../../../lib/src/Deferred.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,QAA6F;IAE7F,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAwB,CAAA;AACrD,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,GAA6B,EAAE;IAClD,IAAI,OAAO,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC1C,OAAO,GAAG,QAAQ,CAAA;QAClB,MAAM,GAAG,OAAO,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAA8B,CAAA;AACzE,CAAC,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { EventEmitter } from "events";
2
+ /**
3
+ * Extended EventEmitter that also emits all events to '*' listeners
4
+ */
5
+ export declare class Emitter extends EventEmitter {
6
+ /**
7
+ * Emits an event to listeners and to '*' listeners
8
+ * @param type - Event type/name
9
+ * @param args - Arguments to pass to listeners
10
+ * @returns True if event had listeners
11
+ */
12
+ emit(type: string, ...args: any[]): boolean;
13
+ }
14
+ //# sourceMappingURL=Emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Emitter.d.ts","sourceRoot":"","sources":["../../../../lib/src/Emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AAEnC;;GAEG;AACH,qBAAa,OAAQ,SAAQ,YAAY;IACvC;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAMlC"}
@@ -0,0 +1,18 @@
1
+ import { EventEmitter } from "events";
2
+ /**
3
+ * Extended EventEmitter that also emits all events to '*' listeners
4
+ */
5
+ export class Emitter extends EventEmitter {
6
+ /**
7
+ * Emits an event to listeners and to '*' listeners
8
+ * @param type - Event type/name
9
+ * @param args - Arguments to pass to listeners
10
+ * @returns True if event had listeners
11
+ */
12
+ emit(type, ...args) {
13
+ const a = super.emit(type, ...args);
14
+ const b = super.emit("*", type, ...args);
15
+ return a && b;
16
+ }
17
+ }
18
+ //# sourceMappingURL=Emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Emitter.js","sourceRoot":"","sources":["../../../../lib/src/Emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AAEnC;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,YAAY;IACvC;;;;;OAKG;IACH,IAAI,CAAC,IAAY,EAAE,GAAG,IAAW;QAC/B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;QAExC,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Least Recently Used (LRU) cache implementation
3
+ * @template T - Type of cache keys
4
+ * @template U - Type of cache values
5
+ */
6
+ export declare class LRUCache<T, U> {
7
+ readonly maxSize: number;
8
+ map: Map<T, U>;
9
+ keys: T[];
10
+ constructor(maxSize?: number);
11
+ has(k: T): boolean;
12
+ get(k: T): U | undefined;
13
+ set(k: T, v: U): void;
14
+ pop(k: T): U | undefined;
15
+ }
16
+ /**
17
+ * Creates a memoized function with LRU caching
18
+ * @template T - Cache key type
19
+ * @template V - Cache value type
20
+ * @template Args - Function argument types
21
+ */
22
+ export declare function cached<T, V, Args extends any[]>({ maxSize, getKey, getValue, }: {
23
+ maxSize: number;
24
+ getKey: (args: Args) => T;
25
+ getValue: (args: Args) => V;
26
+ }): {
27
+ (...args: Args): NonNullable<V>;
28
+ cache: LRUCache<T, V>;
29
+ getKey: (args: Args) => T;
30
+ getValue: (args: Args) => V;
31
+ pop: (...args: Args) => V;
32
+ };
33
+ /**
34
+ * Creates a simple memoized function with default settings
35
+ * @template V - Cache value type
36
+ * @template Args - Function argument types
37
+ */
38
+ export declare function simpleCache<V, Args extends any[]>(getValue: (args: Args) => V): {
39
+ (...args: Args): NonNullable<V>;
40
+ cache: LRUCache<string, V>;
41
+ getKey: (args: Args) => string;
42
+ getValue: (args: Args) => V;
43
+ pop: (...args: Args) => V;
44
+ };
45
+ //# sourceMappingURL=LRUCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LRUCache.d.ts","sourceRoot":"","sources":["../../../../lib/src/LRUCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IAIZ,QAAQ,CAAC,OAAO,EAAE,MAAM;IAHpC,GAAG,YAAkB;IACrB,IAAI,EAAE,CAAC,EAAE,CAAK;gBAEO,OAAO,GAAE,MAAiB;IAE/C,GAAG,CAAC,CAAC,EAAE,CAAC;IAIR,GAAG,CAAC,CAAC,EAAE,CAAC;IAcR,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IASd,GAAG,CAAC,CAAC,EAAE,CAAC;CAOT;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,EAAE,EAAE,EAC/C,OAAO,EACP,MAAM,EACN,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAA;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAA;CAC5B;cAGuB,IAAI;;mBALX,IAAI,KAAK,CAAC;qBACR,IAAI,KAAK,CAAC;mBAcL,IAAI;EAY3B;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC;;;;;;EAE7E"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Least Recently Used (LRU) cache implementation
3
+ * @template T - Type of cache keys
4
+ * @template U - Type of cache values
5
+ */
6
+ export class LRUCache {
7
+ maxSize;
8
+ map = new Map();
9
+ keys = [];
10
+ constructor(maxSize = Infinity) {
11
+ this.maxSize = maxSize;
12
+ }
13
+ has(k) {
14
+ return this.map.has(k);
15
+ }
16
+ get(k) {
17
+ const v = this.map.get(k);
18
+ if (v !== undefined) {
19
+ this.keys.push(k);
20
+ if (this.keys.length > this.maxSize * 2) {
21
+ this.keys = this.keys.splice(-this.maxSize);
22
+ }
23
+ }
24
+ return v;
25
+ }
26
+ set(k, v) {
27
+ this.map.set(k, v);
28
+ this.keys.push(k);
29
+ if (this.map.size > this.maxSize) {
30
+ this.map.delete(this.keys.shift());
31
+ }
32
+ }
33
+ pop(k) {
34
+ const v = this.get(k);
35
+ this.map.delete(k);
36
+ return v;
37
+ }
38
+ }
39
+ /**
40
+ * Creates a memoized function with LRU caching
41
+ * @template T - Cache key type
42
+ * @template V - Cache value type
43
+ * @template Args - Function argument types
44
+ */
45
+ export function cached({ maxSize, getKey, getValue, }) {
46
+ const cache = new LRUCache(maxSize);
47
+ const get = (...args) => {
48
+ const k = getKey(args);
49
+ if (!cache.has(k)) {
50
+ cache.set(k, getValue(args));
51
+ }
52
+ return cache.get(k);
53
+ };
54
+ const pop = (...args) => {
55
+ const k = getKey(args);
56
+ return cache.has(k) ? cache.pop(k) : getValue(args);
57
+ };
58
+ get.cache = cache;
59
+ get.getKey = getKey;
60
+ get.getValue = getValue;
61
+ get.pop = pop;
62
+ return get;
63
+ }
64
+ /**
65
+ * Creates a simple memoized function with default settings
66
+ * @template V - Cache value type
67
+ * @template Args - Function argument types
68
+ */
69
+ export function simpleCache(getValue) {
70
+ return cached({ maxSize: 10 ** 5, getKey: xs => xs.join(":"), getValue });
71
+ }
72
+ //# sourceMappingURL=LRUCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LRUCache.js","sourceRoot":"","sources":["../../../../lib/src/LRUCache.ts"],"names":[],"mappings":"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"}