@welshman/app 0.3.4 → 0.3.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 (69) hide show
  1. package/dist/app/src/commands.d.ts +8 -1
  2. package/dist/app/src/commands.d.ts.map +1 -1
  3. package/dist/app/src/commands.js +17 -1
  4. package/dist/app/src/commands.js.map +1 -1
  5. package/dist/app/src/core.js +2 -2
  6. package/dist/app/src/core.js.map +1 -1
  7. package/dist/feeds/src/request.d.ts +1 -1
  8. package/dist/feeds/src/request.d.ts.map +1 -1
  9. package/dist/feeds/src/request.js +6 -3
  10. package/dist/feeds/src/request.js.map +1 -1
  11. package/dist/lib/src/Tools.d.ts +2 -0
  12. package/dist/lib/src/Tools.d.ts.map +1 -1
  13. package/dist/lib/src/Tools.js +11 -1
  14. package/dist/lib/src/Tools.js.map +1 -1
  15. package/dist/net/src/auth.d.ts +0 -6
  16. package/dist/net/src/auth.d.ts.map +1 -1
  17. package/dist/net/src/auth.js +2 -8
  18. package/dist/net/src/auth.js.map +1 -1
  19. package/dist/signer/src/signers/nip46.js +2 -2
  20. package/dist/signer/src/signers/nip46.js.map +1 -1
  21. package/dist/store/src/custom.d.ts +1 -1
  22. package/dist/store/src/custom.d.ts.map +1 -1
  23. package/dist/store/src/custom.js +2 -2
  24. package/dist/store/src/custom.js.map +1 -1
  25. package/dist/util/src/Blossom.d.ts +0 -1
  26. package/dist/util/src/Blossom.d.ts.map +1 -1
  27. package/dist/util/src/Blossom.js +6 -9
  28. package/dist/util/src/Blossom.js.map +1 -1
  29. package/dist/util/src/Events.d.ts +0 -6
  30. package/dist/util/src/Events.d.ts.map +1 -1
  31. package/dist/util/src/Events.js +5 -1
  32. package/dist/util/src/Events.js.map +1 -1
  33. package/dist/util/src/Kinds.d.ts +15 -14
  34. package/dist/util/src/Kinds.d.ts.map +1 -1
  35. package/dist/util/src/Kinds.js +15 -14
  36. package/dist/util/src/Kinds.js.map +1 -1
  37. package/dist/util/src/Nip42.d.ts +7 -0
  38. package/dist/util/src/Nip42.d.ts.map +1 -0
  39. package/dist/util/src/Nip42.js +9 -0
  40. package/dist/util/src/Nip42.js.map +1 -0
  41. package/dist/util/src/Nip86.d.ts +31 -0
  42. package/dist/util/src/Nip86.d.ts.map +1 -0
  43. package/dist/util/src/Nip86.js +41 -0
  44. package/dist/util/src/Nip86.js.map +1 -0
  45. package/dist/util/src/Nip98.d.ts +9 -0
  46. package/dist/util/src/Nip98.d.ts.map +1 -0
  47. package/dist/util/src/Nip98.js +16 -0
  48. package/dist/util/src/Nip98.js.map +1 -0
  49. package/dist/util/src/Room.d.ts +42 -0
  50. package/dist/util/src/Room.d.ts.map +1 -0
  51. package/dist/util/src/Room.js +25 -0
  52. package/dist/util/src/Room.js.map +1 -0
  53. package/dist/util/src/index.d.ts +4 -0
  54. package/dist/util/src/index.d.ts.map +1 -1
  55. package/dist/util/src/index.js +4 -0
  56. package/dist/util/src/index.js.map +1 -1
  57. package/package.json +9 -10
  58. package/dist/dvm/src/handler.d.ts +0 -30
  59. package/dist/dvm/src/handler.d.ts.map +0 -1
  60. package/dist/dvm/src/handler.js +0 -84
  61. package/dist/dvm/src/handler.js.map +0 -1
  62. package/dist/dvm/src/index.d.ts +0 -3
  63. package/dist/dvm/src/index.d.ts.map +0 -1
  64. package/dist/dvm/src/index.js +0 -3
  65. package/dist/dvm/src/index.js.map +0 -1
  66. package/dist/dvm/src/request.d.ts +0 -14
  67. package/dist/dvm/src/request.d.ts.map +0 -1
  68. package/dist/dvm/src/request.js +0 -29
  69. package/dist/dvm/src/request.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ import { Base64 } from "js-base64";
