@netkitty/codec 1.0.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 (463) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +21 -0
  3. package/README.md +352 -0
  4. package/README.zh-CN.md +342 -0
  5. package/dist/Codec.d.ts +133 -0
  6. package/dist/Codec.js +632 -0
  7. package/dist/PacketHeaders.d.ts +189 -0
  8. package/dist/PacketHeaders.js +384 -0
  9. package/dist/abstracts/BaseHeader.d.ts +325 -0
  10. package/dist/abstracts/BaseHeader.js +734 -0
  11. package/dist/errors/CodecSchemaValidateError.d.ts +4 -0
  12. package/dist/errors/CodecSchemaValidateError.js +11 -0
  13. package/dist/headers/ADSAMS.d.ts +33 -0
  14. package/dist/headers/ADSAMS.js +208 -0
  15. package/dist/headers/AH.d.ts +28 -0
  16. package/dist/headers/AH.js +137 -0
  17. package/dist/headers/AMQP.d.ts +31 -0
  18. package/dist/headers/AMQP.js +316 -0
  19. package/dist/headers/ARP.d.ts +26 -0
  20. package/dist/headers/ARP.js +243 -0
  21. package/dist/headers/BACnetIP.d.ts +27 -0
  22. package/dist/headers/BACnetIP.js +97 -0
  23. package/dist/headers/BFD.d.ts +28 -0
  24. package/dist/headers/BFD.js +155 -0
  25. package/dist/headers/BGP.d.ts +27 -0
  26. package/dist/headers/BGP.js +111 -0
  27. package/dist/headers/BSAPIP.d.ts +33 -0
  28. package/dist/headers/BSAPIP.js +78 -0
  29. package/dist/headers/Babel.d.ts +32 -0
  30. package/dist/headers/Babel.js +224 -0
  31. package/dist/headers/BitTorrent.d.ts +28 -0
  32. package/dist/headers/BitTorrent.js +72 -0
  33. package/dist/headers/C37118.d.ts +26 -0
  34. package/dist/headers/C37118.js +147 -0
  35. package/dist/headers/CAPWAP.d.ts +38 -0
  36. package/dist/headers/CAPWAP.js +275 -0
  37. package/dist/headers/CDP.d.ts +25 -0
  38. package/dist/headers/CDP.js +117 -0
  39. package/dist/headers/CMS.d.ts +33 -0
  40. package/dist/headers/CMS.js +238 -0
  41. package/dist/headers/COTP.d.ts +30 -0
  42. package/dist/headers/COTP.js +193 -0
  43. package/dist/headers/CassandraCQL.d.ts +28 -0
  44. package/dist/headers/CassandraCQL.js +117 -0
  45. package/dist/headers/CoAP.d.ts +29 -0
  46. package/dist/headers/CoAP.js +140 -0
  47. package/dist/headers/Codesys.d.ts +32 -0
  48. package/dist/headers/Codesys.js +119 -0
  49. package/dist/headers/Collectd.d.ts +29 -0
  50. package/dist/headers/Collectd.js +154 -0
  51. package/dist/headers/DCCP.d.ts +30 -0
  52. package/dist/headers/DCCP.js +204 -0
  53. package/dist/headers/DHCP.d.ts +26 -0
  54. package/dist/headers/DHCP.js +148 -0
  55. package/dist/headers/DHCPFailover.d.ts +30 -0
  56. package/dist/headers/DHCPFailover.js +104 -0
  57. package/dist/headers/DHCPv6.d.ts +25 -0
  58. package/dist/headers/DHCPv6.js +145 -0
  59. package/dist/headers/DNP3.d.ts +27 -0
  60. package/dist/headers/DNP3.js +150 -0
  61. package/dist/headers/DNS.d.ts +55 -0
  62. package/dist/headers/DNS.js +309 -0
  63. package/dist/headers/DTLS.d.ts +33 -0
  64. package/dist/headers/DTLS.js +142 -0
  65. package/dist/headers/Diameter.d.ts +34 -0
  66. package/dist/headers/Diameter.js +229 -0
  67. package/dist/headers/EAPOL.d.ts +32 -0
  68. package/dist/headers/EAPOL.js +135 -0
  69. package/dist/headers/EIGRP.d.ts +28 -0
  70. package/dist/headers/EIGRP.js +165 -0
  71. package/dist/headers/ENIP.d.ts +31 -0
  72. package/dist/headers/ENIP.js +164 -0
  73. package/dist/headers/ESP.d.ts +27 -0
  74. package/dist/headers/ESP.js +140 -0
  75. package/dist/headers/Elasticsearch.d.ts +30 -0
  76. package/dist/headers/Elasticsearch.js +125 -0
  77. package/dist/headers/EtherCAT.d.ts +35 -0
  78. package/dist/headers/EtherCAT.js +150 -0
  79. package/dist/headers/EthernetII.d.ts +28 -0
  80. package/dist/headers/EthernetII.js +117 -0
  81. package/dist/headers/FCoE.d.ts +38 -0
  82. package/dist/headers/FCoE.js +210 -0
  83. package/dist/headers/FTP.d.ts +34 -0
  84. package/dist/headers/FTP.js +158 -0
  85. package/dist/headers/Finger.d.ts +41 -0
  86. package/dist/headers/Finger.js +135 -0
  87. package/dist/headers/FoundationFieldbusHSE.d.ts +43 -0
  88. package/dist/headers/FoundationFieldbusHSE.js +163 -0
  89. package/dist/headers/GELF.d.ts +35 -0
  90. package/dist/headers/GELF.js +261 -0
  91. package/dist/headers/GENEVE.d.ts +26 -0
  92. package/dist/headers/GENEVE.js +209 -0
  93. package/dist/headers/GESRTP.d.ts +32 -0
  94. package/dist/headers/GESRTP.js +141 -0
  95. package/dist/headers/GLBP.d.ts +29 -0
  96. package/dist/headers/GLBP.js +159 -0
  97. package/dist/headers/GRE.d.ts +27 -0
  98. package/dist/headers/GRE.js +181 -0
  99. package/dist/headers/GTPU.d.ts +25 -0
  100. package/dist/headers/GTPU.js +203 -0
  101. package/dist/headers/GTPv2C.d.ts +30 -0
  102. package/dist/headers/GTPv2C.js +281 -0
  103. package/dist/headers/GitProtocol.d.ts +34 -0
  104. package/dist/headers/GitProtocol.js +141 -0
  105. package/dist/headers/Goose.d.ts +115 -0
  106. package/dist/headers/Goose.js +1067 -0
  107. package/dist/headers/Gopher.d.ts +43 -0
  108. package/dist/headers/Gopher.js +182 -0
  109. package/dist/headers/HARTIP.d.ts +30 -0
  110. package/dist/headers/HARTIP.js +145 -0
  111. package/dist/headers/HSR.d.ts +27 -0
  112. package/dist/headers/HSR.js +105 -0
  113. package/dist/headers/HSRP.d.ts +26 -0
  114. package/dist/headers/HSRP.js +173 -0
  115. package/dist/headers/HTTP.d.ts +32 -0
  116. package/dist/headers/HTTP.js +153 -0
  117. package/dist/headers/HTTP2.d.ts +34 -0
  118. package/dist/headers/HTTP2.js +190 -0
  119. package/dist/headers/IAX2.d.ts +33 -0
  120. package/dist/headers/IAX2.js +274 -0
  121. package/dist/headers/ICMP.d.ts +15 -0
  122. package/dist/headers/ICMP.js +148 -0
  123. package/dist/headers/ICMPv6.d.ts +15 -0
  124. package/dist/headers/ICMPv6.js +129 -0
  125. package/dist/headers/IEC104_I_Frame.d.ts +23 -0
  126. package/dist/headers/IEC104_I_Frame.js +6489 -0
  127. package/dist/headers/IEC104_S_Frame.d.ts +26 -0
  128. package/dist/headers/IEC104_S_Frame.js +135 -0
  129. package/dist/headers/IEC104_U_Frame.d.ts +27 -0
  130. package/dist/headers/IEC104_U_Frame.js +176 -0
  131. package/dist/headers/IEC61850SampledValues.d.ts +20 -0
  132. package/dist/headers/IEC61850SampledValues.js +420 -0
  133. package/dist/headers/IGMP.d.ts +31 -0
  134. package/dist/headers/IGMP.js +274 -0
  135. package/dist/headers/IMAP.d.ts +32 -0
  136. package/dist/headers/IMAP.js +185 -0
  137. package/dist/headers/IPFIX.d.ts +29 -0
  138. package/dist/headers/IPFIX.js +156 -0
  139. package/dist/headers/IPv4.d.ts +20 -0
  140. package/dist/headers/IPv4.js +370 -0
  141. package/dist/headers/IPv6.d.ts +29 -0
  142. package/dist/headers/IPv6.js +209 -0
  143. package/dist/headers/IPv6HopByHopOptions.d.ts +81 -0
  144. package/dist/headers/IPv6HopByHopOptions.js +495 -0
  145. package/dist/headers/IRC.d.ts +34 -0
  146. package/dist/headers/IRC.js +175 -0
  147. package/dist/headers/ISAKMP.d.ts +29 -0
  148. package/dist/headers/ISAKMP.js +197 -0
  149. package/dist/headers/ISCSI.d.ts +39 -0
  150. package/dist/headers/ISCSI.js +289 -0
  151. package/dist/headers/ISIS.d.ts +25 -0
  152. package/dist/headers/ISIS.js +79 -0
  153. package/dist/headers/ISOSession.d.ts +27 -0
  154. package/dist/headers/ISOSession.js +343 -0
  155. package/dist/headers/Ident.d.ts +42 -0
  156. package/dist/headers/Ident.js +184 -0
  157. package/dist/headers/KNXnetIP.d.ts +30 -0
  158. package/dist/headers/KNXnetIP.js +135 -0
  159. package/dist/headers/Kafka.d.ts +35 -0
  160. package/dist/headers/Kafka.js +128 -0
  161. package/dist/headers/Kerberos.d.ts +30 -0
  162. package/dist/headers/Kerberos.js +217 -0
  163. package/dist/headers/L2TP.d.ts +26 -0
  164. package/dist/headers/L2TP.js +297 -0
  165. package/dist/headers/LACP.d.ts +31 -0
  166. package/dist/headers/LACP.js +151 -0
  167. package/dist/headers/LDAP.d.ts +31 -0
  168. package/dist/headers/LDAP.js +226 -0
  169. package/dist/headers/LDP.d.ts +31 -0
  170. package/dist/headers/LDP.js +138 -0
  171. package/dist/headers/LISP.d.ts +30 -0
  172. package/dist/headers/LISP.js +103 -0
  173. package/dist/headers/LLC.d.ts +27 -0
  174. package/dist/headers/LLC.js +81 -0
  175. package/dist/headers/LLDP.d.ts +26 -0
  176. package/dist/headers/LLDP.js +126 -0
  177. package/dist/headers/LLMNR.d.ts +23 -0
  178. package/dist/headers/LLMNR.js +40 -0
  179. package/dist/headers/LPD.d.ts +31 -0
  180. package/dist/headers/LPD.js +159 -0
  181. package/dist/headers/MACsec.d.ts +34 -0
  182. package/dist/headers/MACsec.js +178 -0
  183. package/dist/headers/MDNS.d.ts +26 -0
  184. package/dist/headers/MDNS.js +45 -0
  185. package/dist/headers/MGCP.d.ts +30 -0
  186. package/dist/headers/MGCP.js +155 -0
  187. package/dist/headers/MMS.d.ts +29 -0
  188. package/dist/headers/MMS.js +243 -0
  189. package/dist/headers/MPLS.d.ts +31 -0
  190. package/dist/headers/MPLS.js +145 -0
  191. package/dist/headers/MQTT.d.ts +30 -0
  192. package/dist/headers/MQTT.js +173 -0
  193. package/dist/headers/MQTTSN.d.ts +34 -0
  194. package/dist/headers/MQTTSN.js +177 -0
  195. package/dist/headers/MarkerProtocol.d.ts +32 -0
  196. package/dist/headers/MarkerProtocol.js +153 -0
  197. package/dist/headers/Megaco.d.ts +32 -0
  198. package/dist/headers/Megaco.js +144 -0
  199. package/dist/headers/Memcached.d.ts +44 -0
  200. package/dist/headers/Memcached.js +285 -0
  201. package/dist/headers/ModbusTCP.d.ts +25 -0
  202. package/dist/headers/ModbusTCP.js +99 -0
  203. package/dist/headers/ModbusUDP.d.ts +26 -0
  204. package/dist/headers/ModbusUDP.js +100 -0
  205. package/dist/headers/MongoDB.d.ts +33 -0
  206. package/dist/headers/MongoDB.js +143 -0
  207. package/dist/headers/MySQL.d.ts +30 -0
  208. package/dist/headers/MySQL.js +114 -0
  209. package/dist/headers/NATS.d.ts +29 -0
  210. package/dist/headers/NATS.js +135 -0
  211. package/dist/headers/NBDS.d.ts +34 -0
  212. package/dist/headers/NBDS.js +176 -0
  213. package/dist/headers/NBNS.d.ts +34 -0
  214. package/dist/headers/NBNS.js +78 -0
  215. package/dist/headers/NBSS.d.ts +36 -0
  216. package/dist/headers/NBSS.js +137 -0
  217. package/dist/headers/NFS.d.ts +36 -0
  218. package/dist/headers/NFS.js +273 -0
  219. package/dist/headers/NHRP.d.ts +32 -0
  220. package/dist/headers/NHRP.js +154 -0
  221. package/dist/headers/NNTP.d.ts +35 -0
  222. package/dist/headers/NNTP.js +162 -0
  223. package/dist/headers/NTP.d.ts +18 -0
  224. package/dist/headers/NTP.js +73 -0
  225. package/dist/headers/NetFlowV5.d.ts +28 -0
  226. package/dist/headers/NetFlowV5.js +205 -0
  227. package/dist/headers/OLSR.d.ts +31 -0
  228. package/dist/headers/OLSR.js +213 -0
  229. package/dist/headers/OPCUA.d.ts +33 -0
  230. package/dist/headers/OPCUA.js +165 -0
  231. package/dist/headers/OPCUAPubSub.d.ts +33 -0
  232. package/dist/headers/OPCUAPubSub.js +144 -0
  233. package/dist/headers/OSPF.d.ts +31 -0
  234. package/dist/headers/OSPF.js +365 -0
  235. package/dist/headers/OmronFINS.d.ts +31 -0
  236. package/dist/headers/OmronFINS.js +90 -0
  237. package/dist/headers/OpenFlow.d.ts +30 -0
  238. package/dist/headers/OpenFlow.js +113 -0
  239. package/dist/headers/OpenVPN.d.ts +35 -0
  240. package/dist/headers/OpenVPN.js +214 -0
  241. package/dist/headers/PCWorx.d.ts +35 -0
  242. package/dist/headers/PCWorx.js +115 -0
  243. package/dist/headers/PIM.d.ts +27 -0
  244. package/dist/headers/PIM.js +129 -0
  245. package/dist/headers/POP3.d.ts +31 -0
  246. package/dist/headers/POP3.js +152 -0
  247. package/dist/headers/POWERLINK.d.ts +28 -0
  248. package/dist/headers/POWERLINK.js +116 -0
  249. package/dist/headers/PPPoEDiscovery.d.ts +29 -0
  250. package/dist/headers/PPPoEDiscovery.js +198 -0
  251. package/dist/headers/PPPoESession.d.ts +28 -0
  252. package/dist/headers/PPPoESession.js +125 -0
  253. package/dist/headers/PPTP.d.ts +30 -0
  254. package/dist/headers/PPTP.js +122 -0
  255. package/dist/headers/PROFINETRT.d.ts +28 -0
  256. package/dist/headers/PROFINETRT.js +74 -0
  257. package/dist/headers/PTP.d.ts +34 -0
  258. package/dist/headers/PTP.js +213 -0
  259. package/dist/headers/PostgreSQL.d.ts +40 -0
  260. package/dist/headers/PostgreSQL.js +236 -0
  261. package/dist/headers/QUIC.d.ts +34 -0
  262. package/dist/headers/QUIC.js +308 -0
  263. package/dist/headers/RADIUS.d.ts +24 -0
  264. package/dist/headers/RADIUS.js +138 -0
  265. package/dist/headers/RDP.d.ts +27 -0
  266. package/dist/headers/RDP.js +93 -0
  267. package/dist/headers/RFB.d.ts +39 -0
  268. package/dist/headers/RFB.js +151 -0
  269. package/dist/headers/RGoose.d.ts +72 -0
  270. package/dist/headers/RGoose.js +340 -0
  271. package/dist/headers/RIP.d.ts +29 -0
  272. package/dist/headers/RIP.js +133 -0
  273. package/dist/headers/RIPng.d.ts +26 -0
  274. package/dist/headers/RIPng.js +140 -0
  275. package/dist/headers/RMCP.d.ts +26 -0
  276. package/dist/headers/RMCP.js +155 -0
  277. package/dist/headers/RSVP.d.ts +31 -0
  278. package/dist/headers/RSVP.js +263 -0
  279. package/dist/headers/RTCP.d.ts +34 -0
  280. package/dist/headers/RTCP.js +217 -0
  281. package/dist/headers/RTP.d.ts +33 -0
  282. package/dist/headers/RTP.js +291 -0
  283. package/dist/headers/RTPS.d.ts +33 -0
  284. package/dist/headers/RTPS.js +182 -0
  285. package/dist/headers/RTSP.d.ts +36 -0
  286. package/dist/headers/RTSP.js +184 -0
  287. package/dist/headers/RawData.d.ts +17 -0
  288. package/dist/headers/RawData.js +43 -0
  289. package/dist/headers/Redis.d.ts +32 -0
  290. package/dist/headers/Redis.js +202 -0
  291. package/dist/headers/Rlogin.d.ts +42 -0
  292. package/dist/headers/Rlogin.js +139 -0
  293. package/dist/headers/Rsync.d.ts +28 -0
  294. package/dist/headers/Rsync.js +117 -0
  295. package/dist/headers/S7comm.d.ts +36 -0
  296. package/dist/headers/S7comm.js +244 -0
  297. package/dist/headers/SCTP.d.ts +35 -0
  298. package/dist/headers/SCTP.js +174 -0
  299. package/dist/headers/SFlow.d.ts +29 -0
  300. package/dist/headers/SFlow.js +242 -0
  301. package/dist/headers/SIP.d.ts +27 -0
  302. package/dist/headers/SIP.js +146 -0
  303. package/dist/headers/SLMP.d.ts +36 -0
  304. package/dist/headers/SLMP.js +154 -0
  305. package/dist/headers/SLP.d.ts +30 -0
  306. package/dist/headers/SLP.js +207 -0
  307. package/dist/headers/SLPv1.d.ts +32 -0
  308. package/dist/headers/SLPv1.js +138 -0
  309. package/dist/headers/SMB1.d.ts +37 -0
  310. package/dist/headers/SMB1.js +200 -0
  311. package/dist/headers/SMB2.d.ts +36 -0
  312. package/dist/headers/SMB2.js +203 -0
  313. package/dist/headers/SMPP.d.ts +33 -0
  314. package/dist/headers/SMPP.js +119 -0
  315. package/dist/headers/SMTP.d.ts +33 -0
  316. package/dist/headers/SMTP.js +157 -0
  317. package/dist/headers/SNAP.d.ts +22 -0
  318. package/dist/headers/SNAP.js +68 -0
  319. package/dist/headers/SNMP.d.ts +28 -0
  320. package/dist/headers/SNMP.js +302 -0
  321. package/dist/headers/SOCKS4.d.ts +42 -0
  322. package/dist/headers/SOCKS4.js +302 -0
  323. package/dist/headers/SOCKS5.d.ts +45 -0
  324. package/dist/headers/SOCKS5.js +223 -0
  325. package/dist/headers/SSDP.d.ts +27 -0
  326. package/dist/headers/SSDP.js +161 -0
  327. package/dist/headers/SSH.d.ts +44 -0
  328. package/dist/headers/SSH.js +274 -0
  329. package/dist/headers/STOMP.d.ts +48 -0
  330. package/dist/headers/STOMP.js +177 -0
  331. package/dist/headers/STP.d.ts +26 -0
  332. package/dist/headers/STP.js +150 -0
  333. package/dist/headers/STUN.d.ts +25 -0
  334. package/dist/headers/STUN.js +183 -0
  335. package/dist/headers/SercosIII.d.ts +43 -0
  336. package/dist/headers/SercosIII.js +199 -0
  337. package/dist/headers/Skinny.d.ts +32 -0
  338. package/dist/headers/Skinny.js +139 -0
  339. package/dist/headers/StatsD.d.ts +27 -0
  340. package/dist/headers/StatsD.js +134 -0
  341. package/dist/headers/SunRPC.d.ts +34 -0
  342. package/dist/headers/SunRPC.js +268 -0
  343. package/dist/headers/Syslog.d.ts +21 -0
  344. package/dist/headers/Syslog.js +91 -0
  345. package/dist/headers/TCP.d.ts +19 -0
  346. package/dist/headers/TCP.js +905 -0
  347. package/dist/headers/TFTP.d.ts +28 -0
  348. package/dist/headers/TFTP.js +224 -0
  349. package/dist/headers/TLS_Alert.d.ts +24 -0
  350. package/dist/headers/TLS_Alert.js +639 -0
  351. package/dist/headers/TLS_ApplicationData.d.ts +24 -0
  352. package/dist/headers/TLS_ApplicationData.js +170 -0
  353. package/dist/headers/TLS_ChangeCipherSpec.d.ts +23 -0
  354. package/dist/headers/TLS_ChangeCipherSpec.js +168 -0
  355. package/dist/headers/TLS_Handshake.d.ts +65 -0
  356. package/dist/headers/TLS_Handshake.js +860 -0
  357. package/dist/headers/TLS_Heartbeat.d.ts +27 -0
  358. package/dist/headers/TLS_Heartbeat.js +247 -0
  359. package/dist/headers/TPKT.d.ts +26 -0
  360. package/dist/headers/TPKT.js +99 -0
  361. package/dist/headers/TacacsPlus.d.ts +27 -0
  362. package/dist/headers/TacacsPlus.js +133 -0
  363. package/dist/headers/Telnet.d.ts +40 -0
  364. package/dist/headers/Telnet.js +193 -0
  365. package/dist/headers/Teredo.d.ts +40 -0
  366. package/dist/headers/Teredo.js +251 -0
  367. package/dist/headers/TimeProtocol.d.ts +25 -0
  368. package/dist/headers/TimeProtocol.js +53 -0
  369. package/dist/headers/UDP.d.ts +19 -0
  370. package/dist/headers/UDP.js +171 -0
  371. package/dist/headers/VLAN_802dot1Q.d.ts +24 -0
  372. package/dist/headers/VLAN_802dot1Q.js +96 -0
  373. package/dist/headers/VRRP.d.ts +26 -0
  374. package/dist/headers/VRRP.js +309 -0
  375. package/dist/headers/VXLAN.d.ts +24 -0
  376. package/dist/headers/VXLAN.js +75 -0
  377. package/dist/headers/WCCP.d.ts +29 -0
  378. package/dist/headers/WCCP.js +117 -0
  379. package/dist/headers/WHOIS.d.ts +37 -0
  380. package/dist/headers/WHOIS.js +126 -0
  381. package/dist/headers/WSDiscovery.d.ts +29 -0
  382. package/dist/headers/WSDiscovery.js +118 -0
  383. package/dist/headers/WakeOnLAN.d.ts +30 -0
  384. package/dist/headers/WakeOnLAN.js +126 -0
  385. package/dist/headers/WebSocket.d.ts +26 -0
  386. package/dist/headers/WebSocket.js +173 -0
  387. package/dist/headers/WireGuard.d.ts +38 -0
  388. package/dist/headers/WireGuard.js +216 -0
  389. package/dist/headers/XMPP.d.ts +37 -0
  390. package/dist/headers/XMPP.js +149 -0
  391. package/dist/headers/Zabbix.d.ts +35 -0
  392. package/dist/headers/Zabbix.js +153 -0
  393. package/dist/headers/cms/AcsiPdu.d.ts +45 -0
  394. package/dist/headers/cms/AcsiPdu.js +112 -0
  395. package/dist/headers/cms/PerDecoder.d.ts +68 -0
  396. package/dist/headers/cms/PerDecoder.js +211 -0
  397. package/dist/headers/cms/PerReader.d.ts +64 -0
  398. package/dist/headers/cms/PerReader.js +155 -0
  399. package/dist/helper/BufferToHex.d.ts +5 -0
  400. package/dist/helper/BufferToHex.js +10 -0
  401. package/dist/helper/BufferToIP.d.ts +12 -0
  402. package/dist/helper/BufferToIP.js +23 -0
  403. package/dist/helper/BufferToNumber.d.ts +18 -0
  404. package/dist/helper/BufferToNumber.js +47 -0
  405. package/dist/helper/HexToBuffer.d.ts +7 -0
  406. package/dist/helper/HexToBuffer.js +27 -0
  407. package/dist/helper/HexToNumber.d.ts +18 -0
  408. package/dist/helper/HexToNumber.js +48 -0
  409. package/dist/helper/IPToBuffer.d.ts +12 -0
  410. package/dist/helper/IPToBuffer.js +34 -0
  411. package/dist/helper/NumberToBERBuffer.d.ts +18 -0
  412. package/dist/helper/NumberToBERBuffer.js +31 -0
  413. package/dist/helper/NumberToBERHex.d.ts +18 -0
  414. package/dist/helper/NumberToBERHex.js +52 -0
  415. package/dist/helper/NumberToBuffer.d.ts +18 -0
  416. package/dist/helper/NumberToBuffer.js +38 -0
  417. package/dist/helper/NumberToHex.d.ts +18 -0
  418. package/dist/helper/NumberToHex.js +35 -0
  419. package/dist/index.d.ts +52 -0
  420. package/dist/index.js +113 -0
  421. package/dist/lib/FlexibleObject.d.ts +27 -0
  422. package/dist/lib/FlexibleObject.js +113 -0
  423. package/dist/lib/GetBERIntegerLengthFromBuffer.d.ts +6 -0
  424. package/dist/lib/GetBERIntegerLengthFromBuffer.js +16 -0
  425. package/dist/lib/ProcessPacketPostHandlers.d.ts +13 -0
  426. package/dist/lib/ProcessPacketPostHandlers.js +53 -0
  427. package/dist/lib/SortPostHandlers.d.ts +7 -0
  428. package/dist/lib/SortPostHandlers.js +11 -0
  429. package/dist/lib/StringContentEncodingEnum.d.ts +10 -0
  430. package/dist/lib/StringContentEncodingEnum.js +14 -0
  431. package/dist/schema/ProtocolFieldJSONSchema.d.ts +35 -0
  432. package/dist/schema/ProtocolFieldJSONSchema.js +2 -0
  433. package/dist/schema/ProtocolFieldJSONSchemaDefinition.d.ts +2 -0
  434. package/dist/schema/ProtocolFieldJSONSchemaDefinition.js +2 -0
  435. package/dist/schema/ProtocolJSONSchema.d.ts +32 -0
  436. package/dist/schema/ProtocolJSONSchema.js +2 -0
  437. package/dist/types/CodecData.d.ts +7 -0
  438. package/dist/types/CodecData.js +2 -0
  439. package/dist/types/CodecDecodeResult.d.ts +10 -0
  440. package/dist/types/CodecDecodeResult.js +2 -0
  441. package/dist/types/CodecEncodeInput.d.ts +2 -0
  442. package/dist/types/CodecEncodeInput.js +2 -0
  443. package/dist/types/CodecEncodeResult.d.ts +5 -0
  444. package/dist/types/CodecEncodeResult.js +2 -0
  445. package/dist/types/CodecErrorInfo.d.ts +5 -0
  446. package/dist/types/CodecErrorInfo.js +2 -0
  447. package/dist/types/CodecModule.d.ts +2 -0
  448. package/dist/types/CodecModule.js +2 -0
  449. package/dist/types/CodecModuleConstructor.d.ts +2 -0
  450. package/dist/types/CodecModuleConstructor.js +2 -0
  451. package/dist/types/CodecSchema.d.ts +6 -0
  452. package/dist/types/CodecSchema.js +2 -0
  453. package/dist/types/DemuxProducer.d.ts +23 -0
  454. package/dist/types/DemuxProducer.js +2 -0
  455. package/dist/types/Dissection.d.ts +23 -0
  456. package/dist/types/Dissection.js +2 -0
  457. package/dist/types/HeaderTreeNode.d.ts +4 -0
  458. package/dist/types/HeaderTreeNode.js +2 -0
  459. package/dist/types/LayerGraph.d.ts +32 -0
  460. package/dist/types/LayerGraph.js +2 -0
  461. package/dist/types/PostHandlerItem.d.ts +4 -0
  462. package/dist/types/PostHandlerItem.js +2 -0
  463. package/package.json +141 -0
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Convert IPv4 string to Buffer
3
+ * @param ipv4
4
+ * @constructor
5
+ */
6
+ export declare function IPv4ToBuffer(ipv4: string): Buffer;
7
+ /**
8
+ * Convert IPv6 string to Buffer
9
+ * @param ipv6
10
+ * @constructor
11
+ */
12
+ export declare function IPv6ToBuffer(ipv6: string): Buffer;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IPv4ToBuffer = IPv4ToBuffer;
4
+ exports.IPv6ToBuffer = IPv6ToBuffer;
5
+ const ip_address_1 = require("ip-address");
6
+ const NumberToBuffer_1 = require("./NumberToBuffer");
7
+ /**
8
+ * Convert IPv4 string to Buffer
9
+ * @param ipv4
10
+ * @constructor
11
+ */
12
+ function IPv4ToBuffer(ipv4) {
13
+ const numArr = ipv4.split('.').map((value) => parseInt(value)).map((value) => value ? value : 0);
14
+ return (0, NumberToBuffer_1.UInt32ToBuffer)(parseInt(Buffer.from(numArr).toString('hex'), 16));
15
+ }
16
+ /**
17
+ * Convert IPv6 string to Buffer
18
+ * @param ipv6
19
+ * @constructor
20
+ */
21
+ function IPv6ToBuffer(ipv6) {
22
+ try {
23
+ const bytes = new ip_address_1.Address6(ipv6).toByteArray();
24
+ const buffer = Buffer.alloc(16, 0);
25
+ //ip-address toByteArray() returns the shortest byte array, so compressed
26
+ //addresses (::1, ::ffff:...) yield fewer than 16 bytes. Right-align them so
27
+ //the low-order octets land at the end of the 16-byte field.
28
+ Buffer.from(bytes).copy(buffer, 16 - bytes.length);
29
+ return buffer;
30
+ }
31
+ catch (e) {
32
+ return Buffer.alloc(16, 0);
33
+ }
34
+ }
@@ -0,0 +1,18 @@
1
+ /** Encode a signed 8-bit integer as a minimal-length BER INTEGER content buffer. */
2
+ export declare const Int8ToBERBuffer: (value: number) => Buffer;
3
+ /** Encode a signed 16-bit integer as a minimal-length BER INTEGER content buffer. */
4
+ export declare const Int16ToBERBuffer: (value: number) => Buffer;
5
+ /** Encode a signed 32-bit integer as a minimal-length BER INTEGER content buffer. */
6
+ export declare const Int32ToBERBuffer: (value: number) => Buffer;
7
+ /** Encode a signed 64-bit bigint as a minimal-length BER INTEGER content buffer. */
8
+ export declare const Int64ToBERBuffer: (value: bigint) => Buffer;
9
+ /** Encode an unsigned 8-bit integer as a BER INTEGER content buffer (00-padded to stay positive). */
10
+ export declare const UInt8ToBERBuffer: (value: number) => Buffer;
11
+ /** Encode an unsigned 16-bit integer as a BER INTEGER content buffer (00-padded to stay positive). */
12
+ export declare const UInt16ToBERBuffer: (value: number) => Buffer;
13
+ /** Encode an unsigned 32-bit integer as a BER INTEGER content buffer (00-padded to stay positive). */
14
+ export declare const UInt32ToBERBuffer: (value: number) => Buffer;
15
+ /** Encode an unsigned 64-bit bigint as a BER INTEGER content buffer (00-padded to stay positive). */
16
+ export declare const UInt64ToBERBuffer: (value: bigint) => Buffer;
17
+ /** Encode a 32-bit float as an IEC 61850 FLOATING-POINT content buffer (leading 08 exponent-width byte + IEEE-754 bytes). */
18
+ export declare const Float32ToBERBuffer: (value: number) => Buffer;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Float32ToBERBuffer = exports.UInt64ToBERBuffer = exports.UInt32ToBERBuffer = exports.UInt16ToBERBuffer = exports.UInt8ToBERBuffer = exports.Int64ToBERBuffer = exports.Int32ToBERBuffer = exports.Int16ToBERBuffer = exports.Int8ToBERBuffer = void 0;
4
+ const NumberToBERHex_1 = require("./NumberToBERHex");
5
+ /** Encode a signed 8-bit integer as a minimal-length BER INTEGER content buffer. */
6
+ const Int8ToBERBuffer = (value) => Buffer.from((0, NumberToBERHex_1.Int8ToBERHex)(value), 'hex');
7
+ exports.Int8ToBERBuffer = Int8ToBERBuffer;
8
+ /** Encode a signed 16-bit integer as a minimal-length BER INTEGER content buffer. */
9
+ const Int16ToBERBuffer = (value) => Buffer.from((0, NumberToBERHex_1.Int16ToBERHex)(value), 'hex');
10
+ exports.Int16ToBERBuffer = Int16ToBERBuffer;
11
+ /** Encode a signed 32-bit integer as a minimal-length BER INTEGER content buffer. */
12
+ const Int32ToBERBuffer = (value) => Buffer.from((0, NumberToBERHex_1.Int32ToBERHex)(value), 'hex');
13
+ exports.Int32ToBERBuffer = Int32ToBERBuffer;
14
+ /** Encode a signed 64-bit bigint as a minimal-length BER INTEGER content buffer. */
15
+ const Int64ToBERBuffer = (value) => Buffer.from((0, NumberToBERHex_1.Int64ToBERHex)(value), 'hex');
16
+ exports.Int64ToBERBuffer = Int64ToBERBuffer;
17
+ /** Encode an unsigned 8-bit integer as a BER INTEGER content buffer (00-padded to stay positive). */
18
+ const UInt8ToBERBuffer = (value) => Buffer.from((0, NumberToBERHex_1.UInt8ToBERHex)(value), 'hex');
19
+ exports.UInt8ToBERBuffer = UInt8ToBERBuffer;
20
+ /** Encode an unsigned 16-bit integer as a BER INTEGER content buffer (00-padded to stay positive). */
21
+ const UInt16ToBERBuffer = (value) => Buffer.from((0, NumberToBERHex_1.UInt16ToBERHex)(value), 'hex');
22
+ exports.UInt16ToBERBuffer = UInt16ToBERBuffer;
23
+ /** Encode an unsigned 32-bit integer as a BER INTEGER content buffer (00-padded to stay positive). */
24
+ const UInt32ToBERBuffer = (value) => Buffer.from((0, NumberToBERHex_1.UInt32ToBERHex)(value), 'hex');
25
+ exports.UInt32ToBERBuffer = UInt32ToBERBuffer;
26
+ /** Encode an unsigned 64-bit bigint as a BER INTEGER content buffer (00-padded to stay positive). */
27
+ const UInt64ToBERBuffer = (value) => Buffer.from((0, NumberToBERHex_1.UInt64ToBERHex)(value), 'hex');
28
+ exports.UInt64ToBERBuffer = UInt64ToBERBuffer;
29
+ /** Encode a 32-bit float as an IEC 61850 FLOATING-POINT content buffer (leading 08 exponent-width byte + IEEE-754 bytes). */
30
+ const Float32ToBERBuffer = (value) => Buffer.from((0, NumberToBERHex_1.Float32ToBERHex)(value), 'hex');
31
+ exports.Float32ToBERBuffer = Float32ToBERBuffer;
@@ -0,0 +1,18 @@
1
+ /** Encode a signed 8-bit integer as a minimal-length BER INTEGER content hex string (two's complement, leading sign byte as needed). */
2
+ export declare const Int8ToBERHex: (value: number) => string;
3
+ /** Encode a signed 16-bit integer as a minimal-length BER INTEGER content hex string (two's complement, leading sign byte as needed). */
4
+ export declare const Int16ToBERHex: (value: number) => string;
5
+ /** Encode a signed 32-bit integer as a minimal-length BER INTEGER content hex string (two's complement, leading sign byte as needed). */
6
+ export declare const Int32ToBERHex: (value: number) => string;
7
+ /** Encode a signed 64-bit bigint as a minimal-length BER INTEGER content hex string (two's complement, leading sign byte as needed). */
8
+ export declare const Int64ToBERHex: (value: bigint) => string;
9
+ /** Encode an unsigned 8-bit integer as a BER INTEGER content hex string (prepends a 00 byte when the high bit is set to keep it positive). */
10
+ export declare const UInt8ToBERHex: (value: number) => string;
11
+ /** Encode an unsigned 16-bit integer as a BER INTEGER content hex string (prepends a 00 byte when the high bit is set to keep it positive). */
12
+ export declare const UInt16ToBERHex: (value: number) => string;
13
+ /** Encode an unsigned 32-bit integer as a BER INTEGER content hex string (prepends a 00 byte when the high bit is set to keep it positive). */
14
+ export declare const UInt32ToBERHex: (value: number) => string;
15
+ /** Encode an unsigned 64-bit bigint as a BER INTEGER content hex string (prepends a 00 byte when the high bit is set to keep it positive). */
16
+ export declare const UInt64ToBERHex: (value: bigint) => string;
17
+ /** Encode a 32-bit float as an IEC 61850 FLOATING-POINT content hex string (a leading 08 exponent-width byte followed by the big-endian IEEE-754 bytes). */
18
+ export declare const Float32ToBERHex: (value: number) => string;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Float32ToBERHex = exports.UInt64ToBERHex = exports.UInt32ToBERHex = exports.UInt16ToBERHex = exports.UInt8ToBERHex = exports.Int64ToBERHex = exports.Int32ToBERHex = exports.Int16ToBERHex = exports.Int8ToBERHex = void 0;
4
+ const NumberToHex_1 = require("./NumberToHex");
5
+ function toBERHex(rawHex) {
6
+ const hex = rawHex.padStart(rawHex.length + rawHex.length % 2, '0');
7
+ return Buffer.from(hex, 'hex')[0].toString(2).padStart(8, '0').startsWith('1') ? `00${hex}` : hex;
8
+ }
9
+ function toSignedBERHex(value) {
10
+ const v = BigInt(value);
11
+ if (v >= 0n) {
12
+ let hex = v.toString(16);
13
+ if (hex.length % 2)
14
+ hex = `0${hex}`;
15
+ if (parseInt(hex.slice(0, 2), 16) >= 0x80)
16
+ hex = `00${hex}`;
17
+ return hex;
18
+ }
19
+ let bytes = 1;
20
+ while (v < -(1n << (BigInt(bytes) * 8n - 1n)))
21
+ bytes++;
22
+ const mask = (1n << (BigInt(bytes) * 8n)) - 1n;
23
+ return (v & mask).toString(16).padStart(bytes * 2, '0');
24
+ }
25
+ /** Encode a signed 8-bit integer as a minimal-length BER INTEGER content hex string (two's complement, leading sign byte as needed). */
26
+ const Int8ToBERHex = (value) => toSignedBERHex(value);
27
+ exports.Int8ToBERHex = Int8ToBERHex;
28
+ /** Encode a signed 16-bit integer as a minimal-length BER INTEGER content hex string (two's complement, leading sign byte as needed). */
29
+ const Int16ToBERHex = (value) => toSignedBERHex(value);
30
+ exports.Int16ToBERHex = Int16ToBERHex;
31
+ /** Encode a signed 32-bit integer as a minimal-length BER INTEGER content hex string (two's complement, leading sign byte as needed). */
32
+ const Int32ToBERHex = (value) => toSignedBERHex(value);
33
+ exports.Int32ToBERHex = Int32ToBERHex;
34
+ /** Encode a signed 64-bit bigint as a minimal-length BER INTEGER content hex string (two's complement, leading sign byte as needed). */
35
+ const Int64ToBERHex = (value) => toSignedBERHex(value);
36
+ exports.Int64ToBERHex = Int64ToBERHex;
37
+ /** Encode an unsigned 8-bit integer as a BER INTEGER content hex string (prepends a 00 byte when the high bit is set to keep it positive). */
38
+ const UInt8ToBERHex = (value) => toBERHex(value.toString(16));
39
+ exports.UInt8ToBERHex = UInt8ToBERHex;
40
+ /** Encode an unsigned 16-bit integer as a BER INTEGER content hex string (prepends a 00 byte when the high bit is set to keep it positive). */
41
+ const UInt16ToBERHex = (value) => toBERHex(value.toString(16));
42
+ exports.UInt16ToBERHex = UInt16ToBERHex;
43
+ /** Encode an unsigned 32-bit integer as a BER INTEGER content hex string (prepends a 00 byte when the high bit is set to keep it positive). */
44
+ const UInt32ToBERHex = (value) => toBERHex(value.toString(16));
45
+ exports.UInt32ToBERHex = UInt32ToBERHex;
46
+ /** Encode an unsigned 64-bit bigint as a BER INTEGER content hex string (prepends a 00 byte when the high bit is set to keep it positive). */
47
+ const UInt64ToBERHex = (value) => toBERHex(BigInt(value).toString(16));
48
+ exports.UInt64ToBERHex = UInt64ToBERHex;
49
+ //Float32 precision is always 8, therefore add '08' prefix for Float32ToHex result
50
+ /** Encode a 32-bit float as an IEC 61850 FLOATING-POINT content hex string (a leading 08 exponent-width byte followed by the big-endian IEEE-754 bytes). */
51
+ const Float32ToBERHex = (value) => `08${(0, NumberToHex_1.Float32ToHex)(value)}`;
52
+ exports.Float32ToBERHex = Float32ToBERHex;
@@ -0,0 +1,18 @@
1
+ /** Write a signed 8-bit integer to a 1-byte buffer (value masked to the field width). */
2
+ export declare const Int8ToBuffer: (value: number) => Buffer;
3
+ /** Write a signed 16-bit integer to a big-endian 2-byte buffer (value masked to the field width). */
4
+ export declare const Int16ToBuffer: (value: number) => Buffer;
5
+ /** Write a signed 32-bit integer to a big-endian 4-byte buffer (value masked to the field width). */
6
+ export declare const Int32ToBuffer: (value: number) => Buffer;
7
+ /** Write a signed 64-bit bigint to a big-endian 8-byte buffer. */
8
+ export declare const Int64ToBuffer: (value: bigint) => Buffer;
9
+ /** Write an unsigned 8-bit integer to a 1-byte buffer (value masked to the field width). */
10
+ export declare const UInt8ToBuffer: (value: number) => Buffer;
11
+ /** Write an unsigned 16-bit integer to a big-endian 2-byte buffer (value masked to the field width). */
12
+ export declare const UInt16ToBuffer: (value: number) => Buffer;
13
+ /** Write an unsigned 32-bit integer to a big-endian 4-byte buffer (value masked to the field width). */
14
+ export declare const UInt32ToBuffer: (value: number) => Buffer;
15
+ /** Write an unsigned 64-bit bigint to a big-endian 8-byte buffer. */
16
+ export declare const UInt64ToBuffer: (value: bigint) => Buffer;
17
+ /** Write an IEEE-754 32-bit float to a big-endian 4-byte buffer. */
18
+ export declare const Float32ToBuffer: (value: number) => Buffer;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Float32ToBuffer = exports.UInt64ToBuffer = exports.UInt32ToBuffer = exports.UInt16ToBuffer = exports.UInt8ToBuffer = exports.Int64ToBuffer = exports.Int32ToBuffer = exports.Int16ToBuffer = exports.Int8ToBuffer = void 0;
4
+ const NumberToHex_1 = require("./NumberToHex");
5
+ //8/16/32-bit writes use native Buffer accessors instead of number→hex-string→Buffer. Int and UInt
6
+ //emit identical bytes (the field's low bytes, big-endian), so both go through the unsigned writer
7
+ //after masking to the field width — matching the old hex path, whose TypedArray view also wrote the
8
+ //value's low bytes. In-range values (the only ones encode produces, after Ajv coercion + field clamp)
9
+ //are byte-for-byte identical, which the round-trip fixtures enforce. Out-of-range values wrap to the
10
+ //field width here (a cleaner, well-defined result than the old odd-length-hex nibble truncation).
11
+ //64-bit and float keep their existing implementations.
12
+ /** Write a signed 8-bit integer to a 1-byte buffer (value masked to the field width). */
13
+ const Int8ToBuffer = (value) => { const buffer = Buffer.allocUnsafe(1); buffer.writeUInt8(value & 0xff, 0); return buffer; };
14
+ exports.Int8ToBuffer = Int8ToBuffer;
15
+ /** Write a signed 16-bit integer to a big-endian 2-byte buffer (value masked to the field width). */
16
+ const Int16ToBuffer = (value) => { const buffer = Buffer.allocUnsafe(2); buffer.writeUInt16BE(value & 0xffff, 0); return buffer; };
17
+ exports.Int16ToBuffer = Int16ToBuffer;
18
+ /** Write a signed 32-bit integer to a big-endian 4-byte buffer (value masked to the field width). */
19
+ const Int32ToBuffer = (value) => { const buffer = Buffer.allocUnsafe(4); buffer.writeUInt32BE(value >>> 0, 0); return buffer; };
20
+ exports.Int32ToBuffer = Int32ToBuffer;
21
+ /** Write a signed 64-bit bigint to a big-endian 8-byte buffer. */
22
+ const Int64ToBuffer = (value) => Buffer.from((0, NumberToHex_1.Int64ToHex)(value), 'hex');
23
+ exports.Int64ToBuffer = Int64ToBuffer;
24
+ /** Write an unsigned 8-bit integer to a 1-byte buffer (value masked to the field width). */
25
+ const UInt8ToBuffer = (value) => { const buffer = Buffer.allocUnsafe(1); buffer.writeUInt8(value & 0xff, 0); return buffer; };
26
+ exports.UInt8ToBuffer = UInt8ToBuffer;
27
+ /** Write an unsigned 16-bit integer to a big-endian 2-byte buffer (value masked to the field width). */
28
+ const UInt16ToBuffer = (value) => { const buffer = Buffer.allocUnsafe(2); buffer.writeUInt16BE(value & 0xffff, 0); return buffer; };
29
+ exports.UInt16ToBuffer = UInt16ToBuffer;
30
+ /** Write an unsigned 32-bit integer to a big-endian 4-byte buffer (value masked to the field width). */
31
+ const UInt32ToBuffer = (value) => { const buffer = Buffer.allocUnsafe(4); buffer.writeUInt32BE(value >>> 0, 0); return buffer; };
32
+ exports.UInt32ToBuffer = UInt32ToBuffer;
33
+ /** Write an unsigned 64-bit bigint to a big-endian 8-byte buffer. */
34
+ const UInt64ToBuffer = (value) => Buffer.from((0, NumberToHex_1.UInt64ToHex)(value), 'hex');
35
+ exports.UInt64ToBuffer = UInt64ToBuffer;
36
+ /** Write an IEEE-754 32-bit float to a big-endian 4-byte buffer. */
37
+ const Float32ToBuffer = (value) => Buffer.from((0, NumberToHex_1.Float32ToHex)(value), 'hex');
38
+ exports.Float32ToBuffer = Float32ToBuffer;
@@ -0,0 +1,18 @@
1
+ /** Convert a signed 8-bit integer to a 2-char two's-complement hex string. */
2
+ export declare const Int8ToHex: (value: number) => string;
3
+ /** Convert a signed 16-bit integer to a 4-char big-endian two's-complement hex string. */
4
+ export declare const Int16ToHex: (value: number) => string;
5
+ /** Convert a signed 32-bit integer to an 8-char big-endian two's-complement hex string. */
6
+ export declare const Int32ToHex: (value: number) => string;
7
+ /** Convert a signed 64-bit bigint to a 16-char big-endian hex string. */
8
+ export declare const Int64ToHex: (value: bigint) => string;
9
+ /** Convert an unsigned 8-bit integer to a 2-char hex string. */
10
+ export declare const UInt8ToHex: (value: number) => string;
11
+ /** Convert an unsigned 16-bit integer to a 4-char big-endian hex string. */
12
+ export declare const UInt16ToHex: (value: number) => string;
13
+ /** Convert an unsigned 32-bit integer to an 8-char big-endian hex string. */
14
+ export declare const UInt32ToHex: (value: number) => string;
15
+ /** Convert an unsigned 64-bit bigint to a 16-char big-endian hex string. */
16
+ export declare const UInt64ToHex: (value: bigint) => string;
17
+ /** Convert an IEEE-754 32-bit float to an 8-char big-endian hex string. */
18
+ export declare const Float32ToHex: (value: number) => string;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Float32ToHex = exports.UInt64ToHex = exports.UInt32ToHex = exports.UInt16ToHex = exports.UInt8ToHex = exports.Int64ToHex = exports.Int32ToHex = exports.Int16ToHex = exports.Int8ToHex = void 0;
4
+ /** Convert a signed 8-bit integer to a 2-char two's-complement hex string. */
5
+ const Int8ToHex = (value) => new Uint8Array(Int8Array.from([value]).buffer)[0].toString(16).padStart(2, '0');
6
+ exports.Int8ToHex = Int8ToHex;
7
+ /** Convert a signed 16-bit integer to a 4-char big-endian two's-complement hex string. */
8
+ const Int16ToHex = (value) => new Uint16Array(Int16Array.from([value]).buffer)[0].toString(16).padStart(4, '0');
9
+ exports.Int16ToHex = Int16ToHex;
10
+ /** Convert a signed 32-bit integer to an 8-char big-endian two's-complement hex string. */
11
+ const Int32ToHex = (value) => new Uint32Array(Int32Array.from([value]).buffer)[0].toString(16).padStart(8, '0');
12
+ exports.Int32ToHex = Int32ToHex;
13
+ /** Convert a signed 64-bit bigint to a 16-char big-endian hex string. */
14
+ const Int64ToHex = (value) => BigInt(value).toString(16).padStart(16, '0');
15
+ exports.Int64ToHex = Int64ToHex;
16
+ /** Convert an unsigned 8-bit integer to a 2-char hex string. */
17
+ const UInt8ToHex = (value) => value.toString(16).padStart(2, '0');
18
+ exports.UInt8ToHex = UInt8ToHex;
19
+ /** Convert an unsigned 16-bit integer to a 4-char big-endian hex string. */
20
+ const UInt16ToHex = (value) => value.toString(16).padStart(4, '0');
21
+ exports.UInt16ToHex = UInt16ToHex;
22
+ /** Convert an unsigned 32-bit integer to an 8-char big-endian hex string. */
23
+ const UInt32ToHex = (value) => value.toString(16).padStart(8, '0');
24
+ exports.UInt32ToHex = UInt32ToHex;
25
+ /** Convert an unsigned 64-bit bigint to a 16-char big-endian hex string. */
26
+ const UInt64ToHex = (value) => BigInt(value).toString(16).padStart(16, '0');
27
+ exports.UInt64ToHex = UInt64ToHex;
28
+ /** Convert an IEEE-754 32-bit float to an 8-char big-endian hex string. */
29
+ const Float32ToHex = (value) => {
30
+ const buffer = new ArrayBuffer(4);
31
+ const dataView = new DataView(buffer);
32
+ dataView.setFloat32(0, value, false);
33
+ return dataView.getUint32(0, false).toString(16).padStart(8, '0');
34
+ };
35
+ exports.Float32ToHex = Float32ToHex;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Base header abstract class
3
+ */
4
+ export { BaseHeader } from './abstracts/BaseHeader';
5
+ /**
6
+ * Network packet codec
7
+ */
8
+ export { Codec } from './Codec';
9
+ /**
10
+ * Flexible Object for codec data instance
11
+ */
12
+ export { FlexibleObject } from './lib/FlexibleObject';
13
+ /**
14
+ * Types
15
+ */
16
+ export { type CodecEncodeResult } from './types/CodecEncodeResult';
17
+ export { type CodecEncodeInput } from './types/CodecEncodeInput';
18
+ export { type CodecDecodeResult } from './types/CodecDecodeResult';
19
+ export { type CodecSchema } from './types/CodecSchema';
20
+ export { type HeaderTreeNode } from './types/HeaderTreeNode';
21
+ export { type CodecModuleConstructor } from './types/CodecModuleConstructor';
22
+ export { type CodecModule } from './types/CodecModule';
23
+ export { type CodecErrorInfo } from './types/CodecErrorInfo';
24
+ export { type NextLayer, type ConsistencyIssue } from './types/LayerGraph';
25
+ export { type DissectionField, type DissectionLayer } from './types/Dissection';
26
+ /**
27
+ * Schemas
28
+ */
29
+ export { type ProtocolFieldJSONSchema } from './schema/ProtocolFieldJSONSchema';
30
+ export { type ProtocolFieldJSONSchemaDefinition } from './schema/ProtocolFieldJSONSchemaDefinition';
31
+ export { type ProtocolJSONSchema } from './schema/ProtocolJSONSchema';
32
+ /**
33
+ * Enums
34
+ */
35
+ export { StringContentEncodingEnum } from './lib/StringContentEncodingEnum';
36
+ /**
37
+ * Protocol header classes (Ethernet, IPv4/6, TCP/UDP, ARP, TLS, GOOSE, SV, IEC104, ...)
38
+ */
39
+ export * from './PacketHeaders';
40
+ /**
41
+ * Helper conversion functions
42
+ */
43
+ export { BufferToHex } from './helper/BufferToHex';
44
+ export { HexToBuffer } from './helper/HexToBuffer';
45
+ export { BufferToIPv4, BufferToIPv6 } from './helper/BufferToIP';
46
+ export { IPv4ToBuffer, IPv6ToBuffer } from './helper/IPToBuffer';
47
+ export { BufferToFloat32, BufferToInt16, BufferToInt32, BufferToInt64, BufferToInt8, BufferToUInt16, BufferToUInt32, BufferToUInt64, BufferToUInt8 } from './helper/BufferToNumber';
48
+ export { HexToFloat32, HexToInt16, HexToInt32, HexToInt64, HexToInt8, HexToUInt16, HexToUInt32, HexToUInt64, HexToUInt8 } from './helper/HexToNumber';
49
+ export { Int16ToBERBuffer, Int32ToBERBuffer, Int64ToBERBuffer, Int8ToBERBuffer, UInt16ToBERBuffer, UInt32ToBERBuffer, UInt64ToBERBuffer, UInt8ToBERBuffer } from './helper/NumberToBERBuffer';
50
+ export { Int16ToBERHex, Int32ToBERHex, Int64ToBERHex, Int8ToBERHex, UInt16ToBERHex, UInt32ToBERHex, UInt64ToBERHex, UInt8ToBERHex } from './helper/NumberToBERHex';
51
+ export { Float32ToBuffer, Int16ToBuffer, Int32ToBuffer, Int64ToBuffer, Int8ToBuffer, UInt16ToBuffer, UInt32ToBuffer, UInt64ToBuffer, UInt8ToBuffer } from './helper/NumberToBuffer';
52
+ export { Float32ToHex, Int16ToHex, Int32ToHex, Int64ToHex, Int8ToHex, UInt16ToHex, UInt32ToHex, UInt64ToHex, UInt8ToHex } from './helper/NumberToHex';
package/dist/index.js ADDED
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.UInt16ToBuffer = exports.Int8ToBuffer = exports.Int64ToBuffer = exports.Int32ToBuffer = exports.Int16ToBuffer = exports.Float32ToBuffer = exports.UInt8ToBERHex = exports.UInt64ToBERHex = exports.UInt32ToBERHex = exports.UInt16ToBERHex = exports.Int8ToBERHex = exports.Int64ToBERHex = exports.Int32ToBERHex = exports.Int16ToBERHex = exports.UInt8ToBERBuffer = exports.UInt64ToBERBuffer = exports.UInt32ToBERBuffer = exports.UInt16ToBERBuffer = exports.Int8ToBERBuffer = exports.Int64ToBERBuffer = exports.Int32ToBERBuffer = exports.Int16ToBERBuffer = exports.HexToUInt8 = exports.HexToUInt64 = exports.HexToUInt32 = exports.HexToUInt16 = exports.HexToInt8 = exports.HexToInt64 = exports.HexToInt32 = exports.HexToInt16 = exports.HexToFloat32 = exports.BufferToUInt8 = exports.BufferToUInt64 = exports.BufferToUInt32 = exports.BufferToUInt16 = exports.BufferToInt8 = exports.BufferToInt64 = exports.BufferToInt32 = exports.BufferToInt16 = exports.BufferToFloat32 = exports.IPv6ToBuffer = exports.IPv4ToBuffer = exports.BufferToIPv6 = exports.BufferToIPv4 = exports.HexToBuffer = exports.BufferToHex = exports.StringContentEncodingEnum = exports.FlexibleObject = exports.Codec = exports.BaseHeader = void 0;
18
+ exports.UInt8ToHex = exports.UInt64ToHex = exports.UInt32ToHex = exports.UInt16ToHex = exports.Int8ToHex = exports.Int64ToHex = exports.Int32ToHex = exports.Int16ToHex = exports.Float32ToHex = exports.UInt8ToBuffer = exports.UInt64ToBuffer = exports.UInt32ToBuffer = void 0;
19
+ /**
20
+ * Base header abstract class
21
+ */
22
+ var BaseHeader_1 = require("./abstracts/BaseHeader");
23
+ Object.defineProperty(exports, "BaseHeader", { enumerable: true, get: function () { return BaseHeader_1.BaseHeader; } });
24
+ /**
25
+ * Network packet codec
26
+ */
27
+ var Codec_1 = require("./Codec");
28
+ Object.defineProperty(exports, "Codec", { enumerable: true, get: function () { return Codec_1.Codec; } });
29
+ /**
30
+ * Flexible Object for codec data instance
31
+ */
32
+ var FlexibleObject_1 = require("./lib/FlexibleObject");
33
+ Object.defineProperty(exports, "FlexibleObject", { enumerable: true, get: function () { return FlexibleObject_1.FlexibleObject; } });
34
+ /**
35
+ * Enums
36
+ */
37
+ var StringContentEncodingEnum_1 = require("./lib/StringContentEncodingEnum");
38
+ Object.defineProperty(exports, "StringContentEncodingEnum", { enumerable: true, get: function () { return StringContentEncodingEnum_1.StringContentEncodingEnum; } });
39
+ /**
40
+ * Protocol header classes (Ethernet, IPv4/6, TCP/UDP, ARP, TLS, GOOSE, SV, IEC104, ...)
41
+ */
42
+ __exportStar(require("./PacketHeaders"), exports);
43
+ /**
44
+ * Helper conversion functions
45
+ */
46
+ var BufferToHex_1 = require("./helper/BufferToHex");
47
+ Object.defineProperty(exports, "BufferToHex", { enumerable: true, get: function () { return BufferToHex_1.BufferToHex; } });
48
+ var HexToBuffer_1 = require("./helper/HexToBuffer");
49
+ Object.defineProperty(exports, "HexToBuffer", { enumerable: true, get: function () { return HexToBuffer_1.HexToBuffer; } });
50
+ var BufferToIP_1 = require("./helper/BufferToIP");
51
+ Object.defineProperty(exports, "BufferToIPv4", { enumerable: true, get: function () { return BufferToIP_1.BufferToIPv4; } });
52
+ Object.defineProperty(exports, "BufferToIPv6", { enumerable: true, get: function () { return BufferToIP_1.BufferToIPv6; } });
53
+ var IPToBuffer_1 = require("./helper/IPToBuffer");
54
+ Object.defineProperty(exports, "IPv4ToBuffer", { enumerable: true, get: function () { return IPToBuffer_1.IPv4ToBuffer; } });
55
+ Object.defineProperty(exports, "IPv6ToBuffer", { enumerable: true, get: function () { return IPToBuffer_1.IPv6ToBuffer; } });
56
+ var BufferToNumber_1 = require("./helper/BufferToNumber");
57
+ Object.defineProperty(exports, "BufferToFloat32", { enumerable: true, get: function () { return BufferToNumber_1.BufferToFloat32; } });
58
+ Object.defineProperty(exports, "BufferToInt16", { enumerable: true, get: function () { return BufferToNumber_1.BufferToInt16; } });
59
+ Object.defineProperty(exports, "BufferToInt32", { enumerable: true, get: function () { return BufferToNumber_1.BufferToInt32; } });
60
+ Object.defineProperty(exports, "BufferToInt64", { enumerable: true, get: function () { return BufferToNumber_1.BufferToInt64; } });
61
+ Object.defineProperty(exports, "BufferToInt8", { enumerable: true, get: function () { return BufferToNumber_1.BufferToInt8; } });
62
+ Object.defineProperty(exports, "BufferToUInt16", { enumerable: true, get: function () { return BufferToNumber_1.BufferToUInt16; } });
63
+ Object.defineProperty(exports, "BufferToUInt32", { enumerable: true, get: function () { return BufferToNumber_1.BufferToUInt32; } });
64
+ Object.defineProperty(exports, "BufferToUInt64", { enumerable: true, get: function () { return BufferToNumber_1.BufferToUInt64; } });
65
+ Object.defineProperty(exports, "BufferToUInt8", { enumerable: true, get: function () { return BufferToNumber_1.BufferToUInt8; } });
66
+ var HexToNumber_1 = require("./helper/HexToNumber");
67
+ Object.defineProperty(exports, "HexToFloat32", { enumerable: true, get: function () { return HexToNumber_1.HexToFloat32; } });
68
+ Object.defineProperty(exports, "HexToInt16", { enumerable: true, get: function () { return HexToNumber_1.HexToInt16; } });
69
+ Object.defineProperty(exports, "HexToInt32", { enumerable: true, get: function () { return HexToNumber_1.HexToInt32; } });
70
+ Object.defineProperty(exports, "HexToInt64", { enumerable: true, get: function () { return HexToNumber_1.HexToInt64; } });
71
+ Object.defineProperty(exports, "HexToInt8", { enumerable: true, get: function () { return HexToNumber_1.HexToInt8; } });
72
+ Object.defineProperty(exports, "HexToUInt16", { enumerable: true, get: function () { return HexToNumber_1.HexToUInt16; } });
73
+ Object.defineProperty(exports, "HexToUInt32", { enumerable: true, get: function () { return HexToNumber_1.HexToUInt32; } });
74
+ Object.defineProperty(exports, "HexToUInt64", { enumerable: true, get: function () { return HexToNumber_1.HexToUInt64; } });
75
+ Object.defineProperty(exports, "HexToUInt8", { enumerable: true, get: function () { return HexToNumber_1.HexToUInt8; } });
76
+ var NumberToBERBuffer_1 = require("./helper/NumberToBERBuffer");
77
+ Object.defineProperty(exports, "Int16ToBERBuffer", { enumerable: true, get: function () { return NumberToBERBuffer_1.Int16ToBERBuffer; } });
78
+ Object.defineProperty(exports, "Int32ToBERBuffer", { enumerable: true, get: function () { return NumberToBERBuffer_1.Int32ToBERBuffer; } });
79
+ Object.defineProperty(exports, "Int64ToBERBuffer", { enumerable: true, get: function () { return NumberToBERBuffer_1.Int64ToBERBuffer; } });
80
+ Object.defineProperty(exports, "Int8ToBERBuffer", { enumerable: true, get: function () { return NumberToBERBuffer_1.Int8ToBERBuffer; } });
81
+ Object.defineProperty(exports, "UInt16ToBERBuffer", { enumerable: true, get: function () { return NumberToBERBuffer_1.UInt16ToBERBuffer; } });
82
+ Object.defineProperty(exports, "UInt32ToBERBuffer", { enumerable: true, get: function () { return NumberToBERBuffer_1.UInt32ToBERBuffer; } });
83
+ Object.defineProperty(exports, "UInt64ToBERBuffer", { enumerable: true, get: function () { return NumberToBERBuffer_1.UInt64ToBERBuffer; } });
84
+ Object.defineProperty(exports, "UInt8ToBERBuffer", { enumerable: true, get: function () { return NumberToBERBuffer_1.UInt8ToBERBuffer; } });
85
+ var NumberToBERHex_1 = require("./helper/NumberToBERHex");
86
+ Object.defineProperty(exports, "Int16ToBERHex", { enumerable: true, get: function () { return NumberToBERHex_1.Int16ToBERHex; } });
87
+ Object.defineProperty(exports, "Int32ToBERHex", { enumerable: true, get: function () { return NumberToBERHex_1.Int32ToBERHex; } });
88
+ Object.defineProperty(exports, "Int64ToBERHex", { enumerable: true, get: function () { return NumberToBERHex_1.Int64ToBERHex; } });
89
+ Object.defineProperty(exports, "Int8ToBERHex", { enumerable: true, get: function () { return NumberToBERHex_1.Int8ToBERHex; } });
90
+ Object.defineProperty(exports, "UInt16ToBERHex", { enumerable: true, get: function () { return NumberToBERHex_1.UInt16ToBERHex; } });
91
+ Object.defineProperty(exports, "UInt32ToBERHex", { enumerable: true, get: function () { return NumberToBERHex_1.UInt32ToBERHex; } });
92
+ Object.defineProperty(exports, "UInt64ToBERHex", { enumerable: true, get: function () { return NumberToBERHex_1.UInt64ToBERHex; } });
93
+ Object.defineProperty(exports, "UInt8ToBERHex", { enumerable: true, get: function () { return NumberToBERHex_1.UInt8ToBERHex; } });
94
+ var NumberToBuffer_1 = require("./helper/NumberToBuffer");
95
+ Object.defineProperty(exports, "Float32ToBuffer", { enumerable: true, get: function () { return NumberToBuffer_1.Float32ToBuffer; } });
96
+ Object.defineProperty(exports, "Int16ToBuffer", { enumerable: true, get: function () { return NumberToBuffer_1.Int16ToBuffer; } });
97
+ Object.defineProperty(exports, "Int32ToBuffer", { enumerable: true, get: function () { return NumberToBuffer_1.Int32ToBuffer; } });
98
+ Object.defineProperty(exports, "Int64ToBuffer", { enumerable: true, get: function () { return NumberToBuffer_1.Int64ToBuffer; } });
99
+ Object.defineProperty(exports, "Int8ToBuffer", { enumerable: true, get: function () { return NumberToBuffer_1.Int8ToBuffer; } });
100
+ Object.defineProperty(exports, "UInt16ToBuffer", { enumerable: true, get: function () { return NumberToBuffer_1.UInt16ToBuffer; } });
101
+ Object.defineProperty(exports, "UInt32ToBuffer", { enumerable: true, get: function () { return NumberToBuffer_1.UInt32ToBuffer; } });
102
+ Object.defineProperty(exports, "UInt64ToBuffer", { enumerable: true, get: function () { return NumberToBuffer_1.UInt64ToBuffer; } });
103
+ Object.defineProperty(exports, "UInt8ToBuffer", { enumerable: true, get: function () { return NumberToBuffer_1.UInt8ToBuffer; } });
104
+ var NumberToHex_1 = require("./helper/NumberToHex");
105
+ Object.defineProperty(exports, "Float32ToHex", { enumerable: true, get: function () { return NumberToHex_1.Float32ToHex; } });
106
+ Object.defineProperty(exports, "Int16ToHex", { enumerable: true, get: function () { return NumberToHex_1.Int16ToHex; } });
107
+ Object.defineProperty(exports, "Int32ToHex", { enumerable: true, get: function () { return NumberToHex_1.Int32ToHex; } });
108
+ Object.defineProperty(exports, "Int64ToHex", { enumerable: true, get: function () { return NumberToHex_1.Int64ToHex; } });
109
+ Object.defineProperty(exports, "Int8ToHex", { enumerable: true, get: function () { return NumberToHex_1.Int8ToHex; } });
110
+ Object.defineProperty(exports, "UInt16ToHex", { enumerable: true, get: function () { return NumberToHex_1.UInt16ToHex; } });
111
+ Object.defineProperty(exports, "UInt32ToHex", { enumerable: true, get: function () { return NumberToHex_1.UInt32ToHex; } });
112
+ Object.defineProperty(exports, "UInt64ToHex", { enumerable: true, get: function () { return NumberToHex_1.UInt64ToHex; } });
113
+ Object.defineProperty(exports, "UInt8ToHex", { enumerable: true, get: function () { return NumberToHex_1.UInt8ToHex; } });
@@ -0,0 +1,27 @@
1
+ export declare class FlexibleObject {
2
+ #private;
3
+ constructor(data?: object, parent?: FlexibleObject, key?: string);
4
+ /**
5
+ * Set object node value
6
+ * @param value
7
+ */
8
+ setValue(value: any): void;
9
+ /**
10
+ * Get object node value
11
+ * @param defaultValue
12
+ * @param onUndefinedCallback
13
+ * @param getPathIndex
14
+ */
15
+ getValue<T = any>(defaultValue?: T, onUndefinedCallback?: (nodePath: string) => void, getPathIndex?: number): T;
16
+ /**
17
+ * Is current object's value undefined
18
+ */
19
+ isUndefined(): boolean;
20
+ /**
21
+ * Get current object path
22
+ * The index parameter indicates array item if this object is an array
23
+ * @param index
24
+ */
25
+ getPath(index?: number): string;
26
+ [p: string]: FlexibleObject;
27
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlexibleObject = void 0;
4
+ class FlexibleObject {
5
+ #parent;
6
+ //This node's key within its parent (root = ''). The dotted path is reconstructed lazily by walking
7
+ //parents in getPath(), instead of storing a per-node paths array. The `[...paths, key]` copy on
8
+ //every child node was a major allocation on the encode input-tree deep-clone (setValue) and the
9
+ //decode field tree; getPath is only called on the cold error-recording path.
10
+ #key;
11
+ #data;
12
+ #undefined = true;
13
+ #markFlexibleObjectDefined() {
14
+ if (!this.#undefined)
15
+ return;
16
+ this.#undefined = false;
17
+ if (this.#parent)
18
+ this.#parent.#markFlexibleObjectDefined();
19
+ }
20
+ constructor(data, parent, key) {
21
+ this.#parent = parent;
22
+ this.#data = {};
23
+ this.#key = key !== undefined ? key : '';
24
+ if (data !== undefined)
25
+ this.setValue(data);
26
+ return new Proxy(this, {
27
+ get: (target, p) => {
28
+ if (this[p])
29
+ return (...args) => this[p](...args);
30
+ if (target.#data[p] === undefined)
31
+ target.#data[p] = new FlexibleObject(target.#data[p], this, p);
32
+ return target.#data[p];
33
+ },
34
+ set: (target, p, newValue) => {
35
+ return false;
36
+ }
37
+ });
38
+ }
39
+ /**
40
+ * Set object node value
41
+ * @param value
42
+ */
43
+ // @ts-ignore
44
+ setValue(value) {
45
+ if (typeof value === 'object' && !Array.isArray(value)) {
46
+ Object.keys(value).forEach((key) => {
47
+ this.#data[key] = new FlexibleObject(this.#data[key], this, key);
48
+ this.#data[key].setValue(value[key]);
49
+ });
50
+ }
51
+ else {
52
+ this.#data = value;
53
+ }
54
+ this.#markFlexibleObjectDefined();
55
+ }
56
+ /**
57
+ * Get object node value
58
+ * @param defaultValue
59
+ * @param onUndefinedCallback
60
+ * @param getPathIndex
61
+ */
62
+ // @ts-ignore
63
+ getValue(defaultValue, onUndefinedCallback, getPathIndex) {
64
+ if (this.#undefined) {
65
+ if (onUndefinedCallback)
66
+ onUndefinedCallback(this.getPath(getPathIndex));
67
+ if (defaultValue !== undefined) {
68
+ return defaultValue;
69
+ }
70
+ return undefined;
71
+ }
72
+ if (typeof this.#data === 'object' && !Array.isArray(this.#data)) {
73
+ const dumpObject = {};
74
+ Object.keys(this.#data).forEach((key) => {
75
+ const dumpResult = this.#data[key].getValue();
76
+ if (dumpResult === undefined)
77
+ return;
78
+ dumpObject[key] = dumpResult;
79
+ });
80
+ return dumpObject;
81
+ }
82
+ else {
83
+ return this.#undefined ? undefined : this.#data;
84
+ }
85
+ }
86
+ /**
87
+ * Is current object's value undefined
88
+ */
89
+ // @ts-ignore
90
+ isUndefined() {
91
+ return this.#undefined;
92
+ }
93
+ /**
94
+ * Get current object path
95
+ * The index parameter indicates array item if this object is an array
96
+ * @param index
97
+ */
98
+ // @ts-ignore
99
+ getPath(index) {
100
+ //Walk parents to rebuild the dotted path (cold path: only error recording calls this).
101
+ const parts = [];
102
+ let node = this;
103
+ while (node !== undefined && node.#parent !== undefined) {
104
+ parts.unshift(node.#key);
105
+ node = node.#parent;
106
+ }
107
+ const objPath = parts.join('.');
108
+ if (index === undefined)
109
+ return objPath;
110
+ return `${objPath}[${index}]`;
111
+ }
112
+ }
113
+ exports.FlexibleObject = FlexibleObject;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Get BER encoded integer real length from buffer
3
+ * @param buffer
4
+ * @constructor
5
+ */
6
+ export declare function GetBERIntegerLengthFromBuffer(buffer: Buffer): number;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetBERIntegerLengthFromBuffer = GetBERIntegerLengthFromBuffer;
4
+ /**
5
+ * Get BER encoded integer real length from buffer
6
+ * @param buffer
7
+ * @constructor
8
+ */
9
+ function GetBERIntegerLengthFromBuffer(buffer) {
10
+ if (buffer[0] === 0) {
11
+ return buffer.length - 1;
12
+ }
13
+ else {
14
+ return buffer.length;
15
+ }
16
+ }
@@ -0,0 +1,13 @@
1
+ import { PostHandlerItem } from '../types/PostHandlerItem';
2
+ /**
3
+ * Process packet post encode handlers
4
+ * @param handlerItemsArray
5
+ * @constructor
6
+ */
7
+ export declare function ProcessPacketEncodePostHandlers(handlerItemsArray: PostHandlerItem[][]): PostHandlerItem[];
8
+ /**
9
+ * Process packet post decode handlers
10
+ * @param handlerItemsArray
11
+ * @constructor
12
+ */
13
+ export declare function ProcessPacketDecodePostHandlers(handlerItemsArray: PostHandlerItem[][]): PostHandlerItem[];