@welshman/util 0.0.2 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/build/Address.cjs +40 -32
  2. package/build/Address.cjs.map +1 -1
  3. package/build/Address.d.ts +20 -18
  4. package/build/Address.mjs +38 -26
  5. package/build/Address.mjs.map +1 -1
  6. package/build/Events.cjs +29 -14
  7. package/build/Events.cjs.map +1 -1
  8. package/build/Events.d.ts +42 -15
  9. package/build/Events.mjs +15 -7
  10. package/build/Events.mjs.map +1 -1
  11. package/build/Filters.cjs +40 -8
  12. package/build/Filters.cjs.map +1 -1
  13. package/build/Filters.d.ts +7 -6
  14. package/build/Filters.mjs +37 -6
  15. package/build/Filters.mjs.map +1 -1
  16. package/build/Kinds.cjs +111 -46
  17. package/build/Kinds.cjs.map +1 -1
  18. package/build/Kinds.d.ts +108 -44
  19. package/build/Kinds.mjs +108 -44
  20. package/build/Kinds.mjs.map +1 -1
  21. package/build/Links.cjs +1 -1
  22. package/build/Links.cjs.map +1 -1
  23. package/build/Links.mjs +1 -1
  24. package/build/Links.mjs.map +1 -1
  25. package/build/Relay.cjs +59 -131
  26. package/build/Relay.cjs.map +1 -1
  27. package/build/Relay.d.ts +16 -18
  28. package/build/Relay.mjs +58 -132
  29. package/build/Relay.mjs.map +1 -1
  30. package/build/Repository.cjs +205 -0
  31. package/build/Repository.cjs.map +1 -0
  32. package/build/Repository.d.ts +44 -0
  33. package/build/Repository.mjs +201 -0
  34. package/build/Repository.mjs.map +1 -0
  35. package/build/Router.cjs +24 -24
  36. package/build/Router.cjs.map +1 -1
  37. package/build/Router.d.ts +68 -28
  38. package/build/Router.mjs +24 -24
  39. package/build/Router.mjs.map +1 -1
  40. package/build/Tags.cjs +17 -19
  41. package/build/Tags.cjs.map +1 -1
  42. package/build/Tags.d.ts +2 -9
  43. package/build/Tags.mjs +18 -20
  44. package/build/Tags.mjs.map +1 -1
  45. package/build/index.cjs +1 -1
  46. package/build/index.cjs.map +1 -1
  47. package/build/index.d.ts +1 -1
  48. package/build/index.mjs +1 -1
  49. package/package.json +2 -3
  50. package/build/Relays.cjs +0 -36
  51. package/build/Relays.cjs.map +0 -1
  52. package/build/Relays.d.ts +0 -6
  53. package/build/Relays.mjs +0 -31
  54. package/build/Relays.mjs.map +0 -1
package/build/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.GROUP_DEFINITION;
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.COMMUNITY_DEFINITION;
48
+ const isCommunityAddress = (a, ...args) => Address.from(a).kind === Kinds_1.COMMUNITY;
41
49
  exports.isCommunityAddress = isCommunityAddress;