2
+ import { sha256, textEncoder } from "@welshman/lib";
3
+ import { makeEvent } from "./Events.js";
4
+ import { HTTP_AUTH } from "./Kinds.js";
5
+ export const makeHttpAuth = async (url, method = "GET", body) => {
6
+ const tags = [
7
+ ["u", url],
8
+ ["method", method],
9
+ ];
10
+ if (body) {
11
+ tags.push(["payload", await sha256(textEncoder.encode(body))]);
12
+ }
13
+ return makeEvent(HTTP_AUTH, { tags });
14
+ };
15
+ export const makeHttpAuthHeader = (event) => `Nostr ${Base64.encode(JSON.stringify(event))}`;
16
+ //# sourceMappingURL=Nip98.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nip98.js","sourceRoot":"","sources":["../../../../util/src/Nip98.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAA;AAChC,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAA;AACjD,OAAO,EAAC,SAAS,EAAc,MAAM,aAAa,CAAA;AAClD,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AAEpC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,GAAW,EAAE,MAAM,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;IAC/E,MAAM,IAAI,GAAG;QACX,CAAC,GAAG,EAAE,GAAG,CAAC;QACV,CAAC,QAAQ,EAAE,MAAM,CAAC;KACnB,CAAA;IAED,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,OAAO,SAAS,CAAC,SAAS,EAAE,EAAC,IAAI,EAAC,CAAC,CAAA;AACrC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAkB,EAAE,EAAE,CACvD,SAAS,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { TrustedEvent } from "./Events.js";
2
+ export type RoomMeta = {
3
+ id: string;
4
+ tags: string[][];
5
+ event?: TrustedEvent;
6
+ };
7
+ export type PublishedRoomMeta = Omit<RoomMeta, "event"> & {
8
+ event: TrustedEvent;
9
+ };
10
+ export declare const makeRoomMeta: (room?: Partial<RoomMeta>) => RoomMeta;
11
+ export declare const readRoomMeta: (event: TrustedEvent) => PublishedRoomMeta;
12
+ export declare const makeRoomCreateEvent: (room: RoomMeta) => {
13
+ kind: number;
14
+ content: string;
15
+ tags: string[][];
16
+ created_at: number;
17
+ };
18
+ export declare const makeRoomDeleteEvent: (room: RoomMeta) => {
19
+ kind: number;
20
+ content: string;
21
+ tags: string[][];
22
+ created_at: number;
23
+ };
24
+ export declare const makeRoomEditEvent: (room: RoomMeta) => {
25
+ kind: number;
26
+ content: string;
27
+ tags: string[][];
28
+ created_at: number;
29
+ };
30
+ export declare const makeRoomJoinEvent: (room: RoomMeta) => {
31
+ kind: number;
32
+ content: string;
33
+ tags: string[][];
34
+ created_at: number;
35
+ };
36
+ export declare const makeRoomLeaveEvent: (room: RoomMeta) => {
37
+ kind: number;
38
+ content: string;
39
+ tags: string[][];
40
+ created_at: number;
41
+ };
42
+ //# sourceMappingURL=Room.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../../util/src/Room.ts"],"names":[],"mappings":"AASA,OAAO,EAAY,YAAY,EAAgB,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,YAAY,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG;IACxD,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAM,OAAO,CAAC,QAAQ,CAAM,KAAG,QAI1D,CAAA;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,YAAY,KAAG,iBAclD,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,MAAM,QAAQ;;;;;CACA,CAAA;AAElD,eAAO,MAAM,mBAAmB,GAAI,MAAM,QAAQ;;;;;CACA,CAAA;AAElD,eAAO,MAAM,iBAAiB,GAAI,MAAM,QAAQ;;;;;CACmB,CAAA;AAEnE,eAAO,MAAM,iBAAiB,GAAI,MAAM,QAAQ;;;;;CAAmD,CAAA;AAEnG,eAAO,MAAM,kBAAkB,GAAI,MAAM,QAAQ;;;;;CACA,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { randomId, nthNe } from "@welshman/lib";
2
+ import { ROOM_META, ROOM_DELETE, ROOM_CREATE, ROOM_EDIT_META, ROOM_JOIN, ROOM_LEAVE, } from "./Kinds.js";
3
+ import { makeEvent, getIdentifier } from "./Events.js";
4
+ export const makeRoomMeta = (room = {}) => ({
5
+ id: randomId(),
6
+ tags: [],
7
+ ...room,
8
+ });
9
+ export const readRoomMeta = (event) => {
10
+ if (event.kind !== ROOM_META) {
11
+ throw new Error("Invalid group meta event");
12
+ }
13
+ const id = getIdentifier(event);
14
+ if (!id) {
15
+ throw new Error("Group meta event had no d tag");
16
+ }
17
+ const tags = event.tags.filter(nthNe(0, "d"));
18
+ return { id, tags, event };
19
+ };
20
+ export const makeRoomCreateEvent = (room) => makeEvent(ROOM_CREATE, { tags: [["h", room.id]] });
21
+ export const makeRoomDeleteEvent = (room) => makeEvent(ROOM_DELETE, { tags: [["h", room.id]] });
22
+ export const makeRoomEditEvent = (room) => makeEvent(ROOM_EDIT_META, { tags: [["h", room.id], ...room.tags] });
23
+ export const makeRoomJoinEvent = (room) => makeEvent(ROOM_JOIN, { tags: [["h", room.id]] });
24
+ export const makeRoomLeaveEvent = (room) => makeEvent(ROOM_LEAVE, { tags: [["h", room.id]] });
25
+ //# sourceMappingURL=Room.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Room.js","sourceRoot":"","sources":["../../../../util/src/Room.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,eAAe,CAAA;AAC7C,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,SAAS,EACT,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,OAAO,EAAC,SAAS,EAAgB,aAAa,EAAC,MAAM,aAAa,CAAA;AAYlE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAA0B,EAAE,EAAY,EAAE,CAAC,CAAC;IACvE,EAAE,EAAE,QAAQ,EAAE;IACd,IAAI,EAAE,EAAE;IACR,GAAG,IAAI;CACR,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAmB,EAAqB,EAAE;IACrE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAE/B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAE7C,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAC,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAE,EAAE,CACpD,SAAS,CAAC,WAAW,EAAE,EAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAA;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAE,EAAE,CACpD,SAAS,CAAC,WAAW,EAAE,EAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAA;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,EAAE,CAClD,SAAS,CAAC,cAAc,EAAE,EAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAA;AAEnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,EAAE,CACnD,SAAS,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAA"}
@@ -7,8 +7,12 @@ export * from "./Handler.js";
7
7
  export * from "./Kinds.js";
