@welshman/util 0.0.2 → 0.0.5

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 (54) hide show
  1. package/build/Address.cjs +40 -32
  2. package/build/Address.cjs.map +1 -1
  3. package/build/Address.d.ts +20 -18
  4. package/build/Address.mjs +38 -26
  5. package/build/Address.mjs.map +1 -1
  6. package/build/Events.cjs +29 -14
  7. package/build/Events.cjs.map +1 -1
  8. package/build/Events.d.ts +42 -15
  9. package/build/Events.mjs +15 -7
  10. package/build/Events.mjs.map +1 -1
  11. package/build/Filters.cjs +40 -8
  12. package/build/Filters.cjs.map +1 -1
  13. package/build/Filters.d.ts +7 -6
  14. package/build/Filters.mjs +37 -6
  15. package/build/Filters.mjs.map +1 -1
  16. package/build/Kinds.cjs +111 -46
  17. package/build/Kinds.cjs.map +1 -1
  18. package/build/Kinds.d.ts +108 -44
  19. package/build/Kinds.mjs +108 -44
  20. package/build/Kinds.mjs.map +1 -1
  21. package/build/Links.cjs +1 -1
  22. package/build/Links.cjs.map +1 -1
  23. package/build/Links.mjs +1 -1
  24. package/build/Links.mjs.map +1 -1
  25. package/build/Relay.cjs +59 -131
  26. package/build/Relay.cjs.map +1 -1
  27. package/build/Relay.d.ts +16 -18
  28. package/build/Relay.mjs +58 -132
  29. package/build/Relay.mjs.map +1 -1
  30. package/build/Repository.cjs +205 -0
  31. package/build/Repository.cjs.map +1 -0
  32. package/build/Repository.d.ts +44 -0
  33. package/build/Repository.mjs +201 -0
  34. package/build/Repository.mjs.map +1 -0
  35. package/build/Router.cjs +24 -24
  36. package/build/Router.cjs.map +1 -1
  37. package/build/Router.d.ts +68 -28
  38. package/build/Router.mjs +24 -24
  39. package/build/Router.mjs.map +1 -1
  40. package/build/Tags.cjs +17 -19
  41. package/build/Tags.cjs.map +1 -1
  42. package/build/Tags.d.ts +2 -9
  43. package/build/Tags.mjs +18 -20
  44. package/build/Tags.mjs.map +1 -1
  45. package/build/index.cjs +1 -1
  46. package/build/index.cjs.map +1 -1
  47. package/build/index.d.ts +1 -1
  48. package/build/index.mjs +1 -1
  49. package/package.json +2 -3
  50. package/build/Relays.cjs +0 -36
  51. package/build/Relays.cjs.map +0 -1
  52. package/build/Relays.d.ts +0 -6
  53. package/build/Relays.mjs +0 -31
  54. package/build/Relays.mjs.map +0 -1
package/build/Kinds.mjs CHANGED
@@ -6,75 +6,139 @@ export const isParameterizedReplaceableKind = kinds.isParameterizedReplaceableKi
6
6
  export const isReplaceableKind = (kind) => isPlainReplaceableKind(kind) || isParameterizedReplaceableKind(kind);
7
7
  export const PROFILE = 0;
8
8
  export const NOTE = 1;
9
- export const RELAY = 2;
10
- export const DM = 4;
11
- export const EVENT_DELETION = 5;
9
+ export const FOLLOWS = 3;
10
+ export const DELETE = 5;
12
11
  export const REPOST = 6;
13
12
  export const REACTION = 7;
14
13
  export const BADGE_AWARD = 8;
14
+ export const GROUP_CHAT_MESSAGE = 9;
15
+ export const GROUP_CHAT_REPLY = 10;
16
+ export const GROUP_CHAT_THREAD = 11;
17
+ export const GROUP_CHAT_THREAD_REPLY = 12;
18
+ export const SEAL = 13;
19
+ export const DIRECT_MESSAGE = 14;
15
20
  export const GENERIC_REPOST = 16;
16
- export const CHANNEL_CREATION = 40;
17
- export const CHANNEL_METADATA = 41;
21
+ export const CHANNEL_CREATE = 40;
22
+ export const CHANNEL_UPDATE = 41;
18
23
  export const CHANNEL_MESSAGE = 42;
