node-red-contrib-tak-registration 0.11.5 → 0.12.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 (476) hide show
  1. package/node_modules/@types/node/README.md +2 -2
  2. package/node_modules/@types/node/assert.d.ts +88 -44
  3. package/node_modules/@types/node/async_hooks.d.ts +17 -15
  4. package/node_modules/@types/node/buffer.d.ts +37 -36
  5. package/node_modules/@types/node/child_process.d.ts +38 -34
  6. package/node_modules/@types/node/cluster.d.ts +165 -19
  7. package/node_modules/@types/node/console.d.ts +64 -27
  8. package/node_modules/@types/node/crypto.d.ts +139 -72
  9. package/node_modules/@types/node/dgram.d.ts +24 -14
  10. package/node_modules/@types/node/diagnostics_channel.d.ts +365 -2
  11. package/node_modules/@types/node/dns/promises.d.ts +79 -28
  12. package/node_modules/@types/node/dns.d.ts +124 -69
  13. package/node_modules/@types/node/dom-events.d.ts +2 -0
  14. package/node_modules/@types/node/domain.d.ts +4 -4
  15. package/node_modules/@types/node/events.d.ts +115 -63
  16. package/node_modules/@types/node/fs/promises.d.ts +18 -12
  17. package/node_modules/@types/node/fs.d.ts +72 -46
  18. package/node_modules/@types/node/globals.d.ts +27 -0
  19. package/node_modules/@types/node/http.d.ts +75 -55
  20. package/node_modules/@types/node/http2.d.ts +83 -47
  21. package/node_modules/@types/node/https.d.ts +3 -3
  22. package/node_modules/@types/node/index.d.ts +1 -0
  23. package/node_modules/@types/node/inspector.d.ts +5 -6
  24. package/node_modules/@types/node/module.d.ts +14 -0
  25. package/node_modules/@types/node/net.d.ts +66 -16
  26. package/node_modules/@types/node/os.d.ts +29 -12
  27. package/node_modules/@types/node/package.json +3 -16
  28. package/node_modules/@types/node/path.d.ts +1 -1
  29. package/node_modules/@types/node/perf_hooks.d.ts +320 -54
  30. package/node_modules/@types/node/process.d.ts +265 -50
  31. package/node_modules/@types/node/punycode.d.ts +4 -4
  32. package/node_modules/@types/node/querystring.d.ts +21 -9
  33. package/node_modules/@types/node/readline/promises.d.ts +9 -9
  34. package/node_modules/@types/node/readline.d.ts +21 -20
  35. package/node_modules/@types/node/repl.d.ts +10 -10
  36. package/node_modules/@types/node/sea.d.ts +153 -0
  37. package/node_modules/@types/node/stream/web.d.ts +18 -1
  38. package/node_modules/@types/node/stream.d.ts +62 -56
  39. package/node_modules/@types/node/string_decoder.d.ts +5 -5
  40. package/node_modules/@types/node/test.d.ts +445 -109
  41. package/node_modules/@types/node/timers/promises.d.ts +10 -6
  42. package/node_modules/@types/node/timers.d.ts +5 -5
  43. package/node_modules/@types/node/tls.d.ts +40 -33
  44. package/node_modules/@types/node/trace_events.d.ts +40 -25
  45. package/node_modules/@types/node/tty.d.ts +8 -8
  46. package/node_modules/@types/node/url.d.ts +73 -48
  47. package/node_modules/@types/node/util.d.ts +131 -22
  48. package/node_modules/@types/node/v8.d.ts +183 -10
  49. package/node_modules/@types/node/vm.d.ts +43 -22
  50. package/node_modules/@types/node/wasi.d.ts +38 -15
  51. package/node_modules/@types/node/worker_threads.d.ts +19 -16
  52. package/node_modules/@types/node/zlib.d.ts +16 -3
  53. package/node_modules/adm-zip/README.md +2 -1
  54. package/node_modules/adm-zip/adm-zip.js +46 -45
  55. package/node_modules/adm-zip/headers/entryHeader.js +14 -12
  56. package/node_modules/adm-zip/headers/mainHeader.js +1 -1
  57. package/node_modules/adm-zip/methods/inflater.js +6 -3
  58. package/node_modules/adm-zip/methods/zipcrypto.js +6 -2
  59. package/node_modules/adm-zip/package.json +2 -2
  60. package/node_modules/adm-zip/util/errors.js +1 -0
  61. package/node_modules/adm-zip/zipEntry.js +64 -43
  62. package/node_modules/adm-zip/zipFile.js +35 -35
  63. package/node_modules/axios/CHANGELOG.md +873 -711
  64. package/node_modules/axios/README.md +98 -8
  65. package/node_modules/axios/dist/axios.js +1461 -350
  66. package/node_modules/axios/dist/axios.js.map +1 -1
  67. package/node_modules/axios/dist/axios.min.js +1 -1
  68. package/node_modules/axios/dist/axios.min.js.map +1 -1
  69. package/node_modules/axios/dist/browser/axios.cjs +710 -306
  70. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  71. package/node_modules/axios/dist/esm/axios.js +710 -306
  72. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  73. package/node_modules/axios/dist/esm/axios.min.js +1 -1
  74. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  75. package/node_modules/axios/dist/node/axios.cjs +628 -250
  76. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  77. package/node_modules/axios/index.d.cts +6 -3
  78. package/node_modules/axios/index.d.ts +6 -3
  79. package/node_modules/axios/lib/adapters/adapters.js +3 -1
  80. package/node_modules/axios/lib/adapters/fetch.js +227 -0
  81. package/node_modules/axios/lib/adapters/http.js +7 -3
  82. package/node_modules/axios/lib/adapters/xhr.js +31 -101
  83. package/node_modules/axios/lib/core/Axios.js +28 -1
  84. package/node_modules/axios/lib/core/AxiosHeaders.js +4 -0
  85. package/node_modules/axios/lib/core/mergeConfig.js +1 -1
  86. package/node_modules/axios/lib/defaults/index.js +7 -5
  87. package/node_modules/axios/lib/env/data.js +1 -1
  88. package/node_modules/axios/lib/helpers/AxiosTransformStream.js +9 -8
  89. package/node_modules/axios/lib/helpers/combineURLs.js +1 -1
  90. package/node_modules/axios/lib/helpers/composeSignals.js +46 -0
  91. package/node_modules/axios/lib/helpers/formDataToJSON.js +3 -0
  92. package/node_modules/axios/lib/helpers/progressEventReducer.js +32 -0
  93. package/node_modules/axios/lib/helpers/resolveConfig.js +57 -0
  94. package/node_modules/axios/lib/helpers/throttle.js +5 -3
  95. package/node_modules/axios/lib/helpers/trackStream.js +55 -0
  96. package/node_modules/axios/lib/platform/common/utils.js +4 -1
  97. package/node_modules/axios/lib/utils.js +7 -2
  98. package/node_modules/axios/package.json +27 -26
  99. package/node_modules/call-bind/CHANGELOG.md +16 -0
  100. package/node_modules/call-bind/index.js +2 -11
  101. package/node_modules/call-bind/package.json +11 -6
  102. package/node_modules/define-data-property/CHANGELOG.md +29 -0
  103. package/node_modules/define-data-property/index.d.ts +12 -3
  104. package/node_modules/define-data-property/index.js +4 -16
  105. package/node_modules/define-data-property/package.json +26 -33
  106. package/node_modules/define-data-property/test/index.js +10 -10
  107. package/node_modules/es-define-property/.eslintrc +13 -0
  108. package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  109. package/node_modules/es-define-property/.nycrc +9 -0
  110. package/node_modules/es-define-property/CHANGELOG.md +15 -0
  111. package/node_modules/es-define-property/LICENSE +21 -0
  112. package/node_modules/es-define-property/README.md +49 -0
  113. package/node_modules/es-define-property/index.d.ts +3 -0
  114. package/node_modules/es-define-property/index.js +16 -0
  115. package/node_modules/es-define-property/package.json +81 -0
  116. package/node_modules/es-define-property/test/index.js +55 -0
  117. package/node_modules/es-define-property/tsconfig.json +50 -0
  118. package/node_modules/es-errors/.eslintrc +5 -0
  119. package/node_modules/es-errors/.github/FUNDING.yml +12 -0
  120. package/node_modules/es-errors/CHANGELOG.md +40 -0
  121. package/node_modules/es-errors/LICENSE +21 -0
  122. package/node_modules/es-errors/README.md +55 -0
  123. package/node_modules/es-errors/eval.d.ts +3 -0
  124. package/node_modules/es-errors/eval.js +4 -0
  125. package/node_modules/es-errors/index.d.ts +3 -0
  126. package/node_modules/es-errors/index.js +4 -0
  127. package/node_modules/es-errors/package.json +80 -0
  128. package/node_modules/es-errors/range.d.ts +3 -0
  129. package/node_modules/es-errors/range.js +4 -0
  130. package/node_modules/es-errors/ref.d.ts +3 -0
  131. package/node_modules/es-errors/ref.js +4 -0
  132. package/node_modules/es-errors/syntax.d.ts +3 -0
  133. package/node_modules/es-errors/syntax.js +4 -0
  134. package/node_modules/es-errors/test/index.js +19 -0
  135. package/node_modules/es-errors/tsconfig.json +49 -0
  136. package/node_modules/es-errors/type.d.ts +3 -0
  137. package/node_modules/es-errors/type.js +4 -0
  138. package/node_modules/es-errors/uri.d.ts +3 -0
  139. package/node_modules/es-errors/uri.js +4 -0
  140. package/node_modules/fast-xml-parser/CHANGELOG.md +17 -0
  141. package/node_modules/fast-xml-parser/README.md +9 -15
  142. package/node_modules/fast-xml-parser/package.json +4 -1
  143. package/node_modules/fast-xml-parser/src/fxp.d.ts +365 -71
  144. package/node_modules/fast-xml-parser/src/v5/CharsSymbol.js +16 -0
  145. package/node_modules/fast-xml-parser/src/v5/EntitiesParser.js +107 -0
  146. package/node_modules/fast-xml-parser/src/v5/OptionsBuilder.js +64 -0
  147. package/node_modules/fast-xml-parser/src/v5/OutputBuilders/BaseOutputBuilder.js +71 -0
  148. package/node_modules/fast-xml-parser/src/v5/OutputBuilders/JsArrBuilder.js +103 -0
  149. package/node_modules/fast-xml-parser/src/v5/OutputBuilders/JsMinArrBuilder.js +102 -0
  150. package/node_modules/fast-xml-parser/src/v5/OutputBuilders/JsObjBuilder.js +156 -0
  151. package/node_modules/fast-xml-parser/src/v5/OutputBuilders/ParserOptionsBuilder.js +96 -0
  152. package/node_modules/fast-xml-parser/src/v5/Report.js +0 -0
  153. package/node_modules/fast-xml-parser/src/v5/TagPath.js +81 -0
  154. package/node_modules/fast-xml-parser/src/v5/TagPathMatcher.js +15 -0
  155. package/node_modules/fast-xml-parser/src/v5/XMLParser.js +85 -0
  156. package/node_modules/fast-xml-parser/src/v5/Xml2JsParser.js +237 -0
  157. package/node_modules/fast-xml-parser/src/v5/XmlPartReader.js +212 -0
  158. package/node_modules/fast-xml-parser/src/v5/XmlSpecialTagsReader.js +118 -0
  159. package/node_modules/fast-xml-parser/src/v5/inputSource/BufferSource.js +118 -0
  160. package/node_modules/fast-xml-parser/src/v5/inputSource/StringSource.js +123 -0
  161. package/node_modules/fast-xml-parser/src/v5/valueParsers/EntitiesParser.js +107 -0
  162. package/node_modules/fast-xml-parser/src/v5/valueParsers/booleanParser.js +23 -0
  163. package/node_modules/fast-xml-parser/src/v5/valueParsers/booleanParserExt.js +20 -0
  164. package/node_modules/fast-xml-parser/src/v5/valueParsers/currency.js +31 -0
  165. package/node_modules/fast-xml-parser/src/v5/valueParsers/join.js +14 -0
  166. package/node_modules/fast-xml-parser/src/v5/valueParsers/number.js +16 -0
  167. package/node_modules/fast-xml-parser/src/v5/valueParsers/trim.js +8 -0
  168. package/node_modules/fast-xml-parser/src/validator.js +2 -0
  169. package/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +18 -9
  170. package/node_modules/follow-redirects/index.js +115 -76
  171. package/node_modules/follow-redirects/package.json +1 -1
  172. package/node_modules/get-intrinsic/CHANGELOG.md +18 -0
  173. package/node_modules/get-intrinsic/index.js +15 -7
  174. package/node_modules/get-intrinsic/package.json +12 -12
  175. package/node_modules/has-property-descriptors/CHANGELOG.md +8 -0
  176. package/node_modules/has-property-descriptors/index.js +3 -14
  177. package/node_modules/has-property-descriptors/package.json +5 -5
  178. package/node_modules/has-proto/CHANGELOG.md +15 -0
  179. package/node_modules/has-proto/index.d.ts +3 -0
  180. package/node_modules/has-proto/index.js +5 -1
  181. package/node_modules/has-proto/package.json +9 -5
  182. package/node_modules/has-proto/tsconfig.json +49 -0
  183. package/node_modules/has-tostringtag/.eslintrc +0 -6
  184. package/node_modules/has-tostringtag/.nycrc +13 -0
  185. package/node_modules/has-tostringtag/CHANGELOG.md +22 -0
  186. package/node_modules/has-tostringtag/index.d.ts +3 -0
  187. package/node_modules/has-tostringtag/index.js +1 -0
  188. package/node_modules/has-tostringtag/package.json +37 -13
  189. package/node_modules/has-tostringtag/shams.d.ts +3 -0
  190. package/node_modules/has-tostringtag/shams.js +1 -0
  191. package/node_modules/has-tostringtag/test/shams/core-js.js +3 -0
  192. package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +2 -0
  193. package/node_modules/has-tostringtag/test/tests.js +2 -1
  194. package/node_modules/has-tostringtag/tsconfig.json +49 -0
  195. package/node_modules/hasown/CHANGELOG.md +20 -0
  196. package/node_modules/hasown/index.d.ts +3 -3
  197. package/node_modules/hasown/index.js +1 -1
  198. package/node_modules/hasown/package.json +16 -15
  199. package/node_modules/hasown/tsconfig.json +3 -46
  200. package/node_modules/object-is/.eslintrc +1 -1
  201. package/node_modules/object-is/.nycrc +0 -4
  202. package/node_modules/object-is/CHANGELOG.md +25 -0
  203. package/node_modules/object-is/README.md +20 -20
  204. package/node_modules/object-is/package.json +23 -14
  205. package/node_modules/polygon-clipping/README.md +29 -26
  206. package/node_modules/polygon-clipping/dist/polygon-clipping.cjs.js +1398 -1421
  207. package/node_modules/polygon-clipping/dist/polygon-clipping.d.ts +13 -10
  208. package/node_modules/polygon-clipping/dist/polygon-clipping.esm.js +1139 -1427
  209. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.js +1770 -1831
  210. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js +22 -8
  211. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js.map +1 -1
  212. package/node_modules/polygon-clipping/node_modules/robust-predicates/LICENSE +24 -0
  213. package/node_modules/polygon-clipping/node_modules/robust-predicates/README.md +82 -0
  214. package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/incircle.js +765 -0
  215. package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/insphere.js +766 -0
  216. package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/orient2d.js +184 -0
  217. package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/orient3d.js +462 -0
  218. package/node_modules/polygon-clipping/node_modules/robust-predicates/esm/util.js +138 -0
  219. package/node_modules/polygon-clipping/node_modules/robust-predicates/index.d.ts +49 -0
  220. package/node_modules/polygon-clipping/node_modules/robust-predicates/index.js +5 -0
  221. package/node_modules/polygon-clipping/node_modules/robust-predicates/package.json +75 -0
  222. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/incircle.js +908 -0
  223. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/incircle.min.js +1 -0
  224. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/insphere.js +914 -0
  225. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/insphere.min.js +1 -0
  226. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient2d.js +280 -0
  227. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient2d.min.js +1 -0
  228. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient3d.js +601 -0
  229. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/orient3d.min.js +1 -0
  230. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/predicates.js +2328 -0
  231. package/node_modules/polygon-clipping/node_modules/robust-predicates/umd/predicates.min.js +1 -0
  232. package/node_modules/polygon-clipping/package.json +30 -25
  233. package/node_modules/protobufjs/LICENSE +39 -39
  234. package/node_modules/protobufjs/README.md +727 -740
  235. package/node_modules/protobufjs/dist/light/protobuf.js +6264 -6264
  236. package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  237. package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  238. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  239. package/node_modules/protobufjs/dist/minimal/protobuf.js +1928 -1928
  240. package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  241. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
  242. package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  243. package/node_modules/protobufjs/dist/protobuf.js +7978 -7961
  244. package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  245. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  246. package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  247. package/node_modules/protobufjs/ext/debug/README.md +4 -4
  248. package/node_modules/protobufjs/ext/debug/index.js +71 -71
  249. package/node_modules/protobufjs/ext/descriptor/README.md +72 -72
  250. package/node_modules/protobufjs/ext/descriptor/index.d.ts +191 -191
  251. package/node_modules/protobufjs/ext/descriptor/index.js +1052 -1052
  252. package/node_modules/protobufjs/ext/descriptor/test.js +54 -54
  253. package/node_modules/protobufjs/google/LICENSE +27 -27
  254. package/node_modules/protobufjs/google/README.md +1 -1
  255. package/node_modules/protobufjs/google/api/annotations.json +82 -82
  256. package/node_modules/protobufjs/google/api/annotations.proto +10 -10
  257. package/node_modules/protobufjs/google/api/http.json +85 -85
  258. package/node_modules/protobufjs/google/api/http.proto +30 -30
  259. package/node_modules/protobufjs/google/protobuf/api.json +117 -117
  260. package/node_modules/protobufjs/google/protobuf/api.proto +33 -33
  261. package/node_modules/protobufjs/google/protobuf/descriptor.json +738 -738
  262. package/node_modules/protobufjs/google/protobuf/descriptor.proto +286 -286
  263. package/node_modules/protobufjs/google/protobuf/source_context.json +19 -19
  264. package/node_modules/protobufjs/google/protobuf/source_context.proto +7 -7
  265. package/node_modules/protobufjs/google/protobuf/type.json +201 -201
  266. package/node_modules/protobufjs/google/protobuf/type.proto +89 -89
  267. package/node_modules/protobufjs/index.d.ts +2741 -2741
  268. package/node_modules/protobufjs/index.js +4 -4
  269. package/node_modules/protobufjs/light.d.ts +2 -2
  270. package/node_modules/protobufjs/light.js +3 -3
  271. package/node_modules/protobufjs/minimal.d.ts +2 -2
  272. package/node_modules/protobufjs/minimal.js +4 -4
  273. package/node_modules/protobufjs/package.json +111 -111
  274. package/node_modules/protobufjs/scripts/postinstall.js +32 -32
  275. package/node_modules/protobufjs/src/common.js +399 -399
  276. package/node_modules/protobufjs/src/converter.js +301 -301
  277. package/node_modules/protobufjs/src/decoder.js +129 -129
  278. package/node_modules/protobufjs/src/encoder.js +100 -100
  279. package/node_modules/protobufjs/src/enum.js +198 -198
  280. package/node_modules/protobufjs/src/field.js +377 -377
  281. package/node_modules/protobufjs/src/index-light.js +104 -104
  282. package/node_modules/protobufjs/src/index-minimal.js +36 -36
  283. package/node_modules/protobufjs/src/index.js +12 -12
  284. package/node_modules/protobufjs/src/mapfield.js +126 -126
  285. package/node_modules/protobufjs/src/message.js +138 -138
  286. package/node_modules/protobufjs/src/method.js +160 -160
  287. package/node_modules/protobufjs/src/namespace.js +433 -433
  288. package/node_modules/protobufjs/src/object.js +243 -243
  289. package/node_modules/protobufjs/src/oneof.js +203 -203
  290. package/node_modules/protobufjs/src/parse.js +889 -872
  291. package/node_modules/protobufjs/src/reader.js +416 -416
  292. package/node_modules/protobufjs/src/reader_buffer.js +51 -51
  293. package/node_modules/protobufjs/src/root.js +368 -368
  294. package/node_modules/protobufjs/src/roots.js +18 -18
  295. package/node_modules/protobufjs/src/rpc/service.js +142 -142
  296. package/node_modules/protobufjs/src/rpc.js +36 -36
  297. package/node_modules/protobufjs/src/service.js +167 -167
  298. package/node_modules/protobufjs/src/tokenize.js +416 -416
  299. package/node_modules/protobufjs/src/type.js +589 -589
  300. package/node_modules/protobufjs/src/types.js +196 -196
  301. package/node_modules/protobufjs/src/typescript.jsdoc +15 -15
  302. package/node_modules/protobufjs/src/util/longbits.js +200 -200
  303. package/node_modules/protobufjs/src/util/minimal.js +438 -438
  304. package/node_modules/protobufjs/src/util.js +212 -212
  305. package/node_modules/protobufjs/src/verifier.js +176 -176
  306. package/node_modules/protobufjs/src/wrappers.js +102 -102
  307. package/node_modules/protobufjs/src/writer.js +465 -465
  308. package/node_modules/protobufjs/src/writer_buffer.js +85 -85
  309. package/node_modules/protobufjs/tsconfig.json +7 -7
  310. package/node_modules/regexp.prototype.flags/CHANGELOG.md +13 -0
  311. package/node_modules/regexp.prototype.flags/implementation.js +2 -2
  312. package/node_modules/regexp.prototype.flags/package.json +11 -10
  313. package/node_modules/regexp.prototype.flags/test/tests.js +13 -13
  314. package/node_modules/set-function-length/CHANGELOG.md +29 -0
  315. package/node_modules/set-function-length/env.d.ts +9 -0
  316. package/node_modules/set-function-length/env.js +10 -4
  317. package/node_modules/set-function-length/index.d.ts +7 -0
  318. package/node_modules/set-function-length/index.js +4 -3
  319. package/node_modules/set-function-length/package.json +29 -11
  320. package/node_modules/set-function-length/tsconfig.json +9 -0
  321. package/node_modules/set-function-name/.eslintrc +1 -0
  322. package/node_modules/set-function-name/CHANGELOG.md +9 -0
  323. package/node_modules/set-function-name/index.d.ts +5 -0
  324. package/node_modules/set-function-name/index.js +4 -3
  325. package/node_modules/set-function-name/package.json +28 -9
  326. package/node_modules/set-function-name/tsconfig.json +59 -0
  327. package/node_modules/uuid/CHANGELOG.md +18 -0
  328. package/node_modules/uuid/README.md +134 -16
  329. package/node_modules/uuid/dist/commonjs-browser/index.js +40 -15
  330. package/node_modules/uuid/dist/commonjs-browser/max.js +7 -0
  331. package/node_modules/uuid/dist/commonjs-browser/md5.js +30 -53
  332. package/node_modules/uuid/dist/commonjs-browser/native.js +3 -4
  333. package/node_modules/uuid/dist/commonjs-browser/nil.js +1 -2
  334. package/node_modules/uuid/dist/commonjs-browser/parse.js +14 -15
  335. package/node_modules/uuid/dist/commonjs-browser/regex.js +1 -2
  336. package/node_modules/uuid/dist/commonjs-browser/rng.js +2 -4
  337. package/node_modules/uuid/dist/commonjs-browser/sha1.js +27 -49
  338. package/node_modules/uuid/dist/commonjs-browser/stringify.js +10 -16
  339. package/node_modules/uuid/dist/commonjs-browser/v1.js +73 -49
  340. package/node_modules/uuid/dist/commonjs-browser/v1ToV6.js +26 -0
  341. package/node_modules/uuid/dist/commonjs-browser/v3.js +3 -8
  342. package/node_modules/uuid/dist/commonjs-browser/v35.js +15 -32
  343. package/node_modules/uuid/dist/commonjs-browser/v4.js +7 -18
  344. package/node_modules/uuid/dist/commonjs-browser/v5.js +3 -8
  345. package/node_modules/uuid/dist/commonjs-browser/v6.js +42 -0
  346. package/node_modules/uuid/dist/commonjs-browser/v6ToV1.js +26 -0
  347. package/node_modules/uuid/dist/commonjs-browser/v7.js +152 -0
  348. package/node_modules/uuid/dist/commonjs-browser/validate.js +2 -7
  349. package/node_modules/uuid/dist/commonjs-browser/version.js +2 -8
  350. package/node_modules/uuid/dist/esm-browser/index.js +9 -4
  351. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  352. package/node_modules/uuid/dist/esm-browser/md5.js +29 -50
  353. package/node_modules/uuid/dist/esm-browser/native.js +1 -1
  354. package/node_modules/uuid/dist/esm-browser/parse.js +12 -10
  355. package/node_modules/uuid/dist/esm-browser/regex.js +1 -1
  356. package/node_modules/uuid/dist/esm-browser/rng.js +3 -4
  357. package/node_modules/uuid/dist/esm-browser/sha1.js +26 -46
  358. package/node_modules/uuid/dist/esm-browser/stringify.js +9 -11
  359. package/node_modules/uuid/dist/esm-browser/v1.js +74 -44
  360. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +20 -0
  361. package/node_modules/uuid/dist/esm-browser/v3.js +1 -1
  362. package/node_modules/uuid/dist/esm-browser/v35.js +14 -25
  363. package/node_modules/uuid/dist/esm-browser/v4.js +5 -9
  364. package/node_modules/uuid/dist/esm-browser/v5.js +1 -1
  365. package/node_modules/uuid/dist/esm-browser/v6.js +36 -0
  366. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +20 -0
  367. package/node_modules/uuid/dist/esm-browser/v7.js +146 -0
  368. package/node_modules/uuid/dist/esm-browser/validate.js +0 -2
  369. package/node_modules/uuid/dist/esm-browser/version.js +0 -3
  370. package/node_modules/uuid/dist/esm-node/index.js +9 -4
  371. package/node_modules/uuid/dist/esm-node/max.js +1 -0
  372. package/node_modules/uuid/dist/esm-node/md5.js +1 -4
  373. package/node_modules/uuid/dist/esm-node/native.js +1 -1
  374. package/node_modules/uuid/dist/esm-node/parse.js +11 -9
  375. package/node_modules/uuid/dist/esm-node/regex.js +1 -1
  376. package/node_modules/uuid/dist/esm-node/rng.js +1 -3
  377. package/node_modules/uuid/dist/esm-node/sha1.js +1 -4
  378. package/node_modules/uuid/dist/esm-node/stringify.js +7 -9
  379. package/node_modules/uuid/dist/esm-node/v1.js +66 -36
  380. package/node_modules/uuid/dist/esm-node/v1ToV6.js +20 -0
  381. package/node_modules/uuid/dist/esm-node/v35.js +8 -19
  382. package/node_modules/uuid/dist/esm-node/v4.js +4 -8
  383. package/node_modules/uuid/dist/esm-node/v6.js +32 -0
  384. package/node_modules/uuid/dist/esm-node/v6ToV1.js +20 -0
  385. package/node_modules/uuid/dist/esm-node/v7.js +146 -0
  386. package/node_modules/uuid/dist/esm-node/validate.js +0 -2
  387. package/node_modules/uuid/dist/esm-node/version.js +0 -3
  388. package/node_modules/uuid/dist/index.js +40 -15
  389. package/node_modules/uuid/dist/max.js +7 -0
  390. package/node_modules/uuid/dist/md5-browser.js +8 -31
  391. package/node_modules/uuid/dist/md5.js +4 -10
  392. package/node_modules/uuid/dist/native-browser.js +2 -3
  393. package/node_modules/uuid/dist/native.js +5 -9
  394. package/node_modules/uuid/dist/nil.js +1 -2
  395. package/node_modules/uuid/dist/parse.js +13 -14
  396. package/node_modules/uuid/dist/regex.js +1 -2
  397. package/node_modules/uuid/dist/rng-browser.js +1 -3
  398. package/node_modules/uuid/dist/rng.js +3 -10
  399. package/node_modules/uuid/dist/sha1-browser.js +1 -23
  400. package/node_modules/uuid/dist/sha1.js +4 -10
  401. package/node_modules/uuid/dist/stringify.js +8 -14
  402. package/node_modules/uuid/dist/uuid-bin.js +12 -22
  403. package/node_modules/uuid/dist/v1.js +66 -42
  404. package/node_modules/uuid/dist/v1ToV6.js +26 -0
  405. package/node_modules/uuid/dist/v3.js +2 -7
  406. package/node_modules/uuid/dist/v35.js +11 -28
  407. package/node_modules/uuid/dist/v4.js +6 -17
  408. package/node_modules/uuid/dist/v5.js +2 -7
  409. package/node_modules/uuid/dist/v6.js +38 -0
  410. package/node_modules/uuid/dist/v6ToV1.js +26 -0
  411. package/node_modules/uuid/dist/v7.js +152 -0
  412. package/node_modules/uuid/dist/validate.js +2 -7
  413. package/node_modules/uuid/dist/version.js +2 -8
  414. package/node_modules/uuid/package.json +41 -34
  415. package/node_modules/uuid/wrapper.mjs +5 -0
  416. package/package.json +6 -6
  417. package/tak-ingest.js +5 -1
  418. package/tak-registration.js +8 -1
  419. package/node_modules/@types/node/ts4.8/assert/strict.d.ts +0 -8
  420. package/node_modules/@types/node/ts4.8/assert.d.ts +0 -996
  421. package/node_modules/@types/node/ts4.8/async_hooks.d.ts +0 -539
  422. package/node_modules/@types/node/ts4.8/buffer.d.ts +0 -2362
  423. package/node_modules/@types/node/ts4.8/child_process.d.ts +0 -1540
  424. package/node_modules/@types/node/ts4.8/cluster.d.ts +0 -432
  425. package/node_modules/@types/node/ts4.8/console.d.ts +0 -415
  426. package/node_modules/@types/node/ts4.8/constants.d.ts +0 -19
  427. package/node_modules/@types/node/ts4.8/crypto.d.ts +0 -4455
  428. package/node_modules/@types/node/ts4.8/dgram.d.ts +0 -586
  429. package/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +0 -191
  430. package/node_modules/@types/node/ts4.8/dns/promises.d.ts +0 -425
  431. package/node_modules/@types/node/ts4.8/dns.d.ts +0 -809
  432. package/node_modules/@types/node/ts4.8/dom-events.d.ts +0 -122
  433. package/node_modules/@types/node/ts4.8/domain.d.ts +0 -170
  434. package/node_modules/@types/node/ts4.8/events.d.ts +0 -879
  435. package/node_modules/@types/node/ts4.8/fs/promises.d.ts +0 -1239
  436. package/node_modules/@types/node/ts4.8/fs.d.ts +0 -4291
  437. package/node_modules/@types/node/ts4.8/globals.d.ts +0 -385
  438. package/node_modules/@types/node/ts4.8/globals.global.d.ts +0 -1
  439. package/node_modules/@types/node/ts4.8/http.d.ts +0 -1888
  440. package/node_modules/@types/node/ts4.8/http2.d.ts +0 -2382
  441. package/node_modules/@types/node/ts4.8/https.d.ts +0 -550
  442. package/node_modules/@types/node/ts4.8/index.d.ts +0 -88
  443. package/node_modules/@types/node/ts4.8/inspector.d.ts +0 -2747
  444. package/node_modules/@types/node/ts4.8/module.d.ts +0 -301
  445. package/node_modules/@types/node/ts4.8/net.d.ts +0 -949
  446. package/node_modules/@types/node/ts4.8/os.d.ts +0 -478
  447. package/node_modules/@types/node/ts4.8/path.d.ts +0 -191
  448. package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +0 -639
  449. package/node_modules/@types/node/ts4.8/process.d.ts +0 -1539
  450. package/node_modules/@types/node/ts4.8/punycode.d.ts +0 -117
  451. package/node_modules/@types/node/ts4.8/querystring.d.ts +0 -141
  452. package/node_modules/@types/node/ts4.8/readline/promises.d.ts +0 -150
  453. package/node_modules/@types/node/ts4.8/readline.d.ts +0 -539
  454. package/node_modules/@types/node/ts4.8/repl.d.ts +0 -430
  455. package/node_modules/@types/node/ts4.8/stream/consumers.d.ts +0 -12
  456. package/node_modules/@types/node/ts4.8/stream/promises.d.ts +0 -83
  457. package/node_modules/@types/node/ts4.8/stream/web.d.ts +0 -350
  458. package/node_modules/@types/node/ts4.8/stream.d.ts +0 -1701
  459. package/node_modules/@types/node/ts4.8/string_decoder.d.ts +0 -67
  460. package/node_modules/@types/node/ts4.8/test.d.ts +0 -1382
  461. package/node_modules/@types/node/ts4.8/timers/promises.d.ts +0 -93
  462. package/node_modules/@types/node/ts4.8/timers.d.ts +0 -240
  463. package/node_modules/@types/node/ts4.8/tls.d.ts +0 -1210
  464. package/node_modules/@types/node/ts4.8/trace_events.d.ts +0 -182
  465. package/node_modules/@types/node/ts4.8/tty.d.ts +0 -208
  466. package/node_modules/@types/node/ts4.8/url.d.ts +0 -927
  467. package/node_modules/@types/node/ts4.8/util.d.ts +0 -2183
  468. package/node_modules/@types/node/ts4.8/v8.d.ts +0 -635
  469. package/node_modules/@types/node/ts4.8/vm.d.ts +0 -903
  470. package/node_modules/@types/node/ts4.8/wasi.d.ts +0 -158
  471. package/node_modules/@types/node/ts4.8/worker_threads.d.ts +0 -691
  472. package/node_modules/@types/node/ts4.8/zlib.d.ts +0 -517
  473. package/node_modules/define-data-property/index.d.ts.map +0 -1
  474. package/node_modules/hasown/index.d.ts.map +0 -1
  475. package/node_modules/object-is/.eslintignore +0 -1
  476. package/node_modules/polygon-clipping/CHANGELOG.md +0 -129
