{"_id":"@cymmetrik-dev/3d-transfer-sdk","_rev":"14-374a4a097de516cc61dfec63abbd97fd","name":"@cymmetrik-dev/3d-transfer-sdk","dist-tags":{"latest":"1.6.1"},"versions":{"1.0.1":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.0.1","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.0.1","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"06e23a637a292bff697d84c1209d806c01f61973","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.0.1.tgz","fileCount":15,"integrity":"sha512-QgkllX2iVP515SXKCeY9vb6Hyn/MS+lL8iwg6Dr+skAKNqqG5hAYFl8P4/8FS+p4POhG3I6IFXLnZvBzMo8dxQ==","signatures":[{"sig":"MEYCIQD6rxAHL/bEZGOm30kVlcX2s3yFNWRPKjjTfMVLyMmDhgIhANORMYEFPt9cYxMRcOwaf1ttpJR1O7LtAuRW2KIznsRB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29866},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"d49ae92861f1354250d22c86908a1442a421e487","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/*.gen.ts","generate":"openapi-ts --input ./openapi.json --output ./src --client @hey-api/client-axios","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.6.0","@hey-api/client-axios":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.60.1"},"peerDependencies":{"axios":">=1.0.0","react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.0.1_1768182299104_0.73466382518109","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.1.0","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.1.0","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"72610a85185672783546e1068fdb1f9e7809a873","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.1.0.tgz","fileCount":15,"integrity":"sha512-4ONj98L/keq27U0+dB3tT1+ryNtIrFNMXh2N0eNwappELPIwNgBdDDLqBcYUykK9L0saak74ve7/MqO4a4ltYg==","signatures":[{"sig":"MEQCIC+Z7xRhcXlOHiuicYIZ/LlyjxJrmdT6jYs6n99UqtFyAiBKs+htWeXhGwquKBI3MnA5mQrX1k1Px89sjO3Hu/AZKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30891},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"fd313868b9c49518a75548527a76e48b3330c642","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/*.gen.ts","generate":"openapi-ts --input ./openapi.json --output ./src --client @hey-api/client-axios","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.6.0","@hey-api/client-axios":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.60.1"},"peerDependencies":{"axios":">=1.0.0","react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.1.0_1768262120677_0.7063226605522313","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.1.1","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.1.1","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"71a35ef9cb9cbc50f8794fc51ebf6d1a5f66da37","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.1.1.tgz","fileCount":15,"integrity":"sha512-rZPUEP7moVRCrmsPFDqek3/RbMg9SizPA1inZWkxVb0vUWkA+zRmSScirktWsJf/rwE4xCzM26QKBLB0SwrwpA==","signatures":[{"sig":"MEUCIQD9B2FU8EdhXB2UBIXiMosbDEOMPCLBLJ7YPhEndA/5ZgIgZHa0EuUzuipSkpOJMXnTBffP6a02UdXqYDhxYYU+Fpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"fd313868b9c49518a75548527a76e48b3330c642","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/*.gen.ts","generate":"openapi-ts --input ./openapi.json --output ./src --client @hey-api/client-axios","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.6.0","@hey-api/client-axios":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.60.1"},"peerDependencies":{"axios":">=1.0.0","react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.1.1_1768262317155_0.05970424912132155","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.1.2","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.1.2","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"2c2849847a0e5cdb1788ec45436200dcaf11bcbf","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.1.2.tgz","fileCount":15,"integrity":"sha512-W59LDBaj3vttpxqim2E1VwoQ7ZeFpxGnUfnzAKwLrwG66cKcjy1I//YIsodfk4NDFST9oJwi53PNqbxbC6GFLg==","signatures":[{"sig":"MEUCIEh5/+zVLn4g5BnnXzQdotJaFrTIML9eW8/+sJF0wI8nAiEA3wfnq9LrZ1jvfeYdxw5TjSnJO19f6VeCa9wIK2ukEp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"fd313868b9c49518a75548527a76e48b3330c642","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/*.gen.ts","generate":"openapi-ts --input ./openapi.json --output ./src --client @hey-api/client-axios","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.6.0","@hey-api/client-axios":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.60.1"},"peerDependencies":{"axios":">=1.0.0","react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.1.2_1768262604267_0.42993826764060805","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.1.3","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.1.3","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"4df8a95b6bbecdbca5b37ec0d69b844e14c34849","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.1.3.tgz","fileCount":31,"integrity":"sha512-tGQT/+OhKso4ZAPl+o8iiRTwtUDTn1Tf+CXoZibIc1blvPqdgAuOa+NWtTjSsU9GjvjDz8dLQc35ikmyWHTFFA==","signatures":[{"sig":"MEYCIQCm5P9d33CrcAKaIvYmvHeup5ePbWnNKv3rYJhurU/x0AIhAPh7WhsT209gi5gzHLJv6Nl4yEP59xUmmfKSBfpsIezP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47943},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"fd313868b9c49518a75548527a76e48b3330c642","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/generated","generate":"openapi-ts --input ./openapi.json --output ./src/generated --client @hey-api/client-axios","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.6.0","@hey-api/client-axios":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.60.1"},"peerDependencies":{"axios":">=1.0.0","react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.1.3_1768262865111_0.8783870313986453","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.2.0","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.2.0","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"c66e4e77cda985b5d0d68977b398d05ad11f1b31","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.2.0.tgz","fileCount":31,"integrity":"sha512-hHrwmz030RgIUh8us4t/Fc6FZ2KsF+l7iqW18Nr06IE6bs4+JAG+VdVProzVYj/tfme/+kysn5gh/xHVxBx8Pw==","signatures":[{"sig":"MEQCIGGbYoZEzlVpUvgxSKYOl4PDHIAMYqUVM/5R9csxNIMRAiBmubBgUvtDRFoN55FQIaYOwvje/r/tnLxmMIf6HTVIng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60161},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"d4b91a705518aa53924f522bde296070fd3589e1","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/generated","generate":"openapi-ts --input ./openapi.json --output ./src/generated --client @hey-api/client-axios","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.6.0","@hey-api/client-axios":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.60.1"},"peerDependencies":{"axios":">=1.0.0","react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.2.0_1768293964526_0.9461511564535743","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.3.0","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.3.0","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"efe6706bed6c354c5df8c7a5c63e2c692d717273","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.3.0.tgz","fileCount":31,"integrity":"sha512-wvBrsqXE8Vfmh5BBrQu0J2+yhGDtLaSpSl8Jbo/9ojfd+gw6MeK0ZmqbRT3SoLiZuTAkPl8w35oumfpCfVBuDQ==","signatures":[{"sig":"MEQCIFr5gVlEI74+n0dJ2Brj10n4uDreXmiMx+duySfl/0fUAiBHpxyVIy6mpgzV6onea0Tn+x8lBa7ZVlB4y4eHbI1aXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71882},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"6b660823d144db7ff925e1dfaffae340c7baf0ba","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/generated","generate":"openapi-ts --input ./openapi.json --output ./src/generated --client @hey-api/client-axios","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.6.0","@hey-api/client-axios":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.60.1"},"peerDependencies":{"axios":">=1.0.0","react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.3.0_1768297485149_0.7382313753488317","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.4.0","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.4.0","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"34e3c2e51f4453f2b32d776054036d90afaa5e5d","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.4.0.tgz","fileCount":31,"integrity":"sha512-ju+Fr5dGwld+ZIEWwqdbF9rgsXUVx4A54TvRc3lH8XZgZETyl/DAu3PhLCEmTmcqnnCCuJyA048eDlyGZUPZ3g==","signatures":[{"sig":"MEUCIGwxvTlpjZTY6V48b4SFiPJLLfnHpv8JTzWGBtti9l9LAiEAnn7WYZflwurqTUHtnwHnjw30VjMILsVsp61LR2pBOcw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134286},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"6b660823d144db7ff925e1dfaffae340c7baf0ba","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/generated","generate":"openapi-ts --input ./openapi.json --output ./src/generated --client @hey-api/client-axios","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.6.0","@hey-api/client-axios":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.60.1"},"peerDependencies":{"axios":">=1.0.0","react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.4.0_1768298254935_0.08656099923561333","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.4.1","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.4.1","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"00227b72dc312886c9d4f63ab840a68709ca7a31","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.4.1.tgz","fileCount":31,"integrity":"sha512-pDPeJPwEo+1Z8qeW+525kzwCVDqeAVayGX6DdEL5B5/voUHff8IviKFToS9speqK+HCkL3a89iBlvGGrIW0anQ==","signatures":[{"sig":"MEQCICVrjPZQSAj30a47GGYRiM25q1+Xr+HN6/cErGrmqzH2AiA9GciWoRpKZg8Zk/ZMveVF94u+PyeqhSqwA5mE3HjvpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79159},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"66288866bbbe92d603551b48e81d7a9b00e0f035","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/generated","generate":"openapi-ts --input ./openapi.json --output ./src/generated --client @hey-api/client-axios","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.6.0","@hey-api/client-axios":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.60.1"},"peerDependencies":{"axios":">=1.0.0","react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.4.1_1768311636637_0.36841224984209653","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.4.2","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.4.2","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"445f7fe53bc9d5fe0ea52fb528a87d62d7d57df5","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.4.2.tgz","fileCount":31,"integrity":"sha512-0uLTP+V8WOoupyHbfL8Ze2PfzK7rlPKF1w94oPO0MXOEB6sOKrs9UGlrj1pFz1uoADA3ozE8YeOpejBpBg5Enw==","signatures":[{"sig":"MEUCIQCPoZbjH3cSSQmGihbqIo1dryXZWPNUm4SRVopjK0sptQIgcNkbfsqoisySSGTKd42NdrQ/mdGaEnWLH0ce8bCpfgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80192},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"66288866bbbe92d603551b48e81d7a9b00e0f035","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/generated","generate":"openapi-ts --input ./openapi.json --output ./src/generated --client @hey-api/client-axios","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.6.0","@hey-api/client-axios":"^0.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.60.1"},"peerDependencies":{"axios":">=1.0.0","react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.4.2_1768313015987_0.1986666688091625","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.5.0","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.5.0","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"eb9c259858701dc1c7178bf50ff7cd1ccd3152d8","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.5.0.tgz","fileCount":83,"integrity":"sha512-8DVq87L4HGN9CjB7H7HvVYv5AP3oTXxPf/mymA8CsYQcwjmRezpZUmOW4iR9BN8kBLKGiGF2nR3nRBksy+YbUg==","signatures":[{"sig":"MEYCIQCSTmhyR4dTp2mOf79cBLIJkhJpjLzhwBSlhcZc6CcTcgIhALuF/CvvoERupNf5aIlO5F+QedSO61mTcZoVXJlKzOdb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200284},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"66288866bbbe92d603551b48e81d7a9b00e0f035","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/generated","generate":"openapi-ts --input ./openapi.json --output ./src/generated --client @hey-api/client-fetch","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{"@hey-api/client-fetch":"^0.13.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.90.3"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.5.0_1768315435607_0.7465415859009867","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.5.1","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.5.1","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"2224ca4557e91c92268c341d041fb0389cfdc725","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.5.1.tgz","fileCount":83,"integrity":"sha512-RMa8KQHRzw3b0Z/kEv3RpqPLTAZKWm0ShDXqbK51DJmiLm937ViL6xHek9IXyExdOLG7RguvL+CBSxDVzMt76A==","signatures":[{"sig":"MEQCIAU5AciFNwM3wUI3QA+RbuqRSKrDn+O2Jq2ZU4SCcr78AiAgne8UluZo1qGuE5j1OG/JGVfIUIbn1wZBS9MJJYJUqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200242},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"66288866bbbe92d603551b48e81d7a9b00e0f035","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/generated","generate":"openapi-ts --input ./openapi.json --output ./src/generated --client @hey-api/client-fetch","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.90.3"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.5.1_1768315891944_0.3255688343392431","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.6.0","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","_id":"@cymmetrik-dev/3d-transfer-sdk@1.6.0","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"dist":{"shasum":"687b80553b3d51f0cf80bb6f1b91225ea2a4e0d7","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.6.0.tgz","fileCount":83,"integrity":"sha512-sZJaVf/+JIEcydmwcxv1+E8Ag5QPcwYbJCgNSDWtiU2u63TdtDC07A0AvngYlt08gk0Q2QKB8ywV9AQzSpD1aw==","signatures":[{"sig":"MEQCIGO3TyoXeE9kpzoDlF3QBH15+gKNKsON+GLkxNcZB6vvAiBWTuAzgywvbZcxcs7vjChJVzUSh6lOKYwRCJtwN0tfcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204974},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js","require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./react":{"types":"./dist/react/index.d.ts","import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"default":"./dist/react/index.js","require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}}},"gitHead":"c312307a4ef5cda41bb24493464e7080b65639c6","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/generated","generate":"openapi-ts --input ./openapi.json --output ./src/generated --client @hey-api/client-fetch","prepublishOnly":"npm run clean && npm run generate && npm run build"},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"repository":{"url":"git+https://github.com/cympotek/mobius-frontier.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","directories":{},"_nodeVersion":"24.11.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@hey-api/openapi-ts":"^0.90.3"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/3d-transfer-sdk_1.6.0_1768361823307_0.9708785360770684","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@cymmetrik-dev/3d-transfer-sdk","version":"1.6.1","description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"types":"./dist/index.d.ts","default":"./dist/index.js"},"./react":{"import":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"require":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"}},"scripts":{"generate":"openapi-ts --input ./openapi.json --output ./src/generated --client @hey-api/client-fetch","build":"tsc && tsc -p tsconfig.esm.json","clean":"rm -rf dist src/generated","prepublishOnly":"npm run clean && npm run generate && npm run build"},"dependencies":{},"devDependencies":{"@hey-api/openapi-ts":"^0.90.3","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","typescript":"^5.0.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"author":{"name":"Cympotek"},"license":"UNLICENSED","repository":{"type":"git","url":"git+https://github.com/cympotek/mobius-frontier.git"},"homepage":"https://github.com/cympotek/mobius-frontier#readme","bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"engines":{"node":">=18.0.0"},"publishConfig":{"access":"public"},"gitHead":"c312307a4ef5cda41bb24493464e7080b65639c6","_id":"@cymmetrik-dev/3d-transfer-sdk@1.6.1","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-pxMvlrhcnK4nX8+2udTN5cS2P0iYivLSWXGka1rXC++ynQT/PVP00KSrU1oxupk5qQqyG8Y+unZ5uE0JaAh9Ww==","shasum":"ea63ec46e714f1641505630def62dda2e51cb6a4","tarball":"https://registry.npmjs.org/@cymmetrik-dev/3d-transfer-sdk/-/3d-transfer-sdk-1.6.1.tgz","fileCount":83,"unpackedSize":205134,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC8LuFW8zKu+xEfbqonnnkn59JZGpPCiluW/A9KEn6q1QIhAMNVGtsq9qtwvBabjF6dCs/HjGAQE7cBYdBm5FKkx136"}]},"_npmUser":{"name":"cympotek","email":"cympotek.dev@gmail.com"},"directories":{},"maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/3d-transfer-sdk_1.6.1_1768361854778_0.5991010111202455"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-12T01:44:59.047Z","modified":"2026-01-14T03:37:35.065Z","1.0.1":"2026-01-12T01:44:59.237Z","1.1.0":"2026-01-12T23:55:20.848Z","1.1.1":"2026-01-12T23:58:37.290Z","1.1.2":"2026-01-13T00:03:24.417Z","1.1.3":"2026-01-13T00:07:45.241Z","1.2.0":"2026-01-13T08:46:04.678Z","1.3.0":"2026-01-13T09:44:45.291Z","1.4.0":"2026-01-13T09:57:35.086Z","1.4.1":"2026-01-13T13:40:36.771Z","1.4.2":"2026-01-13T14:03:36.132Z","1.5.0":"2026-01-13T14:43:55.841Z","1.5.1":"2026-01-13T14:51:32.081Z","1.6.0":"2026-01-14T03:37:03.465Z","1.6.1":"2026-01-14T03:37:34.934Z"},"bugs":{"url":"https://github.com/cympotek/mobius-frontier/issues"},"author":{"name":"Cympotek"},"license":"UNLICENSED","homepage":"https://github.com/cympotek/mobius-frontier#readme","keywords":["3d","transfer","api","sdk","mobius","ai","image-to-3d","typescript","openapi"],"repository":{"type":"git","url":"git+https://github.com/cympotek/mobius-frontier.git"},"description":"TypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models","maintainers":[{"name":"cympotek","email":"cympotek.dev@gmail.com"}],"readme":"# @cymmetrik-dev/3d-transfer-sdk\n\nTypeScript SDK for Mobius 3D Transfer API - Convert images to 3D models using AI-powered style transfer.\n\n## Features\n\n- Full TypeScript support with auto-generated types\n- Support for multiple frameworks (Vite, Next.js, Expo, Node.js)\n- Environment variable based configuration\n- Axios-based HTTP client\n- **React ModelViewer component** for displaying 3D GLB models\n- **Default style filtering** for single-style deployments\n- **Additional instruction** for custom style guidance (max 2000 chars)\n- **Add-to-cart redirect** for seamless shopping cart integration (supports guest users)\n- **Split 2D/3D workflow** - Control when 3D generation starts with `auto_3d` parameter\n\n## Installation\n\n```bash\nnpm install @cymmetrik-dev/3d-transfer-sdk\n# or\nyarn add @cymmetrik-dev/3d-transfer-sdk\n# or\npnpm add @cymmetrik-dev/3d-transfer-sdk\n```\n\n## Environment Variables\n\nConfigure the SDK using environment variables based on your framework:\n\n| Variable | Framework | Description |\n|----------|-----------|-------------|\n| `VITE_TRANSFER_3D_API_URL` | Vite | API base URL |\n| `VITE_TRANSFER_3D_API_TOKEN` | Vite | API authentication token |\n| `VITE_TRANSFER_3D_DEFAULT_STYLE` | Vite | Default style (optional) |\n| `VITE_DEFAULT_PRODUCT_SLUG` | Vite | Default product slug (optional) |\n| `NEXT_PUBLIC_TRANSFER_3D_API_URL` | Next.js | API base URL |\n| `NEXT_PUBLIC_TRANSFER_3D_API_TOKEN` | Next.js | API authentication token |\n| `NEXT_PUBLIC_TRANSFER_3D_DEFAULT_STYLE` | Next.js | Default style (optional) |\n| `NEXT_PUBLIC_DEFAULT_PRODUCT_SLUG` | Next.js | Default product slug (optional) |\n| `EXPO_PUBLIC_TRANSFER_3D_API_URL` | Expo | API base URL |\n| `EXPO_PUBLIC_TRANSFER_3D_API_TOKEN` | Expo | API authentication token |\n| `EXPO_PUBLIC_TRANSFER_3D_DEFAULT_STYLE` | Expo | Default style (optional) |\n| `EXPO_PUBLIC_DEFAULT_PRODUCT_SLUG` | Expo | Default product slug (optional) |\n| `TRANSFER_3D_API_URL` | Node.js | API base URL |\n| `TRANSFER_3D_API_TOKEN` | Node.js | API authentication token |\n| `TRANSFER_3D_DEFAULT_STYLE` | Node.js | Default style (optional) |\n| `DEFAULT_PRODUCT_SLUG` | Node.js | Default product slug (optional) |\n\n### Example .env file\n\n```bash\n# For Vite projects\nVITE_TRANSFER_3D_API_URL=https://api.example.com/api\nVITE_TRANSFER_3D_API_TOKEN=your-api-token-here\nVITE_TRANSFER_3D_DEFAULT_STYLE=        # Optional: filter to single style\nVITE_DEFAULT_PRODUCT_SLUG=             # Optional: default product for accessory info\n\n# For Next.js projects\nNEXT_PUBLIC_TRANSFER_3D_API_URL=https://api.example.com/api\nNEXT_PUBLIC_TRANSFER_3D_API_TOKEN=your-api-token-here\nNEXT_PUBLIC_TRANSFER_3D_DEFAULT_STYLE= # Optional: filter to single style\nNEXT_PUBLIC_DEFAULT_PRODUCT_SLUG=      # Optional: default product for accessory info\n\n# For Node.js/backend projects\nTRANSFER_3D_API_URL=https://api.example.com/api\nTRANSFER_3D_API_TOKEN=your-api-token-here\nTRANSFER_3D_DEFAULT_STYLE=             # Optional: filter to single style\nDEFAULT_PRODUCT_SLUG=                  # Optional: default product for accessory info\n```\n\n## Quick Start\n\n### Initialize SDK (Recommended)\n\nUse `initTransfer3D()` to configure the SDK once at app startup. This sets the base URL and token for all subsequent API calls.\n\n```typescript\nimport { initTransfer3D } from '@cymmetrik-dev/3d-transfer-sdk';\n\n// Option 1: Auto-detect from environment variables\ninitTransfer3D();\n\n// Option 2: Explicit configuration\ninitTransfer3D({\n  baseURL: 'https://api.example.com/api',\n  token: 'your-api-token',\n});\n```\n\nIn a **Vite/React** project, create a setup file:\n\n```typescript\n// src/lib/transfer3d.ts\nimport { initTransfer3D } from '@cymmetrik-dev/3d-transfer-sdk';\n\ninitTransfer3D({\n  baseURL: import.meta.env.VITE_TRANSFER_3D_API_URL,\n  token: import.meta.env.VITE_TRANSFER_3D_API_TOKEN,\n});\n```\n\nThen import it early in your app:\n\n```typescript\n// src/main.tsx\nimport './lib/transfer3d';  // Initialize SDK\nimport { createRoot } from 'react-dom/client';\nimport App from './App';\n\ncreateRoot(document.getElementById('root')!).render(<App />);\n```\n\n### Alternative: Create Custom Client\n\nIf you need multiple clients (e.g., different API endpoints), use `createTransfer3DClient()`:\n\n```typescript\nimport {\n  createTransfer3DClient,\n  getTransfer3dStyles,\n  initiateTransfer3dConversion,\n  getTransfer3dStatus,\n} from '@cymmetrik-dev/3d-transfer-sdk';\n\n// Create a custom client instance\nconst client = createTransfer3DClient({\n  baseURL: 'https://api.example.com/api',\n  token: 'your-api-token',\n});\n\n// Pass client to each API call\nconst styles = await getTransfer3dStyles({ client });\n```\n\n### Complete Workflow Example\n\n```typescript\nimport {\n  createTransfer3DClient,\n  getTransfer3dStyles,\n  initiateTransfer3dConversion,\n  getTransfer3dStatus,\n} from '@cymmetrik-dev/3d-transfer-sdk';\n\nasync function convertImageTo3D(imageFile: File) {\n  // 1. Initialize client\n  const client = createTransfer3DClient({\n    token: 'your-api-token',\n  });\n\n  // 2. Get available styles\n  const stylesResponse = await getTransfer3dStyles({ client });\n  console.log('Available styles:', stylesResponse.data);\n  // Output: [{ mode_key: 'smart', mode_name: 'Q版公仔', ... }]\n\n  // 3. Upload image and start conversion\n  const conversionResponse = await initiateTransfer3dConversion({\n    client,\n    body: {\n      image: imageFile,\n      style: 'smart', // Use a style from step 2\n      additional_instruction: '增加金色高光效果', // Optional: custom guidance\n    },\n  });\n\n  const requestId = conversionResponse.data.data.request_id;\n  console.log('Conversion started:', requestId);\n\n  // 4. Poll for status until completed\n  let status = 'PENDING';\n  let result = null;\n\n  while (status !== 'COMPLETED' && status !== 'FAILED') {\n    await new Promise((resolve) => setTimeout(resolve, 2000)); // Wait 2 seconds\n\n    const statusResponse = await getTransfer3dStatus({\n      client,\n      path: { requestId },\n    });\n\n    const data = statusResponse.data.data;\n    status = data.status;\n    console.log('Status:', status, 'Phase:', data.phase, 'Progress:', data.progress);\n\n    // 2D preview is available when phase changes to 3d_generation\n    if (data.result?.preview_2d_url) {\n      console.log('2D Preview ready:', data.result.preview_2d_url);\n    }\n\n    if (status === 'COMPLETED') {\n      result = data.result;\n    }\n  }\n\n  if (result) {\n    console.log('3D Model URL:', result.model_3d_url);\n    console.log('GLB File URL:', result.glb_url);\n    console.log('2D Preview URL:', result.preview_2d_url);\n  }\n\n  return result;\n}\n```\n\n### Split 2D/3D Workflow (Manual 3D Trigger)\n\nWhen you want to let users preview the 2D styled image before proceeding to 3D generation:\n\n```typescript\nimport {\n  createTransfer3DClient,\n  initiateTransfer3dConversion,\n  triggerTransfer3dConversion,\n  getTransfer3dStatus,\n} from '@cymmetrik-dev/3d-transfer-sdk';\n\nasync function convertWithManual3DTrigger(imageFile: File) {\n  const client = createTransfer3DClient();\n\n  // 1. Start 2D-only conversion\n  const { data } = await initiateTransfer3dConversion({\n    client,\n    body: {\n      image: imageFile,\n      style: 'smart',\n      auto_3d: false,  // Don't auto-proceed to 3D\n    },\n  });\n\n  const requestId = data.data.request_id;\n\n  // 2. Poll until 2D completes\n  let status = 'PENDING';\n  let preview2dUrl = null;\n\n  while (status !== '2D_COMPLETED' && status !== 'FAILED') {\n    await new Promise((r) => setTimeout(r, 2000));\n\n    const { data: statusData } = await getTransfer3dStatus({\n      client,\n      path: { requestId },\n    });\n\n    status = statusData.data.status;\n\n    if (statusData.data.result?.preview_2d_url) {\n      preview2dUrl = statusData.data.result.preview_2d_url;\n    }\n  }\n\n  console.log('2D Preview ready:', preview2dUrl);\n  // At this point, show preview_2d_url to user and wait for confirmation\n\n  // 3. When user confirms, trigger 3D generation\n  await triggerTransfer3dConversion({\n    client,\n    body: { request_id: requestId },\n  });\n\n  // 4. Poll until 3D completes\n  status = 'IN_PROGRESS';\n  let glbUrl = null;\n\n  while (status !== 'COMPLETED' && status !== 'FAILED') {\n    await new Promise((r) => setTimeout(r, 2000));\n\n    const { data: statusData } = await getTransfer3dStatus({\n      client,\n      path: { requestId },\n    });\n\n    status = statusData.data.status;\n\n    if (status === 'COMPLETED') {\n      glbUrl = statusData.data.result?.glb_url;\n    }\n  }\n\n  return { preview2dUrl, glbUrl };\n}\n```\n\n## React Components\n\n### ModelViewer\n\nThe SDK includes a React component for displaying 3D GLB/GLTF models using Google's [model-viewer](https://modelviewer.dev/) web component.\n\n```tsx\nimport { ModelViewer } from '@cymmetrik-dev/3d-transfer-sdk/react';\n\nfunction My3DViewer() {\n  return (\n    <ModelViewer\n      src=\"https://example.com/model.glb\"\n      alt=\"3D Model\"\n      cameraControls\n      autoRotate\n      style={{ width: '100%', height: '400px' }}\n    />\n  );\n}\n```\n\n#### ModelViewer Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `src` | `string` | *required* | URL to the GLB/GLTF model file |\n| `alt` | `string` | `'3D Model'` | Alt text for accessibility |\n| `cameraControls` | `boolean` | `true` | Enable camera controls (pan, zoom, rotate) |\n| `autoRotate` | `boolean` | `true` | Enable auto rotation |\n| `shadowIntensity` | `number` | `1` | Shadow intensity (0-1) |\n| `transparentBackground` | `boolean` | `false` | Enable transparent background (removes default gradient) |\n| `poster` | `string` | - | Poster image URL to show while loading |\n| `className` | `string` | - | CSS class name |\n| `style` | `CSSProperties` | - | Inline styles |\n| `loading` | `'auto' \\| 'lazy' \\| 'eager'` | `'auto'` | Loading strategy |\n| `reveal` | `'auto' \\| 'manual'` | `'auto'` | Reveal strategy |\n| `onLoad` | `() => void` | - | Callback when model is loaded |\n| `onError` | `(error: Error) => void` | - | Callback when error occurs |\n\n#### Transparent Background Example\n\nTo display the 3D model with a transparent background (useful for overlays or custom backgrounds):\n\n```tsx\n<ModelViewer\n  src=\"https://example.com/model.glb\"\n  transparentBackground\n  cameraControls\n  autoRotate\n  style={{ width: '200px', height: '200px' }}\n/>\n```\n\n#### Complete React Example with ModelViewer\n\n```tsx\nimport { useState, useEffect } from 'react';\nimport {\n  createTransfer3DClient,\n  getTransfer3dStyles,\n  initiateTransfer3dConversion,\n  getTransfer3dStatus,\n} from '@cymmetrik-dev/3d-transfer-sdk';\nimport { ModelViewer } from '@cymmetrik-dev/3d-transfer-sdk/react';\n\nexport function ImageTo3DConverter() {\n  const [status, setStatus] = useState<string>('idle');\n  const [progress, setProgress] = useState(0);\n  const [preview2dUrl, setPreview2dUrl] = useState<string | null>(null);\n  const [glbUrl, setGlbUrl] = useState<string | null>(null);\n  const [webViewUrl, setWebViewUrl] = useState<string | null>(null);\n\n  const handleConvert = async (file: File, style: string) => {\n    const client = createTransfer3DClient();\n\n    setStatus('uploading');\n    const { data } = await initiateTransfer3dConversion({\n      client,\n      body: { image: file, style },\n    });\n\n    const requestId = data.data.request_id;\n    setStatus('processing');\n\n    // Poll for completion\n    const pollStatus = async () => {\n      const { data: statusData } = await getTransfer3dStatus({\n        client,\n        path: { requestId },\n      });\n\n      const result = statusData.data;\n      setProgress(result.progress || 0);\n\n      // Web view URL for viewing on main site\n      if (result.web_view_url) {\n        setWebViewUrl(result.web_view_url);\n      }\n\n      // 2D preview becomes available during 3D generation phase\n      if (result.result?.preview_2d_url) {\n        setPreview2dUrl(result.result.preview_2d_url);\n      }\n\n      if (result.status === 'COMPLETED') {\n        setGlbUrl(result.result.glb_url);\n        setStatus('completed');\n      } else if (result.status === 'FAILED') {\n        setStatus('failed');\n      } else {\n        setTimeout(pollStatus, 2000);\n      }\n    };\n\n    pollStatus();\n  };\n\n  return (\n    <div>\n      <p>Status: {status} ({progress}%)</p>\n\n      {/* Link to view progress on main site */}\n      {webViewUrl && (\n        <a href={webViewUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n          View on main site\n        </a>\n      )}\n\n      {/* 2D styled preview */}\n      {preview2dUrl && (\n        <div>\n          <h3>2D Style Preview</h3>\n          <img src={preview2dUrl} alt=\"2D Preview\" />\n        </div>\n      )}\n\n      {/* 3D Model Viewer */}\n      {glbUrl && (\n        <div>\n          <h3>3D Model</h3>\n          <ModelViewer\n            src={glbUrl}\n            alt=\"Generated 3D Model\"\n            cameraControls\n            autoRotate\n            style={{ width: '100%', height: '400px' }}\n          />\n        </div>\n      )}\n    </div>\n  );\n}\n```\n\n## API Reference\n\n### `initTransfer3D(config?)`\n\nInitialize the default SDK client. Call this once at app startup to configure the base URL and authentication token for all API calls.\n\n**Parameters:**\n- `config.baseURL` (optional): API base URL. Falls back to environment variables.\n- `config.token` (optional): Bearer authentication token. Falls back to environment variables.\n\n**Example:**\n```typescript\nimport { initTransfer3D, getTransfer3dStyles } from '@cymmetrik-dev/3d-transfer-sdk';\n\n// Initialize with explicit config\ninitTransfer3D({\n  baseURL: 'https://api.example.com/api',\n  token: 'your-api-token',\n});\n\n// Or auto-detect from environment variables\ninitTransfer3D();\n\n// Now all API calls use this configuration (no need to pass client)\nconst styles = await getTransfer3dStyles();\n```\n\n---\n\n### `createTransfer3DClient(config?)`\n\nCreate a separate API client instance. Use this when you need multiple clients or want to override the default configuration for specific calls.\n\n**Parameters:**\n- `config.baseURL` (optional): API base URL\n- `config.token` (optional): Bearer authentication token\n- `config.timeout` (optional): Request timeout in ms (default: 30000)\n\n**Returns:** Configured axios client\n\n---\n\n### `getTransfer3dStyles(options)`\n\nGet available 3D transfer styles.\n\n**Parameters:**\n- `query.default_style` (optional): string - Filter to return only this style\n\n**Example:**\n```typescript\n// Get all styles\nconst allStyles = await getTransfer3dStyles({ client });\n\n// Get single style (useful for single-style deployments)\nconst singleStyle = await getTransfer3dStyles({\n  client,\n  query: { default_style: 'smart' },\n});\n```\n\n**Returns:**\n```typescript\n{\n  success: true,\n  data: Array<{\n    mode_key: string;      // Style identifier (e.g., 'smart')\n    mode_name: string;     // Display name (e.g., 'Q版公仔')\n    mode_description: string;\n    preview_image_url: string | null;\n  }>\n}\n```\n\n> **Note:** If `default_style` is specified but not found, API returns all styles as fallback.\n\n---\n\n### `initiateTransfer3dConversion(options)`\n\nUpload an image and start the 3D conversion process.\n\n**Parameters:**\n- `body.image`: File - Image to convert (max 10MB, supported: jpg, png, webp)\n- `body.style`: string - Style key from `getTransfer3dStyles()`\n- `body.additional_instruction` (optional): string - Custom style guidance (max 2000 chars)\n- `body.auto_3d` (optional): boolean - Auto-proceed to 3D after 2D completes (default: `true`)\n\n**Example:**\n```typescript\n// Basic conversion (auto 2D → 3D)\nconst result = await initiateTransfer3dConversion({\n  client,\n  body: {\n    image: imageFile,\n    style: 'smart',\n  },\n});\n\n// With additional instruction for fine-tuning\nconst result = await initiateTransfer3dConversion({\n  client,\n  body: {\n    image: imageFile,\n    style: 'smart',\n    additional_instruction: '增加金色高光效果，使用暖色調',\n  },\n});\n\n// 2D-only mode: Stop after 2D style transfer\nconst result = await initiateTransfer3dConversion({\n  client,\n  body: {\n    image: imageFile,\n    style: 'smart',\n    auto_3d: false,  // Will stop at 2D_COMPLETED status\n  },\n});\n```\n\n**Additional Instruction Use Cases:**\n- Fine-tune style output (e.g., \"更卡通化\", \"增加質感\")\n- Specify colors or materials (e.g., \"使用暖色調\", \"金屬質感\")\n- Adjust lighting effects (e.g., \"增加高光\", \"柔和陰影\")\n\n> **Note:** `additional_instruction` is **appended** to the style's base instructions, not replaced.\n\n**Returns:**\n```typescript\n{\n  success: true,\n  data: {\n    request_id: string;       // UUID for status polling\n    chat_thread_id: number;   // Internal ChatThread ID (for add-to-cart)\n    status: 'PENDING';\n    message: string;\n  }\n}\n```\n\n---\n\n### `triggerTransfer3dConversion(options)`\n\nTrigger 3D generation for a request that completed 2D styling. Use this when you initiated a conversion with `auto_3d: false`.\n\n**Parameters:**\n- `body.request_id`: string - The request ID from the original `/convert` call\n\n**Example:**\n```typescript\n// After status shows '2D_COMPLETED', trigger 3D generation\nconst result = await triggerTransfer3dConversion({\n  client,\n  body: {\n    request_id: 'uuid-xxx',\n  },\n});\n```\n\n**Returns:**\n```typescript\n{\n  success: true,\n  data: {\n    request_id: string;\n    chat_thread_id: number;   // Internal ChatThread ID (for add-to-cart)\n    status: 'IN_PROGRESS';\n    message: '3D conversion initiated';\n  }\n}\n```\n\n**Error Responses:**\n- `400` - 2D style transfer not yet completed\n- `400` - 3D conversion already in progress or completed\n- `404` - Request not found\n\n---\n\n### `getTransfer3dStatus(options)`\n\nGet the status of a conversion request.\n\n**Parameters:**\n- `path.requestId`: string - Request ID from conversion response\n\n**Returns:**\n```typescript\n{\n  success: true,\n  data: {\n    request_id: string;\n    status: 'PENDING' | 'IN_PROGRESS' | '2D_COMPLETED' | 'COMPLETED' | 'FAILED';\n    phase: '2d_style_transfer' | '3d_generation_pending' | '3d_generation';\n    progress: number;  // 0-100 (2D_COMPLETED = 50%)\n    web_view_url: string;  // URL to view progress on main site\n    auto_3d?: boolean;  // Present for API requests, indicates if 3D will auto-start\n    result?: {\n      preview_2d_url: string;  // Available when 2D transfer completes\n      model_3d_url: string;    // Available when fully completed\n      glb_url: string;         // GLB file URL (same as model_3d_url)\n    };\n    error?: string;  // Present if status is FAILED\n  }\n}\n```\n\n> **Note:** When `auto_3d: false`, the status will be `2D_COMPLETED` (not `COMPLETED`) when 2D styling finishes. Call `triggerTransfer3dConversion()` to start 3D generation.\n\n---\n\n### `getTransfer3DProduct(options)`\n\nGet product information by slug, including name, description, price, and images.\n\n**Parameters:**\n- `path.slug`: string - The product slug\n\n**Example:**\n```typescript\nimport {\n  createTransfer3DClient,\n  getTransfer3DProduct,\n  getDefaultProductSlug,\n} from '@cymmetrik-dev/3d-transfer-sdk';\n\nconst client = createTransfer3DClient();\n\n// Get product by slug\nconst { data } = await getTransfer3DProduct({\n  client,\n  path: { slug: 'my-product-slug' },\n});\n\nconsole.log('Product:', data.data.name);\nconsole.log('Price:', data.data.price?.formatted);\nconsole.log('Main Image:', data.data.main_image_url);\n\n// Or use default product slug from environment\nconst defaultSlug = getDefaultProductSlug();\nif (defaultSlug) {\n  const { data } = await getTransfer3DProduct({\n    client,\n    path: { slug: defaultSlug },\n  });\n}\n```\n\n**Returns:**\n```typescript\n{\n  success: true,\n  data: {\n    slug: string;\n    name: string;\n    description: string;\n    price: {\n      value: number;      // Price in smallest currency unit\n      formatted: string;  // e.g., \"NT$1,990\"\n      currency: string;   // e.g., \"TWD\"\n    } | null;\n    main_image_url: string | null;\n    images: Array<{\n      url: string;\n      alt: string;\n    }>;\n    variants: Array<{\n      id: number;           // Variant ID (use for add-to-cart)\n      sku: string;          // SKU code\n      options: Array<{      // Variant options (e.g., color, size)\n        name: string;       // Option name (e.g., \"顏色\")\n        value: string;      // Option value (e.g., \"紅色\")\n      }>;\n      price: {\n        value: number;\n        formatted: string;\n        currency: string;\n      };\n    }>;\n  }\n}\n```\n\n**Example with Variants:**\n```typescript\nconst { data } = await getTransfer3DProduct({\n  client,\n  path: { slug: 'my-product' },\n});\n\n// Display product with variant selector\nconsole.log('Product:', data.data.name);\n\ndata.data.variants.forEach((variant) => {\n  const optionText = variant.options\n    .map(o => `${o.name}: ${o.value}`)\n    .join(', ');\n  console.log(`- ${variant.sku} (${optionText}): ${variant.price.formatted}`);\n});\n\n// Add specific variant to cart\nconst selectedVariant = data.data.variants[0];\nconst cartUrl = buildAddToCartUrl('https://shop.example.com', {\n  products: [{ model_type: 'product_variant', model_id: selectedVariant.id }],\n});\n```\n\n---\n\n### `getDefaultProductSlug()`\n\nGet the default product slug from environment variables.\n\n**Returns:** `string | undefined`\n\n**Example:**\n```typescript\nimport { getDefaultProductSlug } from '@cymmetrik-dev/3d-transfer-sdk';\n\nconst slug = getDefaultProductSlug();\n// Returns value from VITE_DEFAULT_PRODUCT_SLUG, NEXT_PUBLIC_DEFAULT_PRODUCT_SLUG, etc.\n```\n\n---\n\n### `getDefaultStyle()`\n\nGet the default style from environment variables.\n\n**Returns:** `string | undefined`\n\n**Example:**\n```typescript\nimport { getDefaultStyle } from '@cymmetrik-dev/3d-transfer-sdk';\n\nconst style = getDefaultStyle();\n// Returns value from VITE_TRANSFER_3D_DEFAULT_STYLE, etc.\n```\n\n---\n\n## Add to Cart Redirect\n\nThe SDK provides helper functions to build URLs that add products to the shopping cart and redirect users. This feature:\n- Works for both logged-in users and guest users\n- Supports adding multiple products at once\n- Allows custom redirect URLs after adding to cart\n- No authentication token required (public endpoint)\n\n### `buildAddToCartUrl(baseURL, options)`\n\nBuild a URL that adds products to cart and redirects.\n\n**Parameters:**\n- `baseURL`: string - The shop's base URL (without `/api`)\n- `options.products`: CartProduct[] - Products to add\n- `options.redirectUrl`: string (optional) - Redirect URL after adding (default: `/cart`)\n\n**CartProduct interface:**\n```typescript\ninterface CartProduct {\n  model_type:\n    | 'Lunar\\\\Models\\\\ProductVariant'\n    | 'Projects\\\\Frontier\\\\Models\\\\FrontierOrder'\n    | 'Projects\\\\Frontier\\\\Models\\\\ChatThread';  // Auto-creates FrontierOrder\n  model_id: number;\n  quantity?: number;  // default: 1\n}\n```\n\n**Example:**\n```typescript\nimport { buildAddToCartUrl } from '@cymmetrik-dev/3d-transfer-sdk';\n\n// Add single product\nconst url = buildAddToCartUrl('https://shop.example.com', {\n  products: [{ model_type: 'product_variant', model_id: 123 }],\n});\n// Result: https://shop.example.com/api/3d-transfer/add-to-cart?products=[{\"model_type\":\"product_variant\",\"model_id\":123}]\n\n// Add multiple products with quantities\nconst url = buildAddToCartUrl('https://shop.example.com', {\n  products: [\n    { model_type: 'product_variant', model_id: 123, quantity: 2 },\n    { model_type: 'product_variant', model_id: 456, quantity: 1 },\n  ],\n});\n\n// With custom redirect URL\nconst url = buildAddToCartUrl('https://shop.example.com', {\n  products: [{ model_type: 'product_variant', model_id: 123 }],\n  redirectUrl: '/checkout',\n});\n\n// Add 3D model by ChatThread ID (auto-creates FrontierOrder if needed)\nconst url = buildAddToCartUrl('https://shop.example.com', {\n  products: [{ model_type: 'Projects\\\\Frontier\\\\Models\\\\ChatThread', model_id: chatThreadId }],\n});\n\n// Or add existing FrontierOrder directly\nconst url = buildAddToCartUrl('https://shop.example.com', {\n  products: [{ model_type: 'Projects\\\\Frontier\\\\Models\\\\FrontierOrder', model_id: 789 }],\n});\n```\n\n---\n\n### `buildAddToCartUrlFromEnv(options)`\n\nBuild add-to-cart URL using the API URL from environment variables.\n\n**Parameters:**\n- `options.products`: CartProduct[] - Products to add\n- `options.redirectUrl`: string (optional) - Redirect URL after adding\n\n**Returns:** `string | null` - URL or null if API URL not configured\n\n**Example:**\n```typescript\nimport { buildAddToCartUrlFromEnv } from '@cymmetrik-dev/3d-transfer-sdk';\n\nconst url = buildAddToCartUrlFromEnv({\n  products: [{ model_type: 'product_variant', model_id: 123 }],\n});\n\nif (url) {\n  window.location.href = url;\n}\n```\n\n---\n\n### Add to Cart - React Example\n\n```tsx\nimport { buildAddToCartUrl, getTransfer3DProduct } from '@cymmetrik-dev/3d-transfer-sdk';\n\nfunction BuyButton({ productId }: { productId: number }) {\n  const handleBuy = () => {\n    const url = buildAddToCartUrl('https://shop.example.com', {\n      products: [{ model_type: 'product_variant', model_id: productId }],\n      redirectUrl: '/checkout',\n    });\n    window.location.href = url;\n  };\n\n  return (\n    <button onClick={handleBuy}>\n      加入購物車\n    </button>\n  );\n}\n\n// Or use as a link\nfunction BuyLink({ productId }: { productId: number }) {\n  const url = buildAddToCartUrl('https://shop.example.com', {\n    products: [{ model_type: 'product_variant', model_id: productId }],\n  });\n\n  return (\n    <a href={url}>\n      加入購物車\n    </a>\n  );\n}\n```\n\n---\n\n### Add to Cart - HTML Example\n\n```html\n<!-- Direct link to add product to cart -->\n<a href=\"https://shop.example.com/api/3d-transfer/add-to-cart?products=[{&quot;model_type&quot;:&quot;product_variant&quot;,&quot;model_id&quot;:123}]\">\n  加入購物車\n</a>\n\n<!-- With redirect to checkout -->\n<a href=\"https://shop.example.com/api/3d-transfer/add-to-cart?products=[{&quot;model_type&quot;:&quot;product_variant&quot;,&quot;model_id&quot;:123}]&redirect_url=/checkout\">\n  立即購買\n</a>\n```\n\n---\n\n### Complete Workflow: 3D Model to Cart\n\n```tsx\nimport {\n  createTransfer3DClient,\n  initiateTransfer3dConversion,\n  getTransfer3dStatus,\n  buildAddToCartUrl,\n} from '@cymmetrik-dev/3d-transfer-sdk';\n\n// Full workflow: Upload image → Convert → Add to cart\nasync function convertAndAddToCart(imageFile: File) {\n  const client = createTransfer3DClient();\n\n  // 1. Start conversion and get chat_thread_id\n  const { data: conversionData } = await initiateTransfer3dConversion({\n    client,\n    body: { image: imageFile, style: 'smart' },\n  });\n\n  const { request_id: requestId, chat_thread_id: chatThreadId } = conversionData.data;\n  console.log('ChatThread ID:', chatThreadId);  // Use this for add-to-cart\n\n  // 2. Poll until completed\n  let status = 'PENDING';\n  while (status !== 'COMPLETED' && status !== 'FAILED') {\n    await new Promise((r) => setTimeout(r, 2000));\n    const { data } = await getTransfer3dStatus({ client, path: { requestId } });\n    status = data.data.status;\n  }\n\n  // 3. Add to cart using ChatThread ID (auto-creates FrontierOrder)\n  if (status === 'COMPLETED') {\n    const cartUrl = buildAddToCartUrl('https://shop.example.com', {\n      products: [{\n        model_type: 'Projects\\\\Frontier\\\\Models\\\\ChatThread',\n        model_id: chatThreadId,\n      }],\n    });\n    window.location.href = cartUrl;\n  }\n}\n```\n\n## Conversion Phases\n\n| Phase | Progress | Description |\n|-------|----------|-------------|\n| `2d_style_transfer` | 0-50% | Image is being styled with AI |\n| `3d_generation_pending` | 50% | 2D complete, waiting for 3D to start |\n| `3d_generation` | 50-100% | 3D model is being generated |\n\n**Note:** The `preview_2d_url` becomes available when the phase changes to `3d_generation_pending` or `3d_generation`, allowing you to show the styled image while the 3D model is still being generated.\n\n## Status Values\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Conversion request queued |\n| `IN_PROGRESS` | Currently processing (2D or 3D) |\n| `2D_COMPLETED` | 2D styling finished, waiting for 3D trigger (only when `auto_3d: false`) |\n| `COMPLETED` | Full conversion finished (2D + 3D) |\n| `FAILED` | An error occurred |\n\n> **Tip:** For `auto_3d: false` requests, poll until `status === '2D_COMPLETED'`, show the `preview_2d_url`, then call `triggerTransfer3dConversion()` when ready.\n\n## TypeScript Types\n\n```typescript\nimport type {\n  // Request/Response types (auto-generated)\n  GetTransfer3dStylesResponse,\n  InitiateTransfer3dConversionData,\n  InitiateTransfer3dConversionResponse,\n  TriggerTransfer3dConversionData,\n  TriggerTransfer3dConversionResponse,\n  GetTransfer3dStatusData,\n  GetTransfer3dStatusResponse,\n  GetTransfer3DProductData,\n  GetTransfer3DProductResponse,\n  // Add to cart types\n  CartProduct,\n  AddToCartOptions,\n} from '@cymmetrik-dev/3d-transfer-sdk';\n\n// Helper functions\nimport {\n  getDefaultProductSlug,\n  getDefaultStyle,\n  buildAddToCartUrl,\n  buildAddToCartUrlFromEnv,\n} from '@cymmetrik-dev/3d-transfer-sdk';\n\n// API functions\nimport {\n  getTransfer3dStyles,\n  initiateTransfer3dConversion,\n  triggerTransfer3dConversion,\n  getTransfer3dStatus,\n  getTransfer3DProduct,\n} from '@cymmetrik-dev/3d-transfer-sdk';\n\n// React component types\nimport type { ModelViewerProps } from '@cymmetrik-dev/3d-transfer-sdk/react';\n```\n\n## Error Handling\n\n```typescript\nimport { AxiosError } from 'axios';\n\ntry {\n  const response = await initiateTransfer3dConversion({\n    client,\n    body: { image: file, style: 'smart' },\n  });\n} catch (error) {\n  if (error instanceof AxiosError) {\n    if (error.response?.status === 401) {\n      console.error('Authentication failed. Check your API token.');\n    } else if (error.response?.status === 422) {\n      console.error('Validation error:', error.response.data.errors);\n    } else if (error.response?.status === 429) {\n      console.error('Rate limit exceeded. Please try again later.');\n    }\n  }\n  throw error;\n}\n```\n\n## Demo Application\n\nA complete React demo application is available in the [examples/react-demo](https://github.com/cympotek/mobius-frontier/tree/main/builds/3d-transfer-sdk/examples/react-demo) directory.\n\nTo run the demo:\n\n```bash\ncd examples/react-demo\npnpm install\ncp .env.example .env  # Configure your API URL and token\npnpm dev\n```\n\n## Support\n\n- [GitHub Issues](https://github.com/cympotek/mobius-frontier/issues)\n\n---\n\n*This SDK is auto-generated from the Mobius Frontier OpenAPI specification using [@hey-api/openapi-ts](https://heyapi.vercel.app/)*\n","readmeFilename":"README.md"}