@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.
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 +5 -5
  12. package/build/Filters.cjs.map +1 -1
  13. package/build/Filters.d.ts +4 -4
  14. package/build/Filters.mjs +5 -5
  15. package/build/Filters.mjs.map +1 -1
  16. package/build/Kinds.cjs +140 -78
  17. package/build/Kinds.cjs.map +1 -1
  18. package/build/Kinds.d.ts +137 -76
  19. package/build/Kinds.mjs +137 -77
  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 +51 -20
  26. package/build/Relay.cjs.map +1 -1
  27. package/build/Relay.d.ts +13 -5
  28. package/build/Relay.mjs +49 -20
  29. package/build/Relay.mjs.map +1 -1
  30. package/build/Repository.cjs +103 -94
  31. package/build/Repository.cjs.map +1 -1
  32. package/build/Repository.d.ts +33 -23
  33. package/build/Repository.mjs +107 -98
  34. package/build/Repository.mjs.map +1 -1
  35. package/build/Router.cjs +8 -9
  36. package/build/Router.cjs.map +1 -1
  37. package/build/Router.d.ts +12 -18
  38. package/build/Router.mjs +8 -9
  39. package/build/Router.mjs.map +1 -1
  40. package/build/Tags.cjs +6 -8
  41. package/build/Tags.cjs.map +1 -1
  42. package/build/Tags.d.ts +1 -3
  43. package/build/Tags.mjs +6 -8
  44. package/build/Tags.mjs.map +1 -1
  45. package/build/index.cjs +0 -1
  46. package/build/index.cjs.map +1 -1
  47. package/build/index.d.ts +0 -1
  48. package/build/index.mjs +0 -1
  49. package/package.json +2 -2
  50. package/build/Relays.cjs +0 -38
  51. package/build/Relays.cjs.map +0 -1
  52. package/build/Relays.d.ts +0 -8
  53. package/build/Relays.mjs +0 -33
  54. 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.addressFromEvent = exports.getIdentifier = exports.addressToNaddr = exports.addressFromNaddr = exports.encodeAddress = exports.decodeAddress = void 0;
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
- // Plain text format
7
- const decodeAddress = (a, relays = []) => {
8
- const [kind, pubkey, identifier = ""] = a.split(":");
9
- return { kind: parseInt(kind), pubkey, identifier, relays };
10
- };
11
- exports.decodeAddress = decodeAddress;
12
- const encodeAddress = (a) => [a.kind, a.pubkey, a.identifier].join(":");
13
- exports.encodeAddress = encodeAddress;
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
- catch (e) {
22
- // pass
15
+ static isAddress(address) {
16
+ return Boolean(address.match(/^\d+:\w+:.*$/));
23
17
  }
24
- if (type !== "naddr") {
25
- throw new Error(`Invalid naddr ${naddr}`);
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
- return data;
28
- };
29
- exports.addressFromNaddr = addressFromNaddr;
30
- const addressToNaddr = (a) => nostr_tools_1.nip19.naddrEncode(a);
31
- exports.addressToNaddr = addressToNaddr;
32
- // Get from event, encode to filter
33
- const getIdentifier = (e) => { var _a; return ((_a = e.tags.find(t => t[0] === "d")) === null || _a === void 0 ? void 0 : _a[1]) || ""; };
34
- exports.getIdentifier = getIdentifier;
35
- const addressFromEvent = (e, relays = []) => ({ kind: e.kind, pubkey: e.pubkey, identifier: (0, exports.getIdentifier)(e), relays });
36
- exports.addressFromEvent = addressFromEvent;
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 isGroupAddress = (a) => a.kind === Kinds_1.Kind.GroupDefinition;
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.Kind.CommunityDefinition;
48
+ const isCommunityAddress = (a, ...args) => Address.from(a).kind === Kinds_1.COMMUNITY;
41
49
  exports.isCommunityAddress = isCommunityAddress;
42
- const isContextAddress = (a) => [Kinds_1.Kind.GroupDefinition, Kinds_1.Kind.CommunityDefinition].includes(a.kind);
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
@@ -1 +1 @@
1
- {"version":3,"file":"Address.cjs","sourceRoot":"","sources":["../Address.ts"],"names":[],"mappings":";;;AACA,6CAAiC;AACjC,uCAA4B;AAS5B,oBAAoB;AAEb,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,SAAmB,EAAE,EAAW,EAAE;IACzE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEpD,OAAO,EAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAC,CAAA;AAC3D,CAAC,CAAA;AAJY,QAAA,aAAa,iBAIzB;AAEM,MAAM,aAAa,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAA1E,QAAA,aAAa,iBAA6D;AAEvF,iBAAiB;AAEV,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAW,EAAE;IACzD,IAAI,IAAI,CAAA;IACR,IAAI,IAAI,GAAG,EAAS,CAAA;IACpB,IAAI;QACF,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,mBAAK,CAAC,MAAM,CAAC,KAAK,CAGjC,CAAC,CAAA;KACH;IAAC,OAAO,CAAC,EAAE;QACV,OAAO;KACR;IAED,IAAI,IAAI,KAAK,OAAO,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAA;KAC1C;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAjBY,QAAA,gBAAgB,oBAiB5B;AAEM,MAAM,cAAc,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,mBAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AAA7D,QAAA,cAAc,kBAA+C;AAE1E,mCAAmC;AAE5B,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAA,EAAA,CAAA;AAA/E,QAAA,aAAa,iBAAkE;AAErF,MAAM,gBAAgB,GAAG,CAAC,CAAgB,EAAE,SAAmB,EAAE,EAAE,EAAE,CAC1E,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,IAAA,qBAAa,EAAC,CAAC,CAAC,EAAE,MAAM,EAAC,CAAC,CAAA;AAD7D,QAAA,gBAAgB,oBAC6C;AAE1E,QAAQ;AAED,MAAM,cAAc,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAI,CAAC,eAAe,CAAA;AAAhE,QAAA,cAAc,kBAAkD;AAEtE,MAAM,kBAAkB,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAI,CAAC,mBAAmB,CAAA;AAAxE,QAAA,kBAAkB,sBAAsD;AAE9E,MAAM,gBAAgB,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,YAAI,CAAC,eAAe,EAAE,YAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAApG,QAAA,gBAAgB,oBAAoF"}
1
+ {"version":3,"file":"Address.cjs","sourceRoot":"","sources":["../Address.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,23 @@
1
- import type { UnsignedEvent } from 'nostr-tools';
2
- export type Address = {
1
+ type AddressableEvent = {
3
2
  kind: number;
4
3
  pubkey: string;
5
- identifier: string;
6
- relays: string[];
4
+ tags: string[][];
7
5
  };
8
- export declare const decodeAddress: (a: string, relays?: string[]) => Address;
9
- export declare const encodeAddress: (a: Address) => string;
10
- export declare const addressFromNaddr: (naddr: string) => Address;
11
- export declare const addressToNaddr: (a: Address) => string;
12
- export declare const getIdentifier: (e: UnsignedEvent) => string;
13
- export declare const addressFromEvent: (e: UnsignedEvent, relays?: string[]) => {
14
- kind: number;
15
- pubkey: string;
16
- identifier: string;
17
- relays: string[];
18
- };
19
- export declare const isGroupAddress: (a: Address) => boolean;
20
- export declare const isCommunityAddress: (a: Address) => boolean;
21
- export declare const isContextAddress: (a: Address) => boolean;
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 { Kind } from "./Kinds.mjs";
3
- // Plain text format
4
- export const decodeAddress = (a, relays = []) => {
5
- const [kind, pubkey, identifier = ""] = a.split(":");
6
- return { kind: parseInt(kind), pubkey, identifier, relays };
7
- };
8
- export const encodeAddress = (a) => [a.kind, a.pubkey, a.identifier].join(":");
9
- // Naddr encoding
10
- export const addressFromNaddr = (naddr) => {
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
- catch (e) {
17
- // pass
12
+ static isAddress(address) {
13
+ return Boolean(address.match(/^\d+:\w+:.*$/));
18
14
  }
19
- if (type !== "naddr") {
20
- throw new Error(`Invalid naddr ${naddr}`);
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
- return data;
23
- };
24
- export const addressToNaddr = (a) => nip19.naddrEncode(a);
25
- // Get from event, encode to filter
26
- export const getIdentifier = (e) => { var _a; return ((_a = e.tags.find(t => t[0] === "d")) === null || _a === void 0 ? void 0 : _a[1]) || ""; };
27
- export const addressFromEvent = (e, relays = []) => ({ kind: e.kind, pubkey: e.pubkey, identifier: getIdentifier(e), relays });
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 isGroupAddress = (a) => a.kind === Kind.GroupDefinition;
30
- export const isCommunityAddress = (a) => a.kind === Kind.CommunityDefinition;
31
- export const isContextAddress = (a) => [Kind.GroupDefinition, Kind.CommunityDefinition].includes(a.kind);
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
@@ -1 +1 @@
1
- {"version":3,"file":"Address.mjs","sourceRoot":"","sources":["../Address.ts"],"names":[],"mappings":"OACO,EAAC,KAAK,EAAC,MAAM,aAAa;OAC1B,EAAC,IAAI,EAAC;AASb,oBAAoB;AAEpB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,SAAmB,EAAE,EAAW,EAAE;IACzE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEpD,OAAO,EAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAC,CAAA;AAC3D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEvF,iBAAiB;AAEjB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAW,EAAE;IACzD,IAAI,IAAI,CAAA;IACR,IAAI,IAAI,GAAG,EAAS,CAAA;IACpB,IAAI;QACF,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAGjC,CAAC,CAAA;KACH;IAAC,OAAO,CAAC,EAAE;QACV,OAAO;KACR;IAED,IAAI,IAAI,KAAK,OAAO,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAA;KAC1C;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AAE1E,mCAAmC;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAA,EAAA,CAAA;AAE5F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAgB,EAAE,SAAmB,EAAE,EAAE,EAAE,CAC1E,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAC,CAAC,CAAA;AAE1E,QAAQ;AAER,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,CAAA;AAE7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,mBAAmB,CAAA;AAErF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA"}
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.getAddress = exports.hasValidSignature = exports.asEvent = exports.asRumor = exports.asUnsignedEvent = exports.asEventTemplate = exports.createEvent = void 0;
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 asEventTemplate = ({ kind, tags, content, created_at }) => ({ kind, tags, content, created_at });
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 asUnsignedEvent = ({ kind, tags, content, created_at, pubkey }) => ({ kind, tags, content, created_at, pubkey });
14
- exports.asUnsignedEvent = asUnsignedEvent;
15
- const asRumor = ({ kind, tags, content, created_at, pubkey, id }) => ({ kind, tags, content, created_at, pubkey, id });
16
- exports.asRumor = asRumor;
17
- const asEvent = ({ kind, tags, content, created_at, pubkey, id, sig }) => ({ kind, tags, content, created_at, pubkey, id, sig });
18
- exports.asEvent = asEvent;
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, nostr_tools_1.getEventHash)(e), e.sig].join(":");
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, nostr_tools_1.verifyEvent)(e);
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 getAddress = (e) => (0, Address_1.encodeAddress)((0, Address_1.addressFromEvent)(e));
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, exports.getAddress)(e)] : [e.id];
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;
@@ -1 +1 @@
1
- {"version":3,"file":"Events.cjs","sourceRoot":"","sources":["../Events.ts"],"names":[],"mappings":"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"}
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 type { Event, EventTemplate, UnsignedEvent } from 'nostr-tools';
2
- export type { Event, EventTemplate, UnsignedEvent } from 'nostr-tools';
3
- export type Rumor = Pick<Event, 'kind' | 'tags' | 'content' | 'created_at' | 'pubkey' | 'id'> & {
4
- wrap?: Event;
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 asEventTemplate: ({ kind, tags, content, created_at }: EventTemplate) => EventTemplate;
18
- export declare const asUnsignedEvent: ({ kind, tags, content, created_at, pubkey }: UnsignedEvent) => UnsignedEvent;
19
- export declare const asRumor: ({ kind, tags, content, created_at, pubkey, id }: Rumor) => Rumor;
20
- export declare const asEvent: ({ kind, tags, content, created_at, pubkey, id, sig }: Event) => Event;
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: Event): boolean;
50
+ (args_0: SignedEvent): boolean;
23
51
  cache: import("@welshman/lib").LRUCache<string, boolean>;
24
- getKey: (args: [Event]) => string;
25
- getValue: (args: [Event]) => boolean;
52
+ getKey: (args: [SignedEvent]) => string;
53
+ getValue: (args: [SignedEvent]) => boolean;
26
54
  };
