@transia/ripple-binary-codec 1.4.6-alpha.8 → 2.5.1

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 (361) hide show
  1. package/dist/binary.d.ts +30 -16
  2. package/dist/binary.js +36 -16
  3. package/dist/binary.js.map +1 -1
  4. package/dist/enums/bytes.d.ts +1 -2
  5. package/dist/enums/bytes.js +3 -2
  6. package/dist/enums/bytes.js.map +1 -1
  7. package/dist/enums/constants.d.ts +1 -0
  8. package/dist/enums/constants.js +6 -5
  9. package/dist/enums/constants.js.map +1 -1
  10. package/dist/enums/definitions.json +1650 -964
  11. package/dist/enums/field.d.ts +1 -2
  12. package/dist/enums/field.js +1 -2
  13. package/dist/enums/field.js.map +1 -1
  14. package/dist/enums/index.d.ts +1 -2
  15. package/dist/enums/index.js +5 -27
  16. package/dist/enums/index.js.map +1 -1
  17. package/dist/enums/src/enums/definitions.json +1652 -966
  18. package/dist/enums/xrpl-definitions-base.d.ts +5 -3
  19. package/dist/enums/xrpl-definitions-base.js +26 -6
  20. package/dist/enums/xrpl-definitions-base.js.map +1 -1
  21. package/dist/enums/xrpl-definitions.d.ts +2 -1
  22. package/dist/enums/xrpl-definitions.js +2 -1
  23. package/dist/enums/xrpl-definitions.js.map +1 -1
  24. package/dist/hash-prefixes.d.ts +1 -2
  25. package/dist/hash-prefixes.js +8 -6
  26. package/dist/hash-prefixes.js.map +1 -1
  27. package/dist/hashes.d.ts +6 -7
  28. package/dist/hashes.js +6 -7
  29. package/dist/hashes.js.map +1 -1
  30. package/dist/index.d.ts +16 -11
  31. package/dist/index.js +53 -58
  32. package/dist/index.js.map +1 -1
  33. package/dist/ledger-hashes.d.ts +1 -2
  34. package/dist/ledger-hashes.js +11 -30
  35. package/dist/ledger-hashes.js.map +1 -1
  36. package/dist/quality.d.ts +3 -4
  37. package/dist/quality.js +10 -8
  38. package/dist/quality.js.map +1 -1
  39. package/dist/serdes/binary-parser.d.ts +2 -3
  40. package/dist/serdes/binary-parser.js +16 -32
  41. package/dist/serdes/binary-parser.js.map +1 -1
  42. package/dist/serdes/binary-serializer.d.ts +7 -8
  43. package/dist/serdes/binary-serializer.js +14 -37
  44. package/dist/serdes/binary-serializer.js.map +1 -1
  45. package/dist/shamap.d.ts +4 -5
  46. package/dist/shamap.js +5 -5
  47. package/dist/shamap.js.map +1 -1
  48. package/dist/src/binary.d.ts +106 -0
  49. package/dist/src/binary.js +154 -0
  50. package/dist/src/binary.js.map +1 -0
  51. package/dist/src/coretypes.d.ts +9 -0
  52. package/dist/src/coretypes.js +48 -0
  53. package/dist/src/coretypes.js.map +1 -0
  54. package/dist/src/enums/bytes.d.ts +25 -0
  55. package/dist/src/enums/bytes.js +65 -0
  56. package/dist/src/enums/bytes.js.map +1 -0
  57. package/dist/src/enums/constants.d.ts +5 -0
  58. package/dist/src/enums/constants.js +9 -0
  59. package/dist/src/enums/constants.js.map +1 -0
  60. package/dist/src/enums/definitions.json +3404 -0
  61. package/dist/src/enums/field.d.ts +28 -0
  62. package/dist/src/enums/field.js +58 -0
  63. package/dist/src/enums/field.js.map +1 -0
  64. package/dist/src/enums/index.d.ts +12 -0
  65. package/dist/src/enums/index.js +31 -0
  66. package/dist/src/enums/index.js.map +1 -0
  67. package/dist/src/enums/utils-renumber.d.ts +101 -0
  68. package/dist/src/enums/utils-renumber.js +127 -0
  69. package/dist/src/enums/utils-renumber.js.map +1 -0
  70. package/dist/src/enums/xrpl-definitions-base.d.ts +47 -0
  71. package/dist/src/enums/xrpl-definitions-base.js +83 -0
  72. package/dist/src/enums/xrpl-definitions-base.js.map +1 -0
  73. package/dist/src/enums/xrpl-definitions.d.ts +22 -0
  74. package/dist/src/enums/xrpl-definitions.js +30 -0
  75. package/dist/src/enums/xrpl-definitions.js.map +1 -0
  76. package/dist/src/hash-prefixes.d.ts +5 -0
  77. package/dist/src/hash-prefixes.js +43 -0
  78. package/dist/src/hash-prefixes.js.map +1 -0
  79. package/dist/src/hashes.d.ts +50 -0
  80. package/dist/src/hashes.js +76 -0
  81. package/dist/src/hashes.js.map +1 -0
  82. package/dist/src/index.d.ts +69 -0
  83. package/dist/src/index.js +134 -0
  84. package/dist/src/index.js.map +1 -0
  85. package/dist/src/ledger-hashes.d.ts +48 -0
  86. package/dist/src/ledger-hashes.js +141 -0
  87. package/dist/src/ledger-hashes.js.map +1 -0
  88. package/dist/src/quality.d.ts +21 -0
  89. package/dist/src/quality.js +42 -0
  90. package/dist/src/quality.js.map +1 -0
  91. package/dist/src/serdes/binary-parser.d.ts +100 -0
  92. package/dist/src/serdes/binary-parser.js +194 -0
  93. package/dist/src/serdes/binary-parser.js.map +1 -0
  94. package/dist/src/serdes/binary-serializer.d.ts +81 -0
  95. package/dist/src/serdes/binary-serializer.js +149 -0
  96. package/dist/src/serdes/binary-serializer.js.map +1 -0
  97. package/dist/src/shamap.d.ts +102 -0
  98. package/dist/src/shamap.js +172 -0
  99. package/dist/src/shamap.js.map +1 -0
  100. package/dist/src/types/account-id.d.ts +37 -0
  101. package/dist/src/types/account-id.js +73 -0
  102. package/dist/src/types/account-id.js.map +1 -0
  103. package/dist/src/types/amount.d.ts +92 -0
  104. package/dist/src/types/amount.js +292 -0
  105. package/dist/src/types/amount.js.map +1 -0
  106. package/dist/src/types/blob.d.ts +25 -0
  107. package/dist/src/types/blob.js +46 -0
  108. package/dist/src/types/blob.js.map +1 -0
  109. package/dist/src/types/currency.d.ts +30 -0
  110. package/dist/src/types/currency.js +131 -0
  111. package/dist/src/types/currency.js.map +1 -0
  112. package/dist/src/types/data.d.ts +104 -0
  113. package/dist/src/types/data.js +387 -0
  114. package/dist/src/types/data.js.map +1 -0
  115. package/dist/src/types/dataType.d.ts +94 -0
  116. package/dist/src/types/dataType.js +145 -0
  117. package/dist/src/types/dataType.js.map +1 -0
  118. package/dist/src/types/hash-128.d.ts +18 -0
  119. package/dist/src/types/hash-128.js +36 -0
  120. package/dist/src/types/hash-128.js.map +1 -0
  121. package/dist/src/types/hash-160.d.ts +12 -0
  122. package/dist/src/types/hash-160.js +23 -0
  123. package/dist/src/types/hash-160.js.map +1 -0
  124. package/dist/src/types/hash-192.d.ts +12 -0
  125. package/dist/src/types/hash-192.js +23 -0
  126. package/dist/src/types/hash-192.js.map +1 -0
  127. package/dist/src/types/hash-256.d.ts +12 -0
  128. package/dist/src/types/hash-256.js +20 -0
  129. package/dist/src/types/hash-256.js.map +1 -0
  130. package/dist/src/types/hash.d.ts +40 -0
  131. package/dist/src/types/hash.js +76 -0
  132. package/dist/src/types/hash.js.map +1 -0
  133. package/dist/src/types/index.d.ts +21 -0
  134. package/dist/src/types/index.js +72 -0
  135. package/dist/src/types/index.js.map +1 -0
  136. package/dist/src/types/issue.d.ts +49 -0
  137. package/dist/src/types/issue.js +107 -0
  138. package/dist/src/types/issue.js.map +1 -0
  139. package/dist/src/types/json.d.ts +169 -0
  140. package/dist/src/types/json.js +529 -0
  141. package/dist/src/types/json.js.map +1 -0
  142. package/dist/src/types/path-set.d.ts +37 -0
  143. package/dist/src/types/path-set.js +236 -0
  144. package/dist/src/types/path-set.js.map +1 -0
  145. package/dist/src/types/serialized-type.d.ts +117 -0
  146. package/dist/src/types/serialized-type.js +242 -0
  147. package/dist/src/types/serialized-type.js.map +1 -0
  148. package/dist/src/types/st-array.d.ts +32 -0
  149. package/dist/src/types/st-array.js +89 -0
  150. package/dist/src/types/st-array.js.map +1 -0
  151. package/dist/src/types/st-number.d.ts +55 -0
  152. package/dist/src/types/st-number.js +212 -0
  153. package/dist/src/types/st-number.js.map +1 -0
  154. package/dist/src/types/st-object.d.ts +33 -0
  155. package/dist/src/types/st-object.js +176 -0
  156. package/dist/src/types/st-object.js.map +1 -0
  157. package/dist/src/types/uint-16.d.ts +26 -0
  158. package/dist/src/types/uint-16.js +49 -0
  159. package/dist/src/types/uint-16.js.map +1 -0
  160. package/dist/src/types/uint-32.d.ts +26 -0
  161. package/dist/src/types/uint-32.js +54 -0
  162. package/dist/src/types/uint-32.js.map +1 -0
  163. package/dist/src/types/uint-64.d.ts +40 -0
  164. package/dist/src/types/uint-64.js +112 -0
  165. package/dist/src/types/uint-64.js.map +1 -0
  166. package/dist/src/types/uint-8.d.ts +26 -0
  167. package/dist/src/types/uint-8.js +50 -0
  168. package/dist/src/types/uint-8.js.map +1 -0
  169. package/dist/src/types/uint.d.ts +29 -0
  170. package/dist/src/types/uint.js +47 -0
  171. package/dist/src/types/uint.js.map +1 -0
  172. package/dist/src/types/vector-256.d.ts +31 -0
  173. package/dist/src/types/vector-256.js +76 -0
  174. package/dist/src/types/vector-256.js.map +1 -0
  175. package/dist/src/types/xchain-bridge.d.ts +45 -0
  176. package/dist/src/types/xchain-bridge.js +105 -0
  177. package/dist/src/types/xchain-bridge.js.map +1 -0
  178. package/dist/src/utils.d.ts +79 -0
  179. package/dist/src/utils.js +181 -0
  180. package/dist/src/utils.js.map +1 -0
  181. package/dist/tsconfig.tsbuildinfo +1 -0
  182. package/dist/types/account-id.d.ts +3 -2
  183. package/dist/types/account-id.js +8 -6
  184. package/dist/types/account-id.js.map +1 -1
  185. package/dist/types/amount.d.ts +33 -9
  186. package/dist/types/amount.js +128 -43
  187. package/dist/types/amount.js.map +1 -1
  188. package/dist/types/blob.d.ts +3 -3
  189. package/dist/types/blob.js +8 -2
  190. package/dist/types/blob.js.map +1 -1
  191. package/dist/types/currency.d.ts +3 -2
  192. package/dist/types/currency.js +17 -13
  193. package/dist/types/currency.js.map +1 -1
  194. package/dist/types/data.d.ts +104 -0
  195. package/dist/types/data.js +387 -0
  196. package/dist/types/data.js.map +1 -0
  197. package/dist/types/dataType.d.ts +94 -0
  198. package/dist/types/dataType.js +145 -0
  199. package/dist/types/dataType.js.map +1 -0
  200. package/dist/types/hash-128.d.ts +3 -2
  201. package/dist/types/hash-128.js +7 -3
  202. package/dist/types/hash-128.js.map +1 -1
  203. package/dist/types/hash-160.d.ts +3 -2
  204. package/dist/types/hash-160.js +5 -2
  205. package/dist/types/hash-160.js.map +1 -1
  206. package/dist/types/hash-192.d.ts +12 -0
  207. package/dist/types/hash-192.js +23 -0
  208. package/dist/types/hash-192.js.map +1 -0
  209. package/dist/types/hash-256.d.ts +3 -2
  210. package/dist/types/hash-256.js +5 -2
  211. package/dist/types/hash-256.js.map +1 -1
  212. package/dist/types/hash.d.ts +2 -3
  213. package/dist/types/hash.js +8 -4
  214. package/dist/types/hash.js.map +1 -1
  215. package/dist/types/index.d.ts +4 -1
  216. package/dist/types/index.js +17 -2
  217. package/dist/types/index.js.map +1 -1
  218. package/dist/types/issue.d.ts +49 -0
  219. package/dist/types/issue.js +107 -0
  220. package/dist/types/issue.js.map +1 -0
  221. package/dist/types/json.d.ts +169 -0
  222. package/dist/types/json.js +529 -0
  223. package/dist/types/json.js.map +1 -0
  224. package/dist/types/path-set.d.ts +2 -1
  225. package/dist/types/path-set.js +15 -12
  226. package/dist/types/path-set.js.map +1 -1
  227. package/dist/types/serialized-type.d.ts +70 -16
  228. package/dist/types/serialized-type.js +153 -8
  229. package/dist/types/serialized-type.js.map +1 -1
  230. package/dist/types/st-array.d.ts +7 -3
  231. package/dist/types/st-array.js +20 -11
  232. package/dist/types/st-array.js.map +1 -1
  233. package/dist/types/st-number.d.ts +55 -0
  234. package/dist/types/st-number.js +212 -0
  235. package/dist/types/st-number.js.map +1 -0
  236. package/dist/types/st-object.d.ts +2 -1
  237. package/dist/types/st-object.js +35 -8
  238. package/dist/types/st-object.js.map +1 -1
  239. package/dist/types/uint-16.d.ts +3 -2
  240. package/dist/types/uint-16.js +10 -5
  241. package/dist/types/uint-16.js.map +1 -1
  242. package/dist/types/uint-32.d.ts +3 -2
  243. package/dist/types/uint-32.js +11 -6
  244. package/dist/types/uint-32.js.map +1 -1
  245. package/dist/types/uint-64.d.ts +8 -7
  246. package/dist/types/uint-64.js +49 -24
  247. package/dist/types/uint-64.js.map +1 -1
  248. package/dist/types/uint-8.d.ts +3 -2
  249. package/dist/types/uint-8.js +11 -5
  250. package/dist/types/uint-8.js.map +1 -1
  251. package/dist/types/uint.d.ts +5 -6
  252. package/dist/types/uint.js +5 -0
  253. package/dist/types/uint.js.map +1 -1
  254. package/dist/types/vector-256.d.ts +3 -3
  255. package/dist/types/vector-256.js +5 -4
  256. package/dist/types/vector-256.js.map +1 -1
  257. package/dist/types/xchain-bridge.d.ts +45 -0
  258. package/dist/types/xchain-bridge.js +105 -0
  259. package/dist/types/xchain-bridge.js.map +1 -0
  260. package/dist/utils.d.ts +79 -0
  261. package/dist/utils.js +181 -0
  262. package/dist/utils.js.map +1 -0
  263. package/package.json +21 -17
  264. package/src/README.md +5 -0
  265. package/src/binary.ts +235 -0
  266. package/src/coretypes.ts +31 -0
  267. package/src/enums/README.md +144 -0
  268. package/src/enums/bytes.ts +80 -0
  269. package/src/enums/constants.ts +5 -0
  270. package/src/enums/definitions.json +3409 -0
  271. package/src/enums/field.ts +84 -0
  272. package/src/enums/index.ts +34 -0
  273. package/src/enums/utils-renumber.ts +134 -0
  274. package/src/enums/xrpl-definitions-base.ts +150 -0
  275. package/src/enums/xrpl-definitions.ts +33 -0
  276. package/src/hash-prefixes.ts +42 -0
  277. package/src/hashes.ts +75 -0
  278. package/src/index.ts +166 -0
  279. package/src/ledger-hashes.ts +191 -0
  280. package/src/quality.ts +38 -0
  281. package/src/serdes/binary-parser.ts +228 -0
  282. package/src/serdes/binary-serializer.ts +166 -0
  283. package/src/shamap.ts +189 -0
  284. package/src/types/account-id.ts +91 -0
  285. package/src/types/amount.ts +366 -0
  286. package/src/types/blob.ts +50 -0
  287. package/src/types/currency.ts +145 -0
  288. package/src/types/data.ts +496 -0
  289. package/src/types/dataType.ts +178 -0
  290. package/src/types/hash-128.ts +38 -0
  291. package/src/types/hash-160.ts +24 -0
  292. package/src/types/hash-192.ts +24 -0
  293. package/src/types/hash-256.ts +20 -0
  294. package/src/types/hash.ts +86 -0
  295. package/src/types/index.ts +74 -0
  296. package/src/types/issue.ts +140 -0
  297. package/src/types/json.ts +641 -0
  298. package/src/types/path-set.ts +294 -0
  299. package/src/types/serialized-type.ts +271 -0
  300. package/src/types/st-array.ts +117 -0
  301. package/src/types/st-number.ts +238 -0
  302. package/src/types/st-object.ts +219 -0
  303. package/src/types/uint-16.ts +58 -0
  304. package/src/types/uint-32.ts +64 -0
  305. package/src/types/uint-64.ts +141 -0
  306. package/src/types/uint-8.ts +57 -0
  307. package/src/types/uint.ts +60 -0
  308. package/src/types/vector-256.ts +83 -0
  309. package/src/types/xchain-bridge.ts +132 -0
  310. package/src/utils.ts +220 -0
  311. package/test/amount.test.js +0 -43
  312. package/test/binary-json.test.js +0 -45
  313. package/test/binary-parser.test.js +0 -396
  314. package/test/binary-serializer.test.js +0 -307
  315. package/test/definitions.test.js +0 -100
  316. package/test/fixtures/account-tx-transactions.db +0 -0
  317. package/test/fixtures/codec-fixtures.json +0 -4466
  318. package/test/fixtures/data-driven-tests.json +0 -2919
  319. package/test/fixtures/delivermin-tx-binary.json +0 -1
  320. package/test/fixtures/delivermin-tx.json +0 -98
  321. package/test/fixtures/deposit-preauth-tx-binary.json +0 -1
  322. package/test/fixtures/deposit-preauth-tx-meta-binary.json +0 -1
  323. package/test/fixtures/deposit-preauth-tx.json +0 -58
  324. package/test/fixtures/escrow-cancel-binary.json +0 -1
  325. package/test/fixtures/escrow-cancel-tx.json +0 -6
  326. package/test/fixtures/escrow-create-binary.json +0 -1
  327. package/test/fixtures/escrow-create-tx.json +0 -10
  328. package/test/fixtures/escrow-finish-binary.json +0 -1
  329. package/test/fixtures/escrow-finish-meta-binary.json +0 -1
  330. package/test/fixtures/escrow-finish-tx.json +0 -95
  331. package/test/fixtures/ledger-full-38129.json +0 -1
  332. package/test/fixtures/ledger-full-40000.json +0 -1
  333. package/test/fixtures/negative-unl.json +0 -12
  334. package/test/fixtures/nf-token.json +0 -547
  335. package/test/fixtures/payment-channel-claim-binary.json +0 -1
  336. package/test/fixtures/payment-channel-claim-tx.json +0 -8
  337. package/test/fixtures/payment-channel-create-binary.json +0 -1
  338. package/test/fixtures/payment-channel-create-tx.json +0 -11
  339. package/test/fixtures/payment-channel-fund-binary.json +0 -1
  340. package/test/fixtures/payment-channel-fund-tx.json +0 -7
  341. package/test/fixtures/signerlistset-tx-binary.json +0 -1
  342. package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
  343. package/test/fixtures/signerlistset-tx.json +0 -94
  344. package/test/fixtures/ticket-create-binary.json +0 -1
  345. package/test/fixtures/ticket-create-tx.json +0 -7
  346. package/test/fixtures/unl-report-binary.json +0 -1
  347. package/test/fixtures/unl-report-meta-binary.json +0 -1
  348. package/test/fixtures/unl-report.json +0 -89
  349. package/test/fixtures/x-codec-fixtures.json +0 -188
  350. package/test/hash.test.js +0 -135
  351. package/test/ledger.test.js +0 -29
  352. package/test/lower-case-hex.test.js +0 -46
  353. package/test/pseudo-transaction.test.js +0 -38
  354. package/test/quality.test.js +0 -15
  355. package/test/shamap.test.js +0 -89
  356. package/test/signing-data-encoding.test.js +0 -213
  357. package/test/tx-encode-decode.test.js +0 -119
  358. package/test/types.test.js +0 -34
  359. package/test/uint.test.js +0 -148
  360. package/test/utils.js +0 -30
  361. package/test/x-address.test.js +0 -181
