@nktkas/hyperliquid 0.22.1 → 0.23.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 (230) hide show
  1. package/README.md +125 -70
  2. package/esm/mod.d.ts +1 -1
  3. package/esm/mod.d.ts.map +1 -1
  4. package/esm/src/base.d.ts +4 -1
  5. package/esm/src/base.d.ts.map +1 -1
  6. package/esm/src/base.js +2 -2
  7. package/esm/src/clients/exchange.d.ts +420 -368
  8. package/esm/src/clients/exchange.d.ts.map +1 -1
  9. package/esm/src/clients/exchange.js +721 -551
  10. package/esm/src/clients/info.d.ts +137 -41
  11. package/esm/src/clients/info.d.ts.map +1 -1
  12. package/esm/src/clients/info.js +124 -28
  13. package/esm/src/clients/multiSign.d.ts +406 -484
  14. package/esm/src/clients/multiSign.d.ts.map +1 -1
  15. package/esm/src/clients/multiSign.js +639 -734
  16. package/esm/src/clients/subscription.d.ts +38 -3
  17. package/esm/src/clients/subscription.d.ts.map +1 -1
  18. package/esm/src/clients/subscription.js +36 -3
  19. package/esm/src/signing/_signTypedData/ethers.d.ts +33 -0
  20. package/esm/src/signing/_signTypedData/ethers.d.ts.map +1 -0
  21. package/esm/src/signing/_signTypedData/ethers.js +12 -0
  22. package/esm/src/signing/_signTypedData/mod.d.ts +35 -0
  23. package/esm/src/signing/_signTypedData/mod.d.ts.map +1 -0
  24. package/esm/src/signing/_signTypedData/mod.js +59 -0
  25. package/esm/src/signing/_signTypedData/private_key.d.ts +26 -0
  26. package/esm/src/signing/_signTypedData/private_key.d.ts.map +1 -0
  27. package/esm/src/signing/_signTypedData/private_key.js +144 -0
  28. package/esm/src/signing/_signTypedData/viem.d.ts +23 -0
  29. package/esm/src/signing/_signTypedData/viem.d.ts.map +1 -0
  30. package/esm/src/signing/_signTypedData/viem.js +6 -0
  31. package/esm/src/signing/_signTypedData/window.d.ts +29 -0
  32. package/esm/src/signing/_signTypedData/window.d.ts.map +1 -0
  33. package/esm/src/signing/_signTypedData/window.js +30 -0
  34. package/esm/src/signing/_sorter.d.ts +128 -0
  35. package/esm/src/signing/_sorter.d.ts.map +1 -0
  36. package/esm/src/{signing.js → signing/_sorter.js} +36 -449
  37. package/esm/src/signing/mod.d.ts +272 -0
  38. package/esm/src/signing/mod.d.ts.map +1 -0
  39. package/esm/src/signing/mod.js +306 -0
  40. package/esm/src/transports/base.d.ts +1 -1
  41. package/esm/src/transports/base.d.ts.map +1 -1
  42. package/esm/src/transports/base.js +2 -2
  43. package/esm/src/transports/http/http_transport.d.ts +9 -15
  44. package/esm/src/transports/http/http_transport.d.ts.map +1 -1
  45. package/esm/src/transports/http/http_transport.js +64 -59
  46. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts +1 -1
  47. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -1
  48. package/esm/src/transports/websocket/_hyperliquid_event_target.js +1 -1
  49. package/esm/src/transports/websocket/_reconnecting_websocket.d.ts.map +1 -1
  50. package/esm/src/transports/websocket/_reconnecting_websocket.js +17 -4
  51. package/esm/src/transports/websocket/_websocket_async_request.d.ts +0 -9
  52. package/esm/src/transports/websocket/_websocket_async_request.d.ts.map +1 -1
  53. package/esm/src/transports/websocket/_websocket_async_request.js +14 -20
  54. package/esm/src/transports/websocket/websocket_transport.d.ts +8 -4
  55. package/esm/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  56. package/esm/src/transports/websocket/websocket_transport.js +83 -54
  57. package/esm/src/types/exchange/requests.d.ts +27 -51
  58. package/esm/src/types/exchange/requests.d.ts.map +1 -1
  59. package/esm/src/types/explorer/requests.d.ts +5 -8
  60. package/esm/src/types/explorer/requests.d.ts.map +1 -1
  61. package/esm/src/types/info/accounts.d.ts +5 -5
  62. package/esm/src/types/info/accounts.d.ts.map +1 -1
  63. package/esm/src/types/info/delegations.d.ts +1 -1
  64. package/esm/src/types/info/delegations.d.ts.map +1 -1
  65. package/esm/src/types/info/orders.d.ts +1 -1
  66. package/esm/src/types/info/orders.d.ts.map +1 -1
  67. package/esm/src/types/info/requests.d.ts +49 -96
  68. package/esm/src/types/info/requests.d.ts.map +1 -1
  69. package/esm/src/types/subscriptions/requests.d.ts +72 -18
  70. package/esm/src/types/subscriptions/requests.d.ts.map +1 -1
  71. package/esm/src/types/subscriptions/responses.d.ts +2 -0
  72. package/esm/src/types/subscriptions/responses.d.ts.map +1 -1
  73. package/package.json +12 -8
  74. package/script/mod.d.ts +1 -1
  75. package/script/mod.d.ts.map +1 -1
  76. package/script/mod.js +13 -23
  77. package/script/src/base.d.ts +4 -1
  78. package/script/src/base.d.ts.map +1 -1
  79. package/script/src/base.js +10 -20
  80. package/script/src/clients/exchange.d.ts +420 -368
  81. package/script/src/clients/exchange.d.ts.map +1 -1
  82. package/script/src/clients/exchange.js +2000 -1840
  83. package/script/src/clients/info.d.ts +137 -41
  84. package/script/src/clients/info.d.ts.map +1 -1
  85. package/script/src/clients/info.js +1296 -1210
  86. package/script/src/clients/multiSign.d.ts +406 -484
  87. package/script/src/clients/multiSign.d.ts.map +1 -1
  88. package/script/src/clients/multiSign.js +2043 -2148
  89. package/script/src/clients/subscription.d.ts +38 -3
  90. package/script/src/clients/subscription.d.ts.map +1 -1
  91. package/script/src/clients/subscription.js +568 -545
  92. package/script/src/signing/_signTypedData/ethers.d.ts +33 -0
  93. package/script/src/signing/_signTypedData/ethers.d.ts.map +1 -0
  94. package/script/src/signing/_signTypedData/ethers.js +16 -0
  95. package/script/src/signing/_signTypedData/mod.d.ts +35 -0
  96. package/script/src/signing/_signTypedData/mod.d.ts.map +1 -0
  97. package/script/src/signing/_signTypedData/mod.js +67 -0
  98. package/script/src/signing/_signTypedData/private_key.d.ts +26 -0
  99. package/script/src/signing/_signTypedData/private_key.d.ts.map +1 -0
  100. package/script/src/signing/_signTypedData/private_key.js +148 -0
  101. package/script/src/signing/_signTypedData/viem.d.ts +23 -0
  102. package/script/src/signing/_signTypedData/viem.d.ts.map +1 -0
  103. package/script/src/signing/_signTypedData/viem.js +9 -0
  104. package/script/src/signing/_signTypedData/window.d.ts +29 -0
  105. package/script/src/signing/_signTypedData/window.d.ts.map +1 -0
  106. package/script/src/signing/_signTypedData/window.js +34 -0
  107. package/script/src/signing/_sorter.d.ts +128 -0
  108. package/script/src/signing/_sorter.d.ts.map +1 -0
  109. package/script/src/signing/_sorter.js +698 -0
  110. package/script/src/signing/mod.d.ts +272 -0
  111. package/script/src/signing/mod.d.ts.map +1 -0
  112. package/script/src/signing/mod.js +331 -0
  113. package/script/src/transports/base.d.ts +1 -1
  114. package/script/src/transports/base.d.ts.map +1 -1
  115. package/script/src/transports/base.js +11 -21
  116. package/script/src/transports/http/http_transport.d.ts +9 -15
  117. package/script/src/transports/http/http_transport.d.ts.map +1 -1
  118. package/script/src/transports/http/http_transport.js +97 -102
  119. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts +1 -1
  120. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -1
  121. package/script/src/transports/websocket/_hyperliquid_event_target.js +51 -61
  122. package/script/src/transports/websocket/_reconnecting_websocket.d.ts.map +1 -1
  123. package/script/src/transports/websocket/_reconnecting_websocket.js +271 -268
  124. package/script/src/transports/websocket/_websocket_async_request.d.ts +0 -9
  125. package/script/src/transports/websocket/_websocket_async_request.d.ts.map +1 -1
  126. package/script/src/transports/websocket/_websocket_async_request.js +157 -174
  127. package/script/src/transports/websocket/websocket_transport.d.ts +8 -4
  128. package/script/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  129. package/script/src/transports/websocket/websocket_transport.js +209 -189
  130. package/script/src/types/exchange/requests.d.ts +27 -51
  131. package/script/src/types/exchange/requests.d.ts.map +1 -1
  132. package/script/src/types/exchange/requests.js +2 -12
  133. package/script/src/types/exchange/responses.js +2 -12
  134. package/script/src/types/explorer/requests.d.ts +5 -8
  135. package/script/src/types/explorer/requests.d.ts.map +1 -1
  136. package/script/src/types/explorer/requests.js +2 -12
  137. package/script/src/types/explorer/responses.js +2 -12
  138. package/script/src/types/info/accounts.d.ts +5 -5
  139. package/script/src/types/info/accounts.d.ts.map +1 -1
  140. package/script/src/types/info/accounts.js +2 -12
  141. package/script/src/types/info/assets.js +2 -12
  142. package/script/src/types/info/delegations.d.ts +1 -1
  143. package/script/src/types/info/delegations.d.ts.map +1 -1
  144. package/script/src/types/info/delegations.js +2 -12
  145. package/script/src/types/info/markets.js +2 -12
  146. package/script/src/types/info/orders.d.ts +1 -1
  147. package/script/src/types/info/orders.d.ts.map +1 -1
  148. package/script/src/types/info/orders.js +2 -12
  149. package/script/src/types/info/requests.d.ts +49 -96
  150. package/script/src/types/info/requests.d.ts.map +1 -1
  151. package/script/src/types/info/requests.js +2 -12
  152. package/script/src/types/info/vaults.js +2 -12
  153. package/script/src/types/mod.js +2 -12
  154. package/script/src/types/subscriptions/requests.d.ts +72 -18
  155. package/script/src/types/subscriptions/requests.d.ts.map +1 -1
  156. package/script/src/types/subscriptions/requests.js +2 -12
  157. package/script/src/types/subscriptions/responses.d.ts +2 -0
  158. package/script/src/types/subscriptions/responses.d.ts.map +1 -1
  159. package/script/src/types/subscriptions/responses.js +2 -12
  160. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts +0 -2
  161. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts.map +0 -1
  162. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.js +0 -1
  163. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts +0 -95
  164. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts.map +0 -1
  165. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.js +0 -10
  166. package/esm/deps/jsr.io/@std/async/1.0.13/delay.d.ts +0 -43
  167. package/esm/deps/jsr.io/@std/async/1.0.13/delay.d.ts.map +0 -1
  168. package/esm/deps/jsr.io/@std/async/1.0.13/delay.js +0 -63
  169. package/esm/deps/jsr.io/@std/bytes/1.0.6/_types.d.ts +0 -9
  170. package/esm/deps/jsr.io/@std/bytes/1.0.6/_types.d.ts.map +0 -1
  171. package/esm/deps/jsr.io/@std/bytes/1.0.6/_types.js +0 -2
  172. package/esm/deps/jsr.io/@std/bytes/1.0.6/concat.d.ts +0 -21
  173. package/esm/deps/jsr.io/@std/bytes/1.0.6/concat.d.ts.map +0 -1
  174. package/esm/deps/jsr.io/@std/bytes/1.0.6/concat.js +0 -32
  175. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts +0 -23
  176. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts.map +0 -1
  177. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common16.js +0 -51
  178. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts +0 -4
  179. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts.map +0 -1
  180. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.js +0 -13
  181. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts +0 -9
  182. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts.map +0 -1
  183. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.js +0 -2
  184. package/esm/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts +0 -39
  185. package/esm/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts.map +0 -1
  186. package/esm/deps/jsr.io/@std/encoding/1.0.10/hex.js +0 -87
  187. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts +0 -9
  188. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts.map +0 -1
  189. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.js +0 -2
  190. package/esm/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts +0 -39
  191. package/esm/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts.map +0 -1
  192. package/esm/deps/jsr.io/@std/msgpack/1.0.3/encode.js +0 -237
  193. package/esm/src/signing.d.ts +0 -463
  194. package/esm/src/signing.d.ts.map +0 -1
  195. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts +0 -2
  196. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts.map +0 -1
  197. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.js +0 -27
  198. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts +0 -95
  199. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts.map +0 -1
  200. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.js +0 -24
  201. package/script/deps/jsr.io/@std/async/1.0.13/delay.d.ts +0 -43
  202. package/script/deps/jsr.io/@std/async/1.0.13/delay.d.ts.map +0 -1
  203. package/script/deps/jsr.io/@std/async/1.0.13/delay.js +0 -76
  204. package/script/deps/jsr.io/@std/bytes/1.0.6/_types.d.ts +0 -9
  205. package/script/deps/jsr.io/@std/bytes/1.0.6/_types.d.ts.map +0 -1
  206. package/script/deps/jsr.io/@std/bytes/1.0.6/_types.js +0 -13
  207. package/script/deps/jsr.io/@std/bytes/1.0.6/concat.d.ts +0 -21
  208. package/script/deps/jsr.io/@std/bytes/1.0.6/concat.d.ts.map +0 -1
  209. package/script/deps/jsr.io/@std/bytes/1.0.6/concat.js +0 -45
  210. package/script/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts +0 -23
  211. package/script/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts.map +0 -1
  212. package/script/deps/jsr.io/@std/encoding/1.0.10/_common16.js +0 -67
  213. package/script/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts +0 -4
  214. package/script/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts.map +0 -1
  215. package/script/deps/jsr.io/@std/encoding/1.0.10/_common_detach.js +0 -26
  216. package/script/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts +0 -9
  217. package/script/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts.map +0 -1
  218. package/script/deps/jsr.io/@std/encoding/1.0.10/_types.js +0 -13
  219. package/script/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts +0 -39
  220. package/script/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts.map +0 -1
  221. package/script/deps/jsr.io/@std/encoding/1.0.10/hex.js +0 -101
  222. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts +0 -9
  223. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts.map +0 -1
  224. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.js +0 -13
  225. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts +0 -39
  226. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts.map +0 -1
  227. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.js +0 -250
  228. package/script/src/signing.d.ts +0 -463
  229. package/script/src/signing.d.ts.map +0 -1
  230. package/script/src/signing.js +0 -1129
