node-red-contrib-tak-registration 0.14.1 → 0.16.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 (458) hide show
  1. package/README.md +1 -1
  2. package/node_modules/@types/geojson/README.md +1 -1
  3. package/node_modules/@types/geojson/index.d.ts +36 -2
  4. package/node_modules/@types/geojson/package.json +2 -2
  5. package/node_modules/@types/node/README.md +2 -2
  6. package/node_modules/@types/node/assert.d.ts +14 -0
  7. package/node_modules/@types/node/async_hooks.d.ts +64 -2
  8. package/node_modules/@types/node/buffer.buffer.d.ts +117 -39
  9. package/node_modules/@types/node/buffer.d.ts +6 -13
  10. package/node_modules/@types/node/cluster.d.ts +1 -1
  11. package/node_modules/@types/node/constants.d.ts +14 -12
  12. package/node_modules/@types/node/crypto.d.ts +44 -10
  13. package/node_modules/@types/node/dgram.d.ts +10 -7
  14. package/node_modules/@types/node/diagnostics_channel.d.ts +20 -1
  15. package/node_modules/@types/node/fs/promises.d.ts +23 -26
  16. package/node_modules/@types/node/fs.d.ts +166 -125
  17. package/node_modules/@types/node/globals.d.ts +141 -338
  18. package/node_modules/@types/node/http.d.ts +25 -3
  19. package/node_modules/@types/node/http2.d.ts +3 -4
  20. package/node_modules/@types/node/https.d.ts +3 -1
  21. package/node_modules/@types/node/inspector.d.ts +36 -0
  22. package/node_modules/@types/node/module.d.ts +599 -236
  23. package/node_modules/@types/node/net.d.ts +44 -13
  24. package/node_modules/@types/node/package.json +9 -4
  25. package/node_modules/@types/node/perf_hooks.d.ts +5 -0
  26. package/node_modules/@types/node/process.d.ts +69 -2
  27. package/node_modules/@types/node/querystring.d.ts +2 -3
  28. package/node_modules/@types/node/readline.d.ts +6 -1
  29. package/node_modules/@types/node/sea.d.ts +1 -1
  30. package/node_modules/@types/node/sqlite.d.ts +291 -17
  31. package/node_modules/@types/node/stream/consumers.d.ts +32 -6
  32. package/node_modules/@types/node/stream/web.d.ts +9 -4
  33. package/node_modules/@types/node/stream.d.ts +936 -1000
  34. package/node_modules/@types/node/test.d.ts +169 -137
  35. package/node_modules/@types/node/timers/promises.d.ts +24 -13
  36. package/node_modules/@types/node/timers.d.ts +159 -112
  37. package/node_modules/@types/node/tls.d.ts +34 -1
  38. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +110 -35
  39. package/node_modules/@types/node/util.d.ts +323 -110
  40. package/node_modules/@types/node/v8.d.ts +81 -0
  41. package/node_modules/@types/node/vm.d.ts +21 -6
  42. package/node_modules/@types/node/worker_threads.d.ts +1 -0
  43. package/node_modules/@types/node/zlib.d.ts +167 -36
  44. package/node_modules/axios/CHANGELOG.md +165 -0
  45. package/node_modules/axios/README.md +55 -33
  46. package/node_modules/axios/dist/axios.js +85 -43
  47. package/node_modules/axios/dist/axios.js.map +1 -1
  48. package/node_modules/axios/dist/axios.min.js +2 -1
  49. package/node_modules/axios/dist/axios.min.js.map +1 -1
  50. package/node_modules/axios/dist/browser/axios.cjs +92 -47
  51. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  52. package/node_modules/axios/dist/esm/axios.js +92 -47
  53. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  54. package/node_modules/axios/dist/esm/axios.min.js +2 -1
  55. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  56. package/node_modules/axios/dist/node/axios.cjs +123 -51
  57. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  58. package/node_modules/axios/index.d.cts +17 -5
  59. package/node_modules/axios/index.d.ts +6 -3
  60. package/node_modules/axios/lib/adapters/fetch.js +2 -2
  61. package/node_modules/axios/lib/adapters/http.js +1 -1
  62. package/node_modules/axios/lib/core/Axios.js +13 -4
  63. package/node_modules/axios/lib/core/AxiosHeaders.js +15 -3
  64. package/node_modules/axios/lib/core/buildFullPath.js +3 -2
  65. package/node_modules/axios/lib/core/mergeConfig.js +1 -1
  66. package/node_modules/axios/lib/env/data.js +1 -1
  67. package/node_modules/axios/lib/helpers/formDataToStream.js +4 -3
  68. package/node_modules/axios/lib/helpers/resolveConfig.js +1 -1
  69. package/node_modules/axios/lib/helpers/throttle.js +1 -1
  70. package/node_modules/axios/lib/helpers/toFormData.js +4 -0
  71. package/node_modules/axios/lib/helpers/toURLEncodedForm.js +4 -3
  72. package/node_modules/axios/lib/platform/node/index.js +26 -0
  73. package/node_modules/axios/lib/utils.js +48 -28
  74. package/node_modules/axios/package.json +14 -5
  75. package/node_modules/bignumber.js/CHANGELOG.md +82 -1
  76. package/node_modules/bignumber.js/LICENCE.md +1 -1
  77. package/node_modules/bignumber.js/README.md +6 -4
  78. package/node_modules/bignumber.js/bignumber.d.mts +6 -0
  79. package/node_modules/bignumber.js/bignumber.d.ts +3 -1829
  80. package/node_modules/bignumber.js/bignumber.js +3 -3
  81. package/node_modules/bignumber.js/bignumber.mjs +3 -3
  82. package/node_modules/bignumber.js/package.json +17 -7
  83. package/node_modules/bignumber.js/types.d.ts +1821 -0
  84. package/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  85. package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  86. package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  87. package/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  88. package/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  89. package/node_modules/call-bind-apply-helpers/README.md +62 -0
  90. package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  91. package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  92. package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  93. package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  94. package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  95. package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  96. package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  97. package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  98. package/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  99. package/node_modules/call-bind-apply-helpers/index.js +15 -0
  100. package/node_modules/call-bind-apply-helpers/package.json +85 -0
  101. package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  102. package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  103. package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  104. package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  105. package/node_modules/dunder-proto/.eslintrc +5 -0
  106. package/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  107. package/node_modules/dunder-proto/.nycrc +13 -0
  108. package/node_modules/dunder-proto/CHANGELOG.md +24 -0
  109. package/node_modules/dunder-proto/LICENSE +21 -0
  110. package/node_modules/dunder-proto/README.md +54 -0
  111. package/node_modules/dunder-proto/get.d.ts +5 -0
  112. package/node_modules/dunder-proto/get.js +30 -0
  113. package/node_modules/dunder-proto/package.json +76 -0
  114. package/node_modules/dunder-proto/set.d.ts +5 -0
  115. package/node_modules/dunder-proto/set.js +35 -0
  116. package/node_modules/dunder-proto/test/get.js +34 -0
  117. package/node_modules/dunder-proto/test/index.js +4 -0
  118. package/node_modules/dunder-proto/test/set.js +50 -0
  119. package/node_modules/dunder-proto/tsconfig.json +9 -0
  120. package/node_modules/es-define-property/.eslintrc +13 -0
  121. package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  122. package/node_modules/es-define-property/.nycrc +9 -0
  123. package/node_modules/es-define-property/CHANGELOG.md +29 -0
  124. package/node_modules/es-define-property/LICENSE +21 -0
  125. package/node_modules/es-define-property/README.md +49 -0
  126. package/node_modules/es-define-property/index.d.ts +3 -0
  127. package/node_modules/es-define-property/index.js +14 -0
  128. package/node_modules/es-define-property/package.json +81 -0
  129. package/node_modules/es-define-property/test/index.js +56 -0
  130. package/node_modules/es-define-property/tsconfig.json +10 -0
  131. package/node_modules/es-errors/.eslintrc +5 -0
  132. package/node_modules/es-errors/.github/FUNDING.yml +12 -0
  133. package/node_modules/es-errors/CHANGELOG.md +40 -0
  134. package/node_modules/es-errors/LICENSE +21 -0
  135. package/node_modules/es-errors/README.md +55 -0
  136. package/node_modules/es-errors/eval.d.ts +3 -0
  137. package/node_modules/es-errors/eval.js +4 -0
  138. package/node_modules/es-errors/index.d.ts +3 -0
  139. package/node_modules/es-errors/index.js +4 -0
  140. package/node_modules/es-errors/package.json +80 -0
  141. package/node_modules/es-errors/range.d.ts +3 -0
  142. package/node_modules/es-errors/range.js +4 -0
  143. package/node_modules/es-errors/ref.d.ts +3 -0
  144. package/node_modules/es-errors/ref.js +4 -0
  145. package/node_modules/es-errors/syntax.d.ts +3 -0
  146. package/node_modules/es-errors/syntax.js +4 -0
  147. package/node_modules/es-errors/test/index.js +19 -0
  148. package/node_modules/es-errors/tsconfig.json +49 -0
  149. package/node_modules/es-errors/type.d.ts +3 -0
  150. package/node_modules/es-errors/type.js +4 -0
  151. package/node_modules/es-errors/uri.d.ts +3 -0
  152. package/node_modules/es-errors/uri.js +4 -0
  153. package/node_modules/es-object-atoms/.eslintrc +16 -0
  154. package/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  155. package/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  156. package/node_modules/es-object-atoms/LICENSE +21 -0
  157. package/node_modules/es-object-atoms/README.md +63 -0
  158. package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  159. package/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  160. package/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  161. package/node_modules/es-object-atoms/ToObject.js +10 -0
  162. package/node_modules/es-object-atoms/index.d.ts +3 -0
  163. package/node_modules/es-object-atoms/index.js +4 -0
  164. package/node_modules/es-object-atoms/isObject.d.ts +3 -0
  165. package/node_modules/es-object-atoms/isObject.js +6 -0
  166. package/node_modules/es-object-atoms/package.json +80 -0
  167. package/node_modules/es-object-atoms/test/index.js +38 -0
  168. package/node_modules/es-object-atoms/tsconfig.json +6 -0
  169. package/node_modules/es-set-tostringtag/.eslintrc +13 -0
  170. package/node_modules/es-set-tostringtag/.nycrc +9 -0
  171. package/node_modules/es-set-tostringtag/CHANGELOG.md +67 -0
  172. package/node_modules/es-set-tostringtag/LICENSE +21 -0
  173. package/node_modules/es-set-tostringtag/README.md +53 -0
  174. package/node_modules/es-set-tostringtag/index.d.ts +10 -0
  175. package/node_modules/es-set-tostringtag/index.js +35 -0
  176. package/node_modules/es-set-tostringtag/package.json +78 -0
  177. package/node_modules/es-set-tostringtag/test/index.js +85 -0
  178. package/node_modules/es-set-tostringtag/tsconfig.json +9 -0
  179. package/node_modules/fast-xml-parser/CHANGELOG.md +70 -0
  180. package/node_modules/fast-xml-parser/README.md +37 -51
  181. package/node_modules/fast-xml-parser/lib/fxbuilder.min.js +2 -0
  182. package/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +1 -0
  183. package/node_modules/fast-xml-parser/lib/fxp.cjs +1 -0
  184. package/node_modules/fast-xml-parser/lib/fxp.d.cts +458 -0
  185. package/node_modules/fast-xml-parser/lib/fxp.min.js +2 -0
  186. package/node_modules/fast-xml-parser/lib/fxp.min.js.map +1 -0
  187. package/node_modules/fast-xml-parser/lib/fxparser.min.js +2 -0
  188. package/node_modules/fast-xml-parser/lib/fxparser.min.js.map +1 -0
  189. package/node_modules/fast-xml-parser/lib/fxvalidator.min.js +2 -0
  190. package/node_modules/fast-xml-parser/lib/fxvalidator.min.js.map +1 -0
  191. package/node_modules/fast-xml-parser/package.json +36 -19
  192. package/node_modules/fast-xml-parser/src/cli/cli.js +16 -12
  193. package/node_modules/fast-xml-parser/src/cli/man.js +6 -1
  194. package/node_modules/fast-xml-parser/src/cli/read.js +30 -79
  195. package/node_modules/fast-xml-parser/src/fxp.d.ts +33 -6
  196. package/node_modules/fast-xml-parser/src/fxp.js +11 -8
  197. package/node_modules/fast-xml-parser/src/ignoreAttributes.js +2 -4
  198. package/node_modules/fast-xml-parser/src/util.js +14 -18
  199. package/node_modules/fast-xml-parser/src/{v5 → v6}/CharsSymbol.js +1 -1
  200. package/node_modules/fast-xml-parser/src/{v5 → v6}/EntitiesParser.js +3 -6
  201. package/node_modules/fast-xml-parser/src/{v5 → v6}/OptionsBuilder.js +3 -6
  202. package/node_modules/fast-xml-parser/src/{v5 → v6}/OutputBuilders/BaseOutputBuilder.js +1 -3
  203. package/node_modules/fast-xml-parser/src/{v5 → v6}/OutputBuilders/JsArrBuilder.js +3 -3
  204. package/node_modules/fast-xml-parser/src/{v5 → v6}/OutputBuilders/JsMinArrBuilder.js +3 -5
  205. package/node_modules/fast-xml-parser/src/{v5 → v6}/OutputBuilders/JsObjBuilder.js +3 -5
  206. package/node_modules/fast-xml-parser/src/{v5 → v6}/OutputBuilders/ParserOptionsBuilder.js +6 -11
  207. package/node_modules/fast-xml-parser/src/{v5 → v6}/TagPath.js +1 -1
  208. package/node_modules/fast-xml-parser/src/{v5 → v6}/TagPathMatcher.js +3 -5
  209. package/node_modules/fast-xml-parser/src/{v5 → v6}/XMLParser.js +3 -5
  210. package/node_modules/fast-xml-parser/src/{v5 → v6}/Xml2JsParser.js +8 -10
  211. package/node_modules/fast-xml-parser/src/{v5 → v6}/XmlPartReader.js +4 -10
  212. package/node_modules/fast-xml-parser/src/{v5 → v6}/XmlSpecialTagsReader.js +5 -12
  213. package/node_modules/fast-xml-parser/src/{v5 → v6}/inputSource/BufferSource.js +1 -3
  214. package/node_modules/fast-xml-parser/src/{v5 → v6}/inputSource/StringSource.js +1 -3
  215. package/node_modules/fast-xml-parser/src/{v5 → v6}/valueParsers/EntitiesParser.js +3 -5
  216. package/node_modules/fast-xml-parser/src/{v5 → v6}/valueParsers/booleanParser.js +1 -2
  217. package/node_modules/fast-xml-parser/src/{v5 → v6}/valueParsers/booleanParserExt.js +1 -2
  218. package/node_modules/fast-xml-parser/src/{v5 → v6}/valueParsers/currency.js +1 -3
  219. package/node_modules/fast-xml-parser/src/{v5 → v6}/valueParsers/join.js +1 -2
  220. package/node_modules/fast-xml-parser/src/{v5 → v6}/valueParsers/number.js +2 -4
  221. package/node_modules/fast-xml-parser/src/{v5 → v6}/valueParsers/trim.js +1 -3
  222. package/node_modules/fast-xml-parser/src/validator.js +5 -5
  223. package/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js +5 -4
  224. package/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js +1 -2
  225. package/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +287 -71
  226. package/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +3 -5
  227. package/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +23 -23
  228. package/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +21 -8
  229. package/node_modules/fast-xml-parser/src/xmlparser/node2json.js +8 -2
  230. package/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js +22 -7
  231. package/node_modules/form-data/CHANGELOG.md +601 -0
  232. package/node_modules/form-data/{Readme.md → README.md} +34 -37
  233. package/node_modules/form-data/lib/browser.js +3 -1
  234. package/node_modules/form-data/lib/form_data.js +140 -147
  235. package/node_modules/form-data/lib/populate.js +5 -5
  236. package/node_modules/form-data/package.json +34 -23
  237. package/node_modules/function-bind/.eslintrc +21 -0
  238. package/node_modules/function-bind/.github/FUNDING.yml +12 -0
  239. package/node_modules/function-bind/.github/SECURITY.md +3 -0
  240. package/node_modules/function-bind/.nycrc +13 -0
  241. package/node_modules/function-bind/CHANGELOG.md +136 -0
  242. package/node_modules/function-bind/LICENSE +20 -0
  243. package/node_modules/function-bind/README.md +46 -0
  244. package/node_modules/function-bind/implementation.js +84 -0
  245. package/node_modules/function-bind/index.js +5 -0
  246. package/node_modules/function-bind/package.json +87 -0
  247. package/node_modules/function-bind/test/.eslintrc +9 -0
  248. package/node_modules/function-bind/test/index.js +252 -0
  249. package/node_modules/get-intrinsic/.eslintrc +42 -0
  250. package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  251. package/node_modules/get-intrinsic/.nycrc +9 -0
  252. package/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  253. package/node_modules/get-intrinsic/LICENSE +21 -0
  254. package/node_modules/get-intrinsic/README.md +71 -0
  255. package/node_modules/get-intrinsic/index.js +378 -0
  256. package/node_modules/get-intrinsic/package.json +97 -0
  257. package/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  258. package/node_modules/get-proto/.eslintrc +10 -0
  259. package/node_modules/get-proto/.github/FUNDING.yml +12 -0
  260. package/node_modules/get-proto/.nycrc +9 -0
  261. package/node_modules/get-proto/CHANGELOG.md +21 -0
  262. package/node_modules/get-proto/LICENSE +21 -0
  263. package/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  264. package/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  265. package/node_modules/get-proto/README.md +50 -0
  266. package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  267. package/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  268. package/node_modules/get-proto/index.d.ts +5 -0
  269. package/node_modules/get-proto/index.js +27 -0
  270. package/node_modules/get-proto/package.json +81 -0
  271. package/node_modules/get-proto/test/index.js +68 -0
  272. package/node_modules/get-proto/tsconfig.json +9 -0
  273. package/node_modules/gopd/.eslintrc +16 -0
  274. package/node_modules/gopd/.github/FUNDING.yml +12 -0
  275. package/node_modules/gopd/CHANGELOG.md +45 -0
  276. package/node_modules/gopd/LICENSE +21 -0
  277. package/node_modules/gopd/README.md +40 -0
  278. package/node_modules/gopd/gOPD.d.ts +1 -0
  279. package/node_modules/gopd/gOPD.js +4 -0
  280. package/node_modules/gopd/index.d.ts +5 -0
  281. package/node_modules/gopd/index.js +15 -0
  282. package/node_modules/gopd/package.json +77 -0
  283. package/node_modules/gopd/test/index.js +36 -0
  284. package/node_modules/gopd/tsconfig.json +9 -0
  285. package/node_modules/has-symbols/.eslintrc +11 -0
  286. package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  287. package/node_modules/has-symbols/.nycrc +9 -0
  288. package/node_modules/has-symbols/CHANGELOG.md +91 -0
  289. package/node_modules/has-symbols/LICENSE +21 -0
  290. package/node_modules/has-symbols/README.md +46 -0
  291. package/node_modules/has-symbols/index.d.ts +3 -0
  292. package/node_modules/has-symbols/index.js +14 -0
  293. package/node_modules/has-symbols/package.json +111 -0
  294. package/node_modules/has-symbols/shams.d.ts +3 -0
  295. package/node_modules/has-symbols/shams.js +45 -0
  296. package/node_modules/has-symbols/test/index.js +22 -0
  297. package/node_modules/has-symbols/test/shams/core-js.js +29 -0
  298. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  299. package/node_modules/has-symbols/test/tests.js +58 -0
  300. package/node_modules/has-symbols/tsconfig.json +10 -0
  301. package/node_modules/has-tostringtag/.eslintrc +5 -0
  302. package/node_modules/has-tostringtag/.github/FUNDING.yml +12 -0
  303. package/node_modules/has-tostringtag/.nycrc +13 -0
  304. package/node_modules/has-tostringtag/CHANGELOG.md +42 -0
  305. package/node_modules/has-tostringtag/LICENSE +21 -0
  306. package/node_modules/has-tostringtag/README.md +46 -0
  307. package/node_modules/has-tostringtag/index.d.ts +3 -0
  308. package/node_modules/has-tostringtag/index.js +8 -0
  309. package/node_modules/has-tostringtag/package.json +108 -0
  310. package/node_modules/has-tostringtag/shams.d.ts +3 -0
  311. package/node_modules/has-tostringtag/shams.js +8 -0
  312. package/node_modules/has-tostringtag/test/index.js +21 -0
  313. package/node_modules/has-tostringtag/test/shams/core-js.js +31 -0
  314. package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +30 -0
  315. package/node_modules/has-tostringtag/test/tests.js +15 -0
  316. package/node_modules/has-tostringtag/tsconfig.json +49 -0
  317. package/node_modules/hasown/.eslintrc +5 -0
  318. package/node_modules/hasown/.github/FUNDING.yml +12 -0
  319. package/node_modules/hasown/.nycrc +13 -0
  320. package/node_modules/hasown/CHANGELOG.md +40 -0
  321. package/node_modules/hasown/LICENSE +21 -0
  322. package/node_modules/hasown/README.md +40 -0
  323. package/node_modules/hasown/index.d.ts +3 -0
  324. package/node_modules/hasown/index.js +8 -0
  325. package/node_modules/hasown/package.json +92 -0
  326. package/node_modules/hasown/tsconfig.json +6 -0
  327. package/node_modules/long/README.md +93 -87
  328. package/node_modules/long/index.d.ts +2 -2
  329. package/node_modules/long/index.js +360 -246
  330. package/node_modules/long/package.json +12 -4
  331. package/node_modules/long/types.d.ts +474 -0
  332. package/node_modules/long/umd/index.d.ts +2 -456
  333. package/node_modules/long/umd/index.js +1585 -1395
  334. package/node_modules/long/umd/types.d.ts +474 -0
  335. package/node_modules/math-intrinsics/.eslintrc +16 -0
  336. package/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  337. package/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  338. package/node_modules/math-intrinsics/LICENSE +21 -0
  339. package/node_modules/math-intrinsics/README.md +50 -0
  340. package/node_modules/math-intrinsics/abs.d.ts +1 -0
  341. package/node_modules/math-intrinsics/abs.js +4 -0
  342. package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  343. package/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  344. package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  345. package/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  346. package/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  347. package/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  348. package/node_modules/math-intrinsics/floor.d.ts +1 -0
  349. package/node_modules/math-intrinsics/floor.js +4 -0
  350. package/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  351. package/node_modules/math-intrinsics/isFinite.js +12 -0
  352. package/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  353. package/node_modules/math-intrinsics/isInteger.js +16 -0
  354. package/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  355. package/node_modules/math-intrinsics/isNaN.js +6 -0
  356. package/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  357. package/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  358. package/node_modules/math-intrinsics/max.d.ts +1 -0
  359. package/node_modules/math-intrinsics/max.js +4 -0
  360. package/node_modules/math-intrinsics/min.d.ts +1 -0
  361. package/node_modules/math-intrinsics/min.js +4 -0
  362. package/node_modules/math-intrinsics/mod.d.ts +3 -0
  363. package/node_modules/math-intrinsics/mod.js +9 -0
  364. package/node_modules/math-intrinsics/package.json +86 -0
  365. package/node_modules/math-intrinsics/pow.d.ts +1 -0
  366. package/node_modules/math-intrinsics/pow.js +4 -0
  367. package/node_modules/math-intrinsics/round.d.ts +1 -0
  368. package/node_modules/math-intrinsics/round.js +4 -0
  369. package/node_modules/math-intrinsics/sign.d.ts +3 -0
  370. package/node_modules/math-intrinsics/sign.js +11 -0
  371. package/node_modules/math-intrinsics/test/index.js +192 -0
  372. package/node_modules/math-intrinsics/tsconfig.json +3 -0
  373. package/node_modules/protobufjs/dist/light/protobuf.js +532 -80
  374. package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  375. package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  376. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  377. package/node_modules/protobufjs/dist/minimal/protobuf.js +2 -2
  378. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
  379. package/node_modules/protobufjs/dist/protobuf.js +672 -144
  380. package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  381. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  382. package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  383. package/node_modules/protobufjs/ext/descriptor/index.js +179 -69
  384. package/node_modules/protobufjs/google/protobuf/descriptor.json +659 -16
  385. package/node_modules/protobufjs/google/protobuf/descriptor.proto +254 -6
  386. package/node_modules/protobufjs/index.d.ts +71 -13
  387. package/node_modules/protobufjs/package.json +4 -2
  388. package/node_modules/protobufjs/src/decoder.js +8 -10
  389. package/node_modules/protobufjs/src/encoder.js +1 -1
  390. package/node_modules/protobufjs/src/enum.js +25 -0
  391. package/node_modules/protobufjs/src/field.js +104 -28
  392. package/node_modules/protobufjs/src/namespace.js +126 -13
  393. package/node_modules/protobufjs/src/object.js +139 -4
  394. package/node_modules/protobufjs/src/oneof.js +19 -0
  395. package/node_modules/protobufjs/src/parse.js +139 -63
  396. package/node_modules/protobufjs/src/root.js +51 -15
  397. package/node_modules/protobufjs/src/service.js +23 -1
  398. package/node_modules/protobufjs/src/type.js +29 -4
  399. package/node_modules/protobufjs/src/util.js +4 -1
  400. package/node_modules/strnum/.github/SECURITY.md +5 -0
  401. package/node_modules/strnum/CHANGELOG.md +33 -0
  402. package/node_modules/strnum/README.md +14 -3
  403. package/node_modules/strnum/algo.stflow +84 -0
  404. package/node_modules/strnum/package.json +9 -2
  405. package/node_modules/strnum/strnum.js +72 -67
  406. package/node_modules/strnum/strnum.test.js +29 -6
  407. package/node_modules/strnum/test.js +9 -0
  408. package/node_modules/undici-types/dispatcher.d.ts +1 -0
  409. package/node_modules/undici-types/package.json +1 -1
  410. package/node_modules/undici-types/readable.d.ts +5 -0
  411. package/node_modules/undici-types/webidl.d.ts +6 -0
  412. package/node_modules/uuid/README.md +12 -12
  413. package/node_modules/uuid/dist/cjs/types.d.ts +1 -1
  414. package/node_modules/uuid/dist/cjs/v1.d.ts +1 -1
  415. package/node_modules/uuid/dist/cjs/v1.js +1 -1
  416. package/node_modules/uuid/dist/cjs/v3.d.ts +1 -1
  417. package/node_modules/uuid/dist/cjs/v35.d.ts +1 -1
  418. package/node_modules/uuid/dist/cjs/v4.d.ts +1 -1
  419. package/node_modules/uuid/dist/cjs/v5.d.ts +1 -1
  420. package/node_modules/uuid/dist/cjs/v6.d.ts +1 -1
  421. package/node_modules/uuid/dist/cjs/v7.d.ts +1 -1
  422. package/node_modules/uuid/dist/cjs/v7.js +1 -1
  423. package/node_modules/uuid/dist/cjs-browser/types.d.ts +1 -1
  424. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +1 -1
  425. package/node_modules/uuid/dist/cjs-browser/v1.js +1 -1
  426. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +1 -1
  427. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +1 -1
  428. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +1 -1
  429. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +1 -1
  430. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +1 -1
  431. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +1 -1
  432. package/node_modules/uuid/dist/cjs-browser/v7.js +1 -1
  433. package/node_modules/uuid/dist/esm/types.d.ts +1 -1
  434. package/node_modules/uuid/dist/esm/v1.d.ts +1 -1
  435. package/node_modules/uuid/dist/esm/v1.js +1 -1
  436. package/node_modules/uuid/dist/esm/v3.d.ts +1 -1
  437. package/node_modules/uuid/dist/esm/v35.d.ts +1 -1
  438. package/node_modules/uuid/dist/esm/v4.d.ts +1 -1
  439. package/node_modules/uuid/dist/esm/v5.d.ts +1 -1
  440. package/node_modules/uuid/dist/esm/v6.d.ts +1 -1
  441. package/node_modules/uuid/dist/esm/v7.d.ts +1 -1
  442. package/node_modules/uuid/dist/esm/v7.js +1 -1
  443. package/node_modules/uuid/dist/esm-browser/types.d.ts +1 -1
  444. package/node_modules/uuid/dist/esm-browser/v1.d.ts +1 -1
  445. package/node_modules/uuid/dist/esm-browser/v1.js +1 -1
  446. package/node_modules/uuid/dist/esm-browser/v3.d.ts +1 -1
  447. package/node_modules/uuid/dist/esm-browser/v35.d.ts +1 -1
  448. package/node_modules/uuid/dist/esm-browser/v4.d.ts +1 -1
  449. package/node_modules/uuid/dist/esm-browser/v5.d.ts +1 -1
  450. package/node_modules/uuid/dist/esm-browser/v6.d.ts +1 -1
  451. package/node_modules/uuid/dist/esm-browser/v7.d.ts +1 -1
  452. package/node_modules/uuid/dist/esm-browser/v7.js +1 -1
  453. package/node_modules/uuid/package.json +1 -1
  454. package/package.json +7 -7
  455. package/tak-registration.html +4 -4
  456. package/tak-registration.js +19 -10
  457. package/node_modules/axios/SECURITY.md +0 -6
  458. /package/node_modules/fast-xml-parser/src/{v5 → v6}/Report.js +0 -0
