{"_id":"@nuxt/devalue","_rev":"2977832","name":"@nuxt/devalue","description":"Gets the job done when JSON.stringify can't","dist-tags":{"latest":"2.0.2","prerelease":"2.0.0-0"},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"time":{"modified":"2023-06-21T16:38:03.000Z","created":"2018-12-20T10:51:17.218Z","2.0.2":"2023-05-02T20:04:24.902Z","2.0.1":"2023-05-02T12:58:51.554Z","2.0.0":"2021-07-12T10:47:41.146Z","2.0.0-0":"2021-05-17T20:40:46.696Z","1.2.5":"2021-02-01T17:04:17.669Z","1.2.4":"2019-06-27T20:00:49.246Z","1.2.3":"2019-04-14T20:44:52.839Z","1.2.2":"2019-03-14T12:45:08.065Z","1.2.1":"2019-02-28T15:00:00.321Z","1.2.0":"2018-12-20T10:51:17.218Z"},"users":{},"repository":{"type":"git","url":"git+https://github.com/nuxt/devalue.git"},"versions":{"2.0.2":{"name":"@nuxt/devalue","version":"2.0.2","description":"Gets the job done when JSON.stringify can't","repository":{"type":"git","url":"git+https://github.com/nuxt/devalue.git"},"license":"MIT","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/devalue.js","import":"./dist/devalue.mjs"}},"main":"./dist/devalue.js","module":"./dist/devalue.mjs","types":"./dist/index.d.ts","scripts":{"build":"unbuild","prepack":"yarn build","lint":"eslint --ext .ts,.js .","test":"yarn lint && jest","release":"yarn test && standard-version && git push --follow-tags && npm publish"},"devDependencies":{"@nuxtjs/eslint-config-typescript":"^6.0.0","@types/jest":"^26.0.23","@types/mocha":"^8.2.2","@types/node":"^15.3.0","eslint":"^7.26.0","jest":"^26.6.3","standard-version":"^9.3.0","ts-jest":"^26.5.6","typescript":"^4.2.4","unbuild":"^1.2.1"},"gitHead":"cad1feb55dd739cb1977f7cd94942306dc31df7d","bugs":{"url":"https://github.com/nuxt/devalue/issues"},"homepage":"https://github.com/nuxt/devalue#readme","_id":"@nuxt/devalue@2.0.2","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"shasum":"5749f04df13bda4c863338d8dabaf370f45ef7c7","size":5530,"noattachment":false,"key":"/@nuxt/devalue/-/@nuxt/devalue-2.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@nuxt/devalue/download/@nuxt/devalue-2.0.2.tgz"},"_npmUser":{"name":"danielroe","email":"daniel@roe.dev"},"directories":{},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/devalue_2.0.2_1683057864746_0.006120805985385447"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-05-02T20:04:24.902Z","publish_time":1683057864902,"_source_registry_name":"default","_cnpm_publish_time":1683057864902},"2.0.1":{"name":"@nuxt/devalue","version":"2.0.1","description":"Gets the job done when JSON.stringify can't","repository":{"type":"git","url":"git+https://github.com/nuxt-contrib/devalue.git"},"license":"MIT","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/devalue.js","import":"./dist/devalue.mjs"}},"main":"./dist/devalue.js","module":"./dist/devalue.mjs","types":"./dist/index.d.ts","scripts":{"build":"siroc build","prepack":"yarn build","lint":"eslint --ext .ts,.js .","test":"yarn lint && jest","release":"yarn test && standard-version && git push --follow-tags && npm publish"},"devDependencies":{"@nuxtjs/eslint-config-typescript":"^6.0.0","@types/jest":"^26.0.23","@types/mocha":"^8.2.2","@types/node":"^15.3.0","eslint":"^7.26.0","jest":"^26.6.3","siroc":"^0.10.0","standard-version":"^9.3.0","ts-jest":"^26.5.6","typescript":"^4.2.4"},"gitHead":"a21b72b54ae0500dfb1c60ac901be50ae1cad86f","bugs":{"url":"https://github.com/nuxt-contrib/devalue/issues"},"homepage":"https://github.com/nuxt-contrib/devalue#readme","_id":"@nuxt/devalue@2.0.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"shasum":"e98de8a9dc7e0ecfbde565a805304995cc9db6fb","size":5566,"noattachment":false,"key":"/@nuxt/devalue/-/@nuxt/devalue-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@nuxt/devalue/download/@nuxt/devalue-2.0.1.tgz"},"_npmUser":{"name":"danielroe","email":"daniel@roe.dev"},"directories":{},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/devalue_2.0.1_1683032331398_0.40580508770188195"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-05-02T12:58:51.554Z","publish_time":1683032331554,"_source_registry_name":"default","_cnpm_publish_time":1683032331554},"2.0.0":{"name":"@nuxt/devalue","version":"2.0.0","description":"Gets the job done when JSON.stringify can't","repository":{"type":"git","url":"git+https://github.com/nuxt-contrib/devalue.git"},"license":"MIT","exports":{".":{"require":"./dist/devalue.js","import":"./dist/devalue.mjs"}},"main":"./dist/devalue.js","module":"./dist/devalue.mjs","types":"./dist/index.d.ts","scripts":{"build":"siroc build","prepack":"yarn build","lint":"eslint --ext .ts,.js .","test":"yarn lint && jest","release":"yarn test && standard-version && git push --follow-tags && npm publish"},"devDependencies":{"@nuxtjs/eslint-config-typescript":"^6.0.0","@types/jest":"^26.0.23","@types/mocha":"^8.2.2","@types/node":"^15.3.0","eslint":"^7.26.0","jest":"^26.6.3","siroc":"^0.10.0","standard-version":"^9.3.0","ts-jest":"^26.5.6","typescript":"^4.2.4"},"gitHead":"6133fa2d5b0d643d1ed5eb05dd69b8f817b9ad63","bugs":{"url":"https://github.com/nuxt-contrib/devalue/issues"},"homepage":"https://github.com/nuxt-contrib/devalue#readme","_id":"@nuxt/devalue@2.0.0","_nodeVersion":"14.16.1","_npmVersion":"7.12.1","dist":{"shasum":"c7bd7e9a516514e612d5d2e511ffc399e0eac322","size":5505,"noattachment":false,"key":"/@nuxt/devalue/-/@nuxt/devalue-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@nuxt/devalue/download/@nuxt/devalue-2.0.0.tgz"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"directories":{},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/devalue_2.0.0_1626086861012_0.8190589328820805"},"_hasShrinkwrap":false,"publish_time":1626086861146,"_cnpm_publish_time":1626086861146},"2.0.0-0":{"name":"@nuxt/devalue","version":"2.0.0-0","description":"Gets the job done when JSON.stringify can't","repository":{"type":"git","url":"git+https://github.com/nuxt-contrib/devalue.git"},"license":"MIT","exports":{".":{"require":"./dist/devalue.js","import":"./dist/devalue.mjs"}},"main":"./dist/devalue.js","module":"./dist/devalue.mjs","types":"./dist/index.d.ts","scripts":{"build":"siroc build","prepack":"yarn build","lint":"eslint --ext .ts,.js .","test":"yarn lint && jest","release":"yarn test && standard-version && git push --follow-tags && npm publish"},"devDependencies":{"@nuxtjs/eslint-config-typescript":"^6.0.0","@types/jest":"^26.0.23","@types/mocha":"^8.2.2","@types/node":"^15.3.0","eslint":"^7.26.0","jest":"^26.6.3","siroc":"^0.10.0","standard-version":"^9.3.0","ts-jest":"^26.5.6","typescript":"^4.2.4"},"readmeFilename":"README.md","gitHead":"e296b9e142e477332474ed8018d75fe93ade46e5","bugs":{"url":"https://github.com/nuxt-contrib/devalue/issues"},"homepage":"https://github.com/nuxt-contrib/devalue#readme","_id":"@nuxt/devalue@2.0.0-0","_nodeVersion":"14.16.1","_npmVersion":"7.12.1","dist":{"shasum":"9962c3529b02e09a9ad18bf043f799ab2a1a2f78","size":5505,"noattachment":false,"key":"/@nuxt/devalue/-/@nuxt/devalue-2.0.0-0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@nuxt/devalue/download/@nuxt/devalue-2.0.0-0.tgz"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"directories":{},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/devalue_2.0.0-0_1621284046575_0.2922992418732082"},"_hasShrinkwrap":false,"publish_time":1621284046696,"_cnpm_publish_time":1621284046696},"1.2.5":{"name":"@nuxt/devalue","version":"1.2.5","description":"Gets the job done when JSON.stringify can't","repository":{"type":"git","url":"git+https://github.com/nuxt-community/devalue.git"},"license":"MIT","main":"dist/devalue.cjs.js","module":"dist/devalue.esm.js","browser":"dist/devalue.js","types":"types/index.d.ts","scripts":{"build":"npm run build-declarations && rollup -c","build-declarations":"tsc -d && node scripts/move-type-declarations.js","prepublishOnly":"npm run build && npm test","test":"mocha --opts mocha.opts"},"dependencies":{"consola":"^2.9.0"},"devDependencies":{"@types/mocha":"^5.2.6","@types/node":"^12.0.10","glob":"^7.1.3","mocha":"^6.0.2","rollup":"^1.3.2","rollup-plugin-typescript":"^1.0.0","rollup-plugin-virtual":"^1.0.1","sander":"^0.6.0","ts-node":"^8.0.2","tslib":"^1.9.3","typescript":"^3.3.3333"},"gitHead":"cb8d627f2c1233447ab8d7c206beb9418e9d5cc2","bugs":{"url":"https://github.com/nuxt-community/devalue/issues"},"homepage":"https://github.com/nuxt-community/devalue#readme","_id":"@nuxt/devalue@1.2.5","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"shasum":"8d95e3e74b3332d3eb713342c5c4d18096047d66","size":7302,"noattachment":false,"key":"/@nuxt/devalue/-/@nuxt/devalue-1.2.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/@nuxt/devalue/download/@nuxt/devalue-1.2.5.tgz"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"directories":{},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/devalue_1.2.5_1612199057499_0.2854430654769202"},"_hasShrinkwrap":false,"publish_time":1612199057669,"_cnpm_publish_time":1612199057669},"1.2.4":{"name":"@nuxt/devalue","version":"1.2.4","description":"Gets the job done when JSON.stringify can't","repository":{"type":"git","url":"git+https://github.com/nuxt-community/devalue.git"},"license":"MIT","main":"dist/devalue.cjs.js","module":"dist/devalue.esm.js","browser":"dist/devalue.js","types":"types/index.d.ts","scripts":{"build":"npm run build-declarations && rollup -c","build-declarations":"tsc -d && node scripts/move-type-declarations.js","prepublishOnly":"npm run build && npm test","test":"mocha --opts mocha.opts"},"dependencies":{"consola":"^2.9.0"},"devDependencies":{"@types/mocha":"^5.2.6","@types/node":"^12.0.10","glob":"^7.1.3","mocha":"^6.0.2","rollup":"^1.3.2","rollup-plugin-typescript":"^1.0.0","rollup-plugin-virtual":"^1.0.1","sander":"^0.6.0","ts-node":"^8.0.2","tslib":"^1.9.3","typescript":"^3.3.3333"},"gitHead":"ebd18d6b4dfc74d46faf797f3801c8970319d4fb","bugs":{"url":"https://github.com/nuxt-community/devalue/issues"},"homepage":"https://github.com/nuxt-community/devalue#readme","_id":"@nuxt/devalue@1.2.4","_nodeVersion":"12.4.0","_npmVersion":"6.9.0","dist":{"shasum":"69eca032b7481fd3c019a78ade65d642da3f2f35","size":7296,"noattachment":false,"key":"/@nuxt/devalue/-/@nuxt/devalue-1.2.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@nuxt/devalue/download/@nuxt/devalue-1.2.4.tgz"},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/devalue_1.2.4_1561665649106_0.5436323847682429"},"_hasShrinkwrap":false,"publish_time":1561665649246,"_cnpm_publish_time":1561665649246},"1.2.3":{"name":"@nuxt/devalue","description":"Gets the job done when JSON.stringify can't","version":"1.2.3","repository":{"type":"git","url":"git+https://github.com/nuxt-community/devalue.git"},"main":"dist/devalue.cjs.js","module":"dist/devalue.esm.js","browser":"dist/devalue.js","types":"types/index.d.ts","dependencies":{"consola":"^2.5.6"},"devDependencies":{"@types/mocha":"^5.2.6","@types/node":"^11.9.5","glob":"^7.1.3","mocha":"^6.0.2","rollup":"^1.3.2","rollup-plugin-typescript":"^1.0.0","rollup-plugin-virtual":"^1.0.1","sander":"^0.6.0","ts-node":"^8.0.2","tslib":"^1.9.3","typescript":"^3.3.3333"},"scripts":{"build-declarations":"tsc -d && node scripts/move-type-declarations.js","build":"npm run build-declarations && rollup -c","test":"mocha --opts mocha.opts","prepublishOnly":"npm run build && npm test"},"license":"LIL","gitHead":"6b06aaf0184ff35bf45f87e6de9900563f4f8133","bugs":{"url":"https://github.com/nuxt-community/devalue/issues"},"homepage":"https://github.com/nuxt-community/devalue#readme","_id":"@nuxt/devalue@1.2.3","_nodeVersion":"11.13.0","_npmVersion":"6.9.0","dist":{"shasum":"0a814d7e10519ffcb1a2a9930add831f91783092","size":7077,"noattachment":false,"key":"/@nuxt/devalue/-/@nuxt/devalue-1.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@nuxt/devalue/download/@nuxt/devalue-1.2.3.tgz"},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/devalue_1.2.3_1555274692726_0.8960415562627242"},"_hasShrinkwrap":false,"publish_time":1555274692839,"_cnpm_publish_time":1555274692839},"1.2.2":{"name":"@nuxt/devalue","description":"Gets the job done when JSON.stringify can't","version":"1.2.2","repository":{"type":"git","url":"git+https://github.com/nuxt-community/devalue.git"},"main":"dist/devalue.cjs.js","module":"dist/devalue.esm.js","browser":"dist/devalue.js","types":"types/index.d.ts","dependencies":{"consola":"^2.5.6"},"devDependencies":{"@types/mocha":"^5.2.6","@types/node":"^11.9.5","glob":"^7.1.3","mocha":"^6.0.2","rollup":"^1.3.2","rollup-plugin-typescript":"^1.0.0","rollup-plugin-virtual":"^1.0.1","sander":"^0.6.0","ts-node":"^8.0.2","tslib":"^1.9.3","typescript":"^3.3.3333"},"scripts":{"build-declarations":"tsc -d && node scripts/move-type-declarations.js","build":"npm run build-declarations && rollup -c","test":"mocha --opts mocha.opts","prepublishOnly":"npm run build && npm test"},"license":"LIL","gitHead":"2f286c70034bdd3d08a41373fa3d0e5bd2f4595a","bugs":{"url":"https://github.com/nuxt-community/devalue/issues"},"homepage":"https://github.com/nuxt-community/devalue#readme","_id":"@nuxt/devalue@1.2.2","_nodeVersion":"11.11.0","_npmVersion":"6.7.0","dist":{"shasum":"1d7993f9a6029df07f597a20246b16282302b156","size":7346,"noattachment":false,"key":"/@nuxt/devalue/-/@nuxt/devalue-1.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@nuxt/devalue/download/@nuxt/devalue-1.2.2.tgz"},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"_npmUser":{"name":"aldarund","email":"aldarund@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/devalue_1.2.2_1552567507951_0.9535157797492657"},"_hasShrinkwrap":false,"publish_time":1552567508065,"_cnpm_publish_time":1552567508065},"1.2.1":{"name":"@nuxt/devalue","description":"Gets the job done when JSON.stringify can't","version":"1.2.1","repository":{"type":"git","url":"git+https://github.com/nuxt-community/devalue.git"},"main":"dist/devalue.cjs.js","module":"dist/devalue.esm.js","browser":"dist/devalue.js","types":"types/index.d.ts","dependencies":{"consola":"^2.5.6"},"devDependencies":{"@types/mocha":"^5.2.6","@types/node":"^11.9.5","glob":"^7.1.3","mocha":"^6.0.2","rollup":"^1.3.2","rollup-plugin-typescript":"^1.0.0","rollup-plugin-virtual":"^1.0.1","sander":"^0.6.0","ts-node":"^8.0.2","tslib":"^1.9.3","typescript":"^3.3.3333"},"scripts":{"build-declarations":"tsc -d && node scripts/move-type-declarations.js","build":"npm run build-declarations && rollup -c","test":"mocha --opts mocha.opts","prepublishOnly":"npm run build && npm test"},"license":"LIL","gitHead":"86d21eff2ba733cd4af2876262cf7985f118303b","bugs":{"url":"https://github.com/nuxt-community/devalue/issues"},"homepage":"https://github.com/nuxt-community/devalue#readme","_id":"@nuxt/devalue@1.2.1","_nodeVersion":"10.8.0","_npmVersion":"6.8.0","_npmUser":{"name":"atinux","email":"atinux@gmail.com"},"dist":{"shasum":"29f077ba646cf77c865872b1c9aa615518905cd5","size":6706,"noattachment":false,"key":"/@nuxt/devalue/-/@nuxt/devalue-1.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@nuxt/devalue/download/@nuxt/devalue-1.2.1.tgz"},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/devalue_1.2.1_1551366000231_0.8093479700653898"},"_hasShrinkwrap":false,"publish_time":1551366000321,"_cnpm_publish_time":1551366000321},"1.2.0":{"name":"@nuxt/devalue","description":"Gets the job done when JSON.stringify can't","version":"1.2.0","repository":{"type":"git","url":"git+https://github.com/nuxt-community/devalue.git"},"main":"dist/devalue.cjs.js","module":"dist/devalue.esm.js","browser":"dist/devalue.js","types":"types/index.d.ts","dependencies":{"consola":"^2.3.0"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.15","glob":"^7.1.3","mocha":"^5.2.0","rollup":"^0.68.0","rollup-plugin-typescript":"^1.0.0","rollup-plugin-virtual":"^1.0.1","sander":"^0.6.0","ts-node":"^7.0.1","tslib":"^1.9.3","typescript":"^3.2.2"},"scripts":{"build-declarations":"tsc -d && node scripts/move-type-declarations.js","build":"npm run build-declarations && rollup -c","test":"mocha --opts mocha.opts","prepublishOnly":"npm run build && npm test"},"license":"LIL","gitHead":"5f2c22949fc8e41d60c84be36a6603809e821b59","bugs":{"url":"https://github.com/nuxt-community/devalue/issues"},"homepage":"https://github.com/nuxt-community/devalue#readme","_id":"@nuxt/devalue@1.2.0","_npmVersion":"6.4.1","_nodeVersion":"11.4.0","_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"dist":{"shasum":"a76f12fbabf43fbfde6823942338674ba7ae3265","size":6699,"noattachment":false,"key":"/@nuxt/devalue/-/@nuxt/devalue-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@nuxt/devalue/download/@nuxt/devalue-1.2.0.tgz"},"maintainers":[{"name":"antfu","email":""},{"name":"atinux","email":"atinux@gmail.com"},{"name":"clarkdo","email":"clark.duxin@gmail.com"},{"name":"danielroe","email":"daniel@concision.co.uk"},{"name":"pi0","email":"pooya@pi0.ir"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/devalue_1.2.0_1545303077043_0.498487758461962"},"_hasShrinkwrap":false,"publish_time":1545303077218,"_cnpm_publish_time":1545303077218}},"readme":"# @nuxt/devalue\n\n[![npm version][npm-version-src]][npm-version-href]\n[![npm downloads][npm-downloads-src]][npm-downloads-href]\n[![codecov][codecov-src]][codecov-href]\n[![package phobia][package-phobia-src]][package-phobia-href]\n[![bundle phobia][bundle-phobia-src]][bundle-phobia-href]\n\n> Forked from [devalue](https://github.com/Rich-Harris/devalue) to log errors on non-serializable properties rather than throwing `Error`.\n\nLike `JSON.stringify`, but handles\n\n* cyclical references (`obj.self = obj`)\n* repeated references (`[value, value]`)\n* `undefined`, `Infinity`, `NaN`, `-0`\n* regular expressions\n* dates\n* `Map` and `Set`\n* `.toJSON()` method for non-POJOs\n\nTry it out on [runkit.com](https://npm.runkit.com/@nuxt/devalue).\n\n## Goals:\n\n* Performance\n* Security (see [XSS mitigation](#xss-mitigation))\n* Compact output\n\n\n## Non-goals:\n\n* Human-readable output\n* Stringifying functions or arbritary non-POJOs\n\n\n## Usage\n\n```js\nimport devalue from '@nuxt/devalue';\n\nlet obj = { a: 1, b: 2 };\nobj.c = 3;\n\ndevalue(obj); // '{a:1,b:2,c:3}'\n\nobj.self = obj;\ndevalue(obj); // '(function(a){a.a=1;a.b=2;a.c=3;a.self=a;return a}({}))'\n```\n\nIf `devalue` encounters a function or a non-POJO, it will throw an error.\n\n\n## XSS mitigation\n\nSay you're server-rendering a page and want to serialize some state, which could include user input. `JSON.stringify` doesn't protect against XSS attacks:\n\n```js\nconst state = {\n  userinput: `</script><script src='https://evil.com/mwahaha.js'>`\n};\n\nconst template = `\n<script>\n  // NEVER DO THIS\n  var preloaded = ${JSON.stringify(state)};\n</script>`;\n```\n\nWhich would result in this:\n\n```html\n<script>\n  // NEVER DO THIS\n  var preloaded = {\"userinput\":\"</script><script src='https://evil.com/mwahaha.js'>\"};\n</script>\n```\n\nUsing `devalue`, we're protected against that attack:\n\n```js\nconst template = `\n<script>\n  var preloaded = ${devalue(state)};\n</script>`;\n```\n\n```html\n<script>\n  var preloaded = {userinput:\"\\\\u003C\\\\u002Fscript\\\\u003E\\\\u003Cscript src=\\'https:\\\\u002F\\\\u002Fevil.com\\\\u002Fmwahaha.js\\'\\\\u003E\"};\n</script>\n```\n\nThis, along with the fact that `devalue` bails on functions and non-POJOs, stops attackers from executing arbitrary code. Strings generated by `devalue` can be safely deserialized with `eval` or `new Function`:\n\n```js\nconst value = (0,eval)('(' + str + ')');\n```\n\n\n## Other security considerations\n\nWhile `devalue` prevents the XSS vulnerability shown above, meaning you can use it to send data from server to client, **you should not send user data from client to server** using the same method. Since it has to be evaluated, an attacker that successfully submitted data that bypassed `devalue` would have access to your system.\n\nWhen using `eval`, ensure that you call it *indirectly* so that the evaluated code doesn't have access to the surrounding scope:\n\n```js\n{\n  const sensitiveData = 'Setec Astronomy';\n  eval('sendToEvilServer(sensitiveData)'); // pwned :(\n  (0,eval)('sendToEvilServer(sensitiveData)'); // nice try, evildoer!\n}\n```\n\nUsing `new Function(code)` is akin to using indirect eval.\n\n\n## See also\n\n* [lave](https://github.com/jed/lave) by Jed Schmidt\n* [arson](https://github.com/benjamn/arson) by Ben Newman\n* [tosource](https://github.com/marcello3d/node-tosource) by Marcello Bastéa-Forte\n* [serialize-javascript](https://github.com/yahoo/serialize-javascript) by Eric Ferraiuolo\n\n\n## License\n\n[MIT](LICENSE)\n\n<!-- Refs -->\n[npm-version-src]: https://flat.badgen.net/npm/v/@nuxt/devalue/latest\n[npm-version-href]: https://www.npmjs.com/package/@nuxt/devalue\n\n[npm-downloads-src]: https://flat.badgen.net/npm/dm/@nuxt/devalue\n[npm-downloads-href]: https://www.npmjs.com/package/@nuxt/devalue\n\n[circleci-src]: https://flat.badgen.net/circleci/github/nuxt-contrib/devalue\n[circleci-href]: https://circleci.com/gh/nuxt-contrib/devalue\n\n[package-phobia-src]: https://flat.badgen.net/packagephobia/install/@nuxt/devalue\n[package-phobia-href]: https://packagephobia.now.sh/result?p=@nuxt/devalue\n\n[bundle-phobia-src]: https://flat.badgen.net/bundlephobia/minzip/@nuxt/devalue\n[bundle-phobia-href]: https://bundlephobia.com/result?p=@nuxt/devalue\n\n[codecov-src]: https://flat.badgen.net/codecov/c/github/nuxt-contrib/devalue/master\n[codecov-href]: https://codecov.io/gh/nuxt-contrib/devalue\n","_attachments":{},"homepage":"https://github.com/nuxt/devalue#readme","bugs":{"url":"https://github.com/nuxt/devalue/issues"},"license":"MIT"}