@welshman/util 0.0.25 → 0.0.27
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.
- package/build/src/Address.cjs +3 -3
- package/build/src/Address.cjs.map +1 -1
- package/build/src/Address.mjs +3 -3
- package/build/src/Address.mjs.map +1 -1
- package/build/src/Encryptable.cjs +35 -0
- package/build/src/Encryptable.cjs.map +1 -0
- package/build/src/Encryptable.d.ts +22 -0
- package/build/src/Encryptable.mjs +30 -0
- package/build/src/Encryptable.mjs.map +1 -0
- package/build/src/Events.cjs +8 -4
- package/build/src/Events.cjs.map +1 -1
- package/build/src/Events.d.ts +10 -4
- package/build/src/Events.mjs +5 -3
- package/build/src/Events.mjs.map +1 -1
- package/build/src/Filters.cjs.map +1 -1
- package/build/src/Filters.mjs.map +1 -1
- package/build/src/Handler.cjs +36 -0
- package/build/src/Handler.cjs.map +1 -0
- package/build/src/Handler.d.ts +16 -0
- package/build/src/Handler.mjs +29 -0
- package/build/src/Handler.mjs.map +1 -0
- package/build/src/List.cjs +40 -0
- package/build/src/List.cjs.map +1 -0
- package/build/src/List.d.ts +17 -0
- package/build/src/List.mjs +32 -0
- package/build/src/List.mjs.map +1 -0
- package/build/src/Profile.cjs +56 -0
- package/build/src/Profile.cjs.map +1 -0
- package/build/src/Profile.d.ts +31 -0
- package/build/src/Profile.mjs +45 -0
- package/build/src/Profile.mjs.map +1 -0
- package/build/src/Relay.cjs +26 -18
- package/build/src/Relay.cjs.map +1 -1
- package/build/src/Relay.d.ts +18 -4
- package/build/src/Relay.mjs +24 -18
- package/build/src/Relay.mjs.map +1 -1
- package/build/src/Repository.cjs.map +1 -1
- package/build/src/Repository.d.ts +17 -17
- package/build/src/Repository.mjs.map +1 -1
- package/build/src/Tags.cjs +65 -58
- package/build/src/Tags.cjs.map +1 -1
- package/build/src/Tags.d.ts +13 -6
- package/build/src/Tags.mjs +53 -56
- package/build/src/Tags.mjs.map +1 -1
- package/build/src/index.cjs +4 -0
- package/build/src/index.cjs.map +1 -1
- package/build/src/index.d.ts +4 -0
- package/build/src/index.mjs +4 -0
- package/package.json +3 -3
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.profileHasName = exports.displayProfile = exports.displayPubkey = exports.editProfile = exports.createProfile = exports.readProfile = exports.makeProfile = exports.isPublishedProfile = void 0;
|
|
4
|
+
const nostr_tools_1 = require("nostr-tools");
|
|
5
|
+
const lib_1 = require("@welshman/lib");
|
|
6
|
+
const Kinds_1 = require("./Kinds.cjs");
|
|
7
|
+
const isPublishedProfile = (profile) => Boolean(profile.event);
|
|
8
|
+
exports.isPublishedProfile = isPublishedProfile;
|
|
9
|
+
const makeProfile = (profile = {}) => ({
|
|
10
|
+
name: "",
|
|
11
|
+
nip05: "",
|
|
12
|
+
lud06: "",
|
|
13
|
+
lud16: "",
|
|
14
|
+
about: "",
|
|
15
|
+
banner: "",
|
|
16
|
+
picture: "",
|
|
17
|
+
website: "",
|
|
18
|
+
display_name: "",
|
|
19
|
+
...profile,
|
|
20
|
+
});
|
|
21
|
+
exports.makeProfile = makeProfile;
|
|
22
|
+
const readProfile = (event) => {
|
|
23
|
+
const profile = (0, lib_1.parseJson)(event.content) || {};
|
|
24
|
+
return { ...profile, event };
|
|
25
|
+
};
|
|
26
|
+
exports.readProfile = readProfile;
|
|
27
|
+
const createProfile = ({ event, ...profile }) => ({
|
|
28
|
+
kind: Kinds_1.PROFILE,
|
|
29
|
+
content: JSON.stringify(profile),
|
|
30
|
+
});
|
|
31
|
+
exports.createProfile = createProfile;
|
|
32
|
+
const editProfile = ({ event, ...profile }) => ({
|
|
33
|
+
kind: Kinds_1.PROFILE,
|
|
34
|
+
content: JSON.stringify(profile),
|
|
35
|
+
tags: event.tags,
|
|
36
|
+
});
|
|
37
|
+
exports.editProfile = editProfile;
|
|
38
|
+
const displayPubkey = (pubkey) => {
|
|
39
|
+
const d = nostr_tools_1.nip19.npubEncode(pubkey);
|
|
40
|
+
return d.slice(0, 8) + "…" + d.slice(-5);
|
|
41
|
+
};
|
|
42
|
+
exports.displayPubkey = displayPubkey;
|
|
43
|
+
const displayProfile = (profile, fallback = "") => {
|
|
44
|
+
const { display_name, name, event } = profile || {};
|
|
45
|
+
if (name)
|
|
46
|
+
return (0, lib_1.ellipsize)(name, 60);
|
|
47
|
+
if (display_name)
|
|
48
|
+
return (0, lib_1.ellipsize)(display_name, 60);
|
|
49
|
+
if (event)
|
|
50
|
+
return (0, exports.displayPubkey)(event.pubkey);
|
|
51
|
+
return fallback;
|
|
52
|
+
};
|
|
53
|
+
exports.displayProfile = displayProfile;
|
|
54
|
+
const profileHasName = (profile) => Boolean((profile === null || profile === void 0 ? void 0 : profile.name) || (profile === null || profile === void 0 ? void 0 : profile.display_name));
|
|
55
|
+
exports.profileHasName = profileHasName;
|
|
56
|
+
//# sourceMappingURL=Profile.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Profile.cjs","sourceRoot":"","sources":["../../src/Profile.ts"],"names":[],"mappings":";;;AAAA,6CAAiC;AACjC,uCAAkD;AAElD,uCAA+B;AAmBxB,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAA+B,EAAE,CAClF,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AADX,QAAA,kBAAkB,sBACP;AAEjB,MAAM,WAAW,GAAG,CAAC,UAA4B,EAAE,EAAW,EAAE,CAAC,CAAC;IACvE,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,EAAE;IAChB,GAAG,OAAO;CACX,CAAC,CAAA;AAXW,QAAA,WAAW,eAWtB;AAEK,MAAM,WAAW,GAAG,CAAC,KAAmB,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,IAAA,eAAS,EAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAE9C,OAAO,EAAC,GAAG,OAAO,EAAE,KAAK,EAAqB,CAAA;AAChD,CAAC,CAAA;AAJY,QAAA,WAAW,eAIvB;AAEM,MAAM,aAAa,GAAG,CAAC,EAAC,KAAK,EAAE,GAAG,OAAO,EAAU,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,EAAE,eAAO;IACb,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;CACjC,CAAC,CAAA;AAHW,QAAA,aAAa,iBAGxB;AAEK,MAAM,WAAW,GAAG,CAAC,EAAC,KAAK,EAAE,GAAG,OAAO,EAAmB,EAAE,EAAE,CAAC,CAAC;IACrE,IAAI,EAAE,eAAO;IACb,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAChC,IAAI,EAAE,KAAK,CAAC,IAAI;CACjB,CAAC,CAAA;AAJW,QAAA,WAAW,eAItB;AAEK,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;IAC9C,MAAM,CAAC,GAAG,mBAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAElC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AAJY,QAAA,aAAa,iBAIzB;AAEM,MAAM,cAAc,GAAG,CAAC,OAAiB,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE;IACjE,MAAM,EAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAC,GAAG,OAAO,IAAI,EAAE,CAAA;IAEjD,IAAI,IAAI;QAAE,OAAO,IAAA,eAAS,EAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACpC,IAAI,YAAY;QAAE,OAAO,IAAA,eAAS,EAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IACpD,IAAI,KAAK;QAAE,OAAO,IAAA,qBAAa,EAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE7C,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AARY,QAAA,cAAc,kBAQ1B;AAEM,MAAM,cAAc,GAAG,CAAC,OAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAA,CAAC,CAAA;AAAvF,QAAA,cAAc,kBAAyE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { TrustedEvent } from "./Events";
|
|
2
|
+
export type Profile = {
|
|
3
|
+
name?: string;
|
|
4
|
+
nip05?: string;
|
|
5
|
+
lud06?: string;
|
|
6
|
+
lud16?: string;
|
|
7
|
+
about?: string;
|
|
8
|
+
banner?: string;
|
|
9
|
+
picture?: string;
|
|
10
|
+
website?: string;
|
|
11
|
+
display_name?: string;
|
|
12
|
+
event?: TrustedEvent;
|
|
13
|
+
};
|
|
14
|
+
export type PublishedProfile = Omit<Profile, "event"> & {
|
|
15
|
+
event: TrustedEvent;
|
|
16
|
+
};
|
|
17
|
+
export declare const isPublishedProfile: (profile: Profile) => profile is PublishedProfile;
|
|
18
|
+
export declare const makeProfile: (profile?: Partial<Profile>) => Profile;
|
|
19
|
+
export declare const readProfile: (event: TrustedEvent) => PublishedProfile;
|
|
20
|
+
export declare const createProfile: ({ event, ...profile }: Profile) => {
|
|
21
|
+
kind: number;
|
|
22
|
+
content: string;
|
|
23
|
+
};
|
|
24
|
+
export declare const editProfile: ({ event, ...profile }: PublishedProfile) => {
|
|
25
|
+
kind: number;
|
|
26
|
+
content: string;
|
|
27
|
+
tags: string[][];
|
|
28
|
+
};
|
|
29
|
+
export declare const displayPubkey: (pubkey: string) => string;
|
|
30
|
+
export declare const displayProfile: (profile?: Profile, fallback?: string) => string;
|
|
31
|
+
export declare const profileHasName: (profile?: Profile) => boolean;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { nip19 } from "nostr-tools";
|
|
2
|
+
import { ellipsize, parseJson } from "@welshman/lib";
|
|
3
|
+
import { PROFILE } from "./Kinds.mjs";
|
|
4
|
+
export const isPublishedProfile = (profile) => Boolean(profile.event);
|
|
5
|
+
export const makeProfile = (profile = {}) => ({
|
|
6
|
+
name: "",
|
|
7
|
+
nip05: "",
|
|
8
|
+
lud06: "",
|
|
9
|
+
lud16: "",
|
|
10
|
+
about: "",
|
|
11
|
+
banner: "",
|
|
12
|
+
picture: "",
|
|
13
|
+
website: "",
|
|
14
|
+
display_name: "",
|
|
15
|
+
...profile,
|
|
16
|
+
});
|
|
17
|
+
export const readProfile = (event) => {
|
|
18
|
+
const profile = parseJson(event.content) || {};
|
|
19
|
+
return { ...profile, event };
|
|
20
|
+
};
|
|
21
|
+
export const createProfile = ({ event, ...profile }) => ({
|
|
22
|
+
kind: PROFILE,
|
|
23
|
+
content: JSON.stringify(profile),
|
|
24
|
+
});
|
|
25
|
+
export const editProfile = ({ event, ...profile }) => ({
|
|
26
|
+
kind: PROFILE,
|
|
27
|
+
content: JSON.stringify(profile),
|
|
28
|
+
tags: event.tags,
|
|
29
|
+
});
|
|
30
|
+
export const displayPubkey = (pubkey) => {
|
|
31
|
+
const d = nip19.npubEncode(pubkey);
|
|
32
|
+
return d.slice(0, 8) + "…" + d.slice(-5);
|
|
33
|
+
};
|
|
34
|
+
export const displayProfile = (profile, fallback = "") => {
|
|
35
|
+
const { display_name, name, event } = profile || {};
|
|
36
|
+
if (name)
|
|
37
|
+
return ellipsize(name, 60);
|
|
38
|
+
if (display_name)
|
|
39
|
+
return ellipsize(display_name, 60);
|
|
40
|
+
if (event)
|
|
41
|
+
return displayPubkey(event.pubkey);
|
|
42
|
+
return fallback;
|
|
43
|
+
};
|
|
44
|
+
export const profileHasName = (profile) => Boolean((profile === null || profile === void 0 ? void 0 : profile.name) || (profile === null || profile === void 0 ? void 0 : profile.display_name));
|
|
45
|
+
//# sourceMappingURL=Profile.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Profile.mjs","sourceRoot":"","sources":["../../src/Profile.ts"],"names":[],"mappings":"OAAO,EAAC,KAAK,EAAC,MAAM,aAAa;OAC1B,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,eAAe;OAE3C,EAAC,OAAO,EAAC;AAmBhB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAA+B,EAAE,CAClF,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAA4B,EAAE,EAAW,EAAE,CAAC,CAAC;IACvE,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,EAAE;IAChB,GAAG,OAAO;CACX,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAmB,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAE9C,OAAO,EAAC,GAAG,OAAO,EAAE,KAAK,EAAqB,CAAA;AAChD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAC,KAAK,EAAE,GAAG,OAAO,EAAU,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;CACjC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAC,KAAK,EAAE,GAAG,OAAO,EAAmB,EAAE,EAAE,CAAC,CAAC;IACrE,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAChC,IAAI,EAAE,KAAK,CAAC,IAAI;CACjB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;IAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAElC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAiB,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE;IACjE,MAAM,EAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAC,GAAG,OAAO,IAAI,EAAE,CAAA;IAEjD,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACpC,IAAI,YAAY;QAAE,OAAO,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IACpD,IAAI,KAAK;QAAE,OAAO,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE7C,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAA,CAAC,CAAA"}
|
package/build/src/Relay.cjs
CHANGED
|
@@ -1,28 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Relay = exports.normalizeRelayUrl = exports.isShareableRelayUrl = exports.BOGUS_RELAY_URL = exports.LOCAL_RELAY_URL = void 0;
|
|
3
|
+
exports.Relay = exports.displayRelayUrl = exports.normalizeRelayUrl = exports.isShareableRelayUrl = exports.isRelayUrl = 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
|
+
// Constants and types
|
|
6
7
|
exports.LOCAL_RELAY_URL = "local://welshman.relay";
|
|
7
8
|
exports.BOGUS_RELAY_URL = "bogus://welshman.relay";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
// Don't match stuff with a port number
|
|
18
|
-
!url.slice(6).match(/:\d+/) &&
|
|
19
|
-
// Don't match stuff with a numeric tld
|
|
20
|
-
!url.slice(6).match(/\.\d+\b/) &&
|
|
21
|
-
// Don't match raw ip addresses
|
|
22
|
-
!url.slice(6).match(/\d+\.\d+\.\d+\.\d+/) &&
|
|
23
|
-
// Skip nostr.wine's virtual relays
|
|
24
|
-
!url.slice(6).match(/\/npub/));
|
|
9
|
+
// Utils related to bare urls
|
|
10
|
+
const isRelayUrl = (url) => {
|
|
11
|
+
try {
|
|
12
|
+
new URL(url);
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
25
18
|
};
|
|
19
|
+
exports.isRelayUrl = isRelayUrl;
|
|
20
|
+
const isShareableRelayUrl = (url) => Boolean((0, exports.isRelayUrl)(url) &&
|
|
21
|
+
// Is it actually a websocket url and has a dot
|
|
22
|
+
url.match(/^wss:\/\/.+\..+/) &&
|
|
23
|
+
// Don't match stuff with a port number
|
|
24
|
+
!url.slice(6).match(/:\d+/) &&
|
|
25
|
+
// Don't match stuff with a numeric tld
|
|
26
|
+
!url.slice(6).match(/\.\d+\b/) &&
|
|
27
|
+
// Don't match raw ip addresses
|
|
28
|
+
!url.slice(6).match(/\d+\.\d+\.\d+\.\d+/) &&
|
|
29
|
+
// Skip nostr.wine's virtual relays
|
|
30
|
+
!url.slice(6).match(/\/npub/));
|
|
26
31
|
exports.isShareableRelayUrl = isShareableRelayUrl;
|
|
27
32
|
const normalizeRelayUrl = (url, { allowInsecure = false } = {}) => {
|
|
28
33
|
var _a;
|
|
@@ -38,6 +43,9 @@ const normalizeRelayUrl = (url, { allowInsecure = false } = {}) => {
|
|
|
38
43
|
return prefix + url;
|
|
39
44
|
};
|
|
40
45
|
exports.normalizeRelayUrl = normalizeRelayUrl;
|
|
46
|
+
const displayRelayUrl = (url) => (0, lib_1.last)(url.split("://")).replace(/\/$/, "");
|
|
47
|
+
exports.displayRelayUrl = displayRelayUrl;
|
|
48
|
+
// In-memory relay implementation backed by Repository
|
|
41
49
|
class Relay extends lib_1.Emitter {
|
|
42
50
|
constructor(repository) {
|
|
43
51
|
super();
|
package/build/src/Relay.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Relay.cjs","sourceRoot":"","sources":["../../src/Relay.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Relay.cjs","sourceRoot":"","sources":["../../src/Relay.ts"],"names":[],"mappings":";;;AAAA,uCAA+E;AAC/E,2CAAsC;AAKtC,sBAAsB;AAET,QAAA,eAAe,GAAG,wBAAwB,CAAA;AAE1C,QAAA,eAAe,GAAG,wBAAwB,CAAA;AAevD,6BAA6B;AAEtB,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;IACxC,IAAI;QACF,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAA;KACb;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AARY,QAAA,UAAU,cAQtB;AAEM,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,EAAE,CACjD,OAAO,CACL,IAAA,kBAAU,EAAC,GAAG,CAAC;IACf,+CAA+C;IAC/C,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAC5B,uCAAuC;IACvC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,uCAAuC;IACvC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,+BAA+B;IAC/B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IACzC,mCAAmC;IACnC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC9B,CAAA;AAbU,QAAA,mBAAmB,uBAa7B;AAMI,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAC,aAAa,GAAG,KAAK,KAA2B,EAAE,EAAE,EAAE;;IACpG,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA,MAAA,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,0CAAG,CAAC,CAAC,KAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;IAElF,+BAA+B;IAC/B,GAAG,GAAG,IAAA,kBAAY,EAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAC,CAAC,CAAA;IAEtE,qDAAqD;IACrD,GAAG,GAAG,IAAA,mBAAa,EAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IAEtC,+DAA+D;IAC/D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACtB,GAAG,IAAI,GAAG,CAAA;KACX;IAED,OAAO,MAAM,GAAG,GAAG,CAAA;AACrB,CAAC,CAAA;AAfY,QAAA,iBAAiB,qBAe7B;AAEM,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAA,UAAI,EAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAA5E,QAAA,eAAe,mBAA6D;AAEzF,sDAAsD;AAEtD,MAAa,KAAM,SAAQ,aAAO;IAGhC,YAAqB,UAAsB;QACzC,KAAK,EAAE,CAAA;QADY,eAAU,GAAV,UAAU,CAAY;QAF3C,SAAI,GAAG,IAAI,GAAG,EAAoB,CAAA;IAIlC,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,GAAG,OAAc;QAClC,QAAO,IAAI,EAAE;YACX,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAyB,CAAC,CAAA;YAChE,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAmB,CAAC,CAAA;YAC1D,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAgC,CAAC,CAAA;SACpE;IACH,CAAC;IAED,WAAW,CAAC,CAAC,KAAK,CAAiB;QACjC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAE9B,wCAAwC;QACxC,IAAA,WAAK,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;YAEnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBACrC,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;oBAClD,IAAI,IAAA,sBAAY,EAAC,OAAO,EAAE,KAAK,CAAC,EAAE;wBAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;qBACjC;iBACF;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,WAAW,CAAC,CAAC,KAAK,CAAW;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,CAAwB;QAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAE7B,wCAAwC;QACxC,IAAA,WAAK,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACjB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBAClD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;aACjC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAhDD,sBAgDC"}
|
package/build/src/Relay.d.ts
CHANGED
|
@@ -4,17 +4,31 @@ import type { Filter } from './Filters';
|
|
|
4
4
|
import type { TrustedEvent } from './Events';
|
|
5
5
|
export declare const LOCAL_RELAY_URL = "local://welshman.relay";
|
|
6
6
|
export declare const BOGUS_RELAY_URL = "bogus://welshman.relay";
|
|
7
|
+
export type RelayProfile = {
|
|
8
|
+
url: string;
|
|
9
|
+
name?: string;
|
|
10
|
+
pubkey?: string;
|
|
11
|
+
contact?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
supported_nips?: number[];
|
|
14
|
+
limitation?: {
|
|
15
|
+
payment_required?: boolean;
|
|
16
|
+
auth_required?: boolean;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare const isRelayUrl: (url: string) => boolean;
|
|
7
20
|
export declare const isShareableRelayUrl: (url: string) => boolean;
|
|
8
21
|
type NormalizeRelayUrlOpts = {
|
|
9
22
|
allowInsecure?: boolean;
|
|
10
23
|
};
|
|
11
24
|
export declare const normalizeRelayUrl: (url: string, { allowInsecure }?: NormalizeRelayUrlOpts) => string;
|
|
12
|
-
export declare
|
|
13
|
-
|
|
25
|
+
export declare const displayRelayUrl: (url: string) => string;
|
|
26
|
+
export declare class Relay extends Emitter {
|
|
27
|
+
readonly repository: Repository;
|
|
14
28
|
subs: Map<string, Filter[]>;
|
|
15
|
-
constructor(repository: Repository
|
|
29
|
+
constructor(repository: Repository);
|
|
16
30
|
send(type: string, ...message: any[]): void;
|
|
17
|
-
handleEVENT([event]: [
|
|
31
|
+
handleEVENT([event]: [TrustedEvent]): void;
|
|
18
32
|
handleCLOSE([subId]: [string]): void;
|
|
19
33
|
handleREQ([subId, ...filters]: [string, ...Filter[]]): void;
|
|
20
34
|
}
|
package/build/src/Relay.mjs
CHANGED
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
import { Emitter, normalizeUrl, sleep, stripProtocol } from '@welshman/lib';
|
|
1
|
+
import { last, Emitter, normalizeUrl, sleep, stripProtocol } from '@welshman/lib';
|
|
2
2
|
import { matchFilters } from "./Filters.mjs";
|
|
3
|
+
// Constants and types
|
|
3
4
|
export const LOCAL_RELAY_URL = "local://welshman.relay";
|
|
4
5
|
export const BOGUS_RELAY_URL = "bogus://welshman.relay";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
// Don't match stuff with a port number
|
|
15
|
-
!url.slice(6).match(/:\d+/) &&
|
|
16
|
-
// Don't match stuff with a numeric tld
|
|
17
|
-
!url.slice(6).match(/\.\d+\b/) &&
|
|
18
|
-
// Don't match raw ip addresses
|
|
19
|
-
!url.slice(6).match(/\d+\.\d+\.\d+\.\d+/) &&
|
|
20
|
-
// Skip nostr.wine's virtual relays
|
|
21
|
-
!url.slice(6).match(/\/npub/));
|
|
6
|
+
// Utils related to bare urls
|
|
7
|
+
export const isRelayUrl = (url) => {
|
|
8
|
+
try {
|
|
9
|
+
new URL(url);
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
22
15
|
};
|
|
16
|
+
export const isShareableRelayUrl = (url) => Boolean(isRelayUrl(url) &&
|
|
17
|
+
// Is it actually a websocket url and has a dot
|
|
18
|
+
url.match(/^wss:\/\/.+\..+/) &&
|
|
19
|
+
// Don't match stuff with a port number
|
|
20
|
+
!url.slice(6).match(/:\d+/) &&
|
|
21
|
+
// Don't match stuff with a numeric tld
|
|
22
|
+
!url.slice(6).match(/\.\d+\b/) &&
|
|
23
|
+
// Don't match raw ip addresses
|
|
24
|
+
!url.slice(6).match(/\d+\.\d+\.\d+\.\d+/) &&
|
|
25
|
+
// Skip nostr.wine's virtual relays
|
|
26
|
+
!url.slice(6).match(/\/npub/));
|
|
23
27
|
export const normalizeRelayUrl = (url, { allowInsecure = false } = {}) => {
|
|
24
28
|
var _a;
|
|
25
29
|
const prefix = allowInsecure ? ((_a = url.match(/^wss?:\/\//)) === null || _a === void 0 ? void 0 : _a[0]) || "wss://" : "wss://";
|
|
@@ -33,6 +37,8 @@ export const normalizeRelayUrl = (url, { allowInsecure = false } = {}) => {
|
|
|
33
37
|
}
|
|
34
38
|
return prefix + url;
|
|
35
39
|
};
|
|
40
|
+
export const displayRelayUrl = (url) => last(url.split("://")).replace(/\/$/, "");
|
|
41
|
+
// In-memory relay implementation backed by Repository
|
|
36
42
|
export class Relay extends Emitter {
|
|
37
43
|
constructor(repository) {
|
|
38
44
|
super();
|
package/build/src/Relay.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Relay.mjs","sourceRoot":"","sources":["../../src/Relay.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAC,MAAM,eAAe;
|
|
1
|
+
{"version":3,"file":"Relay.mjs","sourceRoot":"","sources":["../../src/Relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Repository.cjs","sourceRoot":"","sources":["../../src/Repository.ts"],"names":[],"mappings":";;;AAAA,uCAA2G;AAC3G,uCAA8B;AAC9B,2CAA4C;AAC5C,yCAAsD;AACtD,2CAAoC;AAIvB,QAAA,GAAG,GAAG,KAAK,CAAA;AAExB,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,WAAG,CAAC,CAAA;AAEnD,MAAa,
|
|
1
|
+
{"version":3,"file":"Repository.cjs","sourceRoot":"","sources":["../../src/Repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,27 +2,27 @@ import { Emitter } from '@welshman/lib';
|
|
|
2
2
|
import type { Filter } from './Filters';
|
|
3
3
|
import type { TrustedEvent } from './Events';
|
|
4
4
|
export declare const DAY = 86400;
|
|
5
|
-
export declare class Repository
|
|
6
|
-
eventsById: Map<string,
|
|
7
|
-
eventsByWrap: Map<string,
|
|
8
|
-
eventsByAddress: Map<string,
|
|
9
|
-
eventsByTag: Map<string,
|
|
10
|
-
eventsByDay: Map<number,
|
|
11
|
-
eventsByAuthor: Map<string,
|
|
5
|
+
export declare class Repository extends Emitter {
|
|
6
|
+
eventsById: Map<string, TrustedEvent>;
|
|
7
|
+
eventsByWrap: Map<string, TrustedEvent>;
|
|
8
|
+
eventsByAddress: Map<string, TrustedEvent>;
|
|
9
|
+
eventsByTag: Map<string, TrustedEvent[]>;
|
|
10
|
+
eventsByDay: Map<number, TrustedEvent[]>;
|
|
11
|
+
eventsByAuthor: Map<string, TrustedEvent[]>;
|
|
12
12
|
deletes: Map<string, number>;
|
|
13
|
-
dump: () =>
|
|
14
|
-
load: (events:
|
|
13
|
+
dump: () => TrustedEvent[];
|
|
14
|
+
load: (events: TrustedEvent[], chunkSize?: number) => Promise<void>;
|
|
15
15
|
clear: () => void;
|
|
16
|
-
getEvent: (idOrAddress: string) =>
|
|
17
|
-
hasEvent: (event:
|
|
16
|
+
getEvent: (idOrAddress: string) => TrustedEvent | undefined;
|
|
17
|
+
hasEvent: (event: TrustedEvent) => boolean | undefined;
|
|
18
18
|
query: (filters: Filter[], { includeDeleted }?: {
|
|
19
19
|
includeDeleted?: boolean | undefined;
|
|
20
|
-
}) =>
|
|
21
|
-
publish: (event:
|
|
20
|
+
}) => TrustedEvent[];
|
|
21
|
+
publish: (event: TrustedEvent, { shouldNotify }?: {
|
|
22
22
|
shouldNotify?: boolean | undefined;
|
|
23
23
|
}) => boolean;
|
|
24
|
-
isDeletedByAddress: (event:
|
|
25
|
-
isDeletedById: (event:
|
|
26
|
-
isDeleted: (event:
|
|
27
|
-
_updateIndex<K>(m: Map<K,
|
|
24
|
+
isDeletedByAddress: (event: TrustedEvent) => boolean;
|
|
25
|
+
isDeletedById: (event: TrustedEvent) => boolean;
|
|
26
|
+
isDeleted: (event: TrustedEvent) => boolean;
|
|
27
|
+
_updateIndex<K>(m: Map<K, TrustedEvent[]>, k: K, e: TrustedEvent, duplicate?: TrustedEvent): void;
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Repository.mjs","sourceRoot":"","sources":["../../src/Repository.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAC,MAAM,eAAe;OACpG,EAAC,MAAM,EAAC;OACR,EAAC,KAAK,EAAE,WAAW,EAAC;OACpB,EAAC,aAAa,EAAE,cAAc,EAAC;OAC/B,EAAC,UAAU,EAAC;AAInB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAA;AAExB,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,CAAA;AAEnD,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Repository.mjs","sourceRoot":"","sources":["../../src/Repository.ts"],"names":[],"mappings":"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"}
|
package/build/src/Tags.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getAncestorTags = exports.getKindTagValues = exports.getKindTags = exports.getGroupTagValues = exports.getGroupTags = exports.getRelayTagValues = exports.getRelayTags = exports.getPubkeyTagValues = exports.getPubkeyTags = exports.getContextTagValues = exports.getAddressTagValues = exports.getAddressTags = exports.getEventTagValues = exports.getEventTags = exports.Tags = exports.Tag = void 0;
|
|
4
4
|
const lib_1 = require("@welshman/lib");
|
|
5
5
|
const Relay_1 = require("./Relay.cjs");
|
|
6
6
|
const Address_1 = require("./Address.cjs");
|
|
@@ -40,43 +40,10 @@ class Tags extends lib_1.Fluent {
|
|
|
40
40
|
this.keys = () => this.mapTo(t => t.key());
|
|
41
41
|
this.values = (key) => (key ? this.filterByKey((0, lib_1.ensurePlural)(key)) : this).mapTo(t => t.value());
|
|
42
42
|
this.entries = () => this.mapTo(t => t.entry());
|
|
43
|
-
this.relays = () => this.flatMap((t) => t.valueOf().filter(Relay_1.
|
|
43
|
+
this.relays = () => this.flatMap((t) => t.valueOf().filter(Relay_1.isRelayUrl).map(url => (0, Relay_1.normalizeRelayUrl)(url))).uniq();
|
|
44
44
|
this.topics = () => this.whereKey("t").values().map((t) => t.replace(/^#/, ""));
|
|
45
45
|
this.ancestors = (x) => {
|
|
46
|
-
const
|
|
47
|
-
const mentionTags = tags.whereKey("q");
|
|
48
|
-
const roots = [];
|
|
49
|
-
const replies = [];
|
|
50
|
-
const mentions = [];
|
|
51
|
-
const dispatchTags = (thisTags) => thisTags.forEach((t, i) => {
|
|
52
|
-
if (t.nth(3) === 'root') {
|
|
53
|
-
if (tags.filter(t => t.nth(3) === "reply").count() === 0) {
|
|
54
|
-
replies.push(t.valueOf());
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
roots.push(t.valueOf());
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
else if (t.nth(3) === 'reply') {
|
|
61
|
-
replies.push(t.valueOf());
|
|
62
|
-
}
|
|
63
|
-
else if (t.nth(3) === 'mention') {
|
|
64
|
-
mentions.push(t.valueOf());
|
|
65
|
-
}
|
|
66
|
-
else if (i === thisTags.count() - 1) {
|
|
67
|
-
replies.push(t.valueOf());
|
|
68
|
-
}
|
|
69
|
-
else if (i === 0) {
|
|
70
|
-
roots.push(t.valueOf());
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
mentions.push(t.valueOf());
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
// Add different types separately so positional logic works
|
|
77
|
-
dispatchTags(tags.whereKey("e"));
|
|
78
|
-
dispatchTags(tags.whereKey("a").filter(t => Boolean(t.nth(3))));
|
|
79
|
-
mentionTags.forEach((t) => mentions.push(t.valueOf()));
|
|
46
|
+
const { roots, replies, mentions } = (0, exports.getAncestorTags)(this.unwrap());
|
|
80
47
|
return {
|
|
81
48
|
roots: Tags.wrap(roots),
|
|
82
49
|
replies: Tags.wrap(replies),
|
|
@@ -146,28 +113,68 @@ Tags.fromEvent = (event) => Tags.wrap(event.tags || []);
|
|
|
146
113
|
Tags.fromEvents = (events) => Tags.wrap(events.flatMap(e => e.tags || []));
|
|
147
114
|
Tags.fromIMeta = (imeta) => Tags.wrap(imeta.map((m) => m.split(" ")));
|
|
148
115
|
// New, simpler version
|
|
149
|
-
const
|
|
150
|
-
exports.
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
exports.
|
|
156
|
-
|
|
157
|
-
const _getTagValues = (0, exports.getTagValues)(types, testValue);
|
|
158
|
-
return (tags) => _getTagValues(tags)[0];
|
|
159
|
-
};
|
|
160
|
-
exports.getTagValue = getTagValue;
|
|
161
|
-
exports.getEventTags = (0, exports.getTags)(["e"], id => id.length === 64);
|
|
162
|
-
exports.getEventTagValues = (0, exports.getTagValues)(["e"], id => id.length === 64);
|
|
163
|
-
exports.getAddressTags = (0, exports.getTags)(["a"], Address_1.Address.isAddress);
|
|
164
|
-
exports.getAddressTagValues = (0, exports.getTagValues)(["a"], Address_1.Address.isAddress);
|
|
116
|
+
const getEventTags = (tags) => tags.filter(t => ["e"].includes(t[0]) && t[1].length === 64);
|
|
117
|
+
exports.getEventTags = getEventTags;
|
|
118
|
+
const getEventTagValues = (tags) => (0, exports.getEventTags)(tags).map((0, lib_1.nth)(1));
|
|
119
|
+
exports.getEventTagValues = getEventTagValues;
|
|
120
|
+
const getAddressTags = (tags) => tags.filter(t => ["a"].includes(t[0]) && Address_1.Address.isAddress(t[1]));
|
|
121
|
+
exports.getAddressTags = getAddressTags;
|
|
122
|
+
const getAddressTagValues = (tags) => (0, exports.getAddressTags)(tags).map((0, lib_1.nth)(1));
|
|
123
|
+
exports.getAddressTagValues = getAddressTagValues;
|
|
165
124
|
const getContextTagValues = (tags) => (0, exports.getAddressTagValues)(tags).filter(Address_1.isContextAddress);
|
|
166
125
|
exports.getContextTagValues = getContextTagValues;
|
|
167
|
-
|
|
168
|
-
exports.
|
|
169
|
-
|
|
170
|
-
exports.
|
|
171
|
-
|
|
172
|
-
exports.
|
|
126
|
+
const getPubkeyTags = (tags) => tags.filter(t => ["p"].includes(t[0]) && t[1].length === 64);
|
|
127
|
+
exports.getPubkeyTags = getPubkeyTags;
|
|
128
|
+
const getPubkeyTagValues = (tags) => (0, exports.getPubkeyTags)(tags).map((0, lib_1.nth)(1));
|
|
129
|
+
exports.getPubkeyTagValues = getPubkeyTagValues;
|
|
130
|
+
const getRelayTags = (tags) => tags.filter(t => ["r", "relay"].includes(t[0]) && (0, Relay_1.isRelayUrl)(t[1]));
|
|
131
|
+
exports.getRelayTags = getRelayTags;
|
|
132
|
+
const getRelayTagValues = (tags) => (0, exports.getRelayTags)(tags).map((0, lib_1.nth)(1));
|
|
133
|
+
exports.getRelayTagValues = getRelayTagValues;
|
|
134
|
+
const getGroupTags = (tags) => tags.filter(t => ["h", "group"].includes(t[0]) && t[1] && (0, Relay_1.isRelayUrl)(t[2]));
|
|
135
|
+
exports.getGroupTags = getGroupTags;
|
|
136
|
+
const getGroupTagValues = (tags) => (0, exports.getGroupTags)(tags).map((0, lib_1.nth)(1));
|
|
137
|
+
exports.getGroupTagValues = getGroupTagValues;
|
|
138
|
+
const getKindTags = (tags) => tags.filter(t => ["k"].includes(t[0]) && t[1].match(/^\d+$/));
|
|
139
|
+
exports.getKindTags = getKindTags;
|
|
140
|
+
const getKindTagValues = (tags) => (0, exports.getKindTags)(tags).map(t => parseInt(t[1]));
|
|
141
|
+
exports.getKindTagValues = getKindTagValues;
|
|
142
|
+
const getAncestorTags = (tags) => {
|
|
143
|
+
const validTags = tags.filter(t => ["a", "e", "q"].includes(t[0]) && !(0, Address_1.isContextAddress)(t[1]));
|
|
144
|
+
const mentionTags = validTags.filter((0, lib_1.nthEq)(0, "q"));
|
|
145
|
+
const roots = [];
|
|
146
|
+
const replies = [];
|
|
147
|
+
const mentions = [];
|
|
148
|
+
const dispatchTags = (thisTags) => thisTags.forEach((t, i) => {
|
|
149
|
+
if (t[3] === 'root') {
|
|
150
|
+
if (validTags.filter((0, lib_1.nthEq)(3, "reply")).length === 0) {
|
|
151
|
+
replies.push(t);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
roots.push(t);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else if (t[3] === 'reply') {
|
|
158
|
+
replies.push(t);
|
|
159
|
+
}
|
|
160
|
+
else if (t[3] === 'mention') {
|
|
161
|
+
mentions.push(t);
|
|
162
|
+
}
|
|
163
|
+
else if (i === thisTags.length - 1) {
|
|
164
|
+
replies.push(t);
|
|
165
|
+
}
|
|
166
|
+
else if (i === 0) {
|
|
167
|
+
roots.push(t);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
mentions.push(t);
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
// Add different types separately so positional logic works
|
|
174
|
+
dispatchTags(validTags.filter((0, lib_1.nthEq)(0, "e")));
|
|
175
|
+
dispatchTags(validTags.filter((0, lib_1.nthEq)(0, "a")).filter(t => Boolean(t[3])));
|
|
176
|
+
mentionTags.forEach((t) => mentions.push(t));
|
|
177
|
+
return { roots, replies, mentions };
|
|
178
|
+
};
|
|
179
|
+
exports.getAncestorTags = getAncestorTags;
|
|
173
180
|
//# sourceMappingURL=Tags.cjs.map
|