@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
@@ -0,0 +1,460 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nfs = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const attributes_1 = require("./attributes");
6
+ const msg = tslib_1.__importStar(require("./messages"));
7
+ const structs = tslib_1.__importStar(require("./structs"));
8
+ /**
9
+ * Static builder helpers for NFS v4 operations.
10
+ * Provides a simpler API for constructing NFS v4 request messages.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const response = await client.compound([
15
+ * nfs.PUTROOTFH(),
16
+ * nfs.LOOKUP('file.txt'),
17
+ * nfs.GETATTR([0x00000001]),
18
+ * ]);
19
+ * ```
20
+ */
21
+ exports.nfs = {
22
+ /**
23
+ * PUTROOTFH - Set current filehandle to root of export.
24
+ */
25
+ PUTROOTFH() {
26
+ return new msg.Nfsv4PutrootfhRequest();
27
+ },
28
+ /**
29
+ * PUTFH - Set current filehandle.
30
+ * @param fh - Filehandle to set as current
31
+ */
32
+ PUTFH(fh) {
33
+ return new msg.Nfsv4PutfhRequest(fh);
34
+ },
35
+ /**
36
+ * PUTPUBFH - Set current filehandle to public filehandle.
37
+ */
38
+ PUTPUBFH() {
39
+ return new msg.Nfsv4PutpubfhRequest();
40
+ },
41
+ /**
42
+ * GETFH - Get current filehandle.
43
+ */
44
+ GETFH() {
45
+ return new msg.Nfsv4GetfhRequest();
46
+ },
47
+ /**
48
+ * LOOKUP - Lookup filename in current directory.
49
+ * @param name - Filename to lookup
50
+ */
51
+ LOOKUP(name) {
52
+ return new msg.Nfsv4LookupRequest(name);
53
+ },
54
+ /**
55
+ * LOOKUPP - Lookup parent directory (..).
56
+ */
57
+ LOOKUPP() {
58
+ return new msg.Nfsv4LookuppRequest();
59
+ },
60
+ /**
61
+ * GETATTR - Get file attributes.
62
+ * @param attrBitmap - Attribute bitmap (array of uint32 values)
63
+ */
64
+ GETATTR(attrBitmap) {
65
+ return new msg.Nfsv4GetattrRequest(new structs.Nfsv4Bitmap(attrBitmap));
66
+ },
67
+ /**
68
+ * READDIR - Read directory entries.
69
+ * @param attrBitmap - Attribute bitmap for entries (single uint32 or array)
70
+ * @param cookieverf - Cookie verifier (8 bytes), defaults to zeros
71
+ * @param cookie - Starting cookie, defaults to 0
72
+ * @param dircount - Max bytes for directory info, defaults to 1000
73
+ * @param maxcount - Max bytes for reply, defaults to 8192
74
+ */
75
+ READDIR(attrBitmap, cookieverf, cookie, dircount, maxcount) {
76
+ const bitmap = Array.isArray(attrBitmap) ? attrBitmap : [attrBitmap];
77
+ const verifier = cookieverf || new Uint8Array(8);
78
+ return new msg.Nfsv4ReaddirRequest(cookie ?? BigInt(0), new structs.Nfsv4Verifier(verifier), dircount ?? 1000, maxcount ?? 8192, new structs.Nfsv4Bitmap(bitmap));
79
+ },
80
+ /**
81
+ * ACCESS - Check access permissions.
82
+ * @param accessMask - Access mask (default: 0x3f for all bits)
83
+ */
84
+ ACCESS(accessMask = 0x0000003f) {
85
+ return new msg.Nfsv4AccessRequest(accessMask);
86
+ },
87
+ /**
88
+ * READ - Read file data.
89
+ * @param offset - Byte offset to read from
90
+ * @param count - Number of bytes to read
91
+ * @param stateid - State ID (defaults to all zeros)
92
+ */
93
+ READ(offset, count, stateid) {
94
+ const sid = stateid || new structs.Nfsv4Stateid(0, new Uint8Array(12));
95
+ return new msg.Nfsv4ReadRequest(sid, offset, count);
96
+ },
97
+ /**
98
+ * WRITE - Write file data.
99
+ * @param stateid - State ID to write to
100
+ * @param offset - Byte offset
101
+ * @param stable - Stable flag (Nfsv4StableHow)
102
+ * @param data - Data to write
103
+ */
104
+ WRITE(stateid, offset, stable, data) {
105
+ return new msg.Nfsv4WriteRequest(stateid, offset, stable, data);
106
+ },
107
+ /**
108
+ * COMMIT - Commit written data to stable storage.
109
+ * @param offset - Byte offset
110
+ * @param count - Number of bytes
111
+ */
112
+ COMMIT(offset, count) {
113
+ return new msg.Nfsv4CommitRequest(offset, count);
114
+ },
115
+ /**
116
+ * CREATE - Create a new file.
117
+ * @param objtype - Object type to create
118
+ * @param objname - Name of object to create
119
+ * @param createattrs - Attributes for the new object
120
+ */
121
+ CREATE(objtype, objname, createattrs) {
122
+ return new msg.Nfsv4CreateRequest(objtype, objname, createattrs);
123
+ },
124
+ /**
125
+ * LINK - Create a hard link.
126
+ * @param newname - Name for the new link
127
+ */
128
+ LINK(newname) {
129
+ return new msg.Nfsv4LinkRequest(newname);
130
+ },
131
+ /**
132
+ * READLINK - Read symbolic link.
133
+ */
134
+ READLINK() {
135
+ return new msg.Nfsv4ReadlinkRequest();
136
+ },
137
+ /**
138
+ * SAVEFH - Save current filehandle.
139
+ */
140
+ SAVEFH() {
141
+ return new msg.Nfsv4SavefhRequest();
142
+ },
143
+ /**
144
+ * RESTOREFH - Restore saved filehandle to current.
145
+ */
146
+ RESTOREFH() {
147
+ return new msg.Nfsv4RestorefhRequest();
148
+ },
149
+ /**
150
+ * SETATTR - Set file attributes.
151
+ * @param stateid - State ID
152
+ * @param attrs - Attributes to set
153
+ */
154
+ SETATTR(stateid, attrs) {
155
+ return new msg.Nfsv4SetattrRequest(stateid, attrs);
156
+ },
157
+ /**
158
+ * VERIFY - Verify attributes match.
159
+ * @param attrs - Attributes to verify
160
+ */
161
+ VERIFY(attrs) {
162
+ return new msg.Nfsv4VerifyRequest(attrs);
163
+ },
164
+ /**
165
+ * NVERIFY - Verify attributes don't match.
166
+ * @param attrs - Attributes to verify don't match
167
+ */
168
+ NVERIFY(attrs) {
169
+ return new msg.Nfsv4NverifyRequest(attrs);
170
+ },
171
+ /**
172
+ * REMOVE - Remove file or directory.
173
+ * @param name - Name of file/directory to remove
174
+ */
175
+ REMOVE(name) {
176
+ return new msg.Nfsv4RemoveRequest(name);
177
+ },
178
+ /**
179
+ * RENAME - Rename file or directory.
180
+ * @param oldname - Current name
181
+ * @param newname - New name
182
+ */
183
+ RENAME(oldname, newname) {
184
+ return new msg.Nfsv4RenameRequest(oldname, newname);
185
+ },
186
+ /**
187
+ * RENEW - Renew client lease.
188
+ * @param clientid - Client ID
189
+ */
190
+ RENEW(clientid) {
191
+ return new msg.Nfsv4RenewRequest(clientid);
192
+ },
193
+ /**
194
+ * SETCLIENTID - Establish client ID.
195
+ * @param client - Client identifier
196
+ * @param callback - Callback info
197
+ * @param callbackIdent - Callback identifier
198
+ */
199
+ SETCLIENTID(client, callback, callbackIdent) {
200
+ return new msg.Nfsv4SetclientidRequest(client, callback, callbackIdent);
201
+ },
202
+ /**
203
+ * SETCLIENTID_CONFIRM - Confirm client ID.
204
+ * @param clientid - Client ID to confirm
205
+ * @param verifier - Verifier from SETCLIENTID response
206
+ */
207
+ SETCLIENTID_CONFIRM(clientid, verifier) {
208
+ return new msg.Nfsv4SetclientidConfirmRequest(clientid, verifier);
209
+ },
210
+ /**
211
+ * OPEN - Open a file.
212
+ * @param seqid - Sequence ID for open-owner
213
+ * @param shareAccess - Share access mode (OPEN4_SHARE_ACCESS_*)
214
+ * @param shareDeny - Share deny mode (OPEN4_SHARE_DENY_*)
215
+ * @param owner - Open owner (clientid + owner bytes)
216
+ * @param openhow - Open how structure (use OpenHow helper)
217
+ * @param claim - Open claim (use OpenClaim helper)
218
+ */
219
+ OPEN(seqid, shareAccess, shareDeny, owner, openhow, claim) {
220
+ return new msg.Nfsv4OpenRequest(seqid, shareAccess, shareDeny, owner, openhow, claim);
221
+ },
222
+ /**
223
+ * CLOSE - Close an open file.
224
+ * @param seqid - Sequence ID
225
+ * @param openStateid - State ID from OPEN
226
+ */
227
+ CLOSE(seqid, openStateid) {
228
+ return new msg.Nfsv4CloseRequest(seqid, openStateid);
229
+ },
230
+ /**
231
+ * OPEN_CONFIRM - Confirm an open.
232
+ * @param openStateid - State ID from OPEN
233
+ * @param seqid - Sequence ID
234
+ */
235
+ OPEN_CONFIRM(openStateid, seqid) {
236
+ return new msg.Nfsv4OpenConfirmRequest(openStateid, seqid);
237
+ },
238
+ /**
239
+ * OPEN_DOWNGRADE - Downgrade open access/deny modes.
240
+ * @param openStateid - State ID from OPEN
241
+ * @param seqid - Sequence ID
242
+ * @param shareAccess - New share access mode
243
+ * @param shareDeny - New share deny mode
244
+ */
245
+ OPEN_DOWNGRADE(openStateid, seqid, shareAccess, shareDeny) {
246
+ return new msg.Nfsv4OpenDowngradeRequest(openStateid, seqid, shareAccess, shareDeny);
247
+ },
248
+ /**
249
+ * OPENATTR - Open named attribute directory.
250
+ * @param createdir - Whether to create the directory if it doesn't exist
251
+ */
252
+ OPENATTR(createdir = false) {
253
+ return new msg.Nfsv4OpenattrRequest(createdir);
254
+ },
255
+ /**
256
+ * SECINFO - Get security information for a file.
257
+ * @param name - Filename to get security info for
258
+ */
259
+ SECINFO(name) {
260
+ return new msg.Nfsv4SecinfoRequest(name);
261
+ },
262
+ /**
263
+ * DELEGPURGE - Purge delegations (not supported).
264
+ * @param clientid - Client ID
265
+ */
266
+ DELEGPURGE(clientid) {
267
+ return new msg.Nfsv4DelegpurgeRequest(clientid);
268
+ },
269
+ /**
270
+ * DELEGRETURN - Return delegation (not supported).
271
+ * @param stateid - Delegation stateid
272
+ */
273
+ DELEGRETURN(stateid) {
274
+ return new msg.Nfsv4DelegreturnRequest(stateid);
275
+ },
276
+ /**
277
+ * LOCK - Lock byte range.
278
+ * @param locktype - Lock type (READ_LT, WRITE_LT, READW_LT, or WRITEW_LT)
279
+ * @param reclaim - True if reclaiming lock after server restart
280
+ * @param offset - Starting byte offset
281
+ * @param length - Length in bytes (0xFFFFFFFFFFFFFFFF for EOF)
282
+ * @param locker - Lock owner info (new or existing lock owner)
283
+ */
284
+ LOCK(locktype, reclaim, offset, length, locker) {
285
+ return new msg.Nfsv4LockRequest(locktype, reclaim, offset, length, locker);
286
+ },
287
+ /**
288
+ * LOCKT - Test for conflicting lock (non-blocking).
289
+ * @param locktype - Lock type (READ_LT or WRITE_LT)
290
+ * @param offset - Starting byte offset
291
+ * @param length - Length in bytes (0xFFFFFFFFFFFFFFFF for EOF)
292
+ * @param owner - Lock owner
293
+ */
294
+ LOCKT(locktype, offset, length, owner) {
295
+ return new msg.Nfsv4LocktRequest(locktype, offset, length, owner);
296
+ },
297
+ /**
298
+ * LOCKU - Unlock byte range.
299
+ * @param locktype - Lock type (READ_LT or WRITE_LT)
300
+ * @param seqid - Sequence number
301
+ * @param lockStateid - Lock stateid from LOCK operation
302
+ * @param offset - Starting byte offset
303
+ * @param length - Length in bytes
304
+ */
305
+ LOCKU(locktype, seqid, lockStateid, offset, length) {
306
+ return new msg.Nfsv4LockuRequest(locktype, seqid, lockStateid, offset, length);
307
+ },
308
+ /**
309
+ * RELEASE_LOCKOWNER - Release all locks for a lock-owner.
310
+ * @param lockOwner - Lock owner to release
311
+ */
312
+ RELEASE_LOCKOWNER(lockOwner) {
313
+ return new msg.Nfsv4ReleaseLockOwnerRequest(lockOwner);
314
+ },
315
+ /**
316
+ * Create an Nfsv4Verifier (8-byte opaque data).
317
+ * @param data - 8-byte Uint8Array, defaults to zeros
318
+ */
319
+ Verifier(data) {
320
+ return new structs.Nfsv4Verifier(data || new Uint8Array(8));
321
+ },
322
+ /**
323
+ * Create an Nfsv4Stateid (state identifier).
324
+ * @param seqid - Sequence ID (default: 0)
325
+ * @param other - 12-byte opaque data (default: zeros)
326
+ */
327
+ Stateid(seqid = 0, other) {
328
+ return new structs.Nfsv4Stateid(seqid, other || new Uint8Array(12));
329
+ },
330
+ /**
331
+ * Create Nfsv4Fattr from attribute numbers (automatically converts to bitmap).
332
+ * @param attrNums - Array of attribute numbers (Nfsv4Attr enum values)
333
+ * @param attrVals - Encoded attribute values as byte array
334
+ */
335
+ Fattr(attrNums, attrVals) {
336
+ const bitmap = new structs.Nfsv4Bitmap((0, attributes_1.attrNumsToBitmap)(attrNums));
337
+ return new structs.Nfsv4Fattr(bitmap, attrVals);
338
+ },
339
+ /**
340
+ * Create Nfsv4ClientId (client identifier).
341
+ * @param verifier - 8-byte verifier
342
+ * @param id - Variable-length client ID bytes
343
+ */
344
+ ClientId(verifier, id) {
345
+ return new structs.Nfsv4ClientId(verifier, id);
346
+ },
347
+ /**
348
+ * Create Nfsv4CbClient (callback client information).
349
+ * @param cbProgram - Callback program number
350
+ * @param rNetid - Network ID string (e.g., 'tcp', 'udp')
351
+ * @param rAddr - Network address string (e.g., '127.0.0.1.8.1')
352
+ */
353
+ CbClient(cbProgram, rNetid, rAddr) {
354
+ const cbLocation = new structs.Nfsv4ClientAddr(rNetid, rAddr);
355
+ return new structs.Nfsv4CbClient(cbProgram, cbLocation);
356
+ },
357
+ /**
358
+ * Create Nfsv4Bitmap from attribute numbers.
359
+ * @param attrNums - Array of attribute numbers (Nfsv4Attr enum values)
360
+ */
361
+ Bitmap(attrNums) {
362
+ return new structs.Nfsv4Bitmap((0, attributes_1.attrNumsToBitmap)(attrNums));
363
+ },
364
+ /**
365
+ * Create Nfsv4CreateType for regular file creation.
366
+ */
367
+ CreateTypeFile() {
368
+ return new structs.Nfsv4CreateType(1 /* Nfsv4FType.NF4REG */, new structs.Nfsv4CreateTypeVoid());
369
+ },
370
+ /**
371
+ * Create Nfsv4CreateType for directory creation.
372
+ */
373
+ CreateTypeDir() {
374
+ return new structs.Nfsv4CreateType(2 /* Nfsv4FType.NF4DIR */, new structs.Nfsv4CreateTypeVoid());
375
+ },
376
+ /**
377
+ * Create Nfsv4OpenOwner (open owner identifier).
378
+ * @param clientid - Client ID
379
+ * @param owner - Owner bytes (unique identifier)
380
+ */
381
+ OpenOwner(clientid, owner) {
382
+ return new structs.Nfsv4OpenOwner(clientid, owner);
383
+ },
384
+ /**
385
+ * Create Nfsv4OpenClaim for CLAIM_NULL (open by filename).
386
+ * @param filename - Name of file to open
387
+ */
388
+ OpenClaimNull(filename) {
389
+ return new structs.Nfsv4OpenClaim(0, new structs.Nfsv4OpenClaimNull(filename));
390
+ },
391
+ /**
392
+ * Create Nfsv4OpenHow for OPEN4_NOCREATE (open existing file).
393
+ */
394
+ OpenHowNoCreate() {
395
+ return new structs.Nfsv4OpenHow(0 /* Nfsv4OpenFlags.OPEN4_NOCREATE */);
396
+ },
397
+ /**
398
+ * Create Nfsv4OpenHow for OPEN4_CREATE with UNCHECKED4 mode.
399
+ * @param createattrs - Optional file attributes to set on create
400
+ */
401
+ OpenHowCreateUnchecked(createattrs) {
402
+ const attrs = createattrs || new structs.Nfsv4Fattr(new structs.Nfsv4Bitmap([]), new Uint8Array(0));
403
+ const how = new structs.Nfsv4CreateHow(0 /* Nfsv4CreateMode.UNCHECKED4 */, new structs.Nfsv4CreateAttrs(attrs));
404
+ return new structs.Nfsv4OpenHow(1 /* Nfsv4OpenFlags.OPEN4_CREATE */, how);
405
+ },
406
+ /**
407
+ * Create Nfsv4OpenHow for OPEN4_CREATE with GUARDED4 mode.
408
+ * @param createattrs - Optional file attributes to set on create
409
+ */
410
+ OpenHowCreateGuarded(createattrs) {
411
+ const attrs = createattrs || new structs.Nfsv4Fattr(new structs.Nfsv4Bitmap([]), new Uint8Array(0));
412
+ const how = new structs.Nfsv4CreateHow(1 /* Nfsv4CreateMode.GUARDED4 */, new structs.Nfsv4CreateAttrs(attrs));
413
+ return new structs.Nfsv4OpenHow(1 /* Nfsv4OpenFlags.OPEN4_CREATE */, how);
414
+ },
415
+ /**
416
+ * Create Nfsv4OpenHow for OPEN4_CREATE with EXCLUSIVE4 mode.
417
+ * @param verifier - 8-byte verifier for exclusive create
418
+ */
419
+ OpenHowCreateExclusive(verifier) {
420
+ const how = new structs.Nfsv4CreateHow(2 /* Nfsv4CreateMode.EXCLUSIVE4 */, new structs.Nfsv4CreateVerf(verifier));
421
+ return new structs.Nfsv4OpenHow(1 /* Nfsv4OpenFlags.OPEN4_CREATE */, how);
422
+ },
423
+ /**
424
+ * Create Nfsv4LockOwner (lock owner identifier).
425
+ * @param clientid - Client ID
426
+ * @param owner - Owner bytes (unique identifier)
427
+ */
428
+ LockOwner(clientid, owner) {
429
+ return new structs.Nfsv4LockOwner(clientid, owner);
430
+ },
431
+ /**
432
+ * Create Nfsv4LockOwnerInfo for new lock owner (open_to_lock_owner).
433
+ * @param openSeqid - Current open-owner seqid
434
+ * @param openStateid - Open stateid from OPEN operation
435
+ * @param lockSeqid - Initial lock-owner seqid (typically 0)
436
+ * @param lockOwner - Lock owner identifier
437
+ */
438
+ NewLockOwner(openSeqid, openStateid, lockSeqid, lockOwner) {
439
+ const openToLockOwner = new structs.Nfsv4OpenToLockOwner(openSeqid, openStateid, lockSeqid, lockOwner);
440
+ return new structs.Nfsv4LockOwnerInfo(true, new structs.Nfsv4LockNewOwner(openToLockOwner));
441
+ },
442
+ /**
443
+ * Create Nfsv4LockOwnerInfo for existing lock owner.
444
+ * @param lockStateid - Lock stateid from previous LOCK operation
445
+ * @param lockSeqid - Lock-owner seqid
446
+ */
447
+ ExistingLockOwner(lockStateid, lockSeqid) {
448
+ const owner = new structs.Nfsv4LockExistingOwner(lockStateid, lockSeqid);
449
+ return new structs.Nfsv4LockOwnerInfo(false, owner);
450
+ },
451
+ /**
452
+ * ILLEGAL - Illegal operation (for testing RFC 7530 §15.2.4 compliance).
453
+ * This operation is used to test server handling of illegal operation codes.
454
+ * Per RFC 7530, the server should respond with NFS4ERR_OP_ILLEGAL.
455
+ */
456
+ ILLEGAL() {
457
+ return new msg.Nfsv4IllegalRequest();
458
+ },
459
+ };
460
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/nfs/v4/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type * as misc from 'memfs/lib/node/types/misc';
2
+ import type { Nfsv4Client } from './types';
3
+ import type * as msg from '../messages';
4
+ /**
5
+ * Implements Node.js-like Dir interface for NFS v4 directory iteration.
6
+ */
7
+ export declare class NfsFsDir implements misc.IDir {
8
+ readonly path: string;
9
+ private readonly nfs;
10
+ private readonly operations;
11
+ private entries;
12
+ private position;
13
+ private closed;
14
+ constructor(path: string, nfs: Nfsv4Client, operations: msg.Nfsv4Request[]);
15
+ private ensureLoaded;
16
+ close(): Promise<void>;
17
+ close(callback?: (err?: Error) => void): Promise<void>;
18
+ closeSync(): void;
19
+ read(): Promise<misc.IDirent | null>;
20
+ read(callback?: (err: Error | null, dir?: misc.IDirent | null) => void): Promise<misc.IDirent | null>;
21
+ readSync(): misc.IDirent | null;
22
+ [Symbol.asyncIterator](): AsyncIterableIterator<misc.IDirent>;
23
+ }
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NfsFsDir = void 0;
4
+ const NfsFsDirent_1 = require("./NfsFsDirent");
5
+ const builder_1 = require("../builder");
6
+ const Reader_1 = require("@jsonjoy.com/buffers/lib/Reader");
7
+ const XdrDecoder_1 = require("../../../xdr/XdrDecoder");
8
+ /**
9
+ * Implements Node.js-like Dir interface for NFS v4 directory iteration.
10
+ */
11
+ class NfsFsDir {
12
+ constructor(path, nfs, operations) {
13
+ this.path = path;
14
+ this.nfs = nfs;
15
+ this.operations = operations;
16
+ this.entries = [];
17
+ this.position = 0;
18
+ this.closed = false;
19
+ }
20
+ async ensureLoaded() {
21
+ if (this.entries.length > 0 || this.closed)
22
+ return;
23
+ const attrNums = [1 /* Nfsv4Attr.FATTR4_TYPE */];
24
+ const attrMask = [];
25
+ for (const attrNum of attrNums) {
26
+ const wordIndex = Math.floor(attrNum / 32);
27
+ const bitIndex = attrNum % 32;
28
+ while (attrMask.length <= wordIndex)
29
+ attrMask.push(0);
30
+ attrMask[wordIndex] |= 1 << bitIndex;
31
+ }
32
+ const operations = [...this.operations];
33
+ operations.push(builder_1.nfs.READDIR(attrMask));
34
+ const response = await this.nfs.compound(operations);
35
+ if (response.status !== 0 /* Nfsv4Stat.NFS4_OK */)
36
+ throw new Error(`Failed to read directory: ${response.status}`);
37
+ const readdirRes = response.resarray[response.resarray.length - 1];
38
+ if (readdirRes.status !== 0 /* Nfsv4Stat.NFS4_OK */ || !readdirRes.resok)
39
+ throw new Error(`Failed to read directory: ${readdirRes.status}`);
40
+ const entryList = readdirRes.resok.entries;
41
+ for (let i = 0; i < entryList.length; i++) {
42
+ const entry = entryList[i];
43
+ const name = entry.name;
44
+ const fattr = entry.attrs;
45
+ const reader = new Reader_1.Reader();
46
+ reader.reset(fattr.attrVals);
47
+ const xdr = new XdrDecoder_1.XdrDecoder(reader);
48
+ let fileType = 1 /* Nfsv4FType.NF4REG */;
49
+ const returnedMask = fattr.attrmask.mask;
50
+ for (let i = 0; i < returnedMask.length; i++) {
51
+ const word = returnedMask[i];
52
+ if (!word)
53
+ continue;
54
+ for (let bit = 0; bit < 32; bit++) {
55
+ if (!(word & (1 << bit)))
56
+ continue;
57
+ const attrNum = i * 32 + bit;
58
+ if (attrNum === 1 /* Nfsv4Attr.FATTR4_TYPE */) {
59
+ fileType = xdr.readUnsignedInt();
60
+ }
61
+ }
62
+ }
63
+ this.entries.push(new NfsFsDirent_1.NfsFsDirent(name, fileType));
64
+ }
65
+ }
66
+ async close(callback) {
67
+ this.closed = true;
68
+ this.entries = [];
69
+ this.position = 0;
70
+ if (callback) {
71
+ try {
72
+ callback();
73
+ }
74
+ catch (err) {
75
+ callback(err);
76
+ }
77
+ }
78
+ }
79
+ closeSync() {
80
+ this.closed = true;
81
+ this.entries = [];
82
+ this.position = 0;
83
+ }
84
+ async read(callback) {
85
+ try {
86
+ if (this.closed) {
87
+ const err = new Error('Directory is closed');
88
+ if (callback) {
89
+ callback(err, null);
90
+ return null;
91
+ }
92
+ throw err;
93
+ }
94
+ await this.ensureLoaded();
95
+ if (this.position >= this.entries.length) {
96
+ if (callback) {
97
+ callback(null, null);
98
+ }
99
+ return null;
100
+ }
101
+ const entry = this.entries[this.position++];
102
+ if (callback) {
103
+ callback(null, entry);
104
+ }
105
+ return entry;
106
+ }
107
+ catch (err) {
108
+ if (callback) {
109
+ callback(err, null);
110
+ return null;
111
+ }
112
+ throw err;
113
+ }
114
+ }
115
+ readSync() {
116
+ if (this.closed) {
117
+ throw new Error('Directory is closed');
118
+ }
119
+ if (this.position >= this.entries.length) {
120
+ return null;
121
+ }
122
+ return this.entries[this.position++];
123
+ }
124
+ async *[Symbol.asyncIterator]() {
125
+ await this.ensureLoaded();
126
+ for (const entry of this.entries) {
127
+ yield entry;
128
+ }
129
+ }
130
+ }
131
+ exports.NfsFsDir = NfsFsDir;
132
+ //# sourceMappingURL=NfsFsDir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NfsFsDir.js","sourceRoot":"","sources":["../../../../src/nfs/v4/client/NfsFsDir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type * as misc from 'memfs/lib/node/types/misc';
2
+ import { Nfsv4FType } from '../constants';
3
+ /**
4
+ * Implements Node.js-like Dirent interface for NFS v4 directory entries.
5
+ */
6
+ export declare class NfsFsDirent implements misc.IDirent {
7
+ name: string;
8
+ private type;
9
+ constructor(name: string, type: Nfsv4FType);
10
+ isDirectory(): boolean;
11
+ isFile(): boolean;
12
+ isBlockDevice(): boolean;
13
+ isCharacterDevice(): boolean;
14
+ isSymbolicLink(): boolean;
15
+ isFIFO(): boolean;
16
+ isSocket(): boolean;
17
+ }