{"_id":"oauth-pkce","_rev":"7-3a3819582f262bcdd02a8b2fc082930b","name":"oauth-pkce","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.2-alpha.0":{"name":"oauth-pkce","version":"0.0.2-alpha.0","description":"OAUTH PKCE code_verifier and code_challenge generator","main":"./dist/index.js","types":"./dist/index.d.ts","directories":{"test":"tests"},"keywords":["oauth","oauth2","PKCE","code_verifier","code_challenge"],"repository":{"type":"git","url":"https://github.com/coolgk/utils/tree/master/oauth-pkce"},"scripts":{"start":"cross-env NODE_PATH=./dist NODE_ENV=production node .","test":"echo 'please open tests/mocha.html in a browser'","build":"rm -fr ./dist/* && tsc --declaration && uglifyjs --compress --mangle --output ./dist/oauth-pkce.min.js ./dist/index.standalone.js","lint":"eslint --ext .js,.ts .","format":"prettier","ts":"ts-node","prepublishOnly":"npm run build"},"author":{"name":"Daniel Gong","email":"daniel.k.gong@gmail.com"},"license":"MIT","devDependencies":{"@size-limit/file":"^4.5.5","@types/chai":"^4.2.11","@types/crypto-js":"^3.1.47","@types/mocha":"^8.0.0","@types/node":"^14.0.23","@types/sinon":"^9.0.4","@typescript-eslint/eslint-plugin":"^3.7.0","@typescript-eslint/parser":"^3.7.0","chai":"^4.2.0","cross-env":"^7.0.2","crypto-js":"^4.0.0","eslint":"^7.5.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-security":"^1.4.0","husky":"^4.2.5","lint-staged":"^10.2.11","mocha":"^8.0.1","prettier":"^2.0.5","sinon":"^9.0.2","size-limit":"^4.5.5","source-map-support":"^0.5.19","ts-node":"^8.10.2","typescript":"^3.9.7","uglify-js":"^3.10.0"},"husky":{"hooks":{"pre-commit":"lint-staged","pre-push":"npm audit"}},"lint-staged":{"{tests,src}/**/*.{js,ts}":"eslint --fix"},"gitHead":"05f77e268eef2e4053fcc0ead7835f49301a5e3e","_id":"oauth-pkce@0.0.2-alpha.0","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.22.1/node@v12.13.0+x64 (linux)","dist":{"integrity":"sha512-7kQa0e9W8ytpoT61vYIwk7rfWg6ncKcPCnLEwdlukIEt3vvEgJH+T1xZKAVnKe3RmOd15KdqRO+su1OB1Jca2w==","shasum":"61a7997f198a8b9e0bcca892f3da39b659d65848","tarball":"https://registry.npmjs.org/oauth-pkce/-/oauth-pkce-0.0.2-alpha.0.tgz","fileCount":14,"unpackedSize":17391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF3MbCRA9TVsSAnZWagAA7uQQAJriiymBm7X724NiSxj+\nZDUmYL4JV4VlAF0ssZymZ1JRsScwHE5FhOCG1sTeTxisjbvVj40cj0z4yAhJ\nsufaflb51o/JWLWjG/awVoTcRgtoGA5cmhFwd2//ubhSDQ0EiiMWCw1qXUIH\n4wnksTmZSL5ktJoDZyRIpsw+hVnv0bSo4P2M8e9hgJuFBQVPNDneJ6Vy0T9l\nA3k2ZyXBGflucRmwOlFKOSPmgl4zMp0wLJl5wkQmXuWkQt5TYG4U9i+BMpwR\nf2hNRLobKRW1Laey8zvCxyyo2UlTLDGWAIoZkJjzVEU2XTNlzfIP1cLIxRzi\nmAbeoh/FQEkp3PuTog/8xuWeYDUuxRX6Y1473KFC1N5zTe3Uvwsw8a63jq6z\n0Ao2eS5d6leStnr9PM9nhRUD0IF83hJLgVp8jr850LqT8dcCQmWRNHYMlmI4\n7La+uGlqWpou3jI56/8YaRr8ckkfef6Pju4S3w1nY3vQkG1Be7bbwNvUarRb\ne0ClPzOFOBkKzoKcAvPXx0EIb+7Rw2wSp/4CnMhfAUSd4H4tP6VYI/9rInnK\nz5Zu2b5EaWXL4FWW5ixq/RTFLMyj8ZYjwDwkXaj8WGeUBk26PEuMCh7krivU\nwadizEBNXQVI8y36cARbSBcSlQmDsdQWoOSiAiE7heSjNt5odox3/qQdmwqn\nMWO6\r\n=dDfy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmoT91xgMROn+8RlRMxm2JC9xJ/lYaUprOkO65+ovyKQIgVGnJOgMKVm/8NavQ15QqE/g3aAUd4btpF/FKBh5pofk="}]},"maintainers":[{"name":"coolgk","email":"coolgk@gmail.com"}],"_npmUser":{"name":"coolgk","email":"coolgk@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oauth-pkce_0.0.2-alpha.0_1595372314823_0.42429249787205947"},"_hasShrinkwrap":false},"0.0.2":{"name":"oauth-pkce","version":"0.0.2","description":"OAUTH PKCE code_verifier and code_challenge generator","main":"./dist/index.js","types":"./dist/index.d.ts","directories":{"test":"tests"},"keywords":["oauth","oauth2","PKCE","code_verifier","code_challenge"],"repository":{"type":"git","url":"https://github.com/coolgk/utils/tree/master/oauth-pkce"},"scripts":{"start":"cross-env NODE_PATH=./dist NODE_ENV=production node .","test":"echo 'please open tests/mocha.html in a browser'","build":"rm -fr ./dist/* && tsc --declaration && uglifyjs --compress --mangle --output ./dist/oauth-pkce.min.js ./dist/index.standalone.js","lint":"eslint --ext .js,.ts .","format":"prettier","ts":"ts-node","prepublishOnly":"npm run build"},"author":{"name":"Daniel Gong","email":"daniel.k.gong@gmail.com"},"license":"MIT","devDependencies":{"@size-limit/file":"^4.5.5","@types/chai":"^4.2.11","@types/crypto-js":"^3.1.47","@types/mocha":"^8.0.0","@types/node":"^14.0.23","@types/sinon":"^9.0.4","@typescript-eslint/eslint-plugin":"^3.7.0","@typescript-eslint/parser":"^3.7.0","chai":"^4.2.0","cross-env":"^7.0.2","crypto-js":"^4.0.0","eslint":"^7.5.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-security":"^1.4.0","husky":"^4.2.5","lint-staged":"^10.2.11","mocha":"^8.0.1","prettier":"^2.0.5","sinon":"^9.0.2","size-limit":"^4.5.5","source-map-support":"^0.5.19","ts-node":"^8.10.2","typescript":"^3.9.7","uglify-js":"^3.10.0"},"husky":{"hooks":{"pre-commit":"lint-staged","pre-push":"npm audit"}},"lint-staged":{"{tests,src}/**/*.{js,ts}":"eslint --fix"},"gitHead":"bf02790db34419a57e3be30912e672ae65cae793","_id":"oauth-pkce@0.0.2","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.22.1/node@v12.13.0+x64 (linux)","dist":{"integrity":"sha512-9gMyGG26kHiFI9hhqG4Ua7zqKOIehjOG71RtHNLutz3IExoaY8GxSyuPWrxv2FLXhR7fM6uCThbbzbVvcInMCg==","shasum":"79790dcf85fcfd4d03cf481a38917856e69e331f","tarball":"https://registry.npmjs.org/oauth-pkce/-/oauth-pkce-0.0.2.tgz","fileCount":11,"unpackedSize":13764,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF3fKCRA9TVsSAnZWagAAP9wP/RMudMW41CChq9fp5HsG\nOF1iKZQHVmPz9fR2pClxggHrj2CB4+HyTJLayLy/gIhbUi2slitRGd5wIF6P\nLaOL1EE+88rIF4w5/tpyHWIB3Ww8Hcp/xxr0w/Fp4tO2jrLWoTr4ZnkH7ZfC\n/ok++yTUtsvbufsyoCWQEd1GjdtYztfx2PB5Fm3Xz+dGska8B9lKJ5onpZaT\nwo4BC+8peiIANTi7LWZ8eH/28sjk24EguAEw1aZbmJ6h7XUno/tw+eG5ifyk\nLUlSYn5Y3sj3dAjNOMGanwTVOYJm94qxuNpwFeY/iLoU2+VYlRAVaHtrf5WC\nTPzeqnfk08gvrpyOcRTRQkUVUSI5CoUD7icaeRCBO7EvgyiZX5bgXUiE57VX\nVnp4vni+Tx9t8mwH/b7lKYQmEYIkynO1KoJZF8zPXNbSX8Veordd5NzXiQt4\nmBo2wkO7W+7KDOe7uqUzwfv5bdBhA2kDATWSuyHoQUFdf+0vejg1Ra99Pq2K\nwBbNLoqOYKcX2W0tGxoc6BtE+aheZ5V5DJaAP4MFU5BACYwpM7n6Hb6spO7t\n6SFtHBYjKRqwKjReSv4zRDOW3pylAnvCk1MKIfW07N7ld8AvePQZF2kw6IIZ\n+fIUK++3nVrKz+dOgFIjWaJEL0/gQKzDJ7sfEv118t4F8et9ROLC2ajtulPL\nq8Qq\r\n=F3hT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCHvP/rxVDu9R0a/xxribshrnZEFK3yR6bUfdkcBDsNgIgCYymNJ9+hEJhmfaErzd+hncdbXzgB27xC4KpCvLwct4="}]},"maintainers":[{"name":"coolgk","email":"coolgk@gmail.com"}],"_npmUser":{"name":"coolgk","email":"coolgk@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oauth-pkce_0.0.2_1595373514098_0.7933254195628783"},"_hasShrinkwrap":false},"0.0.3":{"name":"oauth-pkce","version":"0.0.3","description":"OAUTH PKCE code_verifier and code_challenge generator","main":"./dist/index.js","types":"./dist/index.d.ts","directories":{"test":"tests"},"keywords":["oauth","oauth2","PKCE","code_verifier","code_challenge"],"repository":{"type":"git","url":"https://github.com/coolgk/utils/tree/master/oauth-pkce"},"scripts":{"start":"cross-env NODE_PATH=./dist NODE_ENV=production node .","test":"echo 'please open tests/mocha.html in a browser'","build":"rm -fr ./dist/* && tsc --declaration && uglifyjs --compress --mangle --output ./dist/oauth-pkce.min.js ./dist/index.standalone.js","lint":"eslint --ext .js,.ts .","format":"prettier","ts":"ts-node","prepublishOnly":"npm run build"},"author":{"name":"Daniel Gong","email":"daniel.k.gong@gmail.com"},"license":"MIT","devDependencies":{"@size-limit/file":"^4.5.5","@types/chai":"^4.2.11","@types/crypto-js":"^3.1.47","@types/mocha":"^8.0.0","@types/node":"^14.0.23","@types/sinon":"^9.0.4","@typescript-eslint/eslint-plugin":"^3.7.0","@typescript-eslint/parser":"^3.7.0","chai":"^4.2.0","cross-env":"^7.0.2","crypto-js":"^4.0.0","eslint":"^7.5.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-security":"^1.4.0","husky":"^4.2.5","lint-staged":"^10.2.11","mocha":"^8.0.1","prettier":"^2.0.5","sinon":"^9.0.2","size-limit":"^4.5.5","source-map-support":"^0.5.19","ts-node":"^8.10.2","typescript":"^3.9.7","uglify-js":"^3.10.0"},"husky":{"hooks":{"pre-commit":"lint-staged","pre-push":"npm audit"}},"lint-staged":{"{tests,src}/**/*.{js,ts}":"eslint --fix"},"gitHead":"beb798096052c1ecd60de13b0dee2ed44c4f91cf","_id":"oauth-pkce@0.0.3","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.22.1/node@v12.13.0+x64 (linux)","dist":{"integrity":"sha512-wqLHX5isizd4vWpqYcrmMCHutIlc+Ajh/GuZTpXv40C3zftm1HKnGzU/1/Kl1M30olvNQeKIZ9JNZUCUeXN8BQ==","shasum":"b6e7d845f115c89b2f03c53d685047a9eae48d2a","tarball":"https://registry.npmjs.org/oauth-pkce/-/oauth-pkce-0.0.3.tgz","fileCount":11,"unpackedSize":14311,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF4LlCRA9TVsSAnZWagAAX5EP/2UJ2CgeI17nyKjOa7pf\nWQtPQDq3TZTRjwzxzHvWy6ozMQGQTcTFoWMFBhkoPvSbLFGzGeGjLrSeaCb8\n3X5+EL+DX8mBRDueHlNUhqSbn4u/QoDRbp/P0YqGH53fLNNuu3rJ1bmW8Wdf\nSKKBRAXe/+n4Xe18RqlbAGpnZ7gmF6PXN/+mQubb/0ymaLDFXhW1BUoVz+dv\nLi8BTGsxDbb9aRxKYkb57OcGyQFqNQEG8nbFuocqautXTqPVjLkMFuUNlBYX\nIJZXWaegr642AqZqP+STqLHamHcVx00fS/MpWgazJAMj7AFLbkGTujya8VOK\nNhDri21u2dQM/dLYqSaY7HBlrrjfcNji+vPd1VS8bZZ7TK40g0gfJ7JxuP2d\nG4IPI813E0OyBT9b9h/UfnECpVcOesGFpUFyY/sj8AYuwRdU5rqvtZchBab+\nifATdOK/Y7NbYfhDoCtN3re5BWpkC5Hw1BcCCDFNqZfPqD5tR/aXGkMUYtM6\nLG64zxtQf+eQfIPpp5LO+wCoPlF1Tw9DeCf2ygiYxoZAjpkEXDhzQzCn4x1E\nt9KSOjzYpq74sAsiQ2kUFxEhWItDObKozgjb2ml2FNnghEF0n6iYAGAMt7TU\nvwXzb8IvcJ4O8AZ9pFpkAXzH3U/vVdNN/fQ1l3RARw3FRbKsOKm8le5Z+y2a\nNwOa\r\n=EvY4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClRPxCs2YXltn3/rsh71o3SBvIo0MOwD3yPaXtO45u+QIhAJuUW8HoI+f6Vmcs7XzEOAwjVSOkNXahl5j668i3FcE3"}]},"maintainers":[{"name":"coolgk","email":"coolgk@gmail.com"}],"_npmUser":{"name":"coolgk","email":"coolgk@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oauth-pkce_0.0.3_1595376356707_0.04931462971879719"},"_hasShrinkwrap":false},"0.0.4":{"name":"oauth-pkce","version":"0.0.4","description":"OAUTH PKCE code_verifier and code_challenge generator","main":"./dist/index.js","types":"./dist/index.d.ts","directories":{"test":"tests"},"keywords":["oauth","oauth2","PKCE","code_verifier","IE11","IE 11","code_challenge"],"repository":{"type":"git","url":"https://github.com/coolgk/utils/tree/master/oauth-pkce"},"scripts":{"start":"cross-env NODE_PATH=./dist NODE_ENV=production node .","test":"echo 'please open tests/mocha.html in a browser'","build":"rm -fr ./dist/* && tsc --declaration && uglifyjs --compress --mangle --output ./dist/oauth-pkce.min.js ./dist/index.standalone.js","lint":"eslint --ext .js,.ts .","format":"prettier","ts":"ts-node","prepublishOnly":"npm run build"},"author":{"name":"Daniel Gong","email":"daniel.k.gong@gmail.com"},"license":"MIT","devDependencies":{"@size-limit/file":"^4.5.5","@types/chai":"^4.2.11","@types/crypto-js":"^3.1.47","@types/mocha":"^8.0.0","@types/node":"^14.0.23","@types/sinon":"^9.0.4","@typescript-eslint/eslint-plugin":"^3.7.0","@typescript-eslint/parser":"^3.7.0","chai":"^4.2.0","cross-env":"^7.0.2","crypto-js":"^4.0.0","eslint":"^7.5.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-security":"^1.4.0","husky":"^4.2.5","lint-staged":"^10.2.11","mocha":"^8.0.1","prettier":"^2.0.5","sinon":"^9.0.2","size-limit":"^4.5.5","source-map-support":"^0.5.19","ts-node":"^8.10.2","typescript":"^3.9.7","uglify-js":"^3.10.0"},"husky":{"hooks":{"pre-commit":"lint-staged","pre-push":"npm audit"}},"lint-staged":{"{tests,src}/**/*.{js,ts}":"eslint --fix"},"gitHead":"0340937e58d17ee3f255e14f3bfbe796d44c6344","_id":"oauth-pkce@0.0.4","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.22.1/node@v12.13.0+x64 (linux)","dist":{"integrity":"sha512-69SZuPiq9kQUlZmhUjp+GsnsvAwCkxIIdsxuKVnpUeHedIet1cW+alb4GEpfVA2vDjhS6WJVwddCB4gFm44s0w==","shasum":"14f704308fd654db57dd65fefa4c2f0e87658ac1","tarball":"https://registry.npmjs.org/oauth-pkce/-/oauth-pkce-0.0.4.tgz","fileCount":11,"unpackedSize":14357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF+Q+CRA9TVsSAnZWagAAefoQAI+BjoBrHIJ0fgyGSEeQ\n6zeCK6S8wumKl9P6OXKPny2kWDakT891Ey6mynRpLEuhSogOhM7IlaHW/P9K\nq8+proDSmUixMLpdKkKN8fUjfUmTU2DuKSSAtcIbD2F1VkdKBIkL1H2gqypT\nyNuyVTc3rqUXB0WV0RDquW+W7jEPKgPDuUvxNYliuxcNCcgVOAzIeJzAN/HS\nULFw2EtQqEKiF6sS14rqZMU3+lqIMSOWouRsIlwWkcv5iaP7k02t9G8602dn\nwLMZ7N6OC1p6io+8iQ7xfAG8Kib/liu+hZaM9lmeS4KM8xweyc3APTXmkF9A\n5A1wv8qSQCANelhSPwakcfpYaokhRgSOvfyrEJqm4JMYX4gPfOsc/OZsE9mA\nw+lbuhVFee2FrZVpJ36RJYBThapRjRL2sO1FgCvzZkZfR7cS4U02MAkkMRfo\nLJDsrocsAEk7cYoh5flEeCLX4OvMIsjm4AmlWWhleJoMbaMddSSkeFBG1t80\nDWPTFnmoJAvGvG0w3tSW26UoZ0fuLtjNggYsYX9I/aHasVpFzjpR+oVBvWAc\nq7C0ruS0pbDGXVPq4yKFNQ9lLb98LfbLH6/XDdaLEUcvPQmRWnSVu1pBft3b\nCtyNmGxpo2grf1Gv1M7Rp/DLn21VHPixEjeJTloNGhEv9vwOPt0oIPobzTMb\nf2xH\r\n=hUzW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDv7B8KpJccIDLFLefI+Na0nKJea6TWNVwexrJNXXxrGAiAIQdlVLe1MspgIm0VGgR1VeihepOyPa+Rsv6ePa2eCEw=="}]},"maintainers":[{"name":"coolgk","email":"coolgk@gmail.com"}],"_npmUser":{"name":"coolgk","email":"coolgk@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oauth-pkce_0.0.4_1595401277734_0.19367350729648658"},"_hasShrinkwrap":false},"0.0.6":{"name":"oauth-pkce","version":"0.0.6","description":"OAUTH PKCE code_verifier and code_challenge generator","main":"./dist/index.js","types":"./dist/index.d.ts","directories":{"test":"tests"},"keywords":["oauth","oauth2","PKCE","code_verifier","IE11","IE 11","code_challenge","open ID connect","oidc"],"repository":{"type":"git","url":"https://github.com/coolgk/utils/tree/master/oauth-pkce"},"scripts":{"start":"cross-env NODE_PATH=./dist NODE_ENV=production node .","test":"echo 'please open tests/mocha.html in a browser'","build":"rm -fr ./dist/* && tsc --declaration && uglifyjs --compress --mangle --output ./dist/oauth-pkce.min.js ./dist/index.standalone.js","lint":"eslint --ext .js,.ts .","format":"prettier","ts":"ts-node","prepublishOnly":"npm run build"},"author":{"name":"Daniel Gong","email":"daniel.k.gong@gmail.com"},"license":"MIT","devDependencies":{"@size-limit/file":"^4.5.5","@types/chai":"^4.2.11","@types/crypto-js":"^3.1.47","@types/mocha":"^8.0.0","@types/node":"^14.0.23","@types/sinon":"^9.0.4","@typescript-eslint/eslint-plugin":"^3.7.0","@typescript-eslint/parser":"^3.7.0","chai":"^4.2.0","cross-env":"^7.0.2","crypto-js":"^4.0.0","eslint":"^7.5.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-security":"^1.4.0","husky":"^4.2.5","lint-staged":"^10.2.11","mocha":"^8.3.2","prettier":"^2.0.5","sinon":"^9.0.2","size-limit":"^4.5.5","source-map-support":"^0.5.19","ts-node":"^8.10.2","typescript":"^3.9.7","uglify-js":"^3.10.0"},"husky":{"hooks":{"pre-commit":"lint-staged","pre-push":"npm audit"}},"lint-staged":{"{tests,src}/**/*.{js,ts}":"eslint --fix"},"gitHead":"dd7bfef9795c3dc80b3f2bdf1abfb1945bafc347","_id":"oauth-pkce@0.0.6","_nodeVersion":"12.19.1","_npmVersion":"lerna/3.22.1/node@v12.19.1+x64 (linux)","dist":{"integrity":"sha512-hLLZvwJBAo1QHzPOvsM/QtDj/b9MBgQx/TH4kA/LPqFgWtICo4m7gtZUZARBiQ0I8lSKQRN8BhGTclVv8D45gg==","shasum":"9ac452bc7357c755bc7946ebb0e81ba76dc56b2a","tarball":"https://registry.npmjs.org/oauth-pkce/-/oauth-pkce-0.0.6.tgz","fileCount":11,"unpackedSize":14392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgX7+5CRA9TVsSAnZWagAAZBwP/0hvtThgUrP0Nas4rTsg\nFqUWzXt7WCTL+dwSl2b/HBeMgYIcScowsae9fdpPkEjDEKb7SrHiby7Uz8s7\niCMxFA4eH6plWPSc32x5dvs2KKIE4pFoDLMIcdd/RQlVTFFWyWBxg94ncKyG\nTHCg4zXqvQua6ECFkcCXrvVDHT+mAX1n+RUIV0xa4X8iq1mv+/TDKZhsCBVY\ndPOodUQdaSuesXENHjwU0r67HxMeccPaFqRbzNlxL0wtt9vh4NPAOsfr6veB\nQUvv8MujMnV5Vso/JQhp9Ai1CfsOroGA/sWF/TtPfcZLBUNva6HOGBEJt8ri\nZsrl1FlNIY2GbiZM1miMOBaK/VkxHo1ycKYTFHCJQwFkoyX4BIg81BiHVodP\nuar+KXAZ46vOjrhyIAM64rWEu5gSRkaNkua9O3SNljnjF2LkLNveGIzpHw+6\nx1+6vK4XVbzG72NbcfFUIyEBx4ac/mht7bzFq/iv50Xi+oUUM0uPhCW4pIr9\nMrRRMTzWYdNHQyypWlHkk/gZd2DAHdeiTt+PvmM+zFJGAu2U6fahrUfWkSi5\n9E9NO23hv9YRSCVxkBlbVYiAw0/zK27jszoPDGhEhywK0anbdRu912HV7g0L\n7/xAmlAucfPuHHyEKOGvr7lgtsUphcJL4xcrt2YMmp0KY5In5HfZA3tA0AIt\nWF8N\r\n=qBZJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID00Kf9xGqjJoPySy8WM/msSaJOMB+sevHENVv5UNiTPAiAQCOL7CUu+bembjYapZwIkc4a+x1OP0ZSbxWhXgR+vnw=="}]},"_npmUser":{"name":"coolgk","email":"coolgk@gmail.com"},"maintainers":[{"name":"coolgk","email":"coolgk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oauth-pkce_0.0.6_1616887736911_0.6691529590556897"},"_hasShrinkwrap":false},"0.0.7":{"name":"oauth-pkce","version":"0.0.7","description":"OAUTH PKCE code_verifier and code_challenge generator","main":"./dist/index.js","types":"./dist/index.d.ts","directories":{"test":"tests"},"keywords":["oauth","oauth2","PKCE","code_verifier","IE11","IE 11","code_challenge","open ID connect","oidc"],"repository":{"type":"git","url":"https://github.com/coolgk/utils/tree/master/oauth-pkce"},"scripts":{"start":"cross-env NODE_PATH=./dist NODE_ENV=production node .","test":"echo 'please open tests/mocha.html in a browser'","build":"rm -fr ./dist/* && tsc --declaration && uglifyjs --compress --mangle --output ./dist/oauth-pkce.min.js ./dist/index.standalone.js","lint":"eslint --ext .js,.ts .","format":"prettier","ts":"ts-node","prepublishOnly":"npm run build"},"author":{"name":"Daniel Gong","email":"daniel.k.gong@gmail.com"},"license":"MIT","devDependencies":{"@size-limit/file":"^4.5.5","@types/chai":"^4.2.11","@types/crypto-js":"^3.1.47","@types/mocha":"^8.0.0","@types/node":"^14.0.23","@types/sinon":"^9.0.4","@typescript-eslint/eslint-plugin":"^3.7.0","@typescript-eslint/parser":"^3.7.0","chai":"^4.2.0","cross-env":"^7.0.2","crypto-js":"^4.0.0","eslint":"^7.5.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-security":"^1.4.0","husky":"^4.2.5","lint-staged":"^10.2.11","mocha":"^8.3.2","prettier":"^2.0.5","sinon":"^9.0.2","size-limit":"^4.5.5","source-map-support":"^0.5.19","ts-node":"^8.10.2","typescript":"^3.9.7","uglify-js":"^3.10.0"},"husky":{"hooks":{"pre-commit":"lint-staged","pre-push":"npm audit"}},"lint-staged":{"{tests,src}/**/*.{js,ts}":"eslint --fix"},"gitHead":"35d274d6b5fd8619751f31a4e74d94f3204589f6","_id":"oauth-pkce@0.0.7","_nodeVersion":"14.21.3","_npmVersion":"6.14.18","dist":{"integrity":"sha512-HMMakoec7G3Fyhq/VfYfQXmsJhZGQLncPCj/ir0xQQqX/kRDE9w1WFOaMJXlxfNlDDq3XDSy4mXGFPqU6oMAGg==","shasum":"03674ef421a7cb3031201811a189c393cdbee5b6","tarball":"https://registry.npmjs.org/oauth-pkce/-/oauth-pkce-0.0.7.tgz","fileCount":10,"unpackedSize":13499,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9IXHxYwo61mr3GzIoz+dnFGEn2mOk2n28LtwWtgFd5gIhAJ8g6wqTR+qQst4IqIK/6QmbJVhznzTIf1iIw/GplF+X"}]},"_npmUser":{"name":"dp-rufus","email":"rufus.aldred@dialpad.com"},"maintainers":[{"name":"coolgk","email":"coolgk@gmail.com"},{"name":"dp-rufus","email":"rufus.aldred@dialpad.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oauth-pkce_0.0.7_1713805846686_0.8199622594704732"},"_hasShrinkwrap":false}},"time":{"created":"2020-07-21T22:58:34.823Z","0.0.2-alpha.0":"2020-07-21T22:58:34.942Z","modified":"2024-04-22T17:10:47.016Z","0.0.2":"2020-07-21T23:18:34.190Z","0.0.3":"2020-07-22T00:05:56.864Z","0.0.4":"2020-07-22T07:01:17.876Z","0.0.6":"2021-03-27T23:28:57.045Z","0.0.7":"2024-04-22T17:10:46.839Z"},"maintainers":[{"name":"coolgk","email":"coolgk@gmail.com"},{"name":"dp-rufus","email":"rufus.aldred@dialpad.com"}],"description":"OAUTH PKCE code_verifier and code_challenge generator","keywords":["oauth","oauth2","PKCE","code_verifier","IE11","IE 11","code_challenge","open ID connect","oidc"],"repository":{"type":"git","url":"https://github.com/coolgk/utils/tree/master/oauth-pkce"},"author":{"name":"Daniel Gong","email":"daniel.k.gong@gmail.com"},"license":"MIT","readme":"# OAUTH PKCE code_verifier and code_challenge Generator for IE 11 and Modern Browsers\n\n[Proof Key for Code Exchange Spec](https://tools.ietf.org/html/rfc7636#section-4.1)\n\nA small (409-Byte gzipped) zero-dependency helper function for generating a high-entropy cryptographic random **\"code_verifier\"** (using [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Crypto)) and its **\"code_challenge\"** based on [RFC 7636](https://tools.ietf.org/html/rfc7636#section-4.1). (i.e. `BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))`)\n\n_This package does NOT use [Math.random()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random) which does not provide cryptographically secure random numbers, and should not use them for anything related to security._\n\n## Browser ONLY\n\nThis package is for browsers only (including IE 11), it uses [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Crypto) for generating random strings and SHA-256 hashing.\n\n## CDN\n\nhttps://cdn.jsdelivr.net/npm/oauth-pkce@latest/dist/oauth-pkce.min.js\n\nor with version\n\nhttps://cdn.jsdelivr.net/npm/oauth-pkce@0.0.2/dist/oauth-pkce.min.js\n\n## Usage\n\n`npm i oauth-pkce`\n\nTypescript Ready\n\n```javascript\nimport getPkce from 'oauth-pkce';\n\n// create a verifier of 43 characters long\ngetPkce(43, (error, { verifier, challenge }) => {\n  if (!error) {\n    console.log({ verifier, challenge });\n  }\n});\n\n// { verifier: \"uxr7S_52pCoOPFpPPYWNvdw76k3ZnSN-J0PvD0iPL9B\", challenge: \"8L_tpjLD-Vcc3-G6ea2ifym8AQrushivXHMib5zPp1A\" }\n```\n\nUse directly from CDN\n\n```javascript\n<script src=\"https://cdn.jsdelivr.net/npm/oauth-pkce@0.0.2/dist/oauth-pkce.min.js\" async defer></script>;\n\ngetPkce(43, (error, { verifier, challenge }) => {\n  if (!error) {\n    console.log({ verifier, challenge });\n  }\n});\n```\n\nReact\n\n```javascript\nimport React, { useEffect, useState } from 'react';\nimport getPkce from 'oauth-pkce';\n\nfunction Pkce() {\n  const { pkce, setPkce } = useState({});\n\n  useEffect(() => {\n    // getPkce relies on the window object for its crypto api\n    // put in in useEffect\n    getPkce(50, (error, { verifier, challenge }) => {\n      setPkce({ verifier, challenge });\n    });\n  }, []);\n\n  return (\n    <div>\n      {pkce.verifier} | {pkce.challenge}\n    </div>\n  );\n}\n```\n\nThis package uses callback style for minimising code size and compatibility with IE 11. Wrapp it in a Promise if you prefer async await style.\n\n```javascript\nconst { verifier, challenge } = await new Promise((resolve) => {\n  getPkce(43, (error, { verifier, challenge }) => {\n    if (error) throw error;\n    resolve({ verifier, challenge });\n  });\n});\n```\n\n### Server Side code_verifier Verification\n\nFor node environment, use [crypto module](https://nodejs.org/api/crypto.html) natively from node.\n\n```javascript\nimport crypto from 'crypto';\n\nconst base64 = crypto.createHash('sha256').update(code_verifier).digest('base64');\nconst base64UriEncoded = base64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n\nconst isValid = base64UriEncoded === code_challenge;\n```\n\ncode_challenge is a Base64URL encoded string ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-5)). To verify the `code_verifier` you need to convert the base64 value of `crypto.createHash('sha256').update(code_verifier).digest('base64')` to a **base64url** encoded string.\n\n_In `getPkce()`, base64url removes the pad characters \"=\" from code_challenge_\n\n## API\n\n```typescript\ngetPkce(\n  codeVerifierLength: number = 43,\n  callback: (error: Error | null, value: { verifier: string; challenge: string })\n)\n```\n","readmeFilename":"README.md"}