{"_id":"@alliumcloud/asset-manager","_rev":"28-8e9a0377dcc8d0df9b9c09fcb0adc3ea","name":"@alliumcloud/asset-manager","dist-tags":{"latest":"3.4.15"},"versions":{"1.0.0":{"name":"@alliumcloud/asset-manager","version":"1.0.0","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@1.0.0","maintainers":[{"name":"ashik.odyssey","email":"ashik@odyssey.stream"},{"name":"mahinabid","email":"mahin@odyssey.stream"},{"name":"odyssey_naim","email":"naim@odyssey.stream"},{"name":"odyssey.stream","email":"reid@odyssey.stream"},{"name":"imran6554","email":"imran@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"d725cb449702b5dec4c1f45608ea6b9170ad0c8e","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-1.0.0.tgz","fileCount":8,"integrity":"sha512-b5crazOsYCm/RBzJMjTRsM7gCUKAM5izGC1802Evs0Fw4Ob9Y9MT8ESqy9CAube1sQetqt3yjEuLDLyLjzu2Mw==","signatures":[{"sig":"MEUCIGDWcscVvXNZH9e6hpeDP5clS48urlMDwNaFFRN5i627AiEAq0eOpZDMcSb7q/lsN7g+EF4ClPnV4taZvxURwyuu3t4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177257},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"053bb17b007386e7dd4cbf2d3a3a94fe68a3a15f","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build"},"_npmUser":{"name":"mahinabid","email":"mahin@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.6.2","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_1.0.0_1779561440827_0.7401772565729037","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alliumcloud/asset-manager","version":"1.0.1","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@1.0.1","maintainers":[{"name":"ashik.odyssey","email":"ashik@odyssey.stream"},{"name":"mahinabid","email":"mahin@odyssey.stream"},{"name":"odyssey_naim","email":"naim@odyssey.stream"},{"name":"odyssey.stream","email":"reid@odyssey.stream"},{"name":"imran6554","email":"imran@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"979768f812c5a6e508ce6e5a5d424a1769e4018c","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-1.0.1.tgz","fileCount":8,"integrity":"sha512-OZF4dAiTOoY9jFy3cgGMQJAPMSlHfJOUptHSiEjKk3IUch1lt648pqJBP8OMSZwScYqZJd86aPSxekIPqlMTDg==","signatures":[{"sig":"MEUCIQCGADfEY5zBhuv7D69g55tyNF+kVomK/I3c/dD9QemaIwIgXpop0FQV8Q6+c72ukILc3rG/45EsBS7mLsQXe2lZTe0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177889},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"46337797801d0aa314d60eb49042d5d9edd05bf5","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build"},"_npmUser":{"name":"mahinabid","email":"mahin@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.6.2","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_1.0.1_1781633405257_0.9138331246943714","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alliumcloud/asset-manager","version":"1.1.0","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@1.1.0","maintainers":[{"name":"sk7575","email":"suvrajit@odyssey.stream"},{"name":"ashik.odyssey","email":"ashik@odyssey.stream"},{"name":"mahinabid","email":"mahin@odyssey.stream"},{"name":"odyssey_naim","email":"naim@odyssey.stream"},{"name":"odyssey.stream","email":"reid@odyssey.stream"},{"name":"imran6554","email":"imran@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"36d44e302916a59aaca6004cb1f29cd7e4763c5d","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-1.1.0.tgz","fileCount":8,"integrity":"sha512-BEhXc1sW8uV4kcY+wAHXxuxvJmXtnKsy2/dNuHs1h/P+NsgcJBx+Mmw9o7QVTkwIV2aoc7mYAv2kQOsDDyggeQ==","signatures":[{"sig":"MEUCIQDijEsSU1S3EzjJSTJfhSfXujm4zcxvh/o0/WbDvow+ewIgfCMdFIkVqseo+MPzUMLn2DlksgF/oaAraiaCPq9Ns5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177809},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"54a63d530a051c89aa2c30f91cf3afac9b57057f","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build"},"_npmUser":{"name":"mahinabid","email":"mahin@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.6.2","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_1.1.0_1782418171116_0.9686427886256448","host":"s3://npm-registry-packages-npm-production"}},"1.1.1-dev.0":{"name":"@alliumcloud/asset-manager","version":"1.1.1-dev.0","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@1.1.1-dev.0","maintainers":[{"name":"sk7575","email":"suvrajit@odyssey.stream"},{"name":"ashik.odyssey","email":"ashik@odyssey.stream"},{"name":"mahinabid","email":"mahin@odyssey.stream"},{"name":"odyssey_naim","email":"naim@odyssey.stream"},{"name":"odyssey.stream","email":"reid@odyssey.stream"},{"name":"imran6554","email":"imran@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"b366e25314b8253de5edd44b9f363283f8bf5d35","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-1.1.1-dev.0.tgz","fileCount":8,"integrity":"sha512-WikBfMenmW27dL+bJYxceJZ9xa/jOj9ofStOrV4yPe0nFuowPbfhGlMDcwU5OLa3nDc1K4x5v64JMzCYNs06mA==","signatures":[{"sig":"MEUCIG6FdV9SMctqMLXJ+kWsNkzhs2o3Y2goVkMU0CkwGN/gAiEAtT7Ivq9Tof/JUbTEtXVGHwuOr9jgWPvPC1eeJy9K+Vc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178261},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3c1436616e5c0fadb7614108321b500ea1679b33","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"export BUILD_ENV=prod && npm version patch && npm run build && npm publish --tag latest && git push --follow-tags","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"export BUILD_ENV=dev && npm version prerelease --preid=dev && npm run build && npm publish --tag dev && git push --follow-tags","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"export BUILD_ENV=testing && npm version prerelease --preid=testing && npm run build && npm publish --tag testing && git push --follow-tags"},"_npmUser":{"name":"mahinabid","email":"mahin@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.6.2","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_1.1.1-dev.0_1782635906083_0.8904226743574744","host":"s3://npm-registry-packages-npm-production"}},"1.1.1-testing.0":{"name":"@alliumcloud/asset-manager","version":"1.1.1-testing.0","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@1.1.1-testing.0","maintainers":[{"name":"sk7575","email":"suvrajit@odyssey.stream"},{"name":"ashik.odyssey","email":"ashik@odyssey.stream"},{"name":"mahinabid","email":"mahin@odyssey.stream"},{"name":"odyssey_naim","email":"naim@odyssey.stream"},{"name":"odyssey.stream","email":"reid@odyssey.stream"},{"name":"imran6554","email":"imran@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"e8a1a48372f936d5ed54e9cf643ef9e3ad808dab","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-1.1.1-testing.0.tgz","fileCount":8,"integrity":"sha512-Zsf/WfeQxCLVfUpU57GOmsKWF0a57AJiL1xYqhrfhu67XIBFX4S7iNOjGs0TEIK1/WVnLjqRVBdV6lr8DUC8YQ==","signatures":[{"sig":"MEYCIQDPJ2PGcFck8AH1a9nuJ26AUTHWHKPEzHYMchEbb/hzTgIhALYbmy+Dd5kEQRx+CFxuZAPddWG201b/SApEs3xqvEEo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178273},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9e7ad68110d2846fc6c483d7fb7cead94884c679","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"export BUILD_ENV=prod && npm version patch && npm run build && npm publish --tag latest && git push --follow-tags","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"export BUILD_ENV=dev && npm version prerelease --preid=dev && npm run build && npm publish --tag dev && git push --follow-tags","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"export BUILD_ENV=testing && npm version prerelease --preid=testing && npm run build && npm publish --tag testing && git push --follow-tags"},"_npmUser":{"name":"mahinabid","email":"mahin@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.6.2","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_1.1.1-testing.0_1782635925142_0.6697870007001552","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@alliumcloud/asset-manager","version":"1.1.1","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@1.1.1","maintainers":[{"name":"sk7575","email":"suvrajit@odyssey.stream"},{"name":"ashik.odyssey","email":"ashik@odyssey.stream"},{"name":"mahinabid","email":"mahin@odyssey.stream"},{"name":"odyssey_naim","email":"naim@odyssey.stream"},{"name":"odyssey.stream","email":"reid@odyssey.stream"},{"name":"imran6554","email":"imran@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"8043b17e0b96c9c5644b165a84f30e58cceab4df","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-1.1.1.tgz","fileCount":8,"integrity":"sha512-iXDHUMR7t8Ggs/FzahyXAgVTYphMXzYuXUf4jikQveslUiJ+OUNEhi+xO+N39GAFLpT8rwbuZdlpmcgxR8fzJg==","signatures":[{"sig":"MEYCIQCFZVS5EdoZBQrqiD/gPt/QAYW4nEdhAZ2bTSo+VY6PGwIhAKZNaA2NWZNdYU/a1VuI7zqPUJfRNT17+aGDYHZMgax/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178257},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"639d99a512fc0b262cbb592ee42c8cd3a97f524c","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"export BUILD_ENV=prod && npm version patch && npm run build && npm publish --tag latest && git push --follow-tags","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"export BUILD_ENV=dev && npm version prerelease --preid=dev && npm run build && npm publish --tag dev && git push --follow-tags","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"export BUILD_ENV=testing && npm version prerelease --preid=testing && npm run build && npm publish --tag testing && git push --follow-tags"},"_npmUser":{"name":"mahinabid","email":"mahin@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.6.2","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_1.1.1_1782635941398_0.15637914735440295","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@alliumcloud/asset-manager","version":"1.1.2","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@1.1.2","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"fb11255a67d2bb6bcb6c38451c59e47bd35e973b","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-1.1.2.tgz","fileCount":8,"integrity":"sha512-ZO+8GCFhGzATp2zegvDee4N6dtwZmXxI9/k+BprDC7++/yExj4HBBfR9mschMek4Jb3RzmthJbS8JnTVmrbW/w==","signatures":[{"sig":"MEUCIA49kTAB+XBwxNo2hSNnXq3oMFr8yn60XEbBzJ1Dud18AiEA3zOwWMFgYGlyhKdtm9NGmVGVWEZG9wRW0SUNWVBXKcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178111},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"fe74ec457b1c06d7bbd5b67bc90d44674255c5ff","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env BUILD_ENV=prod npm version patch && npm run build && npm publish --tag latest --access public && git push --follow-tags","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.8.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_1.1.2_1783534144895_0.9427189454966312","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@alliumcloud/asset-manager","version":"1.1.3","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@1.1.3","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"9842a63fbdae733ab807cc862a8b6c252a854b9a","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-1.1.3.tgz","fileCount":8,"integrity":"sha512-JWLs0BHK5th2g4ESxJxzHLvNwq81Zd1cg7WrD0kwJwWhqOanmUxhv4SCVlDGl4MMpgrOm0iRx9BwgKjPqx4Gbg==","signatures":[{"sig":"MEUCIGyapLZMsiYb+7HMKj2db19YwdnUQ7uy+CvjOw7oFy7lAiEA5BIvic/VMAKz7QnHi16i2uRjJVxeJmTvTcca58/u7uY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178123},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"782a0222f68f0939f8b3585246a02dcfe89da7d4","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --tag latest --access public && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.8.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_1.1.3_1783571396809_0.9343325501480446","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@alliumcloud/asset-manager","version":"1.1.4","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@1.1.4","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"1a5024d59d5057036f3618f595466795498f4293","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-1.1.4.tgz","fileCount":8,"integrity":"sha512-JznZmB4zrePV45x2iAM9JDJV/JBcYwxQAGHlINnaizTeIJJhTUInx/BO1ZzRwsbLEogA9P4FK3VrJ3OLdVWE5w==","signatures":[{"sig":"MEYCIQD3Br1Y+d8+1YUpyLF2pmzLEXHpgdTLiK5p37IE45p2nQIhALgPVKh+ah33X6ipDVOjoX9jl2KjHNIAYOYkff/6NN1s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176558},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"47ee025a19a4f6c96370f1f9682dcf478fff1dac","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.8.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_1.1.4_1783986811685_0.5732469929068753","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"@alliumcloud/asset-manager","version":"3.4.1","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.1","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"0d7da3050826a98758c39e9d3ab492277904d21b","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.1.tgz","fileCount":8,"integrity":"sha512-+k/JqQqhdSCyu1l18VpQhI5iZqiu7SAxm8gndieQm5TaQHihZpjK2NPLga2w0LcOyaBvzyop0BkJzH5HCbHbTg==","signatures":[{"sig":"MEUCIElBshMQgxeE0lHpuA9EqNun4YESM0hTeuzQECgwkwJaAiEAt0bo7zPJTPZUQcRTxXed7bIjdyWDXlSDLEcD9gvvxgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176558},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"327a87b4a2bae34ebfdc154830b1d8815c3d03db","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.8.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.1_1783987007179_0.5968578872608203","host":"s3://npm-registry-packages-npm-production"}},"3.4.2":{"name":"@alliumcloud/asset-manager","version":"3.4.2","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.2","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"0fb5402a4053a57b1bec9763837c6e4beabc0cdc","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.2.tgz","fileCount":8,"integrity":"sha512-qEIMYtxi35O6a/ehGzMo8mJp+lmKdaI0eWi4pi87kjxO3wQNFp6waHPLTdq0/mhFyhsxB22V2PdRgCoUZptstw==","signatures":[{"sig":"MEUCIQCiOFg4xy87H6eYoWdxQXTCb1NQALFBtGKHbLy2WLb37wIgGmBMZ2jz3GGl35w6Mza43nQvbi2w0UoyY7t0UTWh9eM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176556},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a641a7bef491b7c91aabb543a640c9fe39ec9dfc","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.2_1784137326349_0.23976302612248301","host":"s3://npm-registry-packages-npm-production"}},"3.4.3":{"name":"@alliumcloud/asset-manager","version":"3.4.3","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.3","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"cabdca73c78cb98e738b0dd34a3bc95a64aa3433","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.3.tgz","fileCount":8,"integrity":"sha512-QNXoKHKrj4J8idNkbTNsMLaWBuWgJw+3yGekgrqLeCgNrc7xK8aNmPCzGVdSTJjv6qzLTDo6v7WCud7baHCvxA==","signatures":[{"sig":"MEYCIQD/WtxxA6H3jM940Lk00zxik2ND3jIX/j3NsdpaErvuqAIhAOB8DRpN2SvuKFKQcFVTZspATt8bUi0URcq5n/dM2X7A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176558},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4fe36528aab95329336e01143387c5f0296d741e","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.3_1784143894932_0.8157331653308209","host":"s3://npm-registry-packages-npm-production"}},"3.4.4":{"name":"@alliumcloud/asset-manager","version":"3.4.4","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.4","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"5170694b74d1e8249b9ac5b4325181255e415821","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.4.tgz","fileCount":8,"integrity":"sha512-r5ylZBUgZgCZohKMrBHfRztxwDxh3GxKnAbxBbAC6KD+DfUoLOFc5iKe36EyxX7eZlV7kbj6cBuQrtN9oxUbqg==","signatures":[{"sig":"MEYCIQCRqnUSZ029wME1wn1xr0oPFQTACvAb2Lugsw3/FOX/zQIhAKRtw9BKUg8Mc/gPdrT0cqX4u/sJZlN8DP4F0U4aJRkC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192268},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5d29daa3ea72df9f0c87d0de2c40483b661d6814","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.4_1784652259254_0.9405421067708939","host":"s3://npm-registry-packages-npm-production"}},"3.4.5":{"name":"@alliumcloud/asset-manager","version":"3.4.5","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.5","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"7d9ca988d9f3a816292c14a1519db2d568fa5c56","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.5.tgz","fileCount":8,"integrity":"sha512-RwaIcIqIhOd9bJ699wg4+WWu/4nkc66nZmR85BMvhGAdI8Nwo2sK5H2lNGhSjutZQlpP0WluguPfwuxdU2zMwg==","signatures":[{"sig":"MEYCIQCPpYGPR7/NIFZXaAw5+sES1kdfvj+7Iza0otjv4jSICwIhAIbt1f2L1nCpfWejVsX6XnSoiWFcYDPkVJZ1EWOeVldH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192356},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"6c3c2233111102efacf31e52914235541487b947","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.5_1784721913006_0.9725313489425957","host":"s3://npm-registry-packages-npm-production"}},"3.4.6":{"name":"@alliumcloud/asset-manager","version":"3.4.6","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.6","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"1bc1bf7b8645c225f930bfb595a18c8a5442a458","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.6.tgz","fileCount":8,"integrity":"sha512-OPF+6k9Bv17edjZrqNnuFp9OZtX0TsR5Au7kmPkKYvY6KZ7k+k+Qz3VyzzZL5LFPdRabe3k9G4n5uQh7hMbwqQ==","signatures":[{"sig":"MEQCIBn7UQ9nCuTdR+x/yuQExKZQL1JRNO5zj9M3cOhJQzc/AiBV1h2jLbEgrmgW1dx9J5Ey1NTpqvHgF00Q+W0pxF7cWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199900},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"516952eae5ef26df2675a5c74db394e78f309fca","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.6_1784962645448_0.05003477418721092","host":"s3://npm-registry-packages-npm-production"}},"3.4.7":{"name":"@alliumcloud/asset-manager","version":"3.4.7","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.7","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"8e7b1fcf01d666966e1dcfc25d5db4d5c8eb21e8","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.7.tgz","fileCount":8,"integrity":"sha512-+ogjGM70TBhnK9MFOTmlQdAu8XNqq/z985OyYVE86UoN7W4nTIFwXCznXduTBDwrTOW9sdx0kwnh7nqk7y746A==","signatures":[{"sig":"MEYCIQC6Znhj6vAtoRDJQ2gtRXSjFfod2rkZQyXFuNTfY7DQ5wIhAKUnrhD4kSzcduO3W05B1vWnYxpqyz5klBLfhAMVzOzm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197106},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"660d5c618c6f612c7fa55bf6e4c3a7417f0bfb04","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.7_1785042457620_0.3338390402616267","host":"s3://npm-registry-packages-npm-production"}},"3.4.8":{"name":"@alliumcloud/asset-manager","version":"3.4.8","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.8","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"dd2911098899a1559a647be98f11510db27bcada","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.8.tgz","fileCount":8,"integrity":"sha512-t0q2hEy95JBTNMzCS87b0hPQ59gllFp2SYalNLj1X36o2rgshQq+yBJ0/mpwQ7TaQFxzIQir07ms5VgwKYkWaQ==","signatures":[{"sig":"MEYCIQDdr/tiA4pJXwsHHXyAxCHpaWG4OasAOAfzALsC/LmqdwIhAOoJF89nKGKj2O8G6YPSZDM4h+uDuDYjO2w68eHt0wEb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198806},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4482047c810a38b350c9ea6423c5f7ae38f83af5","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.8_1785181104522_0.6375333245141037","host":"s3://npm-registry-packages-npm-production"}},"3.4.9":{"name":"@alliumcloud/asset-manager","version":"3.4.9","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.9","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"35956c5da5369ed8f86e430409e13ba9ff71c363","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.9.tgz","fileCount":8,"integrity":"sha512-DPwgilDVjWSIzklKwZAw0/WXQl8ijWe/OX1RCe3+S+RsUGOdzua7cjasbUlBJcGX2Av50l/KORO/gzLqxh9ETw==","signatures":[{"sig":"MEUCIFCMqwZO7Cc/g3wUd+jkp98rSxPzeS65+cK6TmU4LyYmAiEAkGrN0xl76rhWiDqjOj4LXbo6UpQByzoE33oX/umH6co=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198846},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bd6519b641beddb9aeef973fe4fabd6ca1af7b7a","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.9_1785438889146_0.8605543380813347","host":"s3://npm-registry-packages-npm-production"}},"3.4.10":{"name":"@alliumcloud/asset-manager","version":"3.4.10","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.10","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"4c2d70adff4dcc02b60a0e73b1051b01b866f410","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.10.tgz","fileCount":8,"integrity":"sha512-G2yJPfWqdZXAE1X9p2HQd+ROO4eg1SjCNleiMiqdTbSZKbJBqRQwC4eL96ZosWzhgxwaXkMhSkwMdlY7tXOpdQ==","signatures":[{"sig":"MEUCIQDfHXSx0zSn/aNU1zo1HkhTbNEIRPOoPgc4PT0TbuK/zQIgO1OGHYHHxwpyZmkkrX06QPMHIUpZUw1dXp97B8wBUm0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202079},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3cb33b8586a23b8ed9fcb0aeb9f1382bd97b7105","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.10_1785692305653_0.7556220845943842","host":"s3://npm-registry-packages-npm-production"}},"3.4.11":{"name":"@alliumcloud/asset-manager","version":"3.4.11","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.11","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"e6f0847d500b994b73f836a7ac997259f442585d","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.11.tgz","fileCount":8,"integrity":"sha512-zAkSd1r8kRuj0Zv/Z1CxTYff+CytTxrjZ34phPTg+3sJws4yjAoC273RUzq6dv3kkC68Yb+zLUOM/iZjtAWRGA==","signatures":[{"sig":"MEUCIQDSXVZe11yJV53cHms49jjuS8dijnhUeHVLawpwBNoG0AIgUR06IYpLvBwq5jUjdRdO49pUpaI2c1v5l9oAQFKhCi0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202693},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7aef28fb0b9acf0cf0897a9c977a299d7ee75ed3","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.11_1785993060622_0.36212676340712413","host":"s3://npm-registry-packages-npm-production"}},"3.4.12":{"name":"@alliumcloud/asset-manager","version":"3.4.12","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.12","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"58b2e2267cf6173874323b1d3a8550e4e875ba34","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.12.tgz","fileCount":8,"integrity":"sha512-/+xfgdsDA/9N460aYYvB1U6fcihHYHPe6wDoIbvYecPdJe18PjTTlfwt8vqBz/fvKKRYUoxxbnYFuC9n35DNSw==","signatures":[{"sig":"MEUCIQCSkjkEDLvyiy/FrUz5fEt5fNxm8m0Oi7hxKdRlf6vebQIgdt0S7b+DAipEweofao48UZNGIkZov6L55+/m5x6KHV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202693},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"264bfccf5eb7df3272f1bdf1deb35337bedcf676","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.12_1786070639384_0.6494876480307024","host":"s3://npm-registry-packages-npm-production"}},"3.4.13":{"name":"@alliumcloud/asset-manager","version":"3.4.13","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.13","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"8b769d8a7fd68018d2e354fa0632fbf3e915281b","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.13.tgz","fileCount":8,"integrity":"sha512-g0vE8/0asQVDHPnCCN2ou4698Dc6eS1nB/GlVgEA8YhdoLpCkDNJqJN2YvCILN7gXs2kNqaxWTvuUJPq5X8SLw==","signatures":[{"sig":"MEQCIDUTU6Va0AudrUXI0SKgMHrbRl6HRi0brE9fgM8lPWu4AiBLWJsh8+d1MLf3d2iQOSNjN8m0B/5S//kQ04eabNWvhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202853},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a4de7023ebf4916646da3d79176a1d0a2fea471b","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.13_1786595877854_0.28361449879964806","host":"s3://npm-registry-packages-npm-production"}},"3.4.14":{"name":"@alliumcloud/asset-manager","version":"3.4.14","keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","_id":"@alliumcloud/asset-manager@3.4.14","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"dist":{"shasum":"b8b9de26cbfc33d8ff384c559a8cd121ec9321ad","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.14.tgz","fileCount":8,"integrity":"sha512-lvi3En08H+X/Z3pzvooodD3DLhf2hBfYh32eeObdKIRjg7XFj6BzDifIzMls7kYHlSGUKEjK2NAba4fEk6t5BQ==","signatures":[{"sig":"MEYCIQCdgYuQBog5msICQoNfkebQIoci1LOH8nipZ7xQFfoVYQIhAI2x/vVRWybiWI9NBpmKjtZnSRkUGLEwS3xwhz8jbqf+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203269},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=24.8.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3a1f3f26a8a3ffa724a8f93da747e54b16f6536f","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","build":"tsup","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","clean:logs":"node scripts/remove-console-logs.js","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","format:check":"prettier --check \"src/**/*.ts\"","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run typecheck && npm run build","release:testing":"node scripts/release-internal.js testing"},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"repository":{"url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git","type":"git"},"_npmVersion":"11.17.0","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","directories":{},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","husky":"^9.1.7","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","prettier":"^3.8.1","cross-env":"^10.1.0","typescript":"^5.0.0","@types/node":"^24.0.0","lint-staged":"^16.2.7","typescript-eslint":"^8.54.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-manager_3.4.14_1786727510138_0.15508953013351534","host":"s3://npm-registry-packages-npm-production"}},"3.4.15":{"name":"@alliumcloud/asset-manager","version":"3.4.15","description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","lint":"eslint src/**/*.ts","lint:fix":"eslint src/**/*.ts --fix","format":"prettier --write \"src/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm run typecheck && npm run build","publish:npm":"npm publish","release:dev":"node scripts/release-internal.js dev","release:testing":"node scripts/release-internal.js testing","release":"cross-env-shell BUILD_ENV=prod \"npm version patch && npm run build && npm publish --access public --tag latest && git push --follow-tags\"","version:patch":"npm version patch","version:minor":"npm version minor","version:major":"npm version major","clean:logs":"node scripts/remove-console-logs.js","deploy":"node scripts/remove-console-logs.js && npm run build && echo '✅ Ready for deployment!'","prepare":"husky"},"lint-staged":{"src/**/*.ts":["prettier --write","eslint --fix"]},"keywords":["allium","asset-manager","sdk","upload","unreal"],"author":{"name":"Allium Cloud"},"license":"MIT","engines":{"node":">=24.8.0"},"dependencies":{"axios":"^1.7.0"},"devDependencies":{"@types/node":"^24.0.0","@typescript-eslint/eslint-plugin":"^8.54.0","@typescript-eslint/parser":"^8.54.0","cross-env":"^10.1.0","dotenv":"^17.3.1","eslint":"^9.39.2","globals":"^17.1.0","husky":"^9.1.7","lint-staged":"^16.2.7","prettier":"^3.8.1","tsup":"^8.0.0","typescript":"^5.0.0","typescript-eslint":"^8.54.0"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git"},"homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","gitHead":"c63bd5fb63311a8025097b71a0a0714cf2be700d","_id":"@alliumcloud/asset-manager@3.4.15","bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-VCGaUsD/Pe/hvgdcUm+8XmIViGeptKfUnRGnQh2e6uOgh5St83vH7dx95Q/l5FDOlGblym2rTrMoY8XSg6agOw==","shasum":"70ae30db2b3942ee6d6479fa33e8f18734e605e8","tarball":"https://registry.npmjs.org/@alliumcloud/asset-manager/-/asset-manager-3.4.15.tgz","fileCount":8,"unpackedSize":203389,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICLiHhDB3yLP7PgMJoKcx6Ptt5m5nk4L1RuoFcgIygF7AiAsjuexkJ8/lhd5YKioT3zeyg19QM2lPOq1FlIk+Ai2lA=="}]},"_npmUser":{"name":"odyssey.stream","email":"reid@odyssey.stream"},"directories":{},"maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/asset-manager_3.4.15_1786790343690_0.2574791464459725"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-23T18:37:20.727Z","modified":"2026-08-15T10:39:03.994Z","1.0.0":"2026-05-23T18:37:20.972Z","1.0.1":"2026-06-16T18:10:05.384Z","1.1.0":"2026-06-25T20:09:31.263Z","1.1.1-dev.0":"2026-06-28T08:38:26.232Z","1.1.1-testing.0":"2026-06-28T08:38:45.278Z","1.1.1":"2026-06-28T08:39:01.535Z","1.1.2":"2026-07-08T18:09:05.048Z","1.1.3":"2026-07-09T04:29:56.935Z","1.1.4":"2026-07-13T23:53:31.818Z","3.4.1":"2026-07-13T23:56:47.322Z","3.4.2":"2026-07-15T17:42:06.499Z","3.4.3":"2026-07-15T19:31:35.071Z","3.4.4":"2026-07-21T16:44:19.392Z","3.4.5":"2026-07-22T12:05:13.138Z","3.4.6":"2026-07-25T06:57:25.598Z","3.4.7":"2026-07-26T05:07:37.770Z","3.4.8":"2026-07-27T19:38:24.650Z","3.4.9":"2026-07-30T19:14:49.301Z","3.4.10":"2026-08-02T17:38:25.804Z","3.4.11":"2026-08-06T05:11:00.748Z","3.4.12":"2026-08-07T02:43:59.502Z","3.4.13":"2026-08-13T04:37:57.991Z","3.4.14":"2026-08-14T17:11:50.275Z","3.4.15":"2026-08-15T10:39:03.833Z"},"bugs":{"url":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk/issues"},"author":{"name":"Allium Cloud"},"license":"MIT","homepage":"https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk#readme","keywords":["allium","asset-manager","sdk","upload","unreal"],"repository":{"type":"git","url":"git+https://github.com/New-Game-Plus-Inc/odyssey-asset-service-sdk.git"},"description":"Allium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.","maintainers":[{"name":"odyssey.stream","email":"reid@odyssey.stream"}],"readme":"# @alliumcloud/asset-manager\n\n[![npm version](https://img.shields.io/npm/v/@alliumcloud/asset-manager)](https://www.npmjs.com/package/@alliumcloud/asset-manager)\n[![npm downloads](https://img.shields.io/npm/dt/@alliumcloud/asset-manager)](https://www.npmjs.com/package/@alliumcloud/asset-manager)\n\nAllium Asset Manager SDK - maintains 3D asset uploads (unreal or other 3D files). Manages extraction, build, validation, volume copy creation of unreal projects.\n\n---\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Architecture](#architecture)\n- [Configuration](#configuration)\n- [Error Handling](#error-handling)\n- [Debug Logging](#debug-logging)\n- [API Reference](#api-reference)\n  - [Health](#health)\n  - [Assets](#assets)\n  - [Versions](#versions)\n  - [Users](#users)\n  - [Upload](#upload)\n  - [Sanitization](#sanitization)\n- [Types Reference](#types-reference)\n  - [Config](#config)\n  - [Common](#common)\n  - [Asset Types](#asset-types)\n  - [Version Types](#version-types)\n  - [User Types](#user-types)\n  - [Upload Types](#upload-types)\n  - [Health Types](#health-types)\n  - [Sanitization Types](#sanitization-types)\n  - [Error Types](#error-types)\n- [Versioning](#versioning)\n\n---\n\n## Installation\n\n```bash\nnpm install @alliumcloud/asset-manager\n# or\nyarn add @alliumcloud/asset-manager\n# or\npnpm add @alliumcloud/asset-manager\n```\n\n---\n\n## Quick Start\n\n```typescript\nimport { createAssetManagerSDK } from \"@alliumcloud/asset-manager\";\n\n// Initialize once\nconst sdk = createAssetManagerSDK({\n  apiKey: \"your-api-key\",\n  jwksUri: \"https://your-auth-domain/.well-known/jwks.json\", // JWKS is optional here\n  accessTokenProvider: async () => await yourAuthService.getToken(),\n});\n\n// Check server health\nconst health = await sdk.health.getHealth();\nconsole.log(health.status); // 'ok'\n\n// Fetch all assets for an org\nconst assets = await sdk.assets.getByOrg(\"your-org-id\");\n\n// Start a multipart upload\nconst session = await sdk.upload.initiate({\n  orgId: \"your-org-id\",\n  userId: \"your-user-id\",\n  assetType: \"UNREAL_PROJECT\",\n  assetFilename: \"MyProject.zip\",\n  unrealEngineVersion: \"5.2.1\",\n  target: \"Development\",\n  selfPackaged: true,\n});\n```\n\nYou can also use the namespace default export:\n\n```typescript\nimport AssetManagerSDK from \"@alliumcloud/asset-manager\";\n\nconst sdk = AssetManagerSDK.create({\n  apiKey: \"your-api-key\",\n  jwksUri: \"https://your-auth-domain/.well-known/jwks.json\", //optional\n  accessTokenProvider: async () => await yourAuthService.getToken(),\n});\n```\n\n---\n\n## Architecture\n\nThe SDK is structured as a set of isolated, focused modules. Each module handles one domain of the backend API. All modules share a single configured HTTP client that is created once at initialization.\n\n```\ncreateAssetManagerSDK({ apiKey, jwksUri, accessTokenProvider })\n│\n├── sdk.health        → /health\n├── sdk.assets        → /assets\n├── sdk.versions      → /unrealProjectVersion\n├── sdk.users         → /users\n├── sdk.upload        → /uploader\n└── sdk.sanitization  → /deepSanitization\n```\n\n**Key design decisions:**\n\n- The backend base URL is baked into the SDK at build time. You never pass a URL — it is not configurable by consumers.\n- Your API key is passed once at initialization and is automatically injected as `x-sdk-key` on every request.\n- All errors are normalized into typed `AlliumError` objects with a `code` and `name` so you can catch them reliably.\n- Debug logging is fully opt-in and zero-cost in production.\n\n---\n\n## Configuration\n\n```typescript\nimport {\n  createAssetManagerSDK,\n  AssetManagerSDKConfig,\n} from \"@alliumcloud/asset-manager\";\n\nconst sdk = createAssetManagerSDK({\n  apiKey: \"your-api-key\",\n  jwksUri: \"https://your-auth-domain/.well-known/jwks.json\",\n  accessTokenProvider: async () => await yourAuthService.getToken(),\n  timeout: 60_000,\n});\n```\n\n| Option                | Type                              | Required | Default | Description                                                                     |\n| --------------------- | --------------------------------- | -------- | ------- | ------------------------------------------------------------------------------- |\n| `apiKey`              | `string`                          | Yes      | —       | API key issued after SDK purchase. Sent as `x-sdk-key` header on every request. |\n| `jwksUri`             | `string`                          | No       | —       | JWKS endpoint URI. Sent as `x-jwks-uri` on every request.                       |\n| `accessTokenProvider` | `() => string \\| Promise<string>` | Yes      | —       | Called before every request to retrieve a Bearer token.                         |\n| `timeout`             | `number`                          | No       | `30000` | Request timeout in milliseconds.                                                |\n\n---\n\n## Error Handling\n\nAll SDK errors are instances of `AlliumError`. You can use `isAlliumError()` to safely narrow the type in catch blocks.\n\n```typescript\nimport { isAlliumError } from \"@alliumcloud/asset-manager\";\n\ntry {\n  const asset = await sdk.assets.getById(\"some-id\");\n} catch (err) {\n  if (isAlliumError(err)) {\n    console.log(err.name); // e.g. 'AlliumAuthError'\n    console.log(err.code); // e.g. 'AUTH_ERROR'\n    console.log(err.message); // human-readable description\n  }\n}\n```\n\n### Error Types\n\n| `err.name`              | `err.code`         | When it is thrown                                           |\n| ----------------------- | ------------------ | ----------------------------------------------------------- |\n| `AlliumConfigError`     | `INVALID_CONFIG`   | API key is missing or base URL not configured in the build. |\n| `AlliumAuthError`       | `AUTH_ERROR`       | Server returns `401` or `403` — key is invalid or expired.  |\n| `AlliumValidationError` | `VALIDATION_ERROR` | Server returns `400` or `422` — bad input data.             |\n| `AlliumUploadError`     | `UPLOAD_ERROR`     | Any failure on `/uploader/*` routes.                        |\n| `AlliumRequestError`    | `REQUEST_ERROR`    | Network failure, timeout, or any other `5xx` response.      |\n| `AlliumSDKError`        | `SDK_ERROR`        | Generic fallback for uncategorized errors.                  |\n\n---\n\n## Debug Logging\n\nThe SDK ships with a built-in debug logger that is completely silent by default. Enable it to see every outgoing request, response status, and module-level operation in your console.\n\n**In Node.js:**\n\n```bash\nAllium_DEBUG=true node your-script.js\n```\n\n**In the browser:**\n\n```javascript\nwindow.Allium_DEBUG = true;\n```\n\nAll log lines are prefixed with a timestamp and category:\n\n```\n[14:23:01.452][SDK:HTTP] → POST /uploader/initiate\n[14:23:01.891][SDK:HTTP] ← 200 /uploader/initiate\n[14:23:01.892][SDK:Upload] initiate { orgId: '...', assetId: '...' }\n```\n\n---\n\n## API Reference\n\n### Health\n\n#### `sdk.health.getHealth()`\n\nCheck if the backend service is running and healthy.\n\n```typescript\nconst health = await sdk.health.getHealth();\n```\n\n**Returns:** `Promise<HealthResponse>`\n\n```typescript\n{\n  status: \"ok\",\n  timestamp: \"2024-01-01T00:00:00.000Z\"\n}\n```\n\n---\n\n#### `sdk.health.getRedisHealth()`\n\nCheck Redis connection health and measure latency.\n\n```typescript\nconst redis = await sdk.health.getRedisHealth();\n```\n\n**Returns:** `Promise<RedisHealthResponse>`\n\n```typescript\n{\n  status: \"ok\",\n  latencyMs: 2\n}\n```\n\n---\n\n#### `sdk.health.testRedis()`\n\nRun a test write/read cycle on Redis. Useful for smoke-testing after deployment.\n\n```typescript\nawait sdk.health.testRedis();\n```\n\n**Returns:** `Promise<void>`\n\n---\n\n### Assets\n\n#### `sdk.assets.create(data)`\n\nCreate a new asset record.\n\n```typescript\nconst asset = await sdk.assets.create({\n  name: \"My Project\",\n  orgId: \"org-id\",\n  assetType: \"UNREAL_PROJECT\",\n  sourceType: \"UNIVERSAL_SCENE\",\n  storageBucket: \"my-bucket\",\n  storagePath: \"path/to/asset\",\n});\n```\n\n| Field           | Type         | Required | Description                         |\n| --------------- | ------------ | -------- | ----------------------------------- |\n| `name`          | `string`     | Yes      | Display name of the asset.          |\n| `orgId`         | `string`     | Yes      | Organization ID (UUID).             |\n| `assetType`     | `AssetType`  | Yes      | `\"UNREAL_PROJECT\"` or `\"OTHER_3D\"`. |\n| `sourceType`    | `SourceType` | Yes      | `\"UNIVERSAL_SCENE\"`.                |\n| `storageBucket` | `string`     | Yes      | GCS bucket name.                    |\n| `storagePath`   | `string`     | Yes      | GCS object path.                    |\n\n**Returns:** `Promise<AssetWithRelations>`\n\n---\n\n#### `sdk.assets.getAll()`\n\nFetch all assets across all organizations.\n\n```typescript\nconst assets = await sdk.assets.getAll();\n```\n\n**Returns:** `Promise<AssetWithRelations[]>`\n\n---\n\n#### `sdk.assets.getById(assetId)`\n\nFetch a single asset by its ID.\n\n```typescript\nconst asset = await sdk.assets.getById(\"asset-id\");\n```\n\n| Parameter | Type     | Description            |\n| --------- | -------- | ---------------------- |\n| `assetId` | `string` | The asset's unique ID. |\n\n**Returns:** `Promise<AssetWithRelations>`\n\n---\n\n#### `sdk.assets.getByOrg(orgId)`\n\nFetch all assets belonging to a specific organization.\n\n```typescript\nconst assets = await sdk.assets.getByOrg(\"org-id\");\n```\n\n| Parameter | Type     | Description                   |\n| --------- | -------- | ----------------------------- |\n| `orgId`   | `string` | The organization's unique ID. |\n\n**Returns:** `Promise<AssetWithRelations[]>`\n\n---\n\n#### `sdk.assets.getByProject(projectId)`\n\nFetch all assets belonging to a specific project.\n\n```typescript\nconst assets = await sdk.assets.getByProject(\"project-id\");\n```\n\n| Parameter   | Type     | Description              |\n| ----------- | -------- | ------------------------ |\n| `projectId` | `string` | The project's unique ID. |\n\n**Returns:** `Promise<AssetWithRelations[]>`\n\n---\n\n#### `sdk.assets.update(assetId, data)`\n\nUpdate one or more fields on an asset.\n\n```typescript\nconst updated = await sdk.assets.update(\"asset-id\", {\n  name: \"New Asset Name\",\n  buildStatus: \"COMPLETED\",\n  uploadId: \"gcs-upload-id\",\n  objectName: \"path/to/object.zip\",\n  unrealProject: {\n    displayName: \"Updated Display Name\",\n    unrealProjectVersion: \"1.0.1\",\n  },\n});\n```\n\n| Parameter | Type               | Description                                |\n| --------- | ------------------ | ------------------------------------------ |\n| `assetId` | `string`           | The asset's unique ID.                     |\n| `data`    | `UpdateAssetInput` | Fields to update. All fields are optional. |\n\n**`UpdateAssetInput` fields:**\n\n| Field              | Type                       | Description                                                       |\n| ------------------ | -------------------------- | ----------------------------------------------------------------- |\n| `name`             | `string`                   | New display name.                                                 |\n| `uploadStatus`     | `UploadStatus`             | `\"INITIATED\"` \\| `\"UPLOADING\"` \\| `\"COMPLETED\"` \\| `\"FAILED\"`     |\n| `validationStatus` | `ValidationStatus`         | `\"PENDING\"` \\| `\"VALID\"` \\| `\"INVALID\"`                           |\n| `buildStatus`      | `BuildStatus`              | `\"NOT_APPLICABLE\"` \\| `\"BUILDING\"` \\| `\"COMPLETED\"` \\| `\"FAILED\"` |\n| `uploadId`         | `string`                   | GCS multipart upload ID.                                          |\n| `objectName`       | `string`                   | GCS object name.                                                  |\n| `downloadUrl`      | `string`                   | Public download URL.                                              |\n| `unrealProject`    | `UpdateUnrealProjectInput` | Nested Unreal project fields to update.                           |\n| `other3d`          | `UpdateOther3dInput`       | Nested Other3D fields to update.                                  |\n| `thumb`            | `string`                   | Thumbnail URL.                                                    |\n| `description`      | `string`                   | Asset description.                                                |\n\n**Returns:** `Promise<AssetWithRelations>`\n\n---\n\n#### `sdk.assets.updateStatus(assetId, data)`\n\nUpdate only the status fields of an asset.\n\n```typescript\nconst updated = await sdk.assets.updateStatus(\"asset-id\", {\n  uploadStatus: \"COMPLETED\",\n  validationStatus: \"VALID\",\n  buildStatus: \"BUILDING\",\n});\n```\n\n| Parameter | Type                     | Description                                       |\n| --------- | ------------------------ | ------------------------------------------------- |\n| `assetId` | `string`                 | The asset's unique ID.                            |\n| `data`    | `UpdateAssetStatusInput` | Status fields to update. All fields are optional. |\n\n**`UpdateAssetStatusInput` fields:**\n\n| Field              | Type               | Description                                                       |\n| ------------------ | ------------------ | ----------------------------------------------------------------- |\n| `uploadStatus`     | `UploadStatus`     | `\"INITIATED\"` \\| `\"UPLOADING\"` \\| `\"COMPLETED\"` \\| `\"FAILED\"`     |\n| `validationStatus` | `ValidationStatus` | `\"PENDING\"` \\| `\"VALID\"` \\| `\"INVALID\"`                           |\n| `buildStatus`      | `BuildStatus`      | `\"NOT_APPLICABLE\"` \\| `\"BUILDING\"` \\| `\"COMPLETED\"` \\| `\"FAILED\"` |\n\n**Returns:** `Promise<AssetWithRelations>`\n\n---\n\n#### `sdk.assets.markAsUploaded(assetId)`\n\nShorthand to set `uploadStatus` to `\"COMPLETED\"`.\n\n```typescript\nawait sdk.assets.markAsUploaded(\"asset-id\");\n```\n\n**Returns:** `Promise<AssetWithRelations>`\n\n---\n\n#### `sdk.assets.markAsValidated(assetId)`\n\nShorthand to set `validationStatus` to `\"VALID\"`.\n\n```typescript\nawait sdk.assets.markAsValidated(\"asset-id\");\n```\n\n**Returns:** `Promise<AssetWithRelations>`\n\n---\n\n#### `sdk.assets.markAsFailed(assetId, stage)`\n\nShorthand to mark an asset as failed at a specific pipeline stage.\n\n```typescript\nawait sdk.assets.markAsFailed(\"asset-id\", \"upload\");\n```\n\n| Parameter | Type                                  | Description                          |\n| --------- | ------------------------------------- | ------------------------------------ |\n| `assetId` | `string`                              | The asset's unique ID.               |\n| `stage`   | `\"upload\" \\| \"validation\" \\| \"build\"` | The stage at which the asset failed. |\n\n**Returns:** `Promise<AssetWithRelations>`\n\n---\n\n#### `sdk.assets.uploadThumb(assetId, userId, file)`\n\nUpload a thumbnail image for an asset.\n\n```typescript\nconst updated = await sdk.assets.uploadThumb(\n  \"asset-id\",\n  \"user-id\",\n  file, // File | Blob\n);\n```\n\n| Parameter | Type           | Description                             |\n| --------- | -------------- | --------------------------------------- |\n| `assetId` | `string`       | The asset's unique ID.                  |\n| `userId`  | `string`       | ID of the user uploading the thumbnail. |\n| `file`    | `File \\| Blob` | The thumbnail image file.               |\n\n**Returns:** `Promise<AssetWithRelations>`\n\n---\n\n#### `sdk.assets.delete(assetId)`\n\nPermanently delete an asset record. For full deletion including GCS files and database footprint, use `sdk.sanitization.deleteProjectAndFootprint()` instead.\n\n```typescript\nawait sdk.assets.delete(\"asset-id\");\n```\n\n**Returns:** `Promise<void>`\n\n---\n\n### Versions\n\n#### `sdk.versions.create(data)`\n\nCreate a new Unreal project version record.\n\n```typescript\nconst version = await sdk.versions.create({\n  orgId: \"org-id\",\n  authorUserId: \"user-id\",\n  appType: \"unreal\",\n  unrealProjectId: \"unreal-project-id\",\n  name: \"v1.0.0\",\n  pluginVersionId: \"plugin-version-id\",\n  selfPackaged: true,\n  state: \"new\",\n  target: \"Development\",\n  uploader: \"uploader-id\",\n  packageArchiveSha256Sum: \"abc123\",\n  packageArchiveUrl: \"https://...\",\n  symbolsArchiveSha256Sum: \"def456\",\n  symbolsArchiveUrl: \"https://...\",\n  bridgeToolkitFileSettings: {},\n  stateChanges: {},\n  volumeCopyRegionsComplete: [],\n  volumeRegions: [\"ORD1\"],\n  volumeSizeGb: 10,\n  unrealEngineVersion: \"5.2.1\",\n});\n```\n\n**Required fields:**\n\n| Field                       | Type                         | Description                                |\n| --------------------------- | ---------------------------- | ------------------------------------------ |\n| `orgId`                     | `string`                     | Organization ID (UUID).                    |\n| `authorUserId`              | `string`                     | ID of the user creating the version.       |\n| `appType`                   | `string`                     | Application type identifier.               |\n| `unrealProjectId`           | `string`                     | Unreal project ID (CUID).                  |\n| `name`                      | `string`                     | Version name.                              |\n| `pluginVersionId`           | `string`                     | Plugin version ID.                         |\n| `selfPackaged`              | `boolean`                    | Whether the project was self-packaged.     |\n| `state`                     | `ProjectVersionState`        | Initial lifecycle state. See states below. |\n| `target`                    | `UnrealProjectVersionTarget` | `\"Development\"` or `\"Shipping\"`.           |\n| `uploader`                  | `string`                     | Uploader identifier.                       |\n| `packageArchiveSha256Sum`   | `string`                     | SHA-256 checksum of the package archive.   |\n| `packageArchiveUrl`         | `string`                     | URL of the package archive.                |\n| `symbolsArchiveSha256Sum`   | `string`                     | SHA-256 checksum of the symbols archive.   |\n| `symbolsArchiveUrl`         | `string`                     | URL of the symbols archive.                |\n| `bridgeToolkitFileSettings` | `Record<string, any>`        | Bridge toolkit file settings map.          |\n| `stateChanges`              | `Record<string, any>`        | State change history map.                  |\n| `volumeCopyRegionsComplete` | `string[]`                   | Regions where volume copy is complete.     |\n| `volumeRegions`             | `string[]`                   | Target volume regions.                     |\n| `volumeSizeGb`              | `number`                     | Volume size in GB.                         |\n\n**Optional fields:**\n\n| Field                          | Type                           | Description                            |\n| ------------------------------ | ------------------------------ | -------------------------------------- |\n| `buildRegion`                  | `string`                       | Preferred build region (max 10 chars). |\n| `unrealEngineVersion`          | `SupportedUnrealEngineVersion` | `\"5.0.3\"` or `\"5.2.1\"`.                |\n| `uploadId`                     | `string`                       | GCS upload ID.                         |\n| `objectName`                   | `string`                       | GCS object name.                       |\n| `downloadUrl`                  | `string`                       | Public download URL.                   |\n| `uploadSha256Sum`              | `string`                       | SHA-256 checksum of the upload.        |\n| `unrealProjectDirectoryPath`   | `string`                       | Path to the Unreal project directory.  |\n| `disableMultiplayer`           | `boolean`                      | Whether to disable multiplayer.        |\n| `lastPingFromBuilder`          | `Date`                         | Last ping timestamp from builder.      |\n| `lastPingFromVolumeCopyRegion` | `Date`                         | Last ping from volume copy region.     |\n| `levelFilePath`                | `string`                       | Path to the level file.                |\n| `levelName`                    | `string`                       | Unreal level name.                     |\n\n**Returns:** `Promise<UnrealProjectVersion>`\n\n---\n\n#### `sdk.versions.getById(versionId)`\n\nFetch a single Unreal project version by ID.\n\n```typescript\nconst version = await sdk.versions.getById(\"version-id\");\n```\n\n**Returns:** `Promise<UnrealProjectVersion>`\n\n---\n\n#### `sdk.versions.getByAsset(assetId)`\n\nFetch all versions associated with an asset.\n\n```typescript\nconst versions = await sdk.versions.getByAsset(\"asset-id\");\n```\n\n**Returns:** `Promise<UnrealProjectVersion[]>`\n\n---\n\n#### `sdk.versions.update(versionId, data)`\n\nUpdate any fields on a project version. Accepts any key-value pairs — all fields are optional.\n\n```typescript\nawait sdk.versions.update(\"version-id\", {\n  state: \"upload_complete\",\n  target: \"Shipping\",\n  unrealEngineVersion: \"5.2.1\",\n  levelName: \"MyLevel\",\n});\n```\n\n| Parameter   | Type                  | Description              |\n| ----------- | --------------------- | ------------------------ |\n| `versionId` | `string`              | The version's unique ID. |\n| `data`      | `Record<string, any>` | Fields to update.        |\n\n**Returns:** `Promise<UnrealProjectVersion>`\n\n---\n\n#### `sdk.versions.delete(versionId)`\n\nDelete a single project version by ID.\n\n```typescript\nawait sdk.versions.delete(\"version-id\");\n```\n\n**Returns:** `Promise<void>`\n\n---\n\n#### `sdk.versions.deleteByAsset(assetId)`\n\nDelete all versions associated with an asset.\n\n```typescript\nawait sdk.versions.deleteByAsset(\"asset-id\");\n```\n\n**Returns:** `Promise<void>`\n\n---\n\n### Users\n\n#### `sdk.users.getAll()`\n\nFetch all users.\n\n```typescript\nconst users = await sdk.users.getAll();\n```\n\n**Returns:** `Promise<User[]>`\n\n---\n\n#### `sdk.users.getById(userId)`\n\nFetch a single user by ID.\n\n```typescript\nconst user = await sdk.users.getById(\"user-id\");\n```\n\n**Returns:** `Promise<User>`\n\n---\n\n#### `sdk.users.create(data)`\n\nCreate a new user.\n\n```typescript\nconst user = await sdk.users.create({ id: \"custom-user-id\" });\n```\n\n| Field | Type     | Required | Description                                         |\n| ----- | -------- | -------- | --------------------------------------------------- |\n| `id`  | `string` | No       | Optional custom ID. Auto-generated if not provided. |\n\n**Returns:** `Promise<User>`\n\n---\n\n#### `sdk.users.update(userId, data)`\n\nUpdate a user.\n\n```typescript\nconst user = await sdk.users.update(\"user-id\", { id: \"new-id\" });\n```\n\n**Returns:** `Promise<User>`\n\n---\n\n#### `sdk.users.delete(userId)`\n\nDelete a user by ID.\n\n```typescript\nawait sdk.users.delete(\"user-id\");\n```\n\n**Returns:** `Promise<void>`\n\n---\n\n### Upload\n\nThe upload module manages the full multipart upload lifecycle. The typical flow is:\n\n```\ninitiate → batchGetSignedUrls → upload parts to GCS → complete\n                                                     ↘ abort + deleteRecords (on failure)\n```\n\n---\n\n#### `sdk.upload.initiate(data)`\n\nStart a new multipart upload session. Returns the `uploadId` and `objectName` needed for all subsequent upload calls.\n\n```typescript\nconst session = await sdk.upload.initiate({\n  orgId: \"org-id\",\n  projectId: \"project-id\",\n  userId: \"user-id\",\n  assetType: \"UNREAL_PROJECT\",\n  assetFilename: \"MyProject.zip\",\n  assetDisplayName: \"My Project\",\n  unrealEngineVersion: \"5.2.1\",\n  target: \"Development\",\n  selfPackaged: true,\n  volumeRegions: [\"ORD1\", \"LGA1\", \"LAS1\"],\n  buildRegion: \"ORD1\",\n});\n```\n\n**`InitiateUploadRequest` fields:**\n\n| Field                      | Type                           | Required | Description                              |\n| -------------------------- | ------------------------------ | -------- | ---------------------------------------- |\n| `orgId`                    | `string`                       | Yes      | Organization ID.                         |\n| `userId`                   | `string`                       | Yes      | Uploading user's ID.                     |\n| `assetType`                | `AssetType`                    | Yes      | `\"UNREAL_PROJECT\"` or `\"OTHER_3D\"`.      |\n| `assetFilename`            | `string`                       | Yes      | Original filename including extension.   |\n| `assetDisplayName`         | `string`                       | No       | Human-readable display name.             |\n| `unrealProjectId`          | `string`                       | No       | Existing Unreal project ID to attach to. |\n| `unrealProjectDisplayName` | `string`                       | No       | Unreal project display name.             |\n| `unrealEngineVersion`      | `SupportedUnrealEngineVersion` | No       | `\"5.0.3\"` or `\"5.2.1\"`.                  |\n| `selfPackaged`             | `boolean`                      | No       | Whether the project was self-packaged.   |\n| `target`                   | `UnrealProjectVersionTarget`   | No       | `\"Development\"` or `\"Shipping\"`.         |\n| `other_3dId`               | `string`                       | No       | Existing Other3D ID to attach to.        |\n| `other_3dDisplayName`      | `string`                       | No       | Other3D display name.                    |\n| `buildRegion`              | `string`                       | No       | Preferred build region.                  |\n| `volumeRegions`            | `string[]`                     | No       | Volume replication regions.              |\n\n**Returns:** `Promise<InitiateUploadResponse>`\n\n```typescript\n{\n  orgId: \"org-id\",\n  projectId: \"project-id\",\n  assetId: \"generated-asset-id\",\n  assetVersionId: \"generated-version-id\",\n  uploadId: \"gcs-upload-id\",\n  objectName: \"path/to/object.zip\"\n}\n```\n\n---\n\n#### `sdk.upload.batchGetSignedUrls(orgId, assetId, assetVersionId, uploadId, objectName, partNumbers)`\n\nFetch signed GCS upload URLs for multiple parts in a single request. Always prefer this over `getSignedUrl` for initial URL fetching — it eliminates per-part backend round trips.\n\n```typescript\nconst signedUrls = await sdk.upload.batchGetSignedUrls(\n  \"org-id\",\n  \"project-id\",\n  \"asset-id\",\n  \"asset-version-id\",\n  \"upload-id\",\n  \"path/to/object.zip\",\n  [1, 2, 3, 4, 5],\n);\n// { 1: 'https://...', 2: 'https://...', ... }\n```\n\n**Returns:** `Promise<Record<number, string>>` — map of part number to signed URL.\n\n---\n\n#### `sdk.upload.getSignedUrl(orgId, assetId, assetVersionId, uploadId, objectName, partNumber)`\n\nFetch a signed URL for a single part. Use this when retrying a failed part — pre-fetched URLs may have expired.\n\n```typescript\nconst url = await sdk.upload.getSignedUrl(\n  \"org-id\",\n  \"project-id\",\n  \"asset-id\",\n  \"asset-version-id\",\n  \"upload-id\",\n  \"path/to/object.zip\",\n  3,\n);\n```\n\n**Returns:** `Promise<string>` — the signed GCS URL.\n\n---\n\n#### `sdk.upload.complete(data)`\n\nComplete the multipart upload. Signals GCS to assemble all uploaded parts into the final object.\n\n```typescript\nawait sdk.upload.complete({\n  orgId: \"org-id\",\n  assetId: \"asset-id\",\n  assetType: \"UNREAL_PROJECT\",\n  assetVersionId: \"asset-version-id\",\n  uploadId: \"upload-id\",\n  objectName: \"path/to/object.zip\",\n  parts: [\n    { partNumber: 1, etag: \"abc123\" },\n    { partNumber: 2, etag: \"def456\" },\n  ],\n  sha256Sum: \"optional-checksum\",\n});\n```\n\n**`CompleteUploadRequest` fields:**\n\n| Field            | Type                                     | Required | Description                                      |\n| ---------------- | ---------------------------------------- | -------- | ------------------------------------------------ |\n| `orgId`          | `string`                                 | Yes      | Organization ID.                                 |\n| `assetId`        | `string`                                 | Yes      | Asset ID from `initiate`.                        |\n| `assetType`      | `AssetType`                              | Yes      | `\"UNREAL_PROJECT\"` or `\"OTHER_3D\"`.              |\n| `assetVersionId` | `string`                                 | Yes      | Version ID from `initiate`.                      |\n| `uploadId`       | `string`                                 | Yes      | Upload ID from `initiate`.                       |\n| `objectName`     | `string`                                 | Yes      | Object name from `initiate`.                     |\n| `parts`          | `{ partNumber: number; etag: string }[]` | Yes      | All uploaded parts with their ETags.             |\n| `failed`         | `boolean`                                | No       | Mark the upload as failed instead of completing. |\n| `sha256Sum`      | `string`                                 | No       | SHA-256 checksum of the complete file.           |\n\n**Returns:** `Promise<AssetWithRelations>`\n\n---\n\n#### `sdk.upload.abort(data)`\n\nAbort an in-progress multipart upload and clean up all parts from GCS.\n\n```typescript\nawait sdk.upload.abort({\n  orgId: \"org-id\",\n  assetId: \"asset-id\",\n  assetType: \"UNREAL_PROJECT\",\n  assetVersionId: \"asset-version-id\",\n  uploadId: \"upload-id\",\n  objectName: \"path/to/object.zip\",\n});\n```\n\n**Returns:** `Promise<void>`\n\n---\n\n#### `sdk.upload.deleteRecords(data)`\n\nDelete all database records for an upload session. Use after `abort` to fully clean up.\n\n```typescript\nawait sdk.upload.deleteRecords({\n  orgId: \"org-id\",\n  assetId: \"asset-id\",\n  assetType: \"UNREAL_PROJECT\",\n  assetVersionId: \"asset-version-id\",\n  uploadId: \"upload-id\",\n  objectName: \"path/to/object.zip\",\n});\n```\n\n**Returns:** `Promise<void>`\n\n---\n\n#### `sdk.upload.getSession(filename)`\n\nCheck the backend for an existing in-progress upload session matching a filename. Returns `null` if none found. Use on file select to enable upload resumption without any client-side storage.\n\n```typescript\nconst session = await sdk.upload.getSession(\"MyProject.zip\");\n\nif (session) {\n  const uploadedParts = await sdk.upload.listParts(\n    session.objectName,\n    session.uploadId,\n  );\n}\n```\n\n**Returns:** `Promise<UploadSession | null>`\n\n```typescript\n{\n  orgId: \"org-id\",\n  projectId: \"project-id\",\n  assetId: \"asset-id\",\n  assetVersionId: \"asset-version-id\",\n  uploadId: \"upload-id\",\n  objectName: \"path/to/object.zip\"\n}\n```\n\n---\n\n#### `sdk.upload.listParts(objectName, uploadId)`\n\nList all parts already uploaded to GCS for a given upload session. Use after `getSession` to determine which parts still need to be uploaded.\n\n```typescript\nconst parts = await sdk.upload.listParts(\"path/to/object.zip\", \"upload-id\");\n// [{ partNumber: 1, etag: 'abc123' }, { partNumber: 2, etag: 'def456' }]\n```\n\n**Returns:** `Promise<UploadPart[]>` — returns empty array if no parts found or on error.\n\n---\n\n### Sanitization\n\n#### `sdk.sanitization.deleteProjectAndFootprint(assetId)`\n\nFully and irreversibly delete an asset and its entire footprint — GCS files, Kubernetes PVCs, and all database records. This is a destructive operation.\n\n```typescript\nconst report = await sdk.sanitization.deleteProjectAndFootprint(\"asset-id\");\n```\n\n**Returns:** `Promise<DeleteProjectReport>`\n\n```typescript\n{\n  assetId: \"asset-id\",\n  assetType: \"UNREAL_PROJECT\",\n  orgId: \"org-id\",\n  projectId: \"project-id\",\n  fullyDeleted: true,\n  steps: [\n    { step: \"GCS.unrealProject\", success: true },\n    { step: \"K8s.PVC\", success: true, skipped: false },\n    { step: \"DB.deleteAll\", success: true }\n  ]\n}\n```\n\nIf some steps fail, `fullyDeleted` will be `false` and the HTTP status will be `207 Partial Content`. Always check `steps` to see which resources could not be removed.\n\n---\n\n## Types Reference\n\nAll types are exported directly from the package root:\n\n```typescript\nimport type { ... } from \"@alliumcloud/odyssey-asset-manager-sdk\";\n```\n\n---\n\n### Config\n\n```typescript\ntype AssetManagerSDKConfig = {\n  apiKey: string;\n  jwksUri: string;\n  accessTokenProvider: () => string | Promise<string>;\n  timeout?: number;\n};\n```\n\n---\n\n### Common\n\nShared enums and constants used across all modules.\n\n```typescript\ntype AssetType = \"UNREAL_PROJECT\" | \"OTHER_3D\";\n\ntype UploadStatus = \"INITIATED\" | \"UPLOADING\" | \"COMPLETED\" | \"FAILED\";\n\ntype BuildStatus = \"NOT_APPLICABLE\" | \"BUILDING\" | \"COMPLETED\" | \"FAILED\";\n\ntype ValidationStatus = \"PENDING\" | \"VALID\" | \"INVALID\";\n\ntype SourceType = \"UNIVERSAL_SCENE\";\n\ntype SupportedUnrealEngineVersion = \"5.0.3\" | \"5.2.1\";\n\ntype UnrealProjectVersionTarget = \"Development\" | \"Shipping\";\n\ntype ProjectVersionState =\n  | \"new\"\n  | \"odyssey_plugin_version_invalid\"\n  | \"failed_missing_unreal_plugin_version\"\n  | \"failed_missing_unreal_project\"\n  | \"failed_missing_package_archive_url\"\n  | \"failed_missing_package_archive_checksum\"\n  | \"upload_complete\"\n  | \"upload_invalid\"\n  | \"upload_failed\"\n  | \"upload_validating\"\n  | \"builder_pod_creating\"\n  | \"builder_pod_failed_to_create\"\n  | \"builder_pod_timed_out_creating\"\n  | \"builder_pod_waiting_for_ready\"\n  | \"builder_pod_failed\"\n  | \"builder_pod_ready\"\n  | \"builder_downloading_project_version\"\n  | \"builder_downloading_project_version_failed\"\n  | \"builder_finding_project_file_failed\"\n  | \"builder_copying_plugin_version\"\n  | \"builder_copying_plugin_version_failed\"\n  | \"builder_downloading_plugin_version\"\n  | \"builder_downloading_plugin_version_failed\"\n  | \"builder_validating\"\n  | \"builder_validation_failed\"\n  | \"builder_update_unreal_project_name\"\n  | \"builder_settings_uploaded\"\n  | \"builder_building\"\n  | \"builder_failed\"\n  | \"builder_retrying\"\n  | \"builder_uploading\"\n  | \"builder_upload_failed\"\n  | \"builder_upload_complete\"\n  | \"package_validator_required\"\n  | \"package_validator_pod_creating\"\n  | \"package_validator_pod_failed_to_create\"\n  | \"package_validator_pod_waiting_for_ready\"\n  | \"package_validator_pod_timed_out\"\n  | \"package_validator_pod_ready\"\n  | \"package_validator_failed\"\n  | \"package_validator_retrying\"\n  | \"package_validator_validating\"\n  | \"package_validator_updating_unreal_project_name\"\n  | \"package_validator_updating_project_path\"\n  | \"package_validator_complete\"\n  | \"volume_copy_pvcs_creating\"\n  | \"volume_copy_pvcs_bound\"\n  | \"volume_copy_pvcs_failed\"\n  | \"volume_copy_pods_creating\"\n  | \"volume_copy_pods_failed_to_create\"\n  | \"volume_copy_pods_timed_out_creating\"\n  | \"volume_copy_pods_waiting_for_ready\"\n  | \"volume_copy_pods_failed\"\n  | \"volume_copy_pods_ready\"\n  | \"volume_copy_region_copying\"\n  | \"volume_copy_region_failed\"\n  | \"volume_copy_region_complete\"\n  | \"volume_copy_failed\"\n  | \"volume_copy_retrying\"\n  | \"volume_copy_complete\"\n  | \"volume_copy_expiring\"\n  | \"volume_copy_expired\"\n  | \"expiring\"\n  | \"expired\";\n\ntype ProjectVersionStateGroup =\n  | \"uploading\"\n  | \"validating\"\n  | \"building\"\n  | \"deploying\"\n  | \"complete\"\n  | \"failed\"\n  | \"uploaded\"\n  | \"expired\";\n```\n\n---\n\n### Asset Types\n\n```typescript\ntype AssetResponse = {\n  id: string;\n  name: string;\n  orgId: string;\n  projectId: string;\n  assetType: AssetType;\n  sourceType: SourceType;\n  uploadStatus: UploadStatus;\n  validationStatus: ValidationStatus;\n  buildStatus: BuildStatus;\n  uploadId: string | null;\n  objectName: string | null;\n  downloadUrl: string | null;\n  thumb: string | null;\n  description: string | null;\n  createdAt: Date;\n  updatedAt: Date;\n};\n\ntype UnrealProjectResponse = {\n  assetId: string;\n  orgId: string;\n  projectId: string;\n  displayName: string;\n  unrealProjectVersion: string;\n  unrealPluginVersion: string;\n  versions?: UnrealProjectVersion[];\n  createdAt: Date;\n  updatedAt: Date;\n};\n\ntype Other3dResponse = {\n  assetId: string;\n  orgId: string;\n  projectId: string;\n  displayName: string;\n  unrealPluginVersion: string;\n  createdAt: Date;\n  updatedAt: Date;\n};\n\ntype AssetWithRelations = AssetResponse & {\n  unrealProjects?: UnrealProjectResponse[];\n  other3d?: Other3dResponse[];\n};\n\ntype CreateAssetInput = {\n  name: string;\n  orgId: string;\n  assetType: AssetType;\n  sourceType: SourceType;\n  storageBucket: string;\n  storagePath: string;\n};\n\ntype UpdateUnrealProjectInput = {\n  displayName?: string;\n  unrealProjectVersion?: string;\n  unrealPluginVersion?: string;\n};\n\ntype UpdateOther3dInput = {\n  displayName?: string;\n  unrealPluginVersion?: string;\n};\n\ntype UpdateAssetInput = {\n  name?: string;\n  uploadStatus?: UploadStatus;\n  validationStatus?: ValidationStatus;\n  buildStatus?: BuildStatus;\n  uploadId?: string;\n  objectName?: string;\n  downloadUrl?: string;\n  thumb?: string;\n  description?: string;\n  unrealProject?: UpdateUnrealProjectInput;\n  other3d?: UpdateOther3dInput;\n};\n\ntype UpdateAssetStatusInput = {\n  uploadStatus?: UploadStatus;\n  validationStatus?: ValidationStatus;\n  buildStatus?: BuildStatus;\n};\n\ntype CreateAssetWithUnrealProjectInput = {\n  assetData: CreateAssetInput;\n  unrealProjectData: {\n    displayName: string;\n    unrealProjectVersion: string;\n    unrealPluginVersion: string;\n  };\n};\n\ntype CreateAssetWithOther3dInput = {\n  assetData: CreateAssetInput;\n  other3dData: {\n    displayName: string;\n    unrealPluginVersion: string;\n  };\n};\n```\n\n---\n\n### Version Types\n\n```typescript\ntype UnrealProjectVersion = {\n  id: string;\n  orgId: string;\n  projectId: string;\n  authorUserId: string;\n  appType: string;\n  unrealProjectId: string;\n  buildRegion: string | null;\n  levelFilePath: string | null;\n  levelName: string | null;\n  name: string;\n  packageArchiveSha256Sum: string;\n  packageArchiveUrl: string;\n  pluginVersionId: string;\n  selfPackaged: boolean;\n  state: ProjectVersionState;\n  stateGroup: ProjectVersionStateGroup;\n  symbolsArchiveSha256Sum: string;\n  symbolsArchiveUrl: string;\n  bridgeToolkitFileSettings: Record<string, any>;\n  stateChanges: Record<string, any>;\n  target: UnrealProjectVersionTarget;\n  uploader: string;\n  uploadId: string | null;\n  objectName: string | null;\n  downloadUrl: string | null;\n  uploadSha256Sum: string | null;\n  unrealEngineVersion: SupportedUnrealEngineVersion | null;\n  volumeCopyRegionsComplete: string[];\n  volumeRegions: string[];\n  volumeSizeGb: number;\n  unrealProjectDirectoryPath: string | null;\n  disableMultiplayer: boolean | null;\n  lastPingFromBuilder: Date | null;\n  lastPingFromVolumeCopyRegion: Date | null;\n  createdAt: Date;\n  updatedAt: Date;\n};\n\n// See CreateUnrealProjectVersionInput fields in the Versions API section above.\ntype UpdateUnrealProjectVersionInput = Record<string, any>;\n```\n\n---\n\n### User Types\n\n```typescript\ntype User = {\n  id: string;\n  createdAt: Date;\n  updatedAt: Date;\n};\n\ntype CreateUserInput = {\n  id?: string;\n};\n\ntype UpdateUserInput = {\n  id?: string;\n};\n```\n\n---\n\n### Upload Types\n\n```typescript\ntype InitiateUploadRequest = {\n  orgId: string;\n  userId: string;\n  assetType: AssetType;\n  assetFilename: string;\n  assetDisplayName?: string;\n  unrealProjectId?: string;\n  unrealProjectDisplayName?: string;\n  unrealEngineVersion?: SupportedUnrealEngineVersion;\n  selfPackaged?: boolean;\n  target?: UnrealProjectVersionTarget;\n  other_3dId?: string;\n  other_3dDisplayName?: string;\n  buildRegion?: string;\n  volumeRegions?: string[];\n};\n\ntype InitiateUploadResponse = {\n  orgId: string;\n  projectId: string;\n  assetId: string;\n  assetVersionId: string;\n  uploadId: string;\n  objectName: string;\n};\n\ntype CompleteUploadRequest = {\n  orgId: string;\n  assetId: string;\n  assetType: AssetType;\n  assetVersionId: string;\n  uploadId: string;\n  objectName: string;\n  parts: { partNumber: number; etag: string }[];\n  failed?: boolean;\n  sha256Sum?: string;\n};\n\ntype AbortUploadRequest = {\n  orgId: string;\n  assetId: string;\n  assetType: AssetType;\n  assetVersionId: string;\n  uploadId: string;\n  objectName: string;\n};\n\ntype UploadSession = {\n  orgId: string;\n  assetId: string;\n  assetVersionId: string;\n  uploadId: string;\n  objectName: string;\n};\n\ntype UploadPart = {\n  partNumber: number;\n  etag: string;\n};\n```\n\n---\n\n### Health Types\n\n```typescript\ntype HealthResponse = {\n  status: string;\n  timestamp: string;\n};\n\ntype RedisHealthResponse = {\n  status: string;\n  latencyMs?: number;\n};\n```\n\n---\n\n### Sanitization Types\n\n```typescript\ntype DeletionStepResult = {\n  step: string;\n  success: boolean;\n  skipped?: boolean;\n  error?: string;\n};\n\ntype DeleteProjectReport = {\n  assetId: string;\n  assetType: \"UNREAL_PROJECT\" | \"OTHER_3D\";\n  orgId: string;\n  projectId: string;\n  steps: DeletionStepResult[];\n  fullyDeleted: boolean;\n};\n```\n\n---\n\n### Error Types\n\n```typescript\ninterface OdysseyError extends Error {\n  readonly code: string; // Machine-readable error code\n  readonly name: string; // Human-readable error name\n  readonly message: string; // Description of what went wrong\n}\n\n// Type guard — use in catch blocks to narrow the error type\nfunction isOdysseyError(err: unknown): err is OdysseyError;\n```\n\n---\n\n## Complete Upload Example\n\nA full end-to-end multipart upload with session recovery and error handling:\n\n```typescript\nimport {\n  createAssetManagerSDK,\n  isOdysseyError,\n} from \"@alliumcloud/odyssey-asset-manager-sdk\";\n\nconst sdk = createAssetManagerSDK({\n  apiKey: \"your-api-key\",\n  jwksUri: \"https://your-auth-domain/.well-known/jwks.json\",\n  accessTokenProvider: async () => await yourAuthService.getToken(),\n});\n\nasync function uploadAsset(\n  file: File,\n  orgId: string,\n  userId: string,\n) {\n  const PART_SIZE = 50 * 1024 * 1024; // 50MB per part\n  const totalParts = Math.ceil(file.size / PART_SIZE);\n\n  let session;\n  let uploadedParts: { partNumber: number; etag: string }[] = [];\n\n  try {\n    // 1. Check for an existing session (resume support)\n    const existing = await sdk.upload.getSession(file.name);\n\n    if (existing) {\n      session = existing;\n      uploadedParts = await sdk.upload.listParts(\n        session.objectName,\n        session.uploadId,\n      );\n      console.log(\n        `Resuming upload — ${uploadedParts.length} parts already done`,\n      );\n    } else {\n      // 2. Initiate a fresh upload\n      session = await sdk.upload.initiate({\n        orgId,\n        userId,\n        assetType: \"UNREAL_PROJECT\",\n        assetFilename: file.name,\n        unrealEngineVersion: \"5.2.1\",\n        target: \"Development\",\n        selfPackaged: true,\n      });\n    }\n\n    const { assetId, assetVersionId, uploadId, objectName } = session;\n    const uploadedPartNumbers = new Set(uploadedParts.map((p) => p.partNumber));\n    const remainingParts = Array.from(\n      { length: totalParts },\n      (_, i) => i + 1,\n    ).filter((n) => !uploadedPartNumbers.has(n));\n\n    // 3. Fetch signed URLs for remaining parts in one request\n    const signedUrls = await sdk.upload.batchGetSignedUrls(\n      orgId,\n      assetId,\n      assetVersionId,\n      uploadId,\n      objectName,\n      remainingParts,\n    );\n\n    // 4. Upload each remaining part\n    for (const partNumber of remainingParts) {\n      const start = (partNumber - 1) * PART_SIZE;\n      const chunk = file.slice(start, start + PART_SIZE);\n\n      const response = await fetch(signedUrls[partNumber], {\n        method: \"PUT\",\n        body: chunk,\n      });\n\n      const etag = response.headers.get(\"ETag\")!;\n      uploadedParts.push({ partNumber, etag });\n    }\n\n    // 5. Complete the upload\n    await sdk.upload.complete({\n      orgId,\n      assetId,\n      assetType: \"UNREAL_PROJECT\",\n      assetVersionId,\n      uploadId,\n      objectName,\n      parts: uploadedParts.sort((a, b) => a.partNumber - b.partNumber),\n    });\n\n    console.log(\"Upload complete:\", assetId);\n    return assetId;\n  } catch (err) {\n    if (isOdysseyError(err)) {\n      console.error(`[${err.name}] ${err.message}`);\n\n      // Clean up on upload-specific failures\n      if (err.code === \"UPLOAD_ERROR\" && session) {\n        await sdk.upload.abort({\n          orgId,\n          assetId: session.assetId,\n          assetType: \"UNREAL_PROJECT\",\n          assetVersionId: session.assetVersionId,\n          uploadId: session.uploadId,\n          objectName: session.objectName,\n        });\n        await sdk.upload.deleteRecords({\n          orgId,\n          assetId: session.assetId,\n          assetType: \"UNREAL_PROJECT\",\n          assetVersionId: session.assetVersionId,\n          uploadId: session.uploadId,\n          objectName: session.objectName,\n        });\n      }\n    }\n    throw err;\n  }\n}\n```\n\n---\n\n## Versioning\n\nThis SDK follows semantic versioning:\n\n| Bump              | When                                                     |\n| ----------------- | -------------------------------------------------------- |\n| `patch` — `x.x.1` | Bug fixes, no API changes.                               |\n| `minor` — `x.1.0` | New methods or fields added, fully backwards compatible. |\n| `major` — `2.0.0` | Breaking changes to existing method signatures or types. |\n\n---\n\n## License\n\nPrivate — Odyssey Internal Use Only\n","readmeFilename":"README.md"}