{"_id":"@carbonteq/livekit-server-sdk","_rev":"6-16a7b9094a09e865d3079edea433cd57","name":"@carbonteq/livekit-server-sdk","dist-tags":{"latest":"1.1.2"},"versions":{"1.1.1":{"name":"@carbonteq/livekit-server-sdk","version":"1.1.1","author":{"name":"David Zhao","email":"david@davidzhao.com"},"license":"Apache-2.0","_id":"@carbonteq/livekit-server-sdk@1.1.1","maintainers":[{"name":"volf","email":"rslnkrmt2552@gmail.com"},{"name":"irfanatcarbonteq","email":"irfan@carbonteq.com"},{"name":"adm-carbonteq","email":"admin@carbonteq.com"}],"homepage":"https://github.com/carbonteq/livekit-server-sdk-js#readme","bugs":{"url":"https://github.com/carbonteq/livekit-server-sdk-js/issues"},"dist":{"shasum":"523e765642d1b34a07ee11182908c497e5f345c3","tarball":"https://registry.npmjs.org/@carbonteq/livekit-server-sdk/-/livekit-server-sdk-1.1.1.tgz","fileCount":54,"integrity":"sha512-GdTuaPjm8cQIqTja4ofpmVQZTeBFF8fR52hUx9NxnHZNNbIEI91JPfD5/sFit/HfInpeCUwBmoaB0Dm+sybjGw==","signatures":[{"sig":"MEYCIQCW0CfkA/9TmD+fjGDY1fasmrV1HBq9N+mbYNYteVLYtwIhAKvMndJ5a8XrOeeeVMmUhALB+t9crI2BUjgqTIhBNTUr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1519188,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkERlVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqSjg/+IXvnX5yzw/syezKRgU8+LMs3/28zabNmZThWIIakHGJpmya5\r\nJkJLhGraV5Otngmz5EilbG/t51KKiq8E3mxIxCarjsjBirfAIG29ytHOhGSk\r\nc+UJdsrKPksJIYV79Vk9h9ka6htiPEhvsxR/5jFG63VLDyY7II2yb6nU0y0g\r\n5Iolut+wdM/lkmPU7dUSaZPLpBI5mFG/A2bNg8OO7QYVlEwamJFDX4KMuQYf\r\n8Oh+G856LhKvRfJ6bBnGIOA2WfDGmVgzB+rLlk1GtEHEtC8S6pExdQKfzdeW\r\nJZImUjIYr/X0xAwWZCFeQ8g4XMMaYJPavHd3FSMRdfGR5l4w0EqEHfcpBKBm\r\nSJihH0dETls5D92W8fAqNVY3/bcCKYrgOzuJyoebbgfO2EHh5oVFDtufUAME\r\n/z8Uo80iZiDpG2OWjs/1zVtjId+ZyYo4A07rk1XR2hSYKb78xyM+ase//8Ay\r\n2F5tpE9SdQWcHPwHz8fjGDpZJcl8X/vxgM5t/u94FbJTJOYUOrfJsvNlLAgo\r\nVlByKLoTu8j6M+sh+yH7EcFWFQlC8ws6thTQzFJgI0DA0LHcCZ6ElHDUms9l\r\nHqOH3WZH6KmGLlIVliRJj3ZXRBVRbdplSkKK880d0SaB8KB3eJCK2kfyNzA0\r\nOzeUl52zCvy4RZB9Gksion5Oip7BhKOtDLY=\r\n=Zx7J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"commonjs","scope":"@carbonteq","types":"dist/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0","yarn":">=1.22.0"},"gitHead":"f8911fb62736fb3065fff02a471fc63fc7050079","scripts":{"lint":"eslint .","test":"jest","build":"tsc","proto":"./generate-proto.sh","format":"prettier --write src","build-docs":"typedoc","build:watch":"tsc --watch","format:check":"prettier --check src"},"_npmUser":{"name":"volf","email":"rslnkrmt2552@gmail.com"},"repository":{"url":"git+https://github.com/carbonteq/livekit-server-sdk-js.git","type":"git"},"_npmVersion":"8.19.2","description":"(Forked) Server-side SDK for LiveKit","directories":{},"_nodeVersion":"18.12.1","dependencies":{"tsc":"^2.0.4","cuid":"^2.1.8","long":"^5.2.1","axios":"^0.21.0","protobufjs":"^6.11.3","jsonwebtoken":"^8.5.1","camelcase-keys":"^7.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^26.6.3","eslint":"^7.32.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typedoc":"^0.22.13","webpack":"^5.9.0","prettier":"^2.6.2","ts-proto":"^1.133.0","ts-loader":"^8.0.11","typescript":"4.2.4","@types/jest":"^26.0.20","@types/node":"^18.15.3","ts-node-dev":"^2.0.0","webpack-cli":"^4.2.0","@types/jsonwebtoken":"^8.5.0","eslint-plugin-import":"^2.24.0","eslint-config-prettier":"^8.5.0","eslint-config-airbnb-typescript":"^12.3.1","@typescript-eslint/eslint-plugin":"^4.29.1"},"_npmOperationalInternal":{"tmp":"tmp/livekit-server-sdk_1.1.1_1678842197181_0.3916063191624013","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@carbonteq/livekit-server-sdk","version":"1.1.2","author":{"name":"David Zhao","email":"david@davidzhao.com"},"license":"Apache-2.0","_id":"@carbonteq/livekit-server-sdk@1.1.2","maintainers":[{"name":"volf","email":"rslnkrmt2552@gmail.com"},{"name":"irfanatcarbonteq","email":"irfan@carbonteq.com"},{"name":"adm-carbonteq","email":"admin@carbonteq.com"}],"homepage":"https://github.com/carbonteq/livekit-server-sdk-js#readme","bugs":{"url":"https://github.com/carbonteq/livekit-server-sdk-js/issues"},"dist":{"shasum":"07b8d0dd340f97072fd8f6823392140ad2e73010","tarball":"https://registry.npmjs.org/@carbonteq/livekit-server-sdk/-/livekit-server-sdk-1.1.2.tgz","fileCount":54,"integrity":"sha512-+O/c6WnUaq5TZ3hkYCRanTy84LbjRXDV9U2RUZar5YTyx4XGLlaRR3xYFAweK014pyDv4fFJk459Ki2d2EJCtg==","signatures":[{"sig":"MEUCIQD/pfDM54tpITbKkQYUM0oSJ/+2d++wvIpXVRSRCiSaGQIgc9GaKHWZCqDzHAZ+7+CKuyFpwI/7H4j6H6WrNCmCd0g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1519105,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNThBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqZmA/8CHyTeI6Zdz+0JkKUm+4KFe+IA2sKS8K3hpGfaDU07rsVWSXT\r\ngN1mfjdhnIAJ41mf5tFQEY9JjM6LLdX2xkQYyCQnZ3scrVpaGo5nZQWDgzji\r\nKQ0npkGbfBRQxosKnc+sLWPwIQgocROPMV+dtbgmeZ0610MRGolcgmyLun0C\r\nwR8iGdPmDue89ldS7Vk6cVAl0/zzIcI3XYWPW9UiRaTkS2J23SDbjtgITPPH\r\n1trfIl0TZrgPBRg20onAyzxgED2KTvTmjT2ig3yv9+uurxUPfDY2/a1I7oBU\r\nm7FKIJ6jqi4eXStfDHtg6e0v+aKwEraF+DAzje3uN13FWCc6GqmQDaX+PSh1\r\ng2QgRT8qR9VV79OqHex5b5jFR1Pij9AofB2DtYXn1RaKdob7zXCgdHQYOr2U\r\niU+9UFKhyZvb+mi22n67xoUNsrnIANzF53S0gGsaFwS5NG3MqIEcJDylC2M9\r\njNCXtganqX6V3A9Miv1UWMYE/JKuBsKe+wz4Y77RtCGrVxy7Br0mjsBVMxti\r\nez5luP8MYTVyAjxwbD4FJlyb7SB1eEvKVQiN+zwqOf9tvkoVwGXR8zK+OsG4\r\nUSbxeg4NJHvwgR5YfZ0iT15Mp5g+iQ994qbtTFg3HQLUIR/wJlZf/ZHCa2fe\r\nhh3eLm4Kv4QLU5T+eFRFUOBPJe6MpUG8mS0=\r\n=dbyZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"commonjs","scope":"@carbonteq","types":"dist/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0","yarn":">=1.22.0"},"gitHead":"bc8bf63fc9f8174d876cdbf1fa5c19458f9860eb","scripts":{"lint":"eslint .","test":"jest","build":"tsc","proto":"./generate-proto.sh","format":"prettier --write src","build-docs":"typedoc","build:watch":"tsc --watch","format:check":"prettier --check src"},"_npmUser":{"name":"volf","email":"rslnkrmt2552@gmail.com"},"repository":{"url":"git+https://github.com/carbonteq/livekit-server-sdk-js.git","type":"git"},"_npmVersion":"9.5.0","description":"(Forked) Server-side SDK for LiveKit","directories":{},"_nodeVersion":"18.15.0","dependencies":{"tsc":"^2.0.4","cuid":"^2.1.8","long":"^5.2.1","axios":"^0.21.0","protobufjs":"^6.11.3","jsonwebtoken":"^8.5.1","camelcase-keys":"^7.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^26.6.3","eslint":"^7.32.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typedoc":"^0.22.13","webpack":"^5.9.0","prettier":"^2.6.2","ts-proto":"^1.133.0","ts-loader":"^8.0.11","typescript":"4.2.4","@types/jest":"^26.0.20","@types/node":"^18.15.3","ts-node-dev":"^2.0.0","webpack-cli":"^4.2.0","@types/jsonwebtoken":"^8.5.0","eslint-plugin-import":"^2.24.0","eslint-config-prettier":"^8.5.0","eslint-config-airbnb-typescript":"^12.3.1","@typescript-eslint/eslint-plugin":"^4.29.1"},"_npmOperationalInternal":{"tmp":"tmp/livekit-server-sdk_1.1.2_1681209409724_0.14960762909628667","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-03-15T01:03:17.112Z","modified":"2025-03-24T07:32:02.042Z","1.1.0":"2023-03-15T00:58:54.004Z","1.1.1":"2023-03-15T01:03:17.341Z","1.1.2":"2023-04-11T10:36:49.927Z"},"bugs":{"url":"https://github.com/carbonteq/livekit-server-sdk-js/issues"},"author":{"name":"David Zhao","email":"david@davidzhao.com"},"license":"Apache-2.0","homepage":"https://github.com/carbonteq/livekit-server-sdk-js#readme","repository":{"url":"git+https://github.com/carbonteq/livekit-server-sdk-js.git","type":"git"},"description":"(Forked) Server-side SDK for LiveKit","maintainers":[{"email":"rslnkrmt2552@gmail.com","name":"volf"},{"email":"admin@carbonteq.com","name":"adm-carbonteq"},{"email":"irfan@carbonteq.com","name":"irfanatcarbonteq"},{"email":"owais.ahsan@carbonteq.com","name":"owaisatcarbonteq"}],"readme":"# LiveKit Server API for JS\n\nJavascript/Typescript APIs to manage rooms and to create access tokens. This library is designed to work with [livekit-server](https://github.com/livekit/livekit-server). Use it with a Node.js backend to manage access to LiveKit.\n\n## Installation\n\n### Yarn\n\n```\nyarn add @carbonteq/livekit-server-sdk\n```\n\n### NPM\n\n```\nnpm install @carbonteq/livekit-server-sdk --save\n```\n\n## Usage\n\n### Environment Variables\n\nYou may store credentials in environment variables. If api-key or api-secret is not passed in when creating a `RoomServiceClient` or `AccessToken`, the values in the following env vars will be used:\n\n- `LIVEKIT_API_KEY`\n- `LIVEKIT_API_SECRET`\n\n### CommonJS\n\nIf your environment doesn't support ES6 imports, replace the import statements in the examples with\n\n```javascript\nconst livekitApi = require('@carbonteq/livekit-server-sdk');\nconst AccessToken = livekitApi.AccessToken;\nconst RoomServiceClient = livekitApi.RoomServiceClient;\n```\n\n### Creating Access Tokens\n\nCreating a token for participant to join a room.\n\n```typescript\nimport { AccessToken } from '@carbonteq/livekit-server-sdk';\n\n// if this room doesn't exist, it'll be automatically created when the first\n// client joins\nconst roomName = 'name-of-room';\n// identifier to be used for participant.\n// it's available as LocalParticipant.identity with livekit-client SDK\nconst participantName = 'user-name';\n\nconst at = new AccessToken('api-key', 'secret-key', {\n  identity: participantName,\n});\nat.addGrant({ roomJoin: true, room: roomName });\n\nconst token = at.toJwt();\nconsole.log('access token', token);\n```\n\nBy default, the token expires after 6 hours. you may override this by passing in `ttl` in the access token options. `ttl` is expressed in seconds (as number) or a string describing a time span [vercel/ms](https://github.com/vercel/ms). eg: '2 days', '10h'.\n\n### Permissions in Access Tokens\n\nIt's possible to customize the permissions of each participant:\n\n```typescript\nconst at = new AccessToken('api-key', 'secret-key', {\n  identity: participantName,\n});\n\nat.addGrant({\n  roomJoin: true,\n  room: roomName,\n  canPublish: false,\n  canSubscribe: true,\n});\n```\n\nThis will allow the participant to subscribe to tracks, but not publish their own to the room.\n\n### Managing Rooms\n\n`RoomServiceClient` gives you APIs to list, create, and delete rooms. It also requires a pair of api key/secret key to operate.\n\n```typescript\nimport { RoomServiceClient, Room } from '@carbonteq/livekit-server-sdk';\nconst livekitHost = 'https://my.livekit.host';\nconst svc = new RoomServiceClient(livekitHost, 'api-key', 'secret-key');\n\n// list rooms\nsvc.listRooms().then((rooms: Room[]) => {\n  console.log('existing rooms', rooms);\n});\n\n// create a new room\nconst opts = {\n  name: 'myroom',\n  // timeout in seconds\n  emptyTimeout: 10 * 60,\n  maxParticipants: 20,\n};\nsvc.createRoom(opts).then((room: Room) => {\n  console.log('room created', room);\n});\n\n// delete a room\nsvc.deleteRoom('myroom').then(() => {\n  console.log('room deleted');\n});\n```\n\n## Webhooks\n\nThe JS SDK also provides helper functions to decode and verify webhook callbacks. While verification is optional, it ensures the authenticity of the message. See [webhooks guide](https://docs.livekit.io/guides/webhooks) for details.\n\nCheck out [example projects](examples) for full examples of webhooks integration.\n\n```typescript\nimport { WebhookReceiver } from '@carbonteq/livekit-server-sdk';\n\nconst receiver = new WebhookReceiver('apikey', 'apisecret');\n\n// In order to use the validator, WebhookReceiver must have access to the raw POSTed string (instead of a parsed JSON object)\n// if you are using express middleware, ensure that `express.raw` is used for the webhook endpoint\n// router.use('/webhook/path', express.raw());\n\napp.post('/webhook-endpoint', (req, res) => {\n  // event is a WebhookEvent object\n  const event = receiver.receive(req.body, req.get('Authorization'));\n});\n```\n","readmeFilename":"README.md"}