@welshman/net 0.0.1

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 (72) hide show
  1. package/README.md +20 -0
  2. package/build/Connection.cjs +89 -0
  3. package/build/Connection.cjs.map +1 -0
  4. package/build/Connection.d.ts +26 -0
  5. package/build/Connection.mjs +85 -0
  6. package/build/Connection.mjs.map +1 -0
  7. package/build/ConnectionMeta.cjs +162 -0
  8. package/build/ConnectionMeta.cjs.map +1 -0
  9. package/build/ConnectionMeta.d.ts +57 -0
  10. package/build/ConnectionMeta.mjs +158 -0
  11. package/build/ConnectionMeta.mjs.map +1 -0
  12. package/build/Context.cjs +27 -0
  13. package/build/Context.cjs.map +1 -0
  14. package/build/Context.d.ts +16 -0
  15. package/build/Context.mjs +23 -0
  16. package/build/Context.mjs.map +1 -0
  17. package/build/Executor.cjs +64 -0
  18. package/build/Executor.cjs.map +1 -0
  19. package/build/Executor.d.ts +33 -0
  20. package/build/Executor.mjs +60 -0
  21. package/build/Executor.mjs.map +1 -0
  22. package/build/Pool.cjs +44 -0
  23. package/build/Pool.cjs.map +1 -0
  24. package/build/Pool.d.ts +13 -0
  25. package/build/Pool.mjs +40 -0
  26. package/build/Pool.mjs.map +1 -0
  27. package/build/Publish.cjs +70 -0
  28. package/build/Publish.cjs.map +1 -0
  29. package/build/Publish.d.ts +40 -0
  30. package/build/Publish.mjs +65 -0
  31. package/build/Publish.mjs.map +1 -0
  32. package/build/Socket.cjs +98 -0
  33. package/build/Socket.cjs.map +1 -0
  34. package/build/Socket.d.ts +37 -0
  35. package/build/Socket.mjs +89 -0
  36. package/build/Socket.mjs.map +1 -0
  37. package/build/Subscribe.cjs +215 -0
  38. package/build/Subscribe.cjs.map +1 -0
  39. package/build/Subscribe.d.ts +52 -0
  40. package/build/Subscribe.mjs +206 -0
  41. package/build/Subscribe.mjs.map +1 -0
  42. package/build/Tracker.cjs +45 -0
  43. package/build/Tracker.cjs.map +1 -0
  44. package/build/Tracker.d.ts +9 -0
  45. package/build/Tracker.mjs +41 -0
  46. package/build/Tracker.mjs.map +1 -0
  47. package/build/index.cjs +30 -0
  48. package/build/index.cjs.map +1 -0
  49. package/build/index.d.ts +13 -0
  50. package/build/index.mjs +14 -0
  51. package/build/index.mjs.map +1 -0
  52. package/build/target/Multi.cjs +25 -0
  53. package/build/target/Multi.cjs.map +1 -0
  54. package/build/target/Multi.d.ts +10 -0
  55. package/build/target/Multi.mjs +21 -0
  56. package/build/target/Multi.mjs.map +1 -0
  57. package/build/target/Plex.cjs +27 -0
  58. package/build/target/Plex.cjs.map +1 -0
  59. package/build/target/Plex.d.ts +12 -0
  60. package/build/target/Plex.mjs +23 -0
  61. package/build/target/Plex.mjs.map +1 -0
  62. package/build/target/Relay.cjs +26 -0
  63. package/build/target/Relay.cjs.map +1 -0
  64. package/build/target/Relay.d.ts +11 -0
  65. package/build/target/Relay.mjs +22 -0
  66. package/build/target/Relay.mjs.map +1 -0
  67. package/build/target/Relays.cjs +29 -0
  68. package/build/target/Relays.cjs.map +1 -0
  69. package/build/target/Relays.d.ts +10 -0
  70. package/build/target/Relays.mjs +25 -0
  71. package/build/target/Relays.mjs.map +1 -0
  72. package/package.json +40 -0
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tracker = void 0;
4
+ const lib_1 = require("@welshman/lib");
5
+ class Tracker {
6
+ constructor() {
7
+ this.data = (0, lib_1.writable)(new Map());
8
+ this.getRelays = (eventId) => {
9
+ const relays = new Set();
10
+ for (const relay of this.data.get().get(eventId) || []) {
11
+ relays.add(relay);
12
+ }
13
+ return relays;
14
+ };
15
+ this.hasRelay = (eventId, relay) => {
16
+ return this.getRelays(eventId).has(relay);
17
+ };
18
+ this.addRelay = (eventId, relay) => {
19
+ const relays = this.data.get().get(eventId) || new Set();
20
+ relays.add(relay);
21
+ this.data.update(m => {
22
+ m.set(eventId, relays);
23
+ return m;
24
+ });
25
+ };
26
+ this.track = (eventId, relay) => {
27
+ const seen = this.data.get().has(eventId);
28
+ this.addRelay(eventId, relay);
29
+ return seen;
30
+ };
31
+ this.copy = (eventId1, eventId2) => {
32
+ for (const relay of this.getRelays(eventId1)) {
33
+ this.addRelay(eventId2, relay);
34
+ }
35
+ };
36
+ this.clear = () => {
37
+ this.data.update(m => {
38
+ m.clear();
39
+ return m;
40
+ });
41
+ };
42
+ }
43
+ }
44
+ exports.Tracker = Tracker;
45
+ //# sourceMappingURL=Tracker.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tracker.cjs","sourceRoot":"","sources":["../Tracker.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AAEtC,MAAa,OAAO;IAApB;QACE,SAAI,GAAG,IAAA,cAAQ,EAAC,IAAI,GAAG,EAAuB,CAAC,CAAA;QAE/C,cAAS,GAAG,CAAC,OAAe,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;YAEhC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;gBACtD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;aAClB;YAED,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;QAED,aAAQ,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;YAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC3C,CAAC,CAAA;QAED,aAAQ,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAA;YAExD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAEjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAEtB,OAAO,CAAC,CAAA;YACV,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,UAAK,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAEzC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAE7B,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED,SAAI,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAE,EAAE;YAC5C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAC5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;aAC/B;QACH,CAAC,CAAA;QAED,UAAK,GAAG,GAAG,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACnB,CAAC,CAAC,KAAK,EAAE,CAAA;gBAET,OAAO,CAAC,CAAA;YACV,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC;CAAA;AAlDD,0BAkDC"}
@@ -0,0 +1,9 @@
1
+ export declare class Tracker {
2
+ data: import("@welshman/lib").Writable<Map<string, Set<string>>>;
3
+ getRelays: (eventId: string) => Set<string>;
4
+ hasRelay: (eventId: string, relay: string) => boolean;
5
+ addRelay: (eventId: string, relay: string) => void;
6
+ track: (eventId: string, relay: string) => boolean;
7
+ copy: (eventId1: string, eventId2: string) => void;
8
+ clear: () => void;
9
+ }
@@ -0,0 +1,41 @@
1
+ import { writable } from '@welshman/lib';
2
+ export class Tracker {
3
+ constructor() {
4
+ this.data = writable(new Map());
5
+ this.getRelays = (eventId) => {
6
+ const relays = new Set();
7
+ for (const relay of this.data.get().get(eventId) || []) {
8
+ relays.add(relay);
9
+ }
10
+ return relays;
11
+ };
12
+ this.hasRelay = (eventId, relay) => {
13
+ return this.getRelays(eventId).has(relay);
14
+ };
15
+ this.addRelay = (eventId, relay) => {
16
+ const relays = this.data.get().get(eventId) || new Set();
17
+ relays.add(relay);
18
+ this.data.update(m => {
19
+ m.set(eventId, relays);
20
+ return m;
21
+ });
22
+ };
23
+ this.track = (eventId, relay) => {
24
+ const seen = this.data.get().has(eventId);
25
+ this.addRelay(eventId, relay);
26
+ return seen;
27
+ };
28
+ this.copy = (eventId1, eventId2) => {
29
+ for (const relay of this.getRelays(eventId1)) {
30
+ this.addRelay(eventId2, relay);
31
+ }
32
+ };
33
+ this.clear = () => {
34
+ this.data.update(m => {
35
+ m.clear();
36
+ return m;
37
+ });
38
+ };
39
+ }
40
+ }
41
+ //# sourceMappingURL=Tracker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tracker.mjs","sourceRoot":"","sources":["../Tracker.ts"],"names":[],"mappings":"OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe;AAEtC,MAAM,OAAO,OAAO;IAApB;QACE,SAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,EAAuB,CAAC,CAAA;QAE/C,cAAS,GAAG,CAAC,OAAe,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;YAEhC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;gBACtD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;aAClB;YAED,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;QAED,aAAQ,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;YAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC3C,CAAC,CAAA;QAED,aAAQ,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAA;YAExD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAEjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAEtB,OAAO,CAAC,CAAA;YACV,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,UAAK,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAEzC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAE7B,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED,SAAI,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAE,EAAE;YAC5C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAC5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;aAC/B;QACH,CAAC,CAAA;QAED,UAAK,GAAG,GAAG,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACnB,CAAC,CAAC,KAAK,EAAE,CAAA;gBAET,OAAO,CAAC,CAAA;YACV,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC;CAAA"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Connection.cjs"), exports);
18
+ __exportStar(require("./ConnectionMeta.cjs"), exports);
19
+ __exportStar(require("./Context.cjs"), exports);
20
+ __exportStar(require("./Executor.cjs"), exports);
21
+ __exportStar(require("./Pool.cjs"), exports);
22
+ __exportStar(require("./Publish.cjs"), exports);
23
+ __exportStar(require("./Socket.cjs"), exports);
24
+ __exportStar(require("./Subscribe.cjs"), exports);
25
+ __exportStar(require("./Tracker.cjs"), exports);
26
+ __exportStar(require("./target/Multi.cjs"), exports);
27
+ __exportStar(require("./target/Plex.cjs"), exports);
28
+ __exportStar(require("./target/Relay.cjs"), exports);
29
+ __exportStar(require("./target/Relays.cjs"), exports);
30
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAA4B;AAC5B,uDAAgC;AAChC,gDAAyB;AACzB,iDAA0B;AAC1B,6CAAsB;AACtB,gDAAyB;AACzB,+CAAwB;AACxB,kDAA2B;AAC3B,gDAAyB;AACzB,qDAA8B;AAC9B,oDAA6B;AAC7B,qDAA8B;AAC9B,sDAA+B"}
@@ -0,0 +1,13 @@
1
+ export * from "./Connection";
2
+ export * from "./ConnectionMeta";
3
+ export * from "./Context";
4
+ export * from "./Executor";
5
+ export * from "./Pool";
6
+ export * from "./Publish";
7
+ export * from "./Socket";
8
+ export * from "./Subscribe";
9
+ export * from "./Tracker";
10
+ export * from "./target/Multi";
11
+ export * from "./target/Plex";
12
+ export * from "./target/Relay";
13
+ export * from "./target/Relays";
@@ -0,0 +1,14 @@
1
+ export * from "./Connection.mjs";
2
+ export * from "./ConnectionMeta.mjs";
3
+ export * from "./Context.mjs";
4
+ export * from "./Executor.mjs";
5
+ export * from "./Pool.mjs";
6
+ export * from "./Publish.mjs";
7
+ export * from "./Socket.mjs";
8
+ export * from "./Subscribe.mjs";
9
+ export * from "./Tracker.mjs";
10
+ export * from "./target/Multi.mjs";
11
+ export * from "./target/Plex.mjs";
12
+ export * from "./target/Relay.mjs";
13
+ export * from "./target/Relays.mjs";
14
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Multi = void 0;
4
+ const lib_1 = require("@welshman/lib");
5
+ class Multi extends lib_1.Emitter {
6
+ constructor(targets) {
7
+ super();
8
+ this.targets = targets;
9
+ this.cleanup = () => {
10
+ this.removeAllListeners();
11
+ this.targets.forEach(t => t.cleanup());
12
+ };
13
+ targets.forEach(t => {
14
+ t.on('*', (verb, ...args) => this.emit(verb, ...args));
15
+ });
16
+ }
17
+ get connections() {
18
+ return this.targets.flatMap(t => t.connections);
19
+ }
20
+ send(...payload) {
21
+ this.targets.forEach(t => t.send(...payload));
22
+ }
23
+ }
24
+ exports.Multi = Multi;
25
+ //# sourceMappingURL=Multi.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Multi.cjs","sourceRoot":"","sources":["../../target/Multi.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAIrC,MAAa,KAAM,SAAQ,aAAO;IAChC,YAAqB,OAAiB;QACpC,KAAK,EAAE,CAAA;QADY,YAAO,GAAP,OAAO,CAAU;QAgBtC,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QACxC,CAAC,CAAA;QAhBC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,CAAC,GAAG,OAAgB;QACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAA;IAC/C,CAAC;CAMF;AArBD,sBAqBC"}
@@ -0,0 +1,10 @@
1
+ import { Emitter } from '@welshman/lib';
2
+ import type { Message } from '@welshman/util';
3
+ import type { Target } from '../Executor';
4
+ export declare class Multi extends Emitter {
5
+ readonly targets: Target[];
6
+ constructor(targets: Target[]);
7
+ get connections(): import("..").Connection[];
8
+ send(...payload: Message): void;
9
+ cleanup: () => void;
10
+ }
@@ -0,0 +1,21 @@
1
+ import { Emitter } from '@welshman/lib';
2
+ export class Multi extends Emitter {
3
+ constructor(targets) {
4
+ super();
5
+ this.targets = targets;
6
+ this.cleanup = () => {
7
+ this.removeAllListeners();
8
+ this.targets.forEach(t => t.cleanup());
9
+ };
10
+ targets.forEach(t => {
11
+ t.on('*', (verb, ...args) => this.emit(verb, ...args));
12
+ });
13
+ }
14
+ get connections() {
15
+ return this.targets.flatMap(t => t.connections);
16
+ }
17
+ send(...payload) {
18
+ this.targets.forEach(t => t.send(...payload));
19
+ }
20
+ }
21
+ //# sourceMappingURL=Multi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Multi.mjs","sourceRoot":"","sources":["../../target/Multi.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAC,MAAM,eAAe;AAIrC,MAAM,OAAO,KAAM,SAAQ,OAAO;IAChC,YAAqB,OAAiB;QACpC,KAAK,EAAE,CAAA;QADY,YAAO,GAAP,OAAO,CAAU;QAgBtC,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QACxC,CAAC,CAAA;QAhBC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,CAAC,GAAG,OAAgB;QACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAA;IAC/C,CAAC;CAMF"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Plex = void 0;
4
+ const lib_1 = require("@welshman/lib");
5
+ class Plex extends lib_1.Emitter {
6
+ constructor(urls, connection) {
7
+ super();
8
+ this.urls = urls;
9
+ this.connection = connection;
10
+ this.send = (...payload) => {
11
+ this.connection.send([{ relays: this.urls }, payload]);
12
+ };
13
+ this.onMessage = (connection, [{ relays }, [verb, ...payload]]) => {
14
+ this.emit(verb, relays[0], ...payload);
15
+ };
16
+ this.cleanup = () => {
17
+ this.removeAllListeners();
18
+ this.connection.off('receive', this.onMessage);
19
+ };
20
+ this.connection.on('receive', this.onMessage);
21
+ }
22
+ get connections() {
23
+ return [this.connection];
24
+ }
25
+ }
26
+ exports.Plex = Plex;
27
+ //# sourceMappingURL=Plex.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plex.cjs","sourceRoot":"","sources":["../../target/Plex.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAKrC,MAAa,IAAK,SAAQ,aAAO;IAC/B,YAAqB,IAAc,EAAW,UAAsB;QAClE,KAAK,EAAE,CAAA;QADY,SAAI,GAAJ,IAAI,CAAU;QAAW,eAAU,GAAV,UAAU,CAAY;QAUpE,SAAI,GAAG,CAAC,GAAG,OAAgB,EAAE,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QACtD,CAAC,CAAA;QAED,cAAS,GAAG,CAAC,UAAsB,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAc,EAAE,EAAE;YAClF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAA;QACxC,CAAC,CAAA;QAED,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAChD,CAAC,CAAA;QAlBC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,WAAW;QACb,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC1B,CAAC;CAcF;AAvBD,oBAuBC"}
@@ -0,0 +1,12 @@
1
+ import { Emitter } from '@welshman/lib';
2
+ import type { PlexMessage } from '../Socket';
3
+ import type { Connection } from '../Connection';
4
+ export declare class Plex extends Emitter {
5
+ readonly urls: string[];
6
+ readonly connection: Connection;
7
+ constructor(urls: string[], connection: Connection);
8
+ get connections(): Connection[];
9
+ send: (payload_0: string, ...payload_1: any[]) => void;
10
+ onMessage: (connection: Connection, [{ relays }, [verb, ...payload]]: PlexMessage) => void;
11
+ cleanup: () => void;
12
+ }
@@ -0,0 +1,23 @@
1
+ import { Emitter } from '@welshman/lib';
2
+ export class Plex extends Emitter {
3
+ constructor(urls, connection) {
4
+ super();
5
+ this.urls = urls;
6
+ this.connection = connection;
7
+ this.send = (...payload) => {
8
+ this.connection.send([{ relays: this.urls }, payload]);
9
+ };
10
+ this.onMessage = (connection, [{ relays }, [verb, ...payload]]) => {
11
+ this.emit(verb, relays[0], ...payload);
12
+ };
13
+ this.cleanup = () => {
14
+ this.removeAllListeners();
15
+ this.connection.off('receive', this.onMessage);
16
+ };
17
+ this.connection.on('receive', this.onMessage);
18
+ }
19
+ get connections() {
20
+ return [this.connection];
21
+ }
22
+ }
23
+ //# sourceMappingURL=Plex.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plex.mjs","sourceRoot":"","sources":["../../target/Plex.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAC,MAAM,eAAe;AAKrC,MAAM,OAAO,IAAK,SAAQ,OAAO;IAC/B,YAAqB,IAAc,EAAW,UAAsB;QAClE,KAAK,EAAE,CAAA;QADY,SAAI,GAAJ,IAAI,CAAU;QAAW,eAAU,GAAV,UAAU,CAAY;QAUpE,SAAI,GAAG,CAAC,GAAG,OAAgB,EAAE,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QACtD,CAAC,CAAA;QAED,cAAS,GAAG,CAAC,UAAsB,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAc,EAAE,EAAE;YAClF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAA;QACxC,CAAC,CAAA;QAED,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAChD,CAAC,CAAA;QAlBC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,WAAW;QACb,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC1B,CAAC;CAcF"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Relay = void 0;
4
+ const lib_1 = require("@welshman/lib");
5
+ class Relay extends lib_1.Emitter {
6
+ constructor(connection) {
7
+ super();
8
+ this.connection = connection;
9
+ this.onMessage = (connection, [verb, ...payload]) => {
10
+ this.emit(verb, connection.url, ...payload);
11
+ };
12
+ this.cleanup = () => {
13
+ this.removeAllListeners();
14
+ this.connection.off('receive', this.onMessage);
15
+ };
16
+ this.connection.on('receive', this.onMessage);
17
+ }
18
+ get connections() {
19
+ return [this.connection];
20
+ }
21
+ send(...payload) {
22
+ this.connection.send(payload);
23
+ }
24
+ }
25
+ exports.Relay = Relay;
26
+ //# sourceMappingURL=Relay.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Relay.cjs","sourceRoot":"","sources":["../../target/Relay.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAIrC,MAAa,KAAM,SAAQ,aAAO;IAChC,YAAqB,UAAsB;QACzC,KAAK,EAAE,CAAA;QADY,eAAU,GAAV,UAAU,CAAY;QAc3C,cAAS,GAAG,CAAC,UAAsB,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAU,EAAE,EAAE;YAClE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAA;QAC7C,CAAC,CAAA;QAED,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAChD,CAAC,CAAA;QAlBC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,WAAW;QACb,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI,CAAC,GAAG,OAAgB;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;CAUF;AAvBD,sBAuBC"}
@@ -0,0 +1,11 @@
1
+ import { Emitter } from '@welshman/lib';
2
+ import type { Message } from '@welshman/util';
3
+ import type { Connection } from '../Connection';
4
+ export declare class Relay extends Emitter {
5
+ readonly connection: Connection;
6
+ constructor(connection: Connection);
7
+ get connections(): Connection[];
8
+ send(...payload: Message): void;
9
+ onMessage: (connection: Connection, [verb, ...payload]: Message) => void;
10
+ cleanup: () => void;
11
+ }
@@ -0,0 +1,22 @@
1
+ import { Emitter } from '@welshman/lib';
2
+ export class Relay extends Emitter {
3
+ constructor(connection) {
4
+ super();
5
+ this.connection = connection;
6
+ this.onMessage = (connection, [verb, ...payload]) => {
7
+ this.emit(verb, connection.url, ...payload);
8
+ };
9
+ this.cleanup = () => {
10
+ this.removeAllListeners();
11
+ this.connection.off('receive', this.onMessage);
12
+ };
13
+ this.connection.on('receive', this.onMessage);
14
+ }
15
+ get connections() {
16
+ return [this.connection];
17
+ }
18
+ send(...payload) {
19
+ this.connection.send(payload);
20
+ }
21
+ }
22
+ //# sourceMappingURL=Relay.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Relay.mjs","sourceRoot":"","sources":["../../target/Relay.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAC,MAAM,eAAe;AAIrC,MAAM,OAAO,KAAM,SAAQ,OAAO;IAChC,YAAqB,UAAsB;QACzC,KAAK,EAAE,CAAA;QADY,eAAU,GAAV,UAAU,CAAY;QAc3C,cAAS,GAAG,CAAC,UAAsB,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAU,EAAE,EAAE;YAClE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAA;QAC7C,CAAC,CAAA;QAED,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAChD,CAAC,CAAA;QAlBC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,WAAW;QACb,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI,CAAC,GAAG,OAAgB;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;CAUF"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Relays = void 0;
4
+ const lib_1 = require("@welshman/lib");
5
+ class Relays extends lib_1.Emitter {
6
+ constructor(connections) {
7
+ super();
8
+ this.connections = connections;
9
+ this.send = (...payload) => {
10
+ this.connections.forEach(connection => {
11
+ connection.send(payload);
12
+ });
13
+ };
14
+ this.onMessage = (connection, [verb, ...payload]) => {
15
+ this.emit(verb, connection.url, ...payload);
16
+ };
17
+ this.cleanup = () => {
18
+ this.removeAllListeners();
19
+ this.connections.forEach(connection => {
20
+ connection.off('receive', this.onMessage);
21
+ });
22
+ };
23
+ connections.forEach(connection => {
24
+ connection.on('receive', this.onMessage);
25
+ });
26
+ }
27
+ }
28
+ exports.Relays = Relays;
29
+ //# sourceMappingURL=Relays.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Relays.cjs","sourceRoot":"","sources":["../../target/Relays.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAIrC,MAAa,MAAO,SAAQ,aAAO;IACjC,YAAqB,WAAyB;QAC5C,KAAK,EAAE,CAAA;QADY,gBAAW,GAAX,WAAW,CAAc;QAQ9C,SAAI,GAAG,CAAC,GAAG,OAAgB,EAAE,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACpC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,cAAS,GAAG,CAAC,UAAsB,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAU,EAAE,EAAE;YAClE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAA;QAC7C,CAAC,CAAA;QAED,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACpC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QApBC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC/B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC;CAkBF;AAzBD,wBAyBC"}
@@ -0,0 +1,10 @@
1
+ import { Emitter } from '@welshman/lib';
2
+ import type { Message } from '@welshman/util';
3
+ import type { Connection } from '../Connection';
4
+ export declare class Relays extends Emitter {
5
+ readonly connections: Connection[];
6
+ constructor(connections: Connection[]);
7
+ send: (payload_0: string, ...payload_1: any[]) => void;
8
+ onMessage: (connection: Connection, [verb, ...payload]: Message) => void;
9
+ cleanup: () => void;
10
+ }
@@ -0,0 +1,25 @@
1
+ import { Emitter } from '@welshman/lib';
2
+ export class Relays extends Emitter {
3
+ constructor(connections) {
4
+ super();
5
+ this.connections = connections;
6
+ this.send = (...payload) => {
7
+ this.connections.forEach(connection => {
8
+ connection.send(payload);
9
+ });
10
+ };
11
+ this.onMessage = (connection, [verb, ...payload]) => {
12
+ this.emit(verb, connection.url, ...payload);
13
+ };
14
+ this.cleanup = () => {
15
+ this.removeAllListeners();
16
+ this.connections.forEach(connection => {
17
+ connection.off('receive', this.onMessage);
18
+ });
19
+ };
20
+ connections.forEach(connection => {
21
+ connection.on('receive', this.onMessage);
22
+ });
23
+ }
24
+ }
25
+ //# sourceMappingURL=Relays.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Relays.mjs","sourceRoot":"","sources":["../../target/Relays.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAC,MAAM,eAAe;AAIrC,MAAM,OAAO,MAAO,SAAQ,OAAO;IACjC,YAAqB,WAAyB;QAC5C,KAAK,EAAE,CAAA;QADY,gBAAW,GAAX,WAAW,CAAc;QAQ9C,SAAI,GAAG,CAAC,GAAG,OAAgB,EAAE,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACpC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,cAAS,GAAG,CAAC,UAAsB,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAU,EAAE,EAAE;YAClE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAA;QAC7C,CAAC,CAAA;QAED,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACpC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QApBC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC/B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC;CAkBF"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@welshman/net",
3
+ "version": "0.0.1",
4
+ "author": "hodlbod",
5
+ "license": "MIT",
6
+ "description": "Utilities for connecting with nostr relays.",
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
10
+ "type": "module",
11
+ "files": [
12
+ "build"
13
+ ],
14
+ "types": "./build/index.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "types": "./build/index.d.ts",
18
+ "import": "./build/index.mjs",
19
+ "require": "./build/index.cjs"
20
+ }
21
+ },
22
+ "scripts": {
23
+ "pub": "npm run lint && npm run build && npm publish",
24
+ "build": "gts clean && tsc-multi",
25
+ "lint": "gts lint",
26
+ "fix": "gts fix"
27
+ },
28
+ "devDependencies": {
29
+ "@types/events": "^3.0.3",
30
+ "gts": "^5.0.1",
31
+ "tsc-multi": "^1.1.0",
32
+ "typescript": "~5.1.6"
33
+ },
34
+ "dependencies": {
35
+ "@welshman/lib": "0.0.1",
36
+ "@welshman/util": "0.0.1",
37
+ "isomorphic-ws": "^5.0.0",
38
+ "ws": "^8.16.0"
39
+ }
40
+ }