@streamr/trackerless-network 100.0.0-testnet-two.4 → 100.0.0-testnet-three.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 (188) hide show
  1. package/dist/src/NetworkNode.d.ts +2 -1
  2. package/dist/src/NetworkNode.js +6 -2
  3. package/dist/src/NetworkNode.js.map +1 -1
  4. package/dist/src/NetworkStack.d.ts +6 -2
  5. package/dist/src/NetworkStack.js +21 -1
  6. package/dist/src/NetworkStack.js.map +1 -1
  7. package/dist/src/exports.d.ts +1 -0
  8. package/dist/src/exports.js +4 -1
  9. package/dist/src/exports.js.map +1 -1
  10. package/dist/src/logic/DeliveryRpcLocal.js +1 -0
  11. package/dist/src/logic/DeliveryRpcLocal.js.map +1 -1
  12. package/dist/src/logic/DuplicateMessageDetector.d.ts +3 -3
  13. package/dist/src/logic/DuplicateMessageDetector.js +10 -6
  14. package/dist/src/logic/DuplicateMessageDetector.js.map +1 -1
  15. package/dist/src/logic/EntryPointDiscovery.js +8 -5
  16. package/dist/src/logic/EntryPointDiscovery.js.map +1 -1
  17. package/dist/src/logic/Layer0Node.d.ts +2 -0
  18. package/dist/src/logic/Layer1Node.d.ts +4 -4
  19. package/dist/src/logic/NodeList.d.ts +6 -8
  20. package/dist/src/logic/NodeList.js +10 -12
  21. package/dist/src/logic/NodeList.js.map +1 -1
  22. package/dist/src/logic/RandomGraphNode.d.ts +5 -5
  23. package/dist/src/logic/RandomGraphNode.js +27 -22
  24. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  25. package/dist/src/logic/StreamrNode.d.ts +3 -2
  26. package/dist/src/logic/StreamrNode.js +25 -6
  27. package/dist/src/logic/StreamrNode.js.map +1 -1
  28. package/dist/src/logic/createRandomGraphNode.d.ts +2 -2
  29. package/dist/src/logic/createRandomGraphNode.js +16 -15
  30. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  31. package/dist/src/logic/inspect/InspectSession.js +3 -2
  32. package/dist/src/logic/inspect/InspectSession.js.map +1 -1
  33. package/dist/src/logic/inspect/Inspector.d.ts +5 -3
  34. package/dist/src/logic/inspect/Inspector.js +15 -2
  35. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  36. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.d.ts +1 -1
  37. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js +18 -17
  38. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -1
  39. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -1
  40. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +3 -4
  41. package/dist/src/logic/neighbor-discovery/Handshaker.js +29 -27
  42. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  43. package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +1 -1
  44. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +4 -2
  45. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  46. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +2 -1
  47. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +8 -4
  48. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  49. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +4 -1
  50. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +31 -20
  51. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
  52. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -1
  53. package/dist/src/logic/node-info/NodeInfoClient.d.ts +9 -0
  54. package/dist/src/logic/node-info/NodeInfoClient.js +19 -0
  55. package/dist/src/logic/node-info/NodeInfoClient.js.map +1 -0
  56. package/dist/src/logic/node-info/NodeInfoRpcLocal.d.ts +12 -0
  57. package/dist/src/logic/node-info/NodeInfoRpcLocal.js +29 -0
  58. package/dist/src/logic/node-info/NodeInfoRpcLocal.js.map +1 -0
  59. package/dist/src/logic/node-info/NodeInfoRpcRemote.d.ts +6 -0
  60. package/dist/src/logic/node-info/NodeInfoRpcRemote.js +11 -0
  61. package/dist/src/logic/node-info/NodeInfoRpcRemote.js.map +1 -0
  62. package/dist/src/logic/propagation/FifoMapWithTTL.js +7 -3
  63. package/dist/src/logic/propagation/FifoMapWithTTL.js.map +1 -1
  64. package/dist/src/logic/propagation/Propagation.js +3 -0
  65. package/dist/src/logic/propagation/Propagation.js.map +1 -1
  66. package/dist/src/logic/propagation/PropagationTaskStore.js +1 -0
  67. package/dist/src/logic/propagation/PropagationTaskStore.js.map +1 -1
  68. package/dist/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.js +1 -1
  69. package/dist/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.js.map +1 -1
  70. package/dist/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.js +1 -1
  71. package/dist/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.js.map +1 -1
  72. package/dist/src/logic/protocol-integration/stream-message/StreamMessageTranslator.js +43 -15
  73. package/dist/src/logic/protocol-integration/stream-message/StreamMessageTranslator.js.map +1 -1
  74. package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.d.ts +3 -0
  75. package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.js +14 -0
  76. package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.js.map +1 -0
  77. package/dist/src/logic/proxy/ProxyClient.d.ts +1 -1
  78. package/dist/src/logic/proxy/ProxyClient.js +18 -11
  79. package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
  80. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js +2 -1
  81. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -1
  82. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -1
  83. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.d.ts +5 -3
  84. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +9 -2
  85. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
  86. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.d.ts +1 -0
  87. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js +11 -0
  88. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -1
  89. package/dist/src/logic/utils.js.map +1 -1
  90. package/dist/src/proto/google/protobuf/any.js +8 -8
  91. package/dist/src/proto/google/protobuf/any.js.map +1 -1
  92. package/dist/src/proto/google/protobuf/empty.js +2 -4
  93. package/dist/src/proto/google/protobuf/empty.js.map +1 -1
  94. package/dist/src/proto/google/protobuf/timestamp.js +10 -10
  95. package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
  96. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -5
  97. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +38 -29
  98. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  99. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +26 -12
  100. package/dist/src/proto/packages/dht/protos/DhtRpc.js +12 -16
  101. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  102. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -3
  103. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
  104. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +36 -0
  105. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +50 -17
  106. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
  107. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +118 -5
  108. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +91 -8
  109. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  110. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +16 -0
  111. package/dist/test/benchmark/first-message.js +7 -5
  112. package/dist/test/benchmark/first-message.js.map +1 -1
  113. package/dist/test/utils/utils.js +2 -1
  114. package/dist/test/utils/utils.js.map +1 -1
  115. package/jest.config.js +3 -38
  116. package/package.json +7 -7
  117. package/protos/NetworkRpc.proto +38 -5
  118. package/src/NetworkNode.ts +5 -1
  119. package/src/NetworkStack.ts +23 -2
  120. package/src/exports.ts +4 -0
  121. package/src/logic/DuplicateMessageDetector.ts +7 -7
  122. package/src/logic/EntryPointDiscovery.ts +3 -3
  123. package/src/logic/Layer0Node.ts +2 -0
  124. package/src/logic/Layer1Node.ts +4 -4
  125. package/src/logic/NodeList.ts +9 -15
  126. package/src/logic/RandomGraphNode.ts +27 -23
  127. package/src/logic/StreamrNode.ts +18 -4
  128. package/src/logic/createRandomGraphNode.ts +19 -18
  129. package/src/logic/inspect/Inspector.ts +18 -5
  130. package/src/logic/neighbor-discovery/HandshakeRpcLocal.ts +18 -18
  131. package/src/logic/neighbor-discovery/Handshaker.ts +31 -32
  132. package/src/logic/neighbor-discovery/NeighborFinder.ts +2 -2
  133. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +7 -5
  134. package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +39 -27
  135. package/src/logic/node-info/NodeInfoClient.ts +21 -0
  136. package/src/logic/node-info/NodeInfoRpcLocal.ts +35 -0
  137. package/src/logic/node-info/NodeInfoRpcRemote.ts +11 -0
  138. package/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.ts +1 -1
  139. package/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.ts +1 -1
  140. package/src/logic/protocol-integration/stream-message/StreamMessageTranslator.ts +56 -27
  141. package/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.ts +11 -0
  142. package/src/logic/proxy/ProxyClient.ts +10 -10
  143. package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +15 -4
  144. package/src/logic/temporary-connection/TemporaryConnectionRpcRemote.ts +11 -0
  145. package/src/proto/google/protobuf/any.ts +4 -4
  146. package/src/proto/google/protobuf/empty.ts +2 -4
  147. package/src/proto/google/protobuf/timestamp.ts +4 -4
  148. package/src/proto/packages/dht/protos/DhtRpc.client.ts +6 -7
  149. package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -4
  150. package/src/proto/packages/dht/protos/DhtRpc.ts +37 -20
  151. package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
  152. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +42 -1
  153. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +17 -1
  154. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +155 -12
  155. package/test/benchmark/first-message.ts +28 -8
  156. package/test/end-to-end/inspect.test.ts +13 -1
  157. package/test/end-to-end/proxy-and-full-node.test.ts +14 -1
  158. package/test/end-to-end/proxy-connections.test.ts +14 -2
  159. package/test/end-to-end/proxy-key-exchange.test.ts +15 -8
  160. package/test/end-to-end/random-graph-with-real-connections.test.ts +21 -21
  161. package/test/end-to-end/webrtc-full-node-network.test.ts +3 -3
  162. package/test/end-to-end/websocket-full-node-network.test.ts +3 -3
  163. package/test/integration/Handshakes.test.ts +8 -8
  164. package/test/integration/NetworkNode.test.ts +19 -1
  165. package/test/integration/NetworkRpc.test.ts +3 -2
  166. package/test/integration/NodeInfoRpc.test.ts +103 -0
  167. package/test/integration/Propagation.test.ts +2 -2
  168. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +20 -21
  169. package/test/integration/RandomGraphNode-Layer1Node.test.ts +22 -19
  170. package/test/integration/stream-without-default-entrypoints.test.ts +17 -11
  171. package/test/unit/HandshakeRpcLocal.test.ts +15 -15
  172. package/test/unit/Handshaker.test.ts +3 -3
  173. package/test/unit/NeighborFinder.test.ts +5 -5
  174. package/test/unit/NeighborUpdateRpcLocal.test.ts +125 -0
  175. package/test/unit/NodeList.test.ts +56 -57
  176. package/test/unit/Propagation.test.ts +4 -2
  177. package/test/unit/RandomGraphNode.test.ts +7 -8
  178. package/test/unit/StreamMessageTranslator.test.ts +7 -4
  179. package/test/unit/StreamrNode.test.ts +2 -0
  180. package/test/unit/TemporaryConnectionRpcLocal.test.ts +32 -0
  181. package/test/unit/oldStreamMessageBinaryUtils.test.ts +39 -0
  182. package/test/utils/mock/MockLayer0Node.ts +6 -1
  183. package/test/utils/mock/MockLayer1Node.ts +2 -2
  184. package/test/utils/mock/Transport.ts +1 -1
  185. package/test/utils/utils.ts +3 -1
  186. package/tsconfig.jest.json +3 -3
  187. package/tsconfig.node.json +0 -1
  188. package/dist/package.json +0 -55
