@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 @@
1
+ {"version":3,"file":"Nfsv4OperationsNode.js","sourceRoot":"","sources":["../../../../../../src/nfs/v4/server/operations/node/Nfsv4OperationsNode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Attribute encoding utilities for NFSv4 server operations.
3
+ */
4
+ import type { Stats } from 'node:fs';
5
+ import * as struct from '../../../structs';
6
+ import type { FilesystemStats } from '../FilesystemStats';
7
+ /**
8
+ * Encodes file attributes based on the requested bitmap.
9
+ * Returns the attributes as a Nfsv4Fattr structure.
10
+ * @param requestedAttrs Bitmap of requested attributes
11
+ * @param stats Optional file stats (required only if stat-based attributes are requested)
12
+ * @param path File path (for context)
13
+ * @param fh Optional file handle (required only if FATTR4_FILEHANDLE is requested)
14
+ * @param leaseTime Optional lease time in seconds (required only if FATTR4_LEASE_TIME is requested)
15
+ * @param fsStats Optional filesystem statistics (required for space/files attributes)
16
+ */
17
+ export declare const encodeAttrs: (requestedAttrs: struct.Nfsv4Bitmap, stats: Stats | undefined, path: string, fh?: Uint8Array, leaseTime?: number, fsStats?: FilesystemStats) => struct.Nfsv4Fattr;
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+ /**
3
+ * Attribute encoding utilities for NFSv4 server operations.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.encodeAttrs = void 0;
7
+ const tslib_1 = require("tslib");
8
+ const Writer_1 = require("@jsonjoy.com/buffers/lib/Writer");
9
+ const XdrEncoder_1 = require("../../../../../xdr/XdrEncoder");
10
+ const struct = tslib_1.__importStar(require("../../../structs"));
11
+ const attributes_1 = require("../../../attributes");
12
+ /**
13
+ * Encodes file attributes based on the requested bitmap.
14
+ * Returns the attributes as a Nfsv4Fattr structure.
15
+ * @param requestedAttrs Bitmap of requested attributes
16
+ * @param stats Optional file stats (required only if stat-based attributes are requested)
17
+ * @param path File path (for context)
18
+ * @param fh Optional file handle (required only if FATTR4_FILEHANDLE is requested)
19
+ * @param leaseTime Optional lease time in seconds (required only if FATTR4_LEASE_TIME is requested)
20
+ * @param fsStats Optional filesystem statistics (required for space/files attributes)
21
+ */
22
+ const encodeAttrs = (requestedAttrs, stats, path, fh, leaseTime, fsStats) => {
23
+ const writer = new Writer_1.Writer(512);
24
+ const xdr = new XdrEncoder_1.XdrEncoder(writer);
25
+ const supportedMask = [];
26
+ const requested = requestedAttrs.mask;
27
+ for (let i = 0; i < requested.length; i++) {
28
+ const word = requested[i];
29
+ if (!word)
30
+ continue;
31
+ const wordIndex = i;
32
+ for (let bit = 0; bit < 32; bit++) {
33
+ if (!(word & (1 << bit)))
34
+ continue;
35
+ const attrNum = wordIndex * 32 + bit;
36
+ switch (attrNum) {
37
+ case 0 /* Nfsv4Attr.FATTR4_SUPPORTED_ATTRS */: {
38
+ const implementedAttrs = [];
39
+ (0, attributes_1.setBit)(implementedAttrs, 0 /* Nfsv4Attr.FATTR4_SUPPORTED_ATTRS */);
40
+ (0, attributes_1.setBit)(implementedAttrs, 1 /* Nfsv4Attr.FATTR4_TYPE */);
41
+ (0, attributes_1.setBit)(implementedAttrs, 2 /* Nfsv4Attr.FATTR4_FH_EXPIRE_TYPE */);
42
+ (0, attributes_1.setBit)(implementedAttrs, 3 /* Nfsv4Attr.FATTR4_CHANGE */);
43
+ (0, attributes_1.setBit)(implementedAttrs, 4 /* Nfsv4Attr.FATTR4_SIZE */);
44
+ (0, attributes_1.setBit)(implementedAttrs, 5 /* Nfsv4Attr.FATTR4_LINK_SUPPORT */);
45
+ (0, attributes_1.setBit)(implementedAttrs, 6 /* Nfsv4Attr.FATTR4_SYMLINK_SUPPORT */);
46
+ (0, attributes_1.setBit)(implementedAttrs, 7 /* Nfsv4Attr.FATTR4_NAMED_ATTR */);
47
+ (0, attributes_1.setBit)(implementedAttrs, 8 /* Nfsv4Attr.FATTR4_FSID */);
48
+ (0, attributes_1.setBit)(implementedAttrs, 9 /* Nfsv4Attr.FATTR4_UNIQUE_HANDLES */);
49
+ (0, attributes_1.setBit)(implementedAttrs, 10 /* Nfsv4Attr.FATTR4_LEASE_TIME */);
50
+ (0, attributes_1.setBit)(implementedAttrs, 11 /* Nfsv4Attr.FATTR4_RDATTR_ERROR */);
51
+ (0, attributes_1.setBit)(implementedAttrs, 19 /* Nfsv4Attr.FATTR4_FILEHANDLE */);
52
+ (0, attributes_1.setBit)(implementedAttrs, 20 /* Nfsv4Attr.FATTR4_FILEID */);
53
+ (0, attributes_1.setBit)(implementedAttrs, 33 /* Nfsv4Attr.FATTR4_MODE */);
54
+ (0, attributes_1.setBit)(implementedAttrs, 35 /* Nfsv4Attr.FATTR4_NUMLINKS */);
55
+ (0, attributes_1.setBit)(implementedAttrs, 45 /* Nfsv4Attr.FATTR4_SPACE_USED */);
56
+ (0, attributes_1.setBit)(implementedAttrs, 42 /* Nfsv4Attr.FATTR4_SPACE_AVAIL */);
57
+ (0, attributes_1.setBit)(implementedAttrs, 43 /* Nfsv4Attr.FATTR4_SPACE_FREE */);
58
+ (0, attributes_1.setBit)(implementedAttrs, 44 /* Nfsv4Attr.FATTR4_SPACE_TOTAL */);
59
+ (0, attributes_1.setBit)(implementedAttrs, 21 /* Nfsv4Attr.FATTR4_FILES_AVAIL */);
60
+ (0, attributes_1.setBit)(implementedAttrs, 22 /* Nfsv4Attr.FATTR4_FILES_FREE */);
61
+ (0, attributes_1.setBit)(implementedAttrs, 23 /* Nfsv4Attr.FATTR4_FILES_TOTAL */);
62
+ (0, attributes_1.setBit)(implementedAttrs, 47 /* Nfsv4Attr.FATTR4_TIME_ACCESS */);
63
+ (0, attributes_1.setBit)(implementedAttrs, 52 /* Nfsv4Attr.FATTR4_TIME_METADATA */);
64
+ (0, attributes_1.setBit)(implementedAttrs, 53 /* Nfsv4Attr.FATTR4_TIME_MODIFY */);
65
+ xdr.writeUnsignedInt(implementedAttrs.length);
66
+ for (let j = 0; j < implementedAttrs.length; j++) {
67
+ xdr.writeUnsignedInt(implementedAttrs[j]);
68
+ }
69
+ (0, attributes_1.setBit)(supportedMask, attrNum);
70
+ break;
71
+ }
72
+ case 1 /* Nfsv4Attr.FATTR4_TYPE */: {
73
+ if (!stats)
74
+ break;
75
+ let type;
76
+ if (stats.isFile())
77
+ type = 1 /* Nfsv4FType.NF4REG */;
78
+ else if (stats.isDirectory())
79
+ type = 2 /* Nfsv4FType.NF4DIR */;
80
+ else if (stats.isSymbolicLink())
81
+ type = 5 /* Nfsv4FType.NF4LNK */;
82
+ else if (stats.isBlockDevice())
83
+ type = 3 /* Nfsv4FType.NF4BLK */;
84
+ else if (stats.isCharacterDevice())
85
+ type = 4 /* Nfsv4FType.NF4CHR */;
86
+ else if (stats.isFIFO())
87
+ type = 7 /* Nfsv4FType.NF4FIFO */;
88
+ else if (stats.isSocket())
89
+ type = 6 /* Nfsv4FType.NF4SOCK */;
90
+ else
91
+ type = 1 /* Nfsv4FType.NF4REG */;
92
+ xdr.writeUnsignedInt(type);
93
+ (0, attributes_1.setBit)(supportedMask, attrNum);
94
+ break;
95
+ }
96
+ case 4 /* Nfsv4Attr.FATTR4_SIZE */: {
97
+ if (!stats)
98
+ break;
99
+ xdr.writeUnsignedHyper(BigInt(stats.size));
100
+ (0, attributes_1.setBit)(supportedMask, attrNum);
101
+ break;
102
+ }
103
+ case 20 /* Nfsv4Attr.FATTR4_FILEID */: {
104
+ if (!stats)
105
+ break;
106
+ xdr.writeUnsignedHyper(BigInt(stats.ino));
107
+ (0, attributes_1.setBit)(supportedMask, attrNum);
108
+ break;
109
+ }
110
+ case 33 /* Nfsv4Attr.FATTR4_MODE */: {
111
+ if (!stats)
112
+ break;
113
+ xdr.writeUnsignedInt(stats.mode & 0o7777);
114
+ (0, attributes_1.setBit)(supportedMask, attrNum);
115
+ break;
116
+ }
117
+ case 35 /* Nfsv4Attr.FATTR4_NUMLINKS */: {
118
+ if (!stats)
119
+ break;
120
+ xdr.writeUnsignedInt(stats.nlink);
121
+ (0, attributes_1.setBit)(supportedMask, attrNum);
122
+ break;
123
+ }
124
+ case 45 /* Nfsv4Attr.FATTR4_SPACE_USED */: {
125
+ if (!stats)
126
+ break;
127
+ xdr.writeUnsignedHyper(BigInt(stats.blocks * 512));
128
+ (0, attributes_1.setBit)(supportedMask, attrNum);
129
+ break;
130
+ }
131
+ case 42 /* Nfsv4Attr.FATTR4_SPACE_AVAIL */: {
132
+ if (!fsStats)
133
+ break;
134
+ xdr.writeUnsignedHyper(fsStats.spaceAvail);
135
+ (0, attributes_1.setBit)(supportedMask, attrNum);
136
+ break;
137
+ }
138
+ case 43 /* Nfsv4Attr.FATTR4_SPACE_FREE */: {
139
+ if (!fsStats)
140
+ break;
141
+ xdr.writeUnsignedHyper(fsStats.spaceFree);
142
+ (0, attributes_1.setBit)(supportedMask, attrNum);
143
+ break;
144
+ }
145
+ case 44 /* Nfsv4Attr.FATTR4_SPACE_TOTAL */: {
146
+ if (!fsStats)
147
+ break;
148
+ xdr.writeUnsignedHyper(fsStats.spaceTotal);
149
+ (0, attributes_1.setBit)(supportedMask, attrNum);
150
+ break;
151
+ }
152
+ case 21 /* Nfsv4Attr.FATTR4_FILES_AVAIL */: {
153
+ if (!fsStats)
154
+ break;
155
+ xdr.writeUnsignedHyper(fsStats.filesAvail);
156
+ (0, attributes_1.setBit)(supportedMask, attrNum);
157
+ break;
158
+ }
159
+ case 22 /* Nfsv4Attr.FATTR4_FILES_FREE */: {
160
+ if (!fsStats)
161
+ break;
162
+ xdr.writeUnsignedHyper(fsStats.filesFree);
163
+ (0, attributes_1.setBit)(supportedMask, attrNum);
164
+ break;
165
+ }
166
+ case 23 /* Nfsv4Attr.FATTR4_FILES_TOTAL */: {
167
+ if (!fsStats)
168
+ break;
169
+ xdr.writeUnsignedHyper(fsStats.filesTotal);
170
+ (0, attributes_1.setBit)(supportedMask, attrNum);
171
+ break;
172
+ }
173
+ case 47 /* Nfsv4Attr.FATTR4_TIME_ACCESS */: {
174
+ if (!stats)
175
+ break;
176
+ const atime = stats.atimeMs;
177
+ const seconds = Math.floor(atime / 1000);
178
+ const nseconds = Math.floor((atime % 1000) * 1000000);
179
+ xdr.writeHyper(BigInt(seconds));
180
+ xdr.writeUnsignedInt(nseconds);
181
+ (0, attributes_1.setBit)(supportedMask, attrNum);
182
+ break;
183
+ }
184
+ case 53 /* Nfsv4Attr.FATTR4_TIME_MODIFY */: {
185
+ if (!stats)
186
+ break;
187
+ const mtime = stats.mtimeMs;
188
+ const seconds = Math.floor(mtime / 1000);
189
+ const nseconds = Math.floor((mtime % 1000) * 1000000);
190
+ xdr.writeHyper(BigInt(seconds));
191
+ xdr.writeUnsignedInt(nseconds);
192
+ (0, attributes_1.setBit)(supportedMask, attrNum);
193
+ break;
194
+ }
195
+ case 52 /* Nfsv4Attr.FATTR4_TIME_METADATA */: {
196
+ if (!stats)
197
+ break;
198
+ const ctime = stats.ctimeMs;
199
+ const seconds = Math.floor(ctime / 1000);
200
+ const nseconds = Math.floor((ctime % 1000) * 1000000);
201
+ xdr.writeHyper(BigInt(seconds));
202
+ xdr.writeUnsignedInt(nseconds);
203
+ (0, attributes_1.setBit)(supportedMask, attrNum);
204
+ break;
205
+ }
206
+ case 3 /* Nfsv4Attr.FATTR4_CHANGE */: {
207
+ if (!stats)
208
+ break;
209
+ const changeTime = BigInt(Math.floor(stats.mtimeMs * 1000000));
210
+ xdr.writeUnsignedHyper(changeTime);
211
+ (0, attributes_1.setBit)(supportedMask, attrNum);
212
+ break;
213
+ }
214
+ case 10 /* Nfsv4Attr.FATTR4_LEASE_TIME */: {
215
+ if (leaseTime !== undefined) {
216
+ xdr.writeUnsignedInt(leaseTime);
217
+ (0, attributes_1.setBit)(supportedMask, attrNum);
218
+ }
219
+ break;
220
+ }
221
+ case 2 /* Nfsv4Attr.FATTR4_FH_EXPIRE_TYPE */: {
222
+ xdr.writeUnsignedInt(2 /* Nfsv4FhExpireType.FH4_VOLATILE_ANY */);
223
+ (0, attributes_1.setBit)(supportedMask, attrNum);
224
+ break;
225
+ }
226
+ case 5 /* Nfsv4Attr.FATTR4_LINK_SUPPORT */: {
227
+ xdr.writeUnsignedInt(1);
228
+ (0, attributes_1.setBit)(supportedMask, attrNum);
229
+ break;
230
+ }
231
+ case 6 /* Nfsv4Attr.FATTR4_SYMLINK_SUPPORT */: {
232
+ xdr.writeUnsignedInt(1);
233
+ (0, attributes_1.setBit)(supportedMask, attrNum);
234
+ break;
235
+ }
236
+ case 7 /* Nfsv4Attr.FATTR4_NAMED_ATTR */: {
237
+ xdr.writeUnsignedInt(0);
238
+ (0, attributes_1.setBit)(supportedMask, attrNum);
239
+ break;
240
+ }
241
+ case 8 /* Nfsv4Attr.FATTR4_FSID */: {
242
+ xdr.writeUnsignedHyper(BigInt(0));
243
+ xdr.writeUnsignedHyper(BigInt(0));
244
+ (0, attributes_1.setBit)(supportedMask, attrNum);
245
+ break;
246
+ }
247
+ case 9 /* Nfsv4Attr.FATTR4_UNIQUE_HANDLES */: {
248
+ xdr.writeUnsignedInt(1);
249
+ (0, attributes_1.setBit)(supportedMask, attrNum);
250
+ break;
251
+ }
252
+ case 11 /* Nfsv4Attr.FATTR4_RDATTR_ERROR */: {
253
+ xdr.writeUnsignedInt(0);
254
+ (0, attributes_1.setBit)(supportedMask, attrNum);
255
+ break;
256
+ }
257
+ case 19 /* Nfsv4Attr.FATTR4_FILEHANDLE */: {
258
+ if (fh) {
259
+ xdr.writeVarlenOpaque(fh);
260
+ (0, attributes_1.setBit)(supportedMask, attrNum);
261
+ }
262
+ break;
263
+ }
264
+ default: {
265
+ if (attributes_1.SET_ONLY_ATTRS.has(attrNum))
266
+ throw 22 /* Nfsv4Stat.NFS4ERR_INVAL */;
267
+ }
268
+ }
269
+ }
270
+ }
271
+ const attrVals = writer.flush();
272
+ return new struct.Nfsv4Fattr(new struct.Nfsv4Bitmap(supportedMask), attrVals);
273
+ };
274
+ exports.encodeAttrs = encodeAttrs;
275
+ //# sourceMappingURL=attrs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attrs.js","sourceRoot":"","sources":["../../../../../../src/nfs/v4/server/operations/node/attrs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @module File handle (FH) operations for NFS v4 server.
3
+ */
4
+ import type { Nfsv4OperationCtx } from '../Nfsv4Operations';
5
+ export declare const ROOT_FH: Uint8Array<ArrayBuffer>;
6
+ export declare const enum FH_TYPE {
7
+ /** Root file handle. */
8
+ ROOT = 0,
9
+ /** Path file handle: the full path is encoded in the file handle. */
10
+ PATH = 1,
11
+ /** ID file handle: server stores the mapping between the ID and the file path. */
12
+ ID = 2
13
+ }
14
+ export declare const enum FH {
15
+ MAX_SIZE = 128
16
+ }
17
+ /**
18
+ * Encodes a file path as a Type 1 file handle (path-based).
19
+ * Format: `[FH_TYPE.PATH, ...utf8PathBytes]`
20
+ *
21
+ * @returns The encoded file handle, or undefined if the path is too long.
22
+ */
23
+ export declare const encodePathFh: (absolutePath: string) => Uint8Array | undefined;
24
+ export declare const decodePathFh: (fh: Uint8Array) => string | undefined;
25
+ export declare class FileHandleMapper {
26
+ /** Root directory for all file handles. */
27
+ protected readonly dir: string;
28
+ /** 16-bit unsigned int which identifies this server instance. */
29
+ protected readonly stamp: number;
30
+ /** Map from random ID (40 bits) to absolute file path for Type 2 file handles. */
31
+ protected idToPath: Map<number, string>;
32
+ protected pathToId: Map<string, Uint8Array>;
33
+ protected readonly maxFhTableSize = 100000;
34
+ constructor(stamp: number,
35
+ /** Root directory for all file handles. */
36
+ dir: string);
37
+ /**
38
+ * Decodes a file handle to an absolute file path.
39
+ * Returns `undefined` if the file handle could not be decoded.
40
+ */
41
+ decode(fh: Uint8Array): string;
42
+ /**
43
+ * Encodes a file path as a file handle. Uses Type 1 (path-based) if the path
44
+ * fits, otherwise uses Type 2 (ID-based).
45
+ *
46
+ * Type-2 Format:
47
+ *
48
+ * - 1 byte: FH_TYPE.ID
49
+ * - 2 bytes: boot stamp (server instance ID)
50
+ * - 5 bytes: random ID (unique per file handle)
51
+ */
52
+ encode(path: string): Uint8Array;
53
+ /**
54
+ * Perform a basic quick validation of the file handle structure.
55
+ * This does not guarantee that the file handle is valid, only that
56
+ * it is likely to be well-formed.
57
+ */
58
+ validate(fh: Uint8Array): boolean;
59
+ /**
60
+ * Gets the current file path from the operation context.
61
+ * @param ctx Operation context containing the current file handle (cfh).
62
+ * @returns The current file path.
63
+ */
64
+ currentPath(ctx: Nfsv4OperationCtx): string;
65
+ /**
66
+ * Gets the saved file path from the operation context.
67
+ * @param ctx Operation context containing the saved file handle (sfh).
68
+ * @returns The saved file path.
69
+ */
70
+ savedPath(ctx: Nfsv4OperationCtx): string;
71
+ /**
72
+ * Sets the current file handle in the operation context to the given path.
73
+ * @param ctx Operation context to update.
74
+ * @param path Absolute file path to set as the current file handle.
75
+ */
76
+ setCfh(ctx: Nfsv4OperationCtx, path: string): void;
77
+ /**
78
+ * Removes a file handle mapping for the given path.
79
+ * This is used when a file is deleted or replaced.
80
+ * @param path The absolute file path to remove from the mapping.
81
+ */
82
+ remove(path: string): void;
83
+ /**
84
+ * Updates the file handle mappings when a file is renamed.
85
+ * This ensures that existing file handles pointing to the old path
86
+ * continue to work after the rename operation.
87
+ * When renaming over an existing file, the destination file handle
88
+ * is removed from the cache since that file will be replaced.
89
+ * @param oldPath The old absolute file path.
90
+ * @param newPath The new absolute file path.
91
+ */
92
+ rename(oldPath: string, newPath: string): void;
93
+ }