{"_id":"generate-safe-id","_rev":"2793048","name":"generate-safe-id","description":"Universally unique and cryptographically unpredictable URL-safe identifiers","dist-tags":{"latest":"1.0.3"},"maintainers":[{"name":"npm:timmclean","email":""}],"time":{"modified":"2022-06-23T12:00:33.000Z","created":"2016-07-12T22:32:29.763Z","1.0.3":"2019-10-07T20:52:44.530Z","1.0.2":"2016-08-20T16:56:42.616Z","1.0.1":"2016-07-12T22:37:42.481Z","1.0.0":"2016-07-12T22:32:29.763Z"},"users":{},"author":{"name":"Tim McLean"},"repository":{"type":"git","url":"git+https://github.com/timmclean/generate-safe-id.git"},"versions":{"1.0.3":{"name":"generate-safe-id","version":"1.0.3","description":"Universally unique and cryptographically unpredictable URL-safe identifiers","keywords":["generate","id","ids","unique","identifier","URL","UUID"],"author":{"name":"Tim McLean"},"repository":{"type":"git","url":"git+https://github.com/timmclean/generate-safe-id.git"},"license":"MIT","dependencies":{"base64url":"^3.0.1"},"bin":{"generate-safe-id":"cli.js"},"gitHead":"f519910306a348a1e15e9091644a280c35ade069","bugs":{"url":"https://github.com/timmclean/generate-safe-id/issues"},"homepage":"https://github.com/timmclean/generate-safe-id#readme","_id":"generate-safe-id@1.0.3","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"shasum":"0599cfb28593e4d4f1d89c1d5f0b026c8cc7de48","size":2226,"noattachment":false,"key":"/generate-safe-id/-/generate-safe-id-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/generate-safe-id/download/generate-safe-id-1.0.3.tgz"},"maintainers":[{"name":"npm:timmclean","email":""}],"_npmUser":{"name":"timmclean","email":"tim@timmclean.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/generate-safe-id_1.0.3_1570481564420_0.3724443634823562"},"_hasShrinkwrap":false,"publish_time":1570481564530,"_cnpm_publish_time":1570481564530,"_cnpmcore_publish_time":"2021-12-16T13:44:15.709Z"},"1.0.2":{"name":"generate-safe-id","version":"1.0.2","description":"Universally unique and cryptographically unpredictable URL-safe identifiers","keywords":["generate","id","ids","unique","identifier","URL","UUID"],"author":{"name":"Tim McLean"},"repository":{"type":"git","url":"git+https://github.com/timmclean/generate-safe-id.git"},"license":"MIT","dependencies":{"base64url":"^1.0.6"},"bin":{"generate-safe-id":"cli.js"},"gitHead":"f2960cd7c09fe81ac199034bcf4ab12d3d55e48d","bugs":{"url":"https://github.com/timmclean/generate-safe-id/issues"},"homepage":"https://github.com/timmclean/generate-safe-id#readme","_id":"generate-safe-id@1.0.2","scripts":{},"_shasum":"ec40666ec1e28b42c93969870af1bf7b029b067f","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"timmclean","email":"tim@timmclean.net"},"dist":{"shasum":"ec40666ec1e28b42c93969870af1bf7b029b067f","size":2269,"noattachment":false,"key":"/generate-safe-id/-/generate-safe-id-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/generate-safe-id/download/generate-safe-id-1.0.2.tgz"},"maintainers":[{"name":"npm:timmclean","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/generate-safe-id-1.0.2.tgz_1471712201074_0.1700120703317225"},"directories":{},"publish_time":1471712202616,"_hasShrinkwrap":false,"_cnpm_publish_time":1471712202616,"_cnpmcore_publish_time":"2021-12-16T13:44:15.932Z"},"1.0.1":{"name":"generate-safe-id","version":"1.0.1","description":"Universally unique and cryptographically unpredictable URL-safe identifiers","author":{"name":"Tim McLean"},"repository":{"type":"git","url":"git+https://github.com/timmclean/generate-safe-id.git"},"license":"MIT","dependencies":{"base64url":"^1.0.6"},"bin":{"generate-safe-id":"cli.js"},"gitHead":"c09c2c6e10450ab8fabf3f7c4579ac5154edb287","bugs":{"url":"https://github.com/timmclean/generate-safe-id/issues"},"homepage":"https://github.com/timmclean/generate-safe-id#readme","_id":"generate-safe-id@1.0.1","scripts":{},"_shasum":"d7168de2c01598b0068a377c59fb6d948f24422d","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.0","_npmUser":{"name":"timmclean","email":"tim@timmclean.net"},"dist":{"shasum":"d7168de2c01598b0068a377c59fb6d948f24422d","size":1945,"noattachment":false,"key":"/generate-safe-id/-/generate-safe-id-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/generate-safe-id/download/generate-safe-id-1.0.1.tgz"},"maintainers":[{"name":"npm:timmclean","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/generate-safe-id-1.0.1.tgz_1468363060518_0.7027976925019175"},"directories":{},"publish_time":1468363062481,"_hasShrinkwrap":false,"_cnpm_publish_time":1468363062481,"_cnpmcore_publish_time":"2021-12-16T13:44:16.168Z"},"1.0.0":{"name":"generate-safe-id","version":"1.0.0","description":"Universally unique and cryptographically unpredictable URL-safe identifiers","author":{"name":"Tim McLean"},"repository":{"type":"git","url":"git+https://github.com/timmclean/generate-safe-id.git"},"license":"MIT","dependencies":{"base64url":"^1.0.6"},"gitHead":"1fffe5b2da030bce37f4a8b5ef3b94f969c1bf2c","bugs":{"url":"https://github.com/timmclean/generate-safe-id/issues"},"homepage":"https://github.com/timmclean/generate-safe-id#readme","_id":"generate-safe-id@1.0.0","scripts":{},"_shasum":"013906678d6ff81d73f23bcdc36d30dc5a8e8ab7","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.0","_npmUser":{"name":"timmclean","email":"tim@timmclean.net"},"dist":{"shasum":"013906678d6ff81d73f23bcdc36d30dc5a8e8ab7","size":1932,"noattachment":false,"key":"/generate-safe-id/-/generate-safe-id-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/generate-safe-id/download/generate-safe-id-1.0.0.tgz"},"maintainers":[{"name":"npm:timmclean","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/generate-safe-id-1.0.0.tgz_1468362748692_0.9639867038931698"},"directories":{},"publish_time":1468362749763,"_hasShrinkwrap":false,"_cnpm_publish_time":1468362749763,"_cnpmcore_publish_time":"2021-12-16T13:44:16.451Z"}},"readme":"# generate-safe-id\n\nA command line tool and Node.js library for generating globally unique and\ncryptographically unpredictable identifiers.\n\nIdentifiers consist entirely of uppercase and lowercase letters (a-z, A-Z),\ndigits (0-9), hyphens (\"-\"), and underscores (\"_\"), making them safe in URLs\nand other contexts.\n\n## Why not UUIDs?\n\nRandom UUIDs (UUIDv4) do not have enough entropy to be universally unique\n(ironic, eh?). Random UUIDs have only 122 bits of entropy, which suggests\nthat a duplicate will occur after only 2^61 IDs.  Additionally, some UUIDv4\nimplementations do not use a cryptographically strong random number generator.\n\nThis library generates 240-bit IDs using the Node.js crypto RNG, suggesting the\nfirst duplicate will occur after generating 2^120 IDs. Based on the current\nenergy production of the human race, this threshold will be impossible to cross\nfor the foreseeable future.\n\n## Usage\n\nInstallation with npm:\n\n```\n$ npm install generate-safe-id\n```\n\nUsing `generate-safe-id` from Node.js:\n\n```\nvar generateSafeId = require('generate-safe-id');\n\nvar id = generateSafeId();\n// id == \"zVPkWyvgRW-7pSk0iRzEhdnPcnWfMRi-ZcaPxrHA\"\n```\n\nAlternatively, this library can be used from the command line when installed\nglobally:\n\n```\n$ npm install -g generate-safe-id\n$ generate-safe-id\nteErzw09Am-Yq_ylT8gb3zBCbpnSWgeS-m_xv5-v\n```\n\nUse the `-n` flag to prevent the output from being terminated with a line break\n(useful for scripting).\n\n```\n$ generate-safe-id -n\nwiIVSSXbbnDp5NJ_x7Iu1VC2iF34WZRtt9fXh13C\n```\n\n## Reporting security vulnerabilities\n\nContact Tim McLean at `[first name]@[first name][last name].net` ([PGP key](https://keybase.io/timmclean)).\n\nNote: this ID generator is not constant time (see [issue #1](https://github.com/timmclean/generate-safe-id/issues/1)).\n","_attachments":{},"homepage":"https://github.com/timmclean/generate-safe-id#readme","bugs":{"url":"https://github.com/timmclean/generate-safe-id/issues"},"license":"MIT"}