@@ -0,0 +1,32 @@
1
+ import { TemporaryConnectionRpcLocal } from '../../src/logic/temporary-connection/TemporaryConnectionRpcLocal'
2
+ import { MockTransport } from '../utils/mock/Transport'
3
+ import { createMockPeerDescriptor } from '../utils/utils'
4
+ import { ListeningRpcCommunicator, getDhtAddressFromRaw } from '@streamr/dht'
5
+
6
+ describe('TemporaryConnectionRpcLocal', () => {
7
+
8
+ const peerDescriptor = createMockPeerDescriptor()
9
+ let rpcCommunicator: ListeningRpcCommunicator
10
+ let rpcLocal: TemporaryConnectionRpcLocal
11
+
12
+ beforeEach(() => {
13
+ rpcCommunicator = new ListeningRpcCommunicator('mock', new MockTransport())
14
+ rpcLocal = new TemporaryConnectionRpcLocal({
15
+ localPeerDescriptor: peerDescriptor,
16
+ rpcCommunicator
17
+ })
18
+ })
19
+
20
+ afterEach(() => {
21
+ rpcCommunicator.destroy()
22
+ })
23
+
24
+ it('Open and Close Connection', async () => {
25
+ const caller = createMockPeerDescriptor()
26
+ await rpcLocal.openConnection({}, { incomingSourceDescriptor: caller } as any)
27
+ expect(rpcLocal.getNodes().get(getDhtAddressFromRaw(caller.nodeId))).toBeDefined()
28
+ await rpcLocal.closeConnection({}, { incomingSourceDescriptor: caller } as any)
29
+ expect(rpcLocal.getNodes().get(getDhtAddressFromRaw(caller.nodeId))).toBeUndefined()
30
+ })
31
+
32
+ })
@@ -0,0 +1,39 @@
1
+ import {
2
+ ContentType,
3
+ EncryptionType,
4
+ MessageID,
5
+ MessageRef,
6
+ SignatureType,
7
+ StreamMessage,
8
+ toStreamID
9
+ } from '@streamr/protocol'
10
+ import { toEthereumAddress } from '@streamr/utils'
11
+ import { convertBytesToStreamMessage, convertStreamMessageToBytes } from '../../src/exports'
12
+
13
+ describe('oldStreamMessageBinaryUtils', () => {
14
+ it('convertStreamMessageToBytes and convertBytesToStreamMessage', () => {
15
+ const streamMessage = new StreamMessage({
16
+ messageId: new MessageID(
17
+ toStreamID('test.ens/foobar'),
18
+ 0,
19
+ 10001,
20
+ 0,
21
+ toEthereumAddress('0x1234567890123456789012345678901234567890'),
22
+ 'msgChainId'
23
+ ),
24
+ prevMsgRef: new MessageRef(10000, 1),
25
+ content: new Uint8Array([1, 2, 3]),
26
+ contentType: ContentType.BINARY,
27
+ encryptionType: EncryptionType.NONE,
28
+ groupKeyId: '0x1234567890123456789012345678901234567890',
29
+ signatureType: SignatureType.SECP256K1,
30
+ signature: new Uint8Array([7, 8, 9])
31
+ })
32
+
33
+ const bytes = convertStreamMessageToBytes(streamMessage)
34
+ expect(bytes).toBeInstanceOf(Uint8Array)
35
+ expect(bytes.length).toBeGreaterThan(100)
36
+ const convertedStreamMessage = convertBytesToStreamMessage(bytes)
37
+ expect(convertedStreamMessage).toEqual(streamMessage)
38
+ })
39
+ })
@@ -45,7 +45,12 @@ export class MockLayer0Node extends EventEmitter implements Layer0Node {
45
45
  }