42
- const isContextAddress = (a) => [Kinds_1.GROUP_DEFINITION, Kinds_1.COMMUNITY_DEFINITION].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,uCAA8D;AAS9D,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,wBAAgB,CAAA;AAA5D,QAAA,cAAc,kBAA8C;AAElE,MAAM,kBAAkB,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,4BAAoB,CAAA;AAApE,QAAA,kBAAkB,sBAAkD;AAE1E,MAAM,gBAAgB,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,wBAAgB,EAAE,4BAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAA5F,QAAA,gBAAgB,oBAA4E"}
1
+ {"version":3,"file":"Address.cjs","sourceRoot":"","sources":["../Address.ts"],"names":[],"mappings":";;;AAAA,6CAAiC;AACjC,uCAAwC;AASxC,MAAa,OAAO;IAClB,YACW,IAAY,EACZ,MAAc,EACd,UAAkB,EAClB,SAAmB,EAAE;QAHrB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAe;QAsChC,aAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEpE,YAAO,GAAG,GAAG,EAAE,CAAC,mBAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAvCpC,CAAC;IAEJ,MAAM,CAAC,SAAS,CAAC,OAAe;QAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,SAAmB,EAAE;QAChD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAErF,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAa;QAC5B,IAAI,IAAI,CAAA;QACR,IAAI,IAAI,GAAG,EAAS,CAAA;QACpB,IAAI;YACF,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,mBAAK,CAAC,MAAM,CAAC,KAAK,CAGjC,CAAC,CAAA;SACH;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;SACR;QAED,IAAI,IAAI,KAAK,OAAO,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAA;SAC1C;QAED,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAuB,EAAE,SAAmB,EAAE;;QAC7D,MAAM,UAAU,GAAG,CAAA,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAA;QAEhE,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IAClE,CAAC;CAKF;AA9CD,0BA8CC;AAED,QAAQ;AAED,MAAM,UAAU,GAAG,CAAC,CAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AAArE,QAAA,UAAU,cAA2D;AAE3E,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAK,CAAA;AAAlF,QAAA,cAAc,kBAAoE;AAExF,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAS,CAAA;AAA1F,QAAA,kBAAkB,sBAAwE;AAEhG,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,CAAC,aAAK,EAAE,iBAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAAvG,QAAA,gBAAgB,oBAAuF"}
@@ -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 { GROUP_DEFINITION, COMMUNITY_DEFINITION } 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 === GROUP_DEFINITION;
30
- export const isCommunityAddress = (a) => a.kind === COMMUNITY_DEFINITION;
31
- export const isContextAddress = (a) => [GROUP_DEFINITION, COMMUNITY_DEFINITION].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,gBAAgB,EAAE,oBAAoB,EAAC;AAS/C,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,gBAAgB,CAAA;AAEzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAA;AAEjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,gBAAgB,EAAE,oBAAoB,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
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.guessFilterDelta = exports.getFilterGenerality = exports.getReplyFilters = exports.getIdFilters = exports.mergeFilters = exports.calculateFilterGroup = exports.getFilterId = exports.matchFilters = exports.matchFilter = exports.EPOCH = void 0;
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)) {
@@ -57,7 +57,7 @@ const calculateFilterGroup = ({ since, until, limit, search, ...filter }) => {
57
57
  return group.sort().join("-");
58
58
  };
59
59
  exports.calculateFilterGroup = calculateFilterGroup;
60
- const mergeFilters = (filters) => {
60
+ const unionFilters = (filters) => {
61
61
  const result = [];
62
62
  for (const group of Object.values((0, lib_1.groupBy)(exports.calculateFilterGroup, filters))) {
63
63
  const newFilter = {};
@@ -73,13 +73,45 @@ const mergeFilters = (filters) => {
73
73
  }
74
74
  return result;
75
75
  };
76
- exports.mergeFilters = mergeFilters;
76
+ exports.unionFilters = unionFilters;
77
+ const intersectFilters = (groups) => {
78
+ let result = groups[0];
79
+ for (const filters of groups.slice(1)) {
80
+ result = result.flatMap(f1 => {
81
+ return filters.map(f2 => {
82
+ const f3 = {};
83
+ for (const k of (0, lib_1.uniq)([...Object.keys(f1), ...Object.keys(f2)])) {
84
+ if (k === 'since' || k === 'limit') {
85
+ f3[k] = Math.max(f1[k] || 0, f2[k] || 0);
86
+ }
87
+ else if (k === 'until') {
88
+ f3[k] = Math.min(f1[k] || f2[k] || 0, f2[k] || f1[k] || 0);
89
+ }
90
+ else if (k === 'search') {
91
+ if (f1[k] && f2[k] && f1[k] !== f2[k]) {
92
+ f3[k] = [f1[k], f2[k]].join(' ');
93
+ }
94
+ else {
95
+ f3[k] = f1[k] || f2[k];
96
+ }
97
+ }
98
+ else {
99
+ f3[k] = (0, lib_1.uniq)([...(f1[k] || []), ...(f2[k] || [])]);
100
+ }
101
+ }
102
+ return f3;
103
+ });
104
+ });
105
+ }
106
+ return (0, exports.unionFilters)(result);
107
+ };
108
+ exports.intersectFilters = intersectFilters;
77
109
  const getIdFilters = (idsOrAddresses) => {
78
110
  const ids = [];
79
111
  const aFilters = [];
80
112
  for (const idOrAddress of idsOrAddresses) {
81
- if (idOrAddress.includes(":")) {
82
- 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);
83
115
  if (identifier) {
84
116
  aFilters.push({ kinds: [kind], authors: [pubkey], "#d": [identifier] });
85
117
  }
@@ -91,7 +123,7 @@ const getIdFilters = (idsOrAddresses) => {
91
123
  ids.push(idOrAddress);
92
124
  }
93
125
  }
94
- const filters = (0, exports.mergeFilters)(aFilters);
126
+ const filters = (0, exports.unionFilters)(aFilters);
95
127
  if (ids.length > 0) {
96
128
  filters.push({ ids });
97
129
  }
@@ -104,7 +136,7 @@ const getReplyFilters = (events, filter) => {
104
136
  for (const event of events) {
105
137
  e.push(event.id);
106
138
  if ((0, Kinds_1.isReplaceableKind)(event.kind)) {
107
- a.push((0, Address_1.encodeAddress)((0, Address_1.addressFromEvent)(event)));
139
+ a.push((0, Address_1.getAddress)(event));
108
140
  }
109
141
  if (event.wrap) {
110
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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"}