8
8
  export * from "./Links.js";
9
9
  export * from "./List.js";
10
+ export * from "./Nip42.js";
11
+ export * from "./Nip86.js";
12
+ export * from "./Nip98.js";
10
13
  export * from "./Profile.js";
11
14
  export * from "./Relay.js";
15
+ export * from "./Room.js";
12
16
  export * from "./Tags.js";
13
17
  export * from "./Zaps.js";
14
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../util/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../util/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
@@ -7,8 +7,12 @@ export * from "./Handler.js";
7
7
  export * from "./Kinds.js";
8
8
  export * from "./Links.js";
9
9
  export * from "./List.js";
10
+ export * from "./Nip42.js";
11
+ export * from "./Nip86.js";
12
+ export * from "./Nip98.js";
10
13
  export * from "./Profile.js";
11
14
  export * from "./Relay.js";
15
+ export * from "./Room.js";
12
16
  export * from "./Tags.js";
13
17
  export * from "./Zaps.js";
14
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../util/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../util/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@welshman/app",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "author": "hodlbod",
5
5
  "license": "MIT",
6
6
  "description": "A collection of svelte stores for use in building nostr client applications.",
@@ -19,15 +19,14 @@
19
19
  "idb": "^8.0.0",
20
20
  "svelte": "^4.2.18",
21
21
  "throttle-debounce": "^5.0.2",
22
- "@welshman/relay": "0.3.4",
23
- "@welshman/router": "0.3.4",
24
- "@welshman/lib": "0.3.4",
25
- "@welshman/signer": "0.3.4",
26
- "@welshman/dvm": "0.3.4",
27
- "@welshman/util": "0.3.4",
28
- "@welshman/feeds": "0.3.4",
29
- "@welshman/store": "0.3.4",
30
- "@welshman/net": "0.3.4"
22
+ "@welshman/feeds": "0.3.6",
23
+ "@welshman/lib": "0.3.6",
24
+ "@welshman/net": "0.3.6",
25
+ "@welshman/relay": "0.3.6",
26
+ "@welshman/store": "0.3.6",
27
+ "@welshman/util": "0.3.6",
28
+ "@welshman/signer": "0.3.6",
29
+ "@welshman/router": "0.3.6"
31
30
  },