19
24
  export const CHANNEL_HIDE_MESSAGE = 43;
20
25
  export const CHANNEL_MUTE_USER = 44;
21
- export const OPEN_TIMESTAMP = 1040;
22
- export const GIFT_WRAP = 1059;
26
+ export const BID = 1021;
27
+ export const BID_CONFIRMATION = 1022;
28
+ export const OTS = 1040;
29
+ export const WRAP = 1059;
30
+ export const WRAP_NIP04 = 1060;
23
31
  export const FILE_METADATA = 1063;
24
32
  export const LIVE_CHAT_MESSAGE = 1311;
33
+ export const GIT_PATCH = 1617;
34
+ export const GIT_ISSUE = 1617;
35
+ export const GIT_REPLY = 1617;
36
+ export const GIT_STATUS_OPEN = 1630;
37
+ export const GIT_STATUS_COMPLETE = 1631;
38
+ export const GIT_STATUS_CLOSED = 1632;
39
+ export const GIT_STATUS_DRAFT = 1633;
40
+ export const GIT_REPOSITORY = 30403;
25
41
  export const REMIX = 1808;
26
- export const PROBLEM_TRACKER = 1971;
42
+ export const NOSTROCKER_PROBLEM = 1971;
27
43
  export const REPORT = 1984;
28
44
  export const LABEL = 1985;
29
- export const COMMUNITY_POST_APPROVAL = 4550;
30
- export const JOB_REQUEST = 5999;
31
- export const JOB_RESULT = 6999;
32
- export const JOB_FEEDBACK = 7000;
45
+ export const REVIEW = 1986;
46
+ export const APPROVAL = 4550;
47
+ export const DVM_REQUEST_TEXT_EXTRACTION = 5000;
48
+ export const DVM_REQUEST_TEXT_SUMMARY = 5001;
49
+ export const DVM_REQUEST_TEXT_TRANSLATION = 5002;
50
+ export const DVM_REQUEST_TEXT_GENERATION = 5050;
51
+ export const DVM_REQUEST_IMAGE_GENERATION = 5100;
52
+ export const DVM_REQUEST_VIDEO_CONVERSION = 5200;
53
+ export const DVM_REQUEST_VIDEO_TRANSLATION = 5201;
54
+ export const DVM_REQUEST_IMAGE_TO_VIDEO_CONVERSION = 5202;
55
+ export const DVM_REQUEST_TEXT_TO_SPEECH = 5250;
56
+ export const DVM_REQUEST_DISCOVER_CONTENT = 5300;
57
+ export const DVM_REQUEST_DISCOVER_PEOPLE = 5301;
58
+ export const DVM_REQUEST_SEARCH_CONTENT = 5302;
59
+ export const DVM_REQUEST_SEARCH_PEOPLE = 5303;
60
+ export const DVM_REQUEST_COUNT = 5400;
61
+ export const DVM_REQUEST_MALWARE_SCAN = 5500;
62
+ export const DVM_REQUEST_OTS = 5900;
63
+ export const DVM_REQUEST_OP_RETURN = 5901;
64
+ export const DVM_REQUEST_PUBLISH_SCHEDULE = 5905;
65
+ export const DVM_RESPONSE_TEXT_EXTRACTION = 6000;
66
+ export const DVM_RESPONSE_TEXT_SUMMARY = 6001;
67
+ export const DVM_RESPONSE_TEXT_TRANSLATION = 6002;
68
+ export const DVM_RESPONSE_TEXT_GENERATION = 6050;
69
+ export const DVM_RESPONSE_IMAGE_GENERATION = 6100;
70
+ export const DVM_RESPONSE_VIDEO_CONVERSION = 6200;
71
+ export const DVM_RESPONSE_VIDEO_TRANSLATION = 6201;
72
+ export const DVM_RESPONSE_IMAGE_TO_VIDEO_CONVERSION = 6202;
73
+ export const DVM_RESPONSE_TEXT_TO_SPEECH = 6250;
74
+ export const DVM_RESPONSE_DISCOVER_CONTENT = 6300;
75
+ export const DVM_RESPONSE_DISCOVER_PEOPLE = 6301;
76
+ export const DVM_RESPONSE_SEARCH_CONTENT = 6302;
77
+ export const DVM_RESPONSE_SEARCH_PEOPLE = 6303;
78
+ export const DVM_RESPONSE_COUNT = 6400;
79
+ export const DVM_RESPONSE_MALWARE_SCAN = 6500;
80
+ export const DVM_RESPONSE_OTS = 6900;
81
+ export const DVM_RESPONSE_OP_RETURN = 6901;
82
+ export const DVM_RESPONSE_PUBLISH_SCHEDULE = 6905;
83
+ export const DVM_FEEDBACK = 7000;
33
84
  export const ZAP_GOAL = 9041;
