{"_id":"@bedrock-apis/carolina-authentication","_rev":"3-f5405c62115329272398b9f94718e43b","name":"@bedrock-apis/carolina-authentication","dist-tags":{"latest":"1.0.0-beta.3"},"versions":{"1.0.0-beta.1":{"name":"@bedrock-apis/carolina-authentication","version":"1.0.0-beta.1","keywords":["minecraft","protocol","auth","validation","bedrock"],"author":{"name":"bedrock-apis"},"license":"MIT","_id":"@bedrock-apis/carolina-authentication@1.0.0-beta.1","maintainers":[{"name":"conmaster2112","email":"conmaster2112@gmail.com"},{"name":"leafytail","email":"minec118@outlook.com"}],"dist":{"shasum":"c2c973343b61bb4734f47803fd9514f0b4e7764a","tarball":"https://registry.npmjs.org/@bedrock-apis/carolina-authentication/-/carolina-authentication-1.0.0-beta.1.tgz","fileCount":4,"integrity":"sha512-Idk+F9PV/LwJazooVKv+9AALYo2aqGVAFXaoyARmq90odWAbljkMLcmcR38PkfILIpWbni5XX2LuaRVAHimSog==","signatures":[{"sig":"MEUCIH4i4FF/C9tnn9yp/j3pmGh3N/uaw9BDizN7pFZ3jVyFAiEAy/IuCGs9wlS1K53YTLLS6Wlp1+HktR0CfMZBE29HtRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7205},"main":"./dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"98043006fc68b4dc2f4dffc2173f90775d9e19e1","_npmUser":{"name":"conmaster2112","email":"conmaster2112@gmail.com"},"rolldown":{"dir":"./dist","entries":{"main":"./src/main.ts"},"external":"dependencies","sourcemap":false,"declarations":true},"_npmVersion":"11.6.0","description":"Lightweight authentication utilities for validating Minecraft protocol login tokens.","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/carolina-authentication_1.0.0-beta.1_1763554292307_0.8138967247520785","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.2":{"name":"@bedrock-apis/carolina-authentication","version":"1.0.0-beta.2","keywords":["minecraft","protocol","auth","validation","bedrock"],"author":{"name":"bedrock-apis"},"license":"MIT","_id":"@bedrock-apis/carolina-authentication@1.0.0-beta.2","maintainers":[{"name":"conmaster2112","email":"conmaster2112@gmail.com"},{"name":"leafytail","email":"minec118@outlook.com"}],"dist":{"shasum":"c3c2c986100e933db97b20485df181b6c12914cf","tarball":"https://registry.npmjs.org/@bedrock-apis/carolina-authentication/-/carolina-authentication-1.0.0-beta.2.tgz","fileCount":4,"integrity":"sha512-zg6PxFEfrO/vzTDIzdsc3ModJ4IFSO2VhoaQOqi5mO5+aqaY4iUSv4SGna57vFUChg0n0CqbyKCTgDLbVT2H7w==","signatures":[{"sig":"MEYCIQDaKu0OSgkLaLzvXL0hh9DuOJLGXQyWLrnhB1OH25lViwIhAI23BZDjDE8IFcB7cf4OQYUd54TFmDUPy1oy93aymNHv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7173},"main":"./dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"b39b3b91450ac5c6968fe010eb33e57cb1a157dc","_npmUser":{"name":"conmaster2112","email":"conmaster2112@gmail.com"},"rolldown":{"dir":"./dist","entries":{"main":"./src/main.ts"},"external":"dependencies","sourcemap":false,"declarations":true},"_npmVersion":"11.6.0","description":"Lightweight authentication utilities for validating Minecraft protocol login tokens.","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/carolina-authentication_1.0.0-beta.2_1763738293802_0.07240060788439506","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.3":{"name":"@bedrock-apis/carolina-authentication","version":"1.0.0-beta.3","type":"module","keywords":["minecraft","protocol","auth","validation","bedrock"],"scripts":{"check":"tsgo --noEmit","build":"rolldown -c ../../rolldown.common.config.ts","watch":"rolldown -c ../../rolldown.common.config.ts -w"},"main":"./dist/main.js","types":"./dist/main.d.ts","author":{"name":"bedrock-apis"},"license":"MIT","rolldown":{"entries":{"main":"./src/main.ts"},"dir":"./dist","external":"dependencies","declarations":true,"sourcemap":false},"gitHead":"e4c8c73bf5bc73e99ff8642d5c15b0002cd1ddc7","_id":"@bedrock-apis/carolina-authentication@1.0.0-beta.3","description":"Lightweight authentication utilities for validating Minecraft protocol login tokens.","_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-dY3dBNTlUpvjGGR/cEDa4UoYs+anwrS+vKdWWPYK6uWDO7rR/HkuSTixndGLOPN3nZGPIBXc2yB5rXTVHnHdMA==","shasum":"3976413983b92484756bfda8157c3cbac7fb62a0","tarball":"https://registry.npmjs.org/@bedrock-apis/carolina-authentication/-/carolina-authentication-1.0.0-beta.3.tgz","fileCount":4,"unpackedSize":7783,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAWwf0dV3tzDB9WnQgcNOYZLAwJ7GqGDw+Tm0zFlgFCJAiEAxziRV7P2bNrZyzyWRjSQLtOR1YyW+a/japbY+JeLvrQ="}]},"_npmUser":{"name":"conmaster2112","email":"conmaster2112@gmail.com"},"directories":{},"maintainers":[{"name":"conmaster2112","email":"conmaster2112@gmail.com"},{"name":"leafytail","email":"minec118@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/carolina-authentication_1.0.0-beta.3_1763783951339_0.3883109460919505"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-19T12:11:32.196Z","modified":"2025-11-22T03:59:11.778Z","1.0.0-beta.1":"2025-11-19T12:11:32.519Z","1.0.0-beta.2":"2025-11-21T15:18:13.983Z","1.0.0-beta.3":"2025-11-22T03:59:11.545Z"},"author":{"name":"bedrock-apis"},"license":"MIT","keywords":["minecraft","protocol","auth","validation","bedrock"],"description":"Lightweight authentication utilities for validating Minecraft protocol login tokens.","maintainers":[{"name":"conmaster2112","email":"conmaster2112@gmail.com"},{"name":"leafytail","email":"minec118@outlook.com"}],"readme":"## README\n\nLightweight authentication utilities for validating Minecraft protocol login tokens.\n\nThe `Authentication` class provides JWT parsing, header/body extraction, and signature validation against OpenID configuration and JWK sets.\n`AuthenticationType` defines supported token modes: Online, SubClient, and OfflineSelfSigned.\n`OpenConfiguration` retrieves and caches OpenID metadata and keys used to verify incoming tokens.\nUse `Authentication.authenticate()` to validate a token and obtain a typed `JWTBodyObject` for downstream protocol handling.\n\n### Usage Example\n```ts\nconst parsed = Authentication.parse(data.authentication);\nconst { AuthenticationType: type, Token } = parsed;\n\nif (type !== AuthenticationType.Online) {\n   // Prevent connections that are not authenticated\n  player.connection.disconnect();\n  return;\n}\n\nconst userIdentity = await Authentication.authenticate(Token).catch(() => {\n   // Authentication failed\n  player.connection.disconnect();\n  return null;\n});\n\nif (!userIdentity) return;\n\nconsole.log(\"XUID:\", userIdentity.xid);\nconsole.log(\"CPK:\", userIdentity.cpk);\n```\n","readmeFilename":"README.md"}