32
31
  "devDependencies": {
33
32
  "rimraf": "~6.0.0",
@@ -1,30 +0,0 @@
1
- import { Nip01Signer } from "@welshman/signer";
2
- import { TrustedEvent, StampedEvent } from "@welshman/util";
3
- import { AdapterContext } from "@welshman/net";
4
- export type DVMHandler = {
5
- stop?: () => void;
6
- handleEvent: (e: TrustedEvent) => AsyncGenerator<StampedEvent>;
7
- };
8
- export type CreateDVMHandler = (dvm: DVM) => DVMHandler;
9
- export type DVMOpts = {
10
- sk: string;
11
- relays: string[];
12
- handlers: Record<string, CreateDVMHandler>;
13
- expireAfter?: number;
14
- requireMention?: boolean;
15
- context?: AdapterContext;
16
- };
17
- export declare class DVM {
18
- readonly opts: DVMOpts;
19
- active: boolean;
20
- logEvents: boolean;
21
- seen: Set<unknown>;
22
- handlers: Map<any, any>;
23
- signer: Nip01Signer;
24
- constructor(opts: DVMOpts);
25
- start(): Promise<void>;
26
- stop(): void;
27
- onEvent(request: TrustedEvent): Promise<void>;
28
- publish(template: StampedEvent): Promise<void>;
29
- }
30
- //# sourceMappingURL=handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../dvm/src/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAC,YAAY,EAAE,YAAY,EAAS,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAmB,cAAc,EAAC,MAAM,eAAe,CAAA;AAE9D,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;IACjB,WAAW,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,cAAc,CAAC,YAAY,CAAC,CAAA;CAC/D,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,UAAU,CAAA;AAEvD,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB,CAAA;AAED,qBAAa,GAAG;IAOF,QAAQ,CAAC,IAAI,EAAE,OAAO;IANlC,MAAM,UAAQ;IACd,SAAS,UAAQ;IACjB,IAAI,eAAY;IAChB,QAAQ,gBAAY;IACpB,MAAM,EAAE,WAAW,CAAA;gBAEE,IAAI,EAAE,OAAO;IAQ5B,KAAK;IA2BX,IAAI;IAQE,OAAO,CAAC,OAAO,EAAE,YAAY;IA6C7B,OAAO,CAAC,QAAQ,EAAE,YAAY;CAMrC"}
@@ -1,84 +0,0 @@
1
- import { now } from "@welshman/lib";
2
- import { Nip01Signer } from "@welshman/signer";
3
- import { request, publish } from "@welshman/net";
4
- export class DVM {
5
- opts;
6
- active = false;
7
- logEvents = false;
8
- seen = new Set();
9
- handlers = new Map();
10
- signer;
11
- constructor(opts) {
12
- this.opts = opts;
13
- this.signer = new Nip01Signer(opts.sk);
14
- for (const [kind, createHandler] of Object.entries(this.opts.handlers)) {
15
- this.handlers.set(parseInt(kind), createHandler(this));
16
- }
17
- }
18
- async start() {
19
- this.active = true;
20
- const { relays, context, requireMention = false } = this.opts;
21
- const pubkey = await this.signer.getPubkey();
22
- while (this.active) {
23
- await new Promise(resolve => {
24
- const since = now();
25
- const kinds = Array.from(this.handlers.keys());
26
- const filter = { kinds, since };
27
- if (requireMention) {
28
- filter["#p"] = [pubkey];
29
- }
30
- request({
31
- relays,
32
- filters: [filter],
33
- context,
34
- onClose: resolve,
35
- onEvent: this.onEvent,
36
- });
37
- });
38
- }
39
- }
40
- stop() {
41
- for (const handler of this.handlers.values()) {
42
- handler.stop?.();
43
- }
44
- this.active = false;
45
- }
46
- async onEvent(request) {
47
- const { expireAfter = 60 * 60 } = this.opts;
48
- if (this.seen.has(request.id)) {
49
- return;
50
- }
51
- const handler = this.handlers.get(request.kind);
52
- if (!handler) {
53
- return;
54
- }
55
- this.seen.add(request.id);
56
- if (this.logEvents) {
57
- console.info("Handling request", request);
58
- }
59
- for await (const event of handler.handleEvent(request)) {
60
- if (event.kind !== 7000) {
61
- event.tags.push(["request", JSON.stringify(request)]);
62
- const inputTag = request.tags.find((t) => t[0] === "i");
63
- if (inputTag) {
64
- event.tags.push(inputTag);
65
- }
66
- }
67
- event.tags.push(["p", request.pubkey]);
68
- event.tags.push(["e", request.id]);
69
- if (expireAfter) {
70
- event.tags.push(["expiration", String(now() + expireAfter)]);
71
- }
72
- if (this.logEvents) {
73
- console.info("Publishing event", event);
74
- }
75
- this.publish(event);
76
- }
77
- }
78
- async publish(template) {
79
- const { relays, context } = this.opts;
80
- const event = await this.signer.sign(template);
81
- await publish({ event, relays, context });
82
- }
83
- }
84
- //# sourceMappingURL=handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../dvm/src/handler.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from "./handler.js";
2
- export * from "./request.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../dvm/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from "./handler.js";
2
- export * from "./request.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dvm/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
@@ -1,14 +0,0 @@
1
- import { TrustedEvent, SignedEvent } from "@welshman/util";
2
- import { AdapterContext } from "@welshman/net";
3
- export type DVMRequestOptions = {
4
- event: SignedEvent;
5
- relays: string[];
6
- timeout?: number;
7
- autoClose?: boolean;
8
- context?: AdapterContext;
9
- onResult?: (event: TrustedEvent, url: string) => void;
10
- onProgress?: (event: TrustedEvent, url: string) => void;
11
- };
12
- export declare const requestDvmResponse: (options: DVMRequestOptions) => Promise<TrustedEvent[]>;
13
- export declare const makeDvmRequest: (options: DVMRequestOptions) => Promise<[import("@welshman/net").PublishStatusByRelay, TrustedEvent[]]>;
14
- //# sourceMappingURL=request.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../dvm/src/request.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,WAAW,EAAS,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAmB,cAAc,EAAC,MAAM,eAAe,CAAA;AAE9D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CACxD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,iBAAiB,4BAyB5D,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,iBAAiB,4EACK,CAAA"}
@@ -1,29 +0,0 @@
1
- import { now } from "@welshman/lib";
2
- import { request, publish } from "@welshman/net";
3
- export const requestDvmResponse = (options) => {
4
- const { event, relays, context, timeout = 30_000, autoClose = true, onResult, onProgress } = options;
5
- const kind = event.kind + 1000;
6
- const kinds = onProgress ? [kind, 7000] : [kind];
7
- const filters = [{ kinds, since: now() - 60, "#e": [event.id] }];
8
- const abortController = new AbortController();
9
- const signal = AbortSignal.any([abortController.signal, AbortSignal.timeout(timeout)]);
10
- return request({
11
- signal,
12
- relays,
13
- filters,
14
- context,
15
- onEvent: (event, url) => {
16
- if (event.kind === 7000) {
17
- onProgress?.(event, url);
18
- }
19
- else {
20
- onResult?.(event, url);
21
- if (autoClose) {
22
- abortController.abort();
23
- }
24
- }
25
- },
26
- });
27
- };
28
- export const makeDvmRequest = (options) => Promise.all([publish(options), requestDvmResponse(options)]);
29
- //# sourceMappingURL=request.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../dvm/src/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,eAAe,CAAA;AAEjC,OAAO,EAAC,OAAO,EAAE,OAAO,EAAiB,MAAM,eAAe,CAAA;AAY9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAA0B,EAAE,EAAE;IAC/D,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAC,GAAG,OAAO,CAAA;IAClG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;IAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,OAAO,GAAa,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAC,CAAC,CAAA;IACxE,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAEtF,OAAO,OAAO,CAAC;QACb,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO,EAAE,CAAC,KAAmB,EAAE,GAAW,EAAE,EAAE;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxB,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC1B,CAAC;iBAAM,CAAC;gBACN,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBAEtB,IAAI,SAAS,EAAE,CAAC;oBACd,eAAe,CAAC,KAAK,EAAE,CAAA;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAA0B,EAAE,EAAE,CAC3D,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA"}