27
- export declare const getAddress: (e: UnsignedEvent) => string;
28
- export declare const getIdOrAddress: (e: Rumor) => string;
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: Rumor) => boolean;
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 { addressFromEvent, encodeAddress } from "./Address.mjs";
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 asEventTemplate = ({ kind, tags, content, created_at }) => ({ kind, tags, content, created_at });
8
- export const asUnsignedEvent = ({ kind, tags, content, created_at, pubkey }) => ({ kind, tags, content, created_at, pubkey });
9
- export const asRumor = ({ kind, tags, content, created_at, pubkey, id }) => ({ kind, tags, content, created_at, pubkey, id });
10
- export const asEvent = ({ kind, tags, content, created_at, pubkey, id, sig }) => ({ kind, tags, content, created_at, pubkey, id, sig });
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);
@@ -1 +1 @@
1
- {"version":3,"file":"Events.mjs","sourceRoot":"","sources":["../Events.ts"],"names":[],"mappings":"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"}
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 Object.values((0, lib_1.groupBy)(exports.calculateFilterGroup, filters))) {
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 (idOrAddress.includes(":")) {
114
- const { kind, pubkey, identifier } = (0, Address_1.decodeAddress)(idOrAddress);
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.encodeAddress)((0, Address_1.addressFromEvent)(event)));
139
+ a.push((0, Address_1.getAddress)(event));
140
140
  }
141
141
  if (event.wrap) {
142
142
  e.push(event.wrap.id);
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.cjs","sourceRoot":"","sources":["../Filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Filters.cjs","sourceRoot":"","sources":["../Filters.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Rumor } from './Events';
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 Rumor>(filter: Filter, event: E) => boolean;
14
- export declare const matchFilters: <E extends Rumor>(filters: Filter[], event: E) => boolean;
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: Rumor[], filter: Filter) => ({
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 Object.values(groupBy(calculateFilterGroup, filters))) {
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 (idOrAddress.includes(":")) {
105
- const { kind, pubkey, identifier } = decodeAddress(idOrAddress);
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(encodeAddress(addressFromEvent(event)));
129
+ a.push(getAddress(event));
130
130
  }
131
131
  if (event.wrap) {
132
132
  e.push(event.wrap.id);