{"_id":"@bitfinexorg/lib-js-util-marshal","_rev":"2-42bc1df00596e69d9a12b7b2b5b58b97","name":"@bitfinexorg/lib-js-util-marshal","dist-tags":{"latest":"0.9.1"},"versions":{"0.9.0":{"name":"@bitfinexorg/lib-js-util-marshal","version":"0.9.0","description":"nodejs library for serialization/deserialization of data based on ruby marshal protocol","main":"index.js","scripts":{"coverage":"nyc --reporter=html mocha","lint":"standard","format":"standard --fix","test":"npm run lint && npm run test:code","test:code":"NODE_ENV=test mocha test"},"repository":{"type":"git","url":"git+https://github.com/bitfinexcom/lib-js-util-marshal.git"},"keywords":["ruby","marshal","buffer","serialization","object marshaling","marshaling"],"author":{"name":"vigan.abd","email":"vigan.abdurrahmani@bitfinex.com"},"maintainers":[{"name":"bitfinexorg","email":"paolo@bitfinex.com"}],"license":"Apache-2.0","bugs":{"url":"https://github.com/bitfinexcom/lib-js-util-marshal/issues"},"homepage":"https://github.com/bitfinexcom/lib-js-util-marshal#readme","devDependencies":{"mocha":"^8.4.0","nyc":"^15.1.0","standard":"^16.0.3"},"dependencies":{"lodash":"^4.17.21"},"gitHead":"78a9b12e00d2e6151f51ecb82ae4acfae5117d3e","_id":"@bitfinexorg/lib-js-util-marshal@0.9.0","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-oXVi3MO7fVuoE29uYk4z2c/Yt8mWdVT4OUqz/JRKz8DQllGPR7tbIiGpTXFAscO9EPrAwSHkwQnB9NwGNm7Uiw==","shasum":"8d23488ef10468b35a0c827eca8f5533491b44ca","tarball":"https://registry.npmjs.org/@bitfinexorg/lib-js-util-marshal/-/lib-js-util-marshal-0.9.0.tgz","fileCount":46,"unpackedSize":94985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyICOCRA9TVsSAnZWagAACRIP/jodM+BT5pry65k5Qn4y\nMV6vsBQVca4n2ycJ2eRRk4newP+50cE5RvDbfb5XV1kEonotqmsfAjWzZ2xo\n0NYnwWEeslM5G7wFI68NB6MkMl3MNutbLx1o4VAhnw6b1S220y8qOfzNQgJK\nn6MiR4hjChnXfRhgN3P9KRQXmbzo90gDJdrsWwWVqfAYXXzAvgz0ebeJxFY/\nhIa7eLJdqVDR+pxFidIRFiKPketQAVaIzS2a3OBAebUzdPGse2D6tFmmJnNp\nR1XzK/wbfztxcHblsVg5RAWQsscghPVcb46bJlpf+fOlQrZAaLx2XgsQrHGs\n+vp+usPCj8CPZIRnhYtDPhOdTqUVeC9tKUmszW1cnMFusH4lAU2X/M1xJIKH\nWouEuuVum7oFkuDAGodD9VJCs0OKPpm2KTu6ew6OKmChZ0AVqLp9SB8vNHXl\nr15k/WZ518KXqRbUoUiV3a1f+nWwNNN0cNOUHYLvmFVoFG+IwgXbM8zZXrCx\n4Z296kyyrtuYwDFaErUC8WEdXrSKj0o4S7cO0+aD2/zeROaGm/XIUmfB2qh/\nxs/K5Cb1nsVKnZhFfbGvJq1wosZJzsbTm6u9bOatqbgzxsmtLFTwneKrR3xU\n0q46Uf8nnnAD+Ilh0exce219sSNGl93DPg5NjGsKLdL0UVmesf8WlLXyO+c/\nkt2t\r\n=2CvV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7gM34l0jWJjyRxIRqZd/Q+6rW+T2ftvspuqwZb2NzfgIhANfvzqF8XMrO3r6P7K39eszWXaAcJHFkO4I0zsQWSELO"}]},"_npmUser":{"name":"bitfinexorg","email":"paolo@bitfinex.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lib-js-util-marshal_0.9.0_1623752846766_0.9205851121051294"},"_hasShrinkwrap":false},"0.9.1":{"name":"@bitfinexorg/lib-js-util-marshal","version":"0.9.1","description":"nodejs library for serialization/deserialization of data based on ruby marshal protocol","main":"index.js","scripts":{"coverage":"nyc --reporter=html mocha","lint":"standard","format":"standard --fix","test":"npm run lint && npm run test:code","test:code":"NODE_ENV=test mocha test"},"repository":{"type":"git","url":"git+https://github.com/bitfinexcom/lib-js-util-marshal.git"},"keywords":["ruby","marshal","buffer","serialization","object marshaling","marshaling"],"author":{"name":"vigan.abd","email":"vigan.abdurrahmani@bitfinex.com"},"maintainers":[{"name":"bitfinexorg","email":"paolo@bitfinex.com"}],"license":"Apache-2.0","bugs":{"url":"https://github.com/bitfinexcom/lib-js-util-marshal/issues"},"homepage":"https://github.com/bitfinexcom/lib-js-util-marshal#readme","devDependencies":{"mocha":"^8.4.0","nyc":"^15.1.0","standard":"^16.0.3"},"dependencies":{"lodash":"^4.17.21"},"gitHead":"e7f41e67fa82b7a10773b6dbeb47a883247954fe","_id":"@bitfinexorg/lib-js-util-marshal@0.9.1","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-HcjC5aYC3gjspwVvYWsgvRY4umZ8SN1dKLaPfezd9olpDEtwsNvsahKbCZFOBrmy2febDnhg2vnlnQpqPhn7xQ==","shasum":"1933f4c9f07e816a286b7b9b19a5b300e24f3511","tarball":"https://registry.npmjs.org/@bitfinexorg/lib-js-util-marshal/-/lib-js-util-marshal-0.9.1.tgz","fileCount":46,"unpackedSize":94985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgy25yCRA9TVsSAnZWagAA0CUQAJfORsDWoGMPjhmVBnuW\nE0Ua4JZ/L43dQ8QqelDV0l+YJ2OzY88VzXzuDKSe/lL8b9d6gvC4dMXyU6C3\nKL7y3dZyKTM8mjyGN38lm/4Wzw2jwo8mm2w5HgdgvkNqMXgm8nYlRiSJVpoy\n2nLd84rPW9uP29aACQ4DiFDdVsx93tTUJ0SSBVBvBQeDsxt9U60KO4T/Je6Y\nHTH2xtGAI7aD5FmQNF3pRZssV+0QnVNkJ9kbC3tBVORJ+XkCLsAgofQeNXsa\nxskN7tYk7NE9IZ3ReNxURswpQB5TamBDCEr3LVHtpU6Kfj6c9qUT9S/XogZp\nUa1tK5JnEBGuALvDaBtc17+GpP/b78b6WevV6yHXddKIyjJcBWhuEljKMbod\nEe/5P2wFtIJkXvPfTmN2uv9ehna3IaOjc+zF41CB8zjejv0J1EWQJRgZiZtT\nzPc11UwBYaYiHlLGnJ/7xizGHeCBojvDLP/xmtW8QpoEoHkfalif5g0fuVyo\nZctbnmeeWa4SbZdHv4V2+OFPn321inS9pUMCFuhOE9eJo9gv2vXz0Grl41G5\nn8MtcIdhjyw8MyW5tIBhwLeJwEqDTsiaSRY9oNh9JysRk6/l7P7P1XKnQAxs\n0UtZWJxBtuwxR84UdlyBjbU9/rrRbMsW9Y4zci8uBjHXmsCw6G8KLr3WalQG\nHcYi\r\n=Ju1X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCs13XQSW27YCgJGRsMK2ISAzPvcyW96BJROOcGNEJcGQIgRP1DN300YhBiL9Sbi+/bAKSmezrqJh5oIIAOj78ExAw="}]},"_npmUser":{"name":"bitfinexorg","email":"paolo@bitfinex.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lib-js-util-marshal_0.9.1_1623944817564_0.1275424418785247"},"_hasShrinkwrap":false}},"time":{"created":"2021-06-15T10:27:26.766Z","0.9.0":"2021-06-15T10:27:26.876Z","modified":"2022-04-04T18:59:59.947Z","0.9.1":"2021-06-17T15:46:57.732Z"},"maintainers":[{"name":"bitfinexorg","email":"paolo@bitfinex.com"}],"description":"nodejs library for serialization/deserialization of data based on ruby marshal protocol","homepage":"https://github.com/bitfinexcom/lib-js-util-marshal#readme","keywords":["ruby","marshal","buffer","serialization","object marshaling","marshaling"],"repository":{"type":"git","url":"git+https://github.com/bitfinexcom/lib-js-util-marshal.git"},"author":{"name":"vigan.abd","email":"vigan.abdurrahmani@bitfinex.com"},"bugs":{"url":"https://github.com/bitfinexcom/lib-js-util-marshal/issues"},"license":"Apache-2.0","readme":"# lib-js-util-marshal\n\nSimple library for serializing and deserializing Ruby's Marshal byte sequences\nin NodeJS.\n\n**Supported features**\n- dumping integers\n- dumping raw strings (ivar strings don't exist in js so raw strings are encoded in utf-8)\n- dumping floats (1.0 is dumped as int type due to NodeJS number type)\n- dumping nil values (null values)\n- dumping boolean values\n- dumping symbols (js symbols are converted to ruby symbols)\n- dumping symbol links (each js symbol is converted to symbol link when necessary)\n- dumping arrays\n- dumping hashes (non plain objects will throw)\n- loading integers\n- loading raw strings\n- loading ivar strings\n- loading floats (1.0 is loaded as int type due to NodeJS number type)\n- loading nil values (are converted to null on js)\n- loading boolean values\n- loading symbols (in js are converted to strings)\n- loading symbol links (in js are converted to strings)\n- loading arrays\n- loading hashes\n\n**Unsupported features**\n- bumping/loading bignums\n- bumping/loading objects\n- bumping/loading object links\n- bumping/loading classes\n- bumping/loading modules\n- bumping/loading regular expressions\n- and bumping/loading [other types](https://github.com/ruby/ruby/blob/master/marshal.c#L71)\n\n## Installing\n\n```console\nnpm install @bitfinex/lib-js-util-marshal\n```\n\n## Testing\n\n```console\nnpm test\n```\n\n## Usage\n\n```javascript\n'use strict'\n\nconst { inspect } = require('util')\nconst marshal = require('@bitfinex/lib-js-util-marshal')\n\nconst myObj = {\n  foo: 'bar',\n  1: true,\n  data: [\n    'a', null, false, -3.14,\n    [1, 2, { name: 'joe' }]\n  ]\n}\n\nconst serialized = marshal.dump(myObj).toString('hex')\nconsole.log(serialized)\n/* prints\n0408 7b08 3a06 3154 3a08 666f 6f22 0862 6172 3a09 6461 7461 5b0a 2206 6130 \n4666 0a2d 332e 3134 5b08 6906 6907 7b06 3a09 6e61 6d65 2208 6a6f 65\n*/\n\nconst deserialized = marshal.load(Buffer.from(serialized, 'hex'))\nconsole.log(inspect(deserialized, false, 10, true))\n/* prints\n{\n  '1': true,\n  foo: 'bar',\n  data: [ 'a', null, false, -3.14, [ 1, 2, { name: 'joe' } ] ]\n}\n*/\n\n```\n\n## Notes\n\nDetailed info on how object marshaling works in ruby can be found this \n[blog series](http://jakegoulding.com/blog/2013/01/15/a-little-dip-into-rubys-marshal-format/).\n","readmeFilename":"README.md"}