34
85
  export const ZAP_REQUEST = 9734;
35
86
  export const ZAP_RESPONSE = 9735;
36
87
  export const HIGHLIGHT = 9802;
37
- export const USER_LIST_MUTES = 10000;
38
- export const USER_LIST_PINS = 10001;
39
- export const USER_LIST_RELAYS = 10002;
40
- export const USER_LIST_BOOKMARKS = 10003;
41
- export const USER_LIST_COMMUNITIES = 10004;
42
- export const USER_LIST_PUBLIC_CHATS = 10005;
43
- export const USER_LIST_BLOCKED_RELAYS = 10006;
44
- export const USER_LIST_SEARCH_RELAYS = 10007;
45
- export const USER_LIST_INTERESTS = 10015;
46
- export const USER_LIST_EMOJIS = 10030;
88
+ export const MUTES = 10000;
89
+ export const PINS = 10001;
90
+ export const RELAYS = 10002;
91
+ export const BOOKMARKS = 10003;
92
+ export const COMMUNITIES = 10004;
93
+ export const CHANNELS = 10005;
94
+ export const BLOCKED_RELAYS = 10006;
95
+ export const SEARCH_RELAYS = 10007;
96
+ export const GROUPS = 10009;
97
+ export const TOPICS = 10015;
98
+ export const EMOJIS = 10030;
99
+ export const DM_INBOX_RELAYS = 10050;
100
+ export const FILE_SERVERS = 10096;
47
101
  export const LIGHTNING_PUB_RPC = 21000;
48
102
  export const CLIENT_AUTH = 22242;
49
- export const NWC_INFO = 13194;
50
- export const NWC_REQUEST = 23194;
51
- export const NWC_RESPONSE = 23195;
103
+ export const WALLET_INFO = 13194;
104
+ export const WALLET_REQUEST = 23194;
105
+ export const WALLET_RESPONSE = 23195;
52
106
  export const NOSTR_CONNECT = 24133;
53
107
  export const HTTP_AUTH = 27235;
54
- export const LIST_FOLLOWS = 3;
55
- export const LIST_PEOPLE = 30000;
56
- export const LIST_GENERIC = 30001;
57
- export const LIST_RELAYS = 30002;
58
- export const LIST_BOOKMARKS = 30003;
59
- export const LIST_CURATIONS = 30004;
60
- export const PROFILE_BADGES = 30008;
108
+ export const NAMED_PEOPLE = 30000;
109
+ export const NAMED_RELAYS = 30002;
110
+ export const NAMED_BOOKMARKS = 30003;
111
+ export const NAMED_CURATIONS = 30004;
112
+ export const NAMED_WIKI_AUTHORS = 30101;
113
+ export const NAMED_WIKI_RELAYS = 30102;
114
+ export const NAMED_EMOJIS = 30030;
115
+ export const NAMED_TOPICS = 30015;
116
+ export const NAMED_ARTIFACTS = 30063;
117
+ export const BADGES = 30008;
61
118
  export const BADGE_DEFINITION = 30009;
62
- export const LIST_EMOJIS = 30030;
63
- export const LIST_INTERESTS = 30015;
64
- export const LONG_FORM_ARTICLE = 30023;
65
- export const LONG_FORM_ARTICLE_DRAFT = 30024;
119
+ export const STALL = 30017;
120
+ export const PRODUCT = 30018;
121
+ export const MARKET_UI = 30019;
122
+ export const PRODUCT_SOLD_AS_AUCTION = 30020;
123
+ export const WIKI = 30818;
124
+ export const LONG_FORM = 30023;
125
+ export const LONG_FORM_DRAFT = 30024;
66
126
  export const APPLICATION = 30078;