@@ -13,6 +13,7 @@ var tokenize = require("./tokenize"),
13
13
  Enum = require("./enum"),
14
14
  Service = require("./service"),
15
15
  Method = require("./method"),
16
+ ReflectionObject = require("./object"),
16
17
  types = require("./types"),
17
18
  util = require("./util");
18
19
 
@@ -24,8 +25,7 @@ var base10Re = /^[1-9][0-9]*$/,
24
25
  base8NegRe = /^-?0[0-7]+$/,
25
26
  numberRe = /^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,
26
27
  nameRe = /^[a-zA-Z_][a-zA-Z_0-9]*$/,
27
- typeRefRe = /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,
28
- fqTypeRefRe = /^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;
28
+ typeRefRe = /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/;
29
29
 
30
30
  /**
31
31
  * Result object returned from {@link parse}.
@@ -33,7 +33,6 @@ var base10Re = /^[1-9][0-9]*$/,
33
33
  * @property {string|undefined} package Package name, if declared
34
34
  * @property {string[]|undefined} imports Imports, if any
35
35
  * @property {string[]|undefined} weakImports Weak imports, if any
36
- * @property {string|undefined} syntax Syntax, if specified (either `"proto2"` or `"proto3"`)
37
36
  * @property {Root} root Populated root instance
38
37
  */