@@ -1,250 +0,0 @@
1
- // Copyright 2018-2025 the Deno authors. MIT license.
2
- // This module is browser compatible.
3
- (function (factory) {
4
- if (typeof module === "object" && typeof module.exports === "object") {
5
- var v = factory(require, exports);
6
- if (v !== undefined) module.exports = v;
7
- }
8
- else if (typeof define === "function" && define.amd) {
9
- define(["require", "exports", "../../bytes/1.0.6/concat.js"], factory);
10
- }
11
- })(function (require, exports) {
12
- "use strict";
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.encode = encode;
15
- const concat_js_1 = require("../../bytes/1.0.6/concat.js");
16
- const FOUR_BITS = 16;
17
- const FIVE_BITS = 32;
18
- const SEVEN_BITS = 128;
19
- const EIGHT_BITS = 256;
20
- const FIFTEEN_BITS = 32768;
21
- const SIXTEEN_BITS = 65536;
22
- const THIRTY_ONE_BITS = 2147483648;
23
- const THIRTY_TWO_BITS = 4294967296;
24
- const SIXTY_THREE_BITS = 9223372036854775808n;
25
- const SIXTY_FOUR_BITS = 18446744073709551616n;
26
- const encoder = new TextEncoder();
27
- /**
28
- * Encode a value to {@link https://msgpack.org/ | MessagePack} binary format.
29
- *
30
- * @example Usage
31
- * ```ts
32
- * import { encode } from "@std/msgpack/encode";
33
- * import { assertEquals } from "@std/assert";
34
- *
35
- * const obj = {
36
- * str: "deno",
37
- * arr: [1, 2, 3],
38
- * map: {
39
- * foo: "bar"
40
- * }
41
- * }
42
- *
43
- * const encoded = encode(obj);
44
- *
45
- * assertEquals(encoded.length, 31);
46
- * ```
47
- *
48
- * @param object Value to encode to MessagePack binary format.
49
- * @returns Encoded MessagePack binary data.
50
- */
51
- function encode(object) {
52
- const byteParts = [];
53
- encodeSlice(object, byteParts);
54
- return (0, concat_js_1.concat)(byteParts);
55
- }
56
- function encodeFloat64(num) {
57
- const dataView = new DataView(new ArrayBuffer(9));
58
- dataView.setFloat64(1, num);
59
- dataView.setUint8(0, 0xcb);
60
- return new Uint8Array(dataView.buffer);
61
- }
62
- function encodeNumber(num) {
63
- if (!Number.isInteger(num)) { // float 64
64
- return encodeFloat64(num);
65
- }
66
- if (num < 0) {
67
- if (num >= -FIVE_BITS) { // negative fixint
68
- return new Uint8Array([num]);
69
- }
70
- if (num >= -SEVEN_BITS) { // int 8
71
- return new Uint8Array([0xd0, num]);
72
- }
73
- if (num >= -FIFTEEN_BITS) { // int 16
74
- const dataView = new DataView(new ArrayBuffer(3));
75
- dataView.setInt16(1, num);
76
- dataView.setUint8(0, 0xd1);
77
- return new Uint8Array(dataView.buffer);
78
- }
79
- if (num >= -THIRTY_ONE_BITS) { // int 32
80
- const dataView = new DataView(new ArrayBuffer(5));
81
- dataView.setInt32(1, num);
82
- dataView.setUint8(0, 0xd2);
83
- return new Uint8Array(dataView.buffer);
84
- }
85
- // float 64
86
- return encodeFloat64(num);
87
- }
88
- // if the number fits within a positive fixint, use it
89
- if (num <= 0x7f) {
90
- return new Uint8Array([num]);
91
- }
92
- if (num < EIGHT_BITS) { // uint8
93
- return new Uint8Array([0xcc, num]);
94
- }
95
- if (num < SIXTEEN_BITS) { // uint16
96
- const dataView = new DataView(new ArrayBuffer(3));
97
- dataView.setUint16(1, num);
98
- dataView.setUint8(0, 0xcd);
99
- return new Uint8Array(dataView.buffer);
100
- }
101
- if (num < THIRTY_TWO_BITS) { // uint32
102
- const dataView = new DataView(new ArrayBuffer(5));
103
- dataView.setUint32(1, num);
104
- dataView.setUint8(0, 0xce);
105
- return new Uint8Array(dataView.buffer);
106
- }
107
- // float 64
108
- return encodeFloat64(num);
109
- }
110
- function encodeSlice(object, byteParts) {
111
- if (object === null) {
112
- byteParts.push(new Uint8Array([0xc0]));
113
- return;
114
- }
115
- if (object === false) {
116
- byteParts.push(new Uint8Array([0xc2]));
117
- return;
118
- }
119
- if (object === true) {
120
- byteParts.push(new Uint8Array([0xc3]));
121
- return;
122
- }
123
- if (typeof object === "number") {
124
- byteParts.push(encodeNumber(object));
125
- return;
126
- }
127
- if (typeof object === "bigint") {
128
- if (object < 0) {
129
- if (object < -SIXTY_THREE_BITS) {
130
- throw new Error("Cannot safely encode bigint larger than 64 bits");
131
- }
132
- const dataView = new DataView(new ArrayBuffer(9));
133
- dataView.setBigInt64(1, object);
134
- dataView.setUint8(0, 0xd3);
135
- byteParts.push(new Uint8Array(dataView.buffer));
136
- return;
137
- }
138
- if (object >= SIXTY_FOUR_BITS) {
139
- throw new Error("Cannot safely encode bigint larger than 64 bits");
140
- }
141
- const dataView = new DataView(new ArrayBuffer(9));
142
- dataView.setBigUint64(1, object);
143
- dataView.setUint8(0, 0xcf);
144
- byteParts.push(new Uint8Array(dataView.buffer));
145
- return;
146
- }
147
- if (typeof object === "string") {
148
- const encoded = encoder.encode(object);
149
- const len = encoded.length;
150
- if (len < FIVE_BITS) { // fixstr
151
- byteParts.push(new Uint8Array([0xa0 | len]));
152
- }
153
- else if (len < EIGHT_BITS) { // str 8
154
- byteParts.push(new Uint8Array([0xd9, len]));
155
- }
156
- else if (len < SIXTEEN_BITS) { // str 16
157
- const dataView = new DataView(new ArrayBuffer(3));
158
- dataView.setUint16(1, len);
159
- dataView.setUint8(0, 0xda);
160
- byteParts.push(new Uint8Array(dataView.buffer));
161
- }
162
- else if (len < THIRTY_TWO_BITS) { // str 32
163
- const dataView = new DataView(new ArrayBuffer(5));
164
- dataView.setUint32(1, len);
165
- dataView.setUint8(0, 0xdb);
166
- byteParts.push(new Uint8Array(dataView.buffer));
167
- }
168
- else {
169
- throw new Error("Cannot safely encode string with size larger than 32 bits");
170
- }
171
- byteParts.push(encoded);
172
- return;
173
- }
174
- if (object instanceof Uint8Array) {
175
- if (object.length < EIGHT_BITS) { // bin 8
176
- byteParts.push(new Uint8Array([0xc4, object.length]));
177
- }
178
- else if (object.length < SIXTEEN_BITS) { // bin 16
179
- const dataView = new DataView(new ArrayBuffer(3));
180
- dataView.setUint16(1, object.length);
181
- dataView.setUint8(0, 0xc5);
182
- byteParts.push(new Uint8Array(dataView.buffer));
183
- }
184
- else if (object.length < THIRTY_TWO_BITS) { // bin 32
185
- const dataView = new DataView(new ArrayBuffer(5));
186
- dataView.setUint32(1, object.length);
187
- dataView.setUint8(0, 0xc6);
188
- byteParts.push(new Uint8Array(dataView.buffer));
189
- }
190
- else {
191
- throw new Error("Cannot safely encode Uint8Array with size larger than 32 bits");
192
- }
193
- byteParts.push(object);
194
- return;
195
- }
196
- if (Array.isArray(object)) {
197
- if (object.length < FOUR_BITS) { // fixarray
198
- byteParts.push(new Uint8Array([0x90 | object.length]));
199
- }
200
- else if (object.length < SIXTEEN_BITS) { // array 16
201
- const dataView = new DataView(new ArrayBuffer(3));
202
- dataView.setUint16(1, object.length);
203
- dataView.setUint8(0, 0xdc);
204
- byteParts.push(new Uint8Array(dataView.buffer));
205
- }
206
- else if (object.length < THIRTY_TWO_BITS) { // array 32
207
- const dataView = new DataView(new ArrayBuffer(5));
208
- dataView.setUint32(1, object.length);
209
- dataView.setUint8(0, 0xdd);
210
- byteParts.push(new Uint8Array(dataView.buffer));
211
- }
212
- else {
213
- throw new Error("Cannot safely encode array with size larger than 32 bits");
214
- }
215
- for (const obj of object) {
216
- encodeSlice(obj, byteParts);
217
- }
218
- return;
219
- }
220
- // If object is a plain object
221
- const prototype = Object.getPrototypeOf(object);
222
- if (prototype === null || prototype === Object.prototype) {
223
- const numKeys = Object.keys(object).length;
224
- if (numKeys < FOUR_BITS) { // fixarray
225
- byteParts.push(new Uint8Array([0x80 | numKeys]));
226
- }
227
- else if (numKeys < SIXTEEN_BITS) { // map 16
228
- const dataView = new DataView(new ArrayBuffer(3));
229
- dataView.setUint16(1, numKeys);
230
- dataView.setUint8(0, 0xde);
231
- byteParts.push(new Uint8Array(dataView.buffer));
232
- }
233
- else if (numKeys < THIRTY_TWO_BITS) { // map 32
234
- const dataView = new DataView(new ArrayBuffer(5));
235
- dataView.setUint32(1, numKeys);
236
- dataView.setUint8(0, 0xdf);
237
- byteParts.push(new Uint8Array(dataView.buffer));
238
- }
239
- else {
240
- throw new Error("Cannot safely encode map with size larger than 32 bits");
241
- }
242
- for (const [key, value] of Object.entries(object)) {
243
- encodeSlice(key, byteParts);
244
- encodeSlice(value, byteParts);
245
- }
246
- return;
247
- }
248
- throw new Error("Cannot safely encode value into messagepack");
249
- }
250
- });