{"_id":"@bangkeut-technology/supportdock-sdk","_rev":"5-6c758108e443618005ee7482404a13fb","name":"@bangkeut-technology/supportdock-sdk","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@bangkeut-technology/supportdock-sdk","version":"0.1.0","keywords":["supportdock","feedback","faq","react-native","expo","sdk"],"license":"MIT","_id":"@bangkeut-technology/supportdock-sdk@0.1.0","maintainers":[{"name":"vandetho","email":"thovandeth@gmail.com"}],"dist":{"shasum":"f252b122494ab32ac160d6447a0faae90e4770eb","tarball":"https://registry.npmjs.org/@bangkeut-technology/supportdock-sdk/-/supportdock-sdk-0.1.0.tgz","fileCount":10,"integrity":"sha512-0YxVRjomcHlVyZejYGY+j47P3NgP6soBPu9+Dr/Z9oB0ENIgujDdnlSM8yt9SKFzQAsd28+sglPJ3brZr2p19A==","signatures":[{"sig":"MEUCIQCKo3yRfOd+jEdXnlW+D6+0Go/CPKcP0zgeqlgIFn91nAIgYbJkI8VKea+3lPnxUWHwiaLRIFz/o9517iz7JfAst3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13419},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2254ab84310943ad9d244e9fbbd2f885e251526a","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"vandetho","email":"thovandeth@gmail.com"},"_npmVersion":"11.12.1","description":"SupportDock SDK — submit feedback and manage FAQs from your React Native / Expo app","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/supportdock-sdk_0.1.0_1775191039243_0.11105679995742057","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bangkeut-technology/supportdock-sdk","version":"0.2.0","keywords":["supportdock","feedback","faq","react-native","expo","sdk"],"license":"MIT","_id":"@bangkeut-technology/supportdock-sdk@0.2.0","maintainers":[{"name":"vandetho","email":"thovandeth@gmail.com"}],"dist":{"shasum":"11170592ef2953542675dc0da427659ded1d6e18","tarball":"https://registry.npmjs.org/@bangkeut-technology/supportdock-sdk/-/supportdock-sdk-0.2.0.tgz","fileCount":10,"integrity":"sha512-bdEPkLq6syTSGJKYZ8w4m9MBdBCb8S+Gdfhr0v8xkF0y25fr7tvPRZVhB8T4oK5haPZKdizUtUZ/kNYrEamWYg==","signatures":[{"sig":"MEUCICKuumaney++4vHbM35NTY8fOGpHcnpzQaN8lLxI6FflAiEA7602e2VV2ysDMIV5Nt10FLsB2iDJpsFHrM43/G4MHs8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14581},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"786b771e0e7b6fbbe9e8f77d6ee1a57fed53b3c9","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"vandetho","email":"thovandeth@gmail.com"},"_npmVersion":"11.12.1","description":"SupportDock SDK — submit feedback and manage FAQs from your React Native / Expo app","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/supportdock-sdk_0.2.0_1775545179685_0.6130567923647068","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bangkeut-technology/supportdock-sdk","version":"0.3.0","keywords":["supportdock","feedback","faq","react-native","expo","sdk"],"license":"MIT","_id":"@bangkeut-technology/supportdock-sdk@0.3.0","maintainers":[{"name":"vandetho","email":"thovandeth@gmail.com"}],"dist":{"shasum":"bd037972e76ab1e670277b4f55bef781c2b3d242","tarball":"https://registry.npmjs.org/@bangkeut-technology/supportdock-sdk/-/supportdock-sdk-0.3.0.tgz","fileCount":11,"integrity":"sha512-tpRsBIrz42ln4P0hEUFC2UoabjevSmysGNdeFbKP4mIZLMMY6yV++VBA4n4ixKp5rliIqyzWGoTd4KYS98WtoQ==","signatures":[{"sig":"MEYCIQDrvdweYl2txtYhdttj5H1OOjwTa4FzVrW5p9NnHX1tyAIhAM6u0p6ZfG3/JU+C0sZlyT8fJ6Vz+CXRGtJ5lnbVrZOB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15664},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cc9b37ee99e8c17419485a150915461d4cda9107","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"vandetho","email":"thovandeth@gmail.com"},"_npmVersion":"11.12.1","description":"SupportDock SDK — submit feedback and manage FAQs from your React Native / Expo app","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/supportdock-sdk_0.3.0_1775724177689_0.163352672293539","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bangkeut-technology/supportdock-sdk","version":"0.4.0","keywords":["supportdock","feedback","faq","react-native","expo","sdk"],"license":"MIT","_id":"@bangkeut-technology/supportdock-sdk@0.4.0","maintainers":[{"name":"vandetho","email":"thovandeth@gmail.com"}],"homepage":"https://github.com/bangkeut-technology/supportdock-sdk-js#readme","bugs":{"url":"https://github.com/bangkeut-technology/supportdock-sdk-js/issues"},"dist":{"shasum":"a8e8c2a0e3bd7447fdc37cdfe34681cb56534de6","tarball":"https://registry.npmjs.org/@bangkeut-technology/supportdock-sdk/-/supportdock-sdk-0.4.0.tgz","fileCount":11,"integrity":"sha512-HzHEHu0XDK/AltQIUd7imlakYbiW82yHFzXfLQEDJFOe28nh9QN4XXSZa1bGEcJGCz95LNFOYHdA/vs2wYPnTQ==","signatures":[{"sig":"MEYCIQCClREZxuDQ+q/IshdX+UUzZm/KQ9jByjIMojWJzltkHgIhAOzMLtVRYejZ+Tr6ZSexkZMN+a1kqCy7uqQqs1/Ell92","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17309},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2565cc720d8f5e85c5e0a1b64182ae577032437b","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"vandetho","email":"thovandeth@gmail.com"},"repository":{"url":"git+https://github.com/bangkeut-technology/supportdock-sdk-js.git","type":"git"},"_npmVersion":"11.17.0","description":"SupportDock SDK — submit feedback and manage FAQs from your React Native / Expo app","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/supportdock-sdk_0.4.0_1781490095546_0.3965578338025533","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bangkeut-technology/supportdock-sdk","version":"0.5.0","description":"SupportDock SDK — submit feedback and manage FAQs from your React Native / Expo app","repository":{"type":"git","url":"git+https://github.com/bangkeut-technology/supportdock-sdk-js.git"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"keywords":["supportdock","feedback","faq","react-native","expo","sdk"],"license":"MIT","publishConfig":{"access":"public"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"devDependencies":{"@types/react":"^19.0.0","typescript":"^5.0.0"},"gitHead":"08c11a59a3dbca4253d79863e81ec793f5039f6e","_id":"@bangkeut-technology/supportdock-sdk@0.5.0","bugs":{"url":"https://github.com/bangkeut-technology/supportdock-sdk-js/issues"},"homepage":"https://github.com/bangkeut-technology/supportdock-sdk-js#readme","_nodeVersion":"26.3.1","_npmVersion":"11.17.0","dist":{"integrity":"sha512-gOjmqzy9aSR/ArJrXzXR7I7M7hsfXoT77AD2sIGLzgmcf6SuzVRJtEI24eOjVG4bFMcAzt4ErKzjEu1fOPATiw==","shasum":"15bfa8d5b837f3f71a62bf2aeffdfdcf251c656e","tarball":"https://registry.npmjs.org/@bangkeut-technology/supportdock-sdk/-/supportdock-sdk-0.5.0.tgz","fileCount":11,"unpackedSize":18419,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAGSdTPgjY9c0BwcZoyPIsNY5fQOyegg3LqIyuF0oNruAiA2NxtBhXSGgLxW5rQwElvEl1HvEsVSX18Mqvr6kbUIsA=="}]},"_npmUser":{"name":"vandetho","email":"thovandeth@gmail.com"},"directories":{},"maintainers":[{"name":"vandetho","email":"thovandeth@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/supportdock-sdk_0.5.0_1782016427479_0.40743828149706096"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-03T04:37:19.132Z","modified":"2026-06-21T04:33:47.750Z","0.1.0":"2026-04-03T04:37:19.384Z","0.2.0":"2026-04-07T06:59:39.829Z","0.3.0":"2026-04-09T08:42:57.815Z","0.4.0":"2026-06-15T02:21:35.681Z","0.5.0":"2026-06-21T04:33:47.630Z"},"bugs":{"url":"https://github.com/bangkeut-technology/supportdock-sdk-js/issues"},"license":"MIT","homepage":"https://github.com/bangkeut-technology/supportdock-sdk-js#readme","keywords":["supportdock","feedback","faq","react-native","expo","sdk"],"repository":{"type":"git","url":"git+https://github.com/bangkeut-technology/supportdock-sdk-js.git"},"description":"SupportDock SDK — submit feedback and manage FAQs from your React Native / Expo app","maintainers":[{"name":"vandetho","email":"thovandeth@gmail.com"}],"readme":"# @bangkeut-technology/supportdock-sdk\n\nOfficial SDK for [SupportDock](https://supportdock.io) — submit feedback and manage FAQs from your React Native / Expo app.\n\n## Install\n\n```bash\nnpm install @bangkeut-technology/supportdock-sdk\n```\n\n## Quick Start\n\n```ts\nimport { SupportDockClient } from '@bangkeut-technology/supportdock-sdk';\n\nconst sdk = new SupportDockClient({\n    apiKey: 'sdk_your_api_key',\n});\n\n// Submit feedback\nawait sdk.sendFeedback({\n    type: 'bug',\n    message: 'App crashes when opening settings',\n    email: 'user@example.com',\n    metadata: { appVersion: '2.1.0', platform: 'ios' },\n});\n\n// List FAQs\nconst faqs = await sdk.listFAQs();\n```\n\n## React Hook (Expo / React Native)\n\n```tsx\nimport { useSupportDock } from '@bangkeut-technology/supportdock-sdk';\nimport { Platform } from 'react-native';\n\nfunction FeedbackScreen() {\n    const { sendFeedback, loading, error, success } = useSupportDock({\n        apiKey: 'sdk_your_api_key',\n        defaultMetadata: {\n            appVersion: '2.1.0',\n            platform: Platform.OS,\n        },\n    });\n\n    const handleSubmit = async () => {\n        await sendFeedback({\n            type: 'bug',\n            message: 'Something went wrong',\n            email: userEmail,\n        });\n    };\n\n    if (success) return <Text>Thanks for your feedback!</Text>;\n\n    return (\n        <View>\n            <Button onPress={handleSubmit} disabled={loading} title=\"Send Feedback\" />\n            {error && <Text style={{ color: 'red' }}>{error}</Text>}\n        </View>\n    );\n}\n```\n\n## API\n\n### `SupportDockClient`\n\n```ts\nconst sdk = new SupportDockClient({\n    apiKey: string;          // Required — your app's API key (starts with sdk_)\n    baseUrl?: string;        // Default: 'https://supportdock.io'\n    defaultMetadata?: Record<string, string>;  // Merged into every feedback submission\n    timeout?: number;        // Request timeout in ms (default: 10000)\n});\n```\n\n### Feedback\n\n```ts\n// Submit feedback\nawait sdk.sendFeedback({\n    type: 'bug' | 'feature' | 'question' | 'general',  // default: 'general'\n    message: string,         // required\n    email?: string,\n    name?: string,\n    subject?: string,        // auto-generated from type if omitted\n    metadata?: Record<string, string>,\n    source?: string,         // default: 'mobile-app'\n    images?: string[],       // up to 3 base64 data URLs (PNG/JPEG/WebP/GIF, each ≤ 2 MB)\n    videos?: string[],       // up to 2 base64 data URLs (MP4/WebM/QuickTime, each ≤ 10 MB)\n    attachments?: { name: string; data: string }[],  // up to 3 PDFs (each ≤ 5 MB)\n});\n```\n\n#### Attaching images\n\n```ts\n// Convert a local image to base64 (React Native example)\nimport * as FileSystem from 'expo-file-system';\n\nconst base64 = await FileSystem.readAsStringAsync(imageUri, {\n    encoding: FileSystem.EncodingType.Base64,\n});\n\nawait sdk.sendFeedback({\n    type: 'bug',\n    message: 'UI is broken on this screen',\n    images: [`data:image/png;base64,${base64}`],\n});\n```\n\n#### Attaching videos\n\n```ts\n// Convert a local video to base64 (React Native example)\nimport * as FileSystem from 'expo-file-system';\n\nconst base64 = await FileSystem.readAsStringAsync(videoUri, {\n    encoding: FileSystem.EncodingType.Base64,\n});\n\nawait sdk.sendFeedback({\n    type: 'bug',\n    message: 'Screen recording of the crash attached',\n    videos: [`data:video/mp4;base64,${base64}`],\n});\n```\n\n#### Attaching PDFs\n\n```ts\n// Convert a local PDF to base64 (React Native example)\nimport * as FileSystem from 'expo-file-system';\n\nconst base64 = await FileSystem.readAsStringAsync(pdfUri, {\n    encoding: FileSystem.EncodingType.Base64,\n});\n\nawait sdk.sendFeedback({\n    type: 'bug',\n    message: 'Steps to reproduce are in the attached report',\n    attachments: [{ name: 'report.pdf', data: `data:application/pdf;base64,${base64}` }],\n});\n```\n\n### FAQs\n\n```ts\n// List all FAQs\nconst faqs = await sdk.listFAQs();\n\n// Create FAQ\nconst faq = await sdk.createFAQ({ question: '...', answer: '...', sortOrder: 0 });\n\n// Update FAQ\nawait sdk.updateFAQ(faqId, { answer: 'Updated answer' });\n\n// Delete FAQ\nawait sdk.deleteFAQ(faqId);\n```\n\n### Error Handling\n\n```ts\nimport { SupportDockError } from '@bangkeut-technology/supportdock-sdk';\n\ntry {\n    await sdk.sendFeedback({ message: '...' });\n} catch (err) {\n    if (err instanceof SupportDockError) {\n        console.log(err.message); // Error message from API\n        console.log(err.status); // HTTP status code (401, 429, etc.)\n    }\n}\n```\n\n## Get Your API Key\n\n1. Go to your app dashboard on [supportdock.io](https://supportdock.io)\n2. Click **Generate API key**\n3. Copy the key (starts with `sdk_`)\n\nRequires a Pro plan.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}