67
127
  export const LIVE_EVENT = 30311;
68
- export const USER_STATUSES = 30315;
69
- export const CLASSIFIED_LISTING = 30402;
70
- export const DRAFT_CLASSIFIED_LISTING = 30403;
128
+ export const STATUS = 30315;
129
+ export const CLASSIFIED = 30402;
130
+ export const DRAFT_CLASSIFIED = 30403;
71
131
  export const AUDIO = 31337;
132
+ export const FEED = 31890;
72
133
  export const CALENDAR = 31924;
73
- export const CALENDAR_EVENT_DATE = 31922;
74
- export const CALENDAR_EVENT_TIME = 31923;
75
- export const CALENDAR_EVENT_RSVP = 31925;
134
+ export const EVENT_DATE = 31922;
135
+ export const EVENT_TIME = 31923;
136
+ export const EVENT_RSVP = 31925;
76
137
  export const HANDLER_RECOMMENDATION = 31989;
77
138
  export const HANDLER_INFORMATION = 31990;
78
- export const COMMUNITY_DEFINITION = 34550;
79
- export const GROUP_DEFINITION = 35834;
139
+ export const COMMUNITY = 34550;
140
+ export const GROUP = 35834;
141
+ export const DEPRECATED_RELAY_RECOMMENDATION = 2;
142
+ export const DEPRECATED_DIRECT_MESSAGE = 4;
143
+ export const DEPRECATED_NAMED_GENERIC = 30001;
80
144
  //# sourceMappingURL=Kinds.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Kinds.mjs","sourceRoot":"","sources":["../Kinds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Kinds.mjs","sourceRoot":"","sources":["../Kinds.ts"],"names":[],"mappings":"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"}
package/build/Links.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toNostrURI = exports.fromNostrURI = void 0;
4
- const fromNostrURI = (s) => s.replace(/^[\w+]+:\/?\/?/, "");
4
+ const fromNostrURI = (s) => s.replace(/^nostr:\/?\/?/, "");
5
5
  exports.fromNostrURI = fromNostrURI;
6
6
  const toNostrURI = (s) => `nostr:${s}`;
7
7
  exports.toNostrURI = toNostrURI;
