@welshman/app 0.6.8 → 0.7.1

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 (178) hide show
  1. package/dist/app/src/blossom.d.ts +7 -5
  2. package/dist/app/src/blossom.d.ts.map +1 -1
  3. package/dist/app/src/blossom.js +12 -11
  4. package/dist/app/src/blossom.js.map +1 -1
  5. package/dist/app/src/commands.d.ts +2 -2
  6. package/dist/app/src/commands.d.ts.map +1 -1
  7. package/dist/app/src/commands.js +29 -29
  8. package/dist/app/src/commands.js.map +1 -1
  9. package/dist/app/src/core.d.ts +0 -6
  10. package/dist/app/src/core.d.ts.map +1 -1
  11. package/dist/app/src/core.js +0 -33
  12. package/dist/app/src/core.js.map +1 -1
  13. package/dist/app/src/feeds.d.ts.map +1 -1
  14. package/dist/app/src/feeds.js +5 -4
  15. package/dist/app/src/feeds.js.map +1 -1
  16. package/dist/app/src/follows.d.ts +8 -5
  17. package/dist/app/src/follows.d.ts.map +1 -1
  18. package/dist/app/src/follows.js +12 -10
  19. package/dist/app/src/follows.js.map +1 -1
  20. package/dist/app/src/handles.d.ts +14 -5
  21. package/dist/app/src/handles.d.ts.map +1 -1
  22. package/dist/app/src/handles.js +46 -37
  23. package/dist/app/src/handles.js.map +1 -1
  24. package/dist/app/src/index.d.ts +2 -2
  25. package/dist/app/src/index.d.ts.map +1 -1
  26. package/dist/app/src/index.js +12 -12
  27. package/dist/app/src/index.js.map +1 -1
  28. package/dist/app/src/messagingRelayLists.d.ts +9 -0
  29. package/dist/app/src/messagingRelayLists.d.ts.map +1 -0
  30. package/dist/app/src/messagingRelayLists.js +18 -0
  31. package/dist/app/src/messagingRelayLists.js.map +1 -0
  32. package/dist/app/src/mutes.d.ts +8 -4
  33. package/dist/app/src/mutes.d.ts.map +1 -1
  34. package/dist/app/src/mutes.js +12 -10
  35. package/dist/app/src/mutes.js.map +1 -1
  36. package/dist/app/src/pins.d.ts +8 -5
  37. package/dist/app/src/pins.d.ts.map +1 -1
  38. package/dist/app/src/pins.js +12 -10
  39. package/dist/app/src/pins.js.map +1 -1
  40. package/dist/app/src/profiles.d.ts +9 -6
  41. package/dist/app/src/profiles.d.ts.map +1 -1
  42. package/dist/app/src/profiles.js +15 -13
  43. package/dist/app/src/profiles.js.map +1 -1
  44. package/dist/app/src/relayLists.d.ts +15 -0
  45. package/dist/app/src/relayLists.d.ts.map +1 -0
  46. package/dist/app/src/{relaySelections.js → relayLists.js} +14 -12
  47. package/dist/app/src/relayLists.js.map +1 -0
  48. package/dist/app/src/relayStats.d.ts +8 -3
  49. package/dist/app/src/relayStats.d.ts.map +1 -1
  50. package/dist/app/src/relayStats.js +16 -10
  51. package/dist/app/src/relayStats.js.map +1 -1
  52. package/dist/app/src/relays.d.ts +15 -8
  53. package/dist/app/src/relays.d.ts.map +1 -1
  54. package/dist/app/src/relays.js +48 -42
  55. package/dist/app/src/relays.js.map +1 -1
  56. package/dist/app/src/search.js +3 -3
  57. package/dist/app/src/search.js.map +1 -1
  58. package/dist/app/src/session.d.ts.map +1 -1
  59. package/dist/app/src/session.js +2 -2
  60. package/dist/app/src/session.js.map +1 -1
  61. package/dist/app/src/sync.js +2 -2
  62. package/dist/app/src/sync.js.map +1 -1
  63. package/dist/app/src/thunk.d.ts.map +1 -1
  64. package/dist/app/src/thunk.js +2 -2
  65. package/dist/app/src/thunk.js.map +1 -1
  66. package/dist/app/src/topics.d.ts +2 -1
  67. package/dist/app/src/topics.d.ts.map +1 -1
  68. package/dist/app/src/topics.js +33 -15
  69. package/dist/app/src/topics.js.map +1 -1
  70. package/dist/app/src/user.d.ts +24 -21
  71. package/dist/app/src/user.d.ts.map +1 -1
  72. package/dist/app/src/user.js +35 -50
  73. package/dist/app/src/user.js.map +1 -1
  74. package/dist/app/src/wot.d.ts +8 -4
  75. package/dist/app/src/wot.d.ts.map +1 -1
  76. package/dist/app/src/wot.js +20 -16
  77. package/dist/app/src/wot.js.map +1 -1
  78. package/dist/app/src/zappers.d.ts +14 -7
  79. package/dist/app/src/zappers.d.ts.map +1 -1
  80. package/dist/app/src/zappers.js +55 -47
  81. package/dist/app/src/zappers.js.map +1 -1
  82. package/dist/lib/src/Tools.d.ts +36 -9
  83. package/dist/lib/src/Tools.d.ts.map +1 -1
  84. package/dist/lib/src/Tools.js +86 -38
  85. package/dist/lib/src/Tools.js.map +1 -1
  86. package/dist/net/src/policy.d.ts.map +1 -1
  87. package/dist/net/src/policy.js +18 -3
  88. package/dist/net/src/policy.js.map +1 -1
  89. package/dist/net/src/repository.js +1 -1
  90. package/dist/net/src/repository.js.map +1 -1
  91. package/dist/signer/src/nip59.d.ts.map +1 -1
  92. package/dist/signer/src/nip59.js +2 -2
  93. package/dist/signer/src/nip59.js.map +1 -1
  94. package/dist/signer/src/signers/nip01.d.ts.map +1 -1
  95. package/dist/signer/src/signers/nip01.js +2 -1
  96. package/dist/signer/src/signers/nip01.js.map +1 -1
  97. package/dist/signer/src/signers/nip07.d.ts.map +1 -1
  98. package/dist/signer/src/signers/nip07.js +2 -1
  99. package/dist/signer/src/signers/nip07.js.map +1 -1
  100. package/dist/signer/src/signers/nip46.d.ts +17 -2
  101. package/dist/signer/src/signers/nip46.d.ts.map +1 -1
  102. package/dist/signer/src/signers/nip46.js +137 -14
  103. package/dist/signer/src/signers/nip46.js.map +1 -1
  104. package/dist/signer/src/signers/nip55.d.ts.map +1 -1
  105. package/dist/signer/src/signers/nip55.js +2 -1
  106. package/dist/signer/src/signers/nip55.js.map +1 -1
  107. package/dist/signer/src/util.d.ts +1 -36
  108. package/dist/signer/src/util.d.ts.map +1 -1
  109. package/dist/signer/src/util.js +2 -25
  110. package/dist/signer/src/util.js.map +1 -1
  111. package/dist/store/src/index.d.ts +1 -5
  112. package/dist/store/src/index.d.ts.map +1 -1
  113. package/dist/store/src/index.js +1 -5
  114. package/dist/store/src/index.js.map +1 -1
  115. package/dist/store/src/misc.d.ts +18 -0
  116. package/dist/store/src/misc.d.ts.map +1 -0
  117. package/dist/store/src/misc.js +66 -0
  118. package/dist/store/src/misc.js.map +1 -0
  119. package/dist/store/src/repository.d.ts +52 -11
  120. package/dist/store/src/repository.d.ts.map +1 -1
  121. package/dist/store/src/repository.js +305 -80
  122. package/dist/store/src/repository.js.map +1 -1
  123. package/dist/tsconfig.build.tsbuildinfo +1 -1
  124. package/dist/util/src/Events.d.ts +2 -0
  125. package/dist/util/src/Events.d.ts.map +1 -1
  126. package/dist/util/src/Events.js +3 -1
  127. package/dist/util/src/Events.js.map +1 -1
  128. package/dist/util/src/Keys.d.ts +37 -0
  129. package/dist/util/src/Keys.d.ts.map +1 -0
  130. package/dist/util/src/Keys.js +26 -0
  131. package/dist/util/src/Keys.js.map +1 -0
  132. package/dist/util/src/Kinds.d.ts +8 -1
  133. package/dist/util/src/Kinds.d.ts.map +1 -1
  134. package/dist/util/src/Kinds.js +8 -1
  135. package/dist/util/src/Kinds.js.map +1 -1
  136. package/dist/util/src/Pow.d.ts +11 -0
  137. package/dist/util/src/Pow.d.ts.map +1 -0
  138. package/dist/util/src/Pow.js +127 -0
  139. package/dist/util/src/Pow.js.map +1 -0
  140. package/dist/util/src/Relay.d.ts +1 -1
  141. package/dist/util/src/Relay.d.ts.map +1 -1
  142. package/dist/util/src/Relay.js +1 -1
  143. package/dist/util/src/Relay.js.map +1 -1
  144. package/dist/util/src/Zaps.d.ts.map +1 -1
  145. package/dist/util/src/Zaps.js +2 -2
  146. package/dist/util/src/Zaps.js.map +1 -1
  147. package/dist/util/src/index.d.ts +2 -0
  148. package/dist/util/src/index.d.ts.map +1 -1
  149. package/dist/util/src/index.js +2 -0
  150. package/dist/util/src/index.js.map +1 -1
  151. package/package.json +8 -8
  152. package/dist/app/src/inboxRelaySelections.d.ts +0 -6
  153. package/dist/app/src/inboxRelaySelections.d.ts.map +0 -1
  154. package/dist/app/src/inboxRelaySelections.js +0 -16
  155. package/dist/app/src/inboxRelaySelections.js.map +0 -1
  156. package/dist/app/src/relaySelections.d.ts +0 -11
  157. package/dist/app/src/relaySelections.d.ts.map +0 -1
  158. package/dist/app/src/relaySelections.js.map +0 -1
  159. package/dist/store/src/collection.d.ts +0 -34
  160. package/dist/store/src/collection.d.ts.map +0 -1
  161. package/dist/store/src/collection.js +0 -82
  162. package/dist/store/src/collection.js.map +0 -1
  163. package/dist/store/src/custom.d.ts +0 -10
  164. package/dist/store/src/custom.d.ts.map +0 -1
  165. package/dist/store/src/custom.js +0 -41
  166. package/dist/store/src/custom.js.map +0 -1
  167. package/dist/store/src/getter.d.ts +0 -11
  168. package/dist/store/src/getter.d.ts.map +0 -1
  169. package/dist/store/src/getter.js +0 -11
  170. package/dist/store/src/getter.js.map +0 -1
  171. package/dist/store/src/memoize.d.ts +0 -5
  172. package/dist/store/src/memoize.d.ts.map +0 -1
  173. package/dist/store/src/memoize.js +0 -6
  174. package/dist/store/src/memoize.js.map +0 -1
  175. package/dist/store/src/throttle.d.ts +0 -3
  176. package/dist/store/src/throttle.d.ts.map +0 -1
  177. package/dist/store/src/throttle.js +0 -9
  178. package/dist/store/src/throttle.js.map +0 -1
@@ -1,61 +1,46 @@
1
1
  import { derived } from "svelte/store";
2
- import { withGetter, memoized } from "@welshman/store";
3
2
  import { pubkey } from "./session.js";
4
- import { profilesByPubkey, loadProfile } from "./profiles.js";
5
- import { followsByPubkey, loadFollows } from "./follows.js";
6
- import { loadPins, pinsByPubkey } from "./pins.js";
7
- import { mutesByPubkey, loadMutes } from "./mutes.js";
8
- import { blossomServersByPubkey, loadBlossomServers } from "./blossom.js";
9
- import { relaySelectionsByPubkey, loadRelaySelections } from "./relaySelections.js";
10
- import { inboxRelaySelectionsByPubkey, loadInboxRelaySelections } from "./inboxRelaySelections.js";
11
- import { wotGraph } from "./wot.js";
12
- export const makeUserData = ({ mapStore, loadItem }) => withGetter(memoized(derived([mapStore, pubkey], ([$mapStore, $pubkey]) => {
3
+ import { profilesByPubkey, forceLoadProfile, loadProfile } from "./profiles.js";
4
+ import { followListsByPubkey, forceLoadFollowList, loadFollowList } from "./follows.js";
5
+ import { pinListsByPubkey, forceLoadPinList, loadPinList } from "./pins.js";
6
+ import { muteListsByPubkey, forceLoadMuteList, loadMuteList } from "./mutes.js";
7
+ import { blossomServerListsByPubkey, forceLoadBlossomServerList, loadBlossomServerList, } from "./blossom.js";
8
+ import { relayListsByPubkey, forceLoadRelayList, loadRelayList } from "./relayLists.js";
9
+ import { messagingRelayListsByPubkey, forceLoadMessagingRelayList, loadMessagingRelayList, } from "./messagingRelayLists.js";
10
+ import { wotGraph, getWotGraph } from "./wot.js";
11
+ export const makeUserData = (itemsByKey, onDerive) => derived([itemsByKey, pubkey], ([$itemsByKey, $pubkey]) => {
13
12
  if (!$pubkey)
14
13
  return undefined;
15
- loadItem($pubkey);
16
- return $mapStore.get($pubkey);
17
- })));
18
- export const makeUserLoader = (loadItem) => async (relays = [], force = false) => {
14
+ onDerive?.($pubkey);
15
+ return $itemsByKey.get($pubkey);
16
+ });
17
+ export const makeUserLoader = (loadItem) => async (...args) => {
19
18
  const $pubkey = pubkey.get();
20
19
  if ($pubkey) {
21
- await loadItem($pubkey, relays, force);
20
+ await loadItem($pubkey, ...args);
22
21
  }
23
22
  };
24
- export const userProfile = makeUserData({
25
- mapStore: profilesByPubkey,
26
- loadItem: loadProfile,
27
- });
23
+ export const userProfile = makeUserData(profilesByPubkey, loadProfile);
24
+ export const forceLoadUserProfile = makeUserLoader(forceLoadProfile);
28
25
  export const loadUserProfile = makeUserLoader(loadProfile);
29
- export const userFollows = makeUserData({
30
- mapStore: followsByPubkey,
31
- loadItem: loadFollows,
32
- });
33
- export const loadUserFollows = makeUserLoader(loadFollows);
34
- export const userMutes = makeUserData({
35
- mapStore: mutesByPubkey,
36
- loadItem: loadMutes,
37
- });
38
- export const loadUserMutes = makeUserLoader(loadMutes);
39
- export const userPins = makeUserData({
40
- mapStore: pinsByPubkey,
41
- loadItem: loadPins,
42
- });
43
- export const loadUserPins = makeUserLoader(loadPins);
44
- export const userRelaySelections = makeUserData({
45
- mapStore: relaySelectionsByPubkey,
46
- loadItem: loadRelaySelections,
47
- });
48
- export const loadUserRelaySelections = makeUserLoader(loadRelaySelections);
49
- export const userInboxRelaySelections = makeUserData({
50
- mapStore: inboxRelaySelectionsByPubkey,
51
- loadItem: loadInboxRelaySelections,
52
- });
53
- export const loadUserInboxRelaySelections = makeUserLoader(loadInboxRelaySelections);
54
- export const userBlossomServers = makeUserData({
55
- mapStore: blossomServersByPubkey,
56
- loadItem: loadBlossomServers,
57
- });
58
- export const loadUserBlossomServers = makeUserLoader(loadBlossomServers);
59
- export const getUserWotScore = (tpk) => wotGraph.get().get(tpk) || 0;
26
+ export const userFollowList = makeUserData(followListsByPubkey, loadFollowList);
27
+ export const forceLoadUserFollowList = makeUserLoader(forceLoadFollowList);
28
+ export const loadUserFollowList = makeUserLoader(loadFollowList);
29
+ export const userMuteList = makeUserData(muteListsByPubkey, loadMuteList);
30
+ export const forceLoadUserMuteList = makeUserLoader(forceLoadMuteList);
31
+ export const loadUserMuteList = makeUserLoader(loadMuteList);
32
+ export const userPinList = makeUserData(pinListsByPubkey, loadPinList);
33
+ export const forceLoadUserPinList = makeUserLoader(forceLoadPinList);
34
+ export const loadUserPinList = makeUserLoader(loadPinList);
35
+ export const userRelayList = makeUserData(relayListsByPubkey, loadRelayList);
36
+ export const forceLoadUserRelayList = makeUserLoader(forceLoadRelayList);
37
+ export const loadUserRelayList = makeUserLoader(loadRelayList);
38
+ export const userMessagingRelayList = makeUserData(messagingRelayListsByPubkey, loadMessagingRelayList);
39
+ export const forceLoadUserMessagingRelayList = makeUserLoader(forceLoadMessagingRelayList);
40
+ export const loadUserMessagingRelayList = makeUserLoader(loadMessagingRelayList);
41
+ export const userBlossomServerList = makeUserData(blossomServerListsByPubkey, loadBlossomServerList);
42
+ export const forceLoadUserBlossomServerList = makeUserLoader(forceLoadBlossomServerList);
43
+ export const loadUserBlossomServerList = makeUserLoader(loadBlossomServerList);
44
+ export const getUserWotScore = (tpk) => getWotGraph().get(tpk) || 0;
60
45
  export const deriveUserWotScore = (tpk) => derived(wotGraph, $g => $g.get(tpk) || 0);
61
46
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/user.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,17 @@
1
1
  export declare const getFollows: (pubkey: string) => string[];
2
2
  export declare const getMutes: (pubkey: string) => string[];
3
3
  export declare const getNetwork: (pubkey: string) => string[];
4
- export declare const followersByPubkey: import("@welshman/store").ReadableWithGetter<Map<string, Set<string>>>;
5
- export declare const mutersByPubkey: import("@welshman/store").ReadableWithGetter<Map<string, Set<string>>>;
4
+ export declare const followersByPubkey: import("svelte/store").Readable<Map<string, Set<string>>>;
5
+ export declare const getFollowersByPubkey: () => Map<string, Set<string>>;
6
+ export declare const mutersByPubkey: import("svelte/store").Readable<Map<string, Set<string>>>;
7
+ export declare const getMutersByPubkey: () => Map<string, Set<string>>;
6
8
  export declare const getFollowers: (pubkey: string) => string[];
7
9
  export declare const getMuters: (pubkey: string) => string[];
8
10
  export declare const getFollowsWhoFollow: (pubkey: string, target: string) => string[];
9
11
  export declare const getFollowsWhoMute: (pubkey: string, target: string) => string[];
10
- export declare const wotGraph: import("@welshman/store").WritableWithGetter<Map<string, number>>;
11
- export declare const maxWot: import("@welshman/store").ReadableWithGetter<number>;
12
+ export declare const wotGraph: import("svelte/store").Writable<Map<string, number>>;
13
+ export declare const getWotGraph: () => Map<string, number>;
14
+ export declare const maxWot: import("svelte/store").Readable<number>;
15
+ export declare const getMaxWot: () => number;
12
16
  export declare const getWotScore: (pubkey: string, target: string) => number;
13
17
  //# sourceMappingURL=wot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wot.d.ts","sourceRoot":"","sources":["../../../src/wot.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,aAC2B,CAAA;AAEpE,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,aAC2B,CAAA;AAElE,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,aAaxC,CAAA;AAED,eAAO,MAAM,iBAAiB,wEAY7B,CAAA;AAED,eAAO,MAAM,cAAc,wEAY1B,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,aACY,CAAA;AAEvD,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,aAAuD,CAAA;AAE/F,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,aACM,CAAA;AAExE,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,aACM,CAAA;AAEtE,eAAO,MAAM,QAAQ,mEAAkD,CAAA;AAEvE,eAAO,MAAM,MAAM,sDAAoE,CAAA;AAwBvF,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,WAKzD,CAAA"}
1
+ {"version":3,"file":"wot.d.ts","sourceRoot":"","sources":["../../../src/wot.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,aAA2D,CAAA;AAEpG,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,aAAyD,CAAA;AAEhG,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,aAaxC,CAAA;AAED,eAAO,MAAM,iBAAiB,2DAU5B,CAAA;AAEF,eAAO,MAAM,oBAAoB,gCAA4B,CAAA;AAE7D,eAAO,MAAM,cAAc,2DAUzB,CAAA;AAEF,eAAO,MAAM,iBAAiB,gCAAyB,CAAA;AAEvD,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,aAAyD,CAAA;AAEpG,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,aAAsD,CAAA;AAE9F,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,aACM,CAAA;AAExE,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,aACM,CAAA;AAEtE,eAAO,MAAM,QAAQ,sDAAsC,CAAA;AAE3D,eAAO,MAAM,WAAW,2BAAmB,CAAA;AAE3C,eAAO,MAAM,MAAM,yCAAwD,CAAA;AAE3E,eAAO,MAAM,SAAS,cAAiB,CAAA;AAwBvC,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,WAKzD,CAAA"}
@@ -1,12 +1,12 @@
1
1
  import { derived, writable } from "svelte/store";
2
2
  import { max, throttle, addToMapKey, inc, dec } from "@welshman/lib";
3
3
  import { getListTags, getPubkeyTagValues } from "@welshman/util";
4
- import { throttled, withGetter } from "@welshman/store";
4
+ import { throttled, getter } from "@welshman/store";
5
5
  import { pubkey } from "./session.js";
6
- import { follows, followsByPubkey } from "./follows.js";
7
- import { mutes, mutesByPubkey } from "./mutes.js";
8
- export const getFollows = (pubkey) => getPubkeyTagValues(getListTags(followsByPubkey.get().get(pubkey)));
9
- export const getMutes = (pubkey) => getPubkeyTagValues(getListTags(mutesByPubkey.get().get(pubkey)));
6
+ import { followLists, getFollowListsByPubkey, getFollowList } from "./follows.js";
7
+ import { muteLists, getMuteList } from "./mutes.js";
8
+ export const getFollows = (pubkey) => getPubkeyTagValues(getListTags(getFollowList(pubkey)));
9
+ export const getMutes = (pubkey) => getPubkeyTagValues(getListTags(getMuteList(pubkey)));
10
10
  export const getNetwork = (pubkey) => {
11
11
  const pubkeys = new Set(getFollows(pubkey));
12
12
  const network = new Set();
@@ -19,7 +19,7 @@ export const getNetwork = (pubkey) => {
19
19
  }
20
20
  return Array.from(network);
21
21
  };
22
- export const followersByPubkey = withGetter(derived(throttled(1000, follows), lists => {
22
+ export const followersByPubkey = derived(throttled(1000, followLists), lists => {
23
23
  const $followersByPubkey = new Map();
24
24
  for (const list of lists) {
25
25
  for (const pubkey of getPubkeyTagValues(getListTags(list))) {
@@ -27,8 +27,9 @@ export const followersByPubkey = withGetter(derived(throttled(1000, follows), li
27
27
  }
28
28
  }
29
29
  return $followersByPubkey;
30
- }));
31
- export const mutersByPubkey = withGetter(derived(throttled(1000, mutes), lists => {
30
+ });
31
+ export const getFollowersByPubkey = getter(followersByPubkey);
32
+ export const mutersByPubkey = derived(throttled(1000, muteLists), lists => {
32
33
  const $mutersByPubkey = new Map();
33
34
  for (const list of lists) {
34
35
  for (const pubkey of getPubkeyTagValues(getListTags(list))) {
@@ -36,17 +37,20 @@ export const mutersByPubkey = withGetter(derived(throttled(1000, mutes), lists =
36
37
  }
37
38
  }
38
39
  return $mutersByPubkey;
39
- }));
40
- export const getFollowers = (pubkey) => Array.from(followersByPubkey.get().get(pubkey) || []);
41
- export const getMuters = (pubkey) => Array.from(mutersByPubkey.get().get(pubkey) || []);
40
+ });
41
+ export const getMutersByPubkey = getter(mutersByPubkey);
42
+ export const getFollowers = (pubkey) => Array.from(getFollowersByPubkey().get(pubkey) || []);
43
+ export const getMuters = (pubkey) => Array.from(getMutersByPubkey().get(pubkey) || []);
42
44
  export const getFollowsWhoFollow = (pubkey, target) => getFollows(pubkey).filter(other => getFollows(other).includes(target));
43
45
  export const getFollowsWhoMute = (pubkey, target) => getFollows(pubkey).filter(other => getMutes(other).includes(target));
44
- export const wotGraph = withGetter(writable(new Map()));
45
- export const maxWot = withGetter(derived(wotGraph, $g => max(Array.from($g.values()))));
46
+ export const wotGraph = writable(new Map());
47
+ export const getWotGraph = getter(wotGraph);
48
+ export const maxWot = derived(wotGraph, $g => max(Array.from($g.values())));
49
+ export const getMaxWot = getter(maxWot);
46
50
  const buildGraph = throttle(1000, () => {
47
51
  const $pubkey = pubkey.get();
48
52
  const $graph = new Map();
49
- const $follows = $pubkey ? getFollows($pubkey) : followsByPubkey.get().keys();
53
+ const $follows = $pubkey ? getFollows($pubkey) : getFollowListsByPubkey().keys();
50
54
  for (const follow of $follows) {
51
55
  for (const pubkey of getFollows(follow)) {
52
56
  $graph.set(pubkey, inc($graph.get(pubkey)));
@@ -58,8 +62,8 @@ const buildGraph = throttle(1000, () => {
58
62
  wotGraph.set($graph);
59
63
  });
60
64
  pubkey.subscribe(buildGraph);
61
- follows.subscribe(buildGraph);
62
- mutes.subscribe(buildGraph);
65
+ followLists.subscribe(buildGraph);
66
+ muteLists.subscribe(buildGraph);
63
67
  export const getWotScore = (pubkey, target) => {
64
68
  const follows = pubkey ? getFollowsWhoFollow(pubkey, target) : getFollowers(target);
65
69
  const mutes = pubkey ? getFollowsWhoMute(pubkey, target) : getMuters(target);
@@ -1 +1 @@
1
- {"version":3,"file":"wot.js","sourceRoot":"","sources":["../../../src/wot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wot.js","sourceRoot":"","sources":["../../../src/wot.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,20 @@
1
+ import { Subscriber } from "svelte/store";
1
2
  import { Zapper, TrustedEvent, Zap } from "@welshman/util";
2
- export declare const zappers: import("svelte/store").Writable<Zapper[]>;
3
- export declare const fetchZappers: (lnurls: string[]) => Promise<Map<string, Zapper>>;
4
- export declare const zappersByLnurl: import("@welshman/store").ReadableWithGetter<Map<string, Zapper>>, deriveZapper: (key: string | undefined, relays?: string[]) => import("svelte/store").Readable<undefined> | {
5
- subscribe: (f: import("svelte/store").Subscriber<Zapper | undefined>) => import("svelte/store").Unsubscriber;
6
- }, loadZapper: (key: string, relays?: string[], force?: boolean) => Promise<Zapper | undefined>, onZapper: (cb: import("svelte/store").Subscriber<Zapper>) => () => void;
7
- export declare const loadZapperForPubkey: (pubkey: string, relays?: string[]) => Promise<Zapper | undefined>;
3
+ export declare const zappersByLnurl: import("svelte/store").Writable<Map<string, Zapper>>;
4
+ export declare const zappers: import("svelte/store").Readable<Zapper[]>;
5
+ export declare const getZappersByLnurl: () => Map<string, Zapper>;
6
+ export declare const getZapper: (lnurl: string) => Zapper | undefined;
7
+ export declare const zapperSubscribers: Subscriber<Zapper>[];
8
+ export declare const notifyZapper: (zapper: Zapper) => void;
9
+ export declare const onZapper: (sub: (zapper: Zapper) => void) => () => Subscriber<Zapper>[];
10
+ export declare const fetchZapper: (request: string) => Promise<Zapper | undefined>;
11
+ export declare const forceLoadZapper: (key: string, ...args: any[]) => Promise<Zapper | undefined>;
12
+ export declare const loadZapper: (key: string, ...args: any[]) => Promise<import("@welshman/lib").Maybe<Zapper>>;
13
+ export declare const deriveZapper: (key?: string, ...args: any[]) => import("svelte/store").Readable<Zapper | undefined>;
14
+ export declare const loadZapperForPubkey: (pubkey: string, relays?: string[]) => Promise<import("@welshman/lib").Maybe<Zapper>>;
8
15
  export declare const deriveZapperForPubkey: (pubkey: string, relays?: string[]) => import("svelte/store").Readable<Zapper | undefined>;
9
16
  export declare const getLnUrlsForEvent: (event: TrustedEvent) => Promise<string[]>;
10
- export declare const getZapperForZap: (zap: TrustedEvent, parent: TrustedEvent) => Promise<Zapper | undefined>;
17
+ export declare const getZapperForZap: (zap: TrustedEvent, parent: TrustedEvent) => Promise<import("@welshman/lib").Maybe<Zapper>>;
11
18
  export declare const getValidZap: (zap: TrustedEvent, parent: TrustedEvent) => Promise<Zap | undefined>;
12
19
  export declare const getValidZaps: (zaps: TrustedEvent[], parent: TrustedEvent) => Promise<Zap[]>;
13
20
  export declare const deriveValidZaps: (zaps: TrustedEvent[], parent: TrustedEvent) => import("svelte/store").Writable<Zap[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"zappers.d.ts","sourceRoot":"","sources":["../../../src/zappers.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAuC,MAAM,gBAAgB,CAAA;AAe9F,eAAO,MAAM,OAAO,2CAAyB,CAAA;AAE7C,eAAO,MAAM,YAAY,GAAU,QAAQ,MAAM,EAAE,iCAmClD,CAAA;AAED,eAAO,MACO,cAAc,qEACd,YAAY;;GACd,UAAU,oFACZ,QAAQ,+DAqBhB,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAAU,QAAQ,MAAM,EAAE,SAAQ,MAAM,EAAO,gCAQ9E,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,EAAE,SAAQ,MAAM,EAAO,wDASvE,CAAA;AAEJ,eAAO,MAAM,iBAAiB,GAAU,OAAO,YAAY,sBAU1D,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,KAAK,YAAY,EAAE,QAAQ,YAAY,gCAI5E,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,KAAK,YAAY,EAAE,QAAQ,YAAY,6BAIxE,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,MAAM,YAAY,EAAE,EAAE,QAAQ,YAAY,mBACE,CAAA;AAE/E,eAAO,MAAM,eAAe,GAAI,MAAM,YAAY,EAAE,EAAE,QAAQ,YAAY,2CAQzE,CAAA"}
1
+ {"version":3,"file":"zappers.d.ts","sourceRoot":"","sources":["../../../src/zappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,UAAU,EAAC,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAuC,MAAM,gBAAgB,CAAA;AAc9F,eAAO,MAAM,cAAc,sDAAsC,CAAA;AAEjE,eAAO,MAAM,OAAO,2CAA8B,CAAA;AAElD,eAAO,MAAM,iBAAiB,2BAAyB,CAAA;AAEvD,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,uBAAmC,CAAA;AAE1E,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,MAAM,CAAC,EAAO,CAAA;AAEzD,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,SAAkD,CAAA;AAE7F,eAAO,MAAM,QAAQ,GAAI,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,+BAQrD,CAAA;AAED,eAAO,MAAM,WAAW,kDAmDtB,CAAA;AAEF,eAAO,MAAM,eAAe,8DAA4C,CAAA;AAExE,eAAO,MAAM,UAAU,iFAAuC,CAAA;AAE9D,eAAO,MAAM,YAAY,uFAA6C,CAAA;AAEtE,eAAO,MAAM,mBAAmB,GAAU,QAAQ,MAAM,EAAE,SAAQ,MAAM,EAAO,mDAI9E,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,EAAE,SAAQ,MAAM,EAAO,wDAM1E,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,OAAO,YAAY,sBAU1D,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,KAAK,YAAY,EAAE,QAAQ,YAAY,mDAI5E,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,KAAK,YAAY,EAAE,QAAQ,YAAY,6BAIxE,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,MAAM,YAAY,EAAE,EAAE,QAAQ,YAAY,mBACE,CAAA;AAE/E,eAAO,MAAM,eAAe,GAAI,MAAM,YAAY,EAAE,EAAE,QAAQ,YAAY,2CAQzE,CAAA"}
@@ -1,68 +1,76 @@
1
1
  import { writable, derived } from "svelte/store";
2
2
  import { getTagValues, getLnUrl, zapFromEvent } from "@welshman/util";
3
- import { removeUndefined, fetchJson, uniq, bech32ToHex, hexToBech32, tryCatch, batcher, postJson, } from "@welshman/lib";
4
- import { collection } from "@welshman/store";
3
+ import { removeUndefined, fetchJson, bech32ToHex, hexToBech32, tryCatch, batcher, postJson, } from "@welshman/lib";
4
+ import { getter, deriveItems, makeForceLoadItem, makeLoadItem, makeDeriveItem } from "@welshman/store";
5
5
  import { deriveProfile, loadProfile } from "./profiles.js";
6
6
  import { appContext } from "./context.js";
7
- export const zappers = writable([]);
8
- export const fetchZappers = async (lnurls) => {
7
+ export const zappersByLnurl = writable(new Map());
8
+ export const zappers = deriveItems(zappersByLnurl);
9
+ export const getZappersByLnurl = getter(zappersByLnurl);
10
+ export const getZapper = (lnurl) => getZappersByLnurl().get(lnurl);
11
+ export const zapperSubscribers = [];
12
+ export const notifyZapper = (zapper) => zapperSubscribers.forEach(sub => sub(zapper));
13
+ export const onZapper = (sub) => {
14
+ zapperSubscribers.push(sub);
15
+ return () => zapperSubscribers.splice(zapperSubscribers.findIndex(s => s === sub), 1);
16
+ };
17
+ export const fetchZapper = batcher(800, async (lnurls) => {
9
18
  const base = appContext.dufflepudUrl;
10
- const zappersByLnurl = new Map();
19
+ const result = new Map();
20
+ for (const lnurl of lnurls) {
21
+ if (!lnurl.startsWith("lnurl1")) {
22
+ throw new Error(`Invalid lnurl ${lnurl}`);
23
+ }
24
+ }
25
+ const addZapper = (lnurl, info) => {
26
+ if (info) {
27
+ try {
28
+ result.set(lnurl, { ...info, lnurl });
29
+ }
30
+ catch (e) {
31
+ // pass
32
+ }
33
+ }
34
+ };
11
35
  // Use dufflepud if we it's set up to protect user privacy, otherwise fetch directly
12
36
  if (base) {
13
- const hexUrls = removeUndefined(lnurls.map(lnurl => tryCatch(() => bech32ToHex(lnurl))));
14
- if (hexUrls.length > 0) {
15
- const res = await tryCatch(async () => await postJson(`${base}/zapper/info`, { lnurls: hexUrls }));
16
- for (const { lnurl, info } of res?.data || []) {
17
- tryCatch(() => zappersByLnurl.set(hexToBech32("lnurl", lnurl), info));
18
- }
37
+ const hexUrls = lnurls.map(bech32ToHex);
38
+ const res = await tryCatch(() => postJson(`${base}/zapper/info`, { lnurls: hexUrls }));
39
+ for (const { lnurl, info } of res?.data || []) {
40
+ addZapper(hexToBech32("lnurl", lnurl), info);
19
41
  }
20
42
  }
21
43
  else {
22
- const results = await Promise.all(lnurls.map(async (lnurl) => {
23
- const hexUrl = tryCatch(() => bech32ToHex(lnurl));
24
- const info = hexUrl ? await tryCatch(async () => await fetchJson(hexUrl)) : undefined;
25
- return { lnurl, hexUrl, info };
44
+ await Promise.all(lnurls.map(async (lnurl) => {
45
+ addZapper(lnurl, await tryCatch(() => fetchJson(bech32ToHex(lnurl))));
26
46
  }));
27
- for (const { lnurl, info } of results) {
28
- if (info) {
29
- zappersByLnurl.set(lnurl, info);
30
- }
31
- }
32
47
  }
33
- return zappersByLnurl;
34
- };
35
- export const { indexStore: zappersByLnurl, deriveItem: deriveZapper, loadItem: loadZapper, onItem: onZapper, } = collection({
36
- name: "zappers",
37
- store: zappers,
38
- getKey: (zapper) => zapper.lnurl,
39
- load: batcher(800, async (lnurls) => {
40
- const fresh = await fetchZappers(uniq(lnurls));
41
- const stale = zappersByLnurl.get();
42
- for (const lnurl of lnurls) {
43
- const newZapper = fresh.get(lnurl);
44
- if (newZapper) {
45
- stale.set(lnurl, { ...newZapper, lnurl });
48
+ if (result.size > 0) {
49
+ zappersByLnurl.update($zappersByLnurl => {
50
+ for (const [lnurl, zapper] of result) {
51
+ $zappersByLnurl.set(lnurl, zapper);
46
52
  }
53
+ return $zappersByLnurl;
54
+ });
55
+ for (const zapper of result.values()) {
56
+ notifyZapper(zapper);
47
57
  }
48
- zappers.set(Array.from(stale.values()));
49
- return lnurls;
50
- }),
58
+ }
59
+ return lnurls.map(lnurl => result.get(lnurl));
51
60
  });
61
+ export const forceLoadZapper = makeForceLoadItem(fetchZapper, getZapper);
62
+ export const loadZapper = makeLoadItem(fetchZapper, getZapper);
63
+ export const deriveZapper = makeDeriveItem(zappersByLnurl, loadZapper);
52
64
  export const loadZapperForPubkey = async (pubkey, relays = []) => {
53
65
  const $profile = await loadProfile(pubkey, relays);
54
- if (!$profile?.lnurl) {
55
- return undefined;
56
- }
57
- return loadZapper($profile.lnurl);
66
+ return $profile?.lnurl ? loadZapper($profile.lnurl) : undefined;
67
+ };
68
+ export const deriveZapperForPubkey = (pubkey, relays = []) => {
69
+ loadZapperForPubkey(pubkey, relays);
70
+ return derived([zappersByLnurl, deriveProfile(pubkey, relays)], ([$zappersByLnurl, $profile]) => {
71
+ return $profile?.lnurl ? $zappersByLnurl.get($profile.lnurl) : undefined;
72
+ });
58
73
  };
59
- export const deriveZapperForPubkey = (pubkey, relays = []) => derived([zappersByLnurl, deriveProfile(pubkey, relays)], ([$zappersByLnurl, $profile]) => {
60
- if (!$profile?.lnurl) {
61
- return undefined;
62
- }
63
- loadZapper($profile.lnurl);
64
- return $zappersByLnurl.get($profile.lnurl);
65
- });
66
74
  export const getLnUrlsForEvent = async (event) => {
67
75
  const lnurls = removeUndefined(getTagValues("zap", event.tags).map(getLnUrl));
68
76
  if (lnurls.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"zappers.js","sourceRoot":"","sources":["../../../src/zappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,cAAc,CAAA;AAC9C,OAAO,EAA4B,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC9F,OAAO,EACL,eAAe,EACf,SAAS,EACT,IAAI,EACJ,WAAW,EACX,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,MAAM,eAAe,CAAA;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,eAAe,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAEvC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAA;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,MAAgB,EAAE,EAAE;IACrD,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAA;IACpC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEhD,oFAAoF;IACpF,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAExF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,GAAQ,MAAM,QAAQ,CAC7B,KAAK,IAAI,EAAE,CAAC,MAAM,QAAQ,CAAC,GAAG,IAAI,cAAc,EAAE,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC,CACrE,CAAA;YAED,KAAK,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;YACvE,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAErF,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAC,CAAA;QAC9B,CAAC,CAAC,CACH,CAAA;QAED,KAAK,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,IAAI,OAAO,EAAE,CAAC;YACpC,IAAI,IAAI,EAAE,CAAC;gBACT,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,EACX,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,YAAY,EACxB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,QAAQ,GACjB,GAAG,UAAU,CAAC;IACb,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK;IACxC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAgB,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,CAAA;QAElC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAElC,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAC,GAAG,SAAS,EAAE,KAAK,EAAC,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAEvC,OAAO,MAAM,CAAA;IACf,CAAC,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,MAAc,EAAE,SAAmB,EAAE,EAAE,EAAE;IACjF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAElD,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,SAAmB,EAAE,EAAE,EAAE,CAC7E,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,EAAE;IACvF,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE1B,OAAO,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC5C,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE7E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE/C,OAAO,eAAe,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,GAAiB,EAAE,MAAoB,EAAE,EAAE;IAC/E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAE9C,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAiB,EAAE,MAAoB,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAEjD,OAAO,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAoB,EAAE,MAAoB,EAAE,EAAE,CAC/E,eAAe,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAoB,EAAE,MAAoB,EAAE,EAAE;IAC5E,MAAM,KAAK,GAAG,QAAQ,CAAQ,EAAE,CAAC,CAAA;IAEjC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QAC1C,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
1
+ {"version":3,"file":"zappers.js","sourceRoot":"","sources":["../../../src/zappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAa,MAAM,cAAc,CAAA;AAC1D,OAAO,EAA4B,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC9F,OAAO,EACL,eAAe,EACf,SAAS,EACT,WAAW,EACX,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,MAAM,eAAe,CAAA;AACtB,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAA;AACpG,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,eAAe,CAAA;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAEvC,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,GAAG,EAAkB,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,CAAA;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAyB,EAAE,CAAA;AAEzD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAE7F,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAA6B,EAAE,EAAE;IACxD,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE3B,OAAO,GAAG,EAAE,CACV,iBAAiB,CAAC,MAAM,CACtB,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAC3C,CAAC,CACF,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAgB,EAAE,EAAE;IACjE,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAA;IACpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IAExC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,IAAS,EAAE,EAAE;QAC7C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAC,GAAG,IAAI,EAAE,KAAK,EAAC,CAAC,CAAA;YACrC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,oFAAoF;IACpF,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,cAAc,EAAE,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC,CAAA;QAEpF,KAAK,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;YAC5C,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACvB,SAAS,CAAC,KAAK,EAAE,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACvE,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACpB,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;YACtC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACrC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACpC,CAAC;YAED,OAAO,eAAe,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,YAAY,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;AAE9D,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;AAEtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,MAAc,EAAE,SAAmB,EAAE,EAAE,EAAE;IACjF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAElD,OAAO,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,SAAmB,EAAE,EAAE,EAAE;IAC7E,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEnC,OAAO,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,EAAE;QAC9F,OAAO,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE7E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE/C,OAAO,eAAe,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,GAAiB,EAAE,MAAoB,EAAE,EAAE;IAC/E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAE9C,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAiB,EAAE,MAAoB,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAEjD,OAAO,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAoB,EAAE,MAAoB,EAAE,EAAE,CAC/E,eAAe,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAoB,EAAE,MAAoB,EAAE,EAAE;IAC5E,MAAM,KAAK,GAAG,QAAQ,CAAQ,EAAE,CAAC,CAAA;IAEjC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QAC1C,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -230,6 +230,13 @@ export declare const concat: <T>(...xs: T[][]) => T[];
230
230
  * @returns New array with element appended
231
231
  */
232
232
  export declare const append: <T>(x: T, xs: Iterable<T>) => T[];
233
+ /**
234
+ * Prepends element to array
235
+ * @param x - Element to prepend
236
+ * @param xs - Array to prepend to
237
+ * @returns New array with element prepended
238
+ */
239
+ export declare const prepend: <T>(x: T, xs: Iterable<T>) => T[];
233
240
  /**
234
241
  * Creates union of two arrays
235
242
  * @param a - First array
@@ -313,21 +320,37 @@ export declare const flatten: <T>(xs: (T | T[])[], ...args: unknown[]) => T[];
313
320
  * @param xs - Array to partition
314
321
  * @returns Tuple of [matching, non-matching] arrays
315
322
  */
316
- export declare const partition: <T>(f: (x: T) => boolean, xs: T[]) => T[][];
323
+ export declare const partition: <T>(f: (x: T) => boolean, xs: Iterable<T>) => T[][];
324
+ /** Maps any iterable */
325
+ export declare const map: <T, R>(f: (x: T) => R, xs: Iterable<T>) => R[];
317
326
  /**
318
327
  * Keeps items based on predicate
319
- * @param f - Whether to remove an item from the array
320
- * @param xs - Array of items to filter
328
+ * @param f - Whether to keep an item
329
+ * @param xs - Items to filter
321
330
  * @returns Filtered array
322
331
  */
323
- export declare const filter: <T>(f: (x: T) => any, xs: T[]) => T[];
332
+ export declare const filter: <T>(f: (x: T) => any, xs: Iterable<T>) => T[];
324
333
  /**
325
334
  * Removes items based on predicate
326
335
  * @param f - Whether to remove an item from the array
327
- * @param xs - Array of items to filter
336
+ * @param xs - Items to filter
328
337
  * @returns Filtered array
329
338
  */
330
- export declare const reject: <T>(f: (x: T) => any, xs: T[]) => T[];
339
+ export declare const reject: <T>(f: (x: T) => any, xs: Iterable<T>) => T[];
340
+ /**
341
+ * Finds a single item based on predicate
342
+ * @param f - Whether an item matches
343
+ * @param xs - Items to filter
344
+ * @returns first matching item
345
+ */
346
+ export declare const find: <T>(f: (x: T) => any, xs: Iterable<T>) => T | undefined;
347
+ /**
348
+ * Finds a single item based on predicate
349
+ * @param f - Whether an item matches
350
+ * @param xs - Items to filter
351
+ * @returns whether an item matches
352
+ */
353
+ export declare const some: <T>(f: (x: T) => any, xs: Iterable<T>) => boolean;
331
354
  /**
332
355
  * Returns array with duplicate elements removed
333
356
  * @param xs - Array with possible duplicates
@@ -340,7 +363,7 @@ export declare const uniq: <T>(xs: T[]) => T[];
340
363
  * @param xs - Input array
341
364
  * @returns Array with elements unique by key
342
365
  */
343
- export declare const uniqBy: <T>(f: (x: T) => any, xs: T[]) => T[];
366
+ export declare const uniqBy: <T>(f: (x: T) => any, xs: Iterable<T>) => T[];
344
367
  /**
345
368
  * Returns sorted copy of array
346
369
  * @param xs - Array to sort
@@ -353,7 +376,7 @@ export declare const sort: <T>(xs: T[]) => T[];
353
376
  * @param xs - Array to sort
354
377
  * @returns Sorted array
355
378
  */
356
- export declare const sortBy: <T>(f: (x: T) => any, xs: T[]) => T[];
379
+ export declare const sortBy: <T>(f: (x: T) => any, xs: Iterable<T>) => T[];
357
380
  /**
358
381
  * Groups array elements by key function
359
382
  * @param f - Function to generate group key
@@ -501,6 +524,10 @@ export declare const complement: <T extends unknown[]>(f: (...args: T) => any) =
501
524
  * @returns Function result or undefined if error
502
525
  */
503
526
  export declare const tryCatch: <T>(f: () => T, onError?: (e: Error) => void) => T | undefined;
527
+ /**
528
+ * Throws an error with the given message
529
+ */
530
+ export declare const thrower: (message: string) => () => never;
504
531
  /**
505
532
  * Creates function that only executes once
506
533
  * @param f - Function to wrap
@@ -566,7 +593,7 @@ export declare const yieldThread: () => any;
566
593
  * @param f - Function to throttle
567
594
  * @returns Throttled function
568
595
  */
569
- export declare const throttle: <F extends (...args: any[]) => any>(ms: number, f: F) => F | ((...thisArgs: Parameters<F>) => void);
596
+ export declare const throttle: <F extends (...args: any[]) => any>(ms: number, f: F) => F | ((...args: Parameters<F>) => void);
570
597
  /**
571
598
  * Creates throttled function that returns cached value
572
599
  * @param ms - Minimum time between updates