{"_id":"@bagooon/chatease-node-client","_rev":"8-afa3d403f14b8c3e326e316c411a32dd","name":"@bagooon/chatease-node-client","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@bagooon/chatease-node-client","version":"0.1.0","keywords":["chatease","chat","board","api","node"],"author":{"name":"Hashimoto Giken"},"license":"MIT","_id":"@bagooon/chatease-node-client@0.1.0","maintainers":[{"name":"bagooon","email":"hashimoto@bagooon.com"}],"dist":{"shasum":"07c5094fc57cb0cfdb08bf6cb4e0092c2f8d0878","tarball":"https://registry.npmjs.org/@bagooon/chatease-node-client/-/chatease-node-client-0.1.0.tgz","fileCount":10,"integrity":"sha512-hd5vVtV8lOftg6HpyhrTtL6dhxWFhcpq9PdinSqQNDdLVZo49MvFj4Z04RrhCy2WY8QdItziFmoXAy3PTwX8KA==","signatures":[{"sig":"MEUCIAuYKZUvxrAb6q1vd0QRLA9qgDDWJ7f8ZjZxiRToEMXUAiEAngLmqIPhdHJ7ZwP6rRnMzMQboIT3/z+dPtmfUiHoN0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16169},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","browser":{"./dist/index.js":false},"engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1b86ba298be6ef815c4bbfa0edcb516d8ec30a36","scripts":{"test":"vitest run","build":"tsc","prepare":"npm run build","test:ui":"vitest --ui","test:watch":"vitest","prepublishOnly":"npm run test && npm run build"},"_npmUser":{"name":"bagooon","email":"hashimoto@bagooon.com"},"_npmVersion":"9.8.1","description":"Node.js-only client for ChatEase board API","directories":{},"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@vitest/ui":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/chatease-node-client_0.1.0_1772030321216_0.48438144508344005","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bagooon/chatease-node-client","version":"0.1.1","keywords":["chatease","chat","board","api","node"],"author":{"name":"Hashimoto Giken"},"license":"MIT","_id":"@bagooon/chatease-node-client@0.1.1","maintainers":[{"name":"bagooon","email":"hashimoto@bagooon.com"}],"dist":{"shasum":"0f743fab620f166ec88de7d2fe654c2cbed7e42d","tarball":"https://registry.npmjs.org/@bagooon/chatease-node-client/-/chatease-node-client-0.1.1.tgz","fileCount":10,"integrity":"sha512-yjHiu+dDlqNyn9nHNSrkXnNmJvt14VA0f9hiu6pLzr+HeAUafQxPmAWPCs6oLhdPUrB1O4KhArgHVCGBe9QHsw==","signatures":[{"sig":"MEQCID7A/AQyNHwlZj+wmmI0tl2fQDmX/LCNSiZdUaeHivnLAiAzvbLtJQfU/mRWc3dQU/Kv/m+arJCHINLub2n4pSEdHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16161},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","browser":{"./dist/index.js":false},"engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"99bdcfe30569769e5695708be63899434c24e7f3","scripts":{"test":"vitest run","build":"tsc","prepare":"npm run build","test:ui":"vitest --ui","test:watch":"vitest","prepublishOnly":"npm run test && npm run build"},"_npmUser":{"name":"bagooon","email":"hashimoto@bagooon.com"},"_npmVersion":"9.8.1","description":"Node.js-only client for ChatEase board API","directories":{},"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@vitest/ui":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/chatease-node-client_0.1.1_1772030831170_0.6829022448056747","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bagooon/chatease-node-client","version":"0.1.2","keywords":["chatease","chat","board","api","node"],"author":{"name":"Hashimoto Giken"},"license":"MIT","_id":"@bagooon/chatease-node-client@0.1.2","maintainers":[{"name":"bagooon","email":"hashimoto@bagooon.com"}],"homepage":"https://chatease.jp/","bugs":{"url":"https://github.com/bagooon/chatease-node-client/issues"},"dist":{"shasum":"bcd6b818f0bec88bbb361e648e14b64398636a6a","tarball":"https://registry.npmjs.org/@bagooon/chatease-node-client/-/chatease-node-client-0.1.2.tgz","fileCount":10,"integrity":"sha512-453IzdvnbQsefGcPmFH+NI0Vxev+o3VgDMgqFQmFl+W7/lfOlJ5p55x939zb4ulx04hrOBg86HFYgJcD0ua61A==","signatures":[{"sig":"MEYCIQCL4NDQNz3IlEPRYr67MKip2/w1C/tnoHg7NuyH/VY4HAIhALN6EA5y1/48WG66+tbhMw388vvaHhi+jEhio5JBcAtO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17001},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","browser":{"./dist/index.js":false},"engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f0648ee288cf3cdf883add7eaf0df42b4a43eb6c","scripts":{"test":"vitest run","build":"tsc","prepare":"npm run build","test:ui":"vitest --ui","test:watch":"vitest","prepublishOnly":"npm run test && npm run build"},"_npmUser":{"name":"bagooon","email":"hashimoto@bagooon.com"},"repository":{"url":"git+https://github.com/bagooon/chatease-node-client.git","type":"git"},"_npmVersion":"9.8.1","description":"Node.js-only client for ChatEase board API","directories":{},"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@vitest/ui":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/chatease-node-client_0.1.2_1772033160962_0.15747869192923902","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bagooon/chatease-node-client","version":"0.1.3","keywords":["chatease","chat","board","api","node"],"author":{"name":"Hashimoto Giken"},"license":"MIT","_id":"@bagooon/chatease-node-client@0.1.3","maintainers":[{"name":"bagooon","email":"hashimoto@bagooon.com"}],"homepage":"https://chatease.jp/","bugs":{"url":"https://github.com/bagooon/chatease-node-client/issues"},"dist":{"shasum":"433cd02f694d17202c7b6268c16a26825615b1e3","tarball":"https://registry.npmjs.org/@bagooon/chatease-node-client/-/chatease-node-client-0.1.3.tgz","fileCount":10,"integrity":"sha512-Yqun1k8o/jyY6c0XVBhZDl80EQ0apPaXOHt0EyKzHoOaTtcZdMIFgYRxzVA+n3Xp2e5oFHHZQGO09pZwxt7tQQ==","signatures":[{"sig":"MEUCICHSCNrsMAJ1/zZQX6a4Y/44feSHS7WTD1vkDI5ENdT+AiEAy3pyO5q4kx6vVqNyxZU2/4u3XKq4UH/SWNm1V2YV6gc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16957},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","browser":{"./dist/index.js":false},"engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5389b8d43a26d3624bedec49005c858643f2ded2","scripts":{"test":"vitest run","build":"tsc","prepare":"npm run build","test:ui":"vitest --ui","test:watch":"vitest","prepublishOnly":"npm run test && npm run build"},"_npmUser":{"name":"bagooon","email":"hashimoto@bagooon.com"},"repository":{"url":"git+https://github.com/bagooon/chatease-node-client.git","type":"git"},"_npmVersion":"9.8.1","description":"Node.js-only client for ChatEase board API","directories":{},"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@vitest/ui":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/chatease-node-client_0.1.3_1772034244835_0.19958414168983096","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bagooon/chatease-node-client","version":"0.1.4","keywords":["chatease","chat","board","api","node"],"author":{"name":"Hashimoto Giken"},"license":"MIT","_id":"@bagooon/chatease-node-client@0.1.4","maintainers":[{"name":"bagooon","email":"hashimoto@bagooon.com"}],"homepage":"https://chatease.jp/","bugs":{"url":"https://github.com/bagooon/chatease-node-client/issues"},"dist":{"shasum":"a49e195b3a85805cf82d70e1e2d6fb68274274d4","tarball":"https://registry.npmjs.org/@bagooon/chatease-node-client/-/chatease-node-client-0.1.4.tgz","fileCount":10,"integrity":"sha512-Njh/yiIsjmaJhTrpWABsYJ5jqIaOIHEMBvTHiyYaRXECc6Mvr8EdNEcA7w5jP5Hih6NDGSDSXPIKzZKsECX6ow==","signatures":[{"sig":"MEUCIH5JYaWJ1Tt/et9WoBVttJOBvMAjrtyXsTMJW2CG5L/hAiEA0may07TIIkTDPqVbI/ZpJc6j1LFRe7Yy0aIru+Xv8E0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16788},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","browser":{"./dist/index.js":false},"engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"302e4c3fd0cbbc037b66448bb8c46f5c7f104e07","scripts":{"test":"vitest run","build":"tsc","prepare":"npm run build","test:ui":"vitest --ui","test:watch":"vitest","prepublishOnly":"npm run test && npm run build"},"_npmUser":{"name":"bagooon","email":"hashimoto@bagooon.com"},"repository":{"url":"git+https://github.com/bagooon/chatease-node-client.git","type":"git"},"_npmVersion":"9.8.1","description":"Node.js-only client for ChatEase board API","directories":{},"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@vitest/ui":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/chatease-node-client_0.1.4_1772037726553_0.16314706074875418","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bagooon/chatease-node-client","version":"0.2.0","keywords":["chatease","chat","board","api","node"],"author":{"name":"Hashimoto Giken"},"license":"MIT","_id":"@bagooon/chatease-node-client@0.2.0","maintainers":[{"name":"bagooon","email":"hashimoto@bagooon.com"}],"homepage":"https://chatease.jp/","bugs":{"url":"https://github.com/bagooon/chatease-node-client/issues"},"dist":{"shasum":"2bf15ebffbaa90dda5b10e11d07d9706e39bc425","tarball":"https://registry.npmjs.org/@bagooon/chatease-node-client/-/chatease-node-client-0.2.0.tgz","fileCount":10,"integrity":"sha512-20u+muH6V27/QYUnykDh6Lk2xB4r6O8edmvgaYSYYhzS3gjsPdK024FGQMPm0K6+zEi8PJlUFydRbcGKTq660w==","signatures":[{"sig":"MEUCIQDcPRVgNi2+aHSshjQ4/qleFyAOFVD0pWJvikPdSOorLQIgKmZVdXCgLcYnFuZlFuK7W1LpdOAIzJDfEtCJnWQNn4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18438},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","browser":{"./dist/index.js":false},"engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"224ab1bdeac5b3eb29ef4ffc50235a3f178df8cc","scripts":{"test":"vitest run","build":"tsc","prepare":"npm run build","test:ui":"vitest --ui","test:watch":"vitest","prepublishOnly":"npm run test && npm run build"},"_npmUser":{"name":"bagooon","email":"hashimoto@bagooon.com"},"repository":{"url":"git+https://github.com/bagooon/chatease-node-client.git","type":"git"},"_npmVersion":"9.8.1","description":"Node.js-only client for ChatEase board API","directories":{},"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@vitest/ui":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/chatease-node-client_0.2.0_1772173236571_0.5417319609052931","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bagooon/chatease-node-client","version":"0.3.0","keywords":["chatease","chat","board","api","node"],"author":{"name":"Hashimoto Giken"},"license":"MIT","_id":"@bagooon/chatease-node-client@0.3.0","maintainers":[{"name":"bagooon","email":"hashimoto@bagooon.com"}],"homepage":"https://chatease.jp/","bugs":{"url":"https://github.com/bagooon/chatease-node-client/issues"},"dist":{"shasum":"f91f923f0f6d1cc48b51ebf89fecbc45d8ec007d","tarball":"https://registry.npmjs.org/@bagooon/chatease-node-client/-/chatease-node-client-0.3.0.tgz","fileCount":10,"integrity":"sha512-6zkZZPxNa6G158MVkfJcM34AA0RBdHVBqjzf99lNWRDv60JxBN8lYGleIKiEeKPZby4WHXeE9avQRDCmGeyoDg==","signatures":[{"sig":"MEUCIEupDBbAJhfnXRRDVWN7qL3YPde2C1hv4X/LPSBbcCoxAiEA+SIZ4c1rlHMGssLpiSmKE9ZNFzBKNUiUqIpM18aJWmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18560},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","browser":{"./dist/index.js":false},"engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7894dacba1d503599ab093d1c51835918c05ee74","scripts":{"test":"vitest run","build":"tsc","prepare":"npm run build","test:ui":"vitest --ui","test:watch":"vitest","prepublishOnly":"npm run test && npm run build"},"_npmUser":{"name":"bagooon","email":"hashimoto@bagooon.com"},"repository":{"url":"git+https://github.com/bagooon/chatease-node-client.git","type":"git"},"_npmVersion":"9.8.1","description":"Node.js-only client for ChatEase board API","directories":{},"_nodeVersion":"18.18.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@vitest/ui":"^4.0.18","typescript":"^5.9.3","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/chatease-node-client_0.3.0_1773415736497_0.9957379246059965","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bagooon/chatease-node-client","version":"0.5.0","description":"Node.js-only client for ChatEase board API","repository":{"type":"git","url":"git+https://github.com/bagooon/chatease-node-client.git"},"bugs":{"url":"https://github.com/bagooon/chatease-node-client/issues"},"homepage":"https://chatease.jp/","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"tsc","prepare":"npm run build","test":"vitest run","test:watch":"vitest","test:ui":"vitest --ui","prepublishOnly":"npm run test && npm run build"},"keywords":["chatease","chat","board","api","node"],"author":{"name":"Hashimoto Giken"},"license":"MIT","engines":{"node":">=18"},"browser":{"./dist/index.js":false},"devDependencies":{"@types/node":"^25.3.0","@vitest/ui":"^4.0.18","typescript":"^5.9.3","vitest":"^4.0.18"},"gitHead":"18b944811376cc2972b5d53830808a1e31f8cda3","_id":"@bagooon/chatease-node-client@0.5.0","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-vP7GEUs0bHPD7JFjtlSoPIZ6zsletETrxtDFnZNkqlmUGugpMKxREkmDyyz1u+R+gynZmb8ijZ2L0lmyU4PefQ==","shasum":"0ba62fb68a302a35c384bf7239791535a0793436","tarball":"https://registry.npmjs.org/@bagooon/chatease-node-client/-/chatease-node-client-0.5.0.tgz","fileCount":10,"unpackedSize":20668,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD1BhyI+iFtfRkpz0A+0LIhSf3+LdexsqvNW2psEyKfcQIgGmemEp7yAtIuhtDAT/RTjAHfVgBOPNrxQhdx1zwa03g="}]},"_npmUser":{"name":"bagooon","email":"hashimoto@bagooon.com"},"directories":{},"maintainers":[{"name":"bagooon","email":"hashimoto@bagooon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chatease-node-client_0.5.0_1777557231237_0.6618828546992463"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-25T14:38:41.118Z","modified":"2026-04-30T13:53:51.509Z","0.1.0":"2026-02-25T14:38:41.393Z","0.1.1":"2026-02-25T14:47:11.354Z","0.1.2":"2026-02-25T15:26:01.114Z","0.1.3":"2026-02-25T15:44:04.998Z","0.1.4":"2026-02-25T16:42:06.704Z","0.2.0":"2026-02-27T06:20:36.739Z","0.3.0":"2026-03-13T15:28:56.767Z","0.5.0":"2026-04-30T13:53:51.397Z"},"bugs":{"url":"https://github.com/bagooon/chatease-node-client/issues"},"author":{"name":"Hashimoto Giken"},"license":"MIT","homepage":"https://chatease.jp/","keywords":["chatease","chat","board","api","node"],"repository":{"type":"git","url":"git+https://github.com/bagooon/chatease-node-client.git"},"description":"Node.js-only client for ChatEase board API","maintainers":[{"name":"bagooon","email":"hashimoto@bagooon.com"}],"readme":"<a href=\"https://chatease.jp/\"><img width=\"500\" height=\"106\" alt=\"ChatEase logo\" src=\"./.github/assets/chatease_logo.svg\" /></a>\n\n# @bagooon/chatease-node-client\n\n[![npm version](https://img.shields.io/npm/v/@bagooon/chatease-node-client.svg)](https://www.npmjs.com/package/@bagooon/chatease-node-client)\n[![CI](https://github.com/bagooon/chatease-node-client/actions/workflows/ci.yml/badge.svg)](https://github.com/bagooon/chatease-node-client/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\nNode.js 向けの **[ChatEase](https://chatease.jp \"ChatEase.jp\") チャットボード新規追加 API クライアント** です。  \nサーバーサイド（Node.js）専用で、ブラウザからの利用は想定していません。\n\n> ⚠️ This package is **Node.js-only**.  \n> Do **NOT** use it in browser environments. Your API token will be exposed.\n\n---\n\n## Features\n\n- ChatEase の「チャットボード生成 API」を安全にラップ\n- 3パターンのメソッドを提供\n  - チャットボード生成のみ\n  - チャットボード + 初期ステータス\n  - チャットボード + 初期ステータス + 初期投稿\n- ワークスペース名取得メソッド `getWorkspaceName()` を提供\n- TypeScript フルサポート（型定義同梱）\n- 実行時バリデーション\n  - `timeLimit` の日付妥当性（`YYYY-MM-DD` & 実在日付）\n  - `guest.email` の簡易フォーマットチェック\n  - `boardUniqueKey` の妥当性チェック\n\n---\n\n## Requirements\n\n- Node.js **18+** （グローバル `fetch` が必要）\n- ChatEase のワークスペーススラッグ & API トークン\n- サーバーサイド（Node.js）環境のみ\n\n---\n\n## Installation\n\n```bash\nnpm install @bagooon/chatease-node-client\n# or\nyarn add @bagooon/chatease-node-client\n# or\npnpm add @bagooon/chatease-node-client\n```\n\n---\n\n## Quick Start\n\n```ts\nimport { ChatEaseClient } from '@bagooon/chatease-node-client'\n\nconst chatease = new ChatEaseClient({\n  apiToken: process.env.CHATEASE_API_TOKEN!,\n  workspaceSlug: 'your-workspace-slug',\n})\n\n// 1) チャットボードのみ生成\nconst res1 = await chatease.createBoard({\n  title: 'お問い合わせ #1001',\n  guest: {\n    name: '田中太郎',\n    email: 'taro@example.com',\n  },\n  guestPassphrase: 'あいことば',\n  memo: 'TEL: 012-345-6789',\n  boardUniqueKey: '20260225-1001',\n})\n\nconsole.log(res1.guestURL)\n\n// 2) 初期ステータス付きで生成\nconst res2 = await chatease.createBoardWithStatus({\n  title: '見積依頼 #1002',\n  guest: {\n    name: 'Suzuki Hanako',\n    email: 'hanako@example.com',\n  },\n  memo: 'TEL: 012-345-6789',\n  boardUniqueKey: '20260225-1002',\n  initialStatus: {\n    statusKey: 'scheduled_for_response',\n    timeLimit: '2026-02-28', // YYYY-MM-DD\n  },\n})\n\n// 3) 初期ステータス + 初期投稿付きで生成\nconst res3 = await chatease.createBoardWithStatusAndMessage({\n  title: 'デザイン相談 #1003',\n  guest: {\n    name: 'John Smith',\n    email: 'john@example.com',\n  },\n  memo: 'TEL: 012-345-6789',\n  boardUniqueKey: '20260225-1003',\n  initialStatus: {\n    statusKey: 'scheduled_for_proof',\n    timeLimit: '2026-03-05',\n  },\n  initialGuestComment: {\n    content: 'ロゴデザインについて相談したいです。現在の案を添付しました。',\n  },\n})\n\n// 4) ワークスペース名を取得\n//   （APIトークン＋ワークスペーススラッグが正しく設定されているかを確認する用途に利用できます。)\nconst workdpaceName = await chatease.getWorkspaceName()\n```\n\n---\n\n## API\n\n### `new ChatEaseClient(options)`\n\n```ts\ninterface ChatEaseClientOptions {\n  apiToken: string\n  workspaceSlug: string\n  baseUrl?: string // default: 'https://chatease.jp'\n}\n```\n\n- `apiToken` – ChatEase の API トークン\n- `workspaceSlug` – ワークスペースの slug\n- `baseUrl` – ステージングなどを使う場合に差し替え。通常は指定不要。\n\nブラウザ環境（window が存在する）で呼び出すと、即座にエラーを投げます。\n\n---\n\n### `createBoard(params)`\n\n```ts\ninterface GuestInfo {\n  name: string\n  email: string\n}\n\ninterface CreateBoardBaseParams {\n  title: string\n  guest: GuestInfo\n  boardUniqueKey: string\n  guestPassphrase?: string\n  inReplyTo?: string\n  memo?: string\n}\n\ncreateBoard(params: CreateBoardBaseParams): Promise<CreateBoardResponse>\n```\n\n最低限の情報でチャットボードを生成します。\n\n- `boardUniqueKey` は同じ値で再度呼び出すと、既存ボードが返ってくる仕様です\n- `guest.email` は簡易フォーマットチェックが行われます\n- `boardUniqueKey` は空文字や空白を含む値は拒否されます\n- `guestPassphrase` は任意です。指定時はゲスト画面表示時に毎回確認されます\n- `guestPassphrase` は全角換算 10 文字以内です\n\n---\n\n### `createBoardWithStatus(params)`\n\n```ts\ntype InitialStatus =\n  | {\n      statusKey:\n        | 'scheduled_for_proof'  // 校正予定\n        | 'scheduled_for_response'  // 返答予定\n        | 'scheduled_for_completion'  // 完了予定\n      timeLimit: string // YYYY-MM-DD\n    }\n  | {\n      statusKey: 'waiting_for_reply'  // 返答待ち\n      timeLimit: never // 日付は指定できません\n    }\n\ninterface CreateBoardWithStatusParams extends CreateBoardBaseParams {\n  initialStatus: InitialStatus\n}\n\ncreateBoardWithStatus(\n  params: CreateBoardWithStatusParams\n): Promise<CreateBoardResponse>\n```\n\n- `scheduled_for_*` の場合は timeLimit が必須\n- `waiting_for_reply` の場合は timeLimit は指定できません（型でも実行時でも防止）\n\n---\n\n### `createBoardWithStatusAndMessage(params)`\n\n```ts\ninterface InitialGuestComment {\n  content: string\n}\n\ninterface CreateBoardWithStatusAndMessageParams\n  extends CreateBoardBaseParams {\n  initialStatus: InitialStatus\n  initialGuestComment: InitialGuestComment\n}\n\ncreateBoardWithStatusAndMessage(\n  params: CreateBoardWithStatusAndMessageParams\n): Promise<CreateBoardResponse>\n```\n\n初回のゲスト投稿までまとめて登録する場合に使います。\n\n---\n\n### `CreateBoardResponse`\n\n```ts\ninterface CreateBoardResponse {\n  slug: string\n  hostURL: string\n  guestURL: string\n}\n```\n\n- `slug` – ボードの識別子\n- `hostURL` – ホスト（管理側）用 URL\n- `guestURL` – ゲスト側 URL（メールに貼るなど）\n\n---\n\n### `getWorkspaceName()`\n\n```ts\ngetWorkspaceName(): Promise<string>\n```\n\n認証には既存の API トークンヘッダー（`X-Chatease-API-Token`）と、リクエストボディの `workspaceSlug` を使用します。  \nAPIトークン＋ワークスペーススラッグが正しく設定されているかを確認する用途に利用できます。\n認証に失敗した場合は、例外を投げます。\n\n---\n\n## Raw Request Example\n\nクライアントを使わずに直接 `POST /api/v1/board` を呼ぶ場合の例です。\n\n```http\nPOST /api/v1/board HTTP/1.1\nHost: chatease.jp\nContent-Type: application/json\nX-Chatease-API-Token: your-api-token\n\n{\n  \"workspaceSlug\": \"your-workspace-slug\",\n  \"title\": \"お問い合わせ #1001\",\n  \"guest\": {\n    \"name\": \"田中太郎\",\n    \"email\": \"taro@example.com\"\n  },\n  \"guestPassphrase\": \"あいことば\",\n  \"memo\": \"TEL: 012-345-6789\",\n  \"boardUniqueKey\": \"20260225-1001\",\n  \"initialStatus\": {\n    \"statusKey\": \"scheduled_for_response\",\n    \"timeLimit\": \"2026-05-10\"\n  },\n  \"initialGuestComment\": {\n    \"content\": \"お問い合わせ内容の初回本文です。\"\n  }\n}\n```\n\n- `guestPassphrase` は任意です\n- 指定時はゲスト画面表示時に毎回確認されます\n- `guestPassphrase` は全角換算 10 文字以内です\n\n---\n\n## Validation\n\nこのクライアントは、API 呼び出し前に以下の実行時チェックを行います：\n\n- guest.email – 簡易メール形式チェック\n- boardUniqueKey\n    - 空文字禁止\n    - 前後の空白禁止\n    - 空白文字（スペース・タブ・改行など）を含まない\n    - 最大 255 文字まで\n- guestPassphrase\n    - 文字列のみ\n    - 前後空白は trim される前提\n    - 全角換算 10 文字まで\n- initialStatus.timeLimit\n    - scheduled_for_* の場合は必須\n    - YYYY-MM-DD 形式\n    - 実在する日付か確認（うるう年を含む）\n\nバリデーションエラーの場合、API は呼び出されず Error が投げられます。\n\n---\n\n## Development\n\nローカル開発用コマンド：\n\n```bash\n# 依存関係インストール\nnpm install\n\n# テスト実行（1回）\nnpm run test\n\n# テストをウォッチモードで実行\nnpm run test:watch\n\n# ビルド\nnpm run build\n```\n\nリリース前チェック：\n\n```bash\n# テスト & ビルド\nnpm run test\nnpm run build\n```\n\n`npm publish` 時には自動的に `npm run test && npm run build` が実行されます。\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}