tardis-machine 18.0.0 → 18.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 (228) hide show
  1. package/benchmark.js +35 -14
  2. package/bin/tardis-machine.js +0 -1
  3. package/dist/tardismachine.d.ts.map +1 -1
  4. package/dist/tardismachine.js +20 -55
  5. package/dist/tardismachine.js.map +1 -1
  6. package/dist/ws/replay.d.ts +2 -2
  7. package/dist/ws/replay.d.ts.map +1 -1
  8. package/dist/ws/replay.js +11 -5
  9. package/dist/ws/replay.js.map +1 -1
  10. package/dist/ws/replaynormalized.d.ts +2 -2
  11. package/dist/ws/replaynormalized.d.ts.map +1 -1
  12. package/dist/ws/replaynormalized.js +7 -5
  13. package/dist/ws/replaynormalized.js.map +1 -1
  14. package/dist/ws/server.d.ts +20 -0
  15. package/dist/ws/server.d.ts.map +1 -0
  16. package/dist/ws/server.js +154 -0
  17. package/dist/ws/server.js.map +1 -0
  18. package/dist/ws/streamnormalized.d.ts +2 -2
  19. package/dist/ws/streamnormalized.d.ts.map +1 -1
  20. package/dist/ws/streamnormalized.js +7 -5
  21. package/dist/ws/streamnormalized.js.map +1 -1
  22. package/dist/ws/subscriptionsmappers.d.ts +1 -1
  23. package/dist/ws/subscriptionsmappers.d.ts.map +1 -1
  24. package/node_modules/tardis-dev/README.md +1 -1
  25. package/node_modules/tardis-dev/dist/debug.d.ts +12 -2
  26. package/node_modules/tardis-dev/dist/debug.d.ts.map +1 -1
  27. package/node_modules/tardis-dev/dist/debug.js +2 -1
  28. package/node_modules/tardis-dev/dist/debug.js.map +1 -1
  29. package/node_modules/tardis-dev/dist/downloaddatasets.d.ts.map +1 -1
  30. package/node_modules/tardis-dev/dist/downloaddatasets.js +3 -1
  31. package/node_modules/tardis-dev/dist/downloaddatasets.js.map +1 -1
  32. package/node_modules/tardis-dev/dist/handy.d.ts +5 -2
  33. package/node_modules/tardis-dev/dist/handy.d.ts.map +1 -1
  34. package/node_modules/tardis-dev/dist/handy.js +77 -90
  35. package/node_modules/tardis-dev/dist/handy.js.map +1 -1
  36. package/node_modules/tardis-dev/dist/mappers/hyperliquid.d.ts +1 -1
  37. package/node_modules/tardis-dev/dist/mappers/hyperliquid.d.ts.map +1 -1
  38. package/node_modules/tardis-dev/dist/mappers/hyperliquid.js +15 -4
  39. package/node_modules/tardis-dev/dist/mappers/hyperliquid.js.map +1 -1
  40. package/node_modules/tardis-dev/dist/mappers/index.d.ts +1 -1
  41. package/node_modules/tardis-dev/dist/realtimefeeds/mexc.d.ts +0 -7
  42. package/node_modules/tardis-dev/dist/realtimefeeds/mexc.d.ts.map +1 -1
  43. package/node_modules/tardis-dev/dist/realtimefeeds/mexc.js +2 -70
  44. package/node_modules/tardis-dev/dist/realtimefeeds/mexc.js.map +1 -1
  45. package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.d.ts +43 -0
  46. package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.d.ts.map +1 -0
  47. package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.js +294 -0
  48. package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.js.map +1 -0
  49. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.d.ts +3 -3
  50. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.d.ts.map +1 -1
  51. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.js +3 -3
  52. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.js.map +1 -1
  53. package/node_modules/tardis-dev/dist/replay.d.ts.map +1 -1
  54. package/node_modules/tardis-dev/dist/replay.js +6 -4
  55. package/node_modules/tardis-dev/dist/replay.js.map +1 -1
  56. package/node_modules/tardis-dev/dist/worker.d.ts.map +1 -1
  57. package/node_modules/tardis-dev/dist/worker.js +7 -4
  58. package/node_modules/tardis-dev/dist/worker.js.map +1 -1
  59. package/node_modules/tardis-dev/dist/zstd.d.ts +3 -0
  60. package/node_modules/tardis-dev/dist/zstd.d.ts.map +1 -0
  61. package/node_modules/tardis-dev/dist/zstd.js +122 -0
  62. package/node_modules/tardis-dev/dist/zstd.js.map +1 -0
  63. package/node_modules/tardis-dev/package.json +3 -7
  64. package/node_modules/tardis-dev/src/debug.ts +16 -1
  65. package/node_modules/tardis-dev/src/downloaddatasets.ts +3 -1
  66. package/node_modules/tardis-dev/src/external-modules.d.ts +5 -0
  67. package/node_modules/tardis-dev/src/handy.ts +100 -93
  68. package/node_modules/tardis-dev/src/mappers/hyperliquid.ts +19 -5
  69. package/node_modules/tardis-dev/src/realtimefeeds/mexc.ts +2 -72
  70. package/node_modules/tardis-dev/src/realtimefeeds/mexcprotobuf.ts +364 -0
  71. package/node_modules/tardis-dev/src/realtimefeeds/realtimefeed.ts +5 -5
  72. package/node_modules/tardis-dev/src/replay.ts +6 -4
  73. package/node_modules/tardis-dev/src/worker.ts +7 -4
  74. package/node_modules/tardis-dev/src/zstd.ts +139 -0
  75. package/package.json +9 -35
  76. package/src/tardismachine.ts +25 -66
  77. package/src/ws/replay.ts +13 -8
  78. package/src/ws/replaynormalized.ts +8 -6
  79. package/src/ws/server.ts +173 -0
  80. package/src/ws/streamnormalized.ts +8 -6
  81. package/src/ws/subscriptionsmappers.ts +1 -1
  82. package/node_modules/follow-redirects/LICENSE +0 -18
  83. package/node_modules/follow-redirects/README.md +0 -157
  84. package/node_modules/follow-redirects/debug.js +0 -15
  85. package/node_modules/follow-redirects/http.js +0 -1
  86. package/node_modules/follow-redirects/https.js +0 -1
  87. package/node_modules/follow-redirects/index.js +0 -709
  88. package/node_modules/follow-redirects/package.json +0 -58
  89. package/node_modules/long/LICENSE +0 -202
  90. package/node_modules/long/README.md +0 -286
  91. package/node_modules/long/index.d.ts +0 -2
  92. package/node_modules/long/index.js +0 -1581
  93. package/node_modules/long/package.json +0 -58
  94. package/node_modules/long/types.d.ts +0 -474
  95. package/node_modules/long/umd/index.d.ts +0 -3
  96. package/node_modules/long/umd/index.js +0 -1622
  97. package/node_modules/long/umd/package.json +0 -3
  98. package/node_modules/long/umd/types.d.ts +0 -474
  99. package/node_modules/protobufjs/LICENSE +0 -39
  100. package/node_modules/protobufjs/README.md +0 -440
  101. package/node_modules/protobufjs/dist/light/protobuf.js +0 -9276
  102. package/node_modules/protobufjs/dist/light/protobuf.js.map +0 -1
  103. package/node_modules/protobufjs/dist/light/protobuf.min.js +0 -8
  104. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +0 -1
  105. package/node_modules/protobufjs/dist/minimal/protobuf.js +0 -3556
  106. package/node_modules/protobufjs/dist/minimal/protobuf.js.map +0 -1
  107. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +0 -8
  108. package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +0 -1
  109. package/node_modules/protobufjs/dist/protobuf.js +0 -11233
  110. package/node_modules/protobufjs/dist/protobuf.js.map +0 -1
  111. package/node_modules/protobufjs/dist/protobuf.min.js +0 -8
  112. package/node_modules/protobufjs/dist/protobuf.min.js.map +0 -1
  113. package/node_modules/protobufjs/ext/README.md +0 -70
  114. package/node_modules/protobufjs/ext/debug/README.md +0 -4
  115. package/node_modules/protobufjs/ext/debug/index.js +0 -71
  116. package/node_modules/protobufjs/ext/descriptor/README.md +0 -5
  117. package/node_modules/protobufjs/ext/descriptor/index.d.ts +0 -2
  118. package/node_modules/protobufjs/ext/descriptor/index.js +0 -2
  119. package/node_modules/protobufjs/ext/descriptor.d.ts +0 -87
  120. package/node_modules/protobufjs/ext/descriptor.generated.d.ts +0 -417
  121. package/node_modules/protobufjs/ext/descriptor.js +0 -1356
  122. package/node_modules/protobufjs/ext/protojson.LICENSE +0 -201
  123. package/node_modules/protobufjs/ext/protojson.d.ts +0 -20
  124. package/node_modules/protobufjs/ext/protojson.generated.d.ts +0 -49
  125. package/node_modules/protobufjs/ext/protojson.js +0 -951
  126. package/node_modules/protobufjs/ext/textformat.d.ts +0 -19
  127. package/node_modules/protobufjs/ext/textformat.generated.d.ts +0 -33
  128. package/node_modules/protobufjs/ext/textformat.js +0 -1276
  129. package/node_modules/protobufjs/google/LICENSE +0 -27
  130. package/node_modules/protobufjs/google/README.md +0 -1
  131. package/node_modules/protobufjs/google/api/annotations.json +0 -85
  132. package/node_modules/protobufjs/google/api/annotations.proto +0 -11
  133. package/node_modules/protobufjs/google/api/http.json +0 -87
  134. package/node_modules/protobufjs/google/api/http.proto +0 -31
  135. package/node_modules/protobufjs/google/protobuf/api.json +0 -124
  136. package/node_modules/protobufjs/google/protobuf/api.proto +0 -34
  137. package/node_modules/protobufjs/google/protobuf/compiler/plugin.json +0 -126
  138. package/node_modules/protobufjs/google/protobuf/compiler/plugin.proto +0 -47
  139. package/node_modules/protobufjs/google/protobuf/descriptor.json +0 -1465
  140. package/node_modules/protobufjs/google/protobuf/descriptor.proto +0 -527
  141. package/node_modules/protobufjs/google/protobuf/source_context.json +0 -21
  142. package/node_modules/protobufjs/google/protobuf/source_context.proto +0 -7
  143. package/node_modules/protobufjs/google/protobuf/type.json +0 -209
  144. package/node_modules/protobufjs/google/protobuf/type.proto +0 -89
  145. package/node_modules/protobufjs/index.d.ts +0 -3203
  146. package/node_modules/protobufjs/index.js +0 -4
  147. package/node_modules/protobufjs/light.d.ts +0 -2
  148. package/node_modules/protobufjs/light.js +0 -4
  149. package/node_modules/protobufjs/minimal.d.ts +0 -2
  150. package/node_modules/protobufjs/minimal.js +0 -4
  151. package/node_modules/protobufjs/package.json +0 -93
  152. package/node_modules/protobufjs/src/common.js +0 -405
  153. package/node_modules/protobufjs/src/converter.js +0 -352
  154. package/node_modules/protobufjs/src/decoder.js +0 -279
  155. package/node_modules/protobufjs/src/encoder.js +0 -123
  156. package/node_modules/protobufjs/src/enum.js +0 -239
  157. package/node_modules/protobufjs/src/field.js +0 -505
  158. package/node_modules/protobufjs/src/index-light.js +0 -104
  159. package/node_modules/protobufjs/src/index-minimal.js +0 -35
  160. package/node_modules/protobufjs/src/index.js +0 -12
  161. package/node_modules/protobufjs/src/mapfield.js +0 -144
  162. package/node_modules/protobufjs/src/message.js +0 -137
  163. package/node_modules/protobufjs/src/method.js +0 -183
  164. package/node_modules/protobufjs/src/namespace.js +0 -574
  165. package/node_modules/protobufjs/src/object.js +0 -392
  166. package/node_modules/protobufjs/src/oneof.js +0 -233
  167. package/node_modules/protobufjs/src/parse.js +0 -1111
  168. package/node_modules/protobufjs/src/reader.js +0 -788
  169. package/node_modules/protobufjs/src/reader_buffer.js +0 -77
  170. package/node_modules/protobufjs/src/root.js +0 -424
  171. package/node_modules/protobufjs/src/roots.js +0 -18
  172. package/node_modules/protobufjs/src/rpc/service.js +0 -155
  173. package/node_modules/protobufjs/src/rpc.js +0 -36
  174. package/node_modules/protobufjs/src/service.js +0 -206
  175. package/node_modules/protobufjs/src/tokenize.js +0 -421
  176. package/node_modules/protobufjs/src/type.js +0 -676
  177. package/node_modules/protobufjs/src/types.js +0 -196
  178. package/node_modules/protobufjs/src/typescript.js +0 -25
  179. package/node_modules/protobufjs/src/util/aspromise.d.ts +0 -13
  180. package/node_modules/protobufjs/src/util/aspromise.js +0 -52
  181. package/node_modules/protobufjs/src/util/base64.d.ts +0 -32
  182. package/node_modules/protobufjs/src/util/base64.js +0 -146
  183. package/node_modules/protobufjs/src/util/codegen.d.ts +0 -31
  184. package/node_modules/protobufjs/src/util/codegen.js +0 -118
  185. package/node_modules/protobufjs/src/util/eventemitter.d.ts +0 -45
  186. package/node_modules/protobufjs/src/util/eventemitter.js +0 -86
  187. package/node_modules/protobufjs/src/util/fetch.d.ts +0 -56
  188. package/node_modules/protobufjs/src/util/fetch.js +0 -112
  189. package/node_modules/protobufjs/src/util/float.d.ts +0 -83
  190. package/node_modules/protobufjs/src/util/float.js +0 -335
  191. package/node_modules/protobufjs/src/util/fs.js +0 -11
  192. package/node_modules/protobufjs/src/util/longbits.js +0 -204
  193. package/node_modules/protobufjs/src/util/minimal.js +0 -511
  194. package/node_modules/protobufjs/src/util/path.d.ts +0 -22
  195. package/node_modules/protobufjs/src/util/path.js +0 -100
  196. package/node_modules/protobufjs/src/util/patterns.js +0 -7
  197. package/node_modules/protobufjs/src/util/pool.d.ts +0 -32
  198. package/node_modules/protobufjs/src/util/pool.js +0 -48
  199. package/node_modules/protobufjs/src/util/utf8.d.ts +0 -24
  200. package/node_modules/protobufjs/src/util/utf8.js +0 -190
  201. package/node_modules/protobufjs/src/util.js +0 -264
  202. package/node_modules/protobufjs/src/verifier.js +0 -185
  203. package/node_modules/protobufjs/src/wrappers.js +0 -106
  204. package/node_modules/protobufjs/src/writer.js +0 -700
  205. package/node_modules/protobufjs/src/writer_buffer.js +0 -100
  206. package/node_modules/protobufjs/tsconfig.json +0 -6
  207. package/node_modules/uWebSockets.js/ESM_wrapper.mjs +0 -53
  208. package/node_modules/uWebSockets.js/LICENSE +0 -201
  209. package/node_modules/uWebSockets.js/README.md +0 -6
  210. package/node_modules/uWebSockets.js/index.d.ts +0 -468
  211. package/node_modules/uWebSockets.js/package.json +0 -12
  212. package/node_modules/uWebSockets.js/source_commit +0 -1
  213. package/node_modules/uWebSockets.js/uws.js +0 -76
  214. package/node_modules/uWebSockets.js/uws_darwin_arm64_127.node +0 -0
  215. package/node_modules/uWebSockets.js/uws_darwin_arm64_137.node +0 -0
  216. package/node_modules/uWebSockets.js/uws_darwin_arm64_147.node +0 -0
  217. package/node_modules/uWebSockets.js/uws_darwin_x64_127.node +0 -0
  218. package/node_modules/uWebSockets.js/uws_darwin_x64_137.node +0 -0
  219. package/node_modules/uWebSockets.js/uws_darwin_x64_147.node +0 -0
  220. package/node_modules/uWebSockets.js/uws_linux_arm64_127.node +0 -0
  221. package/node_modules/uWebSockets.js/uws_linux_arm64_137.node +0 -0
  222. package/node_modules/uWebSockets.js/uws_linux_arm64_147.node +0 -0
  223. package/node_modules/uWebSockets.js/uws_linux_x64_127.node +0 -0
  224. package/node_modules/uWebSockets.js/uws_linux_x64_137.node +0 -0
  225. package/node_modules/uWebSockets.js/uws_linux_x64_147.node +0 -0
  226. package/node_modules/uWebSockets.js/uws_win32_x64_127.node +0 -0
  227. package/node_modules/uWebSockets.js/uws_win32_x64_137.node +0 -0
  228. package/node_modules/uWebSockets.js/uws_win32_x64_147.node +0 -0
