{"_id":"@serve.zone/platformclient","_rev":"27-43dc0c1795699243889802237e06c63d","name":"@serve.zone/platformclient","dist-tags":{"latest":"32.0.2"},"versions":{"1.0.2":{"name":"@serve.zone/platformclient","version":"1.0.2","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.0.2","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"846e5ba1a601efc6688919dbddad1c95be963abe","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.0.2.tgz","fileCount":39,"integrity":"sha512-/YfIzmX8DFiqU3KpTUW0gE6zNVUiXEG1Ft+dbZsr2PVhL/8dwWRnNiCsGMnHerxbAOS67xnz48z0lb5AHddIRQ==","signatures":[{"sig":"MEUCIQDOjiFCgrRgvFHstX0Gk14jpCYDdYxeSDqNzUPkIv+SDgIgAYXSMc9L3Oazyk5wSGs9HbtkDEJGSPTmQ1BOc1xqZJc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42080},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.0.2.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/ed943516c0fc21fd583c7cfc4b3d7868/serve.zone-platformclient-1.0.2.tgz","_integrity":"sha512-/YfIzmX8DFiqU3KpTUW0gE6zNVUiXEG1Ft+dbZsr2PVhL/8dwWRnNiCsGMnHerxbAOS67xnz48z0lb5AHddIRQ==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"10.2.3","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"21.2.0","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.0.5","@push.rocks/smartlog":"^3.0.3","@push.rocks/smartntml":"^2.0.4","@serve.zone/interfaces":"^1.0.35","@api.global/typedserver":"^3.0.20","@api.global/typedsocket":"^3.0.0","@api.global/typedrequest":"^3.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.19","@git.zone/tsrun":"^1.2.46","@git.zone/tstest":"^1.0.44","@git.zone/tsbuild":"^2.1.25","@git.zone/tsbundle":"^2.0.5","@push.rocks/tapbundle":"^5.0.15"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.0.2_1708197884969_0.9904836333627802","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@serve.zone/platformclient","version":"1.0.3","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.0.3","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"4e07bd6627c1e13b40aced43021cd6c8e089c801","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.0.3.tgz","fileCount":39,"integrity":"sha512-nmygPfihhRPGtfkC51Y9t4XUWKVeE0gr5x/dn6Q/WR1rqOz/QwDpsF43rEjL2t03JnTCMqdBngGXpKWmQ6McUw==","signatures":[{"sig":"MEQCIEstAdQNW2xk3OSehNqxfDZmmv9PyvHRONJthJeTIdYnAiAr4srG5DmHXOkzHvFs1uiB7z9gyNfGsNHUm5WTnL/g1g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43086},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.0.3.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/76d73ec2f40e66a436bb2657ca0dec11/serve.zone-platformclient-1.0.3.tgz","_integrity":"sha512-nmygPfihhRPGtfkC51Y9t4XUWKVeE0gr5x/dn6Q/WR1rqOz/QwDpsF43rEjL2t03JnTCMqdBngGXpKWmQ6McUw==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"10.2.3","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"21.2.0","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.0.5","@push.rocks/smartlog":"^3.0.3","@push.rocks/smartntml":"^2.0.4","@serve.zone/interfaces":"^1.0.35","@api.global/typedserver":"^3.0.20","@api.global/typedsocket":"^3.0.0","@api.global/typedrequest":"^3.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.19","@git.zone/tsrun":"^1.2.46","@git.zone/tstest":"^1.0.44","@git.zone/tsbuild":"^2.1.25","@git.zone/tsbundle":"^2.0.5","@push.rocks/tapbundle":"^5.0.15"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.0.3_1708198559610_0.41701741237973766","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@serve.zone/platformclient","version":"1.0.6","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.0.6","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"a57b1a02942d7e17ea6a52884b49620d354a2e9d","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.0.6.tgz","fileCount":39,"integrity":"sha512-ySsZy05nu5OjDO4fFYYD1b/0NTOtLTSEynae/lsJXbjduvNj5fEcXZBZhnkUhboxjiksVawnAJgiTLT2qPneWw==","signatures":[{"sig":"MEQCICIFJPP+4dCkxyCwLgpOOZNcHsRaOJaNgo/JvMaD4TtyAiBxN9ZJfDfcFZfCaZPxf3UXw0RZW9pncy3d9w0sLxOHgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41237},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.0.6.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/54f7c913c9858626fb13c10479f9f2e8/serve.zone-platformclient-1.0.6.tgz","_integrity":"sha512-ySsZy05nu5OjDO4fFYYD1b/0NTOtLTSEynae/lsJXbjduvNj5fEcXZBZhnkUhboxjiksVawnAJgiTLT2qPneWw==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"10.2.3","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"21.2.0","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.0.5","@push.rocks/smartlog":"^3.0.7","@push.rocks/smartntml":"^2.0.4","@serve.zone/interfaces":"^1.0.74","@api.global/typedserver":"^3.0.50","@api.global/typedsocket":"^3.0.1","@api.global/typedrequest":"^3.0.30"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.14.12","@git.zone/tsrun":"^1.2.49","@git.zone/tstest":"^1.0.90","@git.zone/tsbuild":"^2.1.84","@git.zone/tsbundle":"^2.0.5","@push.rocks/tapbundle":"^5.0.23"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.0.6_1722008473076_0.477505099595102","host":"s3://npm-registry-packages"}},"1.0.9":{"name":"@serve.zone/platformclient","version":"1.0.9","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.0.9","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"3d7dd25a1072797613419d084a0a36b99ab62e6d","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.0.9.tgz","fileCount":36,"integrity":"sha512-fB+AAxm50qkMbwspbCjsCdkZephLe0lFwgYuEnVUKbhkHLzAis04E8QxUclOOFPsH4ai7AAKRU/+yoW5rdS8wQ==","signatures":[{"sig":"MEUCIDXx8wb20H4kY8Me/N4rX0JHCEL83lphVcLgBhEKOKSSAiEAl54mQVNXptUna9gvMOBpdhVGNiZ07E56MLxEbbGRzM4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36570},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.0.9.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/702919acb643e1eff78aa33625c35706/serve.zone-platformclient-1.0.9.tgz","_integrity":"sha512-fB+AAxm50qkMbwspbCjsCdkZephLe0lFwgYuEnVUKbhkHLzAis04E8QxUclOOFPsH4ai7AAKRU/+yoW5rdS8wQ==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"10.2.3","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"21.2.0","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.0.5","@push.rocks/smartlog":"^3.0.7","@push.rocks/smartntml":"^2.0.4","@serve.zone/interfaces":"^1.0.81","@api.global/typedserver":"^3.0.51","@api.global/typedsocket":"^3.0.1","@api.global/typedrequest":"^3.0.32"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.7.4","@git.zone/tsrun":"^1.2.49","@git.zone/tstest":"^1.0.90","@git.zone/tsbuild":"^2.1.84","@git.zone/tsbundle":"^2.0.5","@push.rocks/tapbundle":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.0.9_1727849453017_0.6694468173409991","host":"s3://npm-registry-packages"}},"1.0.10":{"name":"@serve.zone/platformclient","version":"1.0.10","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.0.10","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"20aa5c57dbe1941fbba22b3037e02c8be5044f65","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.0.10.tgz","fileCount":44,"integrity":"sha512-Xzf+XwC6WLQ1EJ1pq1i7fZNdbhU7xJ2Mi/XBuD8mvIgKhBOFwtV6qtElFSUHNU3jEMC7IadyqXtcekVn4/Hdew==","signatures":[{"sig":"MEQCIERs3h2AMOztGMhx31g6iN2t65384soZYGuuHbPVwTgBAiAfcP/LDCEP1RcMuqv1lICH3JRzC6Qb9X/lfc9Vl7Na0w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":46865},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.0.10.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/4c8ffc5bca65ef5b1f3060bc67afeda5/serve.zone-platformclient-1.0.10.tgz","_integrity":"sha512-Xzf+XwC6WLQ1EJ1pq1i7fZNdbhU7xJ2Mi/XBuD8mvIgKhBOFwtV6qtElFSUHNU3jEMC7IadyqXtcekVn4/Hdew==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"10.2.3","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"21.2.0","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.0.5","@push.rocks/smartlog":"^3.0.7","@push.rocks/smartntml":"^2.0.4","@serve.zone/interfaces":"^1.0.81","@api.global/typedserver":"^3.0.51","@api.global/typedsocket":"^3.0.1","@api.global/typedrequest":"^3.0.32"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.7.4","@git.zone/tsrun":"^1.2.49","@git.zone/tstest":"^1.0.90","@git.zone/tsbuild":"^2.1.84","@git.zone/tsbundle":"^2.0.5","@push.rocks/tapbundle":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.0.10_1727849568851_0.6632397288959031","host":"s3://npm-registry-packages"}},"1.0.11":{"name":"@serve.zone/platformclient","version":"1.0.11","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.0.11","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"08c15a18e10ae5be9e2609f2b85f7a0dcaf85022","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.0.11.tgz","fileCount":44,"integrity":"sha512-c5yjJPxSY25Www2HzaNiznG5nb8WlyTmOmoLQpDdJH7IJPbbQrI9FSddCdCrhtndpSajutqDGh734muV2uaTTA==","signatures":[{"sig":"MEUCIQCBwy7Ne1m3Vd0qz3MAviQ6p+9E2Yfu0SAuAnTMzmV4BwIgL9Ub7BZW4YCg5giDzGQ85fwi4Je8VdAjQtx1y6B/E9g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":46867},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.0.11.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/d685156a61bee9054c070a26208f3963/serve.zone-platformclient-1.0.11.tgz","_integrity":"sha512-c5yjJPxSY25Www2HzaNiznG5nb8WlyTmOmoLQpDdJH7IJPbbQrI9FSddCdCrhtndpSajutqDGh734muV2uaTTA==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"10.2.3","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"21.2.0","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.0.5","@push.rocks/smartlog":"^3.0.7","@push.rocks/smartntml":"^2.0.4","@serve.zone/interfaces":"^1.0.81","@api.global/typedserver":"^3.0.51","@api.global/typedsocket":"^3.0.1","@api.global/typedrequest":"^3.0.32"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.7.4","@git.zone/tsrun":"^1.2.49","@git.zone/tstest":"^1.0.90","@git.zone/tsbuild":"^2.1.84","@git.zone/tsbundle":"^2.0.5","@push.rocks/tapbundle":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.0.11_1727849962118_0.03500305219468958","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@serve.zone/platformclient","version":"1.1.0","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.1.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"ecf52eb76e0158865a61626aff5265a952c67592","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.1.0.tgz","fileCount":44,"integrity":"sha512-jnS9Wh4SCbPE2OT55ciLuDhmwcFidiUOoMLi59vM+Z7/AfiAjKZCDrxnjqSJNoPYeBNFoCNpxgGnIR00WqPmTg==","signatures":[{"sig":"MEUCIQC8xBOEXofhhVr/n1BHybKb6NxgeRFPOoRUVsFjq1ecpAIgJrW9ba4wosimlUovpruuDF0rJLbY5MgKbPJqh32fJMo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47532},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.1.0.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/9c8dedf9ebb86201e5b5df7ec8c85c0f/serve.zone-platformclient-1.1.0.tgz","_integrity":"sha512-jnS9Wh4SCbPE2OT55ciLuDhmwcFidiUOoMLi59vM+Z7/AfiAjKZCDrxnjqSJNoPYeBNFoCNpxgGnIR00WqPmTg==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"10.2.3","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"21.2.0","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.0.5","@push.rocks/smartlog":"^3.0.7","@push.rocks/smartntml":"^2.0.4","@serve.zone/interfaces":"^1.0.81","@api.global/typedserver":"^3.0.51","@api.global/typedsocket":"^3.0.1","@api.global/typedrequest":"^3.0.32"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.7.4","@git.zone/tsrun":"^1.2.49","@git.zone/tstest":"^1.0.90","@git.zone/tsbuild":"^2.1.84","@git.zone/tsbundle":"^2.0.5","@push.rocks/tapbundle":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.1.0_1728042003111_0.1895424171998663","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@serve.zone/platformclient","version":"1.1.1","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.1.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"b3abb52ec14f6fb55e29f834cf17e7029e5f4b30","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.1.1.tgz","fileCount":47,"integrity":"sha512-vgk0/aagPPNLmJfMaP8IX6SrpmPaDSW8FeNrZug47SUyX5o2NtAtlk0u3BqjWWwYivfrT0THxs0ErX9x8S2Ceg==","signatures":[{"sig":"MEUCIQCzC3AlIzUGFvfx7HbfdqRcLu2ETqgHExiu5lUtkvWf8QIgC4rLeWoSG/oVScVypJY4PoD2sni/jPurpdrD7L3DHTc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":52852},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.1.1.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/1c8f3e1b87e779436f1db81f60c78ec6/serve.zone-platformclient-1.1.1.tgz","_integrity":"sha512-vgk0/aagPPNLmJfMaP8IX6SrpmPaDSW8FeNrZug47SUyX5o2NtAtlk0u3BqjWWwYivfrT0THxs0ErX9x8S2Ceg==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"10.2.3","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"21.2.0","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.0.5","@push.rocks/smartlog":"^3.0.7","@push.rocks/smartntml":"^2.0.4","@serve.zone/interfaces":"^1.1.1","@api.global/typedserver":"^3.0.51","@api.global/typedsocket":"^3.0.1","@api.global/typedrequest":"^3.0.32"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.7.4","@git.zone/tsrun":"^1.2.49","@git.zone/tstest":"^1.0.90","@git.zone/tsbuild":"^2.1.84","@git.zone/tsbundle":"^2.0.5","@push.rocks/tapbundle":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.1.1_1728107671535_0.34460030764058813","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@serve.zone/platformclient","version":"1.1.2","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.1.2","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"70241a9db8c16e56372028fbf6542b43086e54ba","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.1.2.tgz","fileCount":47,"integrity":"sha512-JKGV1L5n6opGXFZWumBExmdfrQhNzCpGQwo/T3l5un/G72GO2LnugTtp0wgKivCAr60yyXmg8CdEQ7kl8Coy+Q==","signatures":[{"sig":"MEQCIBmAQDwL0YrROrNJOf++kgSWoHl6TNCkLPYZ81er/aIVAiBgrcOTsnc4Zm5X91khDonCuaIS8E84lST/3/9pZpyllg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":53591},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.1.2.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/4fc12bf74b85717da900a3e6e011cba0/serve.zone-platformclient-1.1.2.tgz","_integrity":"sha512-JKGV1L5n6opGXFZWumBExmdfrQhNzCpGQwo/T3l5un/G72GO2LnugTtp0wgKivCAr60yyXmg8CdEQ7kl8Coy+Q==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"10.2.3","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"21.2.0","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.0.5","@push.rocks/smartlog":"^3.0.7","@push.rocks/smartntml":"^2.0.4","@serve.zone/interfaces":"^1.1.1","@api.global/typedserver":"^3.0.51","@api.global/typedsocket":"^3.0.1","@api.global/typedrequest":"^3.0.32"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.7.4","@git.zone/tsrun":"^1.2.49","@git.zone/tstest":"^1.0.90","@git.zone/tsbuild":"^2.1.84","@git.zone/tsbundle":"^2.0.5","@push.rocks/tapbundle":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.1.2_1728111649388_0.8243393072362009","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"@serve.zone/platformclient","version":"1.1.3","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.1.3","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"e891b40d20e65fb74113a2bc1e38b6a23c16a6ed","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.1.3.tgz","fileCount":39,"integrity":"sha512-3M7ode5Qk3o8xlQgpvqsRp6XsU7Jy6tYgzElbZpB54wSRE51m5tXX+66lYcXpQXL4axU5AWpV2fUZBYwJPxyYQ==","signatures":[{"sig":"MEUCIEb/GMdlHrVPl5pCKTerTCXLhXoGvGIIYkBTS1WouYtAAiEAg9X1FvV/onrFUG0aIOQiuzm3iymx1fdIdPnPxDKIQq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66723},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.1.3.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/13bfea04ded0a77cf3bd4bad5109c193/serve.zone-platformclient-1.1.3.tgz","_integrity":"sha512-3M7ode5Qk3o8xlQgpvqsRp6XsU7Jy6tYgzElbZpB54wSRE51m5tXX+66lYcXpQXL4axU5AWpV2fUZBYwJPxyYQ==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"11.7.0","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.3","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.8","@serve.zone/interfaces":"^5.4.5","@api.global/typedserver":"^8.4.6","@api.global/typedsocket":"^4.1.2","@api.global/typedrequest":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0","@git.zone/tsrun":"^2.0.2","@git.zone/tstest":"^3.6.3","@git.zone/tsbuild":"^4.4.0","@git.zone/tsbundle":"^2.10.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.1.3_1777379480222_0.7641491035305803","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@serve.zone/platformclient","version":"1.1.4","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.1.4","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/serve.zone/platformclient#readme","bugs":{"url":"https://gitlab.com/serve.zone/platformclient/issues"},"dist":{"shasum":"a110fa8911d9ad7a05825ca6bcbd44886e9f496f","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.1.4.tgz","fileCount":39,"integrity":"sha512-TcUQpWOqb28Iyz57ZdC2hXfV6maxeeLfjt85T1cPQc7g1KoYZ+CfFpRr0NBEf4oG2A7vALnsIDvlebtJO1GTow==","signatures":[{"sig":"MEUCIH2XH+2537SKvfRJg1x2zJJNGr0c1mdTuiTfRtMlTrd1AiEArKe3SW831qEGMu/yy5gPghwwKbkqClemLzEeEj0kCbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66161},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.1.4.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/14f2cc57eb40041b28349f9efda41fda/serve.zone-platformclient-1.1.4.tgz","_integrity":"sha512-TcUQpWOqb28Iyz57ZdC2hXfV6maxeeLfjt85T1cPQc7g1KoYZ+CfFpRr0NBEf4oG2A7vALnsIDvlebtJO1GTow==","repository":{"url":"git+https://gitlab.com/serve.zone/platformclient.git","type":"git"},"_npmVersion":"11.7.0","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.3","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.8","@serve.zone/interfaces":"^5.4.5","@api.global/typedserver":"^8.4.6","@api.global/typedsocket":"^4.1.2","@api.global/typedrequest":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0","@git.zone/tsrun":"^2.0.2","@git.zone/tstest":"^3.6.3","@git.zone/tsbuild":"^4.4.0","@git.zone/tsbundle":"^2.10.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.1.4_1777380255962_0.5758157651700615","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@serve.zone/platformclient","version":"1.1.5","author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@serve.zone/platformclient@1.1.5","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"45d336ad8e5bd55094ffd5f7939c06e8c56eb4cc","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.1.5.tgz","fileCount":39,"integrity":"sha512-dvA182wwCexvOZMDLTxkqRFU0/ed4LRzYTKVQlB1XxnnN40NeeakUNpBGDWPVkj3JM3sU0rnVzxZFODDWltTEg==","signatures":[{"sig":"MEQCIBnSM/7vy3zRnVb7V+Uc38p1uzWX66PnbP0wmBV1WYleAiBMIJFE9J4fgDbOWG6eppcRYI8Vv9AbXuPtTB+7n1J4gA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66889},"main":"dist_ts/index.js","type":"module","_from":"file:serve.zone-platformclient-1.1.5.tgz","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/be4025e59c7cfcd656e877ab818d5c5b/serve.zone-platformclient-1.1.5.tgz","_integrity":"sha512-dvA182wwCexvOZMDLTxkqRFU0/ed4LRzYTKVQlB1XxnnN40NeeakUNpBGDWPVkj3JM3sU0rnVzxZFODDWltTEg==","repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"_npmVersion":"11.7.0","description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^5.5.0","@api.global/typedserver":"^8.5.3","@api.global/typedsocket":"^4.1.2","@api.global/typedrequest":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.9.1","@git.zone/tsrun":"^2.0.4","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.10.4"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.1.5_1781454818916_0.28601477996051705","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@serve.zone/platformclient","version":"1.2.0","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@1.2.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"a70f4ce2387bb6a5156d71c01b581de651bb3154","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-1.2.0.tgz","fileCount":39,"integrity":"sha512-ZZi3214o0Gf1V4SckMq4A5IPHem2pCvy1wcJEbgnjB9fNtQDW20Wy6ttJFK/lILhZ6e9iZ6TQkKxEd0vO+q7MA==","signatures":[{"sig":"MEQCIAHqwuLem2ypAk8RFbW4E8ncwjCIL+X9IUKSjhSFWUNeAiBUGa39Oi/S8L8n9bNpADOuImEXC7u8173SKjs64HhJig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109410},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@push.rocks/smartsmtp":"^3.1.0","@serve.zone/interfaces":"^7.27.0","@api.global/typedserver":"^8.5.3","@api.global/typedsocket":"^4.1.2","@api.global/typedrequest":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.9.1","@git.zone/tsrun":"^2.0.4","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_1.2.0_1782244054542_0.29326970977982314","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@serve.zone/platformclient","version":"2.0.0","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@2.0.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"46f02f8eb131a4bc36a85500f83d294a8a309740","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-2.0.0.tgz","fileCount":39,"integrity":"sha512-C6g9Rt2/qHLrYSK020cbmxiqgZsQQ+Vpvv72lJ7Fi7QLgIpsnJ7D8rpYqTpALUbj2z7qq6BDcuCnUGk/zYsAmg==","signatures":[{"sig":"MEUCIQDa8gDB3CEE1ixLOCEtN7AT40wztGAkk7Aau8EfvMytAQIgdcOUUZV6nD0/SzfhNJazEgzy8ZL4o7GbaSQR8wEXTzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133876},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^7.28.0","@api.global/typedserver":"^8.5.3","@api.global/typedsocket":"^4.1.2","@api.global/typedrequest":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.9.3","@git.zone/tsrun":"^2.0.4","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_2.0.0_1782387793950_0.17923299374525437","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@serve.zone/platformclient","version":"2.0.1","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@2.0.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"54e687a11ba53cdc0f344f894ef12e6b743ed9cd","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-2.0.1.tgz","fileCount":39,"integrity":"sha512-6bsuBP06GoHaCsvh9BDNuvns67TKij3p6IxjurjpB6eH7/Lh4j1n/B3IbnYXTI3i9Wz4Y/ULXPaK98vCZM/2/g==","signatures":[{"sig":"MEQCIHKfTGNifHBHlgHU7QxbkDziMZJ3wd+zFwwEIDC/bzNmAiApZY1xIY+HUamPM1rCGTCubc6rR3Z0dUBZZGeO53z7WA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148563},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^7.28.0","@api.global/typedserver":"^8.5.3","@api.global/typedsocket":"^4.1.2","@api.global/typedrequest":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.9.3","@git.zone/tsrun":"^2.0.4","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_2.0.1_1782932387757_0.26546023463250723","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@serve.zone/platformclient","version":"2.1.0","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@2.1.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"1c31c73f8058fab07c9aa2c8ffa5dcb3eb260044","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-2.1.0.tgz","fileCount":39,"integrity":"sha512-lqVAd6KQ5iDbNTYaoCBlxJuD61Lifbb/HMoOQMv73VEjL6WcK6QhBOwD88M//p5jdR3Pfts+QrhR/MvBnvzqCQ==","signatures":[{"sig":"MEYCIQC4I8WtrBv4T/iSQwZmOjY+cXFuEH0i/3qty0h6gohiMAIhAI4ozPZgjrrpiYpMHlA/iUg8BRkTE2WGW4iVU/8EIGjt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151736},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^8.1.1","@api.global/typedserver":"^8.5.3","@api.global/typedsocket":"^4.1.2","@api.global/typedrequest":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.0.1","@git.zone/tsrun":"^2.0.5","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_2.1.0_1783434995228_0.010037301335280358","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@serve.zone/platformclient","version":"2.2.0","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@2.2.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"0279ab04d7f7f1d27ba7d569981f972e04c7dc0c","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-2.2.0.tgz","fileCount":39,"integrity":"sha512-5+1Fnd5Hfihdjxb/BoiYqbZ9WD5nCkR1Cjq5/Yug07Eu4hSq1XqlShWXME4EyOHQix8Xp93zDDkC31sxwHh0xg==","signatures":[{"sig":"MEUCIQDdd46U+daWuo+uzXa70LyXvvCHLgKwJE3rssUnOm+PAAIgTdTibbfHYTiCIGPc73gxIHspjR5Vg6cSjjxixPsv570=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152119},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^16.4.1","@api.global/typedserver":"^8.5.3","@api.global/typedsocket":"^4.1.2","@api.global/typedrequest":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1","@git.zone/tsrun":"^2.0.5","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.11.2"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_2.2.0_1784609609714_0.4335859207661312","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@serve.zone/platformclient","version":"2.3.0","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@2.3.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"2896d28b6046f1c0e57e77b456b14914cbc57464","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-2.3.0.tgz","fileCount":42,"integrity":"sha512-vIzAd+gLh/9VdC7yIytN/fbf+DPT8PX7SONi1O2GMjmp1CvngoOYb11vrlfw5O7KW3fydajxWoNojtYY+8GIOQ==","signatures":[{"sig":"MEUCIEF4OZzMeOmKw4EAGZrBEBlj2c5FoOPABluOdwR0z40OAiEA/9qzmvBE0MadB738Gi+qR/7GQtLz+8f4AfsayJ6X9j0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192752},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^17.4.0","@api.global/typedserver":"^8.5.3","@api.global/typedsocket":"^4.1.2","@api.global/typedrequest":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1","@git.zone/tsrun":"^2.0.5","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.11.2"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_2.3.0_1784810516757_0.5099677640854887","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@serve.zone/platformclient","version":"2.4.0","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@2.4.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"297fad561e1c7d755e0d6d8697fea67c8032566a","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-2.4.0.tgz","fileCount":42,"integrity":"sha512-68FkG9NIeeXsZNp1tTOd5Wgea5QoUAgv5yvUFQ4PB2zmjlAdOa3324D0XM/T9RmKkqROw5nVpnDmRX+IBECCfg==","signatures":[{"sig":"MEUCIQC/zNrpy+ds13JKWUneFS9r9/Ihk4ID285Yt/mEIQbB1AIgajA6w1bpnD8wtTSQRi77uqNDDseuf0dHR5k8G29lVEM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195812},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"24.18.0","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^19.7.0","@api.global/typedserver":"^8.5.3","@api.global/typedsocket":"^4.1.2","@api.global/typedrequest":"^3.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1","@git.zone/tsrun":"^2.0.5","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.11.2"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_2.4.0_1785315023624_0.2825836500556851","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@serve.zone/platformclient","version":"3.0.0","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@3.0.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"a4a29b23e4b2108bffda90389035120c231b3ee8","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-3.0.0.tgz","fileCount":45,"integrity":"sha512-PZualK/XMkABYkKZW1dwJVXh1LVlkxhwnV3kEU+322ky+McWxeJUjWHCP5UupPiRh91+TgYnmJvenBUtoFZTZg==","signatures":[{"sig":"MEQCIBQC/KO1ZgJ2IvR4pWAOIrOEmQX9ygRNRJhsq+ZuWMI8AiAHP6qDASWkRtALAuhhzyXIibovVeAJMMTuqJtMcu0E/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291895},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^23.0.1","@api.global/typedsocket":"^5.1.1","@api.global/typedrequest":"^3.7.0","@api.global/typedrequest-interfaces":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^3.6.7","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.11.3"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_3.0.0_1785454857184_0.15032997109876534","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@serve.zone/platformclient","version":"3.0.1","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@3.0.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"2a1a8298dddff19670671526e7c2fe4e7680f9a8","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-3.0.1.tgz","fileCount":45,"integrity":"sha512-JoivcwnwAukNRbbsrOU4My+tLfEBDVDHSCSBhAW7VzMaNQN90nH0cg83RNzNWCWNDXinKgvH4tPFMC8ssiMKjQ==","signatures":[{"sig":"MEUCIGlWY7fOMxUjuokdRR5HInuo9YOGpTZyJRe8wcrDv0FKAiEAkfQiJVsDZC+BWoAB0ujQHUbPlcPDERdfTDIsv9V2oko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294955},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)","localPublish":"gitzone commit && pnpm run build && pnpm publish && pnpm publish --access public --registry=\"https://registry.npmjs.org\""},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^23.0.1","@api.global/typedsocket":"^5.1.1","@api.global/typedrequest":"^3.7.0","@api.global/typedrequest-interfaces":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^3.6.7","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.11.3"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_3.0.1_1785455456249_0.37826496637078666","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@serve.zone/platformclient","version":"4.0.0","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@4.0.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"cebe21bc9d106ba9ee63d23b4b9a540543b1138b","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-4.0.0.tgz","fileCount":45,"integrity":"sha512-v0AE4aVl7F97ZqdZKAi1sdPT+VSTIR5+TCVuT54/Lh78ghEjy55Vf6F3xKD0b5ndgKV2+609xuUUzqXHitB0IA==","signatures":[{"sig":"MEYCIQDz89iVHOvlE+MVbJsWWrNfRPwTuKYEw+2RsQEA4SOWAQIhANICH5WlF72d5WeInXjSBamv3faTPuam/LTYH5vXqUxW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302905},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^30.2.0","@api.global/typedsocket":"^8.1.0","@api.global/typedrequest":"^8.0.4","@api.global/typedrequest-interfaces":"^7.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.4.1","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.1.1","@git.zone/tsbuild":"^4.4.2","@git.zone/tsbundle":"^2.13.0","@push.rocks/smartserve":"6.2.1"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_4.0.0_1788948717101_0.4940599257230214","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@serve.zone/platformclient","version":"4.1.0","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@4.1.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"65d19d2d5be65708fe7919b1a3e3885959d0554f","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-4.1.0.tgz","fileCount":45,"integrity":"sha512-8ZFNp3pHUOx4ICrnvED7uv5sbX7MBwheCNtymGygcjEtky5fQANw6msBgiHf9Jk9Epf7jVYuAybqs3APim567Q==","signatures":[{"sig":"MEUCIQC+lEggJNeSt4EiX4EZx/6ezRYIcyjmPUB6naTAKkD4hQIgWsiyT4DTL/VRwWGlkIp13+FbjWvKq13LKDOVW30dCVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDqWhIHtz54PDC9n1XE6UqEIqsjig4dGdTKig/Sgk4eSAIhAPTQXxL8ypQ/804Xg6OjnlhcfgD1Z+sUx+2YWxfDNwGl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423339},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^6.1.4","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^30.13.0","@api.global/typedsocket":"^8.1.0","@api.global/typedrequest":"^8.0.4","@api.global/typedrequest-interfaces":"^7.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.5.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"6.1.0","@git.zone/tsbuild":"^4.4.3","@git.zone/tsbundle":"^2.13.0","@serve.zone/coremail":"1.2.0","@push.rocks/smartmongo":"9.0.0","@push.rocks/smartserve":"6.2.1"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_4.1.0_1789494660960_0.6489996258641544","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"@serve.zone/platformclient","version":"4.1.1","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@4.1.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"1728e5c9571966920b22c12a2050ccc395cb60c4","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-4.1.1.tgz","fileCount":45,"integrity":"sha512-xEwWtI4mjJa9EHSw/d/jz1kreLmJa8aPcKr5249jQg/mY+/ssgMiT7W0M6vSbkf2DaYJPzSuh5a2BW1hDNzlGQ==","signatures":[{"sig":"MEUCIGYgutgiBY9NQUNM9hfqUP/Bqihjp2MbucQ2MUTtXlnsAiEA6FgP2TXQc5dXIBoyYksJSsqjiu1girklSgSRXwOWyiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDXoygpYRPW74Y8YhxvXUWkTq8ERf0/1ZBFLR7z8YGEYgIgZR/By+wLMtn9bvncRm858snVkhKw6efJBv+S5oeY5ps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423339},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^7.0.0","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^30.13.0","@api.global/typedsocket":"^8.1.0","@api.global/typedrequest":"^8.0.4","@api.global/typedrequest-interfaces":"^7.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.5.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"6.1.0","@git.zone/tsbuild":"^4.4.3","@git.zone/tsbundle":"^2.13.0","@serve.zone/coremail":"1.2.0","@push.rocks/smartmongo":"9.0.0","@push.rocks/smartserve":"6.2.1"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_4.1.1_1789539857971_0.013802652620652722","host":"s3://npm-registry-packages-npm-production"}},"32.0.0":{"name":"@serve.zone/platformclient","version":"32.0.0","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@32.0.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"77cb3c68e6e8e5f42b48f57811ded4a5f1e94d83","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-32.0.0.tgz","fileCount":48,"integrity":"sha512-tSkKvNPx1li2gkq5FZ+fHKi2A/I8tr6HoWyzPR0YqrOzm4C7oZreYm462POsGpYE1sWprE6wrDAuYaqCJ20oyg==","signatures":[{"sig":"MEUCIQDR0EiIr6a/VzJGLStpR17CRJPXsw6pSTqaJf22WDN2kAIgcLIU1Cvmes4lm4/L9bPMrce9xvDVBPiZriAxQr3slxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDYXoPuTzX539BEOZIuv60PcJoGZk0qavDDmQdP3JG7uQIgfjGHm4uvPrcZMsvlB0O0aeNzOMvVjeTx/5lu6DP7hjI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":442533},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^7.0.0","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^32.1.0","@api.global/typedsocket":"^8.4.0","@api.global/typedrequest":"^8.0.4","@api.global/typedrequest-interfaces":"^7.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.5.1","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"6.1.1","@git.zone/tsbuild":"^4.5.0","@git.zone/tsbundle":"^2.13.0","@serve.zone/coremail":"32.0.0","@push.rocks/smartmongo":"9.0.0","@push.rocks/smartserve":"6.2.1"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_32.0.0_1789757009434_0.006115357391967002","host":"s3://npm-registry-packages-npm-production"}},"32.0.1":{"name":"@serve.zone/platformclient","version":"32.0.1","author":"Task Venture Capital GmbH","license":"MIT","_id":"@serve.zone/platformclient@32.0.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/serve.zone/platformclient#readme","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"53295672df225b4b60dcfb7c232f70844392de4b","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-32.0.1.tgz","fileCount":48,"integrity":"sha512-N1GR8jg5ONCk2Qg6cWVBRbik68P6E7xfjVjRN9NhRbDt7H82OtApGtP2ER/hCqdaZiN9F9KiNCQXXJWGV8iyGw==","signatures":[{"sig":"MEUCIQC/lgXzIBYJTKDQbAvSAqf5q5GXCaoII5YSOhPyLcLakgIgWD0o7wR8wKNpnYwNE7vAUvC7KN0t3TO/SsVED4ekq4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBSR/NeC0slAg4KpOwCFyKbj+fqks+9QwzEdFe9VWVjlAiAtmhAMj59eEkd7QrYkn0yggywVRpjh+TVng3blyqUH1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":445961},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^8.0.0","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^32.1.0","@api.global/typedsocket":"^8.4.0","@api.global/typedrequest":"^8.0.4","@api.global/typedrequest-interfaces":"^7.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.5.1","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"6.1.1","@git.zone/tsbuild":"^4.5.0","@git.zone/tsbundle":"^2.13.0","@serve.zone/coremail":"32.0.0","@push.rocks/smartmongo":"9.0.0","@push.rocks/smartserve":"6.2.1"},"_npmOperationalInternal":{"tmp":"tmp/platformclient_32.0.1_1790075664765_0.3359594592061488","host":"s3://npm-registry-packages-npm-production"}},"32.0.2":{"_id":"@serve.zone/platformclient@32.0.2","bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"dist":{"shasum":"9760e5b0e7b39f1b9962e7076f152aa9ef63e7e5","tarball":"https://registry.npmjs.org/@serve.zone/platformclient/-/platformclient-32.0.2.tgz","fileCount":48,"integrity":"sha512-eQFFErTWktVfJBhdGt66Fc8GAt+twne/LSlA+gh/DeuhIcFRo2XMlaHMt6ljocNn/ehkiuYBwOD6or3IJNIzpw==","signatures":[{"sig":"MEQCIAdsBhaIlP9m+e9WiXA7u0ij9M9bQM44+hfjLHMEYQIMAiBcxa5Nsp0zHXIKPzimHFMSjjx/XuCrzaSPpXU6IQwVjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDPJGJIMOwxS8g+dEijKnxlpKeQD4vt6W0BJ4HXX1fyNgIhAIEAp40No5Locf6p2zXEZRRAjtZyhQwgWr050wCNEWLM"}],"unpackedSize":445961},"main":"dist_ts/index.js","name":"@serve.zone/platformclient","type":"module","author":"Task Venture Capital GmbH","license":"MIT","private":false,"scripts":{"test":"(tstest test/ --web)","build":"(tsbuild tsfolders --web --allowimplicitany)"},"typings":"dist_ts/index.d.ts","version":"32.0.2","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"homepage":"https://code.foss.global/serve.zone/platformclient#readme","repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","directories":{},"maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"browserslist":["last 1 chrome versions"],"dependencies":{"@push.rocks/qenv":"^8.0.0","@push.rocks/smartlog":"^3.2.2","@push.rocks/smartntml":"^2.0.9","@serve.zone/interfaces":"^32.1.0","@api.global/typedsocket":"^8.4.0","@api.global/typedrequest":"^8.0.4","@api.global/typedrequest-interfaces":"^7.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.6.1","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"6.1.5","@git.zone/tsbuild":"^4.5.1","@git.zone/tsbundle":"^2.14.0","@serve.zone/coremail":"32.0.0","@push.rocks/smartmongo":"9.0.3","@push.rocks/smartserve":"6.2.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/platformclient_32.0.2_1790141048118_0.12021414398575425"}}},"time":{"created":"2024-02-17T19:24:44.873Z","modified":"2026-09-23T05:24:08.448Z","1.0.2":"2024-02-17T19:24:45.185Z","1.0.3":"2024-02-17T19:35:59.827Z","1.0.6":"2024-07-26T15:41:13.264Z","1.0.9":"2024-10-02T06:10:53.277Z","1.0.10":"2024-10-02T06:12:49.037Z","1.0.11":"2024-10-02T06:19:22.313Z","1.1.0":"2024-10-04T11:40:03.315Z","1.1.1":"2024-10-05T05:54:31.725Z","1.1.2":"2024-10-05T07:00:49.615Z","1.1.3":"2026-04-28T12:31:20.362Z","1.1.4":"2026-04-28T12:44:16.115Z","1.1.5":"2026-06-14T16:33:39.095Z","1.2.0":"2026-06-23T19:47:34.679Z","2.0.0":"2026-06-25T11:43:14.080Z","2.0.1":"2026-07-01T18:59:47.890Z","2.1.0":"2026-07-07T14:36:35.443Z","2.2.0":"2026-07-21T04:53:29.865Z","2.3.0":"2026-07-23T12:41:56.912Z","2.4.0":"2026-07-29T08:50:23.777Z","3.0.0":"2026-07-30T23:40:57.332Z","3.0.1":"2026-07-30T23:50:56.422Z","4.0.0":"2026-09-09T10:11:57.246Z","4.1.0":"2026-09-15T17:51:01.066Z","4.1.1":"2026-09-16T06:24:18.062Z","32.0.0":"2026-09-18T18:43:29.531Z","32.0.1":"2026-09-22T11:14:24.850Z","32.0.2":"2026-09-23T05:24:08.215Z"},"bugs":{"url":"https://code.foss.global/serve.zone/platformclient/issues"},"author":"Task Venture Capital GmbH","license":"MIT","homepage":"https://code.foss.global/serve.zone/platformclient#readme","repository":{"url":"git+https://code.foss.global/serve.zone/platformclient.git","type":"git"},"description":"a module that makes it really easy to use the serve.zone platform inside your app","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"readme":"# @serve.zone/platformclient\n\n`@serve.zone/platformclient` is the application SDK for serve.zone platform services. It opens TypedSocket connections and gives application code focused connectors for CoreMail, transactional email, SMS, push notifications, and physical letters without hand-writing TypedRequest setup.\n\n## Issue Reporting and Security\n\nFor reporting bugs, issues, or security vulnerabilities, please visit [community.foss.global/](https://community.foss.global/). This is the central community hub for all issue reporting. Developers who sign and comply with our contribution agreement and go through identification can also get a [code.foss.global/](https://code.foss.global/) account to submit Pull Requests directly.\n\n## Install\n\n```bash\npnpm add @serve.zone/platformclient\n```\n\n## Quick Start\n\n```typescript\nimport { SzPlatformClient } from '@serve.zone/platformclient';\n\nconst platformClient = new SzPlatformClient({\n  token: process.env.SERVEZONE_PLATFORM_TOKEN,\n  cloudlyUrl: process.env.SERVEZONE_PLATFORM_URL,\n});\n\nawait platformClient.init();\n\nawait platformClient.emailConnector.sendEmail({\n  to: 'user@example.com',\n  from: 'hello@example.com',\n  title: 'Workspace ready',\n  body: 'Your serve.zone workspace is ready.',\n});\n```\n\n## Connectors\n\n`SzPlatformClient` owns the shared connection and exposes connector instances:\n\n| Connector | Main methods | Platform capability |\n| --- | --- | --- |\n| `emailConnector` | `getServiceMailStatus()`, `getServiceMailCredentials()`, `sendMail()`, `sendText()`, `sendHtml()`, `getMailDeliveryStatus()`, `registerInboundHandler()`, `normalizeInboundMessage()`, `handleInboundPayload()`, `createInboundHandler()`, `sendEmail()` | `email` |\n| `smsConnector` | `sendSms()`, `sendSmsVerifcation()` | `sms` |\n| `pushNotificationConnector` | `sendPushNotification()` | `pushnotification` |\n| `webPushConnector` | `getConfigurationStatus()`, `getWebPushServiceStatus()`, `getWebPushPublicKey()`, `enqueueWebPush()`, `cancelWebPush()`, `getWebPushDeliveryStatus()` | `pushnotification` |\n| `letterConnector` | `sendLetter()` | `letter` |\n| `coreMailConnector` | `prepareOutboundSubmission()`, `uploadOutboundPart()`, `finalizeOutboundSubmission()`, `getOutboundSubmission()`, `listInboundDeliveries()`, `fetchInboundDelivery()`, `acknowledgeInboundDelivery()` | CoreMail workload binding |\n\nThe request and response payloads come from `@serve.zone/interfaces`, so TypeScript stays aligned with the serve.zone platform contracts. The installed `@serve.zone/interfaces` release *is* the contract version this client speaks; no payload states a schema version of its own.\n\n## Configuration\n\nThe shared platform connection requires a Cloudly machine token and an explicit HTTPS Cloudly origin. On each connection it exchanges the token for an API machine identity and calls `registerCloudlyClientSession` with that JWT and its protocol offer before initialization succeeds. Reconnect repeats both steps, and a live connection renews its identity before expiry. Rejected credentials, invalid registration replies, or failed renewal close the connection. Value-free platform bindings describe capabilities; they never select the Cloudly authority or provide credentials.\n\n| Value | Sources |\n| --- | --- |\n| Authorization | Constructor string, `authorizationString`, `authorization`, `token`, `init()` argument, `SERVEZONE_PLATFORM_AUTHORIZATION`, or `SERVEZONE_PLATFORM_TOKEN`. |\n| Cloudly URL | `cloudlyUrl`, `url`, `platformUrl`, or `SERVEZONE_PLATFORM_URL`; an explicit HTTPS origin is required. |\n| Platform bindings | Constructor `binding` or `bindings`, `SERVEZONE_PLATFORM_BINDING`, or `SERVEZONE_PLATFORM_BINDINGS`. |\n\nEvery environment name in this document is read on demand: the process environment first, then the Docker secrets. The client keeps no list of required variables and never reads or enforces the embedding application's `qenv.yml`; a requirement declared there is the application's to act on, and never a reason for `new SzPlatformClient()` to refuse.\n\nWorkloads should receive their service-scoped `platform:session` token through `SERVEZONE_PLATFORM_AUTHORIZATION`. A deployment token does not grant a platform session. The SDK never sends the token to a binding or mail endpoint. Token exchange and registration bypass request payload hooks and disable automatic RPC retries.\n\nBinding environment variables must contain JSON encoded, value-free `IPlatformBinding` objects from `@serve.zone/interfaces`.\n\nService mail credentials come only from workload environment variables. Standard platformclient mail uses dcrouter TypedSocket/TypedRequest service credentials. The default sender uses `MAIL_FROM`, `MAIL_TYPED_URL`, `MAIL_API_CREDENTIAL_ID`, and `MAIL_API_CREDENTIAL_SECRET`. Additional configured sender addresses use scoped variables such as `MAIL_TEST_SERVICE_GATED_ONE_FROM`, `MAIL_TEST_SERVICE_GATED_ONE_TYPED_URL`, `MAIL_TEST_SERVICE_GATED_ONE_API_CREDENTIAL_ID`, and `MAIL_TEST_SERVICE_GATED_ONE_API_CREDENTIAL_SECRET`.\n\nManaged Web Push uses a separate, credential-scoped TypedSocket connection configured with `WEB_PUSH_TYPED_URL`, `WEB_PUSH_API_CREDENTIAL_ID`, and `WEB_PUSH_API_CREDENTIAL_SECRET`. These values form one atomic workload environment bundle: all three values are required and partial bundles fail closed. `webPushConnector` never accepts or sends caller-provided authentication or resource-owner fields; dcrouter derives the service scope from the injected credential.\n\nService mail can instead be routed through a cluster-scoped CoreMail instance. The default sender uses `MAIL_COREMAIL_URL`, `MAIL_COREMAIL_BINDING_ID`, `MAIL_COREMAIL_CREDENTIAL_ID`, `MAIL_COREMAIL_CREDENTIAL_VERSION`, and `MAIL_COREMAIL_CREDENTIAL_SECRET`. Additional sender addresses use scoped `MAIL_<TOKEN>_COREMAIL_*` variants under the same address token as the other mail variables, for example `MAIL_TEST_SERVICE_GATED_ONE_COREMAIL_URL`. Cloudly provisions this group for clusters and Onebox for single hosts.\n\nPrecedence matches the dcrouter variables: if any scoped `MAIL_<TOKEN>_COREMAIL_*` value is present, that scoped group is used on its own and the unscoped group is not consulted for that address. The group is atomic — a partially configured group fails closed with the exact missing variable names rather than silently falling back to dcrouter. When a CoreMail group resolves for the selected address, `sendMail()`, `sendText()`, `sendHtml()`, `getMailDeliveryStatus()`, and `registerInboundHandler()` use CoreMail; otherwise they use the dcrouter `MAIL_TYPED_URL` path, exactly as before. `MAIL_COREMAIL_URL` must be one canonical `https://.../socket` URL; `http://` and `ws://` are accepted only for loopback hosts, mirroring the rule TypedSocket itself enforces.\n\nEach distinct binding gets its own connector instance, so a service may hold an unscoped group and several scoped groups at once and send from any of them.\n\nSMTP compatibility credentials are still discoverable with `getServiceMailCredentials()` for applications that explicitly implement SMTP themselves. Those compatibility variables are `SMTP_HOST`, `SMTP_PORT`, `SMTP_TLS_MODE`, `SMTP_USERNAME`, and `SMTP_PASSWORD`, plus scoped `MAIL_<TOKEN>_SMTP_*` variants. They are not used by `sendMail()`, `sendText()`, `sendHtml()`, or `registerInboundHandler()`.\n\n```typescript\nimport { SzPlatformClient } from '@serve.zone/platformclient';\n\nconst client = new SzPlatformClient(process.env.SERVEZONE_PLATFORM_AUTHORIZATION);\nawait client.init();\n```\n\n```typescript\nimport { SzPlatformClient } from '@serve.zone/platformclient';\n\nconst client = new SzPlatformClient({\n  authorization: process.env.SERVEZONE_PLATFORM_AUTHORIZATION,\n  url: process.env.SERVEZONE_PLATFORM_URL,\n});\n\nawait client.init();\n```\n\n## Protocol handshake\n\nEvery platform session states which contract it speaks. `registerCloudlyClientSession` carries `protocol.createProtocolOffer('32.0.0')` — the installed `@serve.zone/interfaces` version as `interfacesVersion`, and `32.0.0` as the oldest Cloudly release this client accepts — and Cloudly answers with its own offer, which this client negotiates against its own before it uses the session.\n\nA peer that cannot serve the session is named, never collapsed into a credential failure: the caller is rejected with `SzPlatformProtocolIncompatibleError`, which carries the `IProtocolRefusal` (`code: 'protocol-incompatible'`, its reason, and both sides' offers). A refusal stands until an operator upgrades one of the two sides, so it is never retried: a refusal met while a reconnect restores the session — where no caller waits — ends that socket lifecycle and is kept on the client.\n\n| Member | Meaning |\n| --- | --- |\n| `getSessionStatus()` | `'connected'`, `'disconnected'`, or `'protocol-incompatible'` — the refusal outranks the transport state |\n| `lastProtocolRefusal` | The retained `SzPlatformProtocolIncompatibleError`, with `refusal.refusing` and `refusal.refused` |\n| `platformSessionProtocolOffer` | This build's offer, exported for callers that report platform compatibility |\n\n```typescript\nawait client.init().catch((error) => {\n  if (client.getSessionStatus() === 'protocol-incompatible') {\n    // Both offers are in client.lastProtocolRefusal.refusal; upgrade one side.\n    throw client.lastProtocolRefusal;\n  }\n  throw error;\n});\n```\n\n## Socket 8 migration\n\nVersion 4 requires Socket 8 peers: upgrade Cloudly and the dedicated dcrouter mail/Web Push endpoints together with their clients. Older Socket 4/5 servers are incompatible. Set `SERVEZONE_PLATFORM_URL` to Cloudly's HTTPS origin and retain `MAIL_TYPED_URL` for the dedicated mail endpoint. Replace legacy platform tokens with Cloudly service credentials; initialization no longer accepts a successful transport handshake as authentication. CoreMail, SMTP credential discovery, mail delivery status, attachments, Reply-To, and debug connector behavior remain available.\n\n## Debug Mode\n\nPass `test` as the authorization string to activate debug mode for the shared platform connection and the legacy service connectors. Those connectors log or return deterministic test values instead of sending real platform requests. CoreMail has no debug transport: omit CoreMail configuration in debug clients, because calling `coreMailConnector` methods still requires normal workload authentication.\n\n```typescript\nconst client = new SzPlatformClient('test');\nawait client.init();\n\nawait client.emailConnector.sendEmail({\n  to: 'developer@example.com',\n  from: 'hello@example.com',\n  title: 'Preview only',\n  body: 'This message is logged, not sent.',\n});\n\nconst verificationCode = await client.smsConnector.sendSmsVerifcation({\n  toNumber: 491234567890,\n  fromName: 'ServeZone',\n});\n\nconsole.log(verificationCode); // 123456\n```\n\nThe current SMS verification method is spelled `sendSmsVerifcation()` in code. Use that exact method name until the public API changes.\n\n## Lifecycle\n\n`SzPlatformClient` keeps separate TypedSocket connections for Cloudly, CoreMail, typed service mail, and managed Web Push. Call `stop()` to cancel initialization, renewal, and restoration and join their cleanup. `requireTypedSocket()` returns the authenticated Cloudly connection while `getSessionStatus()` is `connected`; `typedsocket` is optional. The mail router is private to its own connection, so Cloudly and Web Push peers cannot invoke inbound mail handlers.\n\n```typescript\nconst client = new SzPlatformClient({\n  token: process.env.SERVEZONE_PLATFORM_TOKEN,\n  cloudlyUrl: process.env.SERVEZONE_PLATFORM_URL,\n});\n\nawait client.init();\n\ntry {\n  await client.emailConnector.sendText({\n    to: 'user@example.com',\n    subject: 'Done',\n    text: 'The job has finished.',\n  });\n} finally {\n  await client.stop();\n}\n```\n\n## Connector Examples\n\nService mail over managed TypedSocket credentials:\n\n```typescript\nconst status = await client.emailConnector.getServiceMailStatus();\n\nif (status.ready) {\n  const sendResult = await client.emailConnector.sendText({\n    to: 'user@example.com',\n    replyTo: 'customer@example.com',\n    subject: 'Service mail ready',\n    text: 'This message was sent through the managed service mail identity.',\n  });\n\n  if (sendResult.spoolItemId) {\n    const delivery = await client.emailConnector.getMailDeliveryStatus(sendResult.spoolItemId);\n    console.log(delivery.spoolItem?.status);\n  }\n}\n```\n\n`getServiceMailStatus().ready` means the typed service-mail path is configured. The status also exposes `transport`, `typedUrl`, `typedCredentialConfigured`, `coreMailConfigured`, `coreMailEndpointUrl`, and `smtpReady` so applications can distinguish CoreMail, standard TypedSocket mail, and explicit SMTP compatibility configuration. `transport` is `'coremail'` when a CoreMail group resolves, `'typedsocket'` for the dcrouter path, `'smtp'` when only SMTP compatibility values are present, and `'none'` otherwise. A partially configured CoreMail group reports `ready: false` with the exact missing `MAIL_COREMAIL_*` names in `missing`. Send helpers return `spoolItemId`, which can be passed to `getMailDeliveryStatus()` to inspect accepted, queued, deferred, delivered, or failed delivery state. Set `replyTo` to one bare mailbox address when replies should go somewhere other than the managed sender. Dcrouter validates that field and renders the authoritative `Reply-To` header; do not supply `Reply-To` through the free-form `headers` object.\n\nSpecific sender address:\n\n```typescript\nawait client.emailConnector.sendHtml({\n  from: 'test-service@gated.one',\n  to: 'user@example.com',\n  subject: 'Platform capability test',\n  html: '<p>The service mail identity is working.</p>',\n});\n```\n\nTyped inbound mail registration:\n\n```typescript\nawait client.emailConnector.registerInboundHandler(async (message) => {\n  console.log(message.from, message.to, message.subject);\n  return { accepted: true, workAppMessageId: message.messageId };\n});\n```\n\n`registerInboundHandler()` behaves according to the resolved transport. On the dcrouter path it registers the dedicated mail connection as the typed endpoint for the configured service mail address, and dcrouter then delivers inbound messages through `deliverInboundMail`. When a CoreMail group resolves for that address, CoreMail is pull-based instead: the connector that owns the address's binding runs a bounded polling loop that lists pending deliveries, fetches each MIME body, invokes the handler with the same message shape the dcrouter path produces, and acknowledges the delivery as `processed` only after the handler resolves. A handler that throws, or returns `{ accepted: false }`, leaves the delivery pending for a later tick. The loop starts on first registration, never overlaps ticks, backs off on transport failure, and is stopped by `stop()`. Tune it with `setCoreMailInboundPollOptions({ intervalMs, pageLimit })` before registering; the default is one tick every 5000 ms over 25 deliveries, with a floor of 250 ms. After reconnect, exact credential-scoped endpoint registration completes before the mail connection becomes ready. A denied or malformed registration prevents readiness.\n\nInbound message normalization for webhook or direct TypedRequest-style delivery:\n\n```typescript\nconst inboundHandler = client.emailConnector.createInboundHandler(async (message) => {\n  console.log(message.from, message.to, message.subject);\n  return { accepted: true };\n});\n```\n\nLegacy platform-service email request:\n\n```typescript\nawait client.emailConnector.sendEmail({\n  to: 'user@example.com',\n  from: 'hello@example.com',\n  title: 'Invoice ready',\n  body: 'Your invoice is available in the dashboard.',\n});\n```\n\nSMS:\n\n```typescript\nconst status = await client.smsConnector.sendSms({\n  toNumber: 491234567890,\n  fromName: 'ServeZone',\n  messageText: 'Your code is 123456.',\n});\n```\n\nManaged Web Push:\n\n```typescript\nconst serviceStatus = await client.webPushConnector.getWebPushServiceStatus();\nif (!serviceStatus.ready || !serviceStatus.activeVapidKey) {\n  throw new Error(serviceStatus.message || 'Web Push is not ready');\n}\nconst activeVapidKey = serviceStatus.activeVapidKey;\nconst applicationServerKey = activeVapidKey.publicKey;\n\nconst browserSubscription = await serviceWorkerRegistration.pushManager.subscribe({\n  userVisibleOnly: true,\n  applicationServerKey,\n});\n\nconst enqueueResult = await client.webPushConnector.enqueueWebPush({\n  idempotencyKey: 'notification-delivery-42',\n  subscriptionId: 'opaque-application-subscription-id',\n  subscription: browserSubscription.toJSON(),\n  vapidKeyId: activeVapidKey.id,\n  payload: {\n    schemaVersion: 1,\n    event: 'notificationAvailable',\n    eventId: 'notification-event-42',\n    route: '/notifications',\n  },\n  ttlSeconds: 300,\n  urgency: 'normal',\n  collapseKey: 'notification-inbox',\n});\n\nif (enqueueResult.spoolItemId) {\n  const delivery = await client.webPushConnector.getWebPushDeliveryStatus(\n    enqueueResult.spoolItemId,\n  );\n  console.log(delivery?.state);\n}\n```\n\nThe active VAPID key ID and public key come from one service-status snapshot, so a rotation cannot mismatch the subscription key and enqueue key ID. Store browser subscriptions as sensitive application data and only send the privacy-minimal `notificationAvailable` payload shown above. `enqueueWebPush().accepted` means dcrouter accepted the item into its delivery spool; it does not prove browser receipt or display. A terminal `pushServiceAccepted` state means the remote push service accepted the encrypted request.\n\nPending delivery can be cancelled by spool item or by opaque application subscription ID:\n\n```typescript\nawait client.webPushConnector.cancelWebPush({\n  type: 'subscription',\n  subscriptionId: 'opaque-application-subscription-id',\n});\n```\n\nLegacy device-token push:\n\n```typescript\nconst status = await client.pushNotificationConnector.sendPushNotification({\n  deviceToken: 'device-token-from-your-app',\n  message: 'Deployment complete: your service is live.',\n});\n```\n\nLetter:\n\n```typescript\nawait client.letterConnector.sendLetter({\n  description: 'Important account information',\n  needsCover: true,\n  title: 'Account update',\n  coverBody: 'This letter was generated through serve.zone.',\n  service: ['Einschreiben'],\n});\n```\n\nService-mail and managed Web Push helper types are exported from `@serve.zone/platformclient`. `IServiceMailSendResult.spoolItemId` identifies the dcrouter delivery spool item for follow-up status queries through `getMailDeliveryStatus(spoolItemId, address?)`. `IServiceWebPushEnqueueOptions` and `TServiceWebPushCancellationTarget` mirror the credential-scoped Web Push delivery contract without exposing auth or owner fields. The legacy platform-service request fields remain under `platform.email`, `platform.sms`, `platform.pushnotification`, and `platform.letter`.\n\nDcrouter rejections with a stable submission code are exposed as `ServiceMailSubmissionError`. Uncoded rejections remain plain `Error` instances:\n\n```typescript\nimport { ServiceMailSubmissionError } from '@serve.zone/platformclient';\n\ntry {\n  await client.emailConnector.sendText({\n    to: 'user@example.com',\n    replyTo: 'customer@example.com',\n    subject: 'Service mail',\n    text: 'Hello',\n  });\n} catch (error) {\n  if (error instanceof ServiceMailSubmissionError) {\n    console.error(error.code);\n  }\n  throw error;\n}\n```\n\nThe exported `TServiceMailSubmissionErrorCode` type contains the supported dcrouter rejection codes.\n\n## CoreMail\n\nThere are two ways to reach CoreMail, and most applications want the first.\n\n**As the service-mail transport.** Set the `MAIL_COREMAIL_*` group described under [Configuration](#configuration) and keep using `emailConnector`: `sendMail()`, `getServiceMailStatus()`, `getMailDeliveryStatus()`, and `registerInboundHandler()` all route through CoreMail automatically, with the same `IServiceMailSendOptions` input as the dcrouter path. No CoreMail-specific application code is required.\n\n```typescript\nimport { SzPlatformClient } from '@serve.zone/platformclient';\n\nconst client = new SzPlatformClient();\nawait client.init(); // reads MAIL_COREMAIL_* from the workload environment\n\nconst sent = await client.emailConnector.sendMail({\n  to: 'recipient@example.com',\n  subject: 'Sent through CoreMail',\n  text: 'Bodies and attachments become uploaded parts automatically.',\n});\n\nconst status = await client.emailConnector.getMailDeliveryStatus(sent.spoolItemId!);\n```\n\nBodies, HTML, and attachments become CoreMail parts with client-computed SHA-256 digests and lengths, uploaded and finalized for you. Contract limits (1 MiB text, 2 MiB HTML, 16 attachments, 10 MiB each, 17 MiB aggregate, 100 recipients) are enforced before anything is sent. `idempotencyKey` is passed through; CoreMail requires one, so a fresh key is generated when the caller omits it, which reproduces the dcrouter semantics of an unkeyed send. CoreMail error codes that `TMailSubmissionErrorCode` also carries surface unchanged on `ServiceMailSubmissionError.code`; codes with no counterpart become a generic `Error` carrying the code.\n\n**As a direct workload API.** `coreMailConnector` is a server-runtime API for standalone CoreMail workload bindings, for applications that manage submissions or inbound deliveries themselves. It is not a browser or cross-origin API. Pass the injected workload authority explicitly; the connector never reads credential material from platform-binding metadata. The endpoint must be one canonical `https://.../socket` URL, or an `http://`/`ws://` loopback URL for local development.\n\n```typescript\nimport { SzPlatformClient } from '@serve.zone/platformclient';\n\n// APP_* names are deployment-owned environment keys in this example.\nconst runtimeCoreMail = {\n  endpointUrl: process.env.APP_COREMAIL_ENDPOINT_URL!,\n  bindingId: process.env.APP_COREMAIL_BINDING_ID!,\n  credentialId: process.env.APP_COREMAIL_CREDENTIAL_ID!,\n  credentialVersion: Number(process.env.APP_COREMAIL_CREDENTIAL_VERSION),\n  credentialSecret: process.env.APP_COREMAIL_CREDENTIAL_SECRET!,\n};\n\nconst client = new SzPlatformClient({\n  coreMail: {\n    endpointUrl: runtimeCoreMail.endpointUrl,\n    bindingId: runtimeCoreMail.bindingId,\n    credentialId: runtimeCoreMail.credentialId,\n    credentialVersion: runtimeCoreMail.credentialVersion,\n    credentialSecret: runtimeCoreMail.credentialSecret,\n  },\n});\n\nawait client.init();\n\ntry {\n  const page = await client.coreMailConnector.listInboundDeliveries({\n    limit: 25,\n  });\n\n  for (const delivery of page.deliveries) {\n    const fetched = await client.coreMailConnector.fetchInboundDelivery(delivery);\n    await processMimeMessage(fetched.bytes);\n    await client.coreMailConnector.acknowledgeInboundDelivery({\n      deliveryId: delivery.deliveryId,\n      outcome: 'processed',\n    });\n  }\n} finally {\n  await client.stop();\n}\n```\n\nOutbound delivery is descriptor-first: call `prepareOutboundSubmission()`, upload every declared byte sequence with `uploadOutboundPart()`, then call `finalizeOutboundSubmission()`. Upload and download grants are path-only, same-origin, one-time capabilities. The connector validates the authenticated operation set, grant context, transfer headers, byte length, and SHA-256 digest before completing a transfer. A general platform authorization string is not required when the client is configured only for CoreMail.\n\nManual polling as shown above is only needed when driving `coreMailConnector` directly. Applications using CoreMail as the service-mail transport should call `emailConnector.registerInboundHandler()` instead and let the connector own the loop.\n\n`configure()` is one-shot per connector instance. When several bindings are configured through the `MAIL_COREMAIL_*` groups, `emailConnector` keeps one connector per binding — reusing `client.coreMailConnector` for the first or matching binding and creating dedicated instances for the rest — and stops the ones it created in `stop()`.\n\n## Platform Bindings\n\nPlatform bindings allow a workload to discover value-free endpoint and capability metadata from its runtime environment. Secret values are injected separately as workload environment variables or explicit connector options.\n\n```typescript\nimport { SzPlatformClient } from '@serve.zone/platformclient';\nimport { platform } from '@serve.zone/interfaces';\n\nconst binding: platform.IPlatformBinding = JSON.parse(\n  process.env.SERVEZONE_PLATFORM_BINDING!\n);\n\nconst client = new SzPlatformClient({\n  authorization: process.env.SERVEZONE_PLATFORM_AUTHORIZATION,\n  binding,\n});\nawait client.init();\n\nconst emailBinding = client.getPlatformBinding('email');\n```\n\nBindings with `desiredState: 'disabled'` or `status: 'failed'` are ignored when the client auto-selects an endpoint.\n\n## InfoHtml Helper\n\nThe repository also contains a small `ts_infohtml` source folder for rendering simple informational HTML pages from text or options. It is not exported from the package root, so treat it as a source-level helper rather than the main SDK API.\n\n## Development\n\n```bash\npnpm install\npnpm test\npnpm run build\n```\n\nThe package is authored as ESM TypeScript and builds source folders with `tsbuild tsfolders --web --allowimplicitany`.\n\n## License and Legal Information\n\nThis repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [repository license file](./license.md).\n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.\n\nUse of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.\n\n### Company Information\n\nTask Venture Capital GmbH<br>\nRegistered at District Court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n","readmeFilename":""}