tardis-machine 18.0.0 → 18.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) 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/handy.d.ts +3 -1
  30. package/node_modules/tardis-dev/dist/handy.d.ts.map +1 -1
  31. package/node_modules/tardis-dev/dist/handy.js +72 -86
  32. package/node_modules/tardis-dev/dist/handy.js.map +1 -1
  33. package/node_modules/tardis-dev/dist/realtimefeeds/mexc.d.ts +0 -7
  34. package/node_modules/tardis-dev/dist/realtimefeeds/mexc.d.ts.map +1 -1
  35. package/node_modules/tardis-dev/dist/realtimefeeds/mexc.js +2 -70
  36. package/node_modules/tardis-dev/dist/realtimefeeds/mexc.js.map +1 -1
  37. package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.d.ts +43 -0
  38. package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.d.ts.map +1 -0
  39. package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.js +294 -0
  40. package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.js.map +1 -0
  41. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.d.ts +3 -3
  42. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.d.ts.map +1 -1
  43. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.js +3 -3
  44. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.js.map +1 -1
  45. package/node_modules/tardis-dev/dist/worker.js +2 -2
  46. package/node_modules/tardis-dev/dist/worker.js.map +1 -1
  47. package/node_modules/tardis-dev/package.json +3 -7
  48. package/node_modules/tardis-dev/src/debug.ts +16 -1
  49. package/node_modules/tardis-dev/src/external-modules.d.ts +5 -0
  50. package/node_modules/tardis-dev/src/handy.ts +93 -89
  51. package/node_modules/tardis-dev/src/realtimefeeds/mexc.ts +2 -72
  52. package/node_modules/tardis-dev/src/realtimefeeds/mexcprotobuf.ts +364 -0
  53. package/node_modules/tardis-dev/src/realtimefeeds/realtimefeed.ts +5 -5
  54. package/node_modules/tardis-dev/src/worker.ts +2 -2
  55. package/package.json +8 -34
  56. package/src/tardismachine.ts +25 -66
  57. package/src/ws/replay.ts +13 -8
  58. package/src/ws/replaynormalized.ts +8 -6
  59. package/src/ws/server.ts +173 -0
  60. package/src/ws/streamnormalized.ts +8 -6
  61. package/src/ws/subscriptionsmappers.ts +1 -1
  62. package/node_modules/follow-redirects/LICENSE +0 -18
  63. package/node_modules/follow-redirects/README.md +0 -157
  64. package/node_modules/follow-redirects/debug.js +0 -15
  65. package/node_modules/follow-redirects/http.js +0 -1
  66. package/node_modules/follow-redirects/https.js +0 -1
  67. package/node_modules/follow-redirects/index.js +0 -709
  68. package/node_modules/follow-redirects/package.json +0 -58
  69. package/node_modules/long/LICENSE +0 -202
  70. package/node_modules/long/README.md +0 -286
  71. package/node_modules/long/index.d.ts +0 -2
  72. package/node_modules/long/index.js +0 -1581
  73. package/node_modules/long/package.json +0 -58
  74. package/node_modules/long/types.d.ts +0 -474
  75. package/node_modules/long/umd/index.d.ts +0 -3
  76. package/node_modules/long/umd/index.js +0 -1622
  77. package/node_modules/long/umd/package.json +0 -3
  78. package/node_modules/long/umd/types.d.ts +0 -474
  79. package/node_modules/protobufjs/LICENSE +0 -39
  80. package/node_modules/protobufjs/README.md +0 -440
  81. package/node_modules/protobufjs/dist/light/protobuf.js +0 -9276
  82. package/node_modules/protobufjs/dist/light/protobuf.js.map +0 -1
  83. package/node_modules/protobufjs/dist/light/protobuf.min.js +0 -8
  84. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +0 -1
  85. package/node_modules/protobufjs/dist/minimal/protobuf.js +0 -3556
  86. package/node_modules/protobufjs/dist/minimal/protobuf.js.map +0 -1
  87. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +0 -8
  88. package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +0 -1
  89. package/node_modules/protobufjs/dist/protobuf.js +0 -11233
  90. package/node_modules/protobufjs/dist/protobuf.js.map +0 -1
  91. package/node_modules/protobufjs/dist/protobuf.min.js +0 -8
  92. package/node_modules/protobufjs/dist/protobuf.min.js.map +0 -1
  93. package/node_modules/protobufjs/ext/README.md +0 -70
  94. package/node_modules/protobufjs/ext/debug/README.md +0 -4
  95. package/node_modules/protobufjs/ext/debug/index.js +0 -71
  96. package/node_modules/protobufjs/ext/descriptor/README.md +0 -5
  97. package/node_modules/protobufjs/ext/descriptor/index.d.ts +0 -2
  98. package/node_modules/protobufjs/ext/descriptor/index.js +0 -2
  99. package/node_modules/protobufjs/ext/descriptor.d.ts +0 -87
  100. package/node_modules/protobufjs/ext/descriptor.generated.d.ts +0 -417
  101. package/node_modules/protobufjs/ext/descriptor.js +0 -1356
  102. package/node_modules/protobufjs/ext/protojson.LICENSE +0 -201
  103. package/node_modules/protobufjs/ext/protojson.d.ts +0 -20
  104. package/node_modules/protobufjs/ext/protojson.generated.d.ts +0 -49
  105. package/node_modules/protobufjs/ext/protojson.js +0 -951
  106. package/node_modules/protobufjs/ext/textformat.d.ts +0 -19
  107. package/node_modules/protobufjs/ext/textformat.generated.d.ts +0 -33
  108. package/node_modules/protobufjs/ext/textformat.js +0 -1276
  109. package/node_modules/protobufjs/google/LICENSE +0 -27
  110. package/node_modules/protobufjs/google/README.md +0 -1
  111. package/node_modules/protobufjs/google/api/annotations.json +0 -85
  112. package/node_modules/protobufjs/google/api/annotations.proto +0 -11
  113. package/node_modules/protobufjs/google/api/http.json +0 -87
  114. package/node_modules/protobufjs/google/api/http.proto +0 -31
  115. package/node_modules/protobufjs/google/protobuf/api.json +0 -124
  116. package/node_modules/protobufjs/google/protobuf/api.proto +0 -34
  117. package/node_modules/protobufjs/google/protobuf/compiler/plugin.json +0 -126
  118. package/node_modules/protobufjs/google/protobuf/compiler/plugin.proto +0 -47
  119. package/node_modules/protobufjs/google/protobuf/descriptor.json +0 -1465
  120. package/node_modules/protobufjs/google/protobuf/descriptor.proto +0 -527
  121. package/node_modules/protobufjs/google/protobuf/source_context.json +0 -21
  122. package/node_modules/protobufjs/google/protobuf/source_context.proto +0 -7
  123. package/node_modules/protobufjs/google/protobuf/type.json +0 -209
  124. package/node_modules/protobufjs/google/protobuf/type.proto +0 -89
  125. package/node_modules/protobufjs/index.d.ts +0 -3203
  126. package/node_modules/protobufjs/index.js +0 -4
  127. package/node_modules/protobufjs/light.d.ts +0 -2
  128. package/node_modules/protobufjs/light.js +0 -4
  129. package/node_modules/protobufjs/minimal.d.ts +0 -2
  130. package/node_modules/protobufjs/minimal.js +0 -4
  131. package/node_modules/protobufjs/package.json +0 -93
  132. package/node_modules/protobufjs/src/common.js +0 -405
  133. package/node_modules/protobufjs/src/converter.js +0 -352
  134. package/node_modules/protobufjs/src/decoder.js +0 -279
  135. package/node_modules/protobufjs/src/encoder.js +0 -123
  136. package/node_modules/protobufjs/src/enum.js +0 -239
  137. package/node_modules/protobufjs/src/field.js +0 -505
  138. package/node_modules/protobufjs/src/index-light.js +0 -104
  139. package/node_modules/protobufjs/src/index-minimal.js +0 -35
  140. package/node_modules/protobufjs/src/index.js +0 -12
  141. package/node_modules/protobufjs/src/mapfield.js +0 -144
  142. package/node_modules/protobufjs/src/message.js +0 -137
  143. package/node_modules/protobufjs/src/method.js +0 -183
  144. package/node_modules/protobufjs/src/namespace.js +0 -574
  145. package/node_modules/protobufjs/src/object.js +0 -392
  146. package/node_modules/protobufjs/src/oneof.js +0 -233
  147. package/node_modules/protobufjs/src/parse.js +0 -1111
  148. package/node_modules/protobufjs/src/reader.js +0 -788
  149. package/node_modules/protobufjs/src/reader_buffer.js +0 -77
  150. package/node_modules/protobufjs/src/root.js +0 -424
  151. package/node_modules/protobufjs/src/roots.js +0 -18
  152. package/node_modules/protobufjs/src/rpc/service.js +0 -155
  153. package/node_modules/protobufjs/src/rpc.js +0 -36
  154. package/node_modules/protobufjs/src/service.js +0 -206
  155. package/node_modules/protobufjs/src/tokenize.js +0 -421
  156. package/node_modules/protobufjs/src/type.js +0 -676
  157. package/node_modules/protobufjs/src/types.js +0 -196
  158. package/node_modules/protobufjs/src/typescript.js +0 -25
  159. package/node_modules/protobufjs/src/util/aspromise.d.ts +0 -13
  160. package/node_modules/protobufjs/src/util/aspromise.js +0 -52
  161. package/node_modules/protobufjs/src/util/base64.d.ts +0 -32
  162. package/node_modules/protobufjs/src/util/base64.js +0 -146
  163. package/node_modules/protobufjs/src/util/codegen.d.ts +0 -31
  164. package/node_modules/protobufjs/src/util/codegen.js +0 -118
  165. package/node_modules/protobufjs/src/util/eventemitter.d.ts +0 -45
  166. package/node_modules/protobufjs/src/util/eventemitter.js +0 -86
  167. package/node_modules/protobufjs/src/util/fetch.d.ts +0 -56
  168. package/node_modules/protobufjs/src/util/fetch.js +0 -112
  169. package/node_modules/protobufjs/src/util/float.d.ts +0 -83
  170. package/node_modules/protobufjs/src/util/float.js +0 -335
  171. package/node_modules/protobufjs/src/util/fs.js +0 -11
  172. package/node_modules/protobufjs/src/util/longbits.js +0 -204
  173. package/node_modules/protobufjs/src/util/minimal.js +0 -511
  174. package/node_modules/protobufjs/src/util/path.d.ts +0 -22
  175. package/node_modules/protobufjs/src/util/path.js +0 -100
  176. package/node_modules/protobufjs/src/util/patterns.js +0 -7
  177. package/node_modules/protobufjs/src/util/pool.d.ts +0 -32
  178. package/node_modules/protobufjs/src/util/pool.js +0 -48
  179. package/node_modules/protobufjs/src/util/utf8.d.ts +0 -24
  180. package/node_modules/protobufjs/src/util/utf8.js +0 -190
  181. package/node_modules/protobufjs/src/util.js +0 -264
  182. package/node_modules/protobufjs/src/verifier.js +0 -185
  183. package/node_modules/protobufjs/src/wrappers.js +0 -106
  184. package/node_modules/protobufjs/src/writer.js +0 -700
  185. package/node_modules/protobufjs/src/writer_buffer.js +0 -100
  186. package/node_modules/protobufjs/tsconfig.json +0 -6
  187. package/node_modules/uWebSockets.js/ESM_wrapper.mjs +0 -53
  188. package/node_modules/uWebSockets.js/LICENSE +0 -201
  189. package/node_modules/uWebSockets.js/README.md +0 -6
  190. package/node_modules/uWebSockets.js/index.d.ts +0 -468
  191. package/node_modules/uWebSockets.js/package.json +0 -12
  192. package/node_modules/uWebSockets.js/source_commit +0 -1
  193. package/node_modules/uWebSockets.js/uws.js +0 -76
  194. package/node_modules/uWebSockets.js/uws_darwin_arm64_127.node +0 -0
  195. package/node_modules/uWebSockets.js/uws_darwin_arm64_137.node +0 -0
  196. package/node_modules/uWebSockets.js/uws_darwin_arm64_147.node +0 -0
  197. package/node_modules/uWebSockets.js/uws_darwin_x64_127.node +0 -0
  198. package/node_modules/uWebSockets.js/uws_darwin_x64_137.node +0 -0
  199. package/node_modules/uWebSockets.js/uws_darwin_x64_147.node +0 -0
  200. package/node_modules/uWebSockets.js/uws_linux_arm64_127.node +0 -0
  201. package/node_modules/uWebSockets.js/uws_linux_arm64_137.node +0 -0
  202. package/node_modules/uWebSockets.js/uws_linux_arm64_147.node +0 -0
  203. package/node_modules/uWebSockets.js/uws_linux_x64_127.node +0 -0
  204. package/node_modules/uWebSockets.js/uws_linux_x64_137.node +0 -0
  205. package/node_modules/uWebSockets.js/uws_linux_x64_147.node +0 -0
  206. package/node_modules/uWebSockets.js/uws_win32_x64_127.node +0 -0
  207. package/node_modules/uWebSockets.js/uws_win32_x64_137.node +0 -0
  208. package/node_modules/uWebSockets.js/uws_win32_x64_147.node +0 -0
