@welshman/util 0.0.4 → 0.0.6
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/Address.cjs +40 -32
- package/build/Address.cjs.map +1 -1
- package/build/Address.d.ts +20 -18
- package/build/Address.mjs +38 -26
- package/build/Address.mjs.map +1 -1
- package/build/Events.cjs +29 -14
- package/build/Events.cjs.map +1 -1
- package/build/Events.d.ts +42 -15
- package/build/Events.mjs +15 -7
- package/build/Events.mjs.map +1 -1
- package/build/Filters.cjs +5 -5
- package/build/Filters.cjs.map +1 -1
- package/build/Filters.d.ts +4 -4
- package/build/Filters.mjs +5 -5
- package/build/Filters.mjs.map +1 -1
- package/build/Kinds.cjs +140 -78
- package/build/Kinds.cjs.map +1 -1
- package/build/Kinds.d.ts +137 -76
- package/build/Kinds.mjs +137 -77
- package/build/Kinds.mjs.map +1 -1
- package/build/Links.cjs +1 -1
- package/build/Links.cjs.map +1 -1
- package/build/Links.mjs +1 -1
- package/build/Links.mjs.map +1 -1
- package/build/Relay.cjs +51 -20
- package/build/Relay.cjs.map +1 -1
- package/build/Relay.d.ts +13 -5
- package/build/Relay.mjs +49 -20
- package/build/Relay.mjs.map +1 -1
- package/build/Repository.cjs +103 -94
- package/build/Repository.cjs.map +1 -1
- package/build/Repository.d.ts +33 -23
- package/build/Repository.mjs +107 -98
- package/build/Repository.mjs.map +1 -1
- package/build/Router.cjs +8 -9
- package/build/Router.cjs.map +1 -1
- package/build/Router.d.ts +12 -18
- package/build/Router.mjs +8 -9
- package/build/Router.mjs.map +1 -1
- package/build/Tags.cjs +6 -8
- package/build/Tags.cjs.map +1 -1
- package/build/Tags.d.ts +1 -3
- package/build/Tags.mjs +6 -8
- package/build/Tags.mjs.map +1 -1
- package/build/index.cjs +0 -1
- package/build/index.cjs.map +1 -1
- package/build/index.d.ts +0 -1
- package/build/index.mjs +0 -1
- package/package.json +2 -2
- package/build/Relays.cjs +0 -38
- package/build/Relays.cjs.map +0 -1
- package/build/Relays.d.ts +0 -8
- package/build/Relays.mjs +0 -33
- package/build/Relays.mjs.map +0 -1
package/build/Address.cjs
CHANGED
|
@@ -1,44 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isContextAddress = exports.isCommunityAddress = exports.isGroupAddress = exports.
|
|
3
|
+
exports.isContextAddress = exports.isCommunityAddress = exports.isGroupAddress = exports.getAddress = exports.Address = void 0;
|
|
4
4
|
const nostr_tools_1 = require("nostr-tools");
|
|
5
5
|
const Kinds_1 = require("./Kinds.cjs");
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
// Naddr encoding
|
|
15
|
-
const addressFromNaddr = (naddr) => {
|
|
16
|
-
let type;
|
|
17
|
-
let data = {};
|
|
18
|
-
try {
|
|
19
|
-
({ type, data } = nostr_tools_1.nip19.decode(naddr));
|
|
6
|
+
class Address {
|
|
7
|
+
constructor(kind, pubkey, identifier, relays = []) {
|
|
8
|
+
this.kind = kind;
|
|
9
|
+
this.pubkey = pubkey;
|
|
10
|
+
this.identifier = identifier;
|
|
11
|
+
this.relays = relays;
|
|
12
|
+
this.toString = () => [this.kind, this.pubkey, this.identifier].join(":");
|
|
13
|
+
this.toNaddr = () => nostr_tools_1.nip19.naddrEncode(this);
|
|
20
14
|
}
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
static isAddress(address) {
|
|
16
|
+
return Boolean(address.match(/^\d+:\w+:.*$/));
|
|
23
17
|
}
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
static from(address, relays = []) {
|
|
19
|
+
const [kind, pubkey, identifier = ""] = address.match(/^(\d+):(\w+):(.*)$/).slice(1);
|
|
20
|
+
return new Address(parseInt(kind), pubkey, identifier, relays);
|
|
26
21
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
22
|
+
static fromNaddr(naddr) {
|
|
23
|
+
let type;
|
|
24
|
+
let data = {};
|
|
25
|
+
try {
|
|
26
|
+
({ type, data } = nostr_tools_1.nip19.decode(naddr));
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
// pass
|
|
30
|
+
}
|
|
31
|
+
if (type !== "naddr") {
|
|
32
|
+
throw new Error(`Invalid naddr ${naddr}`);
|
|
33
|
+
}
|
|
34
|
+
return new Address(data.kind, data.pubkey, data.identifier, data.relays);
|
|
35
|
+
}
|
|
36
|
+
static fromEvent(event, relays = []) {
|
|
37
|
+
var _a;
|
|
38
|
+
const identifier = ((_a = event.tags.find(t => t[0] === "d")) === null || _a === void 0 ? void 0 : _a[1]) || "";
|
|
39
|
+
return new Address(event.kind, event.pubkey, identifier, relays);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.Address = Address;
|
|
37
43
|
// Utils
|
|
38
|
-
const
|
|
44
|
+
const getAddress = (e) => Address.fromEvent(e).toString();
|
|
45
|
+
exports.getAddress = getAddress;
|
|
46
|
+
const isGroupAddress = (a, ...args) => Address.from(a).kind === Kinds_1.GROUP;
|
|
39
47
|
exports.isGroupAddress = isGroupAddress;
|
|
40
|
-
const isCommunityAddress = (a) => a.kind === Kinds_1.
|
|
48
|
+
const isCommunityAddress = (a, ...args) => Address.from(a).kind === Kinds_1.COMMUNITY;
|
|
41
49
|
exports.isCommunityAddress = isCommunityAddress;
|
|
42
|
-
const isContextAddress = (a) => [Kinds_1.
|
|
50
|
+
const isContextAddress = (a, ...args) => [Kinds_1.GROUP, Kinds_1.COMMUNITY].includes(Address.from(a).kind);
|
|
43
51
|
exports.isContextAddress = isContextAddress;
|
|
44
52
|
//# sourceMappingURL=Address.cjs.map
|
package/build/Address.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Address.cjs","sourceRoot":"","sources":["../Address.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Address.cjs","sourceRoot":"","sources":["../Address.ts"],"names":[],"mappings":"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"}
|
package/build/Address.d.ts
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
export type Address = {
|
|
1
|
+
type AddressableEvent = {
|
|
3
2
|
kind: number;
|
|
4
3
|
pubkey: string;
|
|
5
|
-
|
|
6
|
-
relays: string[];
|
|
4
|
+
tags: string[][];
|
|
7
5
|
};
|
|
8
|
-
export declare
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export declare const
|
|
6
|
+
export declare class Address {
|
|
7
|
+
readonly kind: number;
|
|
8
|
+
readonly pubkey: string;
|
|
9
|
+
readonly identifier: string;
|
|
10
|
+
readonly relays: string[];
|
|
11
|
+
constructor(kind: number, pubkey: string, identifier: string, relays?: string[]);
|
|
12
|
+
static isAddress(address: string): boolean;
|
|
13
|
+
static from(address: string, relays?: string[]): Address;
|
|
14
|
+
static fromNaddr(naddr: string): Address;
|
|
15
|
+
static fromEvent(event: AddressableEvent, relays?: string[]): Address;
|
|
16
|
+
toString: () => string;
|
|
17
|
+
toNaddr: () => `naddr1${string}`;
|
|
18
|
+
}
|
|
19
|
+
export declare const getAddress: (e: AddressableEvent) => string;
|
|
20
|
+
export declare const isGroupAddress: (a: string, ...args: unknown[]) => boolean;
|
|
21
|
+
export declare const isCommunityAddress: (a: string, ...args: unknown[]) => boolean;
|
|
22
|
+
export declare const isContextAddress: (a: string, ...args: unknown[]) => boolean;
|
|
23
|
+
export {};
|
package/build/Address.mjs
CHANGED
|
@@ -1,32 +1,44 @@
|
|
|
1
1
|
import { nip19 } from 'nostr-tools';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
let type;
|
|
12
|
-
let data = {};
|
|
13
|
-
try {
|
|
14
|
-
({ type, data } = nip19.decode(naddr));
|
|
2
|
+
import { GROUP, COMMUNITY } from "./Kinds.mjs";
|
|
3
|
+
export class Address {
|
|
4
|
+
constructor(kind, pubkey, identifier, relays = []) {
|
|
5
|
+
this.kind = kind;
|
|
6
|
+
this.pubkey = pubkey;
|
|
7
|
+
this.identifier = identifier;
|
|
8
|
+
this.relays = relays;
|
|
9
|
+
this.toString = () => [this.kind, this.pubkey, this.identifier].join(":");
|
|
10
|
+
this.toNaddr = () => nip19.naddrEncode(this);
|
|
15
11
|
}
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
static isAddress(address) {
|
|
13
|
+
return Boolean(address.match(/^\d+:\w+:.*$/));
|
|
18
14
|
}
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
static from(address, relays = []) {
|
|
16
|
+
const [kind, pubkey, identifier = ""] = address.match(/^(\d+):(\w+):(.*)$/).slice(1);
|
|
17
|
+
return new Address(parseInt(kind), pubkey, identifier, relays);
|
|
21
18
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
static fromNaddr(naddr) {
|
|
20
|
+
let type;
|
|
21
|
+
let data = {};
|
|
22
|
+
try {
|
|
23
|
+
({ type, data } = nip19.decode(naddr));
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
// pass
|
|
27
|
+
}
|
|
28
|
+
if (type !== "naddr") {
|
|
29
|
+
throw new Error(`Invalid naddr ${naddr}`);
|
|
30
|
+
}
|
|
31
|
+
return new Address(data.kind, data.pubkey, data.identifier, data.relays);
|
|
32
|
+
}
|
|
33
|
+
static fromEvent(event, relays = []) {
|
|
34
|
+
var _a;
|
|
35
|
+
const identifier = ((_a = event.tags.find(t => t[0] === "d")) === null || _a === void 0 ? void 0 : _a[1]) || "";
|
|
36
|
+
return new Address(event.kind, event.pubkey, identifier, relays);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
28
39
|
// Utils
|
|
29
|
-
export const
|
|
30
|
-
export const
|
|
31
|
-
export const
|
|
40
|
+
export const getAddress = (e) => Address.fromEvent(e).toString();
|
|
41
|
+
export const isGroupAddress = (a, ...args) => Address.from(a).kind === GROUP;
|
|
42
|
+
export const isCommunityAddress = (a, ...args) => Address.from(a).kind === COMMUNITY;
|
|
43
|
+
export const isContextAddress = (a, ...args) => [GROUP, COMMUNITY].includes(Address.from(a).kind);
|
|
32
44
|
//# sourceMappingURL=Address.mjs.map
|
package/build/Address.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Address.mjs","sourceRoot":"","sources":["../Address.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Address.mjs","sourceRoot":"","sources":["../Address.ts"],"names":[],"mappings":"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"}
|
package/build/Events.cjs
CHANGED
|
@@ -1,26 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isChildOf = exports.isParameterizedReplaceable = exports.isPlainReplaceable = exports.isReplaceable = exports.isEphemeral = exports.getIdAndAddress = exports.getIdOrAddress = exports.
|
|
3
|
+
exports.isChildOf = exports.isParameterizedReplaceable = exports.isPlainReplaceable = exports.isReplaceable = exports.isEphemeral = exports.getIdAndAddress = exports.getIdOrAddress = exports.hasValidSignature = exports.asTrustedEvent = exports.asUnwrappedEvent = exports.asSignedEvent = exports.asHashedEvent = exports.asOwnedEvent = exports.asEventTemplate = exports.isTrustedEvent = exports.isUnwrappedEvent = exports.isSignedEvent = exports.isHashedEvent = exports.isOwnedEvent = exports.isEventTemplate = exports.createEvent = void 0;
|
|
4
4
|
const nostr_tools_1 = require("nostr-tools");
|
|
5
|
+
const nostr_tools_2 = require("nostr-tools");
|
|
5
6
|
const lib_1 = require("@welshman/lib");
|
|
6
7
|
const Tags_1 = require("./Tags.cjs");
|
|
7
8
|
const Address_1 = require("./Address.cjs");
|
|
8
9
|
const Kinds_1 = require("./Kinds.cjs");
|
|
9
10
|
const createEvent = (kind, { content = "", tags = [], created_at = (0, lib_1.now)() }) => ({ kind, content, tags, created_at });
|
|
10
11
|
exports.createEvent = createEvent;
|
|
11
|
-
const
|
|
12
|
+
const isEventTemplate = (e) => Boolean(typeof e.kind === "number" && e.tags && typeof e.content === "string" && e.created_at);
|
|
13
|
+
exports.isEventTemplate = isEventTemplate;
|
|
14
|
+
const isOwnedEvent = (e) => Boolean((0, exports.isEventTemplate)(e) && e.pubkey);
|
|
15
|
+
exports.isOwnedEvent = isOwnedEvent;
|
|
16
|
+
const isHashedEvent = (e) => Boolean((0, exports.isOwnedEvent)(e) && e.id);
|
|
17
|
+
exports.isHashedEvent = isHashedEvent;
|
|
18
|
+
const isSignedEvent = (e) => Boolean((0, exports.isHashedEvent)(e) && e.sig);
|
|
19
|
+
exports.isSignedEvent = isSignedEvent;
|
|
20
|
+
const isUnwrappedEvent = (e) => Boolean((0, exports.isHashedEvent)(e) && e.wrap);
|
|
21
|
+
exports.isUnwrappedEvent = isUnwrappedEvent;
|
|
22
|
+
const isTrustedEvent = (e) => (0, exports.isSignedEvent)(e) || (0, exports.isUnwrappedEvent)(e);
|
|
23
|
+
exports.isTrustedEvent = isTrustedEvent;
|
|
24
|
+
const asEventTemplate = (e) => (0, lib_1.pick)(['kind', 'tags', 'content', 'created_at'], e);
|
|
12
25
|
exports.asEventTemplate = asEventTemplate;
|
|
13
|
-
const
|
|
14
|
-
exports.
|
|
15
|
-
const
|
|
16
|
-
exports.
|
|
17
|
-
const
|
|
18
|
-
exports.
|
|
26
|
+
const asOwnedEvent = (e) => (0, lib_1.pick)(['kind', 'tags', 'content', 'created_at', 'pubkey'], e);
|
|
27
|
+
exports.asOwnedEvent = asOwnedEvent;
|
|
28
|
+
const asHashedEvent = (e) => (0, lib_1.pick)(['kind', 'tags', 'content', 'created_at', 'pubkey', 'id'], e);
|
|
29
|
+
exports.asHashedEvent = asHashedEvent;
|
|
30
|
+
const asSignedEvent = (e) => (0, lib_1.pick)(['kind', 'tags', 'content', 'created_at', 'pubkey', 'id', 'sig'], e);
|
|
31
|
+
exports.asSignedEvent = asSignedEvent;
|
|
32
|
+
const asUnwrappedEvent = (e) => (0, lib_1.pick)(['kind', 'tags', 'content', 'created_at', 'pubkey', 'id', 'wrap'], e);
|
|
33
|
+
exports.asUnwrappedEvent = asUnwrappedEvent;
|
|
34
|
+
const asTrustedEvent = (e) => (0, lib_1.pick)(['kind', 'tags', 'content', 'created_at', 'pubkey', 'id', 'sig', 'wrap'], e);
|
|
35
|
+
exports.asTrustedEvent = asTrustedEvent;
|
|
19
36
|
exports.hasValidSignature = (0, lib_1.cached)({
|
|
20
37
|
maxSize: 10000,
|
|
21
38
|
getKey: ([e]) => {
|
|
22
39
|
try {
|
|
23
|
-
return [(0,
|
|
40
|
+
return [(0, nostr_tools_2.getEventHash)(e), e.sig].join(":");
|
|
24
41
|
}
|
|
25
42
|
catch (err) {
|
|
26
43
|
return 'invalid';
|
|
@@ -28,18 +45,16 @@ exports.hasValidSignature = (0, lib_1.cached)({
|
|
|
28
45
|
},
|
|
29
46
|
getValue: ([e]) => {
|
|
30
47
|
try {
|
|
31
|
-
return (0,
|
|
48
|
+
return (0, nostr_tools_2.verifyEvent)(e);
|
|
32
49
|
}
|
|
33
50
|
catch (err) {
|
|
34
51
|
return false;
|
|
35
52
|
}
|
|
36
53
|
},
|
|
37
54
|
});
|
|
38
|
-
const
|
|
39
|
-
exports.getAddress = getAddress;
|
|
40
|
-
const getIdOrAddress = (e) => (0, exports.isReplaceable)(e) ? (0, exports.getAddress)(e) : e.id;
|
|
55
|
+
const getIdOrAddress = (e) => (0, exports.isReplaceable)(e) ? (0, Address_1.getAddress)(e) : e.id;
|
|
41
56
|
exports.getIdOrAddress = getIdOrAddress;
|
|
42
|
-
const getIdAndAddress = (e) => (0, exports.isReplaceable)(e) ? [e.id, (0,
|
|
57
|
+
const getIdAndAddress = (e) => (0, exports.isReplaceable)(e) ? [e.id, (0, Address_1.getAddress)(e)] : [e.id];
|
|
43
58
|
exports.getIdAndAddress = getIdAndAddress;
|
|
44
59
|
const isEphemeral = (e) => (0, Kinds_1.isEphemeralKind)(e.kind);
|
|
45
60
|
exports.isEphemeral = isEphemeral;
|
package/build/Events.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.cjs","sourceRoot":"","sources":["../Events.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Events.cjs","sourceRoot":"","sources":["../Events.ts"],"names":[],"mappings":"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"}
|
package/build/Events.d.ts
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
|
-
import
|
|
2
|
-
export type
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { verifiedSymbol } from 'nostr-tools';
|
|
2
|
+
export type EventTemplate = {
|
|
3
|
+
kind: number;
|
|
4
|
+
tags: string[][];
|
|
5
|
+
content: string;
|
|
6
|
+
created_at: number;
|
|
7
|
+
};
|
|
8
|
+
export type OwnedEvent = EventTemplate & {
|
|
9
|
+
pubkey: string;
|
|
10
|
+
};
|
|
11
|
+
export type HashedEvent = OwnedEvent & {
|
|
12
|
+
id: string;
|
|
13
|
+
};
|
|
14
|
+
export type SignedEvent = HashedEvent & {
|
|
15
|
+
sig: string;
|
|
16
|
+
[verifiedSymbol]?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export type UnwrappedEvent = HashedEvent & {
|
|
19
|
+
wrap: SignedEvent;
|
|
20
|
+
};
|
|
21
|
+
export type TrustedEvent = HashedEvent & {
|
|
22
|
+
sig?: string;
|
|
23
|
+
wrap?: SignedEvent;
|
|
24
|
+
[verifiedSymbol]?: boolean;
|
|
5
25
|
};
|
|
6
26
|
export type CreateEventOpts = {
|
|
7
27
|
content?: string;
|
|
@@ -14,21 +34,28 @@ export declare const createEvent: (kind: number, { content, tags, created_at }:
|
|
|
14
34
|
tags: string[][];
|
|
15
35
|
created_at: number;
|
|
16
36
|
};
|
|
17
|
-
export declare const
|
|
18
|
-
export declare const
|
|
19
|
-
export declare const
|
|
20
|
-
export declare const
|
|
37
|
+
export declare const isEventTemplate: (e: EventTemplate) => e is EventTemplate;
|
|
38
|
+
export declare const isOwnedEvent: (e: OwnedEvent) => e is OwnedEvent;
|
|
39
|
+
export declare const isHashedEvent: (e: HashedEvent) => e is HashedEvent;
|
|
40
|
+
export declare const isSignedEvent: (e: TrustedEvent) => e is SignedEvent;
|
|
41
|
+
export declare const isUnwrappedEvent: (e: TrustedEvent) => e is UnwrappedEvent;
|
|
42
|
+
export declare const isTrustedEvent: (e: TrustedEvent) => e is TrustedEvent;
|
|
43
|
+
export declare const asEventTemplate: (e: EventTemplate) => EventTemplate;
|
|
44
|
+
export declare const asOwnedEvent: (e: OwnedEvent) => OwnedEvent;
|
|
45
|
+
export declare const asHashedEvent: (e: HashedEvent) => HashedEvent;
|
|
46
|
+
export declare const asSignedEvent: (e: SignedEvent) => SignedEvent;
|
|
47
|
+
export declare const asUnwrappedEvent: (e: UnwrappedEvent) => UnwrappedEvent;
|
|
48
|
+
export declare const asTrustedEvent: (e: TrustedEvent) => TrustedEvent;
|
|
21
49
|
export declare const hasValidSignature: {
|
|
22
|
-
(args_0:
|
|
50
|
+
(args_0: SignedEvent): boolean;
|
|
23
51
|
cache: import("@welshman/lib").LRUCache<string, boolean>;
|
|
24
|
-
getKey: (args: [
|
|
25
|
-
getValue: (args: [
|
|
52
|
+
getKey: (args: [SignedEvent]) => string;
|
|
53
|
+
getValue: (args: [SignedEvent]) => boolean;
|
|
26
54
|
};
|
|
27
|
-
export declare const
|
|
28
|
-
export declare const
|
|
29
|
-
export declare const getIdAndAddress: (e: Rumor) => string[];
|
|
55
|
+
export declare const getIdOrAddress: (e: HashedEvent) => string;
|
|
56
|
+
export declare const getIdAndAddress: (e: HashedEvent) => string[];
|
|
30
57
|
export declare const isEphemeral: (e: EventTemplate) => boolean;
|
|
31
58
|
export declare const isReplaceable: (e: EventTemplate) => boolean;
|
|
32
59
|
export declare const isPlainReplaceable: (e: EventTemplate) => boolean;
|
|
33
60
|
export declare const isParameterizedReplaceable: (e: EventTemplate) => boolean;
|
|
34
|
-
export declare const isChildOf: (child: EventTemplate, parent:
|
|
61
|
+
export declare const isChildOf: (child: EventTemplate, parent: HashedEvent) => boolean;
|
package/build/Events.mjs
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
|
+
import { verifiedSymbol } from 'nostr-tools';
|
|
1
2
|
import { verifyEvent, getEventHash } from 'nostr-tools';
|
|
2
|
-
import { cached, now } from '@welshman/lib';
|
|
3
|
+
import { cached, pick, now } from '@welshman/lib';
|
|
3
4
|
import { Tags } from "./Tags.mjs";
|
|
4
|
-
import {
|
|
5
|
+
import { getAddress } from "./Address.mjs";
|
|
5
6
|
import { isEphemeralKind, isReplaceableKind, isPlainReplaceableKind, isParameterizedReplaceableKind } from "./Kinds.mjs";
|
|
6
7
|
export const createEvent = (kind, { content = "", tags = [], created_at = now() }) => ({ kind, content, tags, created_at });
|
|
7
|
-
export const
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
10
|
-
export const
|
|
8
|
+
export const isEventTemplate = (e) => Boolean(typeof e.kind === "number" && e.tags && typeof e.content === "string" && e.created_at);
|
|
9
|
+
export const isOwnedEvent = (e) => Boolean(isEventTemplate(e) && e.pubkey);
|
|
10
|
+
export const isHashedEvent = (e) => Boolean(isOwnedEvent(e) && e.id);
|
|
11
|
+
export const isSignedEvent = (e) => Boolean(isHashedEvent(e) && e.sig);
|
|
12
|
+
export const isUnwrappedEvent = (e) => Boolean(isHashedEvent(e) && e.wrap);
|
|
13
|
+
export const isTrustedEvent = (e) => isSignedEvent(e) || isUnwrappedEvent(e);
|
|
14
|
+
export const asEventTemplate = (e) => pick(['kind', 'tags', 'content', 'created_at'], e);
|
|
15
|
+
export const asOwnedEvent = (e) => pick(['kind', 'tags', 'content', 'created_at', 'pubkey'], e);
|
|
16
|
+
export const asHashedEvent = (e) => pick(['kind', 'tags', 'content', 'created_at', 'pubkey', 'id'], e);
|
|
17
|
+
export const asSignedEvent = (e) => pick(['kind', 'tags', 'content', 'created_at', 'pubkey', 'id', 'sig'], e);
|
|
18
|
+
export const asUnwrappedEvent = (e) => pick(['kind', 'tags', 'content', 'created_at', 'pubkey', 'id', 'wrap'], e);
|
|
19
|
+
export const asTrustedEvent = (e) => pick(['kind', 'tags', 'content', 'created_at', 'pubkey', 'id', 'sig', 'wrap'], e);
|
|
11
20
|
export const hasValidSignature = cached({
|
|
12
21
|
maxSize: 10000,
|
|
13
22
|
getKey: ([e]) => {
|
|
@@ -27,7 +36,6 @@ export const hasValidSignature = cached({
|
|
|
27
36
|
}
|
|
28
37
|
},
|
|
29
38
|
});
|
|
30
|
-
export const getAddress = (e) => encodeAddress(addressFromEvent(e));
|
|
31
39
|
export const getIdOrAddress = (e) => isReplaceable(e) ? getAddress(e) : e.id;
|
|
32
40
|
export const getIdAndAddress = (e) => isReplaceable(e) ? [e.id, getAddress(e)] : [e.id];
|
|
33
41
|
export const isEphemeral = (e) => isEphemeralKind(e.kind);
|
package/build/Events.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.mjs","sourceRoot":"","sources":["../Events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Events.mjs","sourceRoot":"","sources":["../Events.ts"],"names":[],"mappings":"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"}
|
package/build/Filters.cjs
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.guessFilterDelta = exports.getFilterGenerality = exports.getReplyFilters = exports.getIdFilters = exports.intersectFilters = exports.unionFilters = exports.calculateFilterGroup = exports.getFilterId = exports.matchFilters = exports.matchFilter = exports.EPOCH = void 0;
|
|
4
4
|
const nostr_tools_1 = require("nostr-tools");
|
|
5
5
|
const lib_1 = require("@welshman/lib");
|
|
6
|
-
const Address_1 = require("./Address.cjs");
|
|
7
6
|
const Kinds_1 = require("./Kinds.cjs");
|
|
7
|
+
const Address_1 = require("./Address.cjs");
|
|
8
8
|
exports.EPOCH = 1609459200;
|
|
9
9
|
const matchFilter = (filter, event) => {
|
|
10
10
|
if (!(0, nostr_tools_1.matchFilter)(filter, event)) {
|
|
@@ -59,7 +59,7 @@ const calculateFilterGroup = ({ since, until, limit, search, ...filter }) => {
|
|
|
59
59
|
exports.calculateFilterGroup = calculateFilterGroup;
|
|
60
60
|
const unionFilters = (filters) => {
|
|
61
61
|
const result = [];
|
|
62
|
-
for (const group of
|
|
62
|
+
for (const group of (0, lib_1.groupBy)(exports.calculateFilterGroup, filters).values()) {
|
|
63
63
|
const newFilter = {};
|
|
64
64
|
for (const k of Object.keys(group[0])) {
|
|
65
65
|
if (["since", "until", "limit", "search"].includes(k)) {
|
|
@@ -110,8 +110,8 @@ const getIdFilters = (idsOrAddresses) => {
|
|
|
110
110
|
const ids = [];
|
|
111
111
|
const aFilters = [];
|
|
112
112
|
for (const idOrAddress of idsOrAddresses) {
|
|
113
|
-
if (
|
|
114
|
-
const { kind, pubkey, identifier } =
|
|
113
|
+
if (Address_1.Address.isAddress(idOrAddress)) {
|
|
114
|
+
const { kind, pubkey, identifier } = Address_1.Address.from(idOrAddress);
|
|
115
115
|
if (identifier) {
|
|
116
116
|
aFilters.push({ kinds: [kind], authors: [pubkey], "#d": [identifier] });
|
|
117
117
|
}
|
|
@@ -136,7 +136,7 @@ const getReplyFilters = (events, filter) => {
|
|
|
136
136
|
for (const event of events) {
|
|
137
137
|
e.push(event.id);
|
|
138
138
|
if ((0, Kinds_1.isReplaceableKind)(event.kind)) {
|
|
139
|
-
a.push((0, Address_1.
|
|
139
|
+
a.push((0, Address_1.getAddress)(event));
|
|
140
140
|
}
|
|
141
141
|
if (event.wrap) {
|
|
142
142
|
e.push(event.wrap.id);
|
package/build/Filters.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.cjs","sourceRoot":"","sources":["../Filters.ts"],"names":[],"mappings":";;;AACA,6CAAgE;AAChE,uCAAsE;AAEtE,
|
|
1
|
+
{"version":3,"file":"Filters.cjs","sourceRoot":"","sources":["../Filters.ts"],"names":[],"mappings":"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"}
|
package/build/Filters.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HashedEvent, TrustedEvent } from './Events';
|
|
2
2
|
export declare const EPOCH = 1609459200;
|
|
3
3
|
export type Filter = {
|
|
4
4
|
ids?: string[];
|
|
@@ -10,14 +10,14 @@ export type Filter = {
|
|
|
10
10
|
search?: string;
|
|
11
11
|
[key: `#${string}`]: string[];
|
|
12
12
|
};
|
|
13
|
-
export declare const matchFilter: <E extends
|
|
14
|
-
export declare const matchFilters: <E extends
|
|
13
|
+
export declare const matchFilter: <E extends HashedEvent>(filter: Filter, event: E) => boolean;
|
|
14
|
+
export declare const matchFilters: <E extends HashedEvent>(filters: Filter[], event: E) => boolean;
|
|
15
15
|
export declare const getFilterId: (filter: Filter) => string;
|
|
16
16
|
export declare const calculateFilterGroup: ({ since, until, limit, search, ...filter }: Filter) => string;
|
|
17
17
|
export declare const unionFilters: (filters: Filter[]) => Filter[];
|
|
18
18
|
export declare const intersectFilters: (groups: Filter[][]) => Filter[];
|
|
19
19
|
export declare const getIdFilters: (idsOrAddresses: string[]) => Filter[];
|
|
20
|
-
export declare const getReplyFilters: (events:
|
|
20
|
+
export declare const getReplyFilters: (events: TrustedEvent[], filter: Filter) => ({
|
|
21
21
|
"#a": string[];
|
|
22
22
|
ids?: string[] | undefined;
|
|
23
23
|
kinds?: number[] | undefined;
|
package/build/Filters.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { matchFilter as nostrToolsMatchFilter } from 'nostr-tools';
|
|
2
2
|
import { prop, avg, hash, groupBy, randomId, uniq } from '@welshman/lib';
|
|
3
|
-
import { decodeAddress, addressFromEvent, encodeAddress } from "./Address.mjs";
|
|
4
3
|
import { isReplaceableKind } from "./Kinds.mjs";
|
|
4
|
+
import { Address, getAddress } from "./Address.mjs";
|
|
5
5
|
export const EPOCH = 1609459200;
|
|
6
6
|
export const matchFilter = (filter, event) => {
|
|
7
7
|
if (!nostrToolsMatchFilter(filter, event)) {
|
|
@@ -52,7 +52,7 @@ export const calculateFilterGroup = ({ since, until, limit, search, ...filter })
|
|
|
52
52
|
};
|
|
53
53
|
export const unionFilters = (filters) => {
|
|
54
54
|
const result = [];
|
|
55
|
-
for (const group of
|
|
55
|
+
for (const group of groupBy(calculateFilterGroup, filters).values()) {
|
|
56
56
|
const newFilter = {};
|
|
57
57
|
for (const k of Object.keys(group[0])) {
|
|
58
58
|
if (["since", "until", "limit", "search"].includes(k)) {
|
|
@@ -101,8 +101,8 @@ export const getIdFilters = (idsOrAddresses) => {
|
|
|
101
101
|
const ids = [];
|
|
102
102
|
const aFilters = [];
|
|
103
103
|
for (const idOrAddress of idsOrAddresses) {
|
|
104
|
-
if (
|
|
105
|
-
const { kind, pubkey, identifier } =
|
|
104
|
+
if (Address.isAddress(idOrAddress)) {
|
|
105
|
+
const { kind, pubkey, identifier } = Address.from(idOrAddress);
|
|
106
106
|
if (identifier) {
|
|
107
107
|
aFilters.push({ kinds: [kind], authors: [pubkey], "#d": [identifier] });
|
|
108
108
|
}
|
|
@@ -126,7 +126,7 @@ export const getReplyFilters = (events, filter) => {
|
|
|
126
126
|
for (const event of events) {
|
|
127
127
|
e.push(event.id);
|
|
128
128
|
if (isReplaceableKind(event.kind)) {
|
|
129
|
-
a.push(
|
|
129
|
+
a.push(getAddress(event));
|
|
130
130
|
}
|
|
131
131
|
if (event.wrap) {
|
|
132
132
|
e.push(event.wrap.id);
|