46
46
 
47
47
  // eslint-disable-next-line class-methods-use-this
48
- getAllConnectionPeerDescriptors(): PeerDescriptor[] {
48
+ getConnections(): PeerDescriptor[] {
49
+ return []
50
+ }
51
+
52
+ // eslint-disable-next-line class-methods-use-this
53
+ getNeighbors(): PeerDescriptor[] {
49
54
  return []
50
55
  }
51
56
 
@@ -16,11 +16,11 @@ export class MockLayer1Node extends EventEmitter implements Layer1Node {
16
16
  return []
17
17
  }
18
18
 
19
- getAllNeighborPeerDescriptors(): PeerDescriptor[] {
19
+ getNeighbors(): PeerDescriptor[] {
20
20
  return this.kbucketPeers
21
21
  }
22
22
 
23
- getNumberOfNeighbors(): number {
23
+ getNeighborCount(): number {
24
24
  return this.kbucketPeers.length
25
25
  }
26
26
 
@@ -14,7 +14,7 @@ export class MockTransport extends EventEmitter implements ITransport {
14
14
  }
15
15
 
16
16
  // eslint-disable-next-line class-methods-use-this
17
- getAllConnectionPeerDescriptors(): PeerDescriptor[] {
17
+ getConnections(): PeerDescriptor[] {
18
18
  return []
19
19
  }
20
20
 
@@ -16,6 +16,7 @@ import {
16
16
  ContentType,
17
17
  EncryptionType,
18
18
  MessageID,
19
+ SignatureType,
19
20
  StreamMessage,
20
21
  StreamMessageType
21
22
  } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
@@ -84,7 +85,8 @@ export const createStreamMessage = (
84
85
  content: utf8ToBinary(content),
85
86
  contentType: ContentType.JSON,
86
87
  messageId,
87
- signature: hexToBinary('0x1234')
88
+ signature: hexToBinary('0x1234'),
89
+ signatureType: SignatureType.SECP256K1,
88
90
  }
89
91
  return msg
90
92
  }
@@ -8,9 +8,9 @@
8
8
  "src/**/*",
9
9
  "test/**/*"
10
10
  ],
11
- "exclude": [
12
- ],
13
11
  "references": [
14
- { "path": "tsconfig.node.json" }
12
+ { "path": "../protocol/tsconfig.node.json" },
13
+ { "path": "../proto-rpc/tsconfig.node.json" },
14
+ { "path": "../dht/tsconfig.node.json" }
15
15
  ]
16
16
  }
@@ -6,7 +6,6 @@
6
6
  },