@@ -1,589 +1,589 @@
1
- "use strict";
2
- module.exports = Type;
3
-
4
- // extends Namespace
5
- var Namespace = require("./namespace");
6
- ((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = "Type";
7
-
8
- var Enum = require("./enum"),
9
- OneOf = require("./oneof"),
10
- Field = require("./field"),
11
- MapField = require("./mapfield"),
12
- Service = require("./service"),
13
- Message = require("./message"),
14
- Reader = require("./reader"),
15
- Writer = require("./writer"),
16
- util = require("./util"),
17
- encoder = require("./encoder"),
18
- decoder = require("./decoder"),
19
- verifier = require("./verifier"),
20
- converter = require("./converter"),
21
- wrappers = require("./wrappers");
22
-
23
- /**
24
- * Constructs a new reflected message type instance.
25
- * @classdesc Reflected message type.
26
- * @extends NamespaceBase
27
- * @constructor
28
- * @param {string} name Message name
29
- * @param {Object.<string,*>} [options] Declared options
30
- */
31
- function Type(name, options) {
32
- Namespace.call(this, name, options);
33
-
34
- /**
35
- * Message fields.
36
- * @type {Object.<string,Field>}
37
- */
38
- this.fields = {}; // toJSON, marker
39
-
40
- /**
41
- * Oneofs declared within this namespace, if any.
42
- * @type {Object.<string,OneOf>}
43
- */
44
- this.oneofs = undefined; // toJSON
45
-
46
- /**
47
- * Extension ranges, if any.
48
- * @type {number[][]}
49
- */
50
- this.extensions = undefined; // toJSON
51
-
52
- /**
53
- * Reserved ranges, if any.
54
- * @type {Array.<number[]|string>}
55
- */
56
- this.reserved = undefined; // toJSON
57
-
58
- /*?
59
- * Whether this type is a legacy group.
60
- * @type {boolean|undefined}
61
- */
62
- this.group = undefined; // toJSON
63
-
64
- /**
65
- * Cached fields by id.
66
- * @type {Object.<number,Field>|null}
67
- * @private
68
- */
69
- this._fieldsById = null;
70
-
71
- /**
72
- * Cached fields as an array.
73
- * @type {Field[]|null}
74
- * @private
75
- */
76
- this._fieldsArray = null;
77
-
78
- /**
79
- * Cached oneofs as an array.
80
- * @type {OneOf[]|null}
81
- * @private
82
- */
83
- this._oneofsArray = null;
84
-
85
- /**
86
- * Cached constructor.
87
- * @type {Constructor<{}>}
88
- * @private
89
- */
90
- this._ctor = null;
91
- }
92
-
93
- Object.defineProperties(Type.prototype, {
94
-
95
- /**
96
- * Message fields by id.
97
- * @name Type#fieldsById
98
- * @type {Object.<number,Field>}
99
- * @readonly
100
- */
101
- fieldsById: {
102
- get: function() {
103
-
104
- /* istanbul ignore if */
105
- if (this._fieldsById)
106
- return this._fieldsById;
107
-
108
- this._fieldsById = {};
109
- for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {
110
- var field = this.fields[names[i]],
111
- id = field.id;
112
-
113
- /* istanbul ignore if */
114
- if (this._fieldsById[id])
115
- throw Error("duplicate id " + id + " in " + this);
116
-
117
- this._fieldsById[id] = field;
118
- }
119
- return this._fieldsById;
120
- }
121
- },
122
-
123
- /**
124
- * Fields of this message as an array for iteration.
125
- * @name Type#fieldsArray
126
- * @type {Field[]}
127
- * @readonly
128
- */
129
- fieldsArray: {
130
- get: function() {
131
- return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));
132
- }
133
- },
134
-
135
- /**
136
- * Oneofs of this message as an array for iteration.
137
- * @name Type#oneofsArray
138
- * @type {OneOf[]}
139
- * @readonly
140
- */
141
- oneofsArray: {
142
- get: function() {
143
- return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));
144
- }
145
- },
146
-
147
- /**
148
- * The registered constructor, if any registered, otherwise a generic constructor.
149
- * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.
150
- * @name Type#ctor
151
- * @type {Constructor<{}>}
152
- */
153
- ctor: {
154
- get: function() {
155
- return this._ctor || (this.ctor = Type.generateConstructor(this)());
156
- },
157
- set: function(ctor) {
158
-
159
- // Ensure proper prototype
160
- var prototype = ctor.prototype;
161
- if (!(prototype instanceof Message)) {
162
- (ctor.prototype = new Message()).constructor = ctor;
163
- util.merge(ctor.prototype, prototype);
164
- }
165
-
166
- // Classes and messages reference their reflected type
167
- ctor.$type = ctor.prototype.$type = this;
168
-
169
- // Mix in static methods
170
- util.merge(ctor, Message, true);
171
-
172
- this._ctor = ctor;
173
-
174
- // Messages have non-enumerable default values on their prototype
175
- var i = 0;
176
- for (; i < /* initializes */ this.fieldsArray.length; ++i)
177
- this._fieldsArray[i].resolve(); // ensures a proper value
178
-
179
- // Messages have non-enumerable getters and setters for each virtual oneof field
180
- var ctorProperties = {};
181
- for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)
182
- ctorProperties[this._oneofsArray[i].resolve().name] = {
183
- get: util.oneOfGetter(this._oneofsArray[i].oneof),
184
- set: util.oneOfSetter(this._oneofsArray[i].oneof)
185
- };
186
- if (i)
187
- Object.defineProperties(ctor.prototype, ctorProperties);
188
- }
189
- }
190
- });
191
-
192
- /**
193
- * Generates a constructor function for the specified type.
194
- * @param {Type} mtype Message type
195
- * @returns {Codegen} Codegen instance
196
- */
197
- Type.generateConstructor = function generateConstructor(mtype) {
198
- /* eslint-disable no-unexpected-multiline */
199
- var gen = util.codegen(["p"], mtype.name);
200
- // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype
201
- for (var i = 0, field; i < mtype.fieldsArray.length; ++i)
202
- if ((field = mtype._fieldsArray[i]).map) gen
203
- ("this%s={}", util.safeProp(field.name));
204
- else if (field.repeated) gen
205
- ("this%s=[]", util.safeProp(field.name));
206
- return gen
207
- ("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)") // omit undefined or null
208
- ("this[ks[i]]=p[ks[i]]");
209
- /* eslint-enable no-unexpected-multiline */
210
- };
211
-
212
- function clearCache(type) {
213
- type._fieldsById = type._fieldsArray = type._oneofsArray = null;
214
- delete type.encode;
215
- delete type.decode;
216
- delete type.verify;
217
- return type;
218
- }
219
-
220
- /**
221
- * Message type descriptor.
222
- * @interface IType
223
- * @extends INamespace
224
- * @property {Object.<string,IOneOf>} [oneofs] Oneof descriptors
225
- * @property {Object.<string,IField>} fields Field descriptors
226
- * @property {number[][]} [extensions] Extension ranges
227
- * @property {number[][]} [reserved] Reserved ranges
228
- * @property {boolean} [group=false] Whether a legacy group or not
229
- */
230
-
231
- /**
232
- * Creates a message type from a message type descriptor.
233
- * @param {string} name Message name
234
- * @param {IType} json Message type descriptor
235
- * @returns {Type} Created message type
236
- */
237
- Type.fromJSON = function fromJSON(name, json) {
238
- var type = new Type(name, json.options);
239
- type.extensions = json.extensions;
240
- type.reserved = json.reserved;
241
- var names = Object.keys(json.fields),
242
- i = 0;
243
- for (; i < names.length; ++i)
244
- type.add(
245
- ( typeof json.fields[names[i]].keyType !== "undefined"
246
- ? MapField.fromJSON
247
- : Field.fromJSON )(names[i], json.fields[names[i]])
248
- );
249
- if (json.oneofs)
250
- for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)
251
- type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));
252
- if (json.nested)
253
- for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {
254
- var nested = json.nested[names[i]];
255
- type.add( // most to least likely
256
- ( nested.id !== undefined
257
- ? Field.fromJSON
258
- : nested.fields !== undefined
259
- ? Type.fromJSON
260
- : nested.values !== undefined
261
- ? Enum.fromJSON
262
- : nested.methods !== undefined
263
- ? Service.fromJSON
264
- : Namespace.fromJSON )(names[i], nested)
265
- );
266
- }
267
- if (json.extensions && json.extensions.length)
268
- type.extensions = json.extensions;
269
- if (json.reserved && json.reserved.length)
270
- type.reserved = json.reserved;
271
- if (json.group)
272
- type.group = true;
273
- if (json.comment)
274
- type.comment = json.comment;
275
- return type;
276
- };
277
-
278
- /**
279
- * Converts this message type to a message type descriptor.
280
- * @param {IToJSONOptions} [toJSONOptions] JSON conversion options
281
- * @returns {IType} Message type descriptor
282
- */
283
- Type.prototype.toJSON = function toJSON(toJSONOptions) {
284
- var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);
285
- var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;
286
- return util.toObject([
287
- "options" , inherited && inherited.options || undefined,
288
- "oneofs" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),
289
- "fields" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},
290
- "extensions" , this.extensions && this.extensions.length ? this.extensions : undefined,
291
- "reserved" , this.reserved && this.reserved.length ? this.reserved : undefined,
292
- "group" , this.group || undefined,
293
- "nested" , inherited && inherited.nested || undefined,
294
- "comment" , keepComments ? this.comment : undefined
295
- ]);
296
- };
297
-
298
- /**
299
- * @override
300
- */
301
- Type.prototype.resolveAll = function resolveAll() {
302
- var fields = this.fieldsArray, i = 0;
303
- while (i < fields.length)
304
- fields[i++].resolve();
305
- var oneofs = this.oneofsArray; i = 0;
306
- while (i < oneofs.length)
307
- oneofs[i++].resolve();
308
- return Namespace.prototype.resolveAll.call(this);
309
- };
310
-
311
- /**
312
- * @override
313
- */
314
- Type.prototype.get = function get(name) {
315
- return this.fields[name]
316
- || this.oneofs && this.oneofs[name]
317
- || this.nested && this.nested[name]
318
- || null;
319
- };
320
-
321
- /**
322
- * Adds a nested object to this type.
323
- * @param {ReflectionObject} object Nested object to add
324
- * @returns {Type} `this`
325
- * @throws {TypeError} If arguments are invalid
326
- * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id
327
- */
328
- Type.prototype.add = function add(object) {
329
-
330
- if (this.get(object.name))
331
- throw Error("duplicate name '" + object.name + "' in " + this);
332
-
333
- if (object instanceof Field && object.extend === undefined) {
334
- // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.
335
- // The root object takes care of adding distinct sister-fields to the respective extended
336
- // type instead.
337
-
338
- // avoids calling the getter if not absolutely necessary because it's called quite frequently
339
- if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])
340
- throw Error("duplicate id " + object.id + " in " + this);
341
- if (this.isReservedId(object.id))
342
- throw Error("id " + object.id + " is reserved in " + this);
343
- if (this.isReservedName(object.name))
344
- throw Error("name '" + object.name + "' is reserved in " + this);
345
-
346
- if (object.parent)
347
- object.parent.remove(object);
348
- this.fields[object.name] = object;
349
- object.message = this;
350
- object.onAdd(this);
351
- return clearCache(this);
352
- }
353
- if (object instanceof OneOf) {
354
- if (!this.oneofs)
355
- this.oneofs = {};
356
- this.oneofs[object.name] = object;
357
- object.onAdd(this);
358
- return clearCache(this);
359
- }
360
- return Namespace.prototype.add.call(this, object);
361
- };
362
-
363
- /**
364
- * Removes a nested object from this type.
365
- * @param {ReflectionObject} object Nested object to remove
366
- * @returns {Type} `this`
367
- * @throws {TypeError} If arguments are invalid
368
- * @throws {Error} If `object` is not a member of this type
369
- */
370
- Type.prototype.remove = function remove(object) {
371
- if (object instanceof Field && object.extend === undefined) {
372
- // See Type#add for the reason why extension fields are excluded here.
373
-
374
- /* istanbul ignore if */
375
- if (!this.fields || this.fields[object.name] !== object)
376
- throw Error(object + " is not a member of " + this);
377
-
378
- delete this.fields[object.name];
379
- object.parent = null;
380
- object.onRemove(this);
381
- return clearCache(this);
382
- }
383
- if (object instanceof OneOf) {
384
-
385
- /* istanbul ignore if */
386
- if (!this.oneofs || this.oneofs[object.name] !== object)
387
- throw Error(object + " is not a member of " + this);
388
-
389
- delete this.oneofs[object.name];
390
- object.parent = null;
391
- object.onRemove(this);
392
- return clearCache(this);
393
- }
394
- return Namespace.prototype.remove.call(this, object);
395
- };
396
-
397
- /**
398
- * Tests if the specified id is reserved.
399
- * @param {number} id Id to test
400
- * @returns {boolean} `true` if reserved, otherwise `false`
401
- */
402
- Type.prototype.isReservedId = function isReservedId(id) {
403
- return Namespace.isReservedId(this.reserved, id);
404
- };
405
-
406
- /**
407
- * Tests if the specified name is reserved.
408
- * @param {string} name Name to test
409
- * @returns {boolean} `true` if reserved, otherwise `false`
410
- */
411
- Type.prototype.isReservedName = function isReservedName(name) {
412
- return Namespace.isReservedName(this.reserved, name);
413
- };
414
-
415
- /**
416
- * Creates a new message of this type using the specified properties.
417
- * @param {Object.<string,*>} [properties] Properties to set
418
- * @returns {Message<{}>} Message instance
419
- */
420
- Type.prototype.create = function create(properties) {
421
- return new this.ctor(properties);
422
- };
423
-
424
- /**
425
- * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.
426
- * @returns {Type} `this`
427
- */
428
- Type.prototype.setup = function setup() {
429
- // Sets up everything at once so that the prototype chain does not have to be re-evaluated
430
- // multiple times (V8, soft-deopt prototype-check).
431
-
432
- var fullName = this.fullName,
433
- types = [];
434
- for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)
435
- types.push(this._fieldsArray[i].resolve().resolvedType);
436
-
437
- // Replace setup methods with type-specific generated functions
438
- this.encode = encoder(this)({
439
- Writer : Writer,
440
- types : types,
441
- util : util
442
- });
443
- this.decode = decoder(this)({
444
- Reader : Reader,
445
- types : types,
446
- util : util
447
- });
448
- this.verify = verifier(this)({
449
- types : types,
450
- util : util
451
- });
452
- this.fromObject = converter.fromObject(this)({
453
- types : types,
454
- util : util
455
- });
456
- this.toObject = converter.toObject(this)({
457
- types : types,
458
- util : util
459
- });
460
-
461
- // Inject custom wrappers for common types
462
- var wrapper = wrappers[fullName];
463
- if (wrapper) {
464
- var originalThis = Object.create(this);
465
- // if (wrapper.fromObject) {
466
- originalThis.fromObject = this.fromObject;
467
- this.fromObject = wrapper.fromObject.bind(originalThis);
468
- // }
469
- // if (wrapper.toObject) {
470
- originalThis.toObject = this.toObject;
471
- this.toObject = wrapper.toObject.bind(originalThis);
472
- // }
473
- }
474
-
475
- return this;
476
- };
477
-
478
- /**
479
- * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.
480
- * @param {Message<{}>|Object.<string,*>} message Message instance or plain object
481
- * @param {Writer} [writer] Writer to encode to
482
- * @returns {Writer} writer
483
- */
484
- Type.prototype.encode = function encode_setup(message, writer) {
485
- return this.setup().encode(message, writer); // overrides this method
486
- };
487
-
488
- /**
489
- * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.
490
- * @param {Message<{}>|Object.<string,*>} message Message instance or plain object
491
- * @param {Writer} [writer] Writer to encode to
492
- * @returns {Writer} writer
493
- */
494
- Type.prototype.encodeDelimited = function encodeDelimited(message, writer) {
495
- return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();
496
- };
497
-
498
- /**
499
- * Decodes a message of this type.
500
- * @param {Reader|Uint8Array} reader Reader or buffer to decode from
501
- * @param {number} [length] Length of the message, if known beforehand
502
- * @returns {Message<{}>} Decoded message
503
- * @throws {Error} If the payload is not a reader or valid buffer
504
- * @throws {util.ProtocolError<{}>} If required fields are missing
505
- */
506
- Type.prototype.decode = function decode_setup(reader, length) {
507
- return this.setup().decode(reader, length); // overrides this method
508
- };
509
-
510
- /**
511
- * Decodes a message of this type preceeded by its byte length as a varint.
512
- * @param {Reader|Uint8Array} reader Reader or buffer to decode from
513
- * @returns {Message<{}>} Decoded message
514
- * @throws {Error} If the payload is not a reader or valid buffer
515
- * @throws {util.ProtocolError} If required fields are missing
516
- */
517
- Type.prototype.decodeDelimited = function decodeDelimited(reader) {
518
- if (!(reader instanceof Reader))
519
- reader = Reader.create(reader);
520
- return this.decode(reader, reader.uint32());
521
- };
522
-
523
- /**
524
- * Verifies that field values are valid and that required fields are present.
525
- * @param {Object.<string,*>} message Plain object to verify
526
- * @returns {null|string} `null` if valid, otherwise the reason why it is not
527
- */
528
- Type.prototype.verify = function verify_setup(message) {
529
- return this.setup().verify(message); // overrides this method
530
- };
531
-
532
- /**
533
- * Creates a new message of this type from a plain object. Also converts values to their respective internal types.
534
- * @param {Object.<string,*>} object Plain object to convert
535
- * @returns {Message<{}>} Message instance
536
- */
537
- Type.prototype.fromObject = function fromObject(object) {
538
- return this.setup().fromObject(object);
539
- };
540
-
541
- /**
542
- * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.
543
- * @interface IConversionOptions
544
- * @property {Function} [longs] Long conversion type.
545
- * Valid values are `String` and `Number` (the global types).
546
- * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.
547
- * @property {Function} [enums] Enum value conversion type.
548
- * Only valid value is `String` (the global type).
549
- * Defaults to copy the present value, which is the numeric id.
550
- * @property {Function} [bytes] Bytes value conversion type.
551
- * Valid values are `Array` and (a base64 encoded) `String` (the global types).
552
- * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.
553
- * @property {boolean} [defaults=false] Also sets default values on the resulting object
554
- * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`
555
- * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`
556
- * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any
557
- * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings
558
- */
559
-
560
- /**
561
- * Creates a plain object from a message of this type. Also converts values to other types if specified.
562
- * @param {Message<{}>} message Message instance
563
- * @param {IConversionOptions} [options] Conversion options
564
- * @returns {Object.<string,*>} Plain object
565
- */
566
- Type.prototype.toObject = function toObject(message, options) {
567
- return this.setup().toObject(message, options);
568
- };
569
-
570
- /**
571
- * Decorator function as returned by {@link Type.d} (TypeScript).
572
- * @typedef TypeDecorator
573
- * @type {function}
574
- * @param {Constructor<T>} target Target constructor
575
- * @returns {undefined}
576
- * @template T extends Message<T>
577
- */
578
-
579
- /**
580
- * Type decorator (TypeScript).
581
- * @param {string} [typeName] Type name, defaults to the constructor's name
582
- * @returns {TypeDecorator<T>} Decorator function
583
- * @template T extends Message<T>
584
- */
585
- Type.d = function decorateType(typeName) {
586
- return function typeDecorator(target) {
587
- util.decorateType(target, typeName);
588
- };
589
- };
1
+ "use strict";
2
+ module.exports = Type;
3
+
4
+ // extends Namespace
5
+ var Namespace = require("./namespace");
6
+ ((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = "Type";
7
+
8
+ var Enum = require("./enum"),
9
+ OneOf = require("./oneof"),
10
+ Field = require("./field"),
11
+ MapField = require("./mapfield"),
12
+ Service = require("./service"),
13
+ Message = require("./message"),
14
+ Reader = require("./reader"),
15
+ Writer = require("./writer"),
16
+ util = require("./util"),
17
+ encoder = require("./encoder"),
18
+ decoder = require("./decoder"),
19
+ verifier = require("./verifier"),
20
+ converter = require("./converter"),
21
+ wrappers = require("./wrappers");
22
+
23
+ /**
24
+ * Constructs a new reflected message type instance.
25
+ * @classdesc Reflected message type.
26
+ * @extends NamespaceBase
27
+ * @constructor
28
+ * @param {string} name Message name
29
+ * @param {Object.<string,*>} [options] Declared options
30
+ */
31
+ function Type(name, options) {
32
+ Namespace.call(this, name, options);
33
+
34
+ /**
35
+ * Message fields.
36
+ * @type {Object.<string,Field>}
37
+ */
38
+ this.fields = {}; // toJSON, marker
39
+
40
+ /**
41
+ * Oneofs declared within this namespace, if any.
42
+ * @type {Object.<string,OneOf>}
43
+ */
44
+ this.oneofs = undefined; // toJSON
45
+
46
+ /**
47
+ * Extension ranges, if any.
48
+ * @type {number[][]}
49
+ */
50
+ this.extensions = undefined; // toJSON
51
+
52
+ /**
53
+ * Reserved ranges, if any.
54
+ * @type {Array.<number[]|string>}
55
+ */
56
+ this.reserved = undefined; // toJSON
57
+
58
+ /*?
59
+ * Whether this type is a legacy group.
60
+ * @type {boolean|undefined}
61
+ */
62
+ this.group = undefined; // toJSON
63
+
64
+ /**
65
+ * Cached fields by id.
66
+ * @type {Object.<number,Field>|null}
67
+ * @private
68
+ */
69
+ this._fieldsById = null;
70
+
71
+ /**
72
+ * Cached fields as an array.
73
+ * @type {Field[]|null}
74
+ * @private
75
+ */
76
+ this._fieldsArray = null;
77
+
78
+ /**
79
+ * Cached oneofs as an array.
80
+ * @type {OneOf[]|null}
81
+ * @private
82
+ */
83
+ this._oneofsArray = null;
84
+
85
+ /**
86
+ * Cached constructor.
87
+ * @type {Constructor<{}>}
88
+ * @private
89
+ */
90
+ this._ctor = null;
91
+ }
92
+
93
+ Object.defineProperties(Type.prototype, {
94
+
95
+ /**
96
+ * Message fields by id.
97
+ * @name Type#fieldsById
98
+ * @type {Object.<number,Field>}
99
+ * @readonly
100
+ */
101
+ fieldsById: {
102
+ get: function() {
103
+
104
+ /* istanbul ignore if */
105
+ if (this._fieldsById)
106
+ return this._fieldsById;
107
+
108
+ this._fieldsById = {};
109
+ for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {
110
+ var field = this.fields[names[i]],
111
+ id = field.id;
112
+
113
+ /* istanbul ignore if */
114
+ if (this._fieldsById[id])
115
+ throw Error("duplicate id " + id + " in " + this);
116
+
117
+ this._fieldsById[id] = field;
118
+ }
119
+ return this._fieldsById;
120
+ }
121
+ },
122
+
123
+ /**
124
+ * Fields of this message as an array for iteration.
125
+ * @name Type#fieldsArray
126
+ * @type {Field[]}
127
+ * @readonly
128
+ */
129
+ fieldsArray: {
130
+ get: function() {
131
+ return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));
132
+ }
133
+ },
134
+
135
+ /**
136
+ * Oneofs of this message as an array for iteration.
137
+ * @name Type#oneofsArray
138
+ * @type {OneOf[]}
139
+ * @readonly
140
+ */
141
+ oneofsArray: {
142
+ get: function() {
143
+ return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));
144
+ }
145
+ },
146
+
147
+ /**
148
+ * The registered constructor, if any registered, otherwise a generic constructor.
149
+ * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.
150
+ * @name Type#ctor
151
+ * @type {Constructor<{}>}
152
+ */
153
+ ctor: {
154
+ get: function() {
155
+ return this._ctor || (this.ctor = Type.generateConstructor(this)());
156
+ },
157
+ set: function(ctor) {
158
+
159
+ // Ensure proper prototype
160
+ var prototype = ctor.prototype;
161
+ if (!(prototype instanceof Message)) {
162
+ (ctor.prototype = new Message()).constructor = ctor;
163
+ util.merge(ctor.prototype, prototype);
164
+ }
165
+
166
+ // Classes and messages reference their reflected type
167
+ ctor.$type = ctor.prototype.$type = this;
168
+
169
+ // Mix in static methods
170
+ util.merge(ctor, Message, true);
171
+
172
+ this._ctor = ctor;
173
+
174
+ // Messages have non-enumerable default values on their prototype
175
+ var i = 0;
176
+ for (; i < /* initializes */ this.fieldsArray.length; ++i)
177
+ this._fieldsArray[i].resolve(); // ensures a proper value
178
+
179
+ // Messages have non-enumerable getters and setters for each virtual oneof field
180
+ var ctorProperties = {};
181
+ for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)
182
+ ctorProperties[this._oneofsArray[i].resolve().name] = {
183
+ get: util.oneOfGetter(this._oneofsArray[i].oneof),
184
+ set: util.oneOfSetter(this._oneofsArray[i].oneof)
185
+ };
186
+ if (i)
187
+ Object.defineProperties(ctor.prototype, ctorProperties);
188
+ }
189
+ }
190
+ });
191
+
192
+ /**
193
+ * Generates a constructor function for the specified type.
194
+ * @param {Type} mtype Message type
195
+ * @returns {Codegen} Codegen instance
196
+ */
197
+ Type.generateConstructor = function generateConstructor(mtype) {
198
+ /* eslint-disable no-unexpected-multiline */
199
+ var gen = util.codegen(["p"], mtype.name);
200
+ // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype
201
+ for (var i = 0, field; i < mtype.fieldsArray.length; ++i)
202
+ if ((field = mtype._fieldsArray[i]).map) gen
203
+ ("this%s={}", util.safeProp(field.name));
204
+ else if (field.repeated) gen
205
+ ("this%s=[]", util.safeProp(field.name));
206
+ return gen
207
+ ("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)") // omit undefined or null
208
+ ("this[ks[i]]=p[ks[i]]");
209
+ /* eslint-enable no-unexpected-multiline */
210
+ };
211
+
212
+ function clearCache(type) {
213
+ type._fieldsById = type._fieldsArray = type._oneofsArray = null;
214
+ delete type.encode;
215
+ delete type.decode;
216
+ delete type.verify;
217
+ return type;
218
+ }
219
+
220
+ /**
221
+ * Message type descriptor.
222
+ * @interface IType
223
+ * @extends INamespace
224
+ * @property {Object.<string,IOneOf>} [oneofs] Oneof descriptors
225
+ * @property {Object.<string,IField>} fields Field descriptors
226
+ * @property {number[][]} [extensions] Extension ranges
227
+ * @property {Array.<number[]|string>} [reserved] Reserved ranges
228
+ * @property {boolean} [group=false] Whether a legacy group or not
229
+ */
230
+
231
+ /**
232
+ * Creates a message type from a message type descriptor.
233
+ * @param {string} name Message name
234
+ * @param {IType} json Message type descriptor
235
+ * @returns {Type} Created message type
236
+ */
237
+ Type.fromJSON = function fromJSON(name, json) {
238
+ var type = new Type(name, json.options);
239
+ type.extensions = json.extensions;
240
+ type.reserved = json.reserved;
241
+ var names = Object.keys(json.fields),
242
+ i = 0;
243
+ for (; i < names.length; ++i)
244
+ type.add(
245
+ ( typeof json.fields[names[i]].keyType !== "undefined"
246
+ ? MapField.fromJSON
247
+ : Field.fromJSON )(names[i], json.fields[names[i]])
248
+ );
249
+ if (json.oneofs)
250
+ for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)
251
+ type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));
252
+ if (json.nested)
253
+ for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {
254
+ var nested = json.nested[names[i]];
255
+ type.add( // most to least likely
256
+ ( nested.id !== undefined
257
+ ? Field.fromJSON
258
+ : nested.fields !== undefined
259
+ ? Type.fromJSON
260
+ : nested.values !== undefined
261
+ ? Enum.fromJSON
262
+ : nested.methods !== undefined
263
+ ? Service.fromJSON
264
+ : Namespace.fromJSON )(names[i], nested)
265
+ );
266
+ }
267
+ if (json.extensions && json.extensions.length)
268
+ type.extensions = json.extensions;
269
+ if (json.reserved && json.reserved.length)
270
+ type.reserved = json.reserved;
271
+ if (json.group)
272
+ type.group = true;
273
+ if (json.comment)
274
+ type.comment = json.comment;
275
+ return type;
276
+ };
277
+
278
+ /**
279
+ * Converts this message type to a message type descriptor.
280
+ * @param {IToJSONOptions} [toJSONOptions] JSON conversion options
281
+ * @returns {IType} Message type descriptor
282
+ */
283
+ Type.prototype.toJSON = function toJSON(toJSONOptions) {
284
+ var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);
285
+ var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;
286
+ return util.toObject([
287
+ "options" , inherited && inherited.options || undefined,
288
+ "oneofs" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),
289
+ "fields" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},
290
+ "extensions" , this.extensions && this.extensions.length ? this.extensions : undefined,
291
+ "reserved" , this.reserved && this.reserved.length ? this.reserved : undefined,
292
+ "group" , this.group || undefined,
293
+ "nested" , inherited && inherited.nested || undefined,
294
+ "comment" , keepComments ? this.comment : undefined
295
+ ]);
296
+ };
297
+
298
+ /**
299
+ * @override
300
+ */
301
+ Type.prototype.resolveAll = function resolveAll() {
302
+ var fields = this.fieldsArray, i = 0;
303
+ while (i < fields.length)
304
+ fields[i++].resolve();
305
+ var oneofs = this.oneofsArray; i = 0;
306
+ while (i < oneofs.length)
307
+ oneofs[i++].resolve();
308
+ return Namespace.prototype.resolveAll.call(this);
309
+ };
310
+
311
+ /**
312
+ * @override
313
+ */
314
+ Type.prototype.get = function get(name) {
315
+ return this.fields[name]
316
+ || this.oneofs && this.oneofs[name]
317
+ || this.nested && this.nested[name]
318
+ || null;
319
+ };
320
+
321
+ /**
322
+ * Adds a nested object to this type.
323
+ * @param {ReflectionObject} object Nested object to add
324
+ * @returns {Type} `this`
325
+ * @throws {TypeError} If arguments are invalid
326
+ * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id
327
+ */
328
+ Type.prototype.add = function add(object) {
329
+
330
+ if (this.get(object.name))
331
+ throw Error("duplicate name '" + object.name + "' in " + this);
332
+
333
+ if (object instanceof Field && object.extend === undefined) {
334
+ // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.
335
+ // The root object takes care of adding distinct sister-fields to the respective extended
336
+ // type instead.
337
+
338
+ // avoids calling the getter if not absolutely necessary because it's called quite frequently
339
+ if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])
340
+ throw Error("duplicate id " + object.id + " in " + this);
341
+ if (this.isReservedId(object.id))
342
+ throw Error("id " + object.id + " is reserved in " + this);
343
+ if (this.isReservedName(object.name))
344
+ throw Error("name '" + object.name + "' is reserved in " + this);
345
+
346
+ if (object.parent)
347
+ object.parent.remove(object);
348
+ this.fields[object.name] = object;
349
+ object.message = this;
350
+ object.onAdd(this);
351
+ return clearCache(this);
352
+ }
353
+ if (object instanceof OneOf) {
354
+ if (!this.oneofs)
355
+ this.oneofs = {};
356
+ this.oneofs[object.name] = object;
357
+ object.onAdd(this);
358
+ return clearCache(this);
359
+ }
360
+ return Namespace.prototype.add.call(this, object);
361
+ };
362
+
363
+ /**
364
+ * Removes a nested object from this type.
365
+ * @param {ReflectionObject} object Nested object to remove
366
+ * @returns {Type} `this`
367
+ * @throws {TypeError} If arguments are invalid
368
+ * @throws {Error} If `object` is not a member of this type
369
+ */
370
+ Type.prototype.remove = function remove(object) {
371
+ if (object instanceof Field && object.extend === undefined) {
372
+ // See Type#add for the reason why extension fields are excluded here.
373
+
374
+ /* istanbul ignore if */
375
+ if (!this.fields || this.fields[object.name] !== object)
376
+ throw Error(object + " is not a member of " + this);
377
+
378
+ delete this.fields[object.name];
379
+ object.parent = null;
380
+ object.onRemove(this);
381
+ return clearCache(this);
382
+ }
383
+ if (object instanceof OneOf) {
384
+
385
+ /* istanbul ignore if */
386
+ if (!this.oneofs || this.oneofs[object.name] !== object)
387
+ throw Error(object + " is not a member of " + this);
388
+
389
+ delete this.oneofs[object.name];
390
+ object.parent = null;
391
+ object.onRemove(this);
392
+ return clearCache(this);
393
+ }
394
+ return Namespace.prototype.remove.call(this, object);
395
+ };
396
+
397
+ /**
398
+ * Tests if the specified id is reserved.
399
+ * @param {number} id Id to test
400
+ * @returns {boolean} `true` if reserved, otherwise `false`
401
+ */
402
+ Type.prototype.isReservedId = function isReservedId(id) {
403
+ return Namespace.isReservedId(this.reserved, id);
404
+ };
405
+
406
+ /**
407
+ * Tests if the specified name is reserved.
408
+ * @param {string} name Name to test
409
+ * @returns {boolean} `true` if reserved, otherwise `false`
410
+ */
411
+ Type.prototype.isReservedName = function isReservedName(name) {
412
+ return Namespace.isReservedName(this.reserved, name);
413
+ };
414
+
415
+ /**
416
+ * Creates a new message of this type using the specified properties.
417
+ * @param {Object.<string,*>} [properties] Properties to set
418
+ * @returns {Message<{}>} Message instance
419
+ */
420
+ Type.prototype.create = function create(properties) {
421
+ return new this.ctor(properties);
422
+ };
423
+
424
+ /**
425
+ * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.
426
+ * @returns {Type} `this`
427
+ */
428
+ Type.prototype.setup = function setup() {
429
+ // Sets up everything at once so that the prototype chain does not have to be re-evaluated
430
+ // multiple times (V8, soft-deopt prototype-check).
431
+
432
+ var fullName = this.fullName,
433
+ types = [];
434
+ for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)
435
+ types.push(this._fieldsArray[i].resolve().resolvedType);
436
+
437
+ // Replace setup methods with type-specific generated functions
438
+ this.encode = encoder(this)({
439
+ Writer : Writer,
440
+ types : types,
441
+ util : util
442
+ });
443
+ this.decode = decoder(this)({
444
+ Reader : Reader,
445
+ types : types,
446
+ util : util
447
+ });
448
+ this.verify = verifier(this)({
449
+ types : types,
450
+ util : util
451
+ });
452
+ this.fromObject = converter.fromObject(this)({
453
+ types : types,
454
+ util : util
455
+ });
456
+ this.toObject = converter.toObject(this)({
457
+ types : types,
458
+ util : util
459
+ });
460
+
461
+ // Inject custom wrappers for common types
462
+ var wrapper = wrappers[fullName];
463
+ if (wrapper) {
464
+ var originalThis = Object.create(this);
465
+ // if (wrapper.fromObject) {
466
+ originalThis.fromObject = this.fromObject;
467
+ this.fromObject = wrapper.fromObject.bind(originalThis);
468
+ // }
469
+ // if (wrapper.toObject) {
470
+ originalThis.toObject = this.toObject;
471
+ this.toObject = wrapper.toObject.bind(originalThis);
472
+ // }
473
+ }
474
+
475
+ return this;
476
+ };
477
+
478
+ /**
479
+ * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.
480
+ * @param {Message<{}>|Object.<string,*>} message Message instance or plain object
481
+ * @param {Writer} [writer] Writer to encode to
482
+ * @returns {Writer} writer
483
+ */
484
+ Type.prototype.encode = function encode_setup(message, writer) {
485
+ return this.setup().encode(message, writer); // overrides this method
486
+ };
487
+
488
+ /**
489
+ * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.
490
+ * @param {Message<{}>|Object.<string,*>} message Message instance or plain object
491
+ * @param {Writer} [writer] Writer to encode to
492
+ * @returns {Writer} writer
493
+ */
494
+ Type.prototype.encodeDelimited = function encodeDelimited(message, writer) {
495
+ return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();
496
+ };
497
+
498
+ /**
499
+ * Decodes a message of this type.
500
+ * @param {Reader|Uint8Array} reader Reader or buffer to decode from
501
+ * @param {number} [length] Length of the message, if known beforehand
502
+ * @returns {Message<{}>} Decoded message
503
+ * @throws {Error} If the payload is not a reader or valid buffer
504
+ * @throws {util.ProtocolError<{}>} If required fields are missing
505
+ */
506
+ Type.prototype.decode = function decode_setup(reader, length) {
507
+ return this.setup().decode(reader, length); // overrides this method
508
+ };
509
+
510
+ /**
511
+ * Decodes a message of this type preceeded by its byte length as a varint.
512
+ * @param {Reader|Uint8Array} reader Reader or buffer to decode from
513
+ * @returns {Message<{}>} Decoded message
514
+ * @throws {Error} If the payload is not a reader or valid buffer
515
+ * @throws {util.ProtocolError} If required fields are missing
516
+ */
517
+ Type.prototype.decodeDelimited = function decodeDelimited(reader) {
518
+ if (!(reader instanceof Reader))
519
+ reader = Reader.create(reader);
520
+ return this.decode(reader, reader.uint32());
521
+ };
522
+
523
+ /**
524
+ * Verifies that field values are valid and that required fields are present.
525
+ * @param {Object.<string,*>} message Plain object to verify
526
+ * @returns {null|string} `null` if valid, otherwise the reason why it is not
527
+ */
528
+ Type.prototype.verify = function verify_setup(message) {
529
+ return this.setup().verify(message); // overrides this method
530
+ };
531
+
532
+ /**
533
+ * Creates a new message of this type from a plain object. Also converts values to their respective internal types.
534
+ * @param {Object.<string,*>} object Plain object to convert
535
+ * @returns {Message<{}>} Message instance
536
+ */
537
+ Type.prototype.fromObject = function fromObject(object) {
538
+ return this.setup().fromObject(object);
539
+ };
540
+
541
+ /**
542
+ * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.
543
+ * @interface IConversionOptions
544
+ * @property {Function} [longs] Long conversion type.
545
+ * Valid values are `String` and `Number` (the global types).
546
+ * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.
547
+ * @property {Function} [enums] Enum value conversion type.
548
+ * Only valid value is `String` (the global type).
549
+ * Defaults to copy the present value, which is the numeric id.
550
+ * @property {Function} [bytes] Bytes value conversion type.
551
+ * Valid values are `Array` and (a base64 encoded) `String` (the global types).
552
+ * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.
553
+ * @property {boolean} [defaults=false] Also sets default values on the resulting object
554
+ * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`
555
+ * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`
556
+ * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any
557
+ * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings
558
+ */
559
+
560
+ /**
561
+ * Creates a plain object from a message of this type. Also converts values to other types if specified.
562
+ * @param {Message<{}>} message Message instance
563
+ * @param {IConversionOptions} [options] Conversion options
564
+ * @returns {Object.<string,*>} Plain object
565
+ */
566
+ Type.prototype.toObject = function toObject(message, options) {
567
+ return this.setup().toObject(message, options);
568
+ };
569
+
570
+ /**
571
+ * Decorator function as returned by {@link Type.d} (TypeScript).
572
+ * @typedef TypeDecorator
573
+ * @type {function}
574
+ * @param {Constructor<T>} target Target constructor
575
+ * @returns {undefined}
576
+ * @template T extends Message<T>
577
+ */
578
+
579
+ /**
580
+ * Type decorator (TypeScript).
581
+ * @param {string} [typeName] Type name, defaults to the constructor's name
582
+ * @returns {TypeDecorator<T>} Decorator function
583
+ * @template T extends Message<T>
584
+ */
585
+ Type.d = function decorateType(typeName) {
586
+ return function typeDecorator(target) {
587
+ util.decorateType(target, typeName);
588
+ };
589
+ };