39
38
 
@@ -81,13 +80,25 @@ function parse(source, root, options) {
81
80
  pkg,
82
81
  imports,
83
82
  weakImports,
84
- syntax,
85
- isProto3 = false;
83
+ edition = "proto2";
86
84
 
87
85
  var ptr = root;
88
86
 
87
+ var topLevelObjects = [];
88
+ var topLevelOptions = {};
89
+
89
90
  var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;
90
91
 
92
+ function resolveFileFeatures() {
93
+ topLevelObjects.forEach(obj => {
94
+ obj._edition = edition;
95
+ Object.keys(topLevelOptions).forEach(opt => {
96
+ if (obj.getOption(opt) !== undefined) return;
97
+ obj.setOption(opt, topLevelOptions[opt], true);
98
+ });
99
+ });
100
+ }
101
+
91
102
  /* istanbul ignore next */
92
103
  function illegal(token, name, insideTryCatch) {
93
104
  var filename = parse.filename;
@@ -126,7 +137,6 @@ function parse(source, root, options) {
126
137
  try {
127
138
  return parseNumber(token, /* insideTryCatch */ true);
128
139
  } catch (e) {
129
-
130
140
  /* istanbul ignore else */
131
141
  if (acceptTypeRef && typeRefRe.test(token))
132
142
  return token;
@@ -139,10 +149,23 @@ function parse(source, root, options) {
139
149
  function readRanges(target, acceptStrings) {
140
150
  var token, start;
141
151
  do {
142
- if (acceptStrings && ((token = peek()) === "\"" || token === "'"))
143
- target.push(readString());
144
- else
145
- target.push([ start = parseId(next()), skip("to", true) ? parseId(next()) : start ]);
152
+ if (acceptStrings && ((token = peek()) === "\"" || token === "'")) {
153
+ var str = readString();
154
+ target.push(str);
155
+ if (edition >= 2023) {
156
+ throw illegal(str, "id");
157
+ }
158
+ } else {
159
+ try {
160
+ target.push([ start = parseId(next()), skip("to", true) ? parseId(next()) : start ]);
161
+ } catch (err) {
162
+ if (acceptStrings && typeRefRe.test(token) && edition >= 2023) {
163
+ target.push(token);
164
+ } else {
165
+ throw err;
166
+ }
167
+ }
168
+ }
146
169
  } while (skip(",", true));
147
170
  var dummy = {options: undefined};
148
171
  dummy.setOption = function(name, value) {
@@ -219,7 +242,6 @@ function parse(source, root, options) {
219
242
  }
220
243
 
221
244
  function parsePackage() {
222
-
223
245
  /* istanbul ignore if */
224
246
  if (pkg !== undefined)
225
247
  throw illegal("package");
@@ -231,6 +253,7 @@ function parse(source, root, options) {
231
253
  throw illegal(pkg, "name");
232
254
 
233
255
  ptr = ptr.define(pkg);
256
+
234
257
  skip(";");
235
258
  }
236
259
 
@@ -256,20 +279,28 @@ function parse(source, root, options) {
256
279
 
257
280
  function parseSyntax() {
258
281
  skip("=");
259
- syntax = readString();
260
- isProto3 = syntax === "proto3";
282
+ edition = readString();
261
283
 
262
284
  /* istanbul ignore if */
263
- if (!isProto3 && syntax !== "proto2")
264
- throw illegal(syntax, "syntax");
285
+ if (edition < 2023)
286
+ throw illegal(edition, "syntax");
265
287
 
266
- // Syntax is needed to understand the meaning of the optional field rule
267
- // Otherwise the meaning is ambiguous between proto2 and proto3
268
- root.setOption("syntax", syntax);
288
+ skip(";");
289
+ }
290
+
291
+ function parseEdition() {
292
+ skip("=");
293
+ edition = readString();
294
+ const supportedEditions = ["2023"];
295
+
296
+ /* istanbul ignore if */
297
+ if (!supportedEditions.includes(edition))
298
+ throw illegal(edition, "edition");
269
299
 
270
300
  skip(";");
271
301
  }
272
302
 
303
+
273
304
  function parseCommon(parent, token) {
274
305
  switch (token) {
275
306
 
@@ -337,14 +368,19 @@ function parse(source, root, options) {
337
368
  break;
338
369
 
339
370
  case "required":
371
+ if (edition !== "proto2")
372
+ throw illegal(token);
373
+ /* eslint-disable no-fallthrough */
340
374
  case "repeated":
341
375
  parseField(type, token);
342
376
  break;
343
377
 
344
378
  case "optional":
345
379
  /* istanbul ignore if */
346
- if (isProto3) {
380
+ if (edition === "proto3") {
347
381
  parseField(type, "proto3_optional");
382
+ } else if (edition !== "proto2") {
383
+ throw illegal(token);
348
384
  } else {
349
385
  parseField(type, "optional");
350
386
  }
@@ -364,8 +400,9 @@ function parse(source, root, options) {
364
400
 
365
401
  default:
366
402
  /* istanbul ignore if */
367
- if (!isProto3 || !typeRefRe.test(token))
403
+ if (edition === "proto2" || !typeRefRe.test(token)) {
368
404
  throw illegal(token);
405
+ }
369
406
 
370
407
  push(token);
371
408
  parseField(type, "optional");
@@ -373,6 +410,9 @@ function parse(source, root, options) {
373
410
  }
374
411
  });
375
412
  parent.add(type);
413
+ if (parent === ptr) {
414
+ topLevelObjects.push(type);
415
+ }
376
416
  }
377
417
 
378
418
  function parseField(parent, rule, extend) {
@@ -399,6 +439,7 @@ function parse(source, root, options) {
399
439
  var name = next();
400
440
 
401
441
  /* istanbul ignore if */
442
+
402
443
  if (!nameRe.test(name))
403
444
  throw illegal(name, "name");
404
445
 
@@ -406,6 +447,7 @@ function parse(source, root, options) {
406
447
  skip("=");
407
448
 
408
449
  var field = new Field(name, parseId(next()), type, rule, extend);
450
+
409
451
  ifBlock(field, function parseField_block(token) {
410
452
 
411
453
  /* istanbul ignore else */
@@ -428,15 +470,15 @@ function parse(source, root, options) {
428
470
  } else {
429
471
  parent.add(field);
430
472
  }
431
-
432
- // JSON defaults to packed=true if not set so we have to set packed=false explicity when
433
- // parsing proto2 descriptors without the option, where applicable. This must be done for
434
- // all known packable types and anything that could be an enum (= is not a basic type).
435
- if (!isProto3 && field.repeated && (types.packed[type] !== undefined || types.basic[type] === undefined))
436
- field.setOption("packed", false, /* ifNotSet */ true);
473
+ if (parent === ptr) {
474
+ topLevelObjects.push(field);
475
+ }
437
476
  }
438
477
 
439
478
  function parseGroup(parent, rule) {
479
+ if (edition >= 2023) {
480
+ throw illegal("group");
481
+ }
440
482
  var name = next();
441
483
 
442
484
  /* istanbul ignore if */
@@ -459,7 +501,6 @@ function parse(source, root, options) {
459
501
  parseOption(type, token);
460
502
  skip(";");
461
503
  break;
462
-
463
504
  case "required":
464
505
  case "repeated":
465
506
  parseField(type, token);
@@ -467,7 +508,7 @@ function parse(source, root, options) {
467
508
 
468
509
  case "optional":
469
510
  /* istanbul ignore if */
470
- if (isProto3) {
511
+ if (edition === "proto3") {
471
512
  parseField(type, "proto3_optional");
472
513
  } else {
473
514
  parseField(type, "optional");
@@ -482,6 +523,10 @@ function parse(source, root, options) {
482
523
  parseEnum(type, token);
483
524
  break;
484
525
 
526
+ case "reserved":
527
+ readRanges(type.reserved || (type.reserved = []), true);
528
+ break;
529
+
485
530
  /* istanbul ignore next */
486
531
  default:
487
532
  throw illegal(token); // there are no groups with proto3 semantics
@@ -565,6 +610,7 @@ function parse(source, root, options) {
565
610
 
566
611
  case "reserved":
567
612
  readRanges(enm.reserved || (enm.reserved = []), true);
613
+ if(enm.reserved === undefined) enm.reserved = [];
568
614
  break;
569
615
 
570
616
  default:
@@ -572,6 +618,9 @@ function parse(source, root, options) {
572
618
  }
573
619
  });
574
620
  parent.add(enm);
621
+ if (parent === ptr) {
622
+ topLevelObjects.push(enm);
623
+ }
575
624
  }
576
625
 
577
626
  function parseEnumValue(parent, token) {
@@ -585,10 +634,14 @@ function parse(source, root, options) {
585
634
  dummy = {
586
635
  options: undefined
587
636
  };
637
+ dummy.getOption = function(name) {
638
+ return this.options[name];
639
+ };
588
640
  dummy.setOption = function(name, value) {
589
- if (this.options === undefined)
590
- this.options = {};
591
- this.options[name] = value;
641
+ ReflectionObject.prototype.setOption.call(dummy, name, value);
642
+ };
643
+ dummy.setParsedOption = function() {
644
+ return undefined;
592
645
  };
593
646
  ifBlock(dummy, function parseEnumValue_block(token) {
594
647
 
@@ -602,34 +655,42 @@ function parse(source, root, options) {
602
655
  }, function parseEnumValue_line() {
603
656
  parseInlineOptions(dummy); // skip
604
657
  });
605
- parent.add(token, value, dummy.comment, dummy.options);
658
+ parent.add(token, value, dummy.comment, dummy.parsedOptions || dummy.options);
606
659
  }
607
660
 
608
661
  function parseOption(parent, token) {
609
- var isCustom = skip("(", true);
610
-
611
- /* istanbul ignore if */
612
- if (!typeRefRe.test(token = next()))
613
- throw illegal(token, "name");
614
-
615
- var name = token;
616
- var option = name;
617
- var propName;
662
+ var option;
663
+ var propName;
664
+ var isOption = true;
665
+ if (token === "option") {
666
+ token = next();
667
+ }
618
668
 
619
- if (isCustom) {
620
- skip(")");
621
- name = "(" + name + ")";
622
- option = name;
623
- token = peek();
624
- if (fqTypeRefRe.test(token)) {
625
- propName = token.slice(1); //remove '.' before property name
626
- name += token;
627
- next();
669
+ while (token !== "=") {
670
+ if (token === "(") {
671
+ var parensValue = next();
672
+ skip(")");
673
+ token = "(" + parensValue + ")";
674
+ }
675
+ if (isOption) {
676
+ isOption = false;
677
+ if (token.includes(".") && !token.includes("(")) {
678
+ var tokens = token.split(".");
679
+ option = tokens[0] + ".";
680
+ token = tokens[1];
681
+ continue;
682
+ }
683
+ option = token;
684
+ } else {
685
+ propName = propName ? propName += token : token;
686
+ }
687
+ token = next();
628
688
  }
629
- }
630
- skip("=");
631
- var optionValue = parseOptionValue(parent, name);
632
- setParsedOption(parent, option, optionValue, propName);
689
+ var name = propName ? option.concat(propName) : option;
690
+ var optionValue = parseOptionValue(parent, name);
691
+ propName = propName && propName[0] === "." ? propName.slice(1) : propName;
692
+ option = option && option[option.length - 1] === "." ? option.slice(0, -1) : option;
693
+ setParsedOption(parent, option, optionValue, propName);
633
694
  }
634
695
 
635
696
  function parseOptionValue(parent, name) {
@@ -651,12 +712,12 @@ function parse(source, root, options) {
651
712
 
652
713
  skip(":", true);
653
714
 
654
- if (peek() === "{")
655
- value = parseOptionValue(parent, name + "." + token);
656
- else if (peek() === "[") {
715
+ if (peek() === "{") {
657
716
  // option (my_option) = {
658
717
  // repeated_value: [ "foo", "bar" ]
659
718
  // };
719
+ value = parseOptionValue(parent, name + "." + token);
720
+ } else if (peek() === "[") {
660
721
  value = [];
661
722
  var lastValue;
662
723
  if (skip("[", true)) {
@@ -696,6 +757,10 @@ function parse(source, root, options) {
696
757
  }
697
758
 
698
759
  function setOption(parent, name, value) {
760
+ if (ptr === parent && /^features\./.test(name)) {
761
+ topLevelOptions[name] = value;
762
+ return;
763
+ }
699
764
  if (parent.setOption)
700
765
  parent.setOption(name, value);
701
766
  }
@@ -723,8 +788,9 @@ function parse(source, root, options) {
723
788
 
724
789
  var service = new Service(token);
725
790
  ifBlock(service, function parseService_block(token) {
726
- if (parseCommon(service, token))
791
+ if (parseCommon(service, token)) {
727
792
  return;
793
+ }
728
794
 
729
795
  /* istanbul ignore else */
730
796
  if (token === "rpc")
@@ -733,6 +799,9 @@ function parse(source, root, options) {
733
799
  throw illegal(token);
734
800
  });
735
801
  parent.add(service);
802
+ if (parent === ptr) {
803
+ topLevelObjects.push(service);
804
+ }
736
805
  }
737
806
 
738
807
  function parseMethod(parent, token) {
@@ -802,7 +871,7 @@ function parse(source, root, options) {
802
871
 
803
872
  case "optional":
804
873
  /* istanbul ignore if */
805
- if (isProto3) {
874
+ if (edition === "proto3") {
806
875
  parseField(parent, "proto3_optional", reference);
807
876
  } else {
808
877
  parseField(parent, "optional", reference);
@@ -811,7 +880,7 @@ function parse(source, root, options) {
811
880
 
812
881
  default:
813
882
  /* istanbul ignore if */
814
- if (!isProto3 || !typeRefRe.test(token))
883
+ if (edition === "proto2" || !typeRefRe.test(token))
815
884
  throw illegal(token);
816
885
  push(token);
817
886
  parseField(parent, "optional", reference);
@@ -851,10 +920,16 @@ function parse(source, root, options) {
851
920
  parseSyntax();
852
921
  break;
853
922
 
854
- case "option":
923
+ case "edition":
924
+ /* istanbul ignore if */
925
+ if (!head)
926
+ throw illegal(token);
927
+ parseEdition();
928
+ break;
855
929
 
930
+ case "option":
856
931
  parseOption(ptr, token);
857
- skip(";");
932
+ skip(";", true);
858
933
  break;
859
934
 
860
935
  default:
@@ -870,12 +945,13 @@ function parse(source, root, options) {
870
945
  }
871
946
  }
872
947
 
948
+ resolveFileFeatures();
949
+
873
950
  parse.filename = null;
874
951
  return {
875
952
  "package" : pkg,
876
953
  "imports" : imports,
877
954
  weakImports : weakImports,
878
- syntax : syntax,
879
955
  root : root
880
956
  };
881
957
  }
@@ -35,11 +35,25 @@ function Root(options) {
35
35
  * @type {string[]}
36
36
  */
37
37
  this.files = [];
38
+
39
+ /**
40
+ * Edition, defaults to proto2 if unspecified.
41
+ * @type {string}
42
+ * @private
43
+ */
44
+ this._edition = "proto2";
45
+
46
+ /**
47
+ * Global lookup cache of fully qualified names.
48
+ * @type {Object.<string,ReflectionObject>}
49
+ * @private
50
+ */
51
+ this._fullyQualifiedObjects = {};
38
52
  }
39
53
 
40
54
  /**
41
55
  * Loads a namespace descriptor into a root namespace.
42
- * @param {INamespace} json Nameespace descriptor
56
+ * @param {INamespace} json Namespace descriptor
43
57
  * @param {Root} [root] Root namespace, defaults to create a new one if omitted
44
58
  * @returns {Root} Root namespace
45
59
  */
@@ -48,7 +62,7 @@ Root.fromJSON = function fromJSON(json, root) {
48
62
  root = new Root();
49
63
  if (json.options)
50
64
  root.setOptions(json.options);
51
- return root.addJSON(json.nested);
65
+ return root.addJSON(json.nested).resolveAll();
52
66
  };
53
67
 
54
68
  /**
@@ -88,18 +102,24 @@ Root.prototype.load = function load(filename, options, callback) {
88
102
  options = undefined;
89
103
  }
90
104
  var self = this;
91
- if (!callback)
105
+ if (!callback) {
92
106
  return util.asPromise(load, self, filename, options);
107
+ }
93
108
 
94
109
  var sync = callback === SYNC; // undocumented
95
110
 
96
111
  // Finishes loading by calling the callback (exactly once)
97
112
  function finish(err, root) {
98
113
  /* istanbul ignore if */
99
- if (!callback)
114
+ if (!callback) {
100
115
  return;
101
- if (sync)
116
+ }
117
+ if (sync) {
102
118
  throw err;
119
+ }
120
+ if (root) {
121
+ root.resolveAll();
122
+ }
103
123
  var cb = callback;
104
124
  callback = null;
105
125
  cb(err, root);
@@ -139,8 +159,9 @@ Root.prototype.load = function load(filename, options, callback) {
139
159
  } catch (err) {
140
160
  finish(err);
141
161
  }
142
- if (!sync && !queued)
162
+ if (!sync && !queued) {
143
163
  finish(null, self); // only once anyway
164
+ }
144
165
  }
145
166
 
146
167
  // Fetches a single file
@@ -148,15 +169,16 @@ Root.prototype.load = function load(filename, options, callback) {
148
169
  filename = getBundledFileName(filename) || filename;
149
170
 
150
171
  // Skip if already loaded / attempted
151
- if (self.files.indexOf(filename) > -1)
172
+ if (self.files.indexOf(filename) > -1) {
152
173
  return;
174
+ }
153
175
  self.files.push(filename);
154
176
 
155
177
  // Shortcut bundled definitions
156
178
  if (filename in common) {
157
- if (sync)
179
+ if (sync) {
158
180
  process(filename, common[filename]);
159
- else {
181
+ } else {
160
182
  ++queued;
161
183
  setTimeout(function() {
162
184
  --queued;
@@ -182,8 +204,9 @@ Root.prototype.load = function load(filename, options, callback) {
182
204
  self.fetch(filename, function(err, source) {
183
205
  --queued;
184
206
  /* istanbul ignore if */
185
- if (!callback)
207
+ if (!callback) {
186
208
  return; // terminated meanwhile
209
+ }
187
210
  if (err) {
188
211
  /* istanbul ignore else */
189
212
  if (!weak)
@@ -200,17 +223,21 @@ Root.prototype.load = function load(filename, options, callback) {
200
223
 
201
224
  // Assembling the root namespace doesn't require working type
202
225
  // references anymore, so we can load everything in parallel
203
- if (util.isString(filename))
226
+ if (util.isString(filename)) {
204
227
  filename = [ filename ];
228
+ }
205
229
  for (var i = 0, resolved; i < filename.length; ++i)
206
230
  if (resolved = self.resolvePath("", filename[i]))
207
231
  fetch(resolved);
208
-
209
- if (sync)
232
+ if (sync) {
233
+ self.resolveAll();
210
234
  return self;
211
- if (!queued)
235
+ }
236
+ if (!queued) {
212
237
  finish(null, self);
213
- return undefined;
238
+ }
239
+
240
+ return self;
214
241
  };
215
242
  // function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined
216
243
 
@@ -252,6 +279,8 @@ Root.prototype.loadSync = function loadSync(filename, options) {
252
279
  * @override
253
280
  */
254
281
  Root.prototype.resolveAll = function resolveAll() {
282
+ if (!this._needsRecursiveResolve) return this;
283
+
255
284
  if (this.deferred.length)
256
285
  throw Error("unresolvable extensions: " + this.deferred.map(function(field) {
257
286
  return "'extend " + field.extend + "' in " + field.parent.fullName;
@@ -318,6 +347,11 @@ Root.prototype._handleAdd = function _handleAdd(object) {
318
347
  object.parent[object.name] = object; // expose namespace as property of its parent
319
348
  }
320
349
 
350
+ if (object instanceof Type || object instanceof Enum || object instanceof Field) {
351
+ // Only store types and enums for quick lookup during resolve.
352
+ this._fullyQualifiedObjects[object.fullName] = object;
353
+ }
354
+
321
355
  // The above also adds uppercased (and thus conflict-free) nested types, services and enums as
322
356
  // properties of namespaces just like static code does. This allows using a .d.ts generated for
323
357
  // a static module with reflection-based solutions where the condition is met.
@@ -358,6 +392,8 @@ Root.prototype._handleRemove = function _handleRemove(object) {
358
392
  delete object.parent[object.name]; // unexpose namespaces
359
393
 
360
394
  }
395
+
396
+ delete this._fullyQualifiedObjects[object.fullName];
361
397
  };
362
398
 
363
399
  // Sets up cyclic dependencies (called in index-light)
@@ -57,7 +57,10 @@ Service.fromJSON = function fromJSON(name, json) {
57
57
  service.add(Method.fromJSON(names[i], json.methods[names[i]]));
58
58
  if (json.nested)
59
59
  service.addJSON(json.nested);
60
+ if (json.edition)
61
+ service._edition = json.edition;
60
62
  service.comment = json.comment;
63
+ service._defaultEdition = "proto3"; // For backwards-compatibility.
61
64
  return service;
62
65
  };
63
66
 
@@ -70,6 +73,7 @@ Service.prototype.toJSON = function toJSON(toJSONOptions) {
70
73
  var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);
71
74
  var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;
72
75
  return util.toObject([
76
+ "edition" , this._editionToJSON(),
73
77
  "options" , inherited && inherited.options || undefined,
74
78
  "methods" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {},
75
79
  "nested" , inherited && inherited.nested || undefined,
@@ -106,10 +110,28 @@ Service.prototype.get = function get(name) {
106
110
  * @override
107
111
  */
108
112
  Service.prototype.resolveAll = function resolveAll() {
113
+ if (!this._needsRecursiveResolve) return this;
114
+
115
+ Namespace.prototype.resolve.call(this);
109
116
  var methods = this.methodsArray;
110
117
  for (var i = 0; i < methods.length; ++i)
111
118
  methods[i].resolve();
112
- return Namespace.prototype.resolve.call(this);
119
+ return this;
120
+ };
121
+
122
+ /**
123
+ * @override
124
+ */
125
+ Service.prototype._resolveFeaturesRecursive = function _resolveFeaturesRecursive(edition) {
126
+ if (!this._needsRecursiveFeatureResolution) return this;
127
+
128
+ edition = this._edition || edition;
129
+
130
+ Namespace.prototype._resolveFeaturesRecursive.call(this, edition);
131
+ this.methodsArray.forEach(method => {
132
+ method._resolveFeaturesRecursive(edition);
133
+ });
134
+ return this;
113
135
  };
114
136
 
115
137
  /**