@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.
- package/CHANGELOG.md +17 -0
- package/LICENSE +21 -0
- package/README.md +352 -0
- package/README.zh-CN.md +342 -0
- package/dist/Codec.d.ts +133 -0
- package/dist/Codec.js +632 -0
- package/dist/PacketHeaders.d.ts +189 -0
- package/dist/PacketHeaders.js +384 -0
- package/dist/abstracts/BaseHeader.d.ts +325 -0
- package/dist/abstracts/BaseHeader.js +734 -0
- package/dist/errors/CodecSchemaValidateError.d.ts +4 -0
- package/dist/errors/CodecSchemaValidateError.js +11 -0
- package/dist/headers/ADSAMS.d.ts +33 -0
- package/dist/headers/ADSAMS.js +208 -0
- package/dist/headers/AH.d.ts +28 -0
- package/dist/headers/AH.js +137 -0
- package/dist/headers/AMQP.d.ts +31 -0
- package/dist/headers/AMQP.js +316 -0
- package/dist/headers/ARP.d.ts +26 -0
- package/dist/headers/ARP.js +243 -0
- package/dist/headers/BACnetIP.d.ts +27 -0
- package/dist/headers/BACnetIP.js +97 -0
- package/dist/headers/BFD.d.ts +28 -0
- package/dist/headers/BFD.js +155 -0
- package/dist/headers/BGP.d.ts +27 -0
- package/dist/headers/BGP.js +111 -0
- package/dist/headers/BSAPIP.d.ts +33 -0
- package/dist/headers/BSAPIP.js +78 -0
- package/dist/headers/Babel.d.ts +32 -0
- package/dist/headers/Babel.js +224 -0
- package/dist/headers/BitTorrent.d.ts +28 -0
- package/dist/headers/BitTorrent.js +72 -0
- package/dist/headers/C37118.d.ts +26 -0
- package/dist/headers/C37118.js +147 -0
- package/dist/headers/CAPWAP.d.ts +38 -0
- package/dist/headers/CAPWAP.js +275 -0
- package/dist/headers/CDP.d.ts +25 -0
- package/dist/headers/CDP.js +117 -0
- package/dist/headers/CMS.d.ts +33 -0
- package/dist/headers/CMS.js +238 -0
- package/dist/headers/COTP.d.ts +30 -0
- package/dist/headers/COTP.js +193 -0
- package/dist/headers/CassandraCQL.d.ts +28 -0
- package/dist/headers/CassandraCQL.js +117 -0
- package/dist/headers/CoAP.d.ts +29 -0
- package/dist/headers/CoAP.js +140 -0
- package/dist/headers/Codesys.d.ts +32 -0
- package/dist/headers/Codesys.js +119 -0
- package/dist/headers/Collectd.d.ts +29 -0
- package/dist/headers/Collectd.js +154 -0
- package/dist/headers/DCCP.d.ts +30 -0
- package/dist/headers/DCCP.js +204 -0
- package/dist/headers/DHCP.d.ts +26 -0
- package/dist/headers/DHCP.js +148 -0
- package/dist/headers/DHCPFailover.d.ts +30 -0
- package/dist/headers/DHCPFailover.js +104 -0
- package/dist/headers/DHCPv6.d.ts +25 -0
- package/dist/headers/DHCPv6.js +145 -0
- package/dist/headers/DNP3.d.ts +27 -0
- package/dist/headers/DNP3.js +150 -0
- package/dist/headers/DNS.d.ts +55 -0
- package/dist/headers/DNS.js +309 -0
- package/dist/headers/DTLS.d.ts +33 -0
- package/dist/headers/DTLS.js +142 -0
- package/dist/headers/Diameter.d.ts +34 -0
- package/dist/headers/Diameter.js +229 -0
- package/dist/headers/EAPOL.d.ts +32 -0
- package/dist/headers/EAPOL.js +135 -0
- package/dist/headers/EIGRP.d.ts +28 -0
- package/dist/headers/EIGRP.js +165 -0
- package/dist/headers/ENIP.d.ts +31 -0
- package/dist/headers/ENIP.js +164 -0
- package/dist/headers/ESP.d.ts +27 -0
- package/dist/headers/ESP.js +140 -0
- package/dist/headers/Elasticsearch.d.ts +30 -0
- package/dist/headers/Elasticsearch.js +125 -0
- package/dist/headers/EtherCAT.d.ts +35 -0
- package/dist/headers/EtherCAT.js +150 -0
- package/dist/headers/EthernetII.d.ts +28 -0
- package/dist/headers/EthernetII.js +117 -0
- package/dist/headers/FCoE.d.ts +38 -0
- package/dist/headers/FCoE.js +210 -0
- package/dist/headers/FTP.d.ts +34 -0
- package/dist/headers/FTP.js +158 -0
- package/dist/headers/Finger.d.ts +41 -0
- package/dist/headers/Finger.js +135 -0
- package/dist/headers/FoundationFieldbusHSE.d.ts +43 -0
- package/dist/headers/FoundationFieldbusHSE.js +163 -0
- package/dist/headers/GELF.d.ts +35 -0
- package/dist/headers/GELF.js +261 -0
- package/dist/headers/GENEVE.d.ts +26 -0
- package/dist/headers/GENEVE.js +209 -0
- package/dist/headers/GESRTP.d.ts +32 -0
- package/dist/headers/GESRTP.js +141 -0
- package/dist/headers/GLBP.d.ts +29 -0
- package/dist/headers/GLBP.js +159 -0
- package/dist/headers/GRE.d.ts +27 -0
- package/dist/headers/GRE.js +181 -0
- package/dist/headers/GTPU.d.ts +25 -0
- package/dist/headers/GTPU.js +203 -0
- package/dist/headers/GTPv2C.d.ts +30 -0
- package/dist/headers/GTPv2C.js +281 -0
- package/dist/headers/GitProtocol.d.ts +34 -0
- package/dist/headers/GitProtocol.js +141 -0
- package/dist/headers/Goose.d.ts +115 -0
- package/dist/headers/Goose.js +1067 -0
- package/dist/headers/Gopher.d.ts +43 -0
- package/dist/headers/Gopher.js +182 -0
- package/dist/headers/HARTIP.d.ts +30 -0
- package/dist/headers/HARTIP.js +145 -0
- package/dist/headers/HSR.d.ts +27 -0
- package/dist/headers/HSR.js +105 -0
- package/dist/headers/HSRP.d.ts +26 -0
- package/dist/headers/HSRP.js +173 -0
- package/dist/headers/HTTP.d.ts +32 -0
- package/dist/headers/HTTP.js +153 -0
- package/dist/headers/HTTP2.d.ts +34 -0
- package/dist/headers/HTTP2.js +190 -0
- package/dist/headers/IAX2.d.ts +33 -0
- package/dist/headers/IAX2.js +274 -0
- package/dist/headers/ICMP.d.ts +15 -0
- package/dist/headers/ICMP.js +148 -0
- package/dist/headers/ICMPv6.d.ts +15 -0
- package/dist/headers/ICMPv6.js +129 -0
- package/dist/headers/IEC104_I_Frame.d.ts +23 -0
- package/dist/headers/IEC104_I_Frame.js +6489 -0
- package/dist/headers/IEC104_S_Frame.d.ts +26 -0
- package/dist/headers/IEC104_S_Frame.js +135 -0
- package/dist/headers/IEC104_U_Frame.d.ts +27 -0
- package/dist/headers/IEC104_U_Frame.js +176 -0
- package/dist/headers/IEC61850SampledValues.d.ts +20 -0
- package/dist/headers/IEC61850SampledValues.js +420 -0
- package/dist/headers/IGMP.d.ts +31 -0
- package/dist/headers/IGMP.js +274 -0
- package/dist/headers/IMAP.d.ts +32 -0
- package/dist/headers/IMAP.js +185 -0
- package/dist/headers/IPFIX.d.ts +29 -0
- package/dist/headers/IPFIX.js +156 -0
- package/dist/headers/IPv4.d.ts +20 -0
- package/dist/headers/IPv4.js +370 -0
- package/dist/headers/IPv6.d.ts +29 -0
- package/dist/headers/IPv6.js +209 -0
- package/dist/headers/IPv6HopByHopOptions.d.ts +81 -0
- package/dist/headers/IPv6HopByHopOptions.js +495 -0
- package/dist/headers/IRC.d.ts +34 -0
- package/dist/headers/IRC.js +175 -0
- package/dist/headers/ISAKMP.d.ts +29 -0
- package/dist/headers/ISAKMP.js +197 -0
- package/dist/headers/ISCSI.d.ts +39 -0
- package/dist/headers/ISCSI.js +289 -0
- package/dist/headers/ISIS.d.ts +25 -0
- package/dist/headers/ISIS.js +79 -0
- package/dist/headers/ISOSession.d.ts +27 -0
- package/dist/headers/ISOSession.js +343 -0
- package/dist/headers/Ident.d.ts +42 -0
- package/dist/headers/Ident.js +184 -0
- package/dist/headers/KNXnetIP.d.ts +30 -0
- package/dist/headers/KNXnetIP.js +135 -0
- package/dist/headers/Kafka.d.ts +35 -0
- package/dist/headers/Kafka.js +128 -0
- package/dist/headers/Kerberos.d.ts +30 -0
- package/dist/headers/Kerberos.js +217 -0
- package/dist/headers/L2TP.d.ts +26 -0
- package/dist/headers/L2TP.js +297 -0
- package/dist/headers/LACP.d.ts +31 -0
- package/dist/headers/LACP.js +151 -0
- package/dist/headers/LDAP.d.ts +31 -0
- package/dist/headers/LDAP.js +226 -0
- package/dist/headers/LDP.d.ts +31 -0
- package/dist/headers/LDP.js +138 -0
- package/dist/headers/LISP.d.ts +30 -0
- package/dist/headers/LISP.js +103 -0
- package/dist/headers/LLC.d.ts +27 -0
- package/dist/headers/LLC.js +81 -0
- package/dist/headers/LLDP.d.ts +26 -0
- package/dist/headers/LLDP.js +126 -0
- package/dist/headers/LLMNR.d.ts +23 -0
- package/dist/headers/LLMNR.js +40 -0
- package/dist/headers/LPD.d.ts +31 -0
- package/dist/headers/LPD.js +159 -0
- package/dist/headers/MACsec.d.ts +34 -0
- package/dist/headers/MACsec.js +178 -0
- package/dist/headers/MDNS.d.ts +26 -0
- package/dist/headers/MDNS.js +45 -0
- package/dist/headers/MGCP.d.ts +30 -0
- package/dist/headers/MGCP.js +155 -0
- package/dist/headers/MMS.d.ts +29 -0
- package/dist/headers/MMS.js +243 -0
- package/dist/headers/MPLS.d.ts +31 -0
- package/dist/headers/MPLS.js +145 -0
- package/dist/headers/MQTT.d.ts +30 -0
- package/dist/headers/MQTT.js +173 -0
- package/dist/headers/MQTTSN.d.ts +34 -0
- package/dist/headers/MQTTSN.js +177 -0
- package/dist/headers/MarkerProtocol.d.ts +32 -0
- package/dist/headers/MarkerProtocol.js +153 -0
- package/dist/headers/Megaco.d.ts +32 -0
- package/dist/headers/Megaco.js +144 -0
- package/dist/headers/Memcached.d.ts +44 -0
- package/dist/headers/Memcached.js +285 -0
- package/dist/headers/ModbusTCP.d.ts +25 -0
- package/dist/headers/ModbusTCP.js +99 -0
- package/dist/headers/ModbusUDP.d.ts +26 -0
- package/dist/headers/ModbusUDP.js +100 -0
- package/dist/headers/MongoDB.d.ts +33 -0
- package/dist/headers/MongoDB.js +143 -0
- package/dist/headers/MySQL.d.ts +30 -0
- package/dist/headers/MySQL.js +114 -0
- package/dist/headers/NATS.d.ts +29 -0
- package/dist/headers/NATS.js +135 -0
- package/dist/headers/NBDS.d.ts +34 -0
- package/dist/headers/NBDS.js +176 -0
- package/dist/headers/NBNS.d.ts +34 -0
- package/dist/headers/NBNS.js +78 -0
- package/dist/headers/NBSS.d.ts +36 -0
- package/dist/headers/NBSS.js +137 -0
- package/dist/headers/NFS.d.ts +36 -0
- package/dist/headers/NFS.js +273 -0
- package/dist/headers/NHRP.d.ts +32 -0
- package/dist/headers/NHRP.js +154 -0
- package/dist/headers/NNTP.d.ts +35 -0
- package/dist/headers/NNTP.js +162 -0
- package/dist/headers/NTP.d.ts +18 -0
- package/dist/headers/NTP.js +73 -0
- package/dist/headers/NetFlowV5.d.ts +28 -0
- package/dist/headers/NetFlowV5.js +205 -0
- package/dist/headers/OLSR.d.ts +31 -0
- package/dist/headers/OLSR.js +213 -0
- package/dist/headers/OPCUA.d.ts +33 -0
- package/dist/headers/OPCUA.js +165 -0
- package/dist/headers/OPCUAPubSub.d.ts +33 -0
- package/dist/headers/OPCUAPubSub.js +144 -0
- package/dist/headers/OSPF.d.ts +31 -0
- package/dist/headers/OSPF.js +365 -0
- package/dist/headers/OmronFINS.d.ts +31 -0
- package/dist/headers/OmronFINS.js +90 -0
- package/dist/headers/OpenFlow.d.ts +30 -0
- package/dist/headers/OpenFlow.js +113 -0
- package/dist/headers/OpenVPN.d.ts +35 -0
- package/dist/headers/OpenVPN.js +214 -0
- package/dist/headers/PCWorx.d.ts +35 -0
- package/dist/headers/PCWorx.js +115 -0
- package/dist/headers/PIM.d.ts +27 -0
- package/dist/headers/PIM.js +129 -0
- package/dist/headers/POP3.d.ts +31 -0
- package/dist/headers/POP3.js +152 -0
- package/dist/headers/POWERLINK.d.ts +28 -0
- package/dist/headers/POWERLINK.js +116 -0
- package/dist/headers/PPPoEDiscovery.d.ts +29 -0
- package/dist/headers/PPPoEDiscovery.js +198 -0
- package/dist/headers/PPPoESession.d.ts +28 -0
- package/dist/headers/PPPoESession.js +125 -0
- package/dist/headers/PPTP.d.ts +30 -0
- package/dist/headers/PPTP.js +122 -0
- package/dist/headers/PROFINETRT.d.ts +28 -0
- package/dist/headers/PROFINETRT.js +74 -0
- package/dist/headers/PTP.d.ts +34 -0
- package/dist/headers/PTP.js +213 -0
- package/dist/headers/PostgreSQL.d.ts +40 -0
- package/dist/headers/PostgreSQL.js +236 -0
- package/dist/headers/QUIC.d.ts +34 -0
- package/dist/headers/QUIC.js +308 -0
- package/dist/headers/RADIUS.d.ts +24 -0
- package/dist/headers/RADIUS.js +138 -0
- package/dist/headers/RDP.d.ts +27 -0
- package/dist/headers/RDP.js +93 -0
- package/dist/headers/RFB.d.ts +39 -0
- package/dist/headers/RFB.js +151 -0
- package/dist/headers/RGoose.d.ts +72 -0
- package/dist/headers/RGoose.js +340 -0
- package/dist/headers/RIP.d.ts +29 -0
- package/dist/headers/RIP.js +133 -0
- package/dist/headers/RIPng.d.ts +26 -0
- package/dist/headers/RIPng.js +140 -0
- package/dist/headers/RMCP.d.ts +26 -0
- package/dist/headers/RMCP.js +155 -0
- package/dist/headers/RSVP.d.ts +31 -0
- package/dist/headers/RSVP.js +263 -0
- package/dist/headers/RTCP.d.ts +34 -0
- package/dist/headers/RTCP.js +217 -0
- package/dist/headers/RTP.d.ts +33 -0
- package/dist/headers/RTP.js +291 -0
- package/dist/headers/RTPS.d.ts +33 -0
- package/dist/headers/RTPS.js +182 -0
- package/dist/headers/RTSP.d.ts +36 -0
- package/dist/headers/RTSP.js +184 -0
- package/dist/headers/RawData.d.ts +17 -0
- package/dist/headers/RawData.js +43 -0
- package/dist/headers/Redis.d.ts +32 -0
- package/dist/headers/Redis.js +202 -0
- package/dist/headers/Rlogin.d.ts +42 -0
- package/dist/headers/Rlogin.js +139 -0
- package/dist/headers/Rsync.d.ts +28 -0
- package/dist/headers/Rsync.js +117 -0
- package/dist/headers/S7comm.d.ts +36 -0
- package/dist/headers/S7comm.js +244 -0
- package/dist/headers/SCTP.d.ts +35 -0
- package/dist/headers/SCTP.js +174 -0
- package/dist/headers/SFlow.d.ts +29 -0
- package/dist/headers/SFlow.js +242 -0
- package/dist/headers/SIP.d.ts +27 -0
- package/dist/headers/SIP.js +146 -0
- package/dist/headers/SLMP.d.ts +36 -0
- package/dist/headers/SLMP.js +154 -0
- package/dist/headers/SLP.d.ts +30 -0
- package/dist/headers/SLP.js +207 -0
- package/dist/headers/SLPv1.d.ts +32 -0
- package/dist/headers/SLPv1.js +138 -0
- package/dist/headers/SMB1.d.ts +37 -0
- package/dist/headers/SMB1.js +200 -0
- package/dist/headers/SMB2.d.ts +36 -0
- package/dist/headers/SMB2.js +203 -0
- package/dist/headers/SMPP.d.ts +33 -0
- package/dist/headers/SMPP.js +119 -0
- package/dist/headers/SMTP.d.ts +33 -0
- package/dist/headers/SMTP.js +157 -0
- package/dist/headers/SNAP.d.ts +22 -0
- package/dist/headers/SNAP.js +68 -0
- package/dist/headers/SNMP.d.ts +28 -0
- package/dist/headers/SNMP.js +302 -0
- package/dist/headers/SOCKS4.d.ts +42 -0
- package/dist/headers/SOCKS4.js +302 -0
- package/dist/headers/SOCKS5.d.ts +45 -0
- package/dist/headers/SOCKS5.js +223 -0
- package/dist/headers/SSDP.d.ts +27 -0
- package/dist/headers/SSDP.js +161 -0
- package/dist/headers/SSH.d.ts +44 -0
- package/dist/headers/SSH.js +274 -0
- package/dist/headers/STOMP.d.ts +48 -0
- package/dist/headers/STOMP.js +177 -0
- package/dist/headers/STP.d.ts +26 -0
- package/dist/headers/STP.js +150 -0
- package/dist/headers/STUN.d.ts +25 -0
- package/dist/headers/STUN.js +183 -0
- package/dist/headers/SercosIII.d.ts +43 -0
- package/dist/headers/SercosIII.js +199 -0
- package/dist/headers/Skinny.d.ts +32 -0
- package/dist/headers/Skinny.js +139 -0
- package/dist/headers/StatsD.d.ts +27 -0
- package/dist/headers/StatsD.js +134 -0
- package/dist/headers/SunRPC.d.ts +34 -0
- package/dist/headers/SunRPC.js +268 -0
- package/dist/headers/Syslog.d.ts +21 -0
- package/dist/headers/Syslog.js +91 -0
- package/dist/headers/TCP.d.ts +19 -0
- package/dist/headers/TCP.js +905 -0
- package/dist/headers/TFTP.d.ts +28 -0
- package/dist/headers/TFTP.js +224 -0
- package/dist/headers/TLS_Alert.d.ts +24 -0
- package/dist/headers/TLS_Alert.js +639 -0
- package/dist/headers/TLS_ApplicationData.d.ts +24 -0
- package/dist/headers/TLS_ApplicationData.js +170 -0
- package/dist/headers/TLS_ChangeCipherSpec.d.ts +23 -0
- package/dist/headers/TLS_ChangeCipherSpec.js +168 -0
- package/dist/headers/TLS_Handshake.d.ts +65 -0
- package/dist/headers/TLS_Handshake.js +860 -0
- package/dist/headers/TLS_Heartbeat.d.ts +27 -0
- package/dist/headers/TLS_Heartbeat.js +247 -0
- package/dist/headers/TPKT.d.ts +26 -0
- package/dist/headers/TPKT.js +99 -0
- package/dist/headers/TacacsPlus.d.ts +27 -0
- package/dist/headers/TacacsPlus.js +133 -0
- package/dist/headers/Telnet.d.ts +40 -0
- package/dist/headers/Telnet.js +193 -0
- package/dist/headers/Teredo.d.ts +40 -0
- package/dist/headers/Teredo.js +251 -0
- package/dist/headers/TimeProtocol.d.ts +25 -0
- package/dist/headers/TimeProtocol.js +53 -0
- package/dist/headers/UDP.d.ts +19 -0
- package/dist/headers/UDP.js +171 -0
- package/dist/headers/VLAN_802dot1Q.d.ts +24 -0
- package/dist/headers/VLAN_802dot1Q.js +96 -0
- package/dist/headers/VRRP.d.ts +26 -0
- package/dist/headers/VRRP.js +309 -0
- package/dist/headers/VXLAN.d.ts +24 -0
- package/dist/headers/VXLAN.js +75 -0
- package/dist/headers/WCCP.d.ts +29 -0
- package/dist/headers/WCCP.js +117 -0
- package/dist/headers/WHOIS.d.ts +37 -0
- package/dist/headers/WHOIS.js +126 -0
- package/dist/headers/WSDiscovery.d.ts +29 -0
- package/dist/headers/WSDiscovery.js +118 -0
- package/dist/headers/WakeOnLAN.d.ts +30 -0
- package/dist/headers/WakeOnLAN.js +126 -0
- package/dist/headers/WebSocket.d.ts +26 -0
- package/dist/headers/WebSocket.js +173 -0
- package/dist/headers/WireGuard.d.ts +38 -0
- package/dist/headers/WireGuard.js +216 -0
- package/dist/headers/XMPP.d.ts +37 -0
- package/dist/headers/XMPP.js +149 -0
- package/dist/headers/Zabbix.d.ts +35 -0
- package/dist/headers/Zabbix.js +153 -0
- package/dist/headers/cms/AcsiPdu.d.ts +45 -0
- package/dist/headers/cms/AcsiPdu.js +112 -0
- package/dist/headers/cms/PerDecoder.d.ts +68 -0
- package/dist/headers/cms/PerDecoder.js +211 -0
- package/dist/headers/cms/PerReader.d.ts +64 -0
- package/dist/headers/cms/PerReader.js +155 -0
- package/dist/helper/BufferToHex.d.ts +5 -0
- package/dist/helper/BufferToHex.js +10 -0
- package/dist/helper/BufferToIP.d.ts +12 -0
- package/dist/helper/BufferToIP.js +23 -0
- package/dist/helper/BufferToNumber.d.ts +18 -0
- package/dist/helper/BufferToNumber.js +47 -0
- package/dist/helper/HexToBuffer.d.ts +7 -0
- package/dist/helper/HexToBuffer.js +27 -0
- package/dist/helper/HexToNumber.d.ts +18 -0
- package/dist/helper/HexToNumber.js +48 -0
- package/dist/helper/IPToBuffer.d.ts +12 -0
- package/dist/helper/IPToBuffer.js +34 -0
- package/dist/helper/NumberToBERBuffer.d.ts +18 -0
- package/dist/helper/NumberToBERBuffer.js +31 -0
- package/dist/helper/NumberToBERHex.d.ts +18 -0
- package/dist/helper/NumberToBERHex.js +52 -0
- package/dist/helper/NumberToBuffer.d.ts +18 -0
- package/dist/helper/NumberToBuffer.js +38 -0
- package/dist/helper/NumberToHex.d.ts +18 -0
- package/dist/helper/NumberToHex.js +35 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.js +113 -0
- package/dist/lib/FlexibleObject.d.ts +27 -0
- package/dist/lib/FlexibleObject.js +113 -0
- package/dist/lib/GetBERIntegerLengthFromBuffer.d.ts +6 -0
- package/dist/lib/GetBERIntegerLengthFromBuffer.js +16 -0
- package/dist/lib/ProcessPacketPostHandlers.d.ts +13 -0
- package/dist/lib/ProcessPacketPostHandlers.js +53 -0
- package/dist/lib/SortPostHandlers.d.ts +7 -0
- package/dist/lib/SortPostHandlers.js +11 -0
- package/dist/lib/StringContentEncodingEnum.d.ts +10 -0
- package/dist/lib/StringContentEncodingEnum.js +14 -0
- package/dist/schema/ProtocolFieldJSONSchema.d.ts +35 -0
- package/dist/schema/ProtocolFieldJSONSchema.js +2 -0
- package/dist/schema/ProtocolFieldJSONSchemaDefinition.d.ts +2 -0
- package/dist/schema/ProtocolFieldJSONSchemaDefinition.js +2 -0
- package/dist/schema/ProtocolJSONSchema.d.ts +32 -0
- package/dist/schema/ProtocolJSONSchema.js +2 -0
- package/dist/types/CodecData.d.ts +7 -0
- package/dist/types/CodecData.js +2 -0
- package/dist/types/CodecDecodeResult.d.ts +10 -0
- package/dist/types/CodecDecodeResult.js +2 -0
- package/dist/types/CodecEncodeInput.d.ts +2 -0
- package/dist/types/CodecEncodeInput.js +2 -0
- package/dist/types/CodecEncodeResult.d.ts +5 -0
- package/dist/types/CodecEncodeResult.js +2 -0
- package/dist/types/CodecErrorInfo.d.ts +5 -0
- package/dist/types/CodecErrorInfo.js +2 -0
- package/dist/types/CodecModule.d.ts +2 -0
- package/dist/types/CodecModule.js +2 -0
- package/dist/types/CodecModuleConstructor.d.ts +2 -0
- package/dist/types/CodecModuleConstructor.js +2 -0
- package/dist/types/CodecSchema.d.ts +6 -0
- package/dist/types/CodecSchema.js +2 -0
- package/dist/types/DemuxProducer.d.ts +23 -0
- package/dist/types/DemuxProducer.js +2 -0
- package/dist/types/Dissection.d.ts +23 -0
- package/dist/types/Dissection.js +2 -0
- package/dist/types/HeaderTreeNode.d.ts +4 -0
- package/dist/types/HeaderTreeNode.js +2 -0
- package/dist/types/LayerGraph.d.ts +32 -0
- package/dist/types/LayerGraph.js +2 -0
- package/dist/types/PostHandlerItem.d.ts +4 -0
- package/dist/types/PostHandlerItem.js +2 -0
- 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;
|
package/dist/index.d.ts
ADDED
|
@@ -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,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[];
|