@@ -1 +1 @@
1
- {"version":3,"file":"Links.cjs","sourceRoot":"","sources":["../Links.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;AAA7D,QAAA,YAAY,gBAAiD;AAEnE,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAA;AAAxC,QAAA,UAAU,cAA8B"}
1
+ {"version":3,"file":"Links.cjs","sourceRoot":"","sources":["../Links.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;AAA5D,QAAA,YAAY,gBAAgD;AAElE,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAA;AAAxC,QAAA,UAAU,cAA8B"}
package/build/Links.mjs CHANGED
@@ -1,3 +1,3 @@
1
- export const fromNostrURI = (s) => s.replace(/^[\w+]+:\/?\/?/, "");
1
+ export const fromNostrURI = (s) => s.replace(/^nostr:\/?\/?/, "");
2
2
  export const toNostrURI = (s) => `nostr:${s}`;
3
3
  //# sourceMappingURL=Links.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Links.mjs","sourceRoot":"","sources":["../Links.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;AAE1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAA"}
1
+ {"version":3,"file":"Links.mjs","sourceRoot":"","sources":["../Links.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;AAEzE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAA"}
package/build/Relay.cjs CHANGED
@@ -1,152 +1,80 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Relay = exports.DAY = void 0;
3
+ exports.Relay = exports.normalizeRelayUrl = exports.isShareableRelayUrl = exports.BOGUS_RELAY_URL = exports.LOCAL_RELAY_URL = void 0;
4
4
  const lib_1 = require("@welshman/lib");
5
5
  const Filters_1 = require("./Filters.cjs");
6
- const Address_1 = require("./Address.cjs");
7
- const Events_1 = require("./Events.cjs");
8
- exports.DAY = 86400;
9
- const getDay = (ts) => Math.floor(ts / exports.DAY);
6
+ exports.LOCAL_RELAY_URL = "local://welshman.relay";
7
+ exports.BOGUS_RELAY_URL = "bogus://welshman.relay";
8
+ const isShareableRelayUrl = (url) => {
9
+ var _a;
10
+ return Boolean(typeof url === 'string' &&
11
+ // Is it actually a websocket url and has a dot
12
+ url.match(/^wss:\/\/.+\..+/) &&
13
+ // Sometimes bugs cause multiple relays to get concatenated
14
+ ((_a = url.match(/:\/\//g)) === null || _a === void 0 ? void 0 : _a.length) === 1 &&
15
+ // It shouldn't have any whitespace, url-encoded or otherwise
16
+ !url.match(/\s|%/) &&
17
+ // Don't match stuff with a port number
18
+ !url.slice(6).match(/:\d+/) &&
19
+ // Don't match raw ip addresses
20
+ !url.slice(6).match(/\d+\.\d+\.\d+\.\d+/) &&
21
+ // Skip nostr.wine's virtual relays
22
+ !url.slice(6).match(/\/npub/));
23
+ };
24
+ exports.isShareableRelayUrl = isShareableRelayUrl;
25
+ const normalizeRelayUrl = (url, { allowInsecure = false } = {}) => {
26
+ var _a;
27
+ const prefix = allowInsecure ? ((_a = url.match(/^wss?:\/\//)) === null || _a === void 0 ? void 0 : _a[0]) || "wss://" : "wss://";
28
+ // Use our library to normalize
29
+ url = (0, lib_1.normalizeUrl)(url, { stripHash: true, stripAuthentication: false });
30
+ // Strip the protocol since only wss works, lowercase
31
+ url = (0, lib_1.stripProtocol)(url).toLowerCase();
32
+ // Urls without pathnames are supposed to have a trailing slash
33
+ if (!url.includes("/")) {
34
+ url += "/";
35
+ }
36
+ return prefix + url;
37
+ };
38
+ exports.normalizeRelayUrl = normalizeRelayUrl;
10
39
  class Relay extends lib_1.Emitter {
11
- constructor() {
12
- super(...arguments);
13
- this.eventsById = new Map();
14
- this.eventsByAddress = new Map();
15
- this.eventsByTag = new Map();
16
- this.eventsByDay = new Map();
17
- this.eventsByAuthor = new Map();
40
+ constructor(repository) {
41
+ super();
42
+ this.repository = repository;
18
43
  this.subs = new Map();
19
- this.deletes = new Map();
20
- }
21
- dump() {
22
- return Array.from(this.eventsById.values());
23
- }
24
- async load(events, chunkSize = 1000) {
25
- for (const eventsChunk of (0, lib_1.chunk)(chunkSize, events)) {
26
- for (const event of eventsChunk) {
27
- this._addEvent(event);
28
- }
29
- if (eventsChunk.length === chunkSize) {
30
- await (0, lib_1.sleep)(1);
31
- }
32
- }
33
44
  }
34
45
  send(type, ...message) {
35
46
  switch (type) {
36
- case 'EVENT': return this._onEVENT(message);
37
- case 'CLOSE': return this._onCLOSE(message);
38
- case 'REQ': return this._onREQ(message);
47
+ case 'EVENT': return this.handleEVENT(message);
48
+ case 'CLOSE': return this.handleCLOSE(message);
49
+ case 'REQ': return this.handleREQ(message);
39
50
  }
40
51
  }
41
- _onEVENT([json]) {
42
- let event;
43
- try {
44
- event = JSON.parse(json);
45
- }
46
- catch (e) {
47
- return;
48
- }
49
- const duplicateById = this.eventsById.get(event.id);
50
- if (duplicateById) {
51
- return;
52
- }
53
- const hasAddress = (0, Events_1.isReplaceable)(event);
54
- const address = (0, Address_1.encodeAddress)((0, Address_1.addressFromEvent)(event));
55
- const duplicateByAddress = hasAddress ? this.eventsByAddress.get(address) : undefined;
56
- if (duplicateByAddress && duplicateByAddress.created_at >= event.created_at) {
57
- return;
58
- }
59
- this._addEvent(event, duplicateByAddress);
60
- this.emit('OK', event.id, true, "");
61
- if (!this._isDeleted(event)) {
62
- for (const [subId, filters] of this.subs.entries()) {
63
- if ((0, Filters_1.matchFilters)(filters, event)) {
64
- this.emit('EVENT', subId, json);
52
+ handleEVENT([event]) {
53
+ this.repository.publish(event);
54
+ // Callers generally expect async relays
55
+ (0, lib_1.sleep)(1).then(() => {
56
+ this.emit('OK', event.id, true, "");
57
+ if (!this.repository.isDeleted(event)) {
58
+ for (const [subId, filters] of this.subs.entries()) {
59
+ if ((0, Filters_1.matchFilters)(filters, event)) {
60
+ this.emit('EVENT', subId, event);
61
+ }
65
62
  }
66
63
  }
67
- }
64
+ });
68
65
  }
69
- _onCLOSE([subId]) {
66
+ handleCLOSE([subId]) {
70
67
  this.subs.delete(subId);
71
68
  }
72
- _onREQ([subId, ...filters]) {
69
+ handleREQ([subId, ...filters]) {
73
70
  this.subs.set(subId, filters);
74
- const result = new Set();
75
- for (let filter of filters) {
76
- let events = this.eventsById.values();
77
- if (filter.ids) {
78
- filter = (0, lib_1.omit)(['ids'], filter);
79
- events = filter.ids.map(id => this.eventsById.get(id)).filter(lib_1.identity);
80
- }
81
- else if (filter.authors) {
82
- filter = (0, lib_1.omit)(['authors'], filter);
83
- events = (0, lib_1.uniq)(filter.authors.flatMap(pubkey => this.eventsByAuthor.get(pubkey) || []));
84
- }
85
- else if (filter.since || filter.until) {
86
- const sinceDay = getDay(filter.since || 0);
87
- const untilDay = getDay(filter.since || (0, lib_1.now)());
88
- filter = (0, lib_1.omit)(['since', 'until'], filter);
89
- events = (0, lib_1.uniq)(Array.from((0, lib_1.range)(sinceDay, untilDay))
90
- .flatMap((day) => this.eventsByDay.get(day) || []));
91
- }
92
- else {
93
- for (const [k, values] of Object.entries(filter)) {
94
- if (!k.startsWith('#') || k.length !== 2) {
95
- continue;
96
- }
97
- filter = (0, lib_1.omit)([k], filter);
98
- events = (0, lib_1.uniq)(values.flatMap(v => this.eventsByTag.get(`${k[1]}:${v}`) || []));
99
- break;
100
- }
101
- }
102
- for (const event of events) {
103
- if (!this._isDeleted(event) && (0, Filters_1.matchFilter)(filter, event)) {
104
- result.add(event);
105
- }
106
- }
107
- }
108
- for (const event of result) {
109
- this.emit('EVENT', subId, JSON.stringify(event));
110
- }
111
- this.emit('EOSE', subId);
112
- }
113
- _isDeleted(event) {
114
- const idDeletedAt = this.deletes.get(event.id) || 0;
115
- if (idDeletedAt > event.created_at) {
116
- return true;
117
- }
118
- if ((0, Events_1.isReplaceable)(event)) {
119
- const address = (0, Address_1.encodeAddress)((0, Address_1.addressFromEvent)(event));
120
- const addressDeletedAt = this.deletes.get(address) || 0;
121
- if (addressDeletedAt > event.created_at) {
122
- return true;
71
+ // Callers generally expect async relays
72
+ (0, lib_1.sleep)(1).then(() => {
73
+ for (const event of this.repository.query(filters)) {
74
+ this.emit('EVENT', subId, event);
123
75
  }
124
- }
125
- return false;
126
- }
127
- _addEvent(event, duplicate) {
128
- this.eventsById.set(event.id, event);
129
- if ((0, Events_1.isReplaceable)(event)) {
130
- this.eventsByAddress.set((0, Address_1.encodeAddress)((0, Address_1.addressFromEvent)(event)), event);
131
- }
132
- this._updateIndex(this.eventsByDay, getDay(event.created_at), event, duplicate);
133
- this._updateIndex(this.eventsByAuthor, event.pubkey, event, duplicate);
134
- for (const tag of event.tags) {
135
- if (tag[0].length === 1) {
136
- this._updateIndex(this.eventsByTag, tag.slice(0, 2).join(':'), event, duplicate);
137
- if (event.kind === 5) {
138
- this.deletes.set(tag[1], Math.max(event.created_at, this.deletes.get(tag[1]) || 0));
139
- }
140
- }
141
- }
142
- }
143
- _updateIndex(m, k, e, duplicate) {
144
- let a = m.get(k) || [];
145
- if (duplicate) {
146
- a = a.filter((x) => x !== duplicate);
147
- }
148
- a.push(e);
149
- m.set(k, a);
76
+ this.emit('EOSE', subId);
77
+ });
150
78
  }
151
79
  }
152
80
  exports.Relay = Relay;
@@ -1 +1 @@
1
- {"version":3,"file":"Relay.cjs","sourceRoot":"","sources":["../Relay.ts"],"names":[],"mappings":";;;AAAA,uCAAqF;AACrF,2CAAmD;AACnD,2CAAyD;AACzD,yCAAsC;AAIzB,QAAA,GAAG,GAAG,KAAK,CAAA;AAExB,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,WAAG,CAAC,CAAA;AAInD,MAAa,KAAuB,SAAQ,aAAO;IAAnD;;QACE,eAAU,GAAG,IAAI,GAAG,EAAa,CAAA;QACjC,oBAAe,GAAG,IAAI,GAAG,EAAa,CAAA;QACtC,gBAAW,GAAG,IAAI,GAAG,EAAe,CAAA;QACpC,gBAAW,GAAG,IAAI,GAAG,EAAe,CAAA;QACpC,mBAAc,GAAG,IAAI,GAAG,EAAe,CAAA;QACvC,SAAI,GAAG,IAAI,GAAG,EAAoB,CAAA;QAClC,YAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IAuKrC,CAAC;IArKC,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAW,EAAE,SAAS,GAAG,IAAI;QACtC,KAAK,MAAM,WAAW,IAAI,IAAA,WAAK,EAAC,SAAS,EAAE,MAAM,CAAC,EAAE;YAClD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE;gBAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;aACtB;YAED,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE;gBACpC,MAAM,IAAA,WAAK,EAAC,CAAC,CAAC,CAAA;aACf;SACF;IACH,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,GAAG,OAAc;QAClC,QAAO,IAAI,EAAE;YACX,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAmB,CAAC,CAAA;YACvD,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAmB,CAAC,CAAA;YACvD,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAgC,CAAC,CAAA;SACjE;IACH,CAAC;IAED,QAAQ,CAAC,CAAC,IAAI,CAAW;QACvB,IAAI,KAAQ,CAAA;QACZ,IAAI;YACF,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,OAAM;SACP;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAEnD,IAAI,aAAa,EAAE;YACjB,OAAM;SACP;QAED,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC,CAAA;QACtD,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAErF,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE;YAC3E,OAAM;SACP;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;QAEzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;QAEnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC3B,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;gBAClD,IAAI,IAAA,sBAAY,EAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;iBAChC;aACF;SACF;IACH,CAAC;IAED,QAAQ,CAAC,CAAC,KAAK,CAAW;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,CAAwB;QAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAE7B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;QAExB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;YAC1B,IAAI,MAAM,GAAgB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;YAElD,IAAI,MAAM,CAAC,GAAG,EAAE;gBACd,MAAM,GAAG,IAAA,UAAI,EAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;gBAC9B,MAAM,GAAG,MAAM,CAAC,GAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,cAAQ,CAAQ,CAAA;aAChF;iBAAM,IAAI,MAAM,CAAC,OAAO,EAAE;gBACzB,MAAM,GAAG,IAAA,UAAI,EAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;gBAClC,MAAM,GAAG,IAAA,UAAI,EAAC,MAAM,CAAC,OAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;aACxF;iBAAM,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE;gBACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;gBAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,IAAA,SAAG,GAAE,CAAC,CAAA;gBAE9C,MAAM,GAAG,IAAA,UAAI,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;gBACzC,MAAM,GAAG,IAAA,UAAI,EACX,KAAK,CAAC,IAAI,CAAC,IAAA,WAAK,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;qBAClC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAC7D,CAAA;aACF;iBAAM;gBACL,KAAK,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAChD,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;wBACxC,SAAQ;qBACT;oBAED,MAAM,GAAG,IAAA,UAAI,EAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;oBAC1B,MAAM,GAAG,IAAA,UAAI,EACV,MAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAC9E,CAAA;oBAED,MAAK;iBACN;aACF;YAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAA,qBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,EAAE;oBACzD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;iBAClB;aACF;SACF;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;SACjD;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,UAAU,CAAC,KAAQ;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAEnD,IAAI,WAAW,GAAG,KAAK,CAAC,UAAU,EAAE;YAClC,OAAO,IAAI,CAAA;SACZ;QAED,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE;YACxB,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC,CAAA;YACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAEvD,IAAI,gBAAgB,GAAG,KAAK,CAAC,UAAU,EAAE;gBACvC,OAAO,IAAI,CAAA;aACZ;SACF;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,SAAS,CAAC,KAAQ,EAAE,SAAa;QAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAEpC,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAA,uBAAa,EAAC,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;SACxE;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;QAC/E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;QAEtE,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;YAC5B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;gBAEhF,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;oBACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;iBACpF;aACF;SACF;IACH,CAAC;IAED,YAAY,CAAI,CAAc,EAAE,CAAI,EAAE,CAAI,EAAE,SAAa;QACvD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAEtB,IAAI,SAAS,EAAE;YACb,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;SACxC;QAED,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACT,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACb,CAAC;CACF;AA9KD,sBA8KC"}
1
+ {"version":3,"file":"Relay.cjs","sourceRoot":"","sources":["../Relay.ts"],"names":[],"mappings":"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"}
package/build/Relay.d.ts CHANGED
@@ -1,23 +1,21 @@
1
1
  import { Emitter } from '@welshman/lib';
2
+ import type { Repository } from './Repository';
2
3
  import type { Filter } from './Filters';
3
- import type { Rumor } from './Events';
4
- export declare const DAY = 86400;
5
- export type Message = [string, ...any[]];
6
- export declare class Relay<E extends Rumor> extends Emitter {
7
- eventsById: Map<string, E>;
8
- eventsByAddress: Map<string, E>;
9
- eventsByTag: Map<string, E[]>;
10
- eventsByDay: Map<number, E[]>;
11
- eventsByAuthor: Map<string, E[]>;
4
+ import type { TrustedEvent } from './Events';
5
+ export declare const LOCAL_RELAY_URL = "local://welshman.relay";
6
+ export declare const BOGUS_RELAY_URL = "bogus://welshman.relay";
7
+ export declare const isShareableRelayUrl: (url: string) => boolean;
8
+ type NormalizeRelayUrlOpts = {
9
+ allowInsecure?: boolean;
10
+ };
11
+ export declare const normalizeRelayUrl: (url: string, { allowInsecure }?: NormalizeRelayUrlOpts) => string;
12
+ export declare class Relay extends Emitter {
13
+ readonly repository: Repository;
12
14
  subs: Map<string, Filter[]>;
13
- deletes: Map<string, number>;
14
- dump(): E[];
15
- load(events: E[], chunkSize?: number): Promise<void>;
15
+ constructor(repository: Repository);
16
16
  send(type: string, ...message: any[]): void;
17
- _onEVENT([json]: [string]): void;
18
- _onCLOSE([subId]: [string]): void;
19
- _onREQ([subId, ...filters]: [string, ...Filter[]]): void;
20
- _isDeleted(event: E): boolean;
21
- _addEvent(event: E, duplicate?: E): void;
22
- _updateIndex<K>(m: Map<K, E[]>, k: K, e: E, duplicate?: E): void;
17
+ handleEVENT([event]: [TrustedEvent]): void;
18
+ handleCLOSE([subId]: [string]): void;
19
+ handleREQ([subId, ...filters]: [string, ...Filter[]]): void;
23
20
  }
21
+ export {};