@@ -0,0 +1,529 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STJson = void 0;
4
+ /* eslint-disable max-lines */
5
+ /* eslint-disable complexity */
6
+ const binary_parser_1 = require("../serdes/binary-parser");
7
+ const serialized_type_1 = require("./serialized-type");
8
+ const utils_1 = require("@transia/isomorphic/utils");
9
+ const binary_serializer_1 = require("../serdes/binary-serializer");
10
+ /**
11
+ * STJson: Serialized Type for JSON-like structures (objects or arrays).
12
+ *
13
+ * Supports two modes:
14
+ * - Object: Key-value pairs where keys are VL-encoded strings
15
+ * - Array: Ordered list of values
16
+ *
17
+ * Values are [SType marker][VL-encoded SType serialization].
18
+ * Values can be any SType, including nested STJson.
19
+ *
20
+ * Serialization format: [type_byte][VL_length][data...]
21
+ * - type_byte: 0x00 = Object, 0x01 = Array
22
+ *
23
+ * Depth constraint: Maximum nesting depth of 1 level
24
+ */
25
+ class STJson extends serialized_type_1.SerializedType {
26
+ /**
27
+ * Construct STJson from bytes
28
+ * @param bytes - Uint8Array containing serialized JSON
29
+ */
30
+ constructor(bytes) {
31
+ super(bytes);
32
+ this.default_ = false;
33
+ this.data = new Map();
34
+ this.jsonType = STJson.JsonType.Object;
35
+ }
36
+ /**
37
+ * Parse STJson from BinaryParser
38
+ *
39
+ * @param parser - BinaryParser positioned at the start of STJson
40
+ * @returns STJson instance
41
+ */
42
+ static fromParser(parser) {
43
+ const dataLength = parser.readVariableLengthLength();
44
+ if (dataLength < 0) {
45
+ throw new Error('Invalid STJson length');
46
+ }
47
+ if (dataLength === 0) {
48
+ const json = new STJson(new Uint8Array());
49
+ json.data = new Map();
50
+ return json;
51
+ }
52
+ // Read type byte
53
+ const typeByte = parser.read(1)[0];
54
+ const type = typeByte;
55
+ const initialBytesLeft = parser.size();
56
+ if (type === STJson.JsonType.Array) {
57
+ const array = [];
58
+ while (parser.size() > 0 &&
59
+ initialBytesLeft - parser.size() < dataLength) {
60
+ const valueVL = parser.readVariableLength();
61
+ if (valueVL.length > 0) {
62
+ const valueSit = new binary_parser_1.BinaryParser((0, utils_1.bytesToHex)(valueVL));
63
+ const value = STJson.makeValueFromVLWithType(valueSit);
64
+ array.push(value);
65
+ }
66
+ else {
67
+ array.push(null);
68
+ }
69
+ }
70
+ const json = new STJson(new Uint8Array());
71
+ json.data = array;
72
+ json.jsonType = STJson.JsonType.Array;
73
+ return json;
74
+ }
75
+ else {
76
+ // JsonType.Object
77
+ const map = new Map();
78
+ while (parser.size() > 0 &&
79
+ initialBytesLeft - parser.size() < dataLength) {
80
+ const [key, value] = STJson.parsePair(parser);
81
+ map.set(key, value);
82
+ }
83
+ const json = new STJson(new Uint8Array());
84
+ json.data = map;
85
+ json.jsonType = STJson.JsonType.Object;
86
+ return json;
87
+ }
88
+ }
89
+ /**
90
+ * Parse a single key-value pair from the parser
91
+ */
92
+ static parsePair(parser) {
93
+ const keyVL = parser.readVariableLength();
94
+ const key = new TextDecoder().decode(keyVL);
95
+ const valueVL = parser.readVariableLength();
96
+ let value = null;
97
+ if (valueVL.length > 0) {
98
+ const valueSit = new binary_parser_1.BinaryParser((0, utils_1.bytesToHex)(valueVL));
99
+ value = STJson.makeValueFromVLWithType(valueSit);
100
+ }
101
+ return [key, value];
102
+ }
103
+ /**
104
+ * Factory for SType value from VL blob (with SType marker)
105
+ */
106
+ static makeValueFromVLWithType(parser) {
107
+ if (parser.size() === 0) {
108
+ throw new Error('Empty data when parsing STJson value');
109
+ }
110
+ const typeId = parser.read(1)[0];
111
+ // Delegate to appropriate type's fromParser
112
+ // This is a placeholder - actual implementation would dispatch to concrete types
113
+ // For now, we create an STJson if type is Object or Array
114
+ if (typeId === STJson.JsonType.Object || typeId === STJson.JsonType.Array) {
115
+ return STJson.fromParser(parser);
116
+ }
117
+ throw new Error(`Unsupported type ID in STJson: ${typeId}`);
118
+ }
119
+ /**
120
+ * Check if this is an array type
121
+ */
122
+ isArray() {
123
+ return this.jsonType === STJson.JsonType.Array;
124
+ }
125
+ /**
126
+ * Check if this is an object type
127
+ */
128
+ isObject() {
129
+ return this.jsonType === STJson.JsonType.Object;
130
+ }
131
+ /**
132
+ * Get the JSON type
133
+ */
134
+ getType() {
135
+ return this.jsonType;
136
+ }
137
+ /**
138
+ * Get nesting depth (0 = no nesting, 1 = one level of nesting)
139
+ */
140
+ getDepth() {
141
+ if (this.isArray()) {
142
+ const array = this.data;
143
+ for (const value of array) {
144
+ if (value && value instanceof STJson) {
145
+ return 1 + value.getDepth();
146
+ }
147
+ }
148
+ return 0;
149
+ }
150
+ else {
151
+ // isObject()
152
+ const map = this.data;
153
+ for (const value of map.values()) {
154
+ if (value && value instanceof STJson) {
155
+ return 1 + value.getDepth();
156
+ }
157
+ }
158
+ return 0;
159
+ }
160
+ }
161
+ /**
162
+ * Validate nesting depth (max 1 level)
163
+ */
164
+ validateDepth(value, currentDepth) {
165
+ if (!value) {
166
+ return;
167
+ }
168
+ if (!(value instanceof STJson)) {
169
+ return;
170
+ }
171
+ const valueDepth = value.getDepth();
172
+ if (currentDepth + valueDepth > 1) {
173
+ throw new Error('STJson nesting depth exceeds maximum of 1');
174
+ }
175
+ }
176
+ /**
177
+ * Set a field in an object
178
+ */
179
+ setObjectField(key, value) {
180
+ if (!this.isObject()) {
181
+ throw new Error('STJson::setObjectField called on non-object');
182
+ }
183
+ this.validateDepth(value, 0);
184
+ this.data.set(key, value);
185
+ }
186
+ /**
187
+ * Get a field from an object
188
+ */
189
+ getObjectField(key) {
190
+ if (!this.isObject()) {
191
+ return undefined;
192
+ }
193
+ return this.data.get(key);
194
+ }
195
+ /**
196
+ * Set a nested object field (one level deep)
197
+ */
198
+ setNestedObjectField(key, nestedKey, value) {
199
+ if (!this.isObject()) {
200
+ throw new Error('STJson::setNestedObjectField called on non-object');
201
+ }
202
+ const map = this.data;
203
+ let nestedObj = map.get(key);
204
+ if (!nestedObj || !(nestedObj instanceof STJson) || !nestedObj.isObject()) {
205
+ const newNested = new STJson(new Uint8Array());
206
+ newNested.data = new Map();
207
+ newNested.jsonType = STJson.JsonType.Object;
208
+ map.set(key, newNested);
209
+ nestedObj = newNested;
210
+ }
211
+ if (nestedObj instanceof STJson) {
212
+ nestedObj.setObjectField(nestedKey, value);
213
+ }
214
+ }
215
+ /**
216
+ * Get a nested object field
217
+ */
218
+ getNestedObjectField(key, nestedKey) {
219
+ if (!this.isObject()) {
220
+ return undefined;
221
+ }
222
+ const nestedObj = this.data.get(key);
223
+ if (nestedObj instanceof STJson && nestedObj.isObject()) {
224
+ return nestedObj.getObjectField(nestedKey);
225
+ }
226
+ return undefined;
227
+ }
228
+ /**
229
+ * Get the inner data as a Map (for objects)
230
+ */
231
+ getMap() {
232
+ if (!this.isObject()) {
233
+ throw new Error('STJson is not an object type');
234
+ }
235
+ return this.data;
236
+ }
237
+ /**
238
+ * Get the inner data as an array
239
+ */
240
+ getArray() {
241
+ if (!this.isArray()) {
242
+ throw new Error('STJson is not an array type');
243
+ }
244
+ return this.data;
245
+ }
246
+ /**
247
+ * Push an element to an array
248
+ */
249
+ pushArrayElement(value) {
250
+ if (!this.isArray()) {
251
+ throw new Error('STJson::pushArrayElement called on non-array');
252
+ }
253
+ this.validateDepth(value, 0);
254
+ this.data.push(value);
255
+ }
256
+ /**
257
+ * Get an array element by index
258
+ */
259
+ getArrayElement(index) {
260
+ if (!this.isArray()) {
261
+ return undefined;
262
+ }
263
+ const array = this.data;
264
+ return array[index];
265
+ }
266
+ /**
267
+ * Set an array element by index
268
+ */
269
+ setArrayElement(index, value) {
270
+ if (!this.isArray()) {
271
+ throw new Error('STJson::setArrayElement called on non-array');
272
+ }
273
+ this.validateDepth(value, 0);
274
+ const array = this.data;
275
+ // Auto-resize with nulls if needed
276
+ if (index >= array.length) {
277
+ array.length = index + 1;
278
+ array.fill(null);
279
+ }
280
+ array[index] = value;
281
+ }
282
+ /**
283
+ * Set a field within an array element (element must be an object)
284
+ */
285
+ setArrayElementField(index, key, value) {
286
+ if (!this.isArray()) {
287
+ throw new Error('STJson::setArrayElementField called on non-array');
288
+ }
289
+ this.validateDepth(value, 1);
290
+ const array = this.data;
291
+ // Auto-resize with nulls if needed
292
+ if (index >= array.length) {
293
+ array.length = index + 1;
294
+ array.fill(null);
295
+ }
296
+ let element = array[index];
297
+ if (!element || !(element instanceof STJson) || !element.isObject()) {
298
+ const newElement = new STJson(new Uint8Array());
299
+ newElement.data = new Map();
300
+ newElement.jsonType = STJson.JsonType.Object;
301
+ array[index] = newElement;
302
+ element = newElement;
303
+ }
304
+ if (element instanceof STJson) {
305
+ element.setObjectField(key, value);
306
+ }
307
+ }
308
+ /**
309
+ * Get a field within an array element
310
+ */
311
+ getArrayElementField(index, key) {
312
+ if (!this.isArray()) {
313
+ return undefined;
314
+ }
315
+ const array = this.data;
316
+ if (index >= array.length) {
317
+ return undefined;
318
+ }
319
+ const element = array[index];
320
+ if (element instanceof STJson && element.isObject()) {
321
+ return element.getObjectField(key);
322
+ }
323
+ return undefined;
324
+ }
325
+ /**
326
+ * Get the size of the array
327
+ */
328
+ arraySize() {
329
+ if (!this.isArray()) {
330
+ return 0;
331
+ }
332
+ return this.data.length;
333
+ }
334
+ /**
335
+ * Set a nested array element (array stored in object field)
336
+ */
337
+ setNestedArrayElement(key, index, value) {
338
+ if (!this.isObject()) {
339
+ throw new Error('STJson::setNestedArrayElement called on non-object');
340
+ }
341
+ this.validateDepth(value, 1);
342
+ const map = this.data;
343
+ let arrayJson = map.get(key);
344
+ if (!arrayJson || !(arrayJson instanceof STJson) || !arrayJson.isArray()) {
345
+ const newArray = new STJson(new Uint8Array());
346
+ newArray.data = [];
347
+ newArray.jsonType = STJson.JsonType.Array;
348
+ map.set(key, newArray);
349
+ arrayJson = newArray;
350
+ }
351
+ if (arrayJson instanceof STJson) {
352
+ arrayJson.setArrayElement(index, value);
353
+ }
354
+ }
355
+ /**
356
+ * Set a field within a nested array element
357
+ */
358
+ setNestedArrayElementField(key, index, nestedKey, value) {
359
+ if (!this.isObject()) {
360
+ throw new Error('STJson::setNestedArrayElementField called on non-object');
361
+ }
362
+ this.validateDepth(value, 1);
363
+ const map = this.data;
364
+ let arrayJson = map.get(key);
365
+ if (!arrayJson || !(arrayJson instanceof STJson) || !arrayJson.isArray()) {
366
+ const newArray = new STJson(new Uint8Array());
367
+ newArray.data = [];
368
+ newArray.jsonType = STJson.JsonType.Array;
369
+ map.set(key, newArray);
370
+ arrayJson = newArray;
371
+ }
372
+ if (arrayJson instanceof STJson) {
373
+ arrayJson.setArrayElementField(index, nestedKey, value);
374
+ }
375
+ }
376
+ /**
377
+ * Get a nested array element
378
+ */
379
+ getNestedArrayElement(key, index) {
380
+ if (!this.isObject()) {
381
+ return undefined;
382
+ }
383
+ const arrayJson = this.data.get(key);
384
+ if (arrayJson instanceof STJson && arrayJson.isArray()) {
385
+ return arrayJson.getArrayElement(index);
386
+ }
387
+ return undefined;
388
+ }
389
+ /**
390
+ * Get a field within a nested array element
391
+ */
392
+ getNestedArrayElementField(key, index, nestedKey) {
393
+ if (!this.isObject()) {
394
+ return undefined;
395
+ }
396
+ const arrayJson = this.data.get(key);
397
+ if (arrayJson instanceof STJson && arrayJson.isArray()) {
398
+ return arrayJson.getArrayElementField(index, nestedKey);
399
+ }
400
+ return undefined;
401
+ }
402
+ /**
403
+ * Serialize to binary
404
+ */
405
+ add(s) {
406
+ const bytesList = new binary_serializer_1.BytesList();
407
+ const tmp = new binary_serializer_1.BinarySerializer(bytesList);
408
+ // Add type byte
409
+ tmp.put(new Uint8Array([this.jsonType]));
410
+ if (this.isArray()) {
411
+ const array = this.data;
412
+ for (const value of array) {
413
+ STJson.addVLValue(tmp, value);
414
+ }
415
+ }
416
+ else {
417
+ // isObject()
418
+ const map = this.data;
419
+ for (const [key, value] of map.entries()) {
420
+ STJson.addVLKey(tmp, key);
421
+ STJson.addVLValue(tmp, value);
422
+ }
423
+ }
424
+ const innerBytes = bytesList.toBytes();
425
+ const lengthBytes = binary_serializer_1.BinarySerializer.encodeVariableLength(innerBytes.length);
426
+ s.put(lengthBytes);
427
+ s.put(innerBytes);
428
+ }
429
+ /**
430
+ * Encode a key as VL
431
+ */
432
+ static addVLKey(s, str) {
433
+ const keyBytes = new TextEncoder().encode(str);
434
+ const lengthBytes = binary_serializer_1.BinarySerializer.encodeVariableLength(keyBytes.length);
435
+ s.put(lengthBytes);
436
+ s.put(keyBytes);
437
+ }
438
+ /**
439
+ * Encode a value as [SType marker][VL]
440
+ */
441
+ static addVLValue(s, value) {
442
+ if (!value) {
443
+ s.put(binary_serializer_1.BinarySerializer.encodeVariableLength(0));
444
+ return;
445
+ }
446
+ const bytesList = new binary_serializer_1.BytesList();
447
+ const tmp = new binary_serializer_1.BinarySerializer(bytesList);
448
+ tmp.put(new Uint8Array([value.getSType()]));
449
+ value.toBytesSink(bytesList);
450
+ const innerBytes = bytesList.toBytes();
451
+ const lengthBytes = binary_serializer_1.BinarySerializer.encodeVariableLength(innerBytes.length);
452
+ s.put(lengthBytes);
453
+ s.put(innerBytes);
454
+ }
455
+ /**
456
+ * Convert to JSON representation
457
+ */
458
+ toJSON() {
459
+ if (this.isArray()) {
460
+ const array = this.data;
461
+ return array.map((item) => (item ? item.toJSON() : null));
462
+ }
463
+ else {
464
+ // isObject()
465
+ const map = this.data;
466
+ const result = {};
467
+ for (const [key, value] of map.entries()) {
468
+ result[key] = value ? value.toJSON() : null;
469
+ }
470
+ return result;
471
+ }
472
+ }
473
+ /**
474
+ * Compare with another STJson for equivalence
475
+ */
476
+ isEquivalent(t) {
477
+ if (!(t instanceof STJson)) {
478
+ return false;
479
+ }
480
+ return (0, utils_1.bytesToHex)(this.bytes) === (0, utils_1.bytesToHex)(t.bytes);
481
+ }
482
+ /**
483
+ * Check if this is the default value
484
+ */
485
+ isDefault() {
486
+ return this.default_;
487
+ }
488
+ /**
489
+ * Get blob representation
490
+ */
491
+ toBlob() {
492
+ const bytesList = new binary_serializer_1.BytesList();
493
+ const s = new binary_serializer_1.BinarySerializer(bytesList);
494
+ this.add(s);
495
+ return bytesList.toBytes();
496
+ }
497
+ /**
498
+ * Get the size (number of bytes in serialized form)
499
+ */
500
+ size() {
501
+ const bytesList = new binary_serializer_1.BytesList();
502
+ const s = new binary_serializer_1.BinarySerializer(bytesList);
503
+ this.add(s);
504
+ return bytesList.getLength();
505
+ }
506
+ /**
507
+ * Set the value from another STJson
508
+ */
509
+ setValue(v) {
510
+ if (!(v instanceof STJson)) {
511
+ throw new Error('setValue: value must be STJson');
512
+ }
513
+ ;
514
+ this.data = v.data;
515
+ this.jsonType = v.jsonType;
516
+ }
517
+ /**
518
+ * Get serialized type ID
519
+ */
520
+ getSType() {
521
+ return serialized_type_1.SerializedTypeID.STI_JSON;
522
+ }
523
+ }
524
+ exports.STJson = STJson;
525
+ STJson.JsonType = {
526
+ Object: 0x00,
527
+ Array: 0x01,
528
+ };
529
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/types/json.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BinaryParser } from '../serdes/binary-parser';
2
- import { SerializedType, JsonObject } from './serialized-type';
2
+ import { SerializedType, JsonObject, SerializedTypeID } from './serialized-type';
3
3
  /**
4
4
  * The object representation of a Hop, an issuer AccountID, an account AccountID, and a Currency
5
5
  */