@@ -1,185 +0,0 @@
1
- "use strict";
2
- module.exports = verifier;
3
-
4
- var Enum = require("./enum"),
5
- util = require("./util");
6
-
7
- function invalid(field, expected) {
8
- return field.name + ": " + expected + (field.repeated && expected !== "array" ? "[]" : field.map && expected !== "object" ? "{k:"+field.keyType+"}" : "") + " expected";
9
- }
10
-
11
- /**
12
- * Generates a partial value verifier.
13
- * @param {Codegen} gen Codegen instance
14
- * @param {Field} field Reflected field
15
- * @param {number} fieldIndex Field index
16
- * @param {string} ref Variable reference
17
- * @returns {Codegen} Codegen instance
18
- * @ignore
19
- */
20
- function genVerifyValue(gen, field, fieldIndex, ref) {
21
- /* eslint-disable no-unexpected-multiline */
22
- var resolvedType = field.resolvedType;
23
- if (resolvedType) {
24
- if (resolvedType instanceof Enum) {
25
- if (resolvedType._features.enum_type === "CLOSED") { gen
26
- ("switch(%s){", ref)
27
- ("default:")
28
- ("return%j", invalid(field, "enum value"));
29
- for (var keys = Object.keys(resolvedType.values), j = 0; j < keys.length; ++j) gen
30
- ("case %i:", resolvedType.values[keys[j]]);
31
- gen
32
- ("break")
33
- ("}");
34
- } else gen
35
- ("if(typeof %s!==\"number\"||(%s|0)!==%s)", ref, ref, ref)
36
- ("return%j", invalid(field, "enum value"));
37
- } else {
38
- gen
39
- ("{")
40
- ("var e=types[%i].verify(%s,q+1);", fieldIndex, ref)
41
- ("if(e)")
42
- ("return%j+e", field.name + ".")
43
- ("}");
44
- }
45
- } else {
46
- switch (field.type) {
47
- case "int32":
48
- case "uint32":
49
- case "sint32":
50
- case "fixed32":
51
- case "sfixed32": gen
52
- ("if(!util.isInteger(%s))", ref)
53
- ("return%j", invalid(field, "integer"));
54
- break;
55
- case "int64":
56
- case "uint64":
57
- case "sint64":
58
- case "fixed64":
59
- case "sfixed64": gen
60
- ("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))", ref, ref, ref, ref)
61
- ("return%j", invalid(field, "integer|Long"));
62
- break;
63
- case "float":
64
- case "double": gen
65
- ("if(typeof %s!==\"number\")", ref)
66
- ("return%j", invalid(field, "number"));
67
- break;
68
- case "bool": gen
69
- ("if(typeof %s!==\"boolean\")", ref)
70
- ("return%j", invalid(field, "boolean"));
71
- break;
72
- case "string": gen
73
- ("if(!util.isString(%s))", ref)
74
- ("return%j", invalid(field, "string"));
75
- break;
76
- case "bytes": gen
77
- ("if(!(%s&&typeof %s.length===\"number\"||util.isString(%s)))", ref, ref, ref)
78
- ("return%j", invalid(field, "buffer"));
79
- break;
80
- }
81
- }
82
- return gen;
83
- /* eslint-enable no-unexpected-multiline */
84
- }
85
-
86
- /**
87
- * Generates a partial key verifier.
88
- * @param {Codegen} gen Codegen instance
89
- * @param {Field} field Reflected field
90
- * @param {string} ref Variable reference
91
- * @returns {Codegen} Codegen instance
92
- * @ignore
93
- */
94
- function genVerifyKey(gen, field, ref) {
95
- /* eslint-disable no-unexpected-multiline */
96
- switch (field.keyType) {
97
- case "int32":
98
- case "uint32":
99
- case "sint32":
100
- case "fixed32":
101
- case "sfixed32": gen
102
- ("if(!util.key32Re.test(%s))", ref)
103
- ("return%j", invalid(field, "integer key"));
104
- break;
105
- case "int64":
106
- case "uint64":
107
- case "sint64":
108
- case "fixed64":
109
- case "sfixed64": gen
110
- ("if(!util.key64Re.test(%s))", ref) // see comment above: x is ok, d is not
111
- ("return%j", invalid(field, "integer|Long key"));
112
- break;
113
- case "bool": gen
114
- ("if(!util.key2Re.test(%s))", ref)
115
- ("return%j", invalid(field, "boolean key"));
116
- break;
117
- }
118
- return gen;
119
- /* eslint-enable no-unexpected-multiline */
120
- }
121
-
122
- /**
123
- * Generates a verifier specific to the specified message type.
124
- * @param {Type} mtype Message type
125
- * @returns {Codegen} Codegen instance
126
- */
127
- function verifier(mtype) {
128
- /* eslint-disable no-unexpected-multiline */
129
-
130
- var gen = util.codegen(["m", "q"])
131
- ("if(typeof m!==\"object\"||m===null)")
132
- ("return%j", "object expected")
133
- ("if(q===undefined)q=0")
134
- ("if(q>util.recursionLimit)")
135
- ("return%j", "max depth exceeded");
136
- var oneofs = mtype.oneofsArray,
137
- seenFirstField = {};
138
- if (oneofs.length) gen
139
- ("var p={}");
140
-
141
- for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {
142
- var field = mtype._fieldsArray[i].resolve(),
143
- ref = "m" + util.safeProp(field.name);
144
-
145
- if (field.optional) gen
146
- ("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){", ref, field.name); // !== undefined && !== null
147
-
148
- // map fields
149
- if (field.map) { gen
150
- ("if(!util.isObject(%s))", ref)
151
- ("return%j", invalid(field, "object"))
152
- ("var k=Object.keys(%s)", ref)
153
- ("for(var i=0;i<k.length;++i){");
154
- genVerifyKey(gen, field, "k[i]");
155
- genVerifyValue(gen, field, i, ref + "[k[i]]")
156
- ("}");
157
-
158
- // repeated fields
159
- } else if (field.repeated) { gen
160
- ("if(!Array.isArray(%s))", ref)
161
- ("return%j", invalid(field, "array"))
162
- ("for(var i=0;i<%s.length;++i){", ref);
163
- genVerifyValue(gen, field, i, ref + "[i]")
164
- ("}");
165
-
166
- // required or present fields
167
- } else {
168
- if (field.partOf) {
169
- var oneofProp = util.safeProp(field.partOf.name);
170
- if (seenFirstField[field.partOf.name] === 1) gen
171
- ("if(p%s===1)", oneofProp)
172
- ("return%j", field.partOf.name + ": multiple values");
173
- seenFirstField[field.partOf.name] = 1;
174
- gen
175
- ("p%s=1", oneofProp);
176
- }
177
- genVerifyValue(gen, field, i, ref);
178
- }
179
- if (field.optional) gen
180
- ("}");
181
- }
182
- return gen
183
- ("return null");
184
- /* eslint-enable no-unexpected-multiline */
185
- }
@@ -1,106 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * Wrappers for common types.
5
- * @type {Object.<string,IWrapper>}
6
- * @const
7
- */
8
- var wrappers = exports;
9
-
10
- var Message = require("./message"),
11
- util = require("./util/minimal");
12
-
13
- /**
14
- * From object converter part of an {@link IWrapper}.
15
- * @typedef WrapperFromObjectConverter
16
- * @type {function}
17
- * @param {Object.<string,*>} object Plain object
18
- * @returns {Message<{}>} Message instance
19
- * @this Type
20
- */
21
-
22
- /**
23
- * To object converter part of an {@link IWrapper}.
24
- * @typedef WrapperToObjectConverter
25
- * @type {function}
26
- * @param {Message<{}>} message Message instance
27
- * @param {IConversionOptions} [options] Conversion options
28
- * @returns {Object.<string,*>} Plain object
29
- * @this Type
30
- */
31
-
32
- /**
33
- * Common type wrapper part of {@link wrappers}.
34
- * @interface IWrapper
35
- * @property {WrapperFromObjectConverter} [fromObject] From object converter
36
- * @property {WrapperToObjectConverter} [toObject] To object converter
37
- */
38
-
39
- // Custom wrapper for Any
40
- wrappers[".google.protobuf.Any"] = {
41
-
42
- fromObject: function(object, depth) {
43
-
44
- // unwrap value type if mapped
45
- if (object && object["@type"]) {
46
- // Only use fully qualified type name after the last '/'
47
- var name = object["@type"].substring(object["@type"].lastIndexOf("/") + 1);
48
- var type = this.lookup(name, [ this.constructor ]);
49
- /* istanbul ignore else */
50
- if (type) {
51
- // type_url does not accept leading "."
52
- var type_url = object["@type"].charAt(0) === "." ?
53
- object["@type"].slice(1) : object["@type"];
54
- // type_url prefix is optional, but path seperator is required
55
- if (type_url.indexOf("/") === -1) {
56
- type_url = "/" + type_url;
57
- }
58
- return this.create({
59
- type_url: type_url,
60
- value: type.encode(type.fromObject(object, depth === undefined ? 1 : depth + 1)).finish()
61
- });
62
- }
63
- }
64
-
65
- return this.fromObject(object, depth);
66
- },
67
-
68
- toObject: function(message, options, depth) {
69
- if (depth === undefined)
70
- depth = 0;
71
- if (depth > util.recursionLimit)
72
- throw Error("max depth exceeded");
73
-
74
- // Default prefix
75
- var googleApi = "type.googleapis.com/";
76
- var prefix = "";
77
- var name = "";
78
- // decode value if requested and unmapped
79
- if (options && options.json && message.type_url && message.value) {
80
- // Only use fully qualified type name after the last '/'
81
- name = message.type_url.substring(message.type_url.lastIndexOf("/") + 1);
82
- // Separate the prefix used
83
- prefix = message.type_url.substring(0, message.type_url.lastIndexOf("/") + 1);
84
- var type = this.lookup(name, [ this.constructor ]);
85
- /* istanbul ignore else */
86
- if (type)
87
- message = type.decode(message.value, undefined, undefined, depth + 1);
88
- }
89
-
90
- // wrap value if unmapped
91
- if (!(message instanceof this.ctor) && message instanceof Message) {
92
- var object = message.$type.toObject(message, options, depth + 1);
93
- var messageName = message.$type.fullName[0] === "." ?
94
- message.$type.fullName.slice(1) : message.$type.fullName;
95
- // Default to type.googleapis.com prefix if no prefix is used
96
- if (prefix === "") {
97
- prefix = googleApi;
98
- }
99
- name = prefix + messageName;
100
- object["@type"] = name;
101
- return object;
102
- }
103
-
104
- return this.toObject(message, options, depth);
105
- }
106
- };