{"_id":"@xhub-short/sdk","_rev":"33-8c02480cfd9a0ee6a495a90a67945a99","name":"@xhub-short/sdk","dist-tags":{"latest":"1.0.0-beta.27"},"versions":{"0.1.0-beta.0":{"name":"@xhub-short/sdk","version":"0.1.0-beta.0","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.0","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"4203865d379551a2fc98e83e2139dd99da0e3b18","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.0.tgz","fileCount":4,"integrity":"sha512-6pURRyUAbb2/lvXBMVubSPqA2KeqN14UWf6VfOx+qMOfJgjgok2HArXEbnqFWrgIu4i6w/2xjj7h2SQT9upKhQ==","signatures":[{"sig":"MEUCIQDy2yBgi/jYvGIvL+sux7uyQZbcaFhgneGjrT3vDl9xSwIgV6gQKufxAeI4xIrDOKYCKofWwr6fTtCuXx48guQ8ZmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137775},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/wl/8z01lb496wg__23x9jwgh4bh0000gn/T/9810837f48a08eee075047837d8002aa/xhub-short-sdk-0.1.0-beta.0.tgz","_integrity":"sha512-6pURRyUAbb2/lvXBMVubSPqA2KeqN14UWf6VfOx+qMOfJgjgok2HArXEbnqFWrgIu4i6w/2xjj7h2SQT9upKhQ==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"0.1.0-beta.0","@xhub-short/core":"0.1.0-beta.0","@use-gesture/react":"^10.3.0","@xhub-short/adapters":"0.1.0-beta.0","@xhub-short/contracts":"0.1.0-beta.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.0"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.0_1766976908613_0.4962916151972452","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.1":{"name":"@xhub-short/sdk","version":"0.1.0-beta.1","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.1","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"031a4ccad9fb2b626fe8fab005241d427f0abc2d","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.1.tgz","fileCount":4,"integrity":"sha512-WHcS/LuUZv0XmM+Bz8+WuxtfP9EALS0dpZAmnnEIy+GjxXd/fCAymv65ZKh1S65uIJnOcOAAbrMrWZIexsEVEg==","signatures":[{"sig":"MEUCID9pmwo2bgIwjupaLNGcOC/nifQVkZNtPqR9Ly2HgzK4AiEA+l/mn5KhHK+IFfQxJmp7WKGo+OpmOsfQjLEbfUs0aEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175151},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/wl/8z01lb496wg__23x9jwgh4bh0000gn/T/9282bce24a24b41a400afc0e1eb16213/xhub-short-sdk-0.1.0-beta.1.tgz","_integrity":"sha512-WHcS/LuUZv0XmM+Bz8+WuxtfP9EALS0dpZAmnnEIy+GjxXd/fCAymv65ZKh1S65uIJnOcOAAbrMrWZIexsEVEg==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"0.1.0-beta.1","@xhub-short/core":"0.1.0-beta.1","@use-gesture/react":"^10.3.0","@xhub-short/adapters":"0.1.0-beta.1","@xhub-short/contracts":"0.1.0-beta.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.1-beta.0"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.1_1767002934767_0.1002691510642979","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.2":{"name":"@xhub-short/sdk","version":"0.1.0-beta.2","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.2","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"45dd571775cc5bbd9de2679aa18b70d5b5d0c2aa","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.2.tgz","fileCount":4,"integrity":"sha512-27iY4QO5KRS7eqO0p0jtM07mEtwHpnGi+JUyR79tkbUDdv9sG+0Xj2ZcbJ3WMEqH+jFBqKeqbZ4W41ot1cC1nw==","signatures":[{"sig":"MEQCIHzPmCjzdyglt6DmwQNOW3obhZ+PhTRCysHfrhhIhA/5AiB9gnOiG7q0pjZmVIGHRf4wNDe4nPPcUuFe8f6geEA2aQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248405},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/wl/8z01lb496wg__23x9jwgh4bh0000gn/T/ccd7235fe52e5ba403046bd0443468af/xhub-short-sdk-0.1.0-beta.2.tgz","_integrity":"sha512-27iY4QO5KRS7eqO0p0jtM07mEtwHpnGi+JUyR79tkbUDdv9sG+0Xj2ZcbJ3WMEqH+jFBqKeqbZ4W41ot1cC1nw==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.2","@xhub-short/core":"0.1.0-beta.2","@xhub-short/adapters":"0.1.0-beta.2","@xhub-short/contracts":"0.1.0-beta.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.1-beta.1"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.2_1767669501975_0.200919458497278","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.3":{"name":"@xhub-short/sdk","version":"0.1.0-beta.3","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.3","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"e692fa5aae765bcb9de3e713e20b5a1dc181a772","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.3.tgz","fileCount":4,"integrity":"sha512-IAh6gvWCeWyVuKhtF2EGki6m4fXVbkiq6qPKCZkzuBgptLDzAnMfq46uXBnR6cuxeSp0bG2kxFV0oNHPmGxLGA==","signatures":[{"sig":"MEUCIQCZKxvDfQo2cO58qahXe/SWo2m8eaviPy3gk26q6ScPLgIgFX+a4QokA49aCBTrGAJ+vKM3+DU96qumZjyh7ySNCDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248694},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/1760fef9f7c91a6efc6d799783636c01/xhub-short-sdk-0.1.0-beta.3.tgz","_integrity":"sha512-IAh6gvWCeWyVuKhtF2EGki6m4fXVbkiq6qPKCZkzuBgptLDzAnMfq46uXBnR6cuxeSp0bG2kxFV0oNHPmGxLGA==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.3","@xhub-short/core":"0.1.0-beta.3","@xhub-short/adapters":"0.1.0-beta.3","@xhub-short/contracts":"0.1.0-beta.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.1-beta.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.3_1768185108645_0.33257673758327844","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.4":{"name":"@xhub-short/sdk","version":"0.1.0-beta.4","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.4","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"bf36892159611a89015073d5f2e9b8711a044b8a","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.4.tgz","fileCount":4,"integrity":"sha512-d6vwqd/SrMl0r0rrlr+r6d2q+knDsMrr0pqP7yAsJPgORSr/GxF1LZjLcs0QCkUvL3ASNHVii1j0tlqCr4tynw==","signatures":[{"sig":"MEUCIQDuDUtVOvF6zBhng6frjZCbDjkZ0pkG6O4o28m6SM+7GwIgY1qHf/Q3CQYEqPFI2vLu60J0dXCb7ZU7DbK6ctUH8Z4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259616},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/7b14cd2986ebbb55cd2e8a381e6ecf67/xhub-short-sdk-0.1.0-beta.4.tgz","_integrity":"sha512-d6vwqd/SrMl0r0rrlr+r6d2q+knDsMrr0pqP7yAsJPgORSr/GxF1LZjLcs0QCkUvL3ASNHVii1j0tlqCr4tynw==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.4","@xhub-short/core":"0.1.0-beta.4","@xhub-short/adapters":"0.1.0-beta.4","@xhub-short/contracts":"0.1.0-beta.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.1-beta.3"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.4_1768373224944_0.7231953441315004","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.5":{"name":"@xhub-short/sdk","version":"0.1.0-beta.5","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.5","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"eb608fe2d8967b4b53438b7aff18d6ac8293ea7d","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.5.tgz","fileCount":4,"integrity":"sha512-TkY2Aikm6GLbRS2Rn8O5muGtUQVIgYxnR9DEyUGOCdnSX4eb+LOjXTWA4BuODXcAoW8I0sx0ImPdbcseI321eg==","signatures":[{"sig":"MEUCIEiOL2fra2Lwdql3g98Ch5rPaweNUeBxtdTFAs47PLDXAiEAkFfDejra3ajADrdH/bWWflAN1vXMkRsFjH2rq3y1O/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261764},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/daedd7c00c0e3f02be06d8a09b3ded50/xhub-short-sdk-0.1.0-beta.5.tgz","_integrity":"sha512-TkY2Aikm6GLbRS2Rn8O5muGtUQVIgYxnR9DEyUGOCdnSX4eb+LOjXTWA4BuODXcAoW8I0sx0ImPdbcseI321eg==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.5","@xhub-short/core":"0.1.0-beta.5","@xhub-short/adapters":"0.1.0-beta.5","@xhub-short/contracts":"0.1.0-beta.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.1-beta.4"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.5"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.5_1768374909704_0.37209377120677467","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.6":{"name":"@xhub-short/sdk","version":"0.1.0-beta.6","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.6","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"a4e489b51a929907ad7a2dc27f9561600bdbf72d","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.6.tgz","fileCount":4,"integrity":"sha512-B0ieA+uPtPPfmiSV0JSuj2ie/id56RiUT/Rcjy61Uf2/YndPvNjno0B8UnppFCTyMboGIfiGxDfAGcFLAIcI6A==","signatures":[{"sig":"MEUCIFXo2QYTs9twVfGBHteHJXWcnwmM7FjCjZ/Ml46F/W65AiEAucNx80mVLaRHRNg5kWnwGIoqk1K49Jh570ztBWjjneA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261540},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/66e46b043260a42d371e68e65daae8dd/xhub-short-sdk-0.1.0-beta.6.tgz","_integrity":"sha512-B0ieA+uPtPPfmiSV0JSuj2ie/id56RiUT/Rcjy61Uf2/YndPvNjno0B8UnppFCTyMboGIfiGxDfAGcFLAIcI6A==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.6","@xhub-short/core":"0.1.0-beta.6","@xhub-short/adapters":"0.1.0-beta.6","@xhub-short/contracts":"0.1.0-beta.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.1-beta.5"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.6"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.6_1768963409463_0.9100811007755962","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.7":{"name":"@xhub-short/sdk","version":"0.1.0-beta.7","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.7","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"6809945e62a4d0228441ae01b4cfd94cfa9c89bd","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.7.tgz","fileCount":4,"integrity":"sha512-vZbiJaHMzWe1hfpzKgveSPrJ6eCWHHlZ5oMfBxtBwPlDgJqkPFS3r0mLwzP1T2iafw1vDFfVjFFPxUuVS2VXNQ==","signatures":[{"sig":"MEUCIHTLWjpO3w5bLrelCtKTOEECrrfMPuXE5zirCqkWu9//AiEAktZYPmixE3yNnPQtq/D5nnpZLINPFt6iS03YQvV2q8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261890},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/0f3ff907fd68443e172e486642b54828/xhub-short-sdk-0.1.0-beta.7.tgz","_integrity":"sha512-vZbiJaHMzWe1hfpzKgveSPrJ6eCWHHlZ5oMfBxtBwPlDgJqkPFS3r0mLwzP1T2iafw1vDFfVjFFPxUuVS2VXNQ==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.7","@xhub-short/core":"0.1.0-beta.7","@xhub-short/adapters":"0.1.0-beta.7","@xhub-short/contracts":"0.1.0-beta.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.1-beta.6"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.7"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.7_1768969723721_0.9416913025715019","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.8":{"name":"@xhub-short/sdk","version":"0.1.0-beta.8","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.8","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"23e3fca0a98cce31817093a3b3e0767b6c95ae73","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.8.tgz","fileCount":4,"integrity":"sha512-x4eU2iaT8Xwegu+jrZU65LS0/8HKQZbdBsHdKHstX7F003HGxzN+6ngTO/h7c9h5sQnYJOcBd7Nton+QGFjSSQ==","signatures":[{"sig":"MEYCIQDO27EaiAP4EXtzayvLm7d3j8wMm9UPCrcElrZEEbu9OAIhALThEeMFLMRkkXotFHM/WaaUJslQqC5s9zmRAvKY+OfD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261890},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.8.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/521910e2dcaa73c4225418538e0a94ff/xhub-short-sdk-0.1.0-beta.8.tgz","_integrity":"sha512-x4eU2iaT8Xwegu+jrZU65LS0/8HKQZbdBsHdKHstX7F003HGxzN+6ngTO/h7c9h5sQnYJOcBd7Nton+QGFjSSQ==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.8","@xhub-short/core":"0.1.0-beta.8","@xhub-short/adapters":"0.1.0-beta.8","@xhub-short/contracts":"0.1.0-beta.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.1-beta.7"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.8_1768971102847_0.8265453847104374","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.9":{"name":"@xhub-short/sdk","version":"0.1.0-beta.9","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.9","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"9b7bd5e6d406d28b63268fa07219f09fb7fff2d4","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.9.tgz","fileCount":4,"integrity":"sha512-F5LEDncuQy3GYRuCNnboumbh5qBmwtvCEjWCvSaT9/EsWg9vXQwKq271CsX2oWWpTzxmPhJ9wnw7Vfl9rvcY/g==","signatures":[{"sig":"MEUCIH1iGsRXNXZmRXMW6ByICoHpA5Bd4XEkNPz2fVDepLETAiEA4o6tzHCHF+TxTy/pcfFIUjMf+1AN/2dgKGl1goORUxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262781},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.9.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/2f46ae57b084961ca055971af0c6509c/xhub-short-sdk-0.1.0-beta.9.tgz","_integrity":"sha512-F5LEDncuQy3GYRuCNnboumbh5qBmwtvCEjWCvSaT9/EsWg9vXQwKq271CsX2oWWpTzxmPhJ9wnw7Vfl9rvcY/g==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.9","@xhub-short/core":"0.1.0-beta.9","@xhub-short/adapters":"0.1.0-beta.9","@xhub-short/contracts":"0.1.0-beta.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.1-beta.8"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.9"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.9_1769070308495_0.955028486536222","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.10":{"name":"@xhub-short/sdk","version":"0.1.0-beta.10","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.10","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"d20cf57053be48664be1fb0743cc41c31fa76302","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.10.tgz","fileCount":4,"integrity":"sha512-bWrvk4eQmYJYyR9U5Y5V/UEHPew45YY4vwzjz66/zXCPB8zNXmsZxn37Uwiyz3IE85yJ1jIAlm57UqlqfReUmQ==","signatures":[{"sig":"MEQCIDKIWOn8ai9Oq0aANgHm+GTfdr+qgmVEVE28DUjW8JamAiAPc269WzfKBE2RFjeX44VnRsBzqC4vBCtcpzn0dyCZrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267645},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.10.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/97e2bff95a9943384d3c181314380178/xhub-short-sdk-0.1.0-beta.10.tgz","_integrity":"sha512-bWrvk4eQmYJYyR9U5Y5V/UEHPew45YY4vwzjz66/zXCPB8zNXmsZxn37Uwiyz3IE85yJ1jIAlm57UqlqfReUmQ==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.10","@xhub-short/core":"0.1.0-beta.10","@xhub-short/adapters":"0.1.0-beta.10","@xhub-short/contracts":"0.1.0-beta.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.0.1-beta.9"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.0.1-beta.10"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.10_1769411397387_0.6425664154388573","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.11":{"name":"@xhub-short/sdk","version":"0.1.0-beta.11","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.11","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"e214b534653553bd271407b292595dcc8dc53826","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.11.tgz","fileCount":4,"integrity":"sha512-HIguRuytMiAV9OrAJ0Y9Vp7QbhpvQ6tjUicyuPVtHV4zOa3h3vR5AT6QqFyqpmCwovD9XfdhZCA5USRCJ95Omg==","signatures":[{"sig":"MEUCIFqqoqnIz64RmR/rhPDwGRYxe6XcA/wo0RJhEh3gLNzlAiEAzYz9WKRRyku9tw4ws+JOkIk7TUN1eTHqnpiZHlgs81E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353857},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.11.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/fd23ac6b073a06a4c8257e9be1112f5f/xhub-short-sdk-0.1.0-beta.11.tgz","_integrity":"sha512-HIguRuytMiAV9OrAJ0Y9Vp7QbhpvQ6tjUicyuPVtHV4zOa3h3vR5AT6QqFyqpmCwovD9XfdhZCA5USRCJ95Omg==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.11","@xhub-short/core":"0.1.0-beta.11","@xhub-short/adapters":"0.1.0-beta.11","@xhub-short/contracts":"0.1.0-beta.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.10"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.11"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.11_1769761576789_0.9980447100306551","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.12":{"name":"@xhub-short/sdk","version":"0.1.0-beta.12","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.12","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"00a1af74c15368fb19ab44900783810c6534c096","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.12.tgz","fileCount":4,"integrity":"sha512-cJEE5Z9aFgg4YgGgxiCNE1MfMYECr4fixBdqiP6KOpVrpkRY3zMxCfTzH8dywX52hEhrxcUtfqWTa9Tx4QX3Lg==","signatures":[{"sig":"MEQCIF5HvIegxhvj0ZguEt8M82HUSiJXvbWpqlFHXh79z6dpAiBjR/nlbDlO6JR8FyjE2ka8Qk4/cQef8wP0AcvHDFTPLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":386052},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.12.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/704d5f64d79395c61b37d1e711d35e77/xhub-short-sdk-0.1.0-beta.12.tgz","_integrity":"sha512-cJEE5Z9aFgg4YgGgxiCNE1MfMYECr4fixBdqiP6KOpVrpkRY3zMxCfTzH8dywX52hEhrxcUtfqWTa9Tx4QX3Lg==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.12","@xhub-short/core":"0.1.0-beta.12","@xhub-short/adapters":"0.1.0-beta.12","@xhub-short/contracts":"0.1.0-beta.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.11"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.12"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.12_1770760539939_0.315925646746386","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.13":{"name":"@xhub-short/sdk","version":"0.1.0-beta.13","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.13","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"12d1464484edcd1c36fc83f37840fc9f960d9de8","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.13.tgz","fileCount":4,"integrity":"sha512-6g5WPZ8uecriDvRTtjRNQJX/qvpQmDrpvX/wBlnidRKMAy4xhH63WNBRT4Dz2FUJBEgCRsFVXAnUsUxn+6cLng==","signatures":[{"sig":"MEUCIQCceqonohLC/nSSmRA2IvHzo63TQp2Ew/V+Xoz0inq3hAIgRX1A+j5XT5f07J8zcItpVHL+eXw+IEKZNHCwg+RXRrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":386380},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.13.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/a73c07b6c4a7ba59871c9969058c6c91/xhub-short-sdk-0.1.0-beta.13.tgz","_integrity":"sha512-6g5WPZ8uecriDvRTtjRNQJX/qvpQmDrpvX/wBlnidRKMAy4xhH63WNBRT4Dz2FUJBEgCRsFVXAnUsUxn+6cLng==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.13","@xhub-short/core":"0.1.0-beta.13","@xhub-short/adapters":"0.1.0-beta.13","@xhub-short/contracts":"0.1.0-beta.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.1","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.12"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.13"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.13_1770797813114_0.08690574506325865","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.14":{"name":"@xhub-short/sdk","version":"0.1.0-beta.14","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.14","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"732e7ff1b569b042fa01fcab092c3d313e0d44b8","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.14.tgz","fileCount":4,"integrity":"sha512-radwwAwgCJcn0lp12GJfPUDdXFy/HdHzmldhj/IMcgyNTUvby5nPbOwQM6FaFSaV8QXWYf3LUQ/7SKM/WqrBZA==","signatures":[{"sig":"MEUCIA/pxWiei+xvqzqzhMH7nMKE9LnXoSO+HMJqDWbp00g9AiEAl7WPfg1R8TMz2+pNtfXKyF0f3dlFZMpl1tw1q13udWI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":386048},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.14.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/043ce2c1c28e899fd565ba4aaaaa157e/xhub-short-sdk-0.1.0-beta.14.tgz","_integrity":"sha512-radwwAwgCJcn0lp12GJfPUDdXFy/HdHzmldhj/IMcgyNTUvby5nPbOwQM6FaFSaV8QXWYf3LUQ/7SKM/WqrBZA==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.14","@xhub-short/core":"0.1.0-beta.14","@xhub-short/adapters":"0.1.0-beta.14","@xhub-short/contracts":"0.1.0-beta.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.2","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.13"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.14"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.14_1770859414307_0.05570261985913194","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.15":{"name":"@xhub-short/sdk","version":"0.1.0-beta.15","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.15","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"807c090bbb7d071d5e6592f7f9b2788accb5b8d7","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.15.tgz","fileCount":4,"integrity":"sha512-inY2jm5ytLIwKnOFQ4mWtB2gzVM1sS6BD4UpdBj+aV6mhLejLjA/S6IrlTWtY82lNYPsqeTqixbWAc6KmSNwPg==","signatures":[{"sig":"MEYCIQC02DVG7Kp6bjzBWudxPn7YjbJOXUJjOZN+LjBIUQ/srAIhAIvuLHZtmJtzaMH7uLkJPy5dFHOcQho12skkgBL6Dyfj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":386048},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.15.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/cl/7tz367lx09ld_rb_kr6pbm6m0000gn/T/c29a2c390d75b68e100ca6fa1f6c879f/xhub-short-sdk-0.1.0-beta.15.tgz","_integrity":"sha512-inY2jm5ytLIwKnOFQ4mWtB2gzVM1sS6BD4UpdBj+aV6mhLejLjA/S6IrlTWtY82lNYPsqeTqixbWAc6KmSNwPg==","_npmVersion":"11.6.2","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.15","@xhub-short/core":"0.1.0-beta.14","@xhub-short/adapters":"0.1.0-beta.14","@xhub-short/contracts":"0.1.0-beta.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.2","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.13"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.14"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.15_1770860412179_0.37060139014740967","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.16":{"name":"@xhub-short/sdk","version":"0.1.0-beta.16","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.16","maintainers":[{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"4b989430376562f41264a381169a908bf7376818","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.16.tgz","fileCount":4,"integrity":"sha512-Ii7tLYNNh2fKYGEp66o1GObsKWzvqtXc9qc74IQabJAUIdeHqdkxYxxgQSUFjq+N+jYrydscjOJPLtg16H7IFQ==","signatures":[{"sig":"MEUCIQC0IYzN7+TBwXdgF5WN8fKnnkOaieXemVGt4hH5f5utAQIgBuWtxNAEFHuo4gmEj7KUuKNvT/PnFd/jEnENYSd+OHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389249},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.16.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/8r/61z659jd16x1_q8g9fqb5hz00000gn/T/9e7dd50dd579c94099bb5c0b393d4d55/xhub-short-sdk-0.1.0-beta.16.tgz","_integrity":"sha512-Ii7tLYNNh2fKYGEp66o1GObsKWzvqtXc9qc74IQabJAUIdeHqdkxYxxgQSUFjq+N+jYrydscjOJPLtg16H7IFQ==","_npmVersion":"11.8.0","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"24.13.1","dependencies":{"@xhub-short/ui":"0.1.0-beta.16","@xhub-short/core":"0.1.0-beta.16","@xhub-short/adapters":"0.1.0-beta.16","@xhub-short/contracts":"0.1.0-beta.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.2","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.13"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.15"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.16_1771000949933_0.9304755264469042","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.20":{"name":"@xhub-short/sdk","version":"0.1.0-beta.20","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.20","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"2536e2c4d9cda2f2ae92209612a2cf004adae2ef","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.20.tgz","fileCount":4,"integrity":"sha512-DebwcyVZdfXn1uqVM9q0sLQfKsM1XEmiAwq1VQKP1vCSHtKzZrWuWkfDK2b5LN0w21phVfFpSxtwqR11KlmCfw==","signatures":[{"sig":"MEUCIQD59MbnWtGQxa3zOv/Nrw6oRrAcdytRLGVm+PO7wgiI/QIgcdjuQ2aZWQaYv59A4T28U2rRCuKjA5gmf//As0LZXh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389084},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.20.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tekpack","email":"resource@teknixcorp.com"},"_resolved":"/private/var/folders/17/t7h7l_kd7gv9rgzgxj_1h72c0000gn/T/e5c2bfe5b3d6bb69d95dd5929b70a954/xhub-short-sdk-0.1.0-beta.20.tgz","_integrity":"sha512-DebwcyVZdfXn1uqVM9q0sLQfKsM1XEmiAwq1VQKP1vCSHtKzZrWuWkfDK2b5LN0w21phVfFpSxtwqR11KlmCfw==","_npmVersion":"11.11.0","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"0.1.0-beta.20","@xhub-short/core":"0.1.0-beta.20","@xhub-short/adapters":"0.1.0-beta.20","@xhub-short/contracts":"0.1.0-beta.20"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.2","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.13"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.19"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.20_1772706105054_0.6945795806439621","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.21":{"name":"@xhub-short/sdk","version":"1.0.0-beta.21","license":"MIT","_id":"@xhub-short/sdk@1.0.0-beta.21","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"398c995e5e83cffa641cd253a0a4ea6a1a00f06a","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-1.0.0-beta.21.tgz","fileCount":4,"integrity":"sha512-pL55otRuECXdYU8OryhFS6wt01s5Ds3R5OCfWNk0AutwN3IBfqHZz4qBWpJ7GjY2tHgFXFqMr1op6S8oNGy4qg==","signatures":[{"sig":"MEQCIHK4xRPBRYDhUI+8cS/4lKGAhfZjhC/Ob+MXumTkUeUjAiAsPLnLc6lEBWeEIT650SgtAC36AdqBy2Eu7tEYJmqwWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389084},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-1.0.0-beta.21.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tekpack","email":"resource@teknixcorp.com"},"_resolved":"/private/var/folders/17/t7h7l_kd7gv9rgzgxj_1h72c0000gn/T/75ea7c2d0f8077fd84a680a8de09545c/xhub-short-sdk-1.0.0-beta.21.tgz","_integrity":"sha512-pL55otRuECXdYU8OryhFS6wt01s5Ds3R5OCfWNk0AutwN3IBfqHZz4qBWpJ7GjY2tHgFXFqMr1op6S8oNGy4qg==","_npmVersion":"11.11.0","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"1.0.0-beta.21","@xhub-short/core":"1.0.0-beta.21","@xhub-short/adapters":"1.0.0-beta.21","@xhub-short/contracts":"1.0.0-beta.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.2","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.13"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.20"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0-beta.21_1772706848800_0.028676598215934934","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.22":{"name":"@xhub-short/sdk","version":"1.0.0-beta.22","license":"MIT","_id":"@xhub-short/sdk@1.0.0-beta.22","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"66bd00ccb418c93bb1143b886be6a2042435964e","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-1.0.0-beta.22.tgz","fileCount":4,"integrity":"sha512-WYLCSQc6KFHPpvTWIx/ZhO2sMwuNLcxE/kPkyrmmTQOeHvjaNfSgxYI/V7CTylmlxF4KxAbh2YHIFykqtSUZzA==","signatures":[{"sig":"MEUCIHvzZx5dnb9QxkCSfaC8JjCqX/ZLTU8zmSANnke7yZphAiEAgTXMo5HD9db4+nrf2FHl57F+VW3JDiydDrfRJWVzYp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":390353},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-1.0.0-beta.22.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tekpack","email":"resource@teknixcorp.com"},"_resolved":"/private/var/folders/17/t7h7l_kd7gv9rgzgxj_1h72c0000gn/T/fa3ff612a1f89095816017f3f7ae1e42/xhub-short-sdk-1.0.0-beta.22.tgz","_integrity":"sha512-WYLCSQc6KFHPpvTWIx/ZhO2sMwuNLcxE/kPkyrmmTQOeHvjaNfSgxYI/V7CTylmlxF4KxAbh2YHIFykqtSUZzA==","_npmVersion":"11.11.0","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"1.0.0-beta.22","@xhub-short/core":"1.0.0-beta.22","@xhub-short/adapters":"1.0.0-beta.22","@xhub-short/contracts":"1.0.0-beta.22"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.1.0-beta.3","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.14"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.21"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0-beta.22_1772762837941_0.32252651906829266","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.23":{"name":"@xhub-short/sdk","version":"1.0.0-beta.23","license":"MIT","_id":"@xhub-short/sdk@1.0.0-beta.23","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"8a39bda122187f00f21ba24d1cde7bcedb1b5a94","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-1.0.0-beta.23.tgz","fileCount":4,"integrity":"sha512-GNDAnAOA4rpchehQQx36zmj0gqWZFtdz1KH85jvta99e4NSYF/PkKVnCbw8iYCitpuTnzyxPAL4aCjaLhHwQwQ==","signatures":[{"sig":"MEQCIHSE6u3PdCy/VQJWlFJ32p5UcN5XXjKBuXQfk9DiZT11AiBRACLXFT0nhpDzJXsRx//sRP56Dx8pxo9yYqEHtvgHTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":391549},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-1.0.0-beta.23.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tekpack","email":"resource@teknixcorp.com"},"_resolved":"/private/var/folders/17/t7h7l_kd7gv9rgzgxj_1h72c0000gn/T/b8564fc7b5fb6d4030c11bacf5c27050/xhub-short-sdk-1.0.0-beta.23.tgz","_integrity":"sha512-GNDAnAOA4rpchehQQx36zmj0gqWZFtdz1KH85jvta99e4NSYF/PkKVnCbw8iYCitpuTnzyxPAL4aCjaLhHwQwQ==","_npmVersion":"11.11.0","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"1.0.0-beta.23","@xhub-short/core":"1.0.0-beta.23","@xhub-short/adapters":"1.0.0-beta.23","@xhub-short/contracts":"1.0.0-beta.23"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.1.0-beta.3","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.14"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.22"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0-beta.23_1772766256445_0.8242293775016469","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.24":{"name":"@xhub-short/sdk","version":"1.0.0-beta.24","license":"MIT","_id":"@xhub-short/sdk@1.0.0-beta.24","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"94d22e6a874c87b3cfaddcc7d096a14e1ef8d5c1","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-1.0.0-beta.24.tgz","fileCount":4,"integrity":"sha512-6I5OL9T06JwMF0CnZWffnAi2FRfhxRykAoK+CSQ8lRB1+oprKRWJh3dS+kuiGIsHeVEfiIJ3gedOLCEhzwcTMw==","signatures":[{"sig":"MEYCIQC4OUi60ExecuLzPEWwDT4YVBgg0ZH2yBBxuMIGYjnuQwIhAPHYfYnmty5GNgf/z8Am5YoEsg0xAW0/fT1Ga3jPbNoB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":391549},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-1.0.0-beta.24.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tekpack","email":"resource@teknixcorp.com"},"_resolved":"/private/var/folders/17/t7h7l_kd7gv9rgzgxj_1h72c0000gn/T/b18b0d50416d0a354bd6311cbffcac0a/xhub-short-sdk-1.0.0-beta.24.tgz","_integrity":"sha512-6I5OL9T06JwMF0CnZWffnAi2FRfhxRykAoK+CSQ8lRB1+oprKRWJh3dS+kuiGIsHeVEfiIJ3gedOLCEhzwcTMw==","_npmVersion":"11.11.0","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"1.0.0-beta.24","@xhub-short/core":"1.0.0-beta.24","@xhub-short/adapters":"1.0.0-beta.24","@xhub-short/contracts":"1.0.0-beta.24"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.1.0-beta.3","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.14"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.23"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0-beta.24_1772766971855_0.6614013805173229","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.25":{"name":"@xhub-short/sdk","version":"1.0.0-beta.25","license":"MIT","_id":"@xhub-short/sdk@1.0.0-beta.25","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"a3f18f5662d67a3f9cdd7fa5ffa54d9f580935b9","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-1.0.0-beta.25.tgz","fileCount":4,"integrity":"sha512-40nqa0Ms4j7MKyyBNQO6KXQtq3TUigl5htu5VM7sGMaobkBA5M4YAsgETP+FBIolXCe8FEeCwX1FEODtaxhsVw==","signatures":[{"sig":"MEQCIA1zUuiKjtyccmQ68Z/euHLD7JKFoKWIqmQ1QhBBAG4dAiBdorgIL6GZTzKdCmrdjzA8i5zQtUuitF9mT+X+UqMApw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389084},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-1.0.0-beta.25.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tekpack","email":"resource@teknixcorp.com"},"_resolved":"/private/var/folders/17/t7h7l_kd7gv9rgzgxj_1h72c0000gn/T/6de41c690d225d110ea72ef048e1ed54/xhub-short-sdk-1.0.0-beta.25.tgz","_integrity":"sha512-40nqa0Ms4j7MKyyBNQO6KXQtq3TUigl5htu5VM7sGMaobkBA5M4YAsgETP+FBIolXCe8FEeCwX1FEODtaxhsVw==","_npmVersion":"11.11.0","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"1.0.0-beta.25","@xhub-short/core":"1.0.0-beta.25","@xhub-short/adapters":"1.0.0-beta.25","@xhub-short/contracts":"1.0.0-beta.25"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.1.0-beta.3","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.14"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.24"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0-beta.25_1772785231788_0.8330240647809541","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.17":{"name":"@xhub-short/sdk","version":"0.1.0-beta.17","license":"MIT","_id":"@xhub-short/sdk@0.1.0-beta.17","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"f9d27ea8b0fc29613edc3aeef1a11684d7fc6b8f","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-0.1.0-beta.17.tgz","fileCount":4,"integrity":"sha512-c+Nrm6vF/YU7VXP+d0xkxWasSfLEmcPtZ2QrW5APQRhb5SM/IP4w5wJHRLyDh+yvh9KMiESFC/Jz5SRjWncymA==","signatures":[{"sig":"MEUCIBcmn/RDB/IhlAxY3lEl5ekzbCSoW/Dzxgh+C3eEuy0iAiEA7Q9ouN6XBibm6bfsP1cXLfOEodcHZLlOA+Ic8wbofw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389084},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-0.1.0-beta.17.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tekpack","email":"resource@teknixcorp.com"},"_resolved":"/private/var/folders/17/t7h7l_kd7gv9rgzgxj_1h72c0000gn/T/3a790eed1ba6ec8717b5863973543087/xhub-short-sdk-0.1.0-beta.17.tgz","_integrity":"sha512-c+Nrm6vF/YU7VXP+d0xkxWasSfLEmcPtZ2QrW5APQRhb5SM/IP4w5wJHRLyDh+yvh9KMiESFC/Jz5SRjWncymA==","_npmVersion":"11.11.0","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"0.1.0-beta.17","@xhub-short/core":"0.1.0-beta.17","@xhub-short/adapters":"0.1.0-beta.17","@xhub-short/contracts":"0.1.0-beta.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.2","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.13"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.16"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0-beta.17_1772789798286_0.5842230611522954","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.18":{"name":"@xhub-short/sdk","version":"1.0.0-beta.18","license":"MIT","_id":"@xhub-short/sdk@1.0.0-beta.18","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"567988e1eb2e5db35ef31b2a570c0ca2fd67510b","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-1.0.0-beta.18.tgz","fileCount":4,"integrity":"sha512-9zrDPrQFRzLodQA1FHTEeaex1H14x/hhGgKJ7cIcEbjlrbNVg6Rmk/fhxx/B4sQfaqR65fBdZ/IOb/vCjtJNNw==","signatures":[{"sig":"MEQCIH1GoWeUclscsF4QXyu3VO5P5M8olm4XsqR22Nd0AoZpAiBreNe8HxRGU7Ab+fYbJXn0lbO2gI0K6R+dumaPL9N/Dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389227},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-1.0.0-beta.18.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/8r/61z659jd16x1_q8g9fqb5hz00000gn/T/71d75e038f209e262fd38994acc1edaa/xhub-short-sdk-1.0.0-beta.18.tgz","_integrity":"sha512-9zrDPrQFRzLodQA1FHTEeaex1H14x/hhGgKJ7cIcEbjlrbNVg6Rmk/fhxx/B4sQfaqR65fBdZ/IOb/vCjtJNNw==","_npmVersion":"11.11.1","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.8.2","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"1.0.0-beta.18","@xhub-short/core":"1.0.0-beta.18","@xhub-short/adapters":"1.0.0-beta.18","@xhub-short/contracts":"1.0.0-beta.18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.2","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.13"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.17"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0-beta.18_1775122301523_0.5009577497983375","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.19":{"name":"@xhub-short/sdk","version":"1.0.0-beta.19","license":"MIT","_id":"@xhub-short/sdk@1.0.0-beta.19","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"338d3733e4b2b894ab075dffc63dca01c4f9d2c2","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-1.0.0-beta.19.tgz","fileCount":4,"integrity":"sha512-FJaOZP4OZAShB6J/e5t4U6wfeKjSW8jxyCxPHhskixfhOehBbU3kjMu+/usjUc8islfM11cTdP/R5yAs7nirRg==","signatures":[{"sig":"MEYCIQC7DcW/1tNhwJpOAKH4kREhzGM5ey0qTjxxTCe8CWIXZgIhAMptbsD5y6z8zvC6nh+C3IWS6SOYg3P4djJEqZUeEihq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":390682},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-1.0.0-beta.19.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/8r/61z659jd16x1_q8g9fqb5hz00000gn/T/132c87ad90334e30b7f27b037aa8339c/xhub-short-sdk-1.0.0-beta.19.tgz","_integrity":"sha512-FJaOZP4OZAShB6J/e5t4U6wfeKjSW8jxyCxPHhskixfhOehBbU3kjMu+/usjUc8islfM11cTdP/R5yAs7nirRg==","_npmVersion":"11.11.1","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.8.2","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"1.0.0-beta.19","@xhub-short/core":"1.0.0-beta.19","@xhub-short/adapters":"1.0.0-beta.19","@xhub-short/contracts":"1.0.0-beta.19"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.2","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.13"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0-beta.19_1775125767947_0.2475775410585772","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.20":{"name":"@xhub-short/sdk","version":"1.0.0-beta.20","license":"MIT","_id":"@xhub-short/sdk@1.0.0-beta.20","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"26fac3ffb6dd233fa0e6b039e23f0a11fbb903b0","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-1.0.0-beta.20.tgz","fileCount":4,"integrity":"sha512-nwHArfsYVW9Q+NyaVtMGXr6TAUBfZ8bptOUCv9RR23aeqhmKxtX7yqaqt9YEwCPHTCJxt2pLQzqGstW6kmXM/w==","signatures":[{"sig":"MEQCIACer8l0Ahv9rdgGYzDrwYHjtxB9Nh6Tiw/6w0tPLxX8AiBCnsomQZ0D2YWYuQ/nC5zxdUJX6CLWBiNloARCb6PQlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":390682},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-1.0.0-beta.20.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/8r/61z659jd16x1_q8g9fqb5hz00000gn/T/63f6d71255dc2a6867bcd3f9da9e9a18/xhub-short-sdk-1.0.0-beta.20.tgz","_integrity":"sha512-nwHArfsYVW9Q+NyaVtMGXr6TAUBfZ8bptOUCv9RR23aeqhmKxtX7yqaqt9YEwCPHTCJxt2pLQzqGstW6kmXM/w==","_npmVersion":"11.11.1","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.8.2","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"1.0.0-beta.20","@xhub-short/core":"1.0.0-beta.20","@xhub-short/adapters":"1.0.0-beta.20","@xhub-short/contracts":"1.0.0-beta.20"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.2","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.13"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.19"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0-beta.20_1775148850095_0.7358573340905399","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.26":{"name":"@xhub-short/sdk","version":"1.0.0-beta.26","license":"MIT","_id":"@xhub-short/sdk@1.0.0-beta.26","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"dist":{"shasum":"14f0f85c81a4055f675c85453cbdb053dcd5dfcf","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-1.0.0-beta.26.tgz","fileCount":4,"integrity":"sha512-2pXZSZEaTudLq/Tz14IqxllLKocrWQDhkwubqcPsofsiPzbLfEtcWFEB16h33atLphs/TqWkt4zf6+Wl7xI6ZA==","signatures":[{"sig":"MEYCIQDc9pN2ZpTZMSuCb79jTcd18zxCYpAZozQCkxeJQ+aH6AIhAPQAMzdWy9pRp752DW6MBclizO7waNCfiDvlOt1sbzI3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":390682},"main":"./dist/index.js","type":"module","_from":"file:xhub-short-sdk-1.0.0-beta.26.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"_resolved":"/private/var/folders/8r/61z659jd16x1_q8g9fqb5hz00000gn/T/ad8c694b814d66b3ddbdda97dc8c0fcd/xhub-short-sdk-1.0.0-beta.26.tgz","_integrity":"sha512-2pXZSZEaTudLq/Tz14IqxllLKocrWQDhkwubqcPsofsiPzbLfEtcWFEB16h33atLphs/TqWkt4zf6+Wl7xI6ZA==","_npmVersion":"11.11.1","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","directories":{},"sideEffects":false,"_nodeVersion":"25.8.2","dependencies":{"zustand":"^5.0.0","@xhub-short/ui":"1.0.0-beta.26","@xhub-short/core":"1.0.0-beta.26","@xhub-short/adapters":"1.0.0-beta.26","@xhub-short/contracts":"1.0.0-beta.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@xhub-short/tsconfig":"0.0.1-beta.2","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.6.0","@xhub-short/vitest-config":"0.1.0-beta.13"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.25"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0-beta.26_1775446449290_0.19030905500857487","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.27":{"name":"@xhub-short/sdk","sideEffects":false,"version":"1.0.0-beta.27","type":"module","publishConfig":{"access":"public"},"description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","license":"MIT","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"main":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"zustand":"^5.0.0","@xhub-short/adapters":"1.0.0-beta.27","@xhub-short/contracts":"1.0.0-beta.27","@xhub-short/core":"1.0.0-beta.27","@xhub-short/ui":"1.0.0-beta.27"},"optionalDependencies":{"@xhub-short/bridge":"0.1.0-beta.26"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"devDependencies":{"@testing-library/jest-dom":"^6.6.0","@testing-library/react":"^16.0.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","react":"^19.0.0","react-dom":"^19.0.0","tsup":"^8.3.0","typescript":"^5.7.0","vitest":"^2.1.0","@xhub-short/vitest-config":"0.1.0-beta.13","@xhub-short/tsconfig":"0.0.1-beta.2"},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","clean":"rm -rf dist coverage"},"_id":"@xhub-short/sdk@1.0.0-beta.27","_integrity":"sha512-EyYlDhCT0lEgdXJUcutdSg5t8gM5rqJ6LWvionLTTx06rcBmfgSpVhIPar59L3ecrZvhftJO7/vnybMsKIVN1g==","_resolved":"/private/var/folders/8r/61z659jd16x1_q8g9fqb5hz00000gn/T/bd484a43d116bd232172a5471e693c10/xhub-short-sdk-1.0.0-beta.27.tgz","_from":"file:xhub-short-sdk-1.0.0-beta.27.tgz","_nodeVersion":"25.8.2","_npmVersion":"11.11.1","dist":{"integrity":"sha512-EyYlDhCT0lEgdXJUcutdSg5t8gM5rqJ6LWvionLTTx06rcBmfgSpVhIPar59L3ecrZvhftJO7/vnybMsKIVN1g==","shasum":"2f2ef74f2fab2d64a08aa77b5ba819464ebddf45","tarball":"https://registry.npmjs.org/@xhub-short/sdk/-/sdk-1.0.0-beta.27.tgz","fileCount":4,"unpackedSize":391805,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDaorNzqSOXMIGTRbvAcAk18Nzdv8/qTv0Ti0BdY8pPdAIhAPwB6Q/S5Kg6RwE1B3JVuQ823ktD5sHPcZANeULJZNTY"}]},"_npmUser":{"name":"loctx581","email":"loct.se581@gmail.com"},"directories":{},"maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_1.0.0-beta.27_1775533494251_0.9134487867651082"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-29T02:55:08.515Z","modified":"2026-04-07T03:44:54.611Z","0.1.0-beta.0":"2025-12-29T02:55:08.769Z","0.1.0-beta.1":"2025-12-29T10:08:54.931Z","0.1.0-beta.2":"2026-01-06T03:18:22.135Z","0.1.0-beta.3":"2026-01-12T02:31:48.827Z","0.1.0-beta.4":"2026-01-14T06:47:05.125Z","0.1.0-beta.5":"2026-01-14T07:15:09.848Z","0.1.0-beta.6":"2026-01-21T02:43:29.613Z","0.1.0-beta.7":"2026-01-21T04:28:43.995Z","0.1.0-beta.8":"2026-01-21T04:51:43.009Z","0.1.0-beta.9":"2026-01-22T08:25:08.645Z","0.1.0-beta.10":"2026-01-26T07:09:57.537Z","0.1.0-beta.11":"2026-01-30T08:26:16.928Z","0.1.0-beta.12":"2026-02-10T21:55:40.096Z","0.1.0-beta.13":"2026-02-11T08:16:53.412Z","0.1.0-beta.14":"2026-02-12T01:23:34.471Z","0.1.0-beta.15":"2026-02-12T01:40:12.401Z","0.1.0-beta.16":"2026-02-13T16:42:30.106Z","0.1.0-beta.20":"2026-03-05T10:21:45.239Z","1.0.0-beta.21":"2026-03-05T10:34:08.971Z","1.0.0-beta.22":"2026-03-06T02:07:18.135Z","1.0.0-beta.23":"2026-03-06T03:04:16.688Z","1.0.0-beta.24":"2026-03-06T03:16:12.019Z","1.0.0-beta.25":"2026-03-06T08:20:31.960Z","0.1.0-beta.17":"2026-03-06T09:36:38.438Z","1.0.0-beta.18":"2026-04-02T09:31:41.733Z","1.0.0-beta.19":"2026-04-02T10:29:28.115Z","1.0.0-beta.20":"2026-04-02T16:54:10.250Z","1.0.0-beta.26":"2026-04-06T03:34:09.484Z","1.0.0-beta.27":"2026-04-07T03:44:54.412Z"},"license":"MIT","description":"Main entry point for XHub-short SDK - Short Video Feed for WebView","maintainers":[{"name":"tekpack","email":"resource@teknixcorp.com"},{"name":"louis1910","email":"vtduy1910@gmail.com"},{"name":"loctx581","email":"loct.se581@gmail.com"}],"readme":"# @xhub-short/sdk\n\n> **Glue Layer** - Kết nối Core Domain với React UI\n\n## 📖 SDK là gì?\n\n**SDK (Software Development Kit)** là package chính mà Host App cài đặt để tích hợp Short Video Feed. Nó đóng vai trò **\"Glue Layer\"** - kết nối tất cả các thành phần bên trong SDK thành một API thống nhất, dễ sử dụng.\n\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│                         HOST APP (Your App)                          │\n│                                                                      │\n│   import { ShortVideoProvider, useFeed, usePlayer } from '@xhub-short/sdk';\n│   import { VideoFeed, VideoPlayer } from '@xhub-short/ui';          │\n│                                                                      │\n└──────────────────────────────┬──────────────────────────────────────┘\n                               │ uses\n                               ▼\n┌─────────────────────────────────────────────────────────────────────┐\n│                         @xhub-short/ui                               │\n│                    (Lego Components - Phase 4)                       │\n│                                                                      │\n│   VideoFeed, VideoPlayer, InteractionBar, CommentSheet...           │\n│                                                                      │\n└──────────────────────────────┬──────────────────────────────────────┘\n                               │ imports hooks from\n                               ▼\n┌─────────────────────────────────────────────────────────────────────┐\n│                         @xhub-short/sdk                              │\n│                       (Glue Layer - Current)                         │\n│                                                                      │\n│   ┌─────────────┐   ┌─────────────┐   ┌─────────────────────────┐  │\n│   │  Provider   │   │   Hooks     │   │    Factory (createSDK)  │  │\n│   │  (Context)  │   │  (React)    │   │    (Dependency Inject)  │  │\n│   └─────────────┘   └─────────────┘   └─────────────────────────┘  │\n│                                                                      │\n└──────────────────────────────┬──────────────────────────────────────┘\n                               │ orchestrates\n          ┌────────────────────┴────────────────────┐\n          ▼                                         ▼\n   ┌─────────────┐                           ┌─────────────┐\n   │   @core     │                           │  @adapters  │\n   │ (Domain)    │                           │ (Infra)     │\n   └─────────────┘                           └─────────────┘\n```\n\n> **Lưu ý:** `@sdk` **KHÔNG** import từ `@ui`. Mũi tên chỉ hướng dependency (ai import ai).\n\n---\n\n## 🎯 Tại sao cần SDK?\n\n| Vấn đề | Giải pháp của SDK |\n|--------|-------------------|\n| Host App phải hiểu kiến trúc phức tạp bên trong | SDK expose API đơn giản: hooks + provider |\n| Khó setup dependency injection cho adapters | `createSDK()` tự động wire tất cả |\n| State management phức tạp (Feed, Player, Resource...) | Hooks abstract hết complexity |\n| SSR compatibility | `useSyncExternalStore` built-in |\n| Memory leaks khi unmount | `sdk.destroy()` cleanup tự động |\n\n---\n\n## 📋 Nhiệm vụ chi tiết của SDK\n\nSDK thực hiện **7 nhiệm vụ chính** để Host App có thể tích hợp dễ dàng:\n\n### 1. Dependency Injection & Wiring\n\nSDK là nơi **duy nhất** thực hiện dependency injection - kết nối các adapters với core managers:\n\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│                    DEPENDENCY INJECTION MAP                          │\n├─────────────────────────────────────────────────────────────────────┤\n│                                                                      │\n│   Adapter Interface          ───►    Core Component                 │\n│   ─────────────────                  ──────────────                 │\n│   IDataSource                ───►    FeedManager                    │\n│   IInteraction               ───►    OptimisticManager              │\n│   ISessionStorage            ───►    LifecycleManager               │\n│   INetworkAdapter            ───►    ResourceGovernor               │\n│   IVideoLoader + IPosterLoader ───►  ResourceGovernor               │\n│   IAnalytics                 ───►    PlayerEngine (events)          │\n│   ILogger                    ───►    All managers (debug)           │\n│                                                                      │\n└─────────────────────────────────────────────────────────────────────┘\n```\n\n### 2. Adapter Resolution\n\nSDK tự động resolve adapters theo thứ tự ưu tiên:\n\n```\nConfig Priority:\n┌──────────────────────────────────────────────────────────────┐\n│                                                               │\n│   1. config.adapters.dataSource    ◄── Highest (User-defined)│\n│              │                                                │\n│              ▼ fallback                                       │\n│   2. config.preset → createBrowserAdapters()                 │\n│              │                                                │\n│              ▼ fallback                                       │\n│   3. MockAdapter                   ◄── Lowest (Development)  │\n│                                                               │\n└──────────────────────────────────────────────────────────────┘\n```\n\nĐiều này cho phép:\n- **Development**: Không cần config → Mock adapters tự động\n- **Production với Preset**: Chỉ cần `baseUrl + auth + endpoints`\n- **Full Custom**: Override bất kỳ adapter nào\n\n### 3. State Synchronization (Core ↔ React)\n\nCore Domain sử dụng **vanilla stores** (không React). SDK bridge chúng sang React:\n\n```\n┌─────────────────┐         ┌─────────────────┐         ┌─────────────────┐\n│  Core Store     │         │     SDK Hook    │         │   React UI      │\n│  (Vanilla)      │   ───►  │ (useSyncExternal│   ───►  │  (Re-render)    │\n│                 │         │     Store)      │         │                 │\n└─────────────────┘         └─────────────────┘         └─────────────────┘\n     │                              │\n     │ store.subscribe()           │ getSnapshot()\n     │ store.setState()            │\n     ▼                              ▼\n  Framework-agnostic           SSR-safe subscription\n```\n\n**Tại sao không dùng Zustand trực tiếp trong Core?**\n- Core phải framework-agnostic (có thể dùng với Vue, Svelte...)\n- Giảm bundle size cho Core package\n- Tách biệt concerns rõ ràng\n\n### 4. Event Orchestration\n\nSDK wire các events giữa managers để chúng phối hợp:\n\n```\n┌──────────────────────────────────────────────────────────────────────┐\n│                        EVENT WIRING                                   │\n├──────────────────────────────────────────────────────────────────────┤\n│                                                                       │\n│   PlayerEngine                                                        │\n│       │                                                               │\n│       ├── on('videoChange') ──────► Analytics.flush()                │\n│       │                              (Flush trước khi đổi video)     │\n│       │                                                               │\n│       └── on('timeUpdate') ───────► LifecycleManager.setPendingSave()│\n│                                      (Auto-save playback position)   │\n│                                                                       │\n│   LifecycleManager                                                    │\n│       │                                                               │\n│       └── on('visibilityChange') ─► Analytics.flush()                │\n│           (state === 'hidden')       (Flush khi app background)      │\n│                                                                       │\n│   ResourceGovernor                                                    │\n│       │                                                               │\n│       └── on('focusChange') ──────► PlayerEngine.load(video)         │\n│                                      (Load video khi swipe)          │\n│                                                                       │\n└──────────────────────────────────────────────────────────────────────┘\n```\n\n### 5. Lifecycle Management\n\nSDK quản lý toàn bộ vòng đời của các managers:\n\n| Phase | SDK Actions |\n|-------|-------------|\n| **Init** | Tạo managers, inject adapters, wire events, restore session |\n| **Active** | Managers hoạt động độc lập, SDK chỉ expose hooks |\n| **Background** | Auto-save session, flush analytics |\n| **Destroy** | Cleanup timers, unsubscribe events, clear cache |\n\n```typescript\n// Tự động trong Provider:\nuseEffect(() => {\n  const sdk = createSDK(config);\n  return () => sdk.destroy(); // Cleanup khi unmount\n}, []);\n```\n\n### 6. Public API Surface\n\nSDK expose API đơn giản, ẩn đi complexity bên trong:\n\n| Exposed to Host App | Hidden from Host App |\n|---------------------|----------------------|\n| `useFeed()` - videos, loadMore | FeedManager internals |\n| `usePlayer()` - play, pause, seek | PlayerEngine state machine |\n| `useOptimistic()` - like, follow | Rollback queue, pending states |\n| `useSwipeGesture()` - onSwipe | DOM allocation logic |\n| Config với preset | Adapter creation |\n\n### 7. SSR Support\n\nSDK đảm bảo hoạt động với Server-Side Rendering:\n\n```\n┌──────────────────────────────────────────────────────────────┐\n│                      SSR STRATEGY                             │\n├──────────────────────────────────────────────────────────────┤\n│                                                               │\n│   Server:                                                     │\n│   ├─ ShortVideoProvider renders với empty state              │\n│   ├─ Hooks return initial/fallback values                    │\n│   └─ Không tạo SDK instance                                  │\n│                                                               │\n│   Client (Hydration):                                         │\n│   ├─ useEffect tạo SDK instance                              │\n│   ├─ Restore session từ localStorage                         │\n│   └─ useSyncExternalStore subscribe to stores                │\n│                                                               │\n└──────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## 🏗️ Kiến trúc\n\n### Vị trí trong hệ thống\n\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│                      HEXAGONAL ARCHITECTURE                          │\n├─────────────────────────────────────────────────────────────────────┤\n│                                                                      │\n│   ┌─────────────────────────────────────────────────────────────┐   │\n│   │                    @xhub-short/sdk                           │   │\n│   │                    ════════════════                          │   │\n│   │                                                              │   │\n│   │   ShortVideoProvider ──────┬──────── createSDK()            │   │\n│   │          │                 │              │                  │   │\n│   │          │          Dependency Injection  │                  │   │\n│   │          │                 │              │                  │   │\n│   │          ▼                 ▼              ▼                  │   │\n│   │   ┌──────────┐      ┌──────────┐   ┌──────────┐             │   │\n│   │   │  Hooks   │      │  Core    │   │ Adapters │             │   │\n│   │   │ (React)  │◀────▶│ Managers │◀──│ (Inject) │             │   │\n│   │   └──────────┘      └──────────┘   └──────────┘             │   │\n│   │                                                              │   │\n│   └─────────────────────────────────────────────────────────────┘   │\n│                                                                      │\n│   ┌──────────────┐  ┌──────────────┐  ┌──────────────────────────┐  │\n│   │ @contracts   │  │   @core      │  │      @adapters           │  │\n│   │ (Interfaces) │  │ (Domain)     │  │   (Infrastructure)       │  │\n│   └──────────────┘  └──────────────┘  └──────────────────────────┘  │\n│                                                                      │\n└─────────────────────────────────────────────────────────────────────┘\n```\n\n### Package Dependencies\n\n```\n@xhub-short/sdk\n├── @xhub-short/contracts  (types, interfaces)\n├── @xhub-short/core       (domain logic)\n├── @xhub-short/adapters   (mock + preset adapters)\n├── @xhub-short/ui         (headless components)\n├── react (peer dependency)\n└── zustand (peer dependency)\n```\n\n### Host App Installation\n\n```bash\nnpm install @xhub-short/sdk\n```\n\n**That's it!** No other dependencies needed.\n\n**Bundled internally:**\n- `zustand` - state management (bundled in @xhub-short/core)\n- `clsx` - class names utility (bundled in @xhub-short/ui)\n- Custom `useTouchDrag` hook - gesture handling (bundled in @xhub-short/sdk)\n\n---\n\n## ✨ Chức năng chính\n\n### 1. **Provider** - Context cho toàn bộ SDK\n\n```tsx\n<ShortVideoProvider config={{ preset: {...} }}>\n  <YourApp />\n</ShortVideoProvider>\n```\n\n### 2. **Hooks** - React API để truy cập SDK\n\n| Hook | Mục đích |\n|------|----------|\n| `useFeed()` | Video list, pagination, loading states |\n| `usePlayer()` | Playback control, time, volume, handlers |\n| `useResource()` | DOM allocations, prefetch queue |\n| `useOptimistic()` | Like/Follow với instant UI + rollback |\n| `useSwipeGesture()` | Vertical swipe navigation |\n\n### 3. **Wired Components** - Pre-connected UI Components\n\nSDK exports pre-wired versions of UI components with SDK hooks already injected:\n\n| Component | Description |\n|-----------|-------------|\n| `VideoFeed` | Wired VideoFeedHeadless with useFeed + useSwipeGesture |\n| `VideoSlot` | Wired VideoSlotHeadless with useResourceAllocation + usePlayer |\n| `VideoPlayer` | Wired VideoPlayerHeadless with usePlayer (auto-load, sync) |\n| `ProgressBar` | Wired progress bar with Direct DOM Update (60fps smooth) |\n\n#### VideoPlayer (Wired)\n\nPre-wired video player that auto-connects to SDK PlayerEngine.\n\n```tsx\nimport { VideoSlot, VideoPlayer } from '@xhub-short/sdk';\nimport { VideoSlotPoster, VideoSlotOverlay } from '@xhub-short/ui';\n\nfunction FeedItem({ video }) {\n  return (\n    <VideoSlot video={video}>\n      <VideoPlayer \n        resetOnInactive={true}  // TikTok-like: restart from beginning\n      />\n      <VideoSlotPoster />\n      <VideoSlotOverlay>...</VideoSlotOverlay>\n    </VideoSlot>\n  );\n}\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `video` | `VideoItem` | from context | Video to play (optional if inside VideoSlot) |\n| `autoLoad` | `boolean` | `true` | Auto-load video into PlayerEngine |\n| `autoPlay` | `boolean` | `true` | Auto-play when slot becomes active |\n| `resetOnInactive` | `boolean` | `true` | Reset video to 0:00 when slot becomes inactive |\n| `loop` | `boolean` | `true` | Loop video playback |\n| `muted` | `boolean` | `true` | Start muted (required for autoplay) |\n\n**`resetOnInactive` behavior:**\n- `true` (default): TikTok-like - swiping back restarts video from beginning\n- `false`: YouTube-like - video continues from where user left off\n\n#### ProgressBar (Wired) - P11 Re-render Optimization\n\nPre-wired progress bar that uses **Direct DOM Update** for 60fps smooth animation.\n\n```tsx\nimport { VideoSlot, VideoPlayer, ProgressBar } from '@xhub-short/sdk';\nimport { VideoSlotOverlay } from '@xhub-short/ui';\n\nfunction FeedItem({ video }) {\n  return (\n    <VideoSlot video={video}>\n      <VideoPlayer />\n      <VideoSlotOverlay>\n        <ProgressBar seekable={true} />  {/* 60fps smooth! */}\n      </VideoSlotOverlay>\n    </VideoSlot>\n  );\n}\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `seekable` | `boolean` | `true` | Enable click/drag to seek |\n| `showTime` | `boolean` | `false` | Show current/duration text |\n| `showTooltip` | `boolean` | `true` | Show tooltip on hover |\n| `minimal` | `boolean` | `false` | Thin bar without handle |\n\n**Performance Architecture:**\n\n```\nPlayerEngine.store ───── subscribe() ───── fillRef.style.transform\n                                           (scaleX, GPU accelerated)\n                         NOT React re-render!\n```\n\nThis component demonstrates ADR 005: Direct DOM Manipulation for high-frequency updates.\nSee `docs/issues/RE_RENDER_ANALYSIS.md` for detailed optimization rationale.\n\n### 4. **Factory** - Dependency Injection\n\n```typescript\nconst sdk = createSDK({\n  preset: { baseUrl, auth, endpoints },  // Auto-generate adapters\n  adapters: { dataSource, interaction }, // Or custom adapters\n  feed: { pageSize: 20 },\n  player: { autoplay: true },\n});\n```\n\n---\n\n## 🔄 Cách hoạt động\n\n### Flow: Từ Config đến UI\n\n```\n┌──────────────────────────────────────────────────────────────────────┐\n│                          INITIALIZATION                               │\n├──────────────────────────────────────────────────────────────────────┤\n│                                                                       │\n│   1. Host App mount <ShortVideoProvider config={...}>                │\n│                           │                                           │\n│                           ▼                                           │\n│   2. createSDK(config)                                               │\n│      ├─ Resolve adapters (preset → browser adapters)                 │\n│      ├─ Create Core managers:                                        │\n│      │   ├─ FeedManager      (video list, deduplication, GC)        │\n│      │   ├─ PlayerEngine     (playback state machine)               │\n│      │   ├─ ResourceGovernor (DOM allocation, prefetch)             │\n│      │   ├─ OptimisticManager (like/follow with rollback)           │\n│      │   └─ LifecycleManager (session persistence)                  │\n│      └─ Wire analytics flush events                                  │\n│                           │                                           │\n│                           ▼                                           │\n│   3. SDKContext.Provider value={sdk}                                 │\n│                           │                                           │\n│                           ▼                                           │\n│   4. Hooks subscribe to managers via useSyncExternalStore            │\n│                                                                       │\n└──────────────────────────────────────────────────────────────────────┘\n```\n\n### Flow: User Interaction\n\n```\nUser swipes down\n       │\n       ▼\nuseSwipeGesture() ─────────► ResourceGovernor.setFocusedIndex(n+1)\n                                    │\n                   ┌────────────────┼────────────────┐\n                   ▼                ▼                ▼\n            Deallocate         Allocate         Preload\n            video[n-1]         video[n+1]       video[n+2]\n                                    │\n                                    ▼\n                            PlayerEngine.load(video)\n                                    │\n                                    ▼\n                            Analytics.track('video_view')\n```\n\n---\n\n## 📦 Exports\n\n### Provider\n\n```typescript\nexport { ShortVideoProvider } from './provider';\nexport type { ShortVideoProviderProps, SDKConfig } from './provider';\n```\n\n### Hooks\n\n```typescript\n// Feed management\nexport { useFeed, useFeedSelector } from './hooks';\n\n// Player control\nexport { usePlayer, usePlayerSelector, usePlayerForVideo } from './hooks';\n\n// Resource management (DOM allocation)\nexport { useResource, useResourceSelector, useResourceAllocation } from './hooks';\n\n// Optimistic UI (like/follow)\nexport { useOptimistic, useOptimisticSelector } from './hooks';\n\n// Swipe navigation\nexport { useSwipeGesture } from './hooks';\n\n// SDK context access\nexport { useSDK } from './hooks';\n```\n\n### Factory\n\n```typescript\nexport { createSDK } from './store';\nexport type { SDKInstance } from './store';\n```\n\n### Types (Re-exported)\n\n```typescript\n// From @xhub-short/contracts\nexport type { VideoItem, FeedResponse, IDataSource, ... } from '@xhub-short/contracts';\n\n// From @xhub-short/core\nexport type { FeedState, PlayerState, ResourceState, ... } from '@xhub-short/core';\n```\n\n---\n\n## 🚀 Quick Start\n\n### Simplest Usage (Recommended)\n\n```tsx\nimport { ShortVideoRoot, VideoFeed, DefaultSlot } from '@xhub-short/sdk';\n\nfunction App() {\n  return (\n    <ShortVideoRoot\n      config={{\n        preset: {\n          baseUrl: 'https://api.example.com/v1',\n          auth: { getAccessToken: () => localStorage.getItem('token') },\n          endpoints: {\n            feed: { list: '/videos', detail: '/videos/:id' },\n            interaction: { like: '/videos/:id/like' },\n          },\n        },\n      }}\n      errorMode=\"auto-skip-with-toast\"\n    >\n      <VideoFeed renderSlot={(video, index) => (\n        <DefaultSlot \n          video={video} \n          index={index}\n          showBookmark={true}\n          onOpenComments={(videoId) => openSheet(videoId)}\n          onShare={(video) => shareVideo(video)}\n        />\n      )} />\n    </ShortVideoRoot>\n  );\n}\n```\n\n**That's it!** The SDK handles everything: video loading, HLS playback, swipe navigation, like/follow actions, error handling, and more.\n\n### DefaultSlot Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `video` | `VideoItem` | required | Video data |\n| `index` | `number` | required | Index in feed |\n| `showPoster` | `boolean` | `true` | Show poster |\n| `showLikeAnimation` | `boolean` | `true` | Double-tap hearts |\n| `showAuthorInfo` | `boolean` | `true` | Avatar + follow |\n| `showActionBar` | `boolean` | `true` | Like, comment, share |\n| `showVideoInfo` | `boolean` | `true` | Caption, hashtags |\n| `showProgressBar` | `boolean` | `true` | Progress bar |\n| `showBookmark` | `boolean` | `false` | Bookmark button |\n| `onOpenComments` | `(videoId) => void` | - | Comment click |\n| `onShare` | `(video) => void` | - | Share click |\n| `onOpenProfile` | `(author) => void` | - | Author click |\n| `onHashtagClick` | `(tag) => void` | - | Hashtag click |\n\n### Custom Usage (Advanced)\n\nFor full control, use individual components:\n\n```tsx\nimport { \n  ShortVideoRoot, VideoFeed, VideoSlot, VideoPlayer,\n  ActionBar, AuthorInfo, VideoInfo, ProgressBar \n} from '@xhub-short/sdk';\nimport { VideoSlotOverlay, VideoSlotPoster } from '@xhub-short/ui';\n\n<VideoFeed renderSlot={(video, index) => (\n  <VideoSlot video={video} index={index}>\n    <VideoPlayer />\n    <VideoSlotPoster />\n    <VideoSlotOverlay>\n      <VideoSlotOverlay.Actions>\n        <AuthorInfo video={video} variant=\"avatar-badge\" />\n        <ActionBar video={video} />\n      </VideoSlotOverlay.Actions>\n      <VideoSlotOverlay.Bottom>\n        <VideoInfo video={video} />\n        <ProgressBar showTime />\n      </VideoSlotOverlay.Bottom>\n    </VideoSlotOverlay>\n  </VideoSlot>\n)} />\n\n### With Custom Adapters\n\n```tsx\n<ShortVideoProvider\n  config={{\n    adapters: {\n      dataSource: new MyGraphQLAdapter(),\n      interaction: new MyFlutterBridgeAdapter(),\n    },\n  }}\n>\n  <App />\n</ShortVideoProvider>\n```\n\n---\n\n## 👤 Guest Mode (Chế độ khách)\n\nSDK hỗ trợ chế độ khách cho phép người dùng chưa đăng nhập xem video và bình luận (read-only). Các tương tác (Like, Comment, Follow) sẽ bị chặn và trigger callback để Host App xử lý (ví dụ: hiện modal đăng nhập).\n\n### Cấu hình\n\n```tsx\n<ShortVideoRoot\n  config={{\n    // ...\n    guest: {\n      /**\n       * 'auto': Tự động detect dựa trên auth token (default)\n       * true: Force guest mode\n       * false: Disable guest mode\n       */\n      mode: 'auto',\n\n      /**\n       * Callback khi guest thực hiện hành động cần auth (Like, Comment, Follow...)\n       */\n      onAction: (action, context) => {\n        console.log('Guest Action:', action, context); \n        // VD: showLoginModal();\n      }\n    }\n  }}\n>\n  <VideoFeed />\n</ShortVideoRoot>\n```\n\n### Các hành động được chặn\n- **Like / Bookmark**: Trigger `onAction`\n- **Follow**: Trigger `onAction`\n- **Comment Input**: Hiển thị nút \"Login to comment\". Khi click triggers `onAction` (`action='comment'`).\n\n---\n\n## ⚡ Prefetch Data (Tải trước dữ liệu)\n\nCho phép Host App tải trước dữ liệu Feed (Reels) để trải nghiệm hiển thị tức thì (instant loading).\n\n### Cách sử dụng\n\nGọi hàm `prefetchFeed` trước khi mount SDK components (ví dụ: khi hover vào menu Reels hoặc trong route loader).\n\n```tsx\nimport { prefetchFeed } from '@xhub-short/sdk';\n\n// 1. Prefetch data (lưu vào bộ nhớ tạm)\n// Có thể gọi ở bất kỳ đâu trong Host App\nawait prefetchFeed(sdkConfig, { ttl: 5 * 60 * 1000 });\n\n// ... Sau đó ...\n\n// 2. Khi User vào trang Reels, SDK sẽ tự động dùng data đã fetch\n<ShortVideoRoot config={sdkConfig}>\n  <VideoFeed />\n</ShortVideoRoot>\n```\n\n### Đặc điểm\n- **In-Memory Cache**: Dữ liệu chỉ lưu tạm trong RAM, mất khi refresh trang (đảm bảo fresh data).\n- **Auto-Consume**: `ShortVideoRoot` tự động tiêu thụ cache và xóa sau khi dùng.\n- **Performance**: Giúp giảm thời gian chờ đợi (LCP) xuống gần bằng 0 khi user chuyển trang.\n\n---\n\n## 🔗 Liên kết với các Packages\n\n| Package | Quan hệ với SDK |\n|---------|-----------------|\n| `@xhub-short/contracts` | SDK re-export types/interfaces |\n| `@xhub-short/core` | SDK wraps core managers với React hooks |\n| `@xhub-short/adapters` | SDK inject adapters vào core managers |\n| `@xhub-short/ui` | UI components sử dụng SDK hooks (Phase 4) |\n| `@xhub-short/bridge` | Optional Flutter integration |\n\n### Dependency Flow\n\n```\ncontracts ◀─────────────────────────────────────────┐\n    ▲                                               │\n    │                                               │\ncore ◀──────────────────────────┐                  │\n    ▲                           │                  │\n    │                           │                  │\nadapters ◀──────────┐          │                  │\n    ▲               │          │                  │\n    │               │          │                  │\n    └───────────────┴──────────┴────────── sdk ───┘\n                                             │\n                                             ▼\n                                        Host App\n```\n\n---\n\n## ⚠️ Lưu ý quan trọng\n\n### SSR Safety\n- Tất cả hooks sử dụng `useSyncExternalStore`\n- Provider render fallback trên server\n- SDK instance chỉ tạo trên client\n\n### Memory Management\n- `sdk.destroy()` được gọi tự động khi Provider unmount\n- Max 3 video DOM nodes (via ResourceGovernor)\n- LRU cache eviction trong FeedManager\n\n### Deprecated APIs\n\n```typescript\n// ❌ DEPRECATED - Singleton gây issues với SSR/testing\nconst sdk = getSDK(config);\n\n// ✅ RECOMMENDED - Sử dụng Provider\n<ShortVideoProvider config={config}>\n  <App />\n</ShortVideoProvider>\n```\n\n---\n\n## 📚 Tài liệu liên quan\n\n- [ADD.md](/docs/ADD.md) - System Architecture\n- [TECH_STACK.md](/docs/TECH_STACK.md) - Technology Stack\n- [packages/core/README.md](/packages/core/README.md) - Core Domain\n- [packages/adapters/README.md](/packages/adapters/README.md) - Adapters\n","readmeFilename":"README.md"}