{"_id":"simple-unique","_rev":"3-906ee8d90038cee02374b8290ba94064","name":"simple-unique","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"simple-unique","version":"1.0.0","description":"完全随机生成唯一字符串 · 超轻量 | Completely random generation of unique strings · Ultra-lightweight","main":"dist/unique.cjs.js","module":"dist/unique.esm.js","unpkg":"dist/unique.js","jsdelivr":"dist/unique.js","scripts":{"test":"node test.js","test:hot":"nodemon test.js","build":"npx rollup -c","lint:fix":"npx eslint --fix . && npx prettier --check --write ."},"repository":{"type":"git","url":"git+https://github.com/Lete114/Simple-Unique.git"},"keywords":["id","unique","unique id","unique string","generator","random"],"author":{"name":"Lete乐特"},"license":"MIT","bugs":{"url":"https://github.com/Lete114/Simple-Unique/issues"},"homepage":"https://github.com/Lete114/Simple-Unique#readme","devDependencies":{"@babel/core":"^7.17.7","@babel/preset-env":"^7.16.11","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-node-resolve":"^13.1.3","eslint":"^8.11.0","nodemon":"^2.0.15","prettier":"^2.6.0","rollup":"^2.70.1","rollup-plugin-delete":"^2.0.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"d91c35346828412f18a786cc1cc20b739fd552a6","_id":"simple-unique@1.0.0","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-OE1ptBlwOymxk1WPi6DDLxzn3vmhc5otrcvoDtMwW+06j7FOsd27lazV46bAR0a9casPwfFdMngaetKc24Vasw==","shasum":"9097775738d350596f1886a944ca0ebb1c9e2a89","tarball":"https://registry.npmjs.org/simple-unique/-/simple-unique-1.0.0.tgz","fileCount":11,"unpackedSize":8550,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiMfENACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrfmw/+JTI8U3YQjHDh9WKeyNe0nSQLCx0MiFEb+cPyHbK/oPormbHB\r\nV86pixSHG2PuW99nu0jHKAL99ZXRrDsWZITbX/+llu4x43Umd9SUjhEmSlJN\r\nCi20QCo6a9MxrsUzJCIPETCO5J78bIF3ysLN+8xkdwXrozVeOIBRsPCzWu4B\r\nHPrW3TxsAV7w4WLfQPddcFp/9uucFRfVar8bzNWAxZkY/x6xsMrt7/DUYNb2\r\nykpFqTiUojE2U8kxLRo9JwuCQ+eBHsPDDlhHtIPN5jaqumZHKgANtQJBLxHu\r\n7LqnEqeE+j1jaijPYepjLBNAH8zJNZ5+W1lZa3ZW7laOS/Gfj2kfStnyTOhe\r\nu9QGJbx3DQ48bF07MUFBHhO4B45aRqJUk/wbjF0F2++eNA5u8GV3ckCplb/P\r\nduubztE08DNv6QVp2GuzvxSshkoZHR/FOOAtVicZsCeRiHbC0EuUUWG1QDhr\r\n9wyxtunX3ZKTPqmvXb1zRxZFz9cvBNd2c+23+8TH82p+mddz9l68M7E8EYAU\r\n2sHnXLzGLHdvPWuQ1otuN87cxv6z5IScL3uwrwxfB2FTFPya6jROrTOr4eu9\r\nYwvB4i7CXf8v0Y7/6DA6XLzOgYbzMbW1rn+U05yVPAg02v+E3v0YnagvRN63\r\nmmn75zZglpeHDjm8USF0kEj3NUBN+SLD63k=\r\n=B7ih\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDgAk2CU1QONgyo8ISu0MOlQdYSNj13SM1ipFGMZmXMGAiEAvlev2+clDTMhD8N+Q1aaADc1v4GiHN+KUWe5e+c1oAs="}]},"_npmUser":{"name":"lete114","email":"me@imlete.cn"},"directories":{},"maintainers":[{"name":"lete114","email":"me@imlete.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/simple-unique_1.0.0_1647440141481_0.024461695589550247"},"_hasShrinkwrap":false},"1.1.0":{"name":"simple-unique","version":"1.1.0","description":"完全随机生成唯一字符串 · 超轻量 | Completely random generation of unique strings · Ultra-lightweight","main":"dist/unique.cjs.js","module":"dist/unique.esm.js","unpkg":"dist/unique.js","jsdelivr":"dist/unique.js","typings":"unique.d.ts","scripts":{"test":"node test.js","test:hot":"nodemon test.js","build":"npx rollup -c","build:watch":"npx rollup -c -w","lint:fix":"npx eslint --fix . && npx prettier --check --write ."},"repository":{"type":"git","url":"git+https://github.com/Lete114/Simple-Unique.git"},"keywords":["id","unique","unique id","unique string","generator","random"],"author":{"name":"Lete乐特"},"license":"MIT","bugs":{"url":"https://github.com/Lete114/Simple-Unique/issues"},"homepage":"https://github.com/Lete114/Simple-Unique#readme","devDependencies":{"@babel/core":"^7.17.7","@babel/preset-env":"^7.16.11","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-node-resolve":"^13.1.3","eslint":"^8.11.0","nodemon":"^2.0.15","prettier":"^2.6.0","rollup":"^2.70.1","rollup-plugin-delete":"^2.0.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"6df90afee01a5d8e8312d3b951510974438c5975","_id":"simple-unique@1.1.0","_nodeVersion":"17.0.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-DLjAZF4UEY4KkR0mq9Em/nYEF7e2lVMJpo3N375ip61xlf9WcLs8e4ZEKlx0k5zh2ae+t3DuvVuBDchP3jrt3g==","shasum":"489c3f3dd6f51937026ac7d3226dc3968569bddf","tarball":"https://registry.npmjs.org/simple-unique/-/simple-unique-1.1.0.tgz","fileCount":11,"unpackedSize":7393,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFtur3AtjjxVXlqhd2GJ5+8l1YfnCBCDYLMSLTqun79sAiBcDg9ArPySBckxAgcyB5JRoNJJ4qXzKahtlAgTfSCMXQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTcTtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvPhAAhAiprl9N5aHz0goo/awUlebAuM0H70k4Zjw6sOMcTqknKTjH\r\nrQVb/dMC0axJsFM5wodE/dM0+Wke7cgN+o4sJeXzb9SlR+a0psAfR4YqfVWi\r\nd+axi8RXGbej6NsCCaqG/Ct3aDrLbrwd1MrGFe4JcWjpxlkH+BZa8cmFHMYc\r\nD8LeE3paVa3di63XHm/fpCWoLzMKRU6lX9bIEQl2UErWh+0EtrSdrpFxL9KO\r\nguFtJZa9+64mt7xovG6yUfVEPqX6etQ0XjpZL2xUO2O7x1H51Ot2p29Pb+nQ\r\nwWGAynXxXDZWEBSXJe9J9r0Gm/UNZwHsKnKFxTE/y1Qfq5Vb+uwkPM4A77Wf\r\nD0wa6kjvQmQDbUjl7LGfpn4KDOiBC6yN6CJxlQhHHyttnE5rWKmqFR/Slibn\r\nquYOFkMB4SqKMuJib1oR9zlma1hWddEimUx9QKmu9dfBxUs0QZsSMho63WO3\r\n+7SQzy56nduVdy6jScao+ivxalAGXkEdz7k7WeHA12Mzbe2isFK6swn56DRT\r\nKFvJqzsYC77MNhrslqPTNIiV0QL9fj/Y5nThIKlFTWG8M+a9t3AlAU1ZXOZf\r\na4H8zFPIQqF3ksflxRSTDzK91KGbFU61CBC1mQGRDmqZYijLaSV3bUJsPHuS\r\nnOIcXJxENIKhiJjyyYL6U49C+rT9k56nnLs=\r\n=8zFZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lete114","email":"me@imlete.cn"},"directories":{},"maintainers":[{"name":"lete114","email":"me@imlete.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/simple-unique_1.1.0_1649263853068_0.569997834875948"},"_hasShrinkwrap":false},"1.2.0":{"name":"simple-unique","version":"1.2.0","description":"完全随机生成唯一字符串 · 超轻量 | Completely random generation of unique strings · Ultra-lightweight","main":"dist/unique.cjs.js","module":"dist/unique.esm.js","unpkg":"dist/unique.js","jsdelivr":"dist/unique.js","typings":"unique.d.ts","scripts":{"test":"node test.js","test:hot":"nodemon test.js","build":"npx rollup -c","build:watch":"npx rollup -c -w","lint:fix":"npx eslint --fix . && npx prettier --check --write ."},"bin":{"sunique":"bin/unique.js","simple-unique":"bin/unique.js"},"repository":{"type":"git","url":"git+https://github.com/Lete114/Simple-Unique.git"},"keywords":["id","unique","unique id","unique string","generator","random"],"author":{"name":"Lete乐特"},"license":"MIT","bugs":{"url":"https://github.com/Lete114/Simple-Unique/issues"},"homepage":"https://github.com/Lete114/Simple-Unique#readme","devDependencies":{"@babel/core":"^7.17.7","@babel/preset-env":"^7.16.11","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-node-resolve":"^13.1.3","eslint":"^8.11.0","nodemon":"^2.0.15","prettier":"^2.6.0","rollup":"^2.70.1","rollup-plugin-delete":"^2.0.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"72ab9d9f29046efe7bae46b029b2f61e713ebebf","_id":"simple-unique@1.2.0","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-13ItCW+lobOjCopdNzCW5sI7BxLmGPyf8kUwgVdns6V0C34w00xaYCnEb63hkEETiF96L6RaicqzQEXsidZE8w==","shasum":"635e5974c11dc5e16f2f56d0cf364e1d30dc8029","tarball":"https://registry.npmjs.org/simple-unique/-/simple-unique-1.2.0.tgz","fileCount":12,"unpackedSize":10797,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFm2JZTfPCAptQu4MSrV79QL8pvaWQTBgHFGEse6Z3MpAiEAwgpSStycHQngLGYgzCJnAO+EH9tP48j0I0D9ZFoAJYQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicONKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0bQ/8Ca1BRdG5yUqHJ/SOryNkto8A+U88p4M2t1p+GM/kLVZ4Z6Gi\r\nd1kgmywPs3gLNBRizo0QcTZOBFb+zOlLpNgy7cDm/ZBfnp+Bu7oMOezq1sfA\r\nM9zt05ltrB5ZCjXK54hnndN0v+l0NDBBFjRbbEXnrZPUIfKj/sWwmEfdbaW9\r\ntV9x9p88IeF2YeoozHeeYtd+2Uk4xj/4oLU7NiogKYqhjz+Xbvwy41p4QvYy\r\n5ayNIqACB5+YSwe0GtYzXARXi/eje3JyyKjBlzwuJKd+XLJRU46b6lDpEbIZ\r\nMafHuEMzBvjFbZkbDvLaK11yZSvwgOo8W9iswvGHZZTNTBDiXRD7dTiZPh9b\r\nf2iAycql/3Ooct3P21bOvON09KTp041NiJn6fFtYQ3ZhyhwqS7ggSrYIbYrc\r\nstcNkucWsteU/UTPLu1f/lPLsNW/CXSujrdaSiaXWTJTWwS28z1rxiVCYfej\r\nhxrEzqHwK8V+igea+kWIbInFYiRDzJBBuXeIhR4AQrboBsbkIw+xnleOGSUl\r\nqGtJ4p1UaOfgUaWRdPBdwRwUM7647lXi68VcFRAIiK8gV+DRKmQSLPO3MuBc\r\nKXq7jK9k2L/bnaWw7N6gu6yWjn9whqo/3ed8CXTTu3Mj7GWxfj/+EzquXPdj\r\n8nMWCytUV0Gv1TE3dM0fWGo9PhbVBlOKqc8=\r\n=Klzr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lete114","email":"me@imlete.cn"},"directories":{},"maintainers":[{"name":"lete114","email":"me@imlete.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/simple-unique_1.2.0_1651565385767_0.9005954766479136"},"_hasShrinkwrap":false}},"time":{"created":"2022-03-16T14:15:41.480Z","1.0.0":"2022-03-16T14:15:41.635Z","modified":"2022-05-17T22:09:56.996Z","1.1.0":"2022-04-06T16:50:53.287Z","1.2.0":"2022-05-03T08:09:45.988Z"},"maintainers":[{"name":"lete114","email":"me@imlete.cn"}],"description":"完全随机生成唯一字符串 · 超轻量 | Completely random generation of unique strings · Ultra-lightweight","homepage":"https://github.com/Lete114/Simple-Unique#readme","keywords":["id","unique","unique id","unique string","generator","random"],"repository":{"type":"git","url":"git+https://github.com/Lete114/Simple-Unique.git"},"author":{"name":"Lete乐特"},"bugs":{"url":"https://github.com/Lete114/Simple-Unique/issues"},"license":"MIT","readme":"<div align=\"right\">\n  语言:\n  中文\n  <a title=\"English\" href=\"/README_EN.md\">English</a>\n</div>\n\n<h1 align=\"center\"><a href=\"https://github.com/lete114/Simple-Unique\" target=\"_blank\">Simple-Unique</a></h1>\n<p align=\"center\">完全随机生成唯一字符串 · 超轻量</p>\n\n<p align=\"center\">\n    <a href=\"https://github.com/Lete114/Simple-Unique/releases/\"><img src=\"https://img.shields.io/npm/v/simple-unique?logo=npm\" alt=\"Version\"></a>\n    <a href=\"https://github.com/Lete114/Simple-Unique/blob/master/LICENSE\"><img src=\"https://img.shields.io/github/license/Lete114/Simple-Unique?color=FF5531\" alt=\"MIT License\"></a>\n</p>\n\n## 简介\n\n完全随机生成唯一字符串 · **超轻量**\n\n压缩大小: 180~ Byte\n\ngzip 大小: 150~ bit\n\n## 安装\n\nUsing npm:\n\n```bash\nnpm install simple-unique --save\n```\n\nUsing jsDelivr CDN:\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/simple-unique/dist/unique.min.js\"></script>\n```\n\nUsing unpkg CDN:\n\n```html\n<script src=\"https://unpkg.com/simple-unique/dist/unique.min.js\"></script>\n```\n\n## 使用案例\n\n### CLI\n\n你可以全局安装后在终端使用\n\n```bash\nnpm install simple-unique -g\n```\n\n你也可以使用`npx`免安装使用`Simple-Unique`\n\n```bash\nnpx simple-unique\nnpx: installed 1 in 1.82s\n3f7c94zs79\n```\n\n自定义唯一字符串长度\n\n> 请注意，`sunique`是全局安装后，产生的别名，既可以使用`sunique`也可以使用`simple-unique`(推荐`sunique`)\n\n```bash\nsunique --size 20\ny8n69mohr3pmf7vg19to\n```\n\n### Node.js\n\n```js\nconst unique = require('simple-unique')\nconst arr1 = [unique(), unique()]\nconst arr2 = [unique(20), unique(20)]\n\nconsole.log(arr1[0] === arr1[1], arr1) // false [ 'krntrfokkp', '35tftcm3tr' ]\nconsole.log(arr2[0] === arr2[1], arr2) // false [ 'lva8timtvipgbenfjkhj', '9s32qj2chqulqxox7npq' ]\n```\n\n### ES Modules\n\n```js\nimport unique from 'simple-unique'\nconst arr1 = [unique(), unique()]\nconst arr2 = [unique(20), unique(20)]\n\nconsole.log(arr1[0] === arr1[1], arr1) // false [ 'sscya8ri7m', 'nbfrebutok' ]\nconsole.log(arr2[0] === arr2[1], arr2) // false [ 'bcl5371wv3txd3d3a8zt', 'uvt8uiogn2jjbot9b07p' ]\n```\n\n### 浏览器\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/simple-unique/dist/unique.min.js\"></script>\n<script>\n  const arr1 = [unique(), unique()]\n  const arr2 = [unique(20), unique(20)]\n\n  console.log(arr1[0] === arr1[1], arr1) // false [ 'gsf2e7u9fw', 'y2vm3x0tpv' ]\n  console.log(arr2[0] === arr2[1], arr2) // false [ 'l399uakldce29mfev391', '36t375r2uim63wkplz1s' ]\n</script>\n```\n\n## Simple-Unique VS NanoID\n\n[Simple-Unique](https://github.com/Lete114/Simple-Unique) 与 [NanoID](https://github.com/ai/nanoid) 对比，分别生成`9999999`(一千万)个唯一 id，长度为 10 位数\n\n> 如下结果是在浏览器控制台中进行测试的\n>\n> Simple-Unique 的效率大约是 NanoID 的 7 倍\n>\n> - Simple-Unique: 3775.31591796875 ms (3~5 秒左右)\n> - NanoID: 26226.182861328125 ms (26~28 秒左右)\n\n```js\n// Simple-Unique\nvar SimpleUnique=function(){\"use strict\";return function(n){n=n||10;for(var r=function(){return Math.random().toString(36).slice(2)},t=r();t.length<n;)t+=r();return t.slice(0,n)}}();\n\n// NanoID\nlet NanoID=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce(((t,e)=>t+=(e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e<63?\"_\":\"-\"),\"\");\n\nconst TenMillion = 9999999\n\nvar SimpleUniqueArray = []\n\nvar NanoIDArray = []\n\n// 测试效率\n// 差不多在3~5秒左右\n// Simple-Unique: 3775.31591796875 ms\nconsole.time('Simple-Unique')\nfor (let index = 0; index < TenMillion; index++) {\n  SimpleUniqueArray.push(SimpleUnique(10))\n}\nconsole.timeEnd('Simple-Unique')\n\n// 测试效率\n// 差不多在26~28秒左右\n// NanoID: 26226.182861328125 ms\nconsole.time('NanoID')\nfor (let index = 0; index < TenMillion; index++) {\n  NanoIDArray.push(NanoID(10))\n}\nconsole.timeEnd('NanoID')\n\n// 测试在生成 9999999(一千万) 后是否存在重复id\n// 使用 Set 对数组去重，最后查看剩余是否是 9999999(一千万)\nconst SimpleUniqueSize = new Set(SimpleUniqueArray).size\nconst NanoIDSize = new Set(NanoIDArray).size\n\n// 如果为true，则表示在 9999999(一千万) 中无重复id\nconsole.log(SimpleUniqueSize === TenMillion, SimpleUniqueSize) // true 9999999\nconsole.log(NanoIDSize === TenMillion, NanoIDSize) // true 9999999\n```\n","readmeFilename":"README.md"}