{"_id":"@dlguswo333/reveal-multiplex","_rev":"2-f9850ccd2042e07691a81a49d919549c","name":"@dlguswo333/reveal-multiplex","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@dlguswo333/reveal-multiplex","version":"0.1.0","private":false,"description":"a rewrite of reveal multiplex in 2024.","main":"./dist/cjs/server.js","module":"./dist/esm/server.js","types":"./dist/esm/server.d.ts","type":"module","exports":{"./server":{"require":{"types":"./dist/cjs/server.d.ts","default":"./dist/cjs/server.js"},"import":{"types":"./dist/esm/server.d.ts","default":"./dist/esm/server.js"}},"./browser":{"require":{"types":"./dist/cjs/browser.d.ts","default":"./dist/cjs/browser.js"},"import":{"types":"./dist/esm/browser.d.ts","default":"./dist/esm/browser.js"}}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npm run build:cjs && npm run build:esm && node deploy.js","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","lint":"eslint ./src/**/*","prepublishOnly":"npm run lint"},"author":{"name":"dlguswo333","email":"dlguswo002@gmail.com"},"license":"MIT","keywords":["reveal","revealjs","presentation","multiplex","share"],"devDependencies":{"@types/node":"^20.11.5","@types/reveal.js":"^4.4.8","@types/ws":"^8.5.10","@typescript-eslint/eslint-plugin":"^6.18.1","@typescript-eslint/parser":"^6.18.1","eslint":"^8.56.0","typescript":"^5.3.3"},"dependencies":{"@fastify/static":"^6.12.0","@fastify/websocket":"^8.3.1","fastify":"^4.25.2"},"_id":"@dlguswo333/reveal-multiplex@0.1.0","gitHead":"f0752a5d909b9c7857300436b27d381f58322927","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-B5BMi4FUXntvEirKIPNDD/c96Bnd5i6VzGGnASUycFLwnqdeUEKAPTZp3I0zhK5XsGojM/r4Wk74dkNOXpRZcQ==","shasum":"afb06b17fbef10660853680f6880fcdc4a18c697","tarball":"https://registry.npmjs.org/@dlguswo333/reveal-multiplex/-/reveal-multiplex-0.1.0.tgz","fileCount":2,"unpackedSize":3825,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZWtyHPoSOkTtS8KFIRycYB26NI0s4gPLa3kvxJmHoiQIhALL8eUddW+/qqDWC1QMZVCzOm+0aw2bM6f712k1dY3cP"}]},"_npmUser":{"name":"dlguswo333","email":"dlguswo002@gmail.com"},"directories":{},"maintainers":[{"name":"dlguswo333","email":"dlguswo002@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/reveal-multiplex_0.1.0_1707562707642_0.4117491216806741"},"_hasShrinkwrap":false},"0.1.1":{"name":"@dlguswo333/reveal-multiplex","version":"0.1.1","private":false,"description":"a rewrite of reveal multiplex in 2024.","main":"./dist/cjs/server.js","module":"./dist/esm/server.js","types":"./dist/esm/server.d.ts","type":"module","exports":{"./server":{"require":{"types":"./dist/cjs/server.d.ts","default":"./dist/cjs/server.js"},"import":{"types":"./dist/esm/server.d.ts","default":"./dist/esm/server.js"}},"./browser":{"require":{"types":"./dist/cjs/browser.d.ts","default":"./dist/cjs/browser.js"},"import":{"types":"./dist/esm/browser.d.ts","default":"./dist/esm/browser.js"}}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npm run build:cjs && npm run build:esm && node deploy.js","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","lint":"eslint ./src/**/*","prepublishOnly":"npm run lint"},"author":{"name":"dlguswo333","email":"dlguswo002@gmail.com"},"license":"MIT","keywords":["reveal","revealjs","presentation","multiplex","share"],"devDependencies":{"@types/node":"^20.11.5","@types/reveal.js":"^4.4.8","@types/ws":"^8.5.10","@typescript-eslint/eslint-plugin":"^6.18.1","@typescript-eslint/parser":"^6.18.1","eslint":"^8.56.0","typescript":"^5.3.3"},"dependencies":{"@fastify/static":"^6.12.0","@fastify/websocket":"^8.3.1","fastify":"^4.25.2"},"_id":"@dlguswo333/reveal-multiplex@0.1.1","gitHead":"eacc9197464119dd3f5a39d860992ae2d3b14697","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-CnXxq/ZlrRBL9t0v+v879sSi56tuykYeEqpTPZhFINCkfgbnDHJKhJnO5F6228mpDXuMsiObb319UE5Wc6H9yA==","shasum":"a26392bb0e13749d2fbfdfa4790329b47c83d216","tarball":"https://registry.npmjs.org/@dlguswo333/reveal-multiplex/-/reveal-multiplex-0.1.1.tgz","fileCount":2,"unpackedSize":3825,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDm352R2eAsGkS9DlSjde3iLZH2FC+yhbhzkisV+IWbTAIgFTSJlmRUDSr2as1OZlkGyoAE/fB5bX6mq4x3D8z0ctQ="}]},"_npmUser":{"name":"dlguswo333","email":"dlguswo002@gmail.com"},"directories":{},"maintainers":[{"name":"dlguswo333","email":"dlguswo002@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/reveal-multiplex_0.1.1_1707563160912_0.1365295597472338"},"_hasShrinkwrap":false},"0.1.2":{"name":"@dlguswo333/reveal-multiplex","version":"0.1.2","private":false,"description":"a rewrite of reveal multiplex in 2024.","main":"./dist/cjs/server.js","module":"./dist/esm/server.js","types":"./dist/esm/server.d.ts","type":"module","exports":{"./server":{"require":{"types":"./dist/cjs/server.d.ts","default":"./dist/cjs/server.js"},"import":{"types":"./dist/esm/server.d.ts","default":"./dist/esm/server.js"}},"./browser":{"require":{"types":"./dist/cjs/browser.d.ts","default":"./dist/cjs/browser.js"},"import":{"types":"./dist/esm/browser.d.ts","default":"./dist/esm/browser.js"}}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npm run build:cjs && npm run build:esm && node deploy.js","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","lint":"eslint ./src/**/*","prepublishOnly":"npm run lint"},"author":{"name":"dlguswo333","email":"dlguswo002@gmail.com"},"license":"MIT","keywords":["reveal","revealjs","presentation","multiplex","share"],"devDependencies":{"@types/node":"^20.11.5","@types/reveal.js":"^4.4.8","@types/ws":"^8.5.10","@typescript-eslint/eslint-plugin":"^6.18.1","@typescript-eslint/parser":"^6.18.1","eslint":"^8.56.0","typescript":"^5.3.3"},"dependencies":{"@fastify/static":"^6.12.0","@fastify/websocket":"^8.3.1","fastify":"^4.25.2"},"_id":"@dlguswo333/reveal-multiplex@0.1.2","gitHead":"2698f08f0bd104aebe56d1777277f9208de964dd","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-a8WeqJfFKBAIwsxtqv/VxoH6E+4ItI/T38MXJaIq0wfPSXnAGLfC/Wg8PquFXNXTwrFqVOeYszYQppHoxEl0Lg==","shasum":"27d03a6e5c3f3e552e297323fa5532b92727f0c0","tarball":"https://registry.npmjs.org/@dlguswo333/reveal-multiplex/-/reveal-multiplex-0.1.2.tgz","fileCount":25,"unpackedSize":36371,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBT4HuPtO8K3IG8oCWtnDyB/a8+VFzePeITabW5eMQX+AiEA0uDvIY6JVZ+76zjw+CCw6TVm0ppVSEg7bEMyHTjSAFk="}]},"_npmUser":{"name":"dlguswo333","email":"dlguswo002@gmail.com"},"directories":{},"maintainers":[{"name":"dlguswo333","email":"dlguswo002@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/reveal-multiplex_0.1.2_1707563320643_0.4262685275170408"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-10T10:58:27.558Z","0.1.0":"2024-02-10T10:58:27.799Z","modified":"2024-02-10T11:08:40.962Z","0.1.1":"2024-02-10T11:06:01.053Z","0.1.2":"2024-02-10T11:08:40.803Z"},"maintainers":[{"name":"dlguswo333","email":"dlguswo002@gmail.com"}],"description":"a rewrite of reveal multiplex in 2024.","keywords":["reveal","revealjs","presentation","multiplex","share"],"author":{"name":"dlguswo333","email":"dlguswo002@gmail.com"},"license":"MIT","readme":"# @dlguswo333/revealjs-multiplex\nThis package aims to serve revealjs multiplex feature in modern way.\n**It's helpful when you want to control other browser tabs or devices.**\n\n## Features\n- Support modern module systems: ESM and CJS.\n- Built upon up-to-date dependencies: `fastify@^4.25.2`\n- Serve your static files. All you need to do is point the static file path.\n\n## How to\nStart your server on Node.js.\n```js\nimport {setupServer} from '@dlguswo333/reveal-multiplex/server'\n\nsetupServer({\n    host: '192.168.0.2',\n    port: 8080,\n    secret: 'q1w2e3r4',\n    staticDir: './public'\n})\n```\n\n<br>\n\nImport the client script and call setup functions.\nOne feasible code example is the following.\n```js\nimport {setupMasterToken, setupMaster, setupClient} from '@dlguswo333/reveal-multiplex/client'\n\nsetupMasterToken()\nif (getIsMaster()) {\n    setupMaster(Reveal)\n} else {\n    setupClient(Reveal)\n}\n```\n\n\nOpen a browser tab and connect to your server with secret parameter.\nWith the valid secret, the tab will the master which controls clients.\n```\nhttp://192.168.0.2:8080/?secret=q1w2e3r4\n```\n\n<br>\n\nAccess to the server on a browser tab without specifying secret parameter.\nWithout the secret, the tab will be a client.\n```\nhttp://192.168.0.2:8080/\n```\n\n<br>\n\nWhen the master slides, change the view, clients react to the events\nand do the same.\n\n\n## Configurations\n| Config | Description | Default |\n| :--: | ---- | ---- |\n| `secret` | Secret key for master to possess. grant master token to every socket if undefined. | `undefined` |\n| `host` | Network host where the server is hosted. | `0.0.0.0` (for convenience) |\n| `port` | Network port where the server is hosted. | `80` |\n| `staticDir` | File path to static assets (e.g. `index.html`). Can be absolute or relative. | `./public` |\n\n\n## Caveats\n- It does not support secure connections as of now. Please use it on secure network.\n- Every time the server restarts, you need to reconnect the master as it forgets the previous master token.\n- The package's typing systems are a little messy. Supporting dual package, conditional exports is tough one.\n","readmeFilename":"README.md"}