@jsonjoy.com/json-pack 1.20.0 → 17.59.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 (344) hide show
  1. package/lib/JsonPackExtension.d.ts +8 -0
  2. package/lib/JsonPackExtension.js +8 -0
  3. package/lib/JsonPackExtension.js.map +1 -1
  4. package/lib/JsonPackMpint.d.ts +25 -0
  5. package/lib/JsonPackMpint.js +31 -1
  6. package/lib/JsonPackMpint.js.map +1 -1
  7. package/lib/JsonPackValue.d.ts +10 -0
  8. package/lib/JsonPackValue.js +10 -0
  9. package/lib/JsonPackValue.js.map +1 -1
  10. package/lib/avro/AvroDecoder.d.ts +67 -0
  11. package/lib/avro/AvroDecoder.js +77 -5
  12. package/lib/avro/AvroDecoder.js.map +1 -1
  13. package/lib/avro/AvroEncoder.d.ts +71 -0
  14. package/lib/avro/AvroEncoder.js +90 -12
  15. package/lib/avro/AvroEncoder.js.map +1 -1
  16. package/lib/avro/AvroSchemaDecoder.d.ts +53 -0
  17. package/lib/avro/AvroSchemaDecoder.js +60 -3
  18. package/lib/avro/AvroSchemaDecoder.js.map +1 -1
  19. package/lib/avro/AvroSchemaEncoder.d.ts +65 -0
  20. package/lib/avro/AvroSchemaEncoder.js +84 -5
  21. package/lib/avro/AvroSchemaEncoder.js.map +1 -1
  22. package/lib/avro/AvroSchemaValidator.d.ts +10 -0
  23. package/lib/avro/AvroSchemaValidator.js +18 -1
  24. package/lib/avro/AvroSchemaValidator.js.map +1 -1
  25. package/lib/avro/types.d.ts +31 -0
  26. package/lib/avro/types.js +4 -0
  27. package/lib/avro/types.js.map +1 -1
  28. package/lib/bencode/BencodeDecoder.js +9 -9
  29. package/lib/bencode/BencodeDecoder.js.map +1 -1
  30. package/lib/bencode/BencodeEncoder.d.ts +5 -0
  31. package/lib/bencode/BencodeEncoder.js +25 -20
  32. package/lib/bencode/BencodeEncoder.js.map +1 -1
  33. package/lib/bson/BsonDecoder.js +48 -33
  34. package/lib/bson/BsonDecoder.js.map +1 -1
  35. package/lib/bson/BsonEncoder.js +11 -3
  36. package/lib/bson/BsonEncoder.js.map +1 -1
  37. package/lib/cbor/CborDecoder.d.ts +24 -0
  38. package/lib/cbor/CborDecoder.js +94 -56
  39. package/lib/cbor/CborDecoder.js.map +1 -1
  40. package/lib/cbor/CborDecoderBase.d.ts +1 -0
  41. package/lib/cbor/CborDecoderBase.js +63 -53
  42. package/lib/cbor/CborDecoderBase.js.map +1 -1
  43. package/lib/cbor/CborEncoder.d.ts +5 -0
  44. package/lib/cbor/CborEncoder.js +9 -3
  45. package/lib/cbor/CborEncoder.js.map +1 -1
  46. package/lib/cbor/CborEncoderFast.d.ts +7 -0
  47. package/lib/cbor/CborEncoderFast.js +22 -14
  48. package/lib/cbor/CborEncoderFast.js.map +1 -1
  49. package/lib/cbor/CborEncoderStable.d.ts +1 -0
  50. package/lib/cbor/CborEncoderStable.js +2 -1
  51. package/lib/cbor/CborEncoderStable.js.map +1 -1
  52. package/lib/cbor/shared.d.ts +1 -1
  53. package/lib/codecs/Codecs.d.ts +1 -1
  54. package/lib/codecs/cbor.js +1 -1
  55. package/lib/codecs/cbor.js.map +1 -1
  56. package/lib/codecs/json.js +1 -1
  57. package/lib/codecs/json.js.map +1 -1
  58. package/lib/codecs/msgpack.js +1 -1
  59. package/lib/codecs/msgpack.js.map +1 -1
  60. package/lib/ejson/EjsonDecoder.d.ts +5 -0
  61. package/lib/ejson/EjsonDecoder.js +72 -37
  62. package/lib/ejson/EjsonDecoder.js.map +1 -1
  63. package/lib/ejson/EjsonEncoder.d.ts +5 -0
  64. package/lib/ejson/EjsonEncoder.js +149 -114
  65. package/lib/ejson/EjsonEncoder.js.map +1 -1
  66. package/lib/ejson/index.js +1 -0
  67. package/lib/ejson/index.js.map +1 -1
  68. package/lib/ion/Import.d.ts +1 -1
  69. package/lib/ion/Import.js.map +1 -1
  70. package/lib/ion/IonDecoder.d.ts +0 -1
  71. package/lib/ion/IonDecoder.js +4 -3
  72. package/lib/ion/IonDecoder.js.map +1 -1
  73. package/lib/ion/IonDecoderBase.js +29 -18
  74. package/lib/ion/IonDecoderBase.js.map +1 -1
  75. package/lib/ion/IonEncoderFast.d.ts +1 -1
  76. package/lib/ion/IonEncoderFast.js +30 -30
  77. package/lib/ion/IonEncoderFast.js.map +1 -1
  78. package/lib/ion/ast.d.ts +4 -1
  79. package/lib/ion/symbols.d.ts +1 -1
  80. package/lib/json/JsonDecoder.js +72 -66
  81. package/lib/json/JsonDecoder.js.map +1 -1
  82. package/lib/json/JsonDecoderDag.js +14 -0
  83. package/lib/json/JsonDecoderDag.js.map +1 -1
  84. package/lib/json/JsonDecoderPartial.d.ts +22 -0
  85. package/lib/json/JsonDecoderPartial.js +30 -8
  86. package/lib/json/JsonDecoderPartial.js.map +1 -1
  87. package/lib/json/JsonEncoder.d.ts +5 -0
  88. package/lib/json/JsonEncoder.js +68 -54
  89. package/lib/json/JsonEncoder.js.map +1 -1
  90. package/lib/json/JsonEncoderDag.d.ts +17 -0
  91. package/lib/json/JsonEncoderDag.js +27 -10
  92. package/lib/json/JsonEncoderDag.js.map +1 -1
  93. package/lib/json/JsonEncoderStable.js +5 -5
  94. package/lib/json/JsonEncoderStable.js.map +1 -1
  95. package/lib/json-binary/codec.d.ts +8 -1
  96. package/lib/json-binary/codec.js +7 -0
  97. package/lib/json-binary/codec.js.map +1 -1
  98. package/lib/msgpack/MsgPackDecoder.d.ts +27 -0
  99. package/lib/msgpack/MsgPackDecoder.js +55 -23
  100. package/lib/msgpack/MsgPackDecoder.js.map +1 -1
  101. package/lib/msgpack/MsgPackDecoderFast.d.ts +8 -0
  102. package/lib/msgpack/MsgPackDecoderFast.js +14 -5
  103. package/lib/msgpack/MsgPackDecoderFast.js.map +1 -1
  104. package/lib/msgpack/MsgPackEncoder.d.ts +3 -0
  105. package/lib/msgpack/MsgPackEncoder.js +7 -4
  106. package/lib/msgpack/MsgPackEncoder.js.map +1 -1
  107. package/lib/msgpack/MsgPackEncoderFast.d.ts +26 -4
  108. package/lib/msgpack/MsgPackEncoderFast.js +31 -0
  109. package/lib/msgpack/MsgPackEncoderFast.js.map +1 -1
  110. package/lib/msgpack/MsgPackEncoderStable.d.ts +3 -0
  111. package/lib/msgpack/MsgPackEncoderStable.js +3 -0
  112. package/lib/msgpack/MsgPackEncoderStable.js.map +1 -1
  113. package/lib/msgpack/MsgPackToJsonConverter.d.ts +30 -4
  114. package/lib/msgpack/MsgPackToJsonConverter.js +32 -5
  115. package/lib/msgpack/MsgPackToJsonConverter.js.map +1 -1
  116. package/lib/msgpack/index.d.ts +29 -0
  117. package/lib/msgpack/index.js +30 -0
  118. package/lib/msgpack/index.js.map +1 -1
  119. package/lib/msgpack/shallow-read.js +7 -7
  120. package/lib/msgpack/shallow-read.js.map +1 -1
  121. package/lib/msgpack/types.d.ts +1 -0
  122. package/lib/msgpack/util.d.ts +1 -1
  123. package/lib/nfs/v3/FullNfsv3Encoder.d.ts +3 -3
  124. package/lib/nfs/v3/FullNfsv3Encoder.js +3 -3
  125. package/lib/nfs/v3/FullNfsv3Encoder.js.map +1 -1
  126. package/lib/nfs/v3/Nfsv3Decoder.js +51 -50
  127. package/lib/nfs/v3/Nfsv3Decoder.js.map +1 -1
  128. package/lib/nfs/v3/Nfsv3Encoder.d.ts +2 -2
  129. package/lib/nfs/v3/Nfsv3Encoder.js +52 -52
  130. package/lib/nfs/v3/Nfsv3Encoder.js.map +1 -1
  131. package/lib/nfs/v3/constants.d.ts +34 -0
  132. package/lib/nfs/v3/constants.js +4 -0
  133. package/lib/nfs/v3/constants.js.map +1 -1
  134. package/lib/nfs/v3/locks/NlmDecoder.js +20 -20
  135. package/lib/nfs/v3/locks/NlmDecoder.js.map +1 -1
  136. package/lib/nfs/v3/locks/NlmEncoder.d.ts +2 -2
  137. package/lib/nfs/v3/locks/NlmEncoder.js +20 -20
  138. package/lib/nfs/v3/locks/NlmEncoder.js.map +1 -1
  139. package/lib/nfs/v3/locks/constants.d.ts +9 -0
  140. package/lib/nfs/v3/locks/messages.d.ts +58 -1
  141. package/lib/nfs/v3/locks/messages.js +54 -0
  142. package/lib/nfs/v3/locks/messages.js.map +1 -1
  143. package/lib/nfs/v3/locks/structs.d.ts +15 -0
  144. package/lib/nfs/v3/locks/structs.js +15 -0
  145. package/lib/nfs/v3/locks/structs.js.map +1 -1
  146. package/lib/nfs/v3/messages.d.ts +249 -0
  147. package/lib/nfs/v3/messages.js +249 -0
  148. package/lib/nfs/v3/messages.js.map +1 -1
  149. package/lib/nfs/v3/mount/MountDecoder.js +12 -12
  150. package/lib/nfs/v3/mount/MountEncoder.d.ts +2 -2
  151. package/lib/nfs/v3/mount/MountEncoder.js +13 -13
  152. package/lib/nfs/v3/mount/MountEncoder.js.map +1 -1
  153. package/lib/nfs/v3/mount/constants.d.ts +9 -0
  154. package/lib/nfs/v3/mount/messages.d.ts +31 -1
  155. package/lib/nfs/v3/mount/messages.js +27 -0
  156. package/lib/nfs/v3/mount/messages.js.map +1 -1
  157. package/lib/nfs/v3/mount/structs.d.ts +15 -0
  158. package/lib/nfs/v3/mount/structs.js +15 -0
  159. package/lib/nfs/v3/mount/structs.js.map +1 -1
  160. package/lib/nfs/v3/structs.d.ts +78 -0
  161. package/lib/nfs/v3/structs.js +78 -0
  162. package/lib/nfs/v3/structs.js.map +1 -1
  163. package/lib/nfs/v4/Nfsv4Decoder.d.ts +14 -12
  164. package/lib/nfs/v4/Nfsv4Decoder.js +241 -165
  165. package/lib/nfs/v4/Nfsv4Decoder.js.map +1 -1
  166. package/lib/nfs/v4/Nfsv4Encoder.d.ts +6 -93
  167. package/lib/nfs/v4/Nfsv4Encoder.js +8 -824
  168. package/lib/nfs/v4/Nfsv4Encoder.js.map +1 -1
  169. package/lib/nfs/v4/Nfsv4FullEncoder.d.ts +32 -0
  170. package/lib/nfs/v4/Nfsv4FullEncoder.js +72 -0
  171. package/lib/nfs/v4/Nfsv4FullEncoder.js.map +1 -0
  172. package/lib/nfs/v4/attributes.d.ts +79 -0
  173. package/lib/nfs/v4/attributes.js +265 -0
  174. package/lib/nfs/v4/attributes.js.map +1 -0
  175. package/lib/nfs/v4/builder.d.ts +333 -0
  176. package/lib/nfs/v4/builder.js +460 -0
  177. package/lib/nfs/v4/builder.js.map +1 -0
  178. package/lib/nfs/v4/client/NfsFsDir.d.ts +23 -0
  179. package/lib/nfs/v4/client/NfsFsDir.js +132 -0
  180. package/lib/nfs/v4/client/NfsFsDir.js.map +1 -0
  181. package/lib/nfs/v4/client/NfsFsDirent.d.ts +17 -0
  182. package/lib/nfs/v4/client/NfsFsDirent.js +35 -0
  183. package/lib/nfs/v4/client/NfsFsDirent.js.map +1 -0
  184. package/lib/nfs/v4/client/NfsFsFileHandle.d.ts +35 -0
  185. package/lib/nfs/v4/client/NfsFsFileHandle.js +271 -0
  186. package/lib/nfs/v4/client/NfsFsFileHandle.js.map +1 -0
  187. package/lib/nfs/v4/client/NfsFsStats.d.ts +34 -0
  188. package/lib/nfs/v4/client/NfsFsStats.js +52 -0
  189. package/lib/nfs/v4/client/NfsFsStats.js.map +1 -0
  190. package/lib/nfs/v4/client/Nfsv4FsClient.d.ts +53 -0
  191. package/lib/nfs/v4/client/Nfsv4FsClient.js +812 -0
  192. package/lib/nfs/v4/client/Nfsv4FsClient.js.map +1 -0
  193. package/lib/nfs/v4/client/Nfsv4TcpClient.d.ts +41 -0
  194. package/lib/nfs/v4/client/Nfsv4TcpClient.js +216 -0
  195. package/lib/nfs/v4/client/Nfsv4TcpClient.js.map +1 -0
  196. package/lib/nfs/v4/client/types.d.ts +9 -0
  197. package/lib/nfs/v4/client/types.js +3 -0
  198. package/lib/nfs/v4/client/types.js.map +1 -0
  199. package/lib/nfs/v4/constants.d.ts +80 -0
  200. package/lib/nfs/v4/constants.js +4 -0
  201. package/lib/nfs/v4/constants.js.map +1 -1
  202. package/lib/nfs/v4/format.d.ts +23 -0
  203. package/lib/nfs/v4/format.js +870 -0
  204. package/lib/nfs/v4/format.js.map +1 -0
  205. package/lib/nfs/v4/index.d.ts +3 -1
  206. package/lib/nfs/v4/index.js +3 -1
  207. package/lib/nfs/v4/index.js.map +1 -1
  208. package/lib/nfs/v4/messages.d.ts +208 -90
  209. package/lib/nfs/v4/messages.js +585 -1
  210. package/lib/nfs/v4/messages.js.map +1 -1
  211. package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.d.ts +30 -0
  212. package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.js +176 -0
  213. package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.js.map +1 -0
  214. package/lib/nfs/v4/server/Nfsv4Connection.d.ts +45 -0
  215. package/lib/nfs/v4/server/Nfsv4Connection.js +163 -0
  216. package/lib/nfs/v4/server/Nfsv4Connection.js.map +1 -0
  217. package/lib/nfs/v4/server/Nfsv4TcpServer.d.ts +25 -0
  218. package/lib/nfs/v4/server/Nfsv4TcpServer.js +92 -0
  219. package/lib/nfs/v4/server/Nfsv4TcpServer.js.map +1 -0
  220. package/lib/nfs/v4/server/operations/ByteRangeLock.d.ts +79 -0
  221. package/lib/nfs/v4/server/operations/ByteRangeLock.js +63 -0
  222. package/lib/nfs/v4/server/operations/ByteRangeLock.js.map +1 -0
  223. package/lib/nfs/v4/server/operations/ClientRecord.d.ts +110 -0
  224. package/lib/nfs/v4/server/operations/ClientRecord.js +70 -0
  225. package/lib/nfs/v4/server/operations/ClientRecord.js.map +1 -0
  226. package/lib/nfs/v4/server/operations/FilesystemStats.d.ts +30 -0
  227. package/lib/nfs/v4/server/operations/FilesystemStats.js +30 -0
  228. package/lib/nfs/v4/server/operations/FilesystemStats.js.map +1 -0
  229. package/lib/nfs/v4/server/operations/LockOwnerState.d.ts +82 -0
  230. package/lib/nfs/v4/server/operations/LockOwnerState.js +57 -0
  231. package/lib/nfs/v4/server/operations/LockOwnerState.js.map +1 -0
  232. package/lib/nfs/v4/server/operations/LockStateid.d.ts +64 -0
  233. package/lib/nfs/v4/server/operations/LockStateid.js +58 -0
  234. package/lib/nfs/v4/server/operations/LockStateid.js.map +1 -0
  235. package/lib/nfs/v4/server/operations/Nfsv4Operations.d.ts +45 -0
  236. package/lib/nfs/v4/server/operations/Nfsv4Operations.js +3 -0
  237. package/lib/nfs/v4/server/operations/Nfsv4Operations.js.map +1 -0
  238. package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.d.ts +42 -0
  239. package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.js +159 -0
  240. package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.js.map +1 -0
  241. package/lib/nfs/v4/server/operations/OpenFileState.d.ts +102 -0
  242. package/lib/nfs/v4/server/operations/OpenFileState.js +68 -0
  243. package/lib/nfs/v4/server/operations/OpenFileState.js.map +1 -0
  244. package/lib/nfs/v4/server/operations/OpenOwnerState.d.ts +83 -0
  245. package/lib/nfs/v4/server/operations/OpenOwnerState.js +58 -0
  246. package/lib/nfs/v4/server/operations/OpenOwnerState.js.map +1 -0
  247. package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.d.ts +169 -0
  248. package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.js +1474 -0
  249. package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.js.map +1 -0
  250. package/lib/nfs/v4/server/operations/node/attrs.d.ts +17 -0
  251. package/lib/nfs/v4/server/operations/node/attrs.js +275 -0
  252. package/lib/nfs/v4/server/operations/node/attrs.js.map +1 -0
  253. package/lib/nfs/v4/server/operations/node/fh.d.ts +93 -0
  254. package/lib/nfs/v4/server/operations/node/fh.js +209 -0
  255. package/lib/nfs/v4/server/operations/node/fh.js.map +1 -0
  256. package/lib/nfs/v4/server/operations/node/util.d.ts +4 -0
  257. package/lib/nfs/v4/server/operations/node/util.js +17 -0
  258. package/lib/nfs/v4/server/operations/node/util.js.map +1 -0
  259. package/lib/nfs/v4/server/types.d.ts +4 -0
  260. package/lib/nfs/v4/server/types.js +3 -0
  261. package/lib/nfs/v4/server/types.js.map +1 -0
  262. package/lib/nfs/v4/server/util.d.ts +5 -0
  263. package/lib/nfs/v4/server/util.js +184 -0
  264. package/lib/nfs/v4/server/util.js.map +1 -0
  265. package/lib/nfs/v4/structs.d.ts +243 -56
  266. package/lib/nfs/v4/structs.js +367 -17
  267. package/lib/nfs/v4/structs.js.map +1 -1
  268. package/lib/resp/RespDecoder.d.ts +9 -0
  269. package/lib/resp/RespDecoder.js +93 -76
  270. package/lib/resp/RespDecoder.js.map +1 -1
  271. package/lib/resp/RespEncoder.d.ts +8 -0
  272. package/lib/resp/RespEncoder.js +107 -89
  273. package/lib/resp/RespEncoder.js.map +1 -1
  274. package/lib/resp/RespEncoderLegacy.d.ts +3 -0
  275. package/lib/resp/RespEncoderLegacy.js +7 -4
  276. package/lib/resp/RespEncoderLegacy.js.map +1 -1
  277. package/lib/resp/RespStreamingDecoder.d.ts +48 -0
  278. package/lib/resp/RespStreamingDecoder.js +48 -0
  279. package/lib/resp/RespStreamingDecoder.js.map +1 -1
  280. package/lib/resp/constants.d.ts +19 -19
  281. package/lib/rm/RmRecordDecoder.js.map +1 -1
  282. package/lib/rm/RmRecordEncoder.d.ts +17 -1
  283. package/lib/rm/RmRecordEncoder.js +40 -1
  284. package/lib/rm/RmRecordEncoder.js.map +1 -1
  285. package/lib/rpc/RpcMessageDecoder.d.ts +1 -1
  286. package/lib/rpc/RpcMessageDecoder.js +11 -8
  287. package/lib/rpc/RpcMessageDecoder.js.map +1 -1
  288. package/lib/rpc/RpcMessageEncoder.d.ts +2 -2
  289. package/lib/rpc/RpcMessageEncoder.js +6 -6
  290. package/lib/rpc/RpcMessageEncoder.js.map +1 -1
  291. package/lib/rpc/constants.d.ts +76 -28
  292. package/lib/rpc/constants.js +10 -0
  293. package/lib/rpc/constants.js.map +1 -1
  294. package/lib/ssh/SshDecoder.d.ts +47 -1
  295. package/lib/ssh/SshDecoder.js +52 -2
  296. package/lib/ssh/SshDecoder.js.map +1 -1
  297. package/lib/ssh/SshEncoder.d.ts +70 -1
  298. package/lib/ssh/SshEncoder.js +81 -8
  299. package/lib/ssh/SshEncoder.js.map +1 -1
  300. package/lib/ssh/index.d.ts +6 -0
  301. package/lib/ssh/index.js +6 -0
  302. package/lib/ssh/index.js.map +1 -1
  303. package/lib/ubjson/UbjsonDecoder.js +1 -1
  304. package/lib/ubjson/UbjsonDecoder.js.map +1 -1
  305. package/lib/ubjson/UbjsonEncoder.js +6 -5
  306. package/lib/ubjson/UbjsonEncoder.js.map +1 -1
  307. package/lib/util/CompressionTable.js +4 -4
  308. package/lib/util/CompressionTable.js.map +1 -1
  309. package/lib/util/DecompressionTable.js +3 -2
  310. package/lib/util/DecompressionTable.js.map +1 -1
  311. package/lib/ws/WsFrameDecoder.d.ts +18 -0
  312. package/lib/ws/WsFrameDecoder.js +18 -0
  313. package/lib/ws/WsFrameDecoder.js.map +1 -1
  314. package/lib/ws/WsFrameEncoder.d.ts +1 -1
  315. package/lib/ws/WsFrameEncoder.js +3 -3
  316. package/lib/ws/WsFrameEncoder.js.map +1 -1
  317. package/lib/ws/constants.js +5 -0
  318. package/lib/ws/constants.js.map +1 -1
  319. package/lib/xdr/XdrDecoder.d.ts +62 -0
  320. package/lib/xdr/XdrDecoder.js +73 -6
  321. package/lib/xdr/XdrDecoder.js.map +1 -1
  322. package/lib/xdr/XdrEncoder.d.ts +71 -0
  323. package/lib/xdr/XdrEncoder.js +88 -13
  324. package/lib/xdr/XdrEncoder.js.map +1 -1
  325. package/lib/xdr/XdrSchemaDecoder.d.ts +40 -0
  326. package/lib/xdr/XdrSchemaDecoder.js +52 -0
  327. package/lib/xdr/XdrSchemaDecoder.js.map +1 -1
  328. package/lib/xdr/XdrSchemaEncoder.d.ts +5 -0
  329. package/lib/xdr/XdrSchemaEncoder.js +9 -0
  330. package/lib/xdr/XdrSchemaEncoder.js.map +1 -1
  331. package/lib/xdr/XdrSchemaValidator.d.ts +9 -0
  332. package/lib/xdr/XdrSchemaValidator.js +42 -11
  333. package/lib/xdr/XdrSchemaValidator.js.map +1 -1
  334. package/lib/xdr/XdrUnion.d.ts +5 -0
  335. package/lib/xdr/XdrUnion.js +5 -0
  336. package/lib/xdr/XdrUnion.js.map +1 -1
  337. package/lib/xdr/index.d.ts +14 -0
  338. package/lib/xdr/index.js +14 -0
  339. package/lib/xdr/index.js.map +1 -1
  340. package/lib/xdr/types.d.ts +52 -0
  341. package/package.json +35 -56
  342. package/lib/nfs/v4/FullNfsv4Encoder.d.ts +0 -28
  343. package/lib/nfs/v4/FullNfsv4Encoder.js +0 -73
  344. package/lib/nfs/v4/FullNfsv4Encoder.js.map +0 -1