@@ -32,5 +32,6 @@ declare class PathSet extends SerializedType {
32
32
  * @returns an Array of Array of HopObjects, representing this PathSet
33
33
  */
34
34
  toJSON(): Array<Array<HopObject>>;
35
+ getSType(): SerializedTypeID;
35
36
  }
36
37
  export { PathSet };
@@ -5,7 +5,7 @@ const account_id_1 = require("./account-id");
5
5
  const currency_1 = require("./currency");
6
6
  const binary_parser_1 = require("../serdes/binary-parser");
7
7
  const serialized_type_1 = require("./serialized-type");
8
- const buffer_1 = require("buffer/");
8
+ const utils_1 = require("@transia/isomorphic/utils");
9
9
  /**
10
10
  * Constants for separating Paths in a PathSet
11
11
  */
@@ -47,7 +47,7 @@ class Hop extends serialized_type_1.SerializedType {
47
47
  if (value instanceof Hop) {
48
48
  return value;
49
49
  }
50
- const bytes = [buffer_1.Buffer.from([0])];
50
+ const bytes = [Uint8Array.from([0])];
51
51
  if (value.account) {
52
52
  bytes.push(account_id_1.AccountID.from(value.account).toBytes());
53
53
  bytes[0][0] |= TYPE_ACCOUNT;
@@ -60,7 +60,7 @@ class Hop extends serialized_type_1.SerializedType {
60
60
  bytes.push(account_id_1.AccountID.from(value.issuer).toBytes());
61
61
  bytes[0][0] |= TYPE_ISSUER;
62
62
  }
63
- return new Hop(buffer_1.Buffer.concat(bytes));
63
+ return new Hop((0, utils_1.concat)(bytes));
64
64
  }
65
65
  /**
66
66
  * Construct a Hop from a BinaryParser
@@ -70,7 +70,7 @@ class Hop extends serialized_type_1.SerializedType {
70
70
  */
71
71
  static fromParser(parser) {
72
72
  const type = parser.readUInt8();
73
- const bytes = [buffer_1.Buffer.from([type])];
73
+ const bytes = [Uint8Array.from([type])];
74
74
  if (type & TYPE_ACCOUNT) {
75
75
  bytes.push(parser.read(account_id_1.AccountID.width));
76
76
  }
@@ -80,7 +80,7 @@ class Hop extends serialized_type_1.SerializedType {
80
80
  if (type & TYPE_ISSUER) {
81
81
  bytes.push(parser.read(account_id_1.AccountID.width));
82
82
  }
83
- return new Hop(buffer_1.Buffer.concat(bytes));
83
+ return new Hop((0, utils_1.concat)(bytes));
84
84
  }
85
85
  /**
86
86
  * Get the JSON interpretation of this hop
@@ -88,7 +88,7 @@ class Hop extends serialized_type_1.SerializedType {
88
88
  * @returns a HopObject, an JS object with optional account, issuer, and currency
89
89
  */
90
90
  toJSON() {
91
- const hopParser = new binary_parser_1.BinaryParser(this.bytes.toString('hex'));
91
+ const hopParser = new binary_parser_1.BinaryParser((0, utils_1.bytesToHex)(this.bytes));
92
92
  const type = hopParser.readUInt8();
93
93
  let account, currency, issuer;
94
94
  if (type & TYPE_ACCOUNT) {
@@ -139,7 +139,7 @@ class Path extends serialized_type_1.SerializedType {
139
139
  value.forEach((hop) => {
140
140
  bytes.push(Hop.from(hop).toBytes());
141
141
  });
142
- return new Path(buffer_1.Buffer.concat(bytes));
142
+ return new Path((0, utils_1.concat)(bytes));
143
143
  }
144
144
  /**
145
145
  * Read a Path from a BinaryParser
@@ -156,7 +156,7 @@ class Path extends serialized_type_1.SerializedType {
156
156
  break;
157
157
  }
158
158
  }
159
- return new Path(buffer_1.Buffer.concat(bytes));
159
+ return new Path((0, utils_1.concat)(bytes));
160
160
  }
161
161
  /**
162
162
  * Get the JSON representation of this Path
@@ -190,10 +190,10 @@ class PathSet extends serialized_type_1.SerializedType {
190
190
  const bytes = [];
191
191
  value.forEach((path) => {
192
192
  bytes.push(Path.from(path).toBytes());
193
- bytes.push(buffer_1.Buffer.from([PATH_SEPARATOR_BYTE]));
193
+ bytes.push(Uint8Array.from([PATH_SEPARATOR_BYTE]));
194
194
  });
195
- bytes[bytes.length - 1] = buffer_1.Buffer.from([PATHSET_END_BYTE]);
196
- return new PathSet(buffer_1.Buffer.concat(bytes));
195
+ bytes[bytes.length - 1] = Uint8Array.from([PATHSET_END_BYTE]);
196
+ return new PathSet((0, utils_1.concat)(bytes));
197
197
  }
198
198
  throw new Error('Cannot construct PathSet from given value');
199
199
  }
@@ -212,7 +212,7 @@ class PathSet extends serialized_type_1.SerializedType {
212
212
  break;
213
213
  }
214
214
  }
215
- return new PathSet(buffer_1.Buffer.concat(bytes));
215
+ return new PathSet((0, utils_1.concat)(bytes));
216
216
  }
217
217
  /**
218
218
  * Get the JSON representation of this PathSet
@@ -228,6 +228,9 @@ class PathSet extends serialized_type_1.SerializedType {
228
228
  }
229
229
  return json;
230
230
  }
231
+ getSType() {
232
+ return serialized_type_1.SerializedTypeID.STI_PATHSET;
233
+ }
231
234
  }
232
235
  exports.PathSet = PathSet;
233
236
  //# sourceMappingURL=path-set.js.map