@@ -1,77 +0,0 @@
1
- "use strict";
2
- module.exports = BufferReader;
3
-
4
- // extends Reader
5
- var Reader = require("./reader");
6
- BufferReader.prototype = Object.create(Reader.prototype, {
7
- constructor: {
8
- value: BufferReader,
9
- writable: true,
10
- enumerable: false,
11
- configurable: true
12
- }
13
- });
14
-
15
- var util = require("./util/minimal");
16
-
17
- /**
18
- * Constructs a new buffer reader instance.
19
- * @classdesc Wire format reader using node buffers.
20
- * @extends Reader
21
- * @constructor
22
- * @param {Buffer} buffer Buffer to read from
23
- */
24
- function BufferReader(buffer) {
25
- Reader.call(this, buffer);
26
-
27
- /**
28
- * Read buffer.
29
- * @name BufferReader#buf
30
- * @type {Buffer}
31
- */
32
- }
33
-
34
- BufferReader._configure = function () {
35
- /* istanbul ignore else */
36
- if (util.Buffer)
37
- BufferReader.prototype._slice = util.Buffer.prototype.slice;
38
- };
39
-
40
- /**
41
- * Returns raw bytes from the backing buffer without advancing the reader.
42
- * @name BufferReader#raw
43
- * @function
44
- * @param {number} start Start offset
45
- * @param {number} end End offset
46
- * @returns {Buffer} Raw bytes
47
- */
48
- BufferReader.prototype.raw = function read_raw_buffer(start, end) {
49
- return this._slice.call(this.buf, start, end);
50
- };
51
-
52
- /**
53
- * @override
54
- */
55
- BufferReader.prototype.string = function read_string_buffer() {
56
- var len = this.uint32(), // modifies pos
57
- start = this.pos,
58
- end = this.pos + len;
59
-
60
- /* istanbul ignore if */
61
- if (end > this.len)
62
- throw RangeError("index out of range: " + this.pos + " + " + len + " > " + this.len);
63
-
64
- this.pos = end;
65
- return this.buf.utf8Slice
66
- ? this.buf.utf8Slice(start, end)
67
- : this.buf.toString("utf-8", start, end);
68
- };
69
-
70
- /**
71
- * Reads a sequence of bytes preceeded by its length as a varint.
72
- * @name BufferReader#bytes
73
- * @function
74
- * @returns {Buffer} Value read
75
- */
76
-
77
- BufferReader._configure();
@@ -1,424 +0,0 @@
1
- "use strict";
2
- module.exports = Root;
3
-
4
- // extends Namespace
5
- var Namespace = require("./namespace");
6
- Root.prototype = Object.create(Namespace.prototype, {
7
- constructor: {
8
- value: Root,
9
- writable: true,
10
- enumerable: false,
11
- configurable: true
12
- }
13
- });
14
- Root.className = "Root";
15
-
16
- var Field = require("./field"),
17
- Enum = require("./enum"),
18
- OneOf = require("./oneof"),
19
- util = require("./util");
20
-
21
- var Type, // cyclic
22
- parse, // might be excluded
23
- common; // "
24
-
25
- /**
26
- * Constructs a new root namespace instance.
27
- * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.
28
- * @extends NamespaceBase
29
- * @constructor
30
- * @param {Object.<string,*>} [options] Top level options
31
- */
32
- function Root(options) {
33
- Namespace.call(this, "", options);
34
-
35
- /**
36
- * Deferred extension fields.
37
- * @type {Field[]}
38
- */
39
- this.deferred = [];
40
-
41
- /**
42
- * Resolved file names of loaded files.
43
- * @type {string[]}
44
- */
45
- this.files = [];
46
-
47
- /**
48
- * Edition, defaults to proto2 if unspecified.
49
- * @type {string}
50
- * @private
51
- */
52
- this._edition = "proto2";
53
-
54
- /**
55
- * Global lookup cache of fully qualified names.
56
- * @type {Object.<string,ReflectionObject>}
57
- * @private
58
- */
59
- this._fullyQualifiedObjects = {};
60
- }
61
-
62
- /**
63
- * Loads a namespace descriptor into a root namespace.
64
- * @param {INamespace} json Namespace descriptor
65
- * @param {Root} [root] Root namespace, defaults to create a new one if omitted
66
- * @param {number} [depth] Current nesting depth, defaults to `0`
67
- * @returns {Root} Root namespace
68
- */
69
- Root.fromJSON = function fromJSON(json, root, depth) {
70
- if (depth === undefined)
71
- depth = 0;
72
- if (depth > util.recursionLimit)
73
- throw Error("max depth exceeded");
74
- if (!root)
75
- root = new Root();
76
- if (json.options)
77
- root.setOptions(json.options);
78
- return root.addJSON(json.nested, depth).resolveAll();
79
- };
80
-
81
- /**
82
- * Resolves the path of an imported file, relative to the importing origin.
83
- * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.
84
- * @function
85
- * @param {string} origin The file name of the importing file
86
- * @param {string} target The file name being imported
87
- * @returns {string|null} Resolved path to `target` or `null` to skip the file
88
- */
89
- Root.prototype.resolvePath = util.path.resolve;
90
-
91
- /**
92
- * Fetch content from file path or url
93
- * This method exists so you can override it with your own logic.
94
- * @function
95
- * @param {string} path File path or url
96
- * @param {FetchCallback} callback Callback function
97
- * @returns {undefined}
98
- */
99
- Root.prototype.fetch = util.fetch;
100
-
101
- // A symbol-like function to safely signal synchronous loading
102
- /* istanbul ignore next */
103
- function SYNC() {} // eslint-disable-line no-empty-function
104
-
105
- /**
106
- * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.
107
- * @param {string|string[]} filename Names of one or multiple files to load
108
- * @param {IParseOptions} options Parse options
109
- * @param {LoadCallback} callback Callback function
110
- * @returns {undefined}
111
- */
112
- Root.prototype.load = function load(filename, options, callback) {
113
- if (typeof options === "function") {
114
- callback = options;
115
- options = undefined;
116
- }
117
- var self = this;
118
- if (!callback) {
119
- return util.asPromise(load, self, filename, options);
120
- }
121
-
122
- var sync = callback === SYNC; // undocumented
123
-
124
- // Finishes loading by calling the callback (exactly once)
125
- function finish(err, root) {
126
- /* istanbul ignore if */
127
- if (!callback) {
128
- return;
129
- }
130
- if (sync) {
131
- throw err;
132
- }
133
- if (root) {
134
- root.resolveAll();
135
- }
136
- var cb = callback;
137
- callback = null;
138
- cb(err, root);
139
- }
140
-
141
- // Bundled definition existence checking
142
- function getBundledFileName(filename) {
143
- var idx = filename.lastIndexOf("google/protobuf/");
144
- if (idx > -1) {
145
- var altname = filename.substring(idx);
146
- if (Object.prototype.hasOwnProperty.call(common, altname)) return altname;
147
- }
148
- if (Object.prototype.hasOwnProperty.call(common, filename)) return filename;
149
- return null;
150
- }
151
-
152
- // Processes a single file
153
- function process(filename, source, depth) {
154
- if (depth === undefined)
155
- depth = 0;
156
- try {
157
- if (depth > util.recursionLimit)
158
- throw Error("max depth exceeded");
159
- if (util.isString(source) && source.charAt(0) === "{")
160
- source = JSON.parse(source);
161
- if (!util.isString(source))
162
- self.setOptions(source.options).addJSON(source.nested);
163
- else {
164
- parse.filename = filename;
165
- var parsed = parse(source, self, options),
166
- resolved,
167
- i = 0;
168
- if (parsed.imports)
169
- for (; i < parsed.imports.length; ++i)
170
- if (resolved = getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i]))
171
- fetch(resolved, false, depth + 1);
172
- if (parsed.weakImports)
173
- for (i = 0; i < parsed.weakImports.length; ++i)
174
- if (resolved = getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i]))
175
- fetch(resolved, true, depth + 1);
176
- }
177
- } catch (err) {
178
- finish(err);
179
- }
180
- if (!sync && !queued) {
181
- finish(null, self); // only once anyway
182
- }
183
- }
184
-
185
- // Fetches a single file
186
- function fetch(filename, weak, depth) {
187
- if (depth === undefined)
188
- depth = 0;
189
- filename = getBundledFileName(filename) || filename;
190
-
191
- // Skip if already loaded / attempted
192
- if (self.files.indexOf(filename) > -1) {
193
- return;
194
- }
195
- self.files.push(filename);
196
-
197
- // Shortcut bundled definitions
198
- if (Object.prototype.hasOwnProperty.call(common, filename)) {
199
- if (sync) {
200
- process(filename, common[filename], depth);
201
- } else {
202
- ++queued;
203
- setTimeout(function() {
204
- --queued;
205
- process(filename, common[filename], depth);
206
- });
207
- }
208
- return;
209
- }
210
-
211
- // Otherwise fetch from disk or network
212
- if (sync) {
213
- var source;
214
- try {
215
- source = util.fs.readFileSync(filename).toString("utf8");
216
- } catch (err) {
217
- if (!weak)
218
- finish(err);
219
- return;
220
- }
221
- process(filename, source, depth);
222
- } else {
223
- ++queued;
224
- self.fetch(filename, function(err, source) {
225
- --queued;
226
- /* istanbul ignore if */
227
- if (!callback) {
228
- return; // terminated meanwhile
229
- }
230
- if (err) {
231
- /* istanbul ignore else */
232
- if (!weak)
233
- finish(err);
234
- else if (!queued) // can't be covered reliably
235
- finish(null, self);
236
- return;
237
- }
238
- process(filename, source, depth);
239
- });
240
- }
241
- }
242
- var queued = 0;
243
-
244
- // Assembling the root namespace doesn't require working type
245
- // references anymore, so we can load everything in parallel
246
- if (util.isString(filename)) {
247
- filename = [ filename ];
248
- }
249
- for (var i = 0, resolved; i < filename.length; ++i)
250
- if (resolved = self.resolvePath("", filename[i]))
251
- fetch(resolved);
252
- if (sync) {
253
- self.resolveAll();
254
- return self;
255
- }
256
- if (!queued) {
257
- finish(null, self);
258
- }
259
-
260
- return self;
261
- };
262
- // function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined
263
-
264
- /**
265
- * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.
266
- * @function Root#load
267
- * @param {string|string[]} filename Names of one or multiple files to load
268
- * @param {LoadCallback} callback Callback function
269
- * @returns {undefined}
270
- * @variation 2
271
- */
272
- // function load(filename:string, callback:LoadCallback):undefined
273
-
274
- /**
275
- * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.
276
- * @function Root#load
277
- * @param {string|string[]} filename Names of one or multiple files to load
278
- * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.
279
- * @returns {Promise<Root>} Promise
280
- * @variation 3
281
- */
282
- // function load(filename:string, [options:IParseOptions]):Promise<Root>
283
-
284
- /**
285
- * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).
286
- * @function Root#loadSync
287
- * @param {string|string[]} filename Names of one or multiple files to load
288
- * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.
289
- * @returns {Root} Root namespace
290
- * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid
291
- */
292
- Root.prototype.loadSync = function loadSync(filename, options) {
293
- if (!util.isNode)
294
- throw Error("not supported");
295
- return this.load(filename, options, SYNC);
296
- };
297
-
298
- /**
299
- * @override
300
- */
301
- Root.prototype.resolveAll = function resolveAll() {
302
- if (!this._needsRecursiveResolve) return this;
303
-
304
- if (this.deferred.length)
305
- throw Error("unresolvable extensions: " + this.deferred.map(function(field) {
306
- return "'extend " + field.extend + "' in " + field.parent.fullName;
307
- }).join(", "));
308
- return Namespace.prototype.resolveAll.call(this);
309
- };
310
-
311
- // only uppercased (and thus conflict-free) children are exposed, see below
312
- var exposeRe = /^[A-Z]/;
313
-
314
- /**
315
- * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.
316
- * @param {Root} root Root instance
317
- * @param {Field} field Declaring extension field witin the declaring type
318
- * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise
319
- * @inner
320
- * @ignore
321
- */
322
- function tryHandleExtension(root, field) {
323
- var extendedType = field.parent.lookup(field.extend);
324
- if (extendedType) {
325
- var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);
326
- //do not allow to extend same field twice to prevent the error
327
- if (extendedType.get(sisterField.name)) {
328
- return true;
329
- }
330
- sisterField.declaringField = field;
331
- field.extensionField = sisterField;
332
- extendedType.add(sisterField);
333
- return true;
334
- }
335
- return false;
336
- }
337
-
338
- /**
339
- * Called when any object is added to this root or its sub-namespaces.
340
- * @param {ReflectionObject} object Object added
341
- * @returns {undefined}
342
- * @private
343
- */
344
- Root.prototype._handleAdd = function _handleAdd(object) {
345
- if (object instanceof Field) {
346
-
347
- if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)
348
- if (!tryHandleExtension(this, object))
349
- this.deferred.push(object);
350
-
351
- } else if (object instanceof Enum) {
352
-
353
- if (exposeRe.test(object.name))
354
- object.parent[object.name] = object.values; // expose enum values as property of its parent
355
-
356
- } else if (!(object instanceof OneOf)) /* everything else is a namespace */ {
357
-
358
- if (object instanceof Type) // Try to handle any deferred extensions
359
- for (var i = 0; i < this.deferred.length;)
360
- if (tryHandleExtension(this, this.deferred[i]))
361
- this.deferred.splice(i, 1);
362
- else
363
- ++i;
364
- for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace
365
- this._handleAdd(object._nestedArray[j]);
366
- if (exposeRe.test(object.name))
367
- object.parent[object.name] = object; // expose namespace as property of its parent
368
- }
369
-
370
- if (object instanceof Type || object instanceof Enum || object instanceof Field) {
371
- // Only store types and enums for quick lookup during resolve.
372
- this._fullyQualifiedObjects[object.fullName] = object;
373
- }
374
-
375
- // The above also adds uppercased (and thus conflict-free) nested types, services and enums as
376
- // properties of namespaces just like static code does. This allows using a .d.ts generated for
377
- // a static module with reflection-based solutions where the condition is met.
378
- };
379
-
380
- /**
381
- * Called when any object is removed from this root or its sub-namespaces.
382
- * @param {ReflectionObject} object Object removed
383
- * @returns {undefined}
384
- * @private
385
- */
386
- Root.prototype._handleRemove = function _handleRemove(object) {
387
- if (object instanceof Field) {
388
-
389
- if (/* an extension field */ object.extend !== undefined) {
390
- if (/* already handled */ object.extensionField) { // remove its sister field
391
- object.extensionField.parent.remove(object.extensionField);
392
- object.extensionField = null;
393
- } else { // cancel the extension
394
- var index = this.deferred.indexOf(object);
395
- /* istanbul ignore else */
396
- if (index > -1)
397
- this.deferred.splice(index, 1);
398
- }
399
- }
400
-
401
- } else if (object instanceof Enum) {
402
-
403
- if (exposeRe.test(object.name))
404
- delete object.parent[object.name]; // unexpose enum values
405
-
406
- } else if (object instanceof Namespace) {
407
-
408
- for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace
409
- this._handleRemove(object._nestedArray[i]);
410
-
411
- if (exposeRe.test(object.name))
412
- delete object.parent[object.name]; // unexpose namespaces
413
-
414
- }
415
-
416
- delete this._fullyQualifiedObjects[object.fullName];
417
- };
418
-
419
- // Sets up cyclic dependencies (called in index-light)
420
- Root._configure = function(Type_, parse_, common_) {
421
- Type = Type_;
422
- parse = parse_;
423
- common = common_;
424
- };
@@ -1,18 +0,0 @@
1
- "use strict";
2
- module.exports = Object.create(null);
3
-
4
- /**
5
- * Named roots.
6
- * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).
7
- * Can also be used manually to make roots available across modules.
8
- * @name roots
9
- * @type {Object.<string,Root>}
10
- * @example
11
- * // pbjs -r myroot -o compiled.js ...
12
- *
13
- * // in another module:
14
- * require("./compiled.js");
15
- *
16
- * // in any subsequent module:
17
- * var root = protobuf.roots["myroot"];
18
- */
@@ -1,155 +0,0 @@
1
- "use strict";
2
- module.exports = Service;
3
-
4
- var util = require("../util/minimal");
5
-
6
- // Extends EventEmitter
7
- Service.prototype = Object.create(util.EventEmitter.prototype, {
8
- constructor: {
9
- value: Service,
10
- writable: true,
11
- enumerable: false,
12
- configurable: true
13
- }
14
- });
15
-
16
- /**
17
- * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.
18
- *
19
- * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.
20
- * @typedef rpc.ServiceMethodCallback
21
- * @template TRes extends Message<TRes>
22
- * @type {function}
23
- * @param {Error|null} error Error, if any
24
- * @param {TRes} [response] Response message
25
- * @returns {undefined}
26
- */
27
-
28
- /**
29
- * A service method part of a {@link rpc.Service} as created by {@link Service.create}.
30
- * @typedef rpc.ServiceMethod
31
- * @template TReq extends Message<TReq>
32
- * @template TRes extends Message<TRes>
33
- * @type {{
34
- * (request: TReq|Properties<TReq>, callback: rpc.ServiceMethodCallback<TRes>): void;
35
- * (request: TReq|Properties<TReq>): Promise<TRes>;
36
- * readonly name: string;
37
- * readonly path: string;
38
- * readonly requestType: string;
39
- * readonly responseType: string;
40
- * readonly requestStream: true|undefined;
41
- * readonly responseStream: true|undefined;
42
- * }}
43
- */
44
-
45
- /**
46
- * Constructs a new RPC service instance.
47
- * @classdesc An RPC service as returned by {@link Service#create}.
48
- * @exports rpc.Service
49
- * @extends util.EventEmitter
50
- * @constructor
51
- * @param {RPCImpl} rpcImpl RPC implementation
52
- * @param {boolean} [requestDelimited=false] Whether requests are length-delimited
53
- * @param {boolean} [responseDelimited=false] Whether responses are length-delimited
54
- */
55
- function Service(rpcImpl, requestDelimited, responseDelimited) {
56
-
57
- if (typeof rpcImpl !== "function")
58
- throw TypeError("rpcImpl must be a function");
59
-
60
- util.EventEmitter.call(this);
61
-
62
- /**
63
- * RPC implementation. Becomes `null` once the service is ended.
64
- * @type {RPCImpl|null}
65
- */
66
- this.rpcImpl = rpcImpl;
67
-
68
- /**
69
- * Whether requests are length-delimited.
70
- * @type {boolean}
71
- */
72
- this.requestDelimited = Boolean(requestDelimited);
73
-
74
- /**
75
- * Whether responses are length-delimited.
76
- * @type {boolean}
77
- */
78
- this.responseDelimited = Boolean(responseDelimited);
79
- }
80
-
81
- /**
82
- * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.
83
- * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method
84
- * @param {Constructor<TReq>} requestCtor Request constructor
85
- * @param {Constructor<TRes>} responseCtor Response constructor
86
- * @param {TReq|Properties<TReq>} request Request message or plain object
87
- * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback
88
- * @returns {undefined}
89
- * @template TReq extends Message<TReq>
90
- * @template TRes extends Message<TRes>
91
- */
92
- Service.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {
93
-
94
- if (!request)
95
- throw TypeError("request must be specified");
96
-
97
- var self = this;
98
- if (!callback)
99
- return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);
100
-
101
- if (!self.rpcImpl) {
102
- setTimeout(function() { callback(Error("already ended")); }, 0);
103
- return undefined;
104
- }
105
-
106
- try {
107
- return self.rpcImpl(
108
- method,
109
- requestCtor[self.requestDelimited ? "encodeDelimited" : "encode"](request).finish(),
110
- function rpcCallback(err, response) {
111
-
112
- if (err) {
113
- self.emit("error", err, method);
114
- return callback(err);
115
- }
116
-
117
- if (response === null) {
118
- self.end(/* endedByRPC */ true);
119
- return undefined;
120
- }
121
-
122
- if (!(response instanceof responseCtor)) {
123
- try {
124
- response = responseCtor[self.responseDelimited ? "decodeDelimited" : "decode"](response);
125
- } catch (err) {
126
- self.emit("error", err, method);
127
- return callback(err);
128
- }
129
- }
130
-
131
- self.emit("data", response, method);
132
- return callback(null, response);
133
- }
134
- );
135
- } catch (err) {
136
- self.emit("error", err, method);
137
- setTimeout(function() { callback(err); }, 0);
138
- return undefined;
139
- }
140
- };
141
-
142
- /**
143
- * Ends this service and emits the `end` event.
144
- * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.
145
- * @returns {rpc.Service} `this`
146
- */
147
- Service.prototype.end = function end(endedByRPC) {
148
- if (this.rpcImpl) {
149
- if (!endedByRPC) // signal end to rpcImpl
150
- this.rpcImpl(null, null, null);
151
- this.rpcImpl = null;
152
- this.emit("end").off();
153
- }
154
- return this;
155
- };