@@ -12,26 +12,16 @@ class Nfsv4Decoder {
12
12
  this.xdr = new XdrDecoder_1.XdrDecoder(reader);
13
13
  }
14
14
  decodeCompound(reader, isRequest) {
15
- this.xdr.reader = reader;
16
- const startPos = reader.x;
17
- try {
18
- if (isRequest) {
19
- return this.decodeCompoundRequest();
20
- }
21
- else {
22
- return this.decodeCompoundResponse();
23
- }
15
+ if (isRequest) {
16
+ return this.decodeCompoundRequest(reader);
24
17
  }
25
- catch (err) {
26
- if (err instanceof RangeError) {
27
- reader.x = startPos;
28
- return undefined;
29
- }
30
- throw err;
18
+ else {
19
+ return this.decodeCompoundResponse(reader);
31
20
  }
32
21
  }
33
- decodeCompoundRequest() {
22
+ decodeCompoundRequest(reader) {
34
23
  const xdr = this.xdr;
24
+ xdr.reader = reader;
35
25
  const tag = xdr.readString();
36
26
  const minorversion = xdr.readUnsignedInt();
37
27
  const argarray = [];
@@ -44,8 +34,9 @@ class Nfsv4Decoder {
44
34
  }
45
35
  return new msg.Nfsv4CompoundRequest(tag, minorversion, argarray);
46
36
  }
47
- decodeCompoundResponse() {
37
+ decodeCompoundResponse(reader) {
48
38
  const xdr = this.xdr;
39
+ xdr.reader = reader;
49
40
  const status = xdr.readUnsignedInt();
50
41
  const tag = xdr.readString();
51
42
  const resarray = [];
@@ -59,167 +50,172 @@ class Nfsv4Decoder {
59
50
  return new msg.Nfsv4CompoundResponse(status, tag, resarray);
60
51
  }
61
52
  decodeRequest(op) {
53
+ const xdr = this.xdr;
62
54
  switch (op) {
63
- case 3:
64
- return this.decodeAccessRequest();
65
- case 4:
66
- return this.decodeCloseRequest();
67
- case 5:
68
- return this.decodeCommitRequest();
69
- case 6:
55
+ case 3 /* Nfsv4Op.ACCESS */:
56
+ return msg.Nfsv4AccessRequest.decode(xdr);
57
+ case 4 /* Nfsv4Op.CLOSE */:
58
+ return msg.Nfsv4CloseRequest.decode(xdr);
59
+ case 5 /* Nfsv4Op.COMMIT */:
60
+ return msg.Nfsv4CommitRequest.decode(xdr);
61
+ case 6 /* Nfsv4Op.CREATE */:
70
62
  return this.decodeCreateRequest();
71
- case 7:
72
- return this.decodeDelegpurgeRequest();
73
- case 8:
74
- return this.decodeDelegreturnRequest();
75
- case 9:
63
+ case 7 /* Nfsv4Op.DELEGPURGE */:
64
+ return msg.Nfsv4DelegpurgeRequest.decode(xdr);
65
+ case 8 /* Nfsv4Op.DELEGRETURN */:
66
+ return msg.Nfsv4DelegreturnRequest.decode(xdr);
67
+ case 9 /* Nfsv4Op.GETATTR */:
76
68
  return this.decodeGetattrRequest();
77
- case 10:
69
+ case 10 /* Nfsv4Op.GETFH */:
78
70
  return this.decodeGetfhRequest();
79
- case 11:
71
+ case 11 /* Nfsv4Op.LINK */:
80
72
  return this.decodeLinkRequest();
81
- case 12:
73
+ case 12 /* Nfsv4Op.LOCK */:
82
74
  return this.decodeLockRequest();
83
- case 13:
75
+ case 13 /* Nfsv4Op.LOCKT */:
84
76
  return this.decodeLocktRequest();
85
- case 14:
77
+ case 14 /* Nfsv4Op.LOCKU */:
86
78
  return this.decodeLockuRequest();
87
- case 15:
79
+ case 15 /* Nfsv4Op.LOOKUP */:
88
80
  return this.decodeLookupRequest();
89
- case 16:
81
+ case 16 /* Nfsv4Op.LOOKUPP */:
90
82
  return this.decodeLookuppRequest();
91
- case 17:
83
+ case 17 /* Nfsv4Op.NVERIFY */:
92
84
  return this.decodeNverifyRequest();
93
- case 18:
85
+ case 18 /* Nfsv4Op.OPEN */:
94
86
  return this.decodeOpenRequest();
95
- case 19:
87
+ case 19 /* Nfsv4Op.OPENATTR */:
96
88
  return this.decodeOpenattrRequest();
97
- case 20:
89
+ case 20 /* Nfsv4Op.OPEN_CONFIRM */:
98
90
  return this.decodeOpenConfirmRequest();
99
- case 21:
91
+ case 21 /* Nfsv4Op.OPEN_DOWNGRADE */:
100
92
  return this.decodeOpenDowngradeRequest();
101
- case 22:
93
+ case 22 /* Nfsv4Op.PUTFH */:
102
94
  return this.decodePutfhRequest();
103
- case 23:
104
- return this.decodePutpubfhRequest();
105
- case 24:
106
- return this.decodePutrootfhRequest();
107
- case 25:
95
+ case 23 /* Nfsv4Op.PUTPUBFH */:
96
+ return new msg.Nfsv4PutpubfhRequest();
97
+ case 24 /* Nfsv4Op.PUTROOTFH */:
98
+ return new msg.Nfsv4PutrootfhRequest();
99
+ case 25 /* Nfsv4Op.READ */:
108
100
  return this.decodeReadRequest();
109
- case 26:
101
+ case 26 /* Nfsv4Op.READDIR */:
110
102
  return this.decodeReaddirRequest();
111
- case 27:
103
+ case 27 /* Nfsv4Op.READLINK */:
112
104
  return this.decodeReadlinkRequest();
113
- case 28:
105
+ case 28 /* Nfsv4Op.REMOVE */:
114
106
  return this.decodeRemoveRequest();
115
- case 29:
107
+ case 29 /* Nfsv4Op.RENAME */:
116
108
  return this.decodeRenameRequest();
117
- case 30:
109
+ case 30 /* Nfsv4Op.RENEW */:
118
110
  return this.decodeRenewRequest();
119
- case 31:
111
+ case 31 /* Nfsv4Op.RESTOREFH */:
120
112
  return this.decodeRestorefhRequest();
121
- case 32:
122
- return this.decodeSavefhRequest();
123
- case 33:
113
+ case 32 /* Nfsv4Op.SAVEFH */:
114
+ return new msg.Nfsv4SavefhRequest();
115
+ case 33 /* Nfsv4Op.SECINFO */:
124
116
  return this.decodeSecinfoRequest();
125
- case 34:
117
+ case 34 /* Nfsv4Op.SETATTR */:
126
118
  return this.decodeSetattrRequest();
127
- case 35:
119
+ case 35 /* Nfsv4Op.SETCLIENTID */:
128
120
  return this.decodeSetclientidRequest();
129
- case 36:
121
+ case 36 /* Nfsv4Op.SETCLIENTID_CONFIRM */:
130
122
  return this.decodeSetclientidConfirmRequest();
131
- case 37:
123
+ case 37 /* Nfsv4Op.VERIFY */:
132
124
  return this.decodeVerifyRequest();
133
- case 38:
125
+ case 38 /* Nfsv4Op.WRITE */:
134
126
  return this.decodeWriteRequest();
135
- case 39:
127
+ case 39 /* Nfsv4Op.RELEASE_LOCKOWNER */:
136
128
  return this.decodeReleaseLockOwnerRequest();
137
- case 10044:
129
+ case 10044 /* Nfsv4Op.ILLEGAL */:
138
130
  return this.decodeIllegalRequest();
139
131
  default:
140
- throw new errors_1.Nfsv4DecodingError(`Unknown operation: ${op}`);
132
+ // Per RFC 7530 §15.2.4, operations 0, 1, 2 are not defined and any
133
+ // unknown operation code should be treated as ILLEGAL
134
+ return this.decodeIllegalRequest();
141
135
  }
142
136
  }
143
137
  decodeResponse(op) {
138
+ const xdr = this.xdr;
144
139
  switch (op) {
145
- case 3:
140
+ case 3 /* Nfsv4Op.ACCESS */:
146
141
  return this.decodeAccessResponse();
147
- case 4:
142
+ case 4 /* Nfsv4Op.CLOSE */:
148
143
  return this.decodeCloseResponse();
149
- case 5:
144
+ case 5 /* Nfsv4Op.COMMIT */:
150
145
  return this.decodeCommitResponse();
151
- case 6:
146
+ case 6 /* Nfsv4Op.CREATE */:
152
147
  return this.decodeCreateResponse();
153
- case 7:
148
+ case 7 /* Nfsv4Op.DELEGPURGE */:
154
149
  return this.decodeDelegpurgeResponse();
155
- case 8:
150
+ case 8 /* Nfsv4Op.DELEGRETURN */:
156
151
  return this.decodeDelegreturnResponse();
157
- case 9:
152
+ case 9 /* Nfsv4Op.GETATTR */:
158
153
  return this.decodeGetattrResponse();
159
- case 10:
154
+ case 10 /* Nfsv4Op.GETFH */:
160
155
  return this.decodeGetfhResponse();
161
- case 11:
156
+ case 11 /* Nfsv4Op.LINK */:
162
157
  return this.decodeLinkResponse();
163
- case 12:
158
+ case 12 /* Nfsv4Op.LOCK */:
164
159
  return this.decodeLockResponse();
165
- case 13:
160
+ case 13 /* Nfsv4Op.LOCKT */:
166
161
  return this.decodeLocktResponse();
167
- case 14:
162
+ case 14 /* Nfsv4Op.LOCKU */:
168
163
  return this.decodeLockuResponse();
169
- case 15:
164
+ case 15 /* Nfsv4Op.LOOKUP */:
170
165
  return this.decodeLookupResponse();
171
- case 16:
166
+ case 16 /* Nfsv4Op.LOOKUPP */:
172
167
  return this.decodeLookuppResponse();
173
- case 17:
168
+ case 17 /* Nfsv4Op.NVERIFY */:
174
169
  return this.decodeNverifyResponse();
175
- case 18:
170
+ case 18 /* Nfsv4Op.OPEN */:
176
171
  return this.decodeOpenResponse();
177
- case 19:
172
+ case 19 /* Nfsv4Op.OPENATTR */:
178
173
  return this.decodeOpenattrResponse();
179
- case 20:
174
+ case 20 /* Nfsv4Op.OPEN_CONFIRM */:
180
175
  return this.decodeOpenConfirmResponse();
181
- case 21:
176
+ case 21 /* Nfsv4Op.OPEN_DOWNGRADE */:
182
177
  return this.decodeOpenDowngradeResponse();
183
- case 22:
178
+ case 22 /* Nfsv4Op.PUTFH */:
184
179
  return this.decodePutfhResponse();
185
- case 23:
186
- return this.decodePutpubfhResponse();
187
- case 24:
180
+ case 23 /* Nfsv4Op.PUTPUBFH */:
181
+ return msg.Nfsv4PutpubfhResponse.decode(xdr);
182
+ case 24 /* Nfsv4Op.PUTROOTFH */:
188
183
  return this.decodePutrootfhResponse();
189
- case 25:
184
+ case 25 /* Nfsv4Op.READ */:
190
185
  return this.decodeReadResponse();
191
- case 26:
186
+ case 26 /* Nfsv4Op.READDIR */:
192
187
  return this.decodeReaddirResponse();
193
- case 27:
188
+ case 27 /* Nfsv4Op.READLINK */:
194
189
  return this.decodeReadlinkResponse();
195
- case 28:
190
+ case 28 /* Nfsv4Op.REMOVE */:
196
191
  return this.decodeRemoveResponse();
197
- case 29:
192
+ case 29 /* Nfsv4Op.RENAME */:
198
193
  return this.decodeRenameResponse();
199
- case 30:
194
+ case 30 /* Nfsv4Op.RENEW */:
200
195
  return this.decodeRenewResponse();
201
- case 31:
196
+ case 31 /* Nfsv4Op.RESTOREFH */:
202
197
  return this.decodeRestorefhResponse();
203
- case 32:
198
+ case 32 /* Nfsv4Op.SAVEFH */:
204
199
  return this.decodeSavefhResponse();
205
- case 33:
200
+ case 33 /* Nfsv4Op.SECINFO */:
206
201
  return this.decodeSecinfoResponse();
207
- case 34:
202
+ case 34 /* Nfsv4Op.SETATTR */:
208
203
  return this.decodeSetattrResponse();
209
- case 35:
204
+ case 35 /* Nfsv4Op.SETCLIENTID */:
210
205
  return this.decodeSetclientidResponse();
211
- case 36:
206
+ case 36 /* Nfsv4Op.SETCLIENTID_CONFIRM */:
212
207
  return this.decodeSetclientidConfirmResponse();
213
- case 37:
208
+ case 37 /* Nfsv4Op.VERIFY */:
214
209
  return this.decodeVerifyResponse();
215
- case 38:
210
+ case 38 /* Nfsv4Op.WRITE */:
216
211
  return this.decodeWriteResponse();
217
- case 39:
212
+ case 39 /* Nfsv4Op.RELEASE_LOCKOWNER */:
218
213
  return this.decodeReleaseLockOwnerResponse();
219
- case 10044:
214
+ case 10044 /* Nfsv4Op.ILLEGAL */:
220
215
  return this.decodeIllegalResponse();
221
216
  default:
222
- throw new errors_1.Nfsv4DecodingError(`Unknown operation: ${op}`);
217
+ // Per RFC 7530 §15.2.4, treat unknown operation codes as ILLEGAL
218
+ return this.decodeIllegalResponse();
223
219
  }
224
220
  }
225
221
  readFh() {
@@ -230,21 +226,14 @@ class Nfsv4Decoder {
230
226
  const data = this.xdr.readOpaque(8);
231
227
  return new structs.Nfsv4Verifier(data);
232
228
  }
233
- readTime() {
234
- const xdr = this.xdr;
235
- const seconds = xdr.readHyper();
236
- const nseconds = xdr.readUnsignedInt();
237
- return new structs.Nfsv4Time(seconds, nseconds);
238
- }
239
229
  readStateid() {
240
- const xdr = this.xdr;
241
- const seqid = xdr.readUnsignedInt();
242
- const other = xdr.readOpaque(12);
243
- return new structs.Nfsv4Stateid(seqid, other);
230
+ return structs.Nfsv4Stateid.decode(this.xdr);
244
231
  }
245
232
  readBitmap() {
246
233
  const xdr = this.xdr;
247
234
  const count = xdr.readUnsignedInt();
235
+ if (count > 8)
236
+ throw 10036 /* Nfsv4Stat.NFS4ERR_BADXDR */;
248
237
  const mask = [];
249
238
  for (let i = 0; i < count; i++)
250
239
  mask.push(xdr.readUnsignedInt());
@@ -336,13 +325,33 @@ class Nfsv4Decoder {
336
325
  throw new errors_1.Nfsv4DecodingError(`Unknown open claim type: ${claimType}`);
337
326
  }
338
327
  }
328
+ readOpenHow() {
329
+ const xdr = this.xdr;
330
+ const opentype = xdr.readUnsignedInt();
331
+ if (opentype === 0 /* Nfsv4OpenFlags.OPEN4_NOCREATE */)
332
+ return new structs.Nfsv4OpenHow(opentype);
333
+ const mode = xdr.readUnsignedInt();
334
+ switch (mode) {
335
+ case 0 /* Nfsv4CreateMode.UNCHECKED4 */:
336
+ case 1 /* Nfsv4CreateMode.GUARDED4 */: {
337
+ const createattrs = this.readFattr();
338
+ return new structs.Nfsv4OpenHow(opentype, new structs.Nfsv4CreateHow(mode, new structs.Nfsv4CreateAttrs(createattrs)));
339
+ }
340
+ case 2 /* Nfsv4CreateMode.EXCLUSIVE4 */: {
341
+ const createverf = this.readVerifier();
342
+ return new structs.Nfsv4OpenHow(opentype, new structs.Nfsv4CreateHow(mode, new structs.Nfsv4CreateVerf(createverf)));
343
+ }
344
+ default:
345
+ throw new errors_1.Nfsv4DecodingError(`Unknown create mode: ${mode}`);
346
+ }
347
+ }
339
348
  readOpenDelegation() {
340
349
  const xdr = this.xdr;
341
350
  const delegationType = xdr.readUnsignedInt();
342
351
  switch (delegationType) {
343
- case 0:
352
+ case 0 /* Nfsv4DelegType.OPEN_DELEGATE_NONE */:
344
353
  return new structs.Nfsv4OpenDelegation(delegationType);
345
- case 1: {
354
+ case 1 /* Nfsv4DelegType.OPEN_DELEGATE_READ */: {
346
355
  const stateid = this.readStateid();
347
356
  const recall = xdr.readBoolean();
348
357
  const aceCount = xdr.readUnsignedInt();
@@ -352,7 +361,7 @@ class Nfsv4Decoder {
352
361
  }
353
362
  return new structs.Nfsv4OpenDelegation(delegationType, new structs.Nfsv4OpenReadDelegation(stateid, recall, permissions));
354
363
  }
355
- case 2: {
364
+ case 2 /* Nfsv4DelegType.OPEN_DELEGATE_WRITE */: {
356
365
  const stateid = this.readStateid();
357
366
  const recall = xdr.readBoolean();
358
367
  const spaceLimit = xdr.readUnsignedHyper();
@@ -387,10 +396,6 @@ class Nfsv4Decoder {
387
396
  }
388
397
  return new structs.Nfsv4SecInfoFlavor(flavor);
389
398
  }
390
- decodeAccessRequest() {
391
- const access = this.xdr.readUnsignedInt();
392
- return new msg.Nfsv4AccessRequest(access);
393
- }
394
399
  decodeAccessResponse() {
395
400
  const xdr = this.xdr;
396
401
  const status = xdr.readUnsignedInt();
@@ -401,12 +406,6 @@ class Nfsv4Decoder {
401
406
  }
402
407
  return new msg.Nfsv4AccessResponse(status);
403
408
  }
404
- decodeCloseRequest() {
405
- const xdr = this.xdr;
406
- const seqid = xdr.readUnsignedInt();
407
- const openStateid = this.readStateid();
408
- return new msg.Nfsv4CloseRequest(seqid, openStateid);
409
- }
410
409
  decodeCloseResponse() {
411
410
  const status = this.xdr.readUnsignedInt();
412
411
  if (status === 0) {
@@ -415,12 +414,6 @@ class Nfsv4Decoder {
415
414
  }
416
415
  return new msg.Nfsv4CloseResponse(status);
417
416
  }
418
- decodeCommitRequest() {
419
- const xdr = this.xdr;
420
- const offset = xdr.readUnsignedHyper();
421
- const count = xdr.readUnsignedInt();
422
- return new msg.Nfsv4CommitRequest(offset, count);
423
- }
424
417
  decodeCommitResponse() {
425
418
  const status = this.xdr.readUnsignedInt();
426
419
  if (status === 0) {
@@ -433,26 +426,28 @@ class Nfsv4Decoder {
433
426
  const xdr = this.xdr;
434
427
  const type = xdr.readUnsignedInt();
435
428
  let objtype;
436
- const objname = xdr.readString();
437
- const createattrs = this.readFattr();
438
429
  switch (type) {
439
- case 5: {
430
+ case 5 /* Nfsv4FType.NF4LNK */: {
440
431
  const linkdata = xdr.readString();
441
- objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeLink(linkdata, createattrs));
432
+ objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeLink(linkdata));
442
433
  break;
443
434
  }
444
- case 3:
445
- case 4: {
435
+ case 3 /* Nfsv4FType.NF4BLK */:
436
+ case 4 /* Nfsv4FType.NF4CHR */: {
446
437
  const specdata1 = xdr.readUnsignedInt();
447
438
  const specdata2 = xdr.readUnsignedInt();
448
439
  const devdata = new structs.Nfsv4SpecData(specdata1, specdata2);
449
- objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeDevice(devdata, createattrs));
440
+ objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeDevice(devdata));
441
+ break;
442
+ }
443
+ default: {
444
+ objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeVoid());
450
445
  break;
451
446
  }
452
- default:
453
- objtype = new structs.Nfsv4CreateType(type, new structs.Nfsv4CreateTypeOther(createattrs));
454
447
  }
455
- return new msg.Nfsv4CreateRequest(objtype, objname);
448
+ const objname = xdr.readString();
449
+ const createattrs = this.readFattr();
450
+ return new msg.Nfsv4CreateRequest(objtype, objname, createattrs);
456
451
  }
457
452
  decodeCreateResponse() {
458
453
  const status = this.xdr.readUnsignedInt();
@@ -463,18 +458,10 @@ class Nfsv4Decoder {
463
458
  }
464
459
  return new msg.Nfsv4CreateResponse(status);
465
460
  }
466
- decodeDelegpurgeRequest() {
467
- const clientid = this.xdr.readUnsignedHyper();
468
- return new msg.Nfsv4DelegpurgeRequest(clientid);
469
- }
470
461
  decodeDelegpurgeResponse() {
471
462
  const status = this.xdr.readUnsignedInt();
472
463
  return new msg.Nfsv4DelegpurgeResponse(status);
473
464
  }
474
- decodeDelegreturnRequest() {
475
- const delegStateid = this.readStateid();
476
- return new msg.Nfsv4DelegreturnRequest(delegStateid);
477
- }
478
465
  decodeDelegreturnResponse() {
479
466
  const status = this.xdr.readUnsignedInt();
480
467
  return new msg.Nfsv4DelegreturnResponse(status);
@@ -605,7 +592,7 @@ class Nfsv4Decoder {
605
592
  const shareAccess = xdr.readUnsignedInt();
606
593
  const shareDeny = xdr.readUnsignedInt();
607
594
  const owner = this.readOpenOwner();
608
- const openhow = xdr.readUnsignedInt();
595
+ const openhow = this.readOpenHow();
609
596
  const claim = this.readOpenClaim();
610
597
  return new msg.Nfsv4OpenRequest(seqid, shareAccess, shareDeny, owner, openhow, claim);
611
598
  }
@@ -667,16 +654,6 @@ class Nfsv4Decoder {
667
654
  const status = this.xdr.readUnsignedInt();
668
655
  return new msg.Nfsv4PutfhResponse(status);
669
656
  }
670
- decodePutpubfhRequest() {
671
- return new msg.Nfsv4PutpubfhRequest();
672
- }
673
- decodePutpubfhResponse() {
674
- const status = this.xdr.readUnsignedInt();
675
- return new msg.Nfsv4PutpubfhResponse(status);
676
- }
677
- decodePutrootfhRequest() {
678
- return new msg.Nfsv4PutrootfhRequest();
679
- }
680
657
  decodePutrootfhResponse() {
681
658
  const status = this.xdr.readUnsignedInt();
682
659
  return new msg.Nfsv4PutrootfhResponse(status);
@@ -779,9 +756,6 @@ class Nfsv4Decoder {
779
756
  const status = this.xdr.readUnsignedInt();
780
757
  return new msg.Nfsv4RestorefhResponse(status);
781
758
  }
782
- decodeSavefhRequest() {
783
- return new msg.Nfsv4SavefhRequest();
784
- }
785
759
  decodeSavefhResponse() {
786
760
  const status = this.xdr.readUnsignedInt();
787
761
  return new msg.Nfsv4SavefhResponse(status);
@@ -879,6 +853,108 @@ class Nfsv4Decoder {
879
853
  const status = this.xdr.readUnsignedInt();
880
854
  return new msg.Nfsv4IllegalResponse(status);
881
855
  }
856
+ decodeCbCompound(reader, isRequest) {
857
+ this.xdr.reader = reader;
858
+ const startPos = reader.x;
859
+ try {
860
+ if (isRequest) {
861
+ return this.decodeCbCompoundRequest();
862
+ }
863
+ else {
864
+ return this.decodeCbCompoundResponse();
865
+ }
866
+ }
867
+ catch (err) {
868
+ if (err instanceof RangeError) {
869
+ reader.x = startPos;
870
+ return undefined;
871
+ }
872
+ throw err;
873
+ }
874
+ }
875
+ decodeCbCompoundRequest() {
876
+ const xdr = this.xdr;
877
+ const tag = xdr.readString();
878
+ const minorversion = xdr.readUnsignedInt();
879
+ const callbackIdent = xdr.readUnsignedInt();
880
+ const argarray = [];
881
+ const count = xdr.readUnsignedInt();
882
+ for (let i = 0; i < count; i++) {
883
+ const op = xdr.readUnsignedInt();
884
+ const request = this.decodeCbRequest(op);
885
+ if (request)
886
+ argarray.push(request);
887
+ }
888
+ return new msg.Nfsv4CbCompoundRequest(tag, minorversion, callbackIdent, argarray);
889
+ }
890
+ decodeCbCompoundResponse() {
891
+ const xdr = this.xdr;
892
+ const status = xdr.readUnsignedInt();
893
+ const tag = xdr.readString();
894
+ const resarray = [];
895
+ const count = xdr.readUnsignedInt();
896
+ for (let i = 0; i < count; i++) {
897
+ const op = xdr.readUnsignedInt();
898
+ const response = this.decodeCbResponse(op);
899
+ if (response)
900
+ resarray.push(response);
901
+ }
902
+ return new msg.Nfsv4CbCompoundResponse(status, tag, resarray);
903
+ }
904
+ decodeCbRequest(op) {
905
+ switch (op) {
906
+ case 3 /* Nfsv4CbOp.CB_GETATTR */:
907
+ return this.decodeCbGetattrRequest();
908
+ case 4 /* Nfsv4CbOp.CB_RECALL */:
909
+ return this.decodeCbRecallRequest();
910
+ case 10044 /* Nfsv4CbOp.CB_ILLEGAL */:
911
+ return this.decodeCbIllegalRequest();
912
+ default:
913
+ throw new errors_1.Nfsv4DecodingError(`Unknown callback operation: ${op}`);
914
+ }
915
+ }
916
+ decodeCbResponse(op) {
917
+ switch (op) {
918
+ case 3 /* Nfsv4CbOp.CB_GETATTR */:
919
+ return this.decodeCbGetattrResponse();
920
+ case 4 /* Nfsv4CbOp.CB_RECALL */:
921
+ return this.decodeCbRecallResponse();
922
+ case 10044 /* Nfsv4CbOp.CB_ILLEGAL */:
923
+ return this.decodeCbIllegalResponse();
924
+ default:
925
+ throw new errors_1.Nfsv4DecodingError(`Unknown callback operation: ${op}`);
926
+ }
927
+ }
928
+ decodeCbGetattrRequest() {
929
+ const fh = this.readFh();
930
+ const attrRequest = this.readBitmap();
931
+ return new msg.Nfsv4CbGetattrRequest(fh, attrRequest);
932
+ }
933
+ decodeCbGetattrResponse() {
934
+ const status = this.xdr.readUnsignedInt();
935
+ if (status === 0) {
936
+ const objAttributes = this.readFattr();
937
+ return new msg.Nfsv4CbGetattrResponse(status, new msg.Nfsv4CbGetattrResOk(objAttributes));
938
+ }
939
+ return new msg.Nfsv4CbGetattrResponse(status);
940
+ }
941
+ decodeCbRecallRequest() {
942
+ const stateid = this.readStateid();
943
+ const truncate = this.xdr.readBoolean();
944
+ const fh = this.readFh();
945
+ return new msg.Nfsv4CbRecallRequest(stateid, truncate, fh);
946
+ }
947
+ decodeCbRecallResponse() {
948
+ const status = this.xdr.readUnsignedInt();
949
+ return new msg.Nfsv4CbRecallResponse(status);
950
+ }
951
+ decodeCbIllegalRequest() {
952
+ return new msg.Nfsv4CbIllegalRequest();
953
+ }
954
+ decodeCbIllegalResponse() {
955
+ const status = this.xdr.readUnsignedInt();
956
+ return new msg.Nfsv4CbIllegalResponse(status);
957
+ }
882
958
  }
883
959
  exports.Nfsv4Decoder = Nfsv4Decoder;
884
960
  //# sourceMappingURL=Nfsv4Decoder.js.map