{"_id":"@alphayard/appkit","_rev":"17-e871df3b11ed419a630ed55cd2176b7f","name":"@alphayard/appkit","dist-tags":{"latest":"1.7.0"},"versions":{"1.1.0":{"name":"@alphayard/appkit","version":"1.1.0","keywords":["appkit","identity","auth","oauth","oidc","pkce","mfa","sdk"],"license":"MIT","_id":"@alphayard/appkit@1.1.0","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"31318e85e6247bfe2b37a43aa7b93e1e6e9ecbcb","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.1.0.tgz","fileCount":6,"integrity":"sha512-fv4I50hqw9n8fCFRRPdyNVSbaIsqgskTU6xdJCdzLRAkGH92Ff4rHL2PeGS0eYi8xjdlvhCKqsrA4QutGZ4G0Q==","signatures":[{"sig":"MEUCIQDZdr95SSDuvxjnoa0JSYsKUMdVrhiDCiMIIiv6ovSZcAIgEn9bQV/I3pppIeXQ4PvWIhDXBwgLRbjL7SSanQrtBnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197069},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2c5184606e24bd83f0ae89b2ff0c70aaba3ba30b","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"10.9.0","description":"AlphaYard AppKit SDK - Client-side SDK for authentication, identity management, and platform integration","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.3.0"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/appkit_1.1.0_1773558448768_0.44328318040440884","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alphayard/appkit","version":"1.2.0","keywords":["appkit","identity","auth","oauth","oidc","pkce","mfa","sdk"],"license":"MIT","_id":"@alphayard/appkit@1.2.0","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"c48d8f3d25d9bb6c69eccbc7d6f4ecf1959289df","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.2.0.tgz","fileCount":6,"integrity":"sha512-MtM+Q+z0auYULrsUPAWurZ6hlTFhwU02Fu4HedsLlXmhYU87X7Rlpq/Dh2O6GI3LHlWIPh2/gUUB0gS6GHQN8A==","signatures":[{"sig":"MEUCIQC5chGsOIQhN3IihCqLG7ZkYHvFVSkdxIpwMb8GgVcnCAIgJyf5tASL8+KGFYIm/mKN60JiF6ktZdL02svSnljwMdc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199373},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bf057d8ac50332c04bc972608e567ce62ef1a008","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"10.9.0","description":"AlphaYard AppKit SDK - Client-side SDK for authentication, identity management, and platform integration","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/appkit_1.2.0_1773761164274_0.957891018631257","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@alphayard/appkit","version":"1.3.0","keywords":["appkit","identity","auth","oauth","oidc","pkce","mfa","sdk"],"license":"MIT","_id":"@alphayard/appkit@1.3.0","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"2dabb7d781f7f6d76f2cd0d8e4e3c1d2ac571f2f","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.3.0.tgz","fileCount":6,"integrity":"sha512-2QUqYY4E82VV82BQElMxd4eFUju42w3d5nyfmeoo/BDwWIvotg89PDokyJIEa2weRlSaSyBt1jFZ20jxx1T2fw==","signatures":[{"sig":"MEUCIEEfkOGLPXV1gKUjbh26Bm85qZmWRN51EdUcQz+Am25lAiEAkq6ZPWpzfGb053XISxiw9fGg0Y/Gk54m+e9DbswcMMY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208381},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7cbc29aeb47b5e66ae41b7c9a23e085e3ebc1df4","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"10.9.0","description":"AlphaYard AppKit SDK - Client-side SDK for authentication, identity management, and platform integration","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/appkit_1.3.0_1774014205655_0.8644094834318481","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@alphayard/appkit","version":"1.3.1","keywords":["appkit","identity","auth","oauth","oidc","pkce","mfa","sdk"],"license":"MIT","_id":"@alphayard/appkit@1.3.1","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"bdc207fc2201ce222d64bdca771ad3ed6940ace7","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.3.1.tgz","fileCount":6,"integrity":"sha512-bkNcrHqYGWJOCFuN1tenslRegw4YWI/DWoWKGprvxqrEwm+n7LaHP+Pecq2clhFpr9zpCjT43/ot6ExS3pAOqg==","signatures":[{"sig":"MEQCIGniSVMIkAsEZnnhIGZ8ymojku7fTtyWmxM3Tvpdi1+EAiBXurEM9K+BhBZuhc7NFLcLjtA7KYRcuz6IA7ASsORoUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225883},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"cc4f4d0b3b5814c0784fc79cb4a1764757a9fd20","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"10.9.0","description":"AlphaYard AppKit SDK - Client-side SDK for authentication, identity management, and platform integration","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/appkit_1.3.1_1774113002134_0.44672208051083007","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@alphayard/appkit","version":"1.3.2","license":"UNLICENSED","_id":"@alphayard/appkit@1.3.2","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"eef2d47bbe39f0072cd0229ff33a05f0b93b7a42","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.3.2.tgz","fileCount":5,"integrity":"sha512-h/NG6p+QcmwVx00s3W23v7Gmfcy+a0kL+H9j74l/D5pRSG/9Nhai5ihk+dpIuPdhlg9xuaau3Joed4EZro3FFw==","signatures":[{"sig":"MEUCIAbewAqy+kouHuR/1ohygLLOZh1s1ahy2i6Kzglj4dUaAiEAmiYCI2w11TgyFSwshpGRRAg4B9Cp+3AYikpww95BL6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89550},"main":"dist/index.js","types":"src/index.ts","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./src/index.ts","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"55c8c667f10d2be6fd71e9cd759f1939640947e4","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.3.2_1778772196377_0.8055796479302637","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@alphayard/appkit","version":"1.3.3","license":"UNLICENSED","_id":"@alphayard/appkit@1.3.3","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"9098d642cd451437d0207d45b4e9fa7a1bf6c3a3","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.3.3.tgz","fileCount":5,"integrity":"sha512-DHNpQgj1GmLUrm8Rccil0VqU4jTExyXHsU3rDAiZ+Bp8xzLxFB6N9XzE/jqSO4GaQhFQ70Qi/9iqarMKKQa9bw==","signatures":[{"sig":"MEUCIQDZ5FE8sJmAmKZHtNQE6uw/zyg9SL74Isk7udWf2/7gkgIge0lrAYMDNNd5s02o2jUw2MjXuNqcO63aYgCLp4O6BhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96396},"main":"dist/index.js","types":"src/index.ts","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./src/index.ts","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"677c3c4c01cb5c98d97d267c0f38d6ca6a32aa6e","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.3.3_1778935219475_0.9341046640949278","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@alphayard/appkit","version":"1.3.4","license":"UNLICENSED","_id":"@alphayard/appkit@1.3.4","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"8dad065117a4c596710fa6127eaaa02b3416534f","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.3.4.tgz","fileCount":5,"integrity":"sha512-34RfyNIDf53EfE0keVXe6W5NFzzFI/3fNDtG+vq8oPC8DAVB6cawgA3NY4NODGMKESr/vMtsnfs1dMfHIYexCQ==","signatures":[{"sig":"MEUCIQDS0B2RQxjfTD+41v0sMh8MCK6UWgAT+63k2MgxJdOaqQIgJCMA+ZW9E25ypKJiuVR5Hbehco4v7fOV145d+10OyLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98717},"main":"dist/index.js","types":"src/index.ts","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./src/index.ts","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"962b195495f4092644a017193863dfac12605680","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.3.4_1778959027817_0.7726165051424145","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"@alphayard/appkit","version":"1.3.5","license":"UNLICENSED","_id":"@alphayard/appkit@1.3.5","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"029cc80172587ae441f6d7441407fbe2f7381894","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.3.5.tgz","fileCount":5,"integrity":"sha512-k0KVvKXfBt2NIxIssFoJmcwOha9+IstV2NWVwV8IiyU6Y9lVHv5ZcJeGXL5d94zan2ZaLo1v5VmcAOpTD0BAdA==","signatures":[{"sig":"MEUCIQCYgrEpWAFnAVto84taKYDuk4JH+Qj/YB1Yoj7+GU+LowIgEY65DxZ/i/TlUBiA42o/DTHKlYWZFyfzaA8FQoCtaPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98717},"main":"dist/index.js","types":"src/index.ts","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./src/index.ts","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"6510f959a1f9f84db0d3e277e5c30adca6fb0cd4","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.3.5_1778960925626_0.9391310008092673","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"@alphayard/appkit","version":"1.3.6","license":"UNLICENSED","_id":"@alphayard/appkit@1.3.6","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"600b226742a42c6375ed9479063d541704ac35d9","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.3.6.tgz","fileCount":5,"integrity":"sha512-fWURukuFnYYgIs4ARVYPgd2sOS8Xir6n//z1sUG8IaXofK86xfUGK5cH7ue65UjbNIB2QS25Dg8btBZhzjisVA==","signatures":[{"sig":"MEQCIAvA87VGDxwiKgVFCmWKIdamDl1K04z/y9M3iUKfGrqFAiBIO2jF0Xd7X7SyOA1naV7kRWh3h8GALTIjUP+NDJX6lA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98717},"main":"dist/index.js","types":"src/index.ts","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./src/index.ts","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"c388804015383eb6301df213b7f3c4ce5509b749","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.3.6_1780477965785_0.30037957381486713","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"@alphayard/appkit","version":"1.3.7","license":"UNLICENSED","_id":"@alphayard/appkit@1.3.7","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"86aaca52cfce1269eb1f2b229454d2e3659c5d89","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.3.7.tgz","fileCount":5,"integrity":"sha512-EjJ/PdBCGcSquTqSo26THb0btDmrAkVq/+ZFbnBh0mK5irxGDVMaGfllI7f4MWmJTXguP4X96Fs+O8pYKlcMXg==","signatures":[{"sig":"MEUCIQCvcHVpXOIgeE+mGe9LZdEELniaJHG9KRIqOUdgk5DSGAIgZ1ugTZey1IE5Ixum40i0yMiEJ12X4STtJgkYDW08cFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119539},"main":"dist/index.js","types":"src/index.ts","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./src/index.ts","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"69e6a2d5644cbca44584671d8d00a76b33a5b3bc","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.3.7_1780498878607_0.25985653756455496","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@alphayard/appkit","version":"1.4.0","license":"UNLICENSED","_id":"@alphayard/appkit@1.4.0","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"841b5b1d94d1690eb8b752147ddc407213ca6873","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.4.0.tgz","fileCount":5,"integrity":"sha512-Mj4QzpMkuZZxdMdPpd1rc9+IBj1KgErKWymLUFM8Ro6lBAHUAq6wo77Tn49fCgW49pVSgqTs++AdglX4I8a5LQ==","signatures":[{"sig":"MEUCIQCDagpsEhvkxCtE/E2ZHLG44ElNu8LzELduGWM+VninWQIgcdeETGq6w7++ljejn+MQDQ1gge5PEC2CQyAjME7qrP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149149},"main":"dist/index.js","types":"src/index.ts","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./src/index.ts","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"4e6b14cc226bf9d2124001e0fd4ed96ef6035244","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.4.0_1780794402941_0.6367571812421293","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@alphayard/appkit","version":"1.4.1","license":"UNLICENSED","_id":"@alphayard/appkit@1.4.1","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"16568691ae7465d0438068c89b1e33f57604fd12","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.4.1.tgz","fileCount":5,"integrity":"sha512-XGj0KvytusDWnTuq58RehJrsXyq23gftY9TNm0Fif5EaJx+SQ4BoQzDx7BW/wGLaqjDd5BT6sALmxmA7DLQbPA==","signatures":[{"sig":"MEUCIHzBC5gUiTfuNQoKRlrn+oGwAaXfu7ss94vBoWNrPtJDAiEAwUBQkZ+Gb4IM/ypORECthSrIrnRqhWtETlkkuE2EZqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151782},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"92ee12b2aef963072768b1d121cee4e13f8a3ae9","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.4.1_1780797778902_0.28213554809732333","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@alphayard/appkit","version":"1.4.2","license":"UNLICENSED","_id":"@alphayard/appkit@1.4.2","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"e8ea1e38caa250964cdd648582ab203683f882da","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.4.2.tgz","fileCount":5,"integrity":"sha512-upPiJf0eIh5fOWYMcw7N0zuy7ptwYtlomGUX5irGbb6Vv3wBTZJgR00i5GXeCDnP5R3S1yaruRr6kpv4EGJt/g==","signatures":[{"sig":"MEQCICYAaxstvjwmcU+K/fT7fIFMNjLOE0jjJTv7LX/gx8R4AiA/aGen0cHqATaE0jHYxuQB66tphsdlZOEBB/ir64Xfmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167777},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"c309c2da75d48ff8076ec8b799d206068793af41","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.4.2_1784375070194_0.992679704790352","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@alphayard/appkit","version":"1.5.0","license":"UNLICENSED","_id":"@alphayard/appkit@1.5.0","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"9983acbd50af24ce1d78e5b8070bca254aaf1673","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.5.0.tgz","fileCount":5,"integrity":"sha512-tmuOPqfy/Tf/b6jt44GL5AX/JSqW10vUt/+G0ltUty9JR+m2Vv/GsMrX2yPEo3+zXMscQvegOwT4KRxDImpXFA==","signatures":[{"sig":"MEYCIQDhqhPOzB4KnJP+oh2UynNsz/D+4hCzQrGJaHNp3KSUZwIhAOLE+Q8tUXNydQxoKwpNzdRjbESzozjPUhSwonxS0Z3o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193391},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"d1ca2f9059d84b037b4d8631193d32f2bb6162ef","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.5.0_1785492533302_0.5465846219257104","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@alphayard/appkit","version":"1.5.1","license":"UNLICENSED","_id":"@alphayard/appkit@1.5.1","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"8b910a40fc497022dcbc1d6f65910332434e45ca","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.5.1.tgz","fileCount":5,"integrity":"sha512-cQcPAV52Is27n+jxP1SRW/neR/oxpa+K1dlJyHUYEfJrjPlW6/k1l2SqDUm2p4gi343unq3/jzzZRmexRG82FA==","signatures":[{"sig":"MEUCIQD+vDoy/u27KSKaePjavmtC2QUr9Eit/ZgddDdnvtW0cwIgFv5RJmDuvbb1l3A7CxF4t5zzKnhQqAXgkoYYJ6bozmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207651},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"cf01e615236b6a817ca213cd7cbc6bbc80471a9d","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.5.1_1786208056221_0.9352383532566673","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@alphayard/appkit","version":"1.5.2","license":"UNLICENSED","_id":"@alphayard/appkit@1.5.2","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"dist":{"shasum":"0984e8bccec57786923e44b195ea8af4bf318ed9","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.5.2.tgz","fileCount":5,"integrity":"sha512-bnbLvu8PzqSApWFGO9JrGL1vlZEd07xfBY/qCqh5/rzvPEl+qrgJFGkS4rUxyNVPTvy2FfaMBZwG56bzRSHEeQ==","signatures":[{"sig":"MEUCIFU8zDrHqHyCRJpIiG2c5RyD5j1GrJolv1FzgcjpRZCEAiEA03TJMWJR+D3lLRbbBuWIzcwS+kPGwyliyNh+tYMFEys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208233},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","source":"src/index.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","react-native":"./src/index.ts"}},"gitHead":"e081e126fc905effd8aa5512c7775727b625934c","scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"_npmVersion":"11.6.2","description":"Reusable AppKit SDK client for Boundary and UniApps services","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appkit_1.5.2_1786271373550_0.6769490860182268","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@alphayard/appkit","version":"1.7.0","description":"Reusable AppKit SDK client for Boundary and UniApps services","type":"module","main":"dist/public.js","module":"dist/public.js","types":"dist/public.d.ts","react-native":"src/public.ts","source":"src/public.ts","exports":{".":{"types":"./dist/public.d.ts","react-native":"./src/public.ts","import":"./dist/public.js","default":"./dist/public.js"},"./headless-auth":{"types":"./dist/headless-auth.d.ts","react-native":"./src/headless-auth.ts","import":"./dist/headless-auth.js","default":"./dist/headless-auth.js"},"./applications":{"types":"./dist/applications.d.ts","react-native":"./src/applications.ts","import":"./dist/applications.js","default":"./dist/applications.js"}},"scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run type-check && npm run build"},"sideEffects":false,"publishConfig":{"access":"public"},"engines":{"node":">=18"},"license":"UNLICENSED","_id":"@alphayard/appkit@1.7.0","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-TOOWzbkW+/7+QzbIUzuzvdaWD0XbKp0xjtn2TBrAsh4JyhL0sL7TxD8iTf52BehA2ih2knI58fK/aurulJgJhA==","shasum":"6eed205e70bac10725ed7f40f9594c8df654a8ae","tarball":"https://registry.npmjs.org/@alphayard/appkit/-/appkit-1.7.0.tgz","fileCount":15,"unpackedSize":297785,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCMFz48uzTJ/PnmnlHspXNoW2BDlchH8sv9BmEGPS/w7QIgJNvO5i5z8ot7zgpq3+3vIY09MmBz40Shdbs06frCznI="}]},"_npmUser":{"name":"24ep","email":"jaroonwit.pool@gmail.com"},"directories":{},"maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/appkit_1.7.0_1787492122648_0.7841847989376145"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-15T07:07:28.666Z","modified":"2026-08-23T13:35:22.951Z","1.1.0":"2026-03-15T07:07:28.925Z","1.2.0":"2026-03-17T15:26:04.410Z","1.3.0":"2026-03-20T13:43:25.803Z","1.3.1":"2026-03-21T17:10:02.287Z","1.3.2":"2026-05-14T15:23:16.536Z","1.3.3":"2026-05-16T12:40:19.616Z","1.3.4":"2026-05-16T19:17:08.007Z","1.3.5":"2026-05-16T19:48:45.804Z","1.3.6":"2026-06-03T09:12:45.959Z","1.3.7":"2026-06-03T15:01:18.785Z","1.4.0":"2026-06-07T01:06:43.091Z","1.4.1":"2026-06-07T02:02:59.062Z","1.4.2":"2026-07-18T11:44:30.363Z","1.5.0":"2026-07-31T10:08:53.459Z","1.5.1":"2026-08-08T16:54:16.371Z","1.5.2":"2026-08-09T10:29:33.697Z","1.7.0":"2026-08-23T13:35:22.810Z"},"license":"UNLICENSED","description":"Reusable AppKit SDK client for Boundary and UniApps services","maintainers":[{"name":"24ep","email":"jaroonwit.pool@gmail.com"}],"readme":"# `@alphayard/appkit`\n\nReusable AppKit SDK client for mobile apps, web apps, and service-to-service integrations.\n\n## Features\n\n- hosted or fully client-owned authentication UI\n- typed authentication continuation states for MFA, verification, and required factor enrollment\n- auth token storage helpers\n- branding and Color Studio config helpers\n- localization helpers\n- identity endpoints\n- CMS collection helpers\n- file storage helpers\n- communication helpers for email and SMS\n- organization and invite helpers for admin contexts\n- application registry, Personal/Business purpose, and company-website visibility helpers\n- AI Studio helpers for published apps, flows, and agents\n- emergency contacts, safety alerts, and circle member status/location helpers\n- legal acceptance and developer-document feedback helpers\n- storage listing, metadata, search, quota, and analytics helpers\n- configured social-provider access-token verification\n\n## Install\n\n```bash\nnpm install @alphayard/appkit\n```\n\n## Standard SDK usage\n\n```ts\nimport { AppKit } from '@alphayard/appkit';\n\nconst client = new AppKit({\n  clientId: 'client-id',\n  domain: 'https://your-appkit-domain.com',\n  baseURL: 'https://your-appkit-domain.com',\n  storage: 'memory',\n});\n```\n\n## Authentication UI: hosted or your own\n\nAppKit supports two UI models over the same authentication backend and application policy.\n\n### Option A — AppKit hosted UI\n\n```ts\nimport { createHeadlessAppKit } from '@alphayard/appkit/headless-auth';\n\nconst appkit = createHeadlessAppKit({\n  clientId: 'public-client-id',\n  appId: 'application-uuid',\n  domain: 'https://auth.example.com',\n});\n\nwindow.location.assign(appkit.auth.getHostedLoginUrl({\n  redirect: '/oauth/authorize?client_id=public-client-id',\n  locale: 'en',\n  mode: 'login',\n}));\n```\n\n### Option B — render your own UI\n\nUse the headless entrypoint when your web/mobile application owns all login screens. It returns authentication continuations as data instead of forcing AppKit UI.\n\n```ts\nimport { createHeadlessAppKit } from '@alphayard/appkit/headless-auth';\n\nconst appkit = createHeadlessAppKit({\n  clientId: 'public-client-id',\n  appId: 'application-uuid',\n  domain: 'https://auth.example.com',\n  // Use your secure platform storage adapter in mobile apps.\n  storage: 'memory',\n});\n\nconst result = await appkit.auth.loginWithCredentials({\n  email,\n  password,\n  rememberMe: true,\n});\n\nswitch (result.status) {\n  case 'authenticated':\n    // Token storage has already been updated by the SDK.\n    navigateToApp();\n    break;\n\n  case 'mfa_required':\n    showMfaScreen({\n      challengeToken: result.challengeToken,\n      channels: result.availableChannels,\n    });\n    break;\n\n  case 'email_verification_required':\n    showEmailVerificationScreen(result.verificationToken);\n    break;\n\n  case 'mfa_enrollment_required':\n    showRequiredSecuritySetup({\n      enrollmentToken: result.enrollmentToken,\n      methods: result.enrollmentMethods,\n    });\n    break;\n\n  default:\n    // `complete`, `passwordless_challenge`, and `recovery_codes`\n    // are handled by the matching journey that created them.\n    break;\n}\n```\n\nThe client does **not** decide whether MFA, email verification, signup, legal acceptance, password rules, or factor enrollment are required. Those rules come from the registered application's effective AppKit policy.\n\n### Load policy and branding for your UI\n\n```ts\nconst config = await appkit.auth.getConfig();\n\nconsole.log(config.authPolicy); // password/MFA/signup/legal rules\nconsole.log(config.branding);   // safe public branding\nconsole.log(config.providers);  // production-ready configured methods only\n```\n\nDo not embed an AppKit client secret in a browser or mobile application. Public headless auth uses the registered `clientId`/`appId`; confidential client secrets remain server-only.\n\n### Passwordless\n\n```ts\nconst requested = await appkit.auth.requestPasswordless({\n  method: 'sms-otp',\n  identifier: '+66812345678',\n  rememberMe: true,\n});\n\nif (requested.status === 'passwordless_challenge') {\n  const completed = await appkit.auth.verifyPasswordless({\n    challengeToken: requested.challengeToken,\n    code: otp,\n  });\n  // `completed` can still be mfa_required / email_verification_required /\n  // mfa_enrollment_required. Render the returned continuation.\n}\n```\n\n### MFA\n\n```ts\nif (result.status === 'mfa_required') {\n  const request = await appkit.auth.requestMfa({\n    challengeToken: result.challengeToken,\n    channel: 'email',\n  });\n\n  const completed = await appkit.auth.verifyMfa({\n    challengeToken: result.challengeToken,\n    channel: 'email',\n    otpChallengeId: request.otpChallengeId || undefined,\n    code: otp,\n    trustDevice: false,\n  });\n}\n```\n\nFor passkey MFA, `requestMfa()` returns `publicKey` options and a `passkeyChallengeToken`. Your web/native layer performs the WebAuthn ceremony and passes the serialized credential to `verifyMfa()`.\n\n### Required TOTP/passkey enrollment\n\n```ts\nif (result.status === 'mfa_enrollment_required') {\n  const setup = await appkit.auth.startMfaEnrollment({\n    enrollmentToken: result.enrollmentToken,\n    method: 'totp',\n  });\n\n  if (setup.method === 'totp') {\n    // Show setup.otpauthUri as a QR code or setup.secret as a manual key.\n    const verified = await appkit.auth.verifyTotpEnrollment({\n      setupToken: setup.setupToken,\n      code: authenticatorCode,\n    });\n\n    if (verified.status === 'recovery_codes') {\n      // Display these once and require the user to save them.\n      console.log(verified.backupCodes);\n      // Continue using verified.next.\n    }\n  }\n}\n```\n\n### Passkeys with client-owned UI\n\nThe SDK core intentionally does not call `navigator.credentials`; it exposes raw WebAuthn options so web and native clients can use their platform-native ceremony.\n\n```ts\nconst options = await appkit.auth.getPasskeyAuthenticationOptions();\nconst credential = await yourPlatformWebAuthnGet(options.publicKey);\n\nconst result = await appkit.auth.verifyPasskeyAuthentication({\n  challengeToken: options.challengeToken,\n  credential,\n  rememberMe: true,\n});\n```\n\nFor browser deployments on a different site from the AppKit RP domain, WebAuthn RP/origin rules still apply. Use an RP/domain configuration compatible with your deployment or use the AppKit-hosted passkey ceremony; do not relax WebAuthn origin verification.\n\n### Password recovery\n\nPassword reset requires both the signed reset challenge and its OTP. A reset token is never accepted as the OTP itself.\n\n```ts\nconst reset = await appkit.auth.resetPassword({\n  resetToken,\n  otp,\n  password: newPassword,\n});\n```\n\n### Browser CORS\n\nWhen a browser UI calls a different AppKit origin directly, that UI origin must be included in the deployment's `CORS_ORIGIN` allowlist. Server-to-server and native clients do not depend on browser CORS. A same-origin backend proxy is also supported.\n\n## Application registry, purpose, and company website visibility\n\nPurpose is application-level metadata with two values: `personal` or `business`. Company website visibility is a separate global boolean and does not change access mode, activation, lifecycle stage, or environment configuration.\n\n```ts\nimport { ApplicationRegistryClient } from '@alphayard/appkit/applications';\n\nconst applications = new ApplicationRegistryClient({\n  baseURL: 'https://your-appkit-domain.com',\n  // Optional for admin metadata reads/writes in service-to-service usage.\n  accessToken: process.env.APPKIT_ADMIN_TOKEN,\n});\n\n// Normal public registry. Planning-stage applications remain excluded by AppKit.\nconst registry = await applications.listPublic({\n  organizationId: 'organization-id',\n});\n\nconsole.log(registry.applications[0]?.purposeType); // personal | business\nconsole.log(registry.applications[0]?.showOnCompanyWebsite); // boolean\n\n// Recommended for a company website: only return applications enabled for that surface.\nconst companyWebsiteApps = await applications.listPublic({\n  organizationId: 'organization-id',\n  companyWebsiteOnly: true,\n});\n\nconst purpose = await applications.getPurpose('application-id');\nawait applications.setPurpose('application-id', 'personal');\n\nconst visibility = await applications.getCompanyWebsiteVisibility('application-id');\nawait applications.setCompanyWebsiteVisibility('application-id', true);\n```\n\nIn browser admin contexts, cookie authentication is used by default. Legacy applications without an explicit company-website visibility value keep their prior visible behavior; newly created applications default to hidden until enabled.\n\n## AI Studio\n\n```ts\nconst { aiConfig, apps } = await client.ai.list();\n\nconst events = await client.ai.runFlow({\n  flowId: 'flow-id',\n  inputVariables: { message: 'Summarize my account' },\n});\n\nfor await (const event of events) {\n  console.log(event.data);\n}\n```\n\n## Color Studio\n\n```ts\nconst colorConfig = await client.getColorStudioConfig();\n\nconst updated = await client.updateColorStudioConfig({\n  ...colorConfig.branding,\n  tokens: {\n    ...colorConfig.branding.tokens,\n    activeColorThemeId: 'core-theme',\n  },\n});\n\nconsole.log(updated.colorStudio.activeTheme);\n```\n\n```ts\nawait client.updateColorStudioVariable({\n  key: 'chat.accent',\n  value: '#06B6D4',\n});\n\nawait client.updateColorStudioGroup({\n  groupId: 'chat',\n  group: { name: 'Chat', description: 'Conversation colors.' },\n});\n\nawait client.setActiveColorTheme({ themeId: 'core-theme', makeDefault: true });\nawait client.duplicateColorTheme({ themeId: 'core-theme', name: 'Spring Theme' });\n```\n\nColor Studio writes go through the admin application API, so the SDK must be configured with `appId` and an admin-capable authenticated context.\n\n## Localized application description\n\nThe public application description is registered under `application.description` in the application's active Localization Studio package. The SDK resolves exact and regional language codes and falls back through the application's configured fallback language:\n\n```ts\nconst thaiDescription = await client.getApplicationDescription('th-TH');\n\n// Equivalent namespaced API:\nconst description = await client.localization.getApplicationDescription('en');\n```\n\n## Application previews\n\nBranding responses include typed desktop and mobile preview galleries:\n\n```ts\nconst branding = await client.branding.getMobileBranding();\n\nconsole.log(branding.previewImages?.desktop);\nconsole.log(branding.previewImages?.mobile);\n```\n\nEach gallery contains up to 10 uploaded image URLs.\n\n## Organizations\n\nOrganization helpers use the authenticated admin API, so the SDK needs an admin-capable token.\n\n```ts\nconst { organizations } = await client.organizations.getMine();\n\nconst organization = await client.organizations.create({\n  name: 'Acme Studio',\n  website: 'https://acme.example',\n});\n\nawait client.organizations.updateProfile(organization.id, {\n  logoUrl: '/uploads/acme-logo.png',\n  contact: { email: 'ops@acme.example' },\n});\n\nconst invite = await client.organizations.createInvite({\n  organizationId: organization.id,\n  role: 'member',\n});\n```\n\n## Mobile Splash\n\n```ts\nconst splash = await client.getSplashConfig();\n\nconsole.log(splash?.logoUrl);\nconsole.log(splash?.variants.dark.backgroundImageUrl);\n```\n\nBuild tooling can fetch the same unauthenticated config directly:\n\n```bash\ncurl \"https://your-appkit-domain.com/api/v1/mobile/splash?app_slug=my-app\"\n```\n","readmeFilename":"README.md"}