7
7
  "include": [
8
8
  "src/**/*",
9
- "package.json",
10
9
  "test/benchmark/first-message.ts",
11
10
  "test/utils/utils.ts"
12
11
  ],
package/dist/package.json DELETED
@@ -1,55 +0,0 @@
1
- {
2
- "name": "@streamr/trackerless-network",
3
- "version": "100.0.0-testnet-two.4",
4
- "description": "Minimal and extendable implementation of the Streamr Network node.",
5
- "repository": {
6
- "type": "git",
7
- "url": "git+https://github.com/streamr-dev/network-monorepo.git",
8
- "directory": "packages/trackerless-network"
9
- },
10
- "main": "dist/src/exports.js",
11
- "types": "dist/src/exports.d.ts",
12
- "license": "STREAMR NETWORK OPEN SOURCE LICENSE",
13
- "author": "Streamr Network AG <contact@streamr.network>",
14
- "scripts": {
15
- "build": "tsc -b tsconfig.node.json",
16
- "build-browser": "webpack --mode=development --progress",
17
- "generate-protoc-code": "./proto.sh",
18
- "check": "tsc -p ./tsconfig.jest.json --noEmit",
19
- "clean": "jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true",
20
- "coverage": "jest --coverage",
21
- "eslint": "eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'",
22
- "test": "npm run test-unit && npm run test-integration && npm run test-end-to-end",
23
- "test-browser": "karma start karma.config.js",
24
- "test-unit": "jest test/unit",
25
- "test-integration": "jest --bail test/integration",
26
- "test-end-to-end": "jest --bail test/end-to-end",
27
- "network": "ts-node bin/network",
28
- "run-joining-benchmark": "node --max-old-space-size=24288 dist/test/benchmark/first-message.js"
29
- },
30
- "dependencies": {
31
- "@protobuf-ts/runtime": "^2.8.2",
32
- "@protobuf-ts/runtime-rpc": "^2.8.2",
33
- "@streamr/dht": "100.0.0-testnet-two.4",
34
- "@streamr/proto-rpc": "100.0.0-testnet-two.4",
35
- "@streamr/protocol": "100.0.0-testnet-two.4",
36
- "@streamr/test-utils": "100.0.0-testnet-two.4",
37
- "@streamr/utils": "100.0.0-testnet-two.4",
38
- "eventemitter3": "^5.0.0",
39
- "lodash": "^4.17.21",
40
- "uuid": "^9.0.1",
41
- "yallist": "^4.0.0"
42
- },
43
- "devDependencies": {
44
- "@streamr/browser-test-runner": "^0.0.1",
45
- "@types/lodash": "^4.14.202",
46
- "@types/uuid": "^9.0.7",
47
- "@types/yallist": "^4.0.1",
48
- "commander": "^11.1.0",
49
- "expect": "^29.6.2",
50
- "express": "^4.17.1",
51
- "ts-essentials": "^9.4.1",
52
- "ts-loader": "^9.5.1",
53
- "ts-node": "^10.9.1"
54
- }
55
- }