@liphium/neoroute-ts 0.1.0

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 (145) hide show
  1. package/.prettierignore +5 -0
  2. package/.prettierrc +8 -0
  3. package/.zed/settings.json +3 -0
  4. package/dist/client.d.ts +8 -0
  5. package/dist/client.d.ts.map +1 -0
  6. package/dist/client.js +15 -0
  7. package/dist/client.js.map +1 -0
  8. package/dist/config.d.ts +5 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +2 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/examples/http_client/src/main.d.ts +2 -0
  13. package/dist/examples/http_client/src/main.d.ts.map +1 -0
  14. package/dist/examples/http_client/src/main.js +51 -0
  15. package/dist/examples/http_client/src/main.js.map +1 -0
  16. package/dist/examples/http_client/src/messages.d.ts +9 -0
  17. package/dist/examples/http_client/src/messages.d.ts.map +1 -0
  18. package/dist/examples/http_client/src/messages.js +2 -0
  19. package/dist/examples/http_client/src/messages.js.map +1 -0
  20. package/dist/examples/http_client/src/requests.d.ts +5 -0
  21. package/dist/examples/http_client/src/requests.d.ts.map +1 -0
  22. package/dist/examples/http_client/src/requests.js +56 -0
  23. package/dist/examples/http_client/src/requests.js.map +1 -0
  24. package/dist/examples/web_socket_client/src/main.d.ts +2 -0
  25. package/dist/examples/web_socket_client/src/main.d.ts.map +1 -0
  26. package/dist/examples/web_socket_client/src/main.js +59 -0
  27. package/dist/examples/web_socket_client/src/main.js.map +1 -0
  28. package/dist/examples/web_socket_client/src/messages.d.ts +14 -0
  29. package/dist/examples/web_socket_client/src/messages.d.ts.map +1 -0
  30. package/dist/examples/web_socket_client/src/messages.js +3 -0
  31. package/dist/examples/web_socket_client/src/messages.js.map +1 -0
  32. package/dist/examples/web_socket_client/src/receiver.d.ts +3 -0
  33. package/dist/examples/web_socket_client/src/receiver.d.ts.map +1 -0
  34. package/dist/examples/web_socket_client/src/receiver.js +8 -0
  35. package/dist/examples/web_socket_client/src/receiver.js.map +1 -0
  36. package/dist/examples/web_socket_client/src/requests.d.ts +4 -0
  37. package/dist/examples/web_socket_client/src/requests.d.ts.map +1 -0
  38. package/dist/examples/web_socket_client/src/requests.js +32 -0
  39. package/dist/examples/web_socket_client/src/requests.js.map +1 -0
  40. package/dist/index.d.ts +11 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +11 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/interfaces.d.ts +24 -0
  45. package/dist/interfaces.d.ts.map +1 -0
  46. package/dist/interfaces.js +7 -0
  47. package/dist/interfaces.js.map +1 -0
  48. package/dist/logger.d.ts +9 -0
  49. package/dist/logger.d.ts.map +1 -0
  50. package/dist/logger.js +11 -0
  51. package/dist/logger.js.map +1 -0
  52. package/dist/receiver.d.ts +12 -0
  53. package/dist/receiver.d.ts.map +1 -0
  54. package/dist/receiver.js +49 -0
  55. package/dist/receiver.js.map +1 -0
  56. package/dist/sender.d.ts +26 -0
  57. package/dist/sender.d.ts.map +1 -0
  58. package/dist/sender.js +135 -0
  59. package/dist/sender.js.map +1 -0
  60. package/dist/src/client.d.ts +8 -0
  61. package/dist/src/client.d.ts.map +1 -0
  62. package/dist/src/client.js +15 -0
  63. package/dist/src/client.js.map +1 -0
  64. package/dist/src/config.d.ts +5 -0
  65. package/dist/src/config.d.ts.map +1 -0
  66. package/dist/src/config.js +2 -0
  67. package/dist/src/config.js.map +1 -0
  68. package/dist/src/index.d.ts +11 -0
  69. package/dist/src/index.d.ts.map +1 -0
  70. package/dist/src/index.js +11 -0
  71. package/dist/src/index.js.map +1 -0
  72. package/dist/src/interfaces.d.ts +24 -0
  73. package/dist/src/interfaces.d.ts.map +1 -0
  74. package/dist/src/interfaces.js +7 -0
  75. package/dist/src/interfaces.js.map +1 -0
  76. package/dist/src/logger.d.ts +9 -0
  77. package/dist/src/logger.d.ts.map +1 -0
  78. package/dist/src/logger.js +11 -0
  79. package/dist/src/logger.js.map +1 -0
  80. package/dist/src/receiver.d.ts +12 -0
  81. package/dist/src/receiver.d.ts.map +1 -0
  82. package/dist/src/receiver.js +49 -0
  83. package/dist/src/receiver.js.map +1 -0
  84. package/dist/src/sender.d.ts +26 -0
  85. package/dist/src/sender.d.ts.map +1 -0
  86. package/dist/src/sender.js +135 -0
  87. package/dist/src/sender.js.map +1 -0
  88. package/dist/src/transporter/transporter_http.d.ts +6 -0
  89. package/dist/src/transporter/transporter_http.d.ts.map +1 -0
  90. package/dist/src/transporter/transporter_http.js +30 -0
  91. package/dist/src/transporter/transporter_http.js.map +1 -0
  92. package/dist/src/transporter/transporter_websocket.d.ts +17 -0
  93. package/dist/src/transporter/transporter_websocket.d.ts.map +1 -0
  94. package/dist/src/transporter/transporter_websocket.js +93 -0
  95. package/dist/src/transporter/transporter_websocket.js.map +1 -0
  96. package/dist/src/user_error.d.ts +4 -0
  97. package/dist/src/user_error.d.ts.map +1 -0
  98. package/dist/src/user_error.js +11 -0
  99. package/dist/src/user_error.js.map +1 -0
  100. package/dist/src/util.d.ts +9 -0
  101. package/dist/src/util.d.ts.map +1 -0
  102. package/dist/src/util.js +42 -0
  103. package/dist/src/util.js.map +1 -0
  104. package/dist/transporter/transporter_http.d.ts +6 -0
  105. package/dist/transporter/transporter_http.d.ts.map +1 -0
  106. package/dist/transporter/transporter_http.js +30 -0
  107. package/dist/transporter/transporter_http.js.map +1 -0
  108. package/dist/transporter/transporter_websocket.d.ts +17 -0
  109. package/dist/transporter/transporter_websocket.d.ts.map +1 -0
  110. package/dist/transporter/transporter_websocket.js +93 -0
  111. package/dist/transporter/transporter_websocket.js.map +1 -0
  112. package/dist/user_error.d.ts +4 -0
  113. package/dist/user_error.d.ts.map +1 -0
  114. package/dist/user_error.js +11 -0
  115. package/dist/user_error.js.map +1 -0
  116. package/dist/util.d.ts +9 -0
  117. package/dist/util.d.ts.map +1 -0
  118. package/dist/util.js +42 -0
  119. package/dist/util.js.map +1 -0
  120. package/examples/http_client/package.json +20 -0
  121. package/examples/http_client/src/main.ts +59 -0
  122. package/examples/http_client/src/messages.ts +9 -0
  123. package/examples/http_client/src/requests.ts +64 -0
  124. package/examples/http_client/tsconfig.json +44 -0
  125. package/examples/web_socket_client/package.json +20 -0
  126. package/examples/web_socket_client/src/main.ts +72 -0
  127. package/examples/web_socket_client/src/messages.ts +22 -0
  128. package/examples/web_socket_client/src/receiver.ts +8 -0
  129. package/examples/web_socket_client/src/requests.ts +51 -0
  130. package/examples/web_socket_client/tsconfig.json +44 -0
  131. package/package.json +36 -0
  132. package/pnpm-workspace.yaml +5 -0
  133. package/readme.md +49 -0
  134. package/src/client.ts +17 -0
  135. package/src/config.ts +4 -0
  136. package/src/index.ts +13 -0
  137. package/src/interfaces.ts +31 -0
  138. package/src/logger.ts +18 -0
  139. package/src/receiver.ts +56 -0
  140. package/src/sender.ts +203 -0
  141. package/src/transporter/transporter_http.ts +37 -0
  142. package/src/transporter/transporter_websocket.ts +115 -0
  143. package/src/user_error.ts +21 -0
  144. package/src/util.ts +58 -0
  145. package/tsconfig.json +44 -0
@@ -0,0 +1,5 @@
1
+ node_modules
2
+ dist
3
+ coverage
4
+ .turbo
5
+ pnpm-lock.yaml
package/.prettierrc ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "useTabs": true,
3
+ "tabWidth": 4,
4
+ "semi": true,
5
+ "trailingComma": "all",
6
+ "singleQuote": true,
7
+ "printWidth": 80
8
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "tab_size": 4,
3
+ }
@@ -0,0 +1,8 @@
1
+ export declare class Ctx {
2
+ private _data;
3
+ private _name;
4
+ constructor(data: Uint8Array, name: string);
5
+ data(): Uint8Array;
6
+ name(): string;
7
+ }
8
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,qBAAa,GAAG;IACf,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAS;gBAEV,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;IAKnC,IAAI,IAAI,UAAU;IAIlB,IAAI,IAAI,MAAM;CAGrB"}
package/dist/client.js ADDED
@@ -0,0 +1,15 @@
1
+ export class Ctx {
2
+ _data;
3
+ _name;
4
+ constructor(data, name) {
5
+ this._data = data;
6
+ this._name = name;
7
+ }
8
+ data() {
9
+ return this._data;
10
+ }
11
+ name() {
12
+ return this._name;
13
+ }
14
+ }
15
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;IACP,KAAK,CAAa;IAClB,KAAK,CAAS;IAEtB,YAAY,IAAgB,EAAE,IAAY;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,IAAI;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAEM,IAAI;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;CACD"}
@@ -0,0 +1,5 @@
1
+ export interface Config {
2
+ errorHandler: (error: Error) => void;
3
+ requestTimeout?: number;
4
+ }
5
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACtB,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB"}
package/dist/config.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../examples/http_client/src/main.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ import { Receiver, HTTPTransporter } from '@liphium/neoroute-ts';
2
+ import { testHttpSimple, testHttpGroup1, testHttpGroup2 } from './requests.js';
3
+ import readline from 'node:readline';
4
+ async function main() {
5
+ // 1. Setup Receiver
6
+ const httpReceiver = new Receiver({
7
+ errorHandler: (err) => console.log('Global HTTP receiver error:', err),
8
+ requestTimeout: 5000,
9
+ });
10
+ // 2. Setup HTTP Transporter with the required auth token
11
+ const httpTransporter = new HTTPTransporter(httpReceiver, 'POST', 'http://localhost:6121/?token=secret_token');
12
+ console.log('HTTP Transporter initialized and ready.');
13
+ // 3. Setup console interface
14
+ const rl = readline.createInterface({
15
+ input: process.stdin,
16
+ output: process.stdout,
17
+ prompt: '> ',
18
+ });
19
+ console.log('\n--- HTTP Client Commands ---');
20
+ console.log("1: Test 'simple.route'");
21
+ console.log("2: Test 'group1.route1'");
22
+ console.log("3: Test 'group1.group2.route1'");
23
+ console.log('exit: Quit the program');
24
+ console.log('----------------------------\n');
25
+ rl.prompt();
26
+ rl.on('line', (line) => {
27
+ const input = line.trim();
28
+ if (input === '1') {
29
+ testHttpSimple(httpReceiver).then(() => rl.prompt());
30
+ }
31
+ else if (input === '2') {
32
+ testHttpGroup1(httpReceiver, 10).then(() => rl.prompt());
33
+ }
34
+ else if (input === '3') {
35
+ testHttpGroup2(httpReceiver, 42).then(() => rl.prompt());
36
+ }
37
+ else if (input === 'exit') {
38
+ rl.close();
39
+ }
40
+ else {
41
+ console.log('Unknown command.');
42
+ rl.prompt();
43
+ }
44
+ });
45
+ rl.on('close', () => {
46
+ console.log('Shutting down HTTP client.');
47
+ process.exit(0);
48
+ });
49
+ }
50
+ main();
51
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../examples/http_client/src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,KAAK,UAAU,IAAI;IAClB,oBAAoB;IACpB,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC;QACjC,YAAY,EAAE,CAAC,GAAU,EAAE,EAAE,CAC5B,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC;QAChD,cAAc,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,yDAAyD;IACzD,MAAM,eAAe,GAAG,IAAI,eAAe,CAC1C,YAAY,EACZ,MAAM,EACN,2CAA2C,CAC3C,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAEvD,6BAA6B;IAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,EAAE,CAAC,MAAM,EAAE,CAAC;IAEZ,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE1B,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnB,cAAc,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC1B,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC1B,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,EAAE,CAAC,MAAM,EAAE,CAAC;QACb,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface TestRequest {
2
+ field1: string;
3
+ field2: number;
4
+ }
5
+ export interface TestResponse {
6
+ field1: string;
7
+ field2: number;
8
+ }
9
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../examples/http_client/src/messages.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../examples/http_client/src/messages.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { Receiver } from '@liphium/neoroute-ts';
2
+ export declare function testHttpSimple(receiver: Receiver): Promise<void>;
3
+ export declare function testHttpGroup1(receiver: Receiver, numberValue: number): Promise<void>;
4
+ export declare function testHttpGroup2(receiver: Receiver, numberValue: number): Promise<void>;
5
+ //# sourceMappingURL=requests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../../examples/http_client/src/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,sBAAsB,CAAC;AAG3D,wBAAsB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtE;AAED,wBAAsB,cAAc,CACnC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,cAAc,CACnC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -0,0 +1,56 @@
1
+ import { Receiver, UserError } from '@liphium/neoroute-ts';
2
+ import {} from './messages.js';
3
+ export async function testHttpSimple(receiver) {
4
+ try {
5
+ console.log('Sending simple HTTP request...');
6
+ const resp = receiver.sendNoRequest('simple.route');
7
+ console.log('Simple HTTP Response:', resp);
8
+ }
9
+ catch (err) {
10
+ if (err instanceof UserError) {
11
+ console.log('UserError on simple route:', err.message);
12
+ }
13
+ else {
14
+ console.log('System error on simple route:', err);
15
+ }
16
+ }
17
+ }
18
+ export async function testHttpGroup1(receiver, numberValue) {
19
+ try {
20
+ console.log('Sending group1 HTTP request...');
21
+ const req = {
22
+ field1: 'Testing Group 1',
23
+ field2: numberValue,
24
+ };
25
+ const resp = receiver.send('group1.route1', req);
26
+ console.log('Group 1 HTTP Response:', resp);
27
+ }
28
+ catch (err) {
29
+ if (err instanceof UserError) {
30
+ console.log('UserError on group1 route:', err.message);
31
+ }
32
+ else {
33
+ console.log('System error on group1 route:', err);
34
+ }
35
+ }
36
+ }
37
+ export async function testHttpGroup2(receiver, numberValue) {
38
+ try {
39
+ console.log('Sending group2 HTTP request...');
40
+ const req = {
41
+ field1: 'Testing Group 2',
42
+ field2: numberValue,
43
+ };
44
+ const resp = await receiver.send('group1.group2.route1', req);
45
+ console.log('Group 2 HTTP Response:', resp);
46
+ }
47
+ catch (err) {
48
+ if (err instanceof UserError) {
49
+ console.log('UserError on group2 route:', err.message);
50
+ }
51
+ else {
52
+ console.log('System error on group2 route:', err);
53
+ }
54
+ }
55
+ }
56
+ //# sourceMappingURL=requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.js","sourceRoot":"","sources":["../../../../examples/http_client/src/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAuC,MAAM,eAAe,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAkB;IACtD,IAAI,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAe,cAAc,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,QAAkB,EAClB,WAAmB;IAEnB,IAAI,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAgB;YACxB,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,WAAW;SACnB,CAAC;QACF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CACzB,eAAe,EACf,GAAG,CACH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,QAAkB,EAClB,WAAmB;IAEnB,IAAI,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAgB;YACxB,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,WAAW;SACnB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAC/B,sBAAsB,EACtB,GAAG,CACH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;AACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../examples/web_socket_client/src/main.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import { newPromiseWithResolver, Receiver, WebSocketTransporter, } from '@liphium/neoroute-ts';
2
+ import { registerReceiver } from './receiver.js';
3
+ import * as readline from 'node:readline';
4
+ import { sendEchoRequest, sendSubmitPunRequest } from './requests.js';
5
+ async function main() {
6
+ const r = new Receiver({
7
+ errorHandler: (err) => {
8
+ console.log('error with receiver', err);
9
+ },
10
+ requestTimeout: 1000, // time.Second * 1 in Millisekunden
11
+ });
12
+ registerReceiver(r);
13
+ const { resolve, promise } = newPromiseWithResolver();
14
+ const t = new WebSocketTransporter(r, {
15
+ onOpen: () => {
16
+ resolve();
17
+ },
18
+ });
19
+ try {
20
+ t.connect('ws://localhost:6121/');
21
+ await promise;
22
+ console.log('Connected to server.');
23
+ }
24
+ catch (err) {
25
+ console.error(`failed to connect to server: ${err}`);
26
+ process.exit(1);
27
+ }
28
+ const rl = readline.createInterface({
29
+ input: process.stdin,
30
+ output: process.stdout,
31
+ prompt: '',
32
+ });
33
+ console.log('Type exit to quit the program.');
34
+ console.log('Type "Pun " followed by a pun to submit it to the server.');
35
+ console.log('Type "Echo " followed by a message to receive a echo message from the server.');
36
+ rl.on('line', (line) => {
37
+ const input = line.trim();
38
+ if (input.startsWith('Pun ')) {
39
+ const pun = input.slice(4);
40
+ console.log('Sending pun to server');
41
+ sendSubmitPunRequest(r, pun);
42
+ }
43
+ else if (input.startsWith('Echo ')) {
44
+ const msg = input.slice(5);
45
+ console.log('Sending echo to server');
46
+ sendEchoRequest(r, msg);
47
+ }
48
+ else if (input === 'exit') {
49
+ t.close();
50
+ rl.close();
51
+ }
52
+ });
53
+ rl.on('close', () => {
54
+ console.log('Connection closed');
55
+ process.exit(0);
56
+ });
57
+ }
58
+ main();
59
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../examples/web_socket_client/src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,sBAAsB,EACtB,QAAQ,EACR,oBAAoB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEtE,KAAK,UAAU,IAAI;IAClB,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC;QACtB,YAAY,EAAE,CAAC,GAAU,EAAE,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;QACD,cAAc,EAAE,IAAI,EAAE,mCAAmC;KACzD,CAAC,CAAC;IAEH,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEpB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,sBAAsB,EAAQ,CAAC;IAC5D,MAAM,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC,EAAE;QACrC,MAAM,EAAE,GAAG,EAAE;YACZ,OAAO,EAAE,CAAC;QACX,CAAC;KACD,CAAC,CAAC;IAEH,IAAI,CAAC;QACJ,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAClC,MAAM,OAAO,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,EAAE;KACV,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CACV,+EAA+E,CAC/E,CAAC;IAEF,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE1B,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,EAAE,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface EchoRequest {
2
+ message: string;
3
+ }
4
+ export interface SubmitPunRequest {
5
+ pun: string;
6
+ }
7
+ export interface EchoResponse {
8
+ requestNumber: number;
9
+ message: string;
10
+ }
11
+ export interface NewPunEvent {
12
+ pun: string;
13
+ }
14
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../examples/web_socket_client/src/messages.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,GAAG,EAAE,MAAM,CAAC;CACZ;AAID,MAAM,WAAW,YAAY;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,WAAW,WAAW;IAC3B,GAAG,EAAE,MAAM,CAAC;CACZ"}
@@ -0,0 +1,3 @@
1
+ // Outgoing
2
+ export {};
3
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../examples/web_socket_client/src/messages.ts"],"names":[],"mappings":"AAAA,WAAW"}
@@ -0,0 +1,3 @@
1
+ import { Receiver } from '@liphium/neoroute-ts';
2
+ export declare function registerReceiver(receiver: Receiver): void;
3
+ //# sourceMappingURL=receiver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver.d.ts","sourceRoot":"","sources":["../../../../examples/web_socket_client/src/receiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAO,MAAM,sBAAsB,CAAC;AAGrD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAIzD"}
@@ -0,0 +1,8 @@
1
+ import { Receiver, Ctx } from '@liphium/neoroute-ts';
2
+ import {} from './messages.js';
3
+ export function registerReceiver(receiver) {
4
+ receiver.receive('new_pun_submitted', (_, req) => {
5
+ console.log(`A new pun was submitted by someone, it is ${req.pun}`);
6
+ });
7
+ }
8
+ //# sourceMappingURL=receiver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver.js","sourceRoot":"","sources":["../../../../examples/web_socket_client/src/receiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAoB,MAAM,eAAe,CAAC;AAEjD,MAAM,UAAU,gBAAgB,CAAC,QAAkB;IAClD,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAM,EAAE,GAAgB,EAAE,EAAE;QAClE,OAAO,CAAC,GAAG,CAAC,6CAA6C,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Receiver } from '@liphium/neoroute-ts';
2
+ export declare function sendSubmitPunRequest(receiver: Receiver, pun: string): Promise<void>;
3
+ export declare function sendEchoRequest(receiver: Receiver, message: string): Promise<void>;
4
+ //# sourceMappingURL=requests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../../examples/web_socket_client/src/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,sBAAsB,CAAC;AAO3D,wBAAsB,oBAAoB,CACzC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAsB,eAAe,CACpC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAiBf"}
@@ -0,0 +1,32 @@
1
+ import { Receiver, UserError } from '@liphium/neoroute-ts';
2
+ import {} from './messages.js';
3
+ export async function sendSubmitPunRequest(receiver, pun) {
4
+ try {
5
+ const requestPayload = { pun: pun };
6
+ // sendOk throws an error if it fails, otherwise it's successful
7
+ const res = await receiver.sendOk('submit_pun', requestPayload);
8
+ if (res instanceof UserError) {
9
+ console.log("Couldn't submit pun because:", res.message);
10
+ return;
11
+ }
12
+ console.log('Pun submitted successfully!');
13
+ }
14
+ catch (err) {
15
+ console.log('Failed to send submit pun request:', err);
16
+ }
17
+ }
18
+ export async function sendEchoRequest(receiver, message) {
19
+ try {
20
+ const requestPayload = { message: message };
21
+ const res = await receiver.send('echo', requestPayload);
22
+ if (res instanceof UserError) {
23
+ console.log('Echo failed because:', res.message);
24
+ return;
25
+ }
26
+ console.log(`Received ${res.requestNumber}. echo: ${res.message}`);
27
+ }
28
+ catch (err) {
29
+ console.log('Failed to send echo request:', err);
30
+ }
31
+ }
32
+ //# sourceMappingURL=requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.js","sourceRoot":"","sources":["../../../../examples/web_socket_client/src/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAIN,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,QAAkB,EAClB,GAAW;IAEX,IAAI,CAAC;QACJ,MAAM,cAAc,GAAqB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAEtD,gEAAgE;QAChE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAChC,YAAY,EACZ,cAAc,CACd,CAAC;QACF,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACzD,OAAO;QACR,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,QAAkB,EAClB,OAAe;IAEf,IAAI,CAAC;QACJ,MAAM,cAAc,GAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAEzD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAC9B,MAAM,EACN,cAAc,CACd,CAAC;QACF,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACjD,OAAO;QACR,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,aAAa,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;AACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from './interfaces.js';
2
+ export * from './config.js';
3
+ export * from './logger.js';
4
+ export * from './client.js';
5
+ export * from './sender.js';
6
+ export * from './receiver.js';
7
+ export * from './util.js';
8
+ export * from './user_error.js';
9
+ export * from './transporter/transporter_http.js';
10
+ export * from './transporter/transporter_websocket.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAE1B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ export * from './interfaces.js';
2
+ export * from './config.js';
3
+ export * from './logger.js';
4
+ export * from './client.js';
5
+ export * from './sender.js';
6
+ export * from './receiver.js';
7
+ export * from './util.js';
8
+ export * from './user_error.js';
9
+ export * from './transporter/transporter_http.js';
10
+ export * from './transporter/transporter_websocket.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAE1B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC"}
@@ -0,0 +1,24 @@
1
+ export declare enum MessageType {
2
+ Response = 0,
3
+ Event = 1
4
+ }
5
+ export interface Message {
6
+ type: MessageType;
7
+ data: Uint8Array;
8
+ }
9
+ export interface Event {
10
+ name: string;
11
+ data: Uint8Array;
12
+ }
13
+ export interface Response {
14
+ id: number;
15
+ has_data: boolean;
16
+ error: boolean;
17
+ data: Uint8Array;
18
+ }
19
+ export interface Request {
20
+ id: number;
21
+ route: string;
22
+ data: Uint8Array;
23
+ }
24
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAEA,oBAAY,WAAW;IACtB,QAAQ,IAAA;IACR,KAAK,IAAA;CACL;AAED,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;CACjB;AAID,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;CACjB"}
@@ -0,0 +1,7 @@
1
+ // Incoming messages
2
+ export var MessageType;
3
+ (function (MessageType) {
4
+ MessageType[MessageType["Response"] = 0] = "Response";
5
+ MessageType[MessageType["Event"] = 1] = "Event";
6
+ })(MessageType || (MessageType = {}));
7
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAEpB,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACtB,qDAAQ,CAAA;IACR,+CAAK,CAAA;AACN,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB"}
@@ -0,0 +1,9 @@
1
+ export interface Logger {
2
+ debug(msg: string, ...args: any[]): void;
3
+ info(msg: string, ...args: any[]): void;
4
+ warn(msg: string, ...args: any[]): void;
5
+ error(msg: string, ...args: any[]): void;
6
+ }
7
+ export declare let logger: Logger;
8
+ export declare function setLogger(l: Logger): void;
9
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACtB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CACzC;AAGD,eAAO,IAAI,MAAM,EAAE,MAKlB,CAAC;AAEF,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,QAElC"}
package/dist/logger.js ADDED
@@ -0,0 +1,11 @@
1
+ // Default logger falls back to the standard console
2
+ export let logger = {
3
+ debug: console.debug,
4
+ info: console.info,
5
+ warn: console.warn,
6
+ error: console.error,
7
+ };
8
+ export function setLogger(l) {
9
+ logger = l;
10
+ }
11
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAOA,oDAAoD;AACpD,MAAM,CAAC,IAAI,MAAM,GAAW;IAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,KAAK,EAAE,OAAO,CAAC,KAAK;CACpB,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,CAAS;IAClC,MAAM,GAAG,CAAC,CAAC;AACZ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Ctx } from './client.js';
2
+ import type { Config } from './config.js';
3
+ import { Sender } from './sender.js';
4
+ import { type Message } from './interfaces.js';
5
+ export declare class Receiver extends Sender {
6
+ private receiver;
7
+ constructor(config: Config);
8
+ protected handleOther(message: Message): void;
9
+ private handleEvent;
10
+ receive<E>(eventName: string, handleFunc: (c: Ctx, data: E) => void): void;
11
+ }
12
+ //# sourceMappingURL=receiver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver.d.ts","sourceRoot":"","sources":["../src/receiver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGxE,qBAAa,QAAS,SAAQ,MAAM;IACnC,OAAO,CAAC,QAAQ,CAA4C;gBAEhD,MAAM,EAAE,MAAM;cAIP,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQtD,OAAO,CAAC,WAAW;IAoBZ,OAAO,CAAC,CAAC,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,GACnC,IAAI;CAUP"}
@@ -0,0 +1,49 @@
1
+ import { decode } from '@msgpack/msgpack';
2
+ import { Ctx } from './client.js';
3
+ import { Sender } from './sender.js';
4
+ import { MessageType } from './interfaces.js';
5
+ import { logger } from './logger.js';
6
+ export class Receiver extends Sender {
7
+ receiver = new Map();
8
+ constructor(config) {
9
+ super(config);
10
+ }
11
+ handleOther(message) {
12
+ if (message.type === MessageType.Event) {
13
+ this.handleEvent(message.data);
14
+ }
15
+ else {
16
+ super.handleOther(message);
17
+ }
18
+ }
19
+ handleEvent(eventBytes) {
20
+ let ev;
21
+ try {
22
+ ev = decode(eventBytes);
23
+ }
24
+ catch (error) {
25
+ logger.info('failed to unmarshal event', error);
26
+ return;
27
+ }
28
+ const receiverFunc = this.receiver.get(ev.name);
29
+ if (!receiverFunc) {
30
+ logger.info('received event for non existing receiver', ev.name);
31
+ return;
32
+ }
33
+ const c = new Ctx(ev.data, ev.name);
34
+ receiverFunc(c);
35
+ }
36
+ /// Handle receiving of an event. Only one handleFunc can exist at the same time.
37
+ receive(eventName, handleFunc) {
38
+ this.receiver.set(eventName, (c) => {
39
+ try {
40
+ const data = decode(c.data());
41
+ handleFunc(c, data);
42
+ }
43
+ catch (error) {
44
+ logger.info('failed to unmarshal event data', error);
45
+ }
46
+ });
47
+ }
48
+ }
49
+ //# sourceMappingURL=receiver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver.js","sourceRoot":"","sources":["../src/receiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAc,WAAW,EAAgB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,OAAO,QAAS,SAAQ,MAAM;IAC3B,QAAQ,GAAkC,IAAI,GAAG,EAAE,CAAC;IAE5D,YAAY,MAAc;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC;IACf,CAAC;IAEkB,WAAW,CAAC,OAAgB;QAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAEO,WAAW,CAAC,UAAsB;QACzC,IAAI,EAAS,CAAC;QACd,IAAI,CAAC;YACJ,EAAE,GAAG,MAAM,CAAC,UAAU,CAAU,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO;QACR,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACjE,OAAO;QACR,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACpC,YAAY,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,iFAAiF;IAC1E,OAAO,CACb,SAAiB,EACjB,UAAqC;QAErC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAM,EAAE,EAAE;YACvC,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAM,CAAC;gBACnC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -0,0 +1,26 @@
1
+ import { type Message } from './interfaces.js';
2
+ import type { Config } from './config.js';
3
+ import { UserError } from './user_error.js';
4
+ export declare class Sender {
5
+ private config;
6
+ private sendFunc?;
7
+ private requestId;
8
+ private waiters;
9
+ constructor(config: Config);
10
+ getRequestId(): number;
11
+ setSendFunc(sendFunc: (data: Uint8Array) => Promise<void>): void;
12
+ handle(reqData: Uint8Array): void;
13
+ handleResponse(respBytes: Uint8Array): void;
14
+ protected handleOther(message: Message): void;
15
+ removeResponseWaiter(requestId: number): void;
16
+ private sendRequest;
17
+ getConfig(): Config;
18
+ private sendInternal;
19
+ send<RS, RQ>(route: string, req: RQ): Promise<RS | UserError>;
20
+ sendOk<RQ>(route: string, req: RQ): Promise<UserError>;
21
+ sendOkNoRequest(route: string): Promise<UserError>;
22
+ sendNoRequest<RS>(route: string): Promise<RS | UserError>;
23
+ sendNoResponse<RQ>(route: string, req: RQ): Promise<void>;
24
+ sendPing(route: string): Promise<void>;
25
+ }
26
+ //# sourceMappingURL=sender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../src/sender.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,OAAO,EAIZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAM1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,MAAM;IAClB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,CAAsC;IACvD,OAAO,CAAC,SAAS,CAAa;IAG9B,OAAO,CAAC,OAAO,CAAoD;gBAEvD,MAAM,EAAE,MAAM;IAOnB,YAAY,IAAI,MAAM;IAKtB,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIhE,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAgBjC,cAAc,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAwBlD,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAItC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;YAItC,WAAW;IAmClB,SAAS,IAAI,MAAM;YAKZ,YAAY;IA6BnB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAM7D,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAQhD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIlD,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAQzD,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnD"}