{"_id":"@bonio-tw/session-manager","_rev":"16-ffbaac8e70fc33bf7d8ce23426cd603f","name":"@bonio-tw/session-manager","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bonio-tw/session-manager","version":"1.0.0","author":{"name":"Bonio-tw"},"license":"ISC","_id":"@bonio-tw/session-manager@1.0.0","maintainers":[{"name":"pmc12thsuki","email":"wang.szechi@gmail.com"},{"name":"jeff.yeh","email":"jeff.yeh@bonio.com.tw"},{"name":"jamliao","email":"jam.liao@bonio.com.tw"},{"name":"illb","email":"edward.lai@bonio.com.tw"},{"name":"amyhuang","email":"amy.huang@bonio.com.tw"},{"name":"c29492768","email":"c29429768@gmail.com"},{"name":"lucasweng_","email":"lucas.weng@bonio.com.tw"},{"name":"aehrt55","email":"aehrt55@aehrt55.net"},{"name":"chester4096","email":"chester4096@gmail.com"}],"dist":{"shasum":"62926715531a4f9a438467c92d2248ff8e600ffd","tarball":"https://registry.npmjs.org/@bonio-tw/session-manager/-/session-manager-1.0.0.tgz","fileCount":8,"integrity":"sha512-Xz1IwBdnkGbN7rzXd8mOeRqn8b5wskK9CGqJzpEGKqUGNOTpjdbCHK9a3kk6y7r8XjnJwZFAr4BTZ/n1PB5CtQ==","signatures":[{"sig":"MEUCIEEmdRaq4ZXMWEFzl/9m8RXflott3dUzZUrFtd5jLx1mAiEA0EwouQEek3LfZ7Mf5lKRa7zc8r7/hY9wRjDdfeq9+68=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10201,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2Bu4CRA9TVsSAnZWagAABn0P/1uqMekY/bFH/b2glIT8\nO+xXZwODRVbMcSB0FDwqDCkahmyU7pVXgesj9Ozd4Yqg+F9HDjH7wAwKt1nS\nln6wdtrb2JVjFpfd4RLAW25mJQ6Ml7OFE4JkDMFNgZFOB01S56kWSYbdA2S0\nj3TkDY9KuYDpKVKLHfdfDYvlc+zdu5Vvj4+0H+N4zux6E2fIWuLb0Gg+xzWr\n9en9dwYazoTSVcIneR/BlnC1aWKGqVSWXU5gtEtS4XzR2hiqMAXI7D+0reTI\n5gVUAutxtY6brU1zZ3TBRfgcqScYzI1cyTWwwtH0uZgupEqwFrNsCbSl3ejO\nsTh1EGIcXjgghcua4cTT76BuEQgLAqNRUYIbfLrUiD714CB5S+YAoA5Ujl7S\nsiQQs+c6gfu10ZCPK6zV3XC1Eg2y1X4Zpmi8t4sn8fGjC4kPiHkHiXuFTlTw\nMQKupCyv8smxEOPqXx5oSxz8ZUk4rm46XtjsuYdizJ+fk/M9GNYFAXUp70PU\nX86Qbcf57PlRz5mshrjDBiHu/gahNYWiQtvbfrQlJQDPazwTBD8rMf3qf/Mn\nfhoQsMUNN0kudIZh7dH8aYgtxAqEbiWcyHBGbTkEvAM1knPFhIfZSp/yW/JG\nDIdD0diK9VX8hmRfVzL+5XoTst9Qpvuxrmx/eHjW3ymsayTaGe23C4Qi9Ga2\nv0AE\r\n=lwRp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/bundle.js","husky":{"hooks":{"pre-commit":"npm run lint"}},"types":"dist/bundle.d.ts","source":"lib/index.ts","gitHead":"b325e43c3b5cfebeafb5296d2d09a082f3a0f725","scripts":{"dev":"microbundle watch -f cjs","lint":"eslint .","test":"jest","build":"microbundle -f cjs"},"_npmUser":{"name":"pmc12thsuki","email":"wang.szechi@gmail.com"},"_npmVersion":"6.14.4","description":"## Setup `yarn add @bonio-tw/session-manager`","directories":{},"_nodeVersion":"10.21.0","dependencies":{"uuid":"^8.3.0","lodash.has":"^4.5.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.2.2","husky":"^4.2.5","eslint":"^7.6.0","prettier":"^2.0.5","@types/uuid":"^8.0.1","microbundle":"^0.12.3","@types/lodash.has":"^4.5.6","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","@typescript-eslint/parser":"^3.8.0","@typescript-eslint/eslint-plugin":"^3.8.0"},"_npmOperationalInternal":{"tmp":"tmp/session-manager_1.0.0_1597993015816_0.010202986622075638","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-08-21T06:56:55.563Z","modified":"2026-02-09T01:59:19.473Z","1.0.0":"2020-08-21T06:56:55.961Z"},"author":{"name":"Bonio-tw"},"license":"ISC","description":"## Setup `yarn add @bonio-tw/session-manager`","maintainers":[{"email":"chester4096@gmail.com","name":"chester4096"},{"email":"jeff.yeh@bonio.com.tw","name":"jeff.yeh"},{"email":"terrisa1993@gmail.com","name":"elenachien"}],"readme":"# session-manager\n\n## Setup\n`yarn add @bonio-tw/session-manager`\n\n## How To Use\n```js\nimport { initSessionManager } from '@bonio-tw/session-manager';\n\n// app or web storage\n// https://developer.mozilla.org/zh-TW/docs/Web/API/Storage\nconst customStorage = {}; \n\nconst sessionManager = initSessionManager({\n    storage: customStorage,\n});\n\n```\n\n## initSessionManager 參數\n- storage：\n    - `required`\n    - 可帶 app 或 web 的 storage\n    - 必須實現 `getItem`、`setItem`、`removeItem` 接口\n- sessionIdTTL：\n    - `optional`\n    - sessionId 過期的時間。\n    - 以秒為單位，default 值為 1800 秒（30分鐘）\n    - 使用 0 代表 sessionId 不會因為閒置而過期\n- generateSessionId：\n    - `optional`\n    - 產生 sessionId 的方法\n    - default 使用 `uuidv4`\n- generateClientId：\n    - `optional`\n    - 產生 clientId 的方法\n    - default 使用 `uuidv4`\n\n```js\nconst sessionManager = initSessionManager({\n    storage: customStorage,\n    sessionIdTTL: 30 // 30s\n    generateSessionId: () => `mySessionId`,\n    generateClientId: () => `myClientId`\n});\n```\n\n## SessionManager API\n- getSession：返回當前的 `sessionId` 及 `clientId`\n    - 過午夜、超過 sessionIdTTL 時，會 renew sessionId\n    - 可帶參數 `sessionIdTTL`，複寫當次 getSession 時要使用的 ttl 時間。使用 0 代表 sessionId 不會因為閒置而過期。\n\n- clearSession：清空當前 storage 中紀錄的 session 資訊\n\n\n```js\nconst session = await sessionManager.getSession({sessionIdTTL: 0});\n// 不檢查是否已經超過 sessionId 的閒置時間\nconsole.log(session)\n// { sessionId: 'mySessionId', clientId: 'myClientId' }\nawait sessionManager.clearSession();\n```\n","readmeFilename":"README.md"}