@welshman/app 0.0.33 → 0.0.35

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 (162) hide show
  1. package/README.md +70 -0
  2. package/build/src/collection.d.ts +3 -4
  3. package/build/src/{collection.mjs → collection.js} +5 -5
  4. package/build/src/collection.js.map +1 -0
  5. package/build/src/commands.d.ts +12 -13
  6. package/build/src/{commands.mjs → commands.js} +7 -7
  7. package/build/src/commands.js.map +1 -0
  8. package/build/src/context.d.ts +1 -1
  9. package/build/src/{context.mjs → context.js} +6 -6
  10. package/build/src/context.js.map +1 -0
  11. package/build/src/core.d.ts +0 -1
  12. package/build/src/{core.mjs → core.js} +6 -6
  13. package/build/src/core.js.map +1 -0
  14. package/build/src/feeds.d.ts +3 -3
  15. package/build/src/{feeds.mjs → feeds.js} +26 -22
  16. package/build/src/feeds.js.map +1 -0
  17. package/build/src/follows.d.ts +1 -2
  18. package/build/src/{follows.mjs → follows.js} +7 -7
  19. package/build/src/follows.js.map +1 -0
  20. package/build/src/{freshness.mjs → freshness.js} +4 -4
  21. package/build/src/freshness.js.map +1 -0
  22. package/build/src/handles.d.ts +0 -1
  23. package/build/src/{handles.mjs → handles.js} +14 -11
  24. package/build/src/handles.js.map +1 -0
  25. package/build/src/index.d.ts +34 -26
  26. package/build/src/index.js +27 -0
  27. package/build/src/index.js.map +1 -0
  28. package/build/src/mutes.d.ts +1 -2
  29. package/build/src/{mutes.mjs → mutes.js} +8 -8
  30. package/build/src/mutes.js.map +1 -0
  31. package/build/src/plaintext.d.ts +1 -1
  32. package/build/src/{plaintext.mjs → plaintext.js} +5 -5
  33. package/build/src/plaintext.js.map +1 -0
  34. package/build/src/profiles.d.ts +0 -1
  35. package/build/src/{profiles.mjs → profiles.js} +9 -11
  36. package/build/src/profiles.js.map +1 -0
  37. package/build/src/relaySelections.d.ts +1 -2
  38. package/build/src/{relaySelections.mjs → relaySelections.js} +7 -7
  39. package/build/src/relaySelections.js.map +1 -0
  40. package/build/src/relays.d.ts +1 -2
  41. package/build/src/{relays.mjs → relays.js} +67 -37
  42. package/build/src/relays.js.map +1 -0
  43. package/build/src/router.d.ts +30 -30
  44. package/build/src/router.js +244 -0
  45. package/build/src/router.js.map +1 -0
  46. package/build/src/search.d.ts +3 -4
  47. package/build/src/{search.mjs → search.js} +15 -18
  48. package/build/src/search.js.map +1 -0
  49. package/build/src/session.d.ts +9 -9
  50. package/build/src/{session.mjs → session.js} +3 -3
  51. package/build/src/session.js.map +1 -0
  52. package/build/src/storage.d.ts +7 -38
  53. package/build/src/{storage.mjs → storage.js} +17 -15
  54. package/build/src/storage.js.map +1 -0
  55. package/build/src/{subscribe.mjs → subscribe.js} +2 -2
  56. package/build/src/subscribe.js.map +1 -0
  57. package/build/src/sync.d.ts +1 -1
  58. package/build/src/{sync.mjs → sync.js} +8 -9
  59. package/build/src/sync.js.map +1 -0
  60. package/build/src/tags.d.ts +1 -1
  61. package/build/src/{tags.mjs → tags.js} +5 -5
  62. package/build/src/tags.js.map +1 -0
  63. package/build/src/thunk.d.ts +4 -5
  64. package/build/src/{thunk.mjs → thunk.js} +11 -11
  65. package/build/src/thunk.js.map +1 -0
  66. package/build/src/{topics.mjs → topics.js} +4 -4
  67. package/build/src/topics.js.map +1 -0
  68. package/build/src/user.d.ts +0 -1
  69. package/build/src/{user.mjs → user.js} +8 -8
  70. package/build/src/user.js.map +1 -0
  71. package/build/src/{util.mjs → util.js} +1 -1
  72. package/build/src/util.js.map +1 -0
  73. package/build/src/{wot.mjs → wot.js} +8 -8
  74. package/build/src/wot.js.map +1 -0
  75. package/build/src/zappers.d.ts +1 -2
  76. package/build/src/{zappers.mjs → zappers.js} +7 -7
  77. package/build/src/zappers.js.map +1 -0
  78. package/build/tsconfig.tsbuildinfo +1 -0
  79. package/package.json +11 -16
  80. package/build/src/collection.cjs +0 -56
  81. package/build/src/collection.cjs.map +0 -1
  82. package/build/src/collection.mjs.map +0 -1
  83. package/build/src/commands.cjs +0 -34
  84. package/build/src/commands.cjs.map +0 -1
  85. package/build/src/commands.mjs.map +0 -1
  86. package/build/src/context.cjs +0 -43
  87. package/build/src/context.cjs.map +0 -1
  88. package/build/src/context.mjs.map +0 -1
  89. package/build/src/core.cjs +0 -36
  90. package/build/src/core.cjs.map +0 -1
  91. package/build/src/core.mjs.map +0 -1
  92. package/build/src/feeds.cjs +0 -93
  93. package/build/src/feeds.cjs.map +0 -1
  94. package/build/src/feeds.mjs.map +0 -1
  95. package/build/src/follows.cjs +0 -25
  96. package/build/src/follows.cjs.map +0 -1
  97. package/build/src/follows.mjs.map +0 -1
  98. package/build/src/freshness.cjs +0 -20
  99. package/build/src/freshness.cjs.map +0 -1
  100. package/build/src/freshness.mjs.map +0 -1
  101. package/build/src/handles.cjs +0 -84
  102. package/build/src/handles.cjs.map +0 -1
  103. package/build/src/handles.mjs.map +0 -1
  104. package/build/src/index.cjs +0 -43
  105. package/build/src/index.cjs.map +0 -1
  106. package/build/src/index.mjs +0 -27
  107. package/build/src/index.mjs.map +0 -1
  108. package/build/src/mutes.cjs +0 -28
  109. package/build/src/mutes.cjs.map +0 -1
  110. package/build/src/mutes.mjs.map +0 -1
  111. package/build/src/plaintext.cjs +0 -38
  112. package/build/src/plaintext.cjs.map +0 -1
  113. package/build/src/plaintext.mjs.map +0 -1
  114. package/build/src/profiles.cjs +0 -45
  115. package/build/src/profiles.cjs.map +0 -1
  116. package/build/src/profiles.mjs.map +0 -1
  117. package/build/src/relaySelections.cjs +0 -43
  118. package/build/src/relaySelections.cjs.map +0 -1
  119. package/build/src/relaySelections.mjs.map +0 -1
  120. package/build/src/relays.cjs +0 -178
  121. package/build/src/relays.cjs.map +0 -1
  122. package/build/src/relays.mjs.map +0 -1
  123. package/build/src/router.cjs +0 -259
  124. package/build/src/router.cjs.map +0 -1
  125. package/build/src/router.mjs +0 -241
  126. package/build/src/router.mjs.map +0 -1
  127. package/build/src/search.cjs +0 -84
  128. package/build/src/search.cjs.map +0 -1
  129. package/build/src/search.mjs.map +0 -1
  130. package/build/src/session.cjs +0 -61
  131. package/build/src/session.cjs.map +0 -1
  132. package/build/src/session.mjs.map +0 -1
  133. package/build/src/storage.cjs +0 -177
  134. package/build/src/storage.cjs.map +0 -1
  135. package/build/src/storage.mjs.map +0 -1
  136. package/build/src/subscribe.cjs +0 -47
  137. package/build/src/subscribe.cjs.map +0 -1
  138. package/build/src/subscribe.mjs.map +0 -1
  139. package/build/src/sync.cjs +0 -45
  140. package/build/src/sync.cjs.map +0 -1
  141. package/build/src/sync.mjs.map +0 -1
  142. package/build/src/tags.cjs +0 -94
  143. package/build/src/tags.cjs.map +0 -1
  144. package/build/src/tags.mjs.map +0 -1
  145. package/build/src/thunk.cjs +0 -153
  146. package/build/src/thunk.cjs.map +0 -1
  147. package/build/src/thunk.mjs.map +0 -1
  148. package/build/src/topics.cjs +0 -23
  149. package/build/src/topics.cjs.map +0 -1
  150. package/build/src/topics.mjs.map +0 -1
  151. package/build/src/user.cjs +0 -45
  152. package/build/src/user.cjs.map +0 -1
  153. package/build/src/user.mjs.map +0 -1
  154. package/build/src/util.cjs +0 -56
  155. package/build/src/util.cjs.map +0 -1
  156. package/build/src/util.mjs.map +0 -1
  157. package/build/src/wot.cjs +0 -79
  158. package/build/src/wot.cjs.map +0 -1
  159. package/build/src/wot.mjs.map +0 -1
  160. package/build/src/zappers.cjs +0 -63
  161. package/build/src/zappers.cjs.map +0 -1
  162. package/build/src/zappers.mjs.map +0 -1
@@ -0,0 +1,244 @@
1
+ import { intersection, first, throttleWithValue, clamp, sortBy, shuffle, pushToMapKey, ctx, always, inc, add, ago, take, chunks, MINUTE, HOUR, DAY, WEEK, } from "@welshman/lib";
2
+ import { getFilterId, isShareableRelayUrl, PROFILE, RELAYS, INBOX_RELAYS, FOLLOWS, WRAP, getAncestorTags, getPubkeyTagValues, normalizeRelayUrl, } from "@welshman/util";
3
+ import { pubkey } from "./session.js";
4
+ import { relaySelectionsByPubkey, inboxRelaySelectionsByPubkey, getReadRelayUrls, getWriteRelayUrls, getRelayUrls, } from "./relaySelections.js";
5
+ import { relays, relaysByUrl } from "./relays.js";
6
+ export const INDEXED_KINDS = [PROFILE, RELAYS, INBOX_RELAYS, FOLLOWS];
7
+ export var RelayMode;
8
+ (function (RelayMode) {
9
+ RelayMode["Read"] = "read";
10
+ RelayMode["Write"] = "write";
11
+ RelayMode["Inbox"] = "inbox";
12
+ })(RelayMode || (RelayMode = {}));
13
+ const makeSelection = (relays, weight = 1) => ({
14
+ relays: relays.map(normalizeRelayUrl),
15
+ weight,
16
+ });
17
+ export const addNoFallbacks = (count, limit) => 0;
18
+ export const addMinimalFallbacks = (count, limit) => (count > 0 ? 0 : 1);
19
+ export const addMaximalFallbacks = (count, limit) => limit - count;
20
+ export class Router {
21
+ options;
22
+ constructor(options) {
23
+ this.options = options;
24
+ }
25
+ // Utilities derived from options
26
+ getRelaysForPubkey = (pubkey, mode) => this.options.getPubkeyRelays?.(pubkey, mode) || [];
27
+ getRelaysForPubkeys = (pubkeys, mode) => pubkeys.map(pubkey => this.getRelaysForPubkey(pubkey, mode));
28
+ getRelaysForUser = (mode) => {
29
+ const pubkey = this.options.getUserPubkey?.();
30
+ return pubkey ? this.getRelaysForPubkey(pubkey, mode) : [];
31
+ };
32
+ // Utilities for creating scenarios
33
+ scenario = (selections) => new RouterScenario(this, selections);
34
+ merge = (scenarios) => this.scenario(scenarios.flatMap((scenario) => scenario.selections));
35
+ // Routing scenarios
36
+ FromRelays = (relays) => this.scenario([makeSelection(relays)]);
37
+ ForUser = () => this.FromRelays(this.getRelaysForUser(RelayMode.Read));
38
+ FromUser = () => this.FromRelays(this.getRelaysForUser(RelayMode.Write));
39
+ UserInbox = () => this.FromRelays(this.getRelaysForUser(RelayMode.Inbox)).policy(addNoFallbacks);
40
+ ForPubkey = (pubkey) => this.FromRelays(this.getRelaysForPubkey(pubkey, RelayMode.Read));
41
+ FromPubkey = (pubkey) => this.FromRelays(this.getRelaysForPubkey(pubkey, RelayMode.Write));
42
+ PubkeyInbox = (pubkey) => this.FromRelays(this.getRelaysForPubkey(pubkey, RelayMode.Inbox)).policy(addNoFallbacks);
43
+ ForPubkeys = (pubkeys) => this.merge(pubkeys.map(pubkey => this.ForPubkey(pubkey)));
44
+ FromPubkeys = (pubkeys) => this.merge(pubkeys.map(pubkey => this.FromPubkey(pubkey)));
45
+ PubkeyInboxes = (pubkeys) => this.merge(pubkeys.map(pubkey => this.PubkeyInbox(pubkey)));
46
+ Event = (event) => this.FromRelays(this.getRelaysForPubkey(event.pubkey, RelayMode.Write));
47
+ Replies = (event) => this.FromRelays(this.getRelaysForPubkey(event.pubkey, RelayMode.Read));
48
+ Quote = (event, value, relays = []) => {
49
+ const tag = event.tags.find(t => t[1] === value);
50
+ const scenarios = [this.ForPubkey(event.pubkey), this.FromPubkey(event.pubkey)];
51
+ if (tag?.[2] && isShareableRelayUrl(tag[2])) {
52
+ scenarios.push(this.FromRelays([tag[2]]));
53
+ }
54
+ if (tag?.[3]?.length === 64) {
55
+ scenarios.push(this.FromPubkeys([tag[3]]));
56
+ }
57
+ return this.merge(scenarios);
58
+ };
59
+ EventAncestors = (event, type) => {
60
+ return this.scenario(getAncestorTags(event.tags)[type].flatMap(([_, value, relay, pubkey]) => {
61
+ const selections = [makeSelection(this.ForUser().getUrls(), 0.5)];
62
+ if (pubkey) {
63
+ selections.push(makeSelection(this.FromPubkey(pubkey).getUrls()));
64
+ }
65
+ if (relay) {
66
+ selections.push(makeSelection([relay], 0.9));
67
+ }
68
+ return selections;
69
+ }));
70
+ };
71
+ EventMentions = (event) => this.EventAncestors(event, "mentions");
72
+ EventParents = (event) => this.EventAncestors(event, "replies");
73
+ EventRoots = (event) => this.EventAncestors(event, "roots");
74
+ PublishEvent = (event) => {
75
+ const pubkeys = getPubkeyTagValues(event.tags);
76
+ return this.merge([
77
+ this.FromPubkey(event.pubkey),
78
+ ...pubkeys.map(pubkey => this.ForPubkey(pubkey).weight(0.5)),
79
+ ]);
80
+ };
81
+ }
82
+ export class RouterScenario {
83
+ router;
84
+ selections;
85
+ options;
86
+ constructor(router, selections, options = {}) {
87
+ this.router = router;
88
+ this.selections = selections;
89
+ this.options = options;
90
+ }
91
+ clone = (options) => new RouterScenario(this.router, this.selections, { ...this.options, ...options });
92
+ filter = (f) => new RouterScenario(this.router, this.selections.filter(selection => f(selection)), this.options);
93
+ update = (f) => new RouterScenario(this.router, this.selections.map(selection => f(selection)), this.options);
94
+ policy = (policy) => this.clone({ policy });
95
+ limit = (limit) => this.clone({ limit });
96
+ weight = (scale) => this.update(selection => ({ ...selection, weight: selection.weight * scale }));
97
+ getPolicy = () => this.options.policy || addMaximalFallbacks;
98
+ getLimit = () => this.options.limit || this.router.options.getLimit?.() || 3;
99
+ getUrls = () => {
100
+ const limit = this.getLimit();
101
+ const fallbackPolicy = this.getPolicy();
102
+ const relayWeights = new Map();
103
+ for (const { weight, relays } of this.selections) {
104
+ for (const relay of relays) {
105
+ if (!isShareableRelayUrl(relay)) {
106
+ continue;
107
+ }
108
+ relayWeights.set(relay, add(weight, relayWeights.get(relay)));
109
+ }
110
+ }
111
+ const scoreRelay = (relay) => {
112
+ const { getRelayQuality = always(1) } = this.router.options;
113
+ const quality = getRelayQuality(relay);
114
+ const weight = relayWeights.get(relay);
115
+ // Log the weight, since it's a straight count which ends up over-weighting hubs.
116
+ // Also add some random noise so that we'll occasionally pick lower quality/less
117
+ // popular relays.
118
+ return -(quality * inc(Math.log(weight)) * Math.random());
119
+ };
120
+ const relays = take(limit, sortBy(scoreRelay, Array.from(relayWeights.keys()).filter(scoreRelay)));
121
+ const fallbacksNeeded = fallbackPolicy(relays.length, limit);
122
+ const allFallbackRelays = this.router.options.getFallbackRelays();
123
+ const fallbackRelays = shuffle(allFallbackRelays).slice(0, fallbacksNeeded);
124
+ for (const fallbackRelay of fallbackRelays) {
125
+ relays.push(fallbackRelay);
126
+ }
127
+ return relays;
128
+ };
129
+ getUrl = () => first(this.getUrls());
130
+ }
131
+ // Default router options
132
+ export const getRelayQuality = (url) => {
133
+ const relay = relaysByUrl.get().get(url);
134
+ if (relay?.stats) {
135
+ if (relay.stats.recent_errors.filter(n => n > ago(5)).length > 0)
136
+ return 0;
137
+ if (relay.stats.recent_errors.filter(n => n > ago(MINUTE)).length > 1)
138
+ return 0;
139
+ if (relay.stats.recent_errors.filter(n => n > ago(HOUR)).length > 5)
140
+ return 0;
141
+ if (relay.stats.recent_errors.filter(n => n > ago(DAY)).length > 20)
142
+ return 0;
143
+ if (relay.stats.recent_errors.filter(n => n > ago(WEEK)).length > 100)
144
+ return 0;
145
+ }
146
+ return 1;
147
+ };
148
+ export const getPubkeyRelays = (pubkey, mode) => {
149
+ const $relaySelections = relaySelectionsByPubkey.get();
150
+ const $inboxSelections = inboxRelaySelectionsByPubkey.get();
151
+ switch (mode) {
152
+ case RelayMode.Read:
153
+ return getReadRelayUrls($relaySelections.get(pubkey));
154
+ case RelayMode.Write:
155
+ return getWriteRelayUrls($relaySelections.get(pubkey));
156
+ case RelayMode.Inbox:
157
+ return getRelayUrls($inboxSelections.get(pubkey));
158
+ default:
159
+ return getRelayUrls($relaySelections.get(pubkey));
160
+ }
161
+ };
162
+ export const getIndexerRelays = () => ctx.app.indexerRelays || getFallbackRelays();
163
+ export const getFallbackRelays = throttleWithValue(300, () => sortBy(r => -getRelayQuality(r.url), relays.get())
164
+ .slice(0, 30)
165
+ .map(r => r.url));
166
+ export const getSearchRelays = throttleWithValue(300, () => sortBy(r => -getRelayQuality(r.url), relays.get())
167
+ .filter(r => r.profile?.supported_nips?.includes(50))
168
+ .slice(0, 30)
169
+ .map(r => r.url));
170
+ export const makeRouter = (options = {}) => new Router({
171
+ getPubkeyRelays,
172
+ getIndexerRelays,
173
+ getFallbackRelays,
174
+ getSearchRelays,
175
+ getRelayQuality,
176
+ getUserPubkey: () => pubkey.get(),
177
+ getLimit: () => 3,
178
+ ...options,
179
+ });
180
+ export const getFilterSelectionsForSearch = (filter) => {
181
+ if (!filter.search)
182
+ return [];
183
+ const relays = ctx.app.router.options.getSearchRelays?.() || [];
184
+ return [{ filter, scenario: ctx.app.router.FromRelays(relays).weight(10) }];
185
+ };
186
+ export const getFilterSelectionsForWraps = (filter) => {
187
+ if (!filter.kinds?.includes(WRAP) || filter.authors)
188
+ return [];
189
+ return [
190
+ {
191
+ filter: { ...filter, kinds: [WRAP] },
192
+ scenario: ctx.app.router.UserInbox(),
193
+ },
194
+ ];
195
+ };
196
+ export const getFilterSelectionsForIndexedKinds = (filter) => {
197
+ const kinds = intersection(INDEXED_KINDS, filter.kinds || []);
198
+ if (kinds.length === 0)
199
+ return [];
200
+ const relays = ctx.app.router.options.getIndexerRelays?.() || [];
201
+ return [
202
+ {
203
+ filter: { ...filter, kinds },
204
+ scenario: ctx.app.router.FromRelays(relays),
205
+ },
206
+ ];
207
+ };
208
+ export const getFilterSelectionsForAuthors = (filter) => {
209
+ if (!filter.authors)
210
+ return [];
211
+ const chunkCount = clamp([1, 30], Math.round(filter.authors.length / 30));
212
+ return chunks(chunkCount, filter.authors).map(authors => ({
213
+ filter: { ...filter, authors },
214
+ scenario: ctx.app.router.FromPubkeys(authors),
215
+ }));
216
+ };
217
+ export const getFilterSelectionsForUser = (filter) => [
218
+ { filter, scenario: ctx.app.router.ForUser().weight(0.2) },
219
+ ];
220
+ export const defaultFilterSelectionRules = [
221
+ getFilterSelectionsForSearch,
222
+ getFilterSelectionsForWraps,
223
+ getFilterSelectionsForIndexedKinds,
224
+ getFilterSelectionsForAuthors,
225
+ getFilterSelectionsForUser,
226
+ ];
227
+ export const getFilterSelections = (filters, rules = defaultFilterSelectionRules) => {
228
+ const filtersById = new Map();
229
+ const scenariosById = new Map();
230
+ for (const filter of filters) {
231
+ for (const filterScenario of rules.flatMap(rule => rule(filter))) {
232
+ const id = getFilterId(filterScenario.filter);
233
+ filtersById.set(id, filterScenario.filter);
234
+ pushToMapKey(scenariosById, id, filterScenario.scenario);
235
+ }
236
+ }
237
+ const result = [];
238
+ for (const [id, filter] of filtersById.entries()) {
239
+ const scenario = ctx.app.router.merge(scenariosById.get(id) || []);
240
+ result.push({ filters: [filter], relays: scenario.getUrls() });
241
+ }
242
+ return result;
243
+ };
244
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
- /// <reference types="svelte" />
2
1
  import type { IFuseOptions, FuseResult } from "fuse.js";
3
- import { debounce } from 'throttle-debounce';
2
+ import { debounce } from "throttle-debounce";
4
3
  import type { PublishedProfile } from "@welshman/util";
5
- import type { Topic } from './topics';
6
- import type { Relay } from './relays';
4
+ import type { Topic } from "./topics.js";
5
+ import type { Relay } from "./relays.js";
7
6
  export type SearchOptions<V, T> = {
8
7
  getValue: (item: T) => V;
9
8
  fuseOptions?: IFuseOptions<T>;
@@ -1,21 +1,20 @@
1
1
  import Fuse from "fuse.js";
2
- import { debounce } from 'throttle-debounce';
3
- import { derived } from 'svelte/store';
4
- import { dec, sortBy } from '@welshman/lib';
5
- import { PROFILE } from '@welshman/util';
6
- import { throttled } from '@welshman/store';
7
- import { load } from "./subscribe.mjs";
8
- import { wotGraph } from "./wot.mjs";
9
- import { profiles } from "./profiles.mjs";
10
- import { topics } from "./topics.mjs";
11
- import { relays } from "./relays.mjs";
12
- import { handlesByNip05 } from "./handles.mjs";
2
+ import { debounce } from "throttle-debounce";
3
+ import { derived } from "svelte/store";
4
+ import { dec, sortBy } from "@welshman/lib";
5
+ import { PROFILE } from "@welshman/util";
6
+ import { throttled } from "@welshman/store";
7
+ import { load } from "./subscribe.js";
8
+ import { wotGraph } from "./wot.js";
9
+ import { profiles } from "./profiles.js";
10
+ import { topics } from "./topics.js";
11
+ import { relays } from "./relays.js";
12
+ import { handlesByNip05 } from "./handles.js";
13
13
  export const createSearch = (options, opts) => {
14
14
  const fuse = new Fuse(options, { ...opts.fuseOptions, includeScore: true });
15
15
  const map = new Map(options.map(item => [opts.getValue(item), item]));
16
16
  const search = (term) => {
17
- var _a;
18
- (_a = opts.onSearch) === null || _a === void 0 ? void 0 : _a.call(opts, term);
17
+ opts.onSearch?.(term);
19
18
  let results = term ? fuse.search(term) : options.map(item => ({ item }));
20
19
  if (opts.sortFn) {
21
20
  results = sortBy(opts.sortFn, results);
@@ -37,10 +36,8 @@ export const searchProfiles = debounce(500, (search) => {
37
36
  });
38
37
  export const profileSearch = derived([throttled(800, profiles), throttled(800, handlesByNip05)], ([$profiles, $handlesByNip05]) => {
39
38
  // Remove invalid nip05's from profiles
40
- const options = $profiles
41
- .map(p => {
42
- var _a;
43
- const isNip05Valid = !p.nip05 || ((_a = $handlesByNip05.get(p.nip05)) === null || _a === void 0 ? void 0 : _a.pubkey) === p.event.pubkey;
39
+ const options = $profiles.map(p => {
40
+ const isNip05Valid = !p.nip05 || $handlesByNip05.get(p.nip05)?.pubkey === p.event.pubkey;
44
41
  return isNip05Valid ? p : { ...p, nip05: "" };
45
42
  });
46
43
  return createSearch(options, {
@@ -74,4 +71,4 @@ export const relaySearch = derived(relays, $relays => createSearch($relays, {
74
71
  keys: ["url", "name", { name: "description", weight: 0.3 }],
75
72
  },
76
73
  }));
77
- //# sourceMappingURL=search.mjs.map
74
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { Nip46Signer, Nip07Signer, Nip01Signer, Nip55Signer } from "@welshman/signer";
2
2
  export type SessionNip01 = {
3
- method: 'nip01';
3
+ method: "nip01";
4
4
  pubkey: string;
5
5
  secret: string;
6
6
  };
7
7
  export type SessionNip07 = {
8
- method: 'nip07';
8
+ method: "nip07";
9
9
  pubkey: string;
10
10
  };
11
11
  export type SessionNip46 = {
12
- method: 'nip46';
12
+ method: "nip46";
13
13
  pubkey: string;
14
14
  secret: string;
15
15
  handler: {
@@ -18,12 +18,12 @@ export type SessionNip46 = {
18
18
  };
19
19
  };
20
20
  export type SessionNip55 = {
21
- method: 'nip55';
21
+ method: "nip55";
22
22
  pubkey: string;
23
23
  signer: string;
24
24
  };
25
25
  export type SessionPubkey = {
26
- method: 'pubkey';
26
+ method: "pubkey";
27
27
  pubkey: string;
28
28
  };
29
29
  export type SessionAnyMethod = SessionNip01 | SessionNip07 | SessionNip46 | SessionNip55 | SessionPubkey;
@@ -38,10 +38,10 @@ export declare const updateSession: (pubkey: string, f: (session: Session) => Se
38
38
  export declare const dropSession: (pubkey: string) => void;
39
39
  export declare const nip46Perms = "sign_event:22242,nip04_encrypt,nip04_decrypt,nip44_encrypt,nip44_decrypt";
40
40
  export declare const getSigner: {
41
- (args_0: Session | null): NonNullable<Nip07Signer | Nip01Signer | Nip46Signer | Nip55Signer | null>;
42
- cache: import("@welshman/lib").LRUCache<string, Nip07Signer | Nip01Signer | Nip46Signer | Nip55Signer | null>;
41
+ (args_0: Session | null): NonNullable<Nip01Signer | Nip07Signer | Nip46Signer | Nip55Signer | null>;
42
+ cache: import("@welshman/lib").LRUCache<string, Nip01Signer | Nip07Signer | Nip46Signer | Nip55Signer | null>;
43
43
  getKey: (args: [Session | null]) => string;
44
- getValue: (args: [Session | null]) => Nip07Signer | Nip01Signer | Nip46Signer | Nip55Signer | null;
44
+ getValue: (args: [Session | null]) => Nip01Signer | Nip07Signer | Nip46Signer | Nip55Signer | null;
45
45
  };
46
- export declare const signer: import("@welshman/store").ReadableWithGetter<NonNullable<Nip07Signer | Nip01Signer | Nip46Signer | Nip55Signer | null>>;
46
+ export declare const signer: import("@welshman/store").ReadableWithGetter<NonNullable<Nip01Signer | Nip07Signer | Nip46Signer | Nip55Signer | null>>;
47
47
  export declare const nip44EncryptToSelf: (payload: string) => Promise<string>;
@@ -22,7 +22,7 @@ export const getSigner = cached({
22
22
  maxSize: 100,
23
23
  getKey: ([session]) => hash(String(JSON.stringify(session))),
24
24
  getValue: ([session]) => {
25
- switch (session === null || session === void 0 ? void 0 : session.method) {
25
+ switch (session?.method) {
26
26
  case "nip07":
27
27
  return new Nip07Signer();
28
28
  case "nip01":
@@ -38,7 +38,7 @@ export const getSigner = cached({
38
38
  default:
39
39
  return null;
40
40
  }
41
- }
41
+ },
42
42
  });
43
43
  export const signer = withGetter(derived(session, getSigner));
44
44
  export const nip44EncryptToSelf = (payload) => {
@@ -49,4 +49,4 @@ export const nip44EncryptToSelf = (payload) => {
49
49
  }
50
50
  return $signer.nip44.encrypt($pubkey, payload);
51
51
  };
52
- //# sourceMappingURL=session.mjs.map
52
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="svelte" />
2
1
  import type { IDBPDatabase } from "idb";
3
2
  import type { Unsubscriber, Writable } from "svelte/store";
4
3
  import type { TrustedEvent, Repository } from "@welshman/util";
@@ -26,48 +25,18 @@ export declare const storageAdapters: {
26
25
  options: StorageAdapterOptions;
27
26
  keyPath: string;
28
27
  store: {
29
- set: (x: {
30
- key: string;
31
- value: T;
32
- }[]) => void;
33
- update: (f: (x: {
34
- key: string;
35
- value: T;
36
- }[]) => {
37
- key: string;
38
- value: T;
39
- }[]) => void;
40
- subscribe(this: void, run: import("svelte/store").Subscriber<{
41
- key: string;
42
- value: T;
43
- }[]>, invalidate?: import("svelte/store").Invalidator<{
44
- key: string;
45
- value: T;
46
- }[]> | undefined): Unsubscriber;
28
+ set: (x: any[]) => void;
29
+ update: (f: (x: any[]) => any[]) => void;
30
+ subscribe(this: void, run: import("svelte/store").Subscriber<any[]>, invalidate?: import("svelte/store").Invalidator<any[]> | undefined): Unsubscriber;
47
31
  };
48
32
  };
49
- fromMapStore: <T_1>(store: Writable<Map<string, T_1>>, options?: StorageAdapterOptions) => {
33
+ fromMapStore: <T>(store: Writable<Map<string, T>>, options?: StorageAdapterOptions) => {
50
34
  options: StorageAdapterOptions;
51
35
  keyPath: string;
52
36
  store: {
53
- set: (x: {
54
- key: string;
55
- value: T_1;
56
- }[]) => void;
57
- update: (f: (x: {
58
- key: string;
59
- value: T_1;
60
- }[]) => {
61
- key: string;
62
- value: T_1;
63
- }[]) => void;
64
- subscribe(this: void, run: import("svelte/store").Subscriber<{
65
- key: string;
66
- value: T_1;
67
- }[]>, invalidate?: import("svelte/store").Invalidator<{
68
- key: string;
69
- value: T_1;
70
- }[]> | undefined): Unsubscriber;
37
+ set: (x: any[]) => void;
38
+ update: (f: (x: any[]) => any[]) => void;
39
+ subscribe(this: void, run: import("svelte/store").Subscriber<any[]>, invalidate?: import("svelte/store").Invalidator<any[]> | undefined): Unsubscriber;
71
40
  };
72
41
  };
73
42
  fromTracker: (tracker: Tracker, options?: StorageAdapterOptions) => {
@@ -74,7 +74,7 @@ export const initStorage = async (name, version, adapters) => {
74
74
  export const closeStorage = async () => {
75
75
  dead.set(true);
76
76
  subs.forEach(unsub => unsub());
77
- await (db === null || db === void 0 ? void 0 : db.close());
77
+ await db?.close();
78
78
  };
79
79
  export const clearStorage = async () => {
80
80
  await closeStorage();
@@ -102,38 +102,40 @@ export const storageAdapters = {
102
102
  }),
103
103
  fromTracker: (tracker, options = {}) => ({
104
104
  options,
105
- keyPath: 'key',
105
+ keyPath: "key",
106
106
  store: custom(setter => {
107
- let onUpdate = () => setter(migrate(Array.from(tracker.relaysById.entries())
108
- .map(([key, urls]) => ({ key, value: Array.from(urls) })), options));
107
+ let onUpdate = () => setter(migrate(Array.from(tracker.relaysById.entries()).map(([key, urls]) => ({
108
+ key,
109
+ value: Array.from(urls),
110
+ })), options));
109
111
  if (options.throttle) {
110
112
  onUpdate = throttle(options.throttle, onUpdate);
111
113
  }
112
114
  onUpdate();
113
- tracker.on('update', onUpdate);
114
- return () => tracker.off('update', onUpdate);
115
+ tracker.on("update", onUpdate);
116
+ return () => tracker.off("update", onUpdate);
115
117
  }, {
116
118
  set: (data) => tracker.load(new Map(data.map(({ key, value }) => [key, new Set(value)]))),
117
119
  }),
118
120
  }),
119
121
  fromRepository: (repository, options = {}) => ({
120
122
  options,
121
- keyPath: 'id',
123
+ keyPath: "id",
122
124
  store: custom(setter => {
123
125
  let onUpdate = () => setter(migrate(repository.dump(), options));
124
126
  if (options.throttle) {
125
127
  onUpdate = throttle(options.throttle, onUpdate);
126
128
  }
127
129
  onUpdate();
128
- repository.on('update', onUpdate);
129
- return () => repository.off('update', onUpdate);
130
+ repository.on("update", onUpdate);
131
+ return () => repository.off("update", onUpdate);
130
132
  }, {
131
133
  set: (events) => repository.load(events),
132
134
  }),
133
135
  }),
134
136
  fromRepositoryAndTracker: (repository, tracker, options = {}) => ({
135
137
  options,
136
- keyPath: 'id',
138
+ keyPath: "id",
137
139
  store: custom(setter => {
138
140
  let onUpdate = () => {
139
141
  const events = migrate(repository.dump(), options);
@@ -146,10 +148,10 @@ export const storageAdapters = {
146
148
  onUpdate = throttle(options.throttle, onUpdate);
147
149
  }
148
150
  onUpdate();
149
- tracker.on('update', onUpdate);
150
- repository.on('update', onUpdate);
151
+ tracker.on("update", onUpdate);
152
+ repository.on("update", onUpdate);
151
153
  return () => {
152
- tracker.off('update', onUpdate);
154
+ tracker.off("update", onUpdate);
153
155
  };
154
156
  }, {
155
157
  set: (items) => {
@@ -163,6 +165,6 @@ export const storageAdapters = {
163
165
  tracker.load(relaysById);
164
166
  },
165
167
  }),
166
- })
168
+ }),
167
169
  };
168
- //# sourceMappingURL=storage.mjs.map
170
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { ctx, isNil } from "@welshman/lib";
2
2
  import { LOCAL_RELAY_URL, getFilterResultCardinality } from "@welshman/util";
3
3
  import { subscribe as baseSubscribe, SubscriptionEvent } from "@welshman/net";
4
- import { repository } from "./core.mjs";
4
+ import { repository } from "./core.js";
5
5
  export const subscribe = (request) => {
6
6
  const events = [];
7
7
  // If we already have all results for any filter, don't send the filter to the network
@@ -39,4 +39,4 @@ export const load = (request) => new Promise(resolve => {
39
39
  sub.emitter.on(SubscriptionEvent.Event, (url, e) => events.push(e));
40
40
  sub.emitter.on(SubscriptionEvent.Complete, () => resolve(events));
41
41
  });
42
- //# sourceMappingURL=subscribe.mjs.map
42
+ //# sourceMappingURL=subscribe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,KAAK,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,eAAe,EAAE,0BAA0B,EAAC,MAAM,gBAAgB,CAAA;AAE1E,OAAO,EAAC,SAAS,IAAI,aAAa,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAA;AAE3E,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AAIpC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAgC,EAAE,EAAE;IAC5D,MAAM,MAAM,GAAmB,EAAE,CAAA;IAEjC,sFAAsF;IACtF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAA;YAEtD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;gBAE1C,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;wBAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACpB,CAAC;oBAED,MAAK;gBACP,CAAC;YACH,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,CAAA;IAClC,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAA;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IAChE,MAAM,GAAG,GAAG,aAAa,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,EAAC,CAAC,CAAA;IAEhF,8DAA8D;IAC9D,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAA;QACnE,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,OAAgC,EAAE,EAAE,CACvD,IAAI,OAAO,CAAiB,OAAO,CAAC,EAAE;IACpC,MAAM,GAAG,GAAG,SAAS,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,OAAO,EAAC,CAAC,CAAA;IACvF,MAAM,MAAM,GAAmB,EAAE,CAAA;IAEjC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,GAAW,EAAE,CAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACzF,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AACnE,CAAC,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Filter } from '@welshman/util';
1
+ import type { Filter } from "@welshman/util";
2
2
  export declare const hasNegentropy: (url: string) => boolean;
3
3
  export type AppSyncOpts = {
4
4
  relays: string[];