{"_id":"@apicircle/shared","_rev":"17-56cfbee6f16edbedd7ed8d089e4c1241","name":"@apicircle/shared","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.0":{"name":"@apicircle/shared","version":"1.0.0","license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.0.0","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"ceb0b05fb6161ce2cd41d3dbe94af0fcd63435f1","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.0.0.tgz","fileCount":9,"integrity":"sha512-Q4x8OEtT+8vXJLSgDVt+Y8AZH9b8eUuXXpdRXoh+Zb8u8t4TM0epCiia9G2JYnXyNy3eVjzJyOWRN7Ft0e27bg==","signatures":[{"sig":"MEYCIQDgtZ9NW7n3vOecGE4WL+/TwHK0AgjyNQjbWV48oeBWJwIhALtaAWM4BPtOegcnbwwgiMqBQSbZyETE0aW+A2TKOA2x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319509},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.0.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"C:\\Users\\praka\\AppData\\Local\\Temp\\9084998059c256be58d8c21194b81643\\apicircle-shared-1.0.0.tgz","_integrity":"sha512-Q4x8OEtT+8vXJLSgDVt+Y8AZH9b8eUuXXpdRXoh+Zb8u8t4TM0epCiia9G2JYnXyNy3eVjzJyOWRN7Ft0e27bg==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.9.2","description":"Shared types, ID generation, validators, and encryption helpers for APICircle Studio.","directories":{},"_nodeVersion":"22.15.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.0.0_1779301735264_0.470815651544475","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@apicircle/shared","version":"1.0.1","license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.0.1","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"ba721892f2ea1f325522958a30833da3e1d239de","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.0.1.tgz","fileCount":9,"integrity":"sha512-TAtLRjL70IpBGbhJKJibPj+HUe3JUQgCVfQbtHlqBWT1WW2KNSHLKBkCHQycD1jQgNYWeq2d5TisgWViny+iNA==","signatures":[{"sig":"MEQCIAyxRBe4V4woZrsJGZJZLUN4xlMBsWxmfbEY//UoTaGvAiAhPPkDdCpeIJxDO5YOVbKBs3uG9ylZVmsdnIDvljELUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319516},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.0.1.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"C:\\Users\\praka\\AppData\\Local\\Temp\\7ade81a6b2f22f2c8b272ecefee05311\\apicircle-shared-1.0.1.tgz","_integrity":"sha512-TAtLRjL70IpBGbhJKJibPj+HUe3JUQgCVfQbtHlqBWT1WW2KNSHLKBkCHQycD1jQgNYWeq2d5TisgWViny+iNA==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.9.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"_nodeVersion":"22.15.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.0.1_1779304759592_0.9513311812818646","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@apicircle/shared","version":"1.0.2","license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.0.2","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"f849e3cb407acb35bf2f1016999bb9b64fabb641","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.0.2.tgz","fileCount":9,"integrity":"sha512-/Fum4GdyLc700EHTi2bzuoLoXTCZJ6IQMkLNn6ci8LRgisI0eM0p9rJ1qO9BWbJNWbbhQhieUfqEErA5k3Wp7A==","signatures":[{"sig":"MEQCIDzuyanV/iTXgB+KsR0rT5wG5Ffb/VpjgRy/Te24PbPIAiBqPfN7qOW9OoPIecQyRR+m+A6YN/vNpxKqoZgap0lIdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325205},"main":"./src/index.ts","type":"module","types":"./src/index.ts","engines":{"node":">=20"},"exports":{".":"./src/index.ts"},"gitHead":"c4b15fb848da283aa22bf6201c6ca0af383a8da9","private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"main":"./dist/index.cjs","types":"./dist/index.d.cts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.0.2_1779455191495_0.08706178746154092","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@apicircle/shared","version":"1.0.3","license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.0.3","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"b9177a7de3b03bd8be1047f0111202bd0b0ff840","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.0.3.tgz","fileCount":9,"integrity":"sha512-/uuWtUcH81vW6TKaPxTWvV7t4KK9Z1GGLWpZkBo0AKT2POE90tagIP6uKHO7vBKRnggII0agsF5Xs7DtyO8WxQ==","signatures":[{"sig":"MEUCIQCl1/RzpOWkLmDzL9W04EJv05BTSgGr+6BvmQdHjV6uaQIgT9NDQ3ck8inI4U4jU+F/1w3H14muny69eii4daMkBUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325046},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.0.3.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/eb527b8b8389cff34420e8f3c97f9740/apicircle-shared-1.0.3.tgz","_integrity":"sha512-/uuWtUcH81vW6TKaPxTWvV7t4KK9Z1GGLWpZkBo0AKT2POE90tagIP6uKHO7vBKRnggII0agsF5Xs7DtyO8WxQ==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.0.3_1779465418702_0.2958592765032322","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@apicircle/shared","version":"1.0.4","license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.0.4","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"c7229cfca7b0cd64a22dd17aebf5a0708c68ea47","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.0.4.tgz","fileCount":9,"integrity":"sha512-GUHWZhd1yc9myjx+5gIBDKzED0qt5RA1smXtWMXF28eoc7sQtLVSLXQ12EnU9Q99ym7dlTqSaZvLYZ3RBB8+6w==","signatures":[{"sig":"MEQCIAh29ivJ30zd1YUOg2AUXrktMfEnUZfe6Tkx1pISSQPZAiAkYpoA8WXY8CdcIb0vRfG3ztz8nmIfRApJdv3fsaucow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332481},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.0.4.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/4934525c2f759da114da4732e907cde8/apicircle-shared-1.0.4.tgz","_integrity":"sha512-GUHWZhd1yc9myjx+5gIBDKzED0qt5RA1smXtWMXF28eoc7sQtLVSLXQ12EnU9Q99ym7dlTqSaZvLYZ3RBB8+6w==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.0.4_1780043160395_0.9466431120582319","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@apicircle/shared","version":"1.0.5","license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.0.5","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"1bf799eb81c5100114bc03f04215a1588b31b6c5","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.0.5.tgz","fileCount":9,"integrity":"sha512-6OAk0GaMAVSPmorBJOZcs97hp6qmWay7OWTT8dfTWXTQpKZMaNNwWD12SFxBzaY0yx6ameHbux2MmkkmHyn4lA==","signatures":[{"sig":"MEUCIQCou85Y0ktSDNkBW0XlHlrCGd7g4voFO4S7/LhzcjnIPAIgW7jzLkgZ5O3V0NUyVGoupy9SlkoD6EaNJcklFqdSCxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336273},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.0.5.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/2c558c4c23a01e08d496dca849d8f2b5/apicircle-shared-1.0.5.tgz","_integrity":"sha512-6OAk0GaMAVSPmorBJOZcs97hp6qmWay7OWTT8dfTWXTQpKZMaNNwWD12SFxBzaY0yx6ameHbux2MmkkmHyn4lA==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.0.5_1780079377196_0.23898363059658578","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@apicircle/shared","version":"1.0.6","license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.0.6","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"b5d4fa64254bcadea375498ece0e42333a7837a4","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.0.6.tgz","fileCount":9,"integrity":"sha512-4l0O2BuOdliiKbmR4EeaD7VJzEzmEx4AQeKLH+O+06pIGpfWDNY0uNvkbSEU20pygJ1XdkqUz2LNPzte7yx6mQ==","signatures":[{"sig":"MEUCIEEkQqCNaV44ldvVN/3e0t67m0H47GOVDOwzjp3zHYt7AiEAhGKiJROYR1CqvUohavcA8GNRjo1/KUB+MULmDawMNB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336273},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.0.6.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/d1c3e7c8c4f44b77b3914bfb3001e621/apicircle-shared-1.0.6.tgz","_integrity":"sha512-4l0O2BuOdliiKbmR4EeaD7VJzEzmEx4AQeKLH+O+06pIGpfWDNY0uNvkbSEU20pygJ1XdkqUz2LNPzte7yx6mQ==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.0.6_1780164305317_0.3831043560645102","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@apicircle/shared","version":"1.0.7","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.0.7","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"5673fa6104d128b80f4794adb783e646b37f884c","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.0.7.tgz","fileCount":9,"integrity":"sha512-V0Mxn5AnmIHu2xx0BW+5yWfFw4gH1gYPnUl0WPzGY4xPovaIm5fYnM1BKirG+yJ0w+nXiLW/92SVxpkC4Ub13Q==","signatures":[{"sig":"MEQCIELgzq8rbOvcTPNH41FmbbKIoDS0kCc5gMDpciG+NB25AiAXHxii0lPBxABfQnkJeU8OTuh9ZlbHU4vEhphNCOvocw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336922},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.0.7.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/405402b7d9455fae9ee8a0fecbc826b8/apicircle-shared-1.0.7.tgz","_integrity":"sha512-V0Mxn5AnmIHu2xx0BW+5yWfFw4gH1gYPnUl0WPzGY4xPovaIm5fYnM1BKirG+yJ0w+nXiLW/92SVxpkC4Ub13Q==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.0.7_1780390378259_0.10166942939450507","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@apicircle/shared","version":"1.0.8","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.0.8","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"0cd6cc5a0992d38d7e087cbf1339cecc590e84e6","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.0.8.tgz","fileCount":9,"integrity":"sha512-lGyCHE1JoJ2mBsuwxPuQ1oXjkzgKj31QbB97Osjfbc7jD9w7MZGk6XuqbR/ld4K+iHTxm4Gry0+J0eDFffS5kg==","signatures":[{"sig":"MEUCIQCa4Pnx0MfIOLEMOliGTBXoaeTTUd29WYeTYnkiSAzZRwIgMCm6OXvcjPY1tkI1esmQoUdgeGdAo6ww/ht7uUdEcWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336922},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.0.8.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/66a724bf42089fe9c3792998f5dd754a/apicircle-shared-1.0.8.tgz","_integrity":"sha512-lGyCHE1JoJ2mBsuwxPuQ1oXjkzgKj31QbB97Osjfbc7jD9w7MZGk6XuqbR/ld4K+iHTxm4Gry0+J0eDFffS5kg==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.0.8_1780433082713_0.2474370716821499","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@apicircle/shared","version":"1.0.9","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.0.9","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"c45d81738442609e53dc80f0093109f2059f085f","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.0.9.tgz","fileCount":9,"integrity":"sha512-2StKyRzyajiJOfnybJxRXVwySgIZfEsFCuoLUARTO2cB5onQpDI2CUS21bt0brORaHylLbqwnhVqFtC+s0XXVw==","signatures":[{"sig":"MEUCIQDnrLa3AnetBN+UVkv+3OTGemNgMBOGvzDAktj6zFMouwIgUfFxXtDT802PhnAwB3GRJVTvZ4TyFf4jfe+biC3cynE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355543},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.0.9.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/fb2092e4867d82b9a8f92e8cb5b212f6/apicircle-shared-1.0.9.tgz","_integrity":"sha512-2StKyRzyajiJOfnybJxRXVwySgIZfEsFCuoLUARTO2cB5onQpDI2CUS21bt0brORaHylLbqwnhVqFtC+s0XXVw==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.0.9_1780758063064_0.04219078719963587","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@apicircle/shared","version":"1.1.0","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.1.0","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"c2155c28846c7b20a10dbdfb99ecf56e1d0ea64f","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.1.0.tgz","fileCount":9,"integrity":"sha512-eLBRJVjlak3AIFYMbRjw8hGOPMYrsXF0PbUlTetfmvW+Z4AXrTZIzfFSIhuwAu/N/VRzgQmCR3K1sf3kCivQGw==","signatures":[{"sig":"MEUCIDXwKOupVn/PwSo0/VhUj6IBjVyY3DR7j+Ob/s49WZY7AiEAncr2lm6TEHKWwfosV/li6SzX8qR+SWt2hgermoboEkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369143},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.1.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/637e1130babd3f9b824d8cb7c98c0006/apicircle-shared-1.1.0.tgz","_integrity":"sha512-eLBRJVjlak3AIFYMbRjw8hGOPMYrsXF0PbUlTetfmvW+Z4AXrTZIzfFSIhuwAu/N/VRzgQmCR3K1sf3kCivQGw==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.1.0_1781693959760_0.417459524100827","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@apicircle/shared","version":"1.1.2","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.1.2","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"785d4e9af476901db0dcf6f62effd44ddc8ec3ab","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.1.2.tgz","fileCount":9,"integrity":"sha512-Pmk2EH/1fbYhHGibDzADJshA/022i3KYdE0rOVPnB7ACmgXzProRK3Od+4tXBDvPJ9rP7moxkMkNjGBkvmGskg==","signatures":[{"sig":"MEUCIBbnq0qExs+3qJh7Vjdkn3+1jH2okdpOc5fAnmIonTKFAiEA2Bd3xHCeZhriwDSZAamqLVaVw/TyG6We6UxB2G23sNs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369143},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.1.2.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/db5338425e624f92e0598118d60e4dbd/apicircle-shared-1.1.2.tgz","_integrity":"sha512-Pmk2EH/1fbYhHGibDzADJshA/022i3KYdE0rOVPnB7ACmgXzProRK3Od+4tXBDvPJ9rP7moxkMkNjGBkvmGskg==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.1.2_1781875244482_0.23868649064427383","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@apicircle/shared","version":"1.1.3","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.1.3","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"ad4efc055d44fae5448f825eb24ca820c77a2fa0","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.1.3.tgz","fileCount":9,"integrity":"sha512-21Kb8+TSvptbaib0m/0OwVjmPqDPEKHelQhK3+a1AuBfoU6x8xFTSFPN0DCbBG23R10N+DQ3U/hahAPLxf+ABQ==","signatures":[{"sig":"MEQCIHXsC+27D6KN/kfMQQSm7Z+TflC8Vo7aI6oa9tOgk0e7AiAVMEb1CsAbgWpvHGTWecTw52sKXiGSpRKz7pyHZnFR5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369143},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.1.3.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/28f9024e5767edb76e82bf75b076279c/apicircle-shared-1.1.3.tgz","_integrity":"sha512-21Kb8+TSvptbaib0m/0OwVjmPqDPEKHelQhK3+a1AuBfoU6x8xFTSFPN0DCbBG23R10N+DQ3U/hahAPLxf+ABQ==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.1.3_1781947454682_0.5842367527871759","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@apicircle/shared","version":"1.1.4","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.1.4","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"7f8eb99017f3f69e46d7576603ab8eba62dcfea3","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.1.4.tgz","fileCount":9,"integrity":"sha512-phmHW5hXOVNFjQIVCfV8DUuZDEd3ABXpC79HJg6BwzjZSfvAW9qEAW9hG0LfwrL2yrY6NH8Ustz0zZI54I05DA==","signatures":[{"sig":"MEUCIQDwmNK8AWRpTD/Uchkn+Lw//Sz9Ra00eFCvw3uQLJ7RMwIgCeY/3JWCDHNbA0jRS6ZruqVXtu9Ejij8f0tYZrt8q0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369143},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.1.4.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/5aed7eb9d1bac68cc199d23c0e7516e0/apicircle-shared-1.1.4.tgz","_integrity":"sha512-phmHW5hXOVNFjQIVCfV8DUuZDEd3ABXpC79HJg6BwzjZSfvAW9qEAW9hG0LfwrL2yrY6NH8Ustz0zZI54I05DA==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.1.4_1782072200449_0.5953845085819682","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@apicircle/shared","version":"1.1.5","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.1.5","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"9ca07d4f2f8f106e2c2ee7b938a5a7623980be29","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.1.5.tgz","fileCount":9,"integrity":"sha512-3bvpwA5qAu/o+Lcn83QbFkukAOvAlsr29tQEbBmj0vE7FOf0b53C4jzR6EbZ7+uN/uIxwy9LbnubkiDtOz+pWg==","signatures":[{"sig":"MEQCIG599vpglTAJaAb93u0CHLA2U11hcv94HXaVzUOjxfwEAiBaa1SfSgxzv8/rrGu1mnaX092Z/PEdcEuYjn4JFmde/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369143},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.1.5.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/a01db2137da16a4d727b88571ced0618/apicircle-shared-1.1.5.tgz","_integrity":"sha512-3bvpwA5qAu/o+Lcn83QbFkukAOvAlsr29tQEbBmj0vE7FOf0b53C4jzR6EbZ7+uN/uIxwy9LbnubkiDtOz+pWg==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.1.5_1782133531999_0.5067051392103143","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@apicircle/shared","version":"1.2.0","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"license":"SEE LICENSE IN LICENSE","_id":"@apicircle/shared@1.2.0","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"dist":{"shasum":"0791109e4d66088906a3793555a1cddab5617b24","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.2.0.tgz","fileCount":9,"integrity":"sha512-mDNrTVKTobbhgcQ1jdtdXq/hx/a3Vi47vpv24d9048G1HWelvqHCwLZuIHB6uHQf/LU/R04MxIK4bOoT4jaZ4Q==","signatures":[{"sig":"MEYCIQDs0WcuMm0ANbQMTzaAAUSeMfBoppcx5Rr1P+nycRet1wIhAN4ZyuUs/oUj6Ouzvtkau+JEKrgXIvfygx2VSvkq+3t8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369143},"main":"./dist/index.cjs","type":"module","_from":"file:apicircle-shared-1.2.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"private":false,"scripts":{"test":"vitest run","build":"tsup","check":"tsc --noEmit","clean":"rm -rf dist node_modules"},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"_resolved":"/tmp/82679102034ba9eb2472e5b15f30076b/apicircle-shared-1.2.0.tgz","_integrity":"sha512-mDNrTVKTobbhgcQ1jdtdXq/hx/a3Vi47vpv24d9048G1HWelvqHCwLZuIHB6uHQf/LU/R04MxIK4bOoT4jaZ4Q==","repository":{"url":"git+https://github.com/apicircle/studio.git","type":"git","directory":"packages/shared"},"_npmVersion":"10.8.2","description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/shared_1.2.0_1783071286321_0.624046472771085","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@apicircle/shared","version":"1.3.0","private":false,"type":"module","sideEffects":false,"description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"license":"SEE LICENSE IN LICENSE","repository":{"type":"git","url":"git+https://github.com/apicircle/studio.git","directory":"packages/shared"},"homepage":"https://github.com/apicircle/studio#readme","bugs":{"url":"https://github.com/apicircle/studio/issues"},"engines":{"node":">=20"},"main":"./dist/index.cjs","types":"./dist/index.d.cts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"devDependencies":{"tsup":"^8.3.0","typescript":"^5.4.0","vitest":"^2.0.0"},"scripts":{"build":"tsup","check":"tsc --noEmit","test":"vitest run","clean":"rm -rf dist node_modules"},"module":"./dist/index.js","_id":"@apicircle/shared@1.3.0","_integrity":"sha512-Q054BXxB5NDJerkrOea0Y14Nu27Nso/vklL6EcS+FiQ1WwWahSPIBQfN6XYUMvYR4Sdu3Y/kc1+AhR0yITBTvA==","_resolved":"/tmp/151a7e2c428dfc10c371e10988b7e494/apicircle-shared-1.3.0.tgz","_from":"file:apicircle-shared-1.3.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Q054BXxB5NDJerkrOea0Y14Nu27Nso/vklL6EcS+FiQ1WwWahSPIBQfN6XYUMvYR4Sdu3Y/kc1+AhR0yITBTvA==","shasum":"ba0dc89dfa277cdf577e78cb2de14443c419e768","tarball":"https://registry.npmjs.org/@apicircle/shared/-/shared-1.3.0.tgz","fileCount":9,"unpackedSize":396118,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCGQbNY8Cd17FAdWTru3JuWBXIQOmkKCq0SvsshFfXvPgIgFGxnF701qoTrP9iqKb9BYlLWUuWTM3rTKL7szyham90="}]},"_npmUser":{"name":"apicircle","email":"apicircle365@gmail.com"},"directories":{},"maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shared_1.3.0_1784397483591_0.33686759311317704"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T18:28:54.989Z","modified":"2026-07-18T17:58:03.918Z","1.0.0":"2026-05-20T18:28:55.433Z","1.0.1":"2026-05-20T19:19:19.977Z","1.0.2":"2026-05-22T13:06:31.623Z","1.0.3":"2026-05-22T15:56:58.843Z","1.0.4":"2026-05-29T08:26:00.568Z","1.0.5":"2026-05-29T18:29:37.411Z","1.0.6":"2026-05-30T18:05:05.467Z","1.0.7":"2026-06-02T08:52:58.410Z","1.0.8":"2026-06-02T20:44:43.021Z","1.0.9":"2026-06-06T15:01:03.225Z","1.1.0":"2026-06-17T10:59:19.883Z","1.1.2":"2026-06-19T13:20:44.641Z","1.1.3":"2026-06-20T09:24:14.857Z","1.1.4":"2026-06-21T20:03:20.611Z","1.1.5":"2026-06-22T13:05:32.129Z","1.2.0":"2026-07-03T09:34:46.487Z","1.3.0":"2026-07-18T17:58:03.761Z"},"bugs":{"url":"https://github.com/apicircle/studio/issues"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/apicircle/studio#readme","keywords":["apicircle","api","api-circle","types","typescript","validators","encryption","aes-gcm","webcrypto","id-generation","utilities","shared"],"repository":{"type":"git","url":"git+https://github.com/apicircle/studio.git","directory":"packages/shared"},"description":"Shared types, ID generation, validators, and encryption helpers for API Circle Studio.","maintainers":[{"name":"apicircle","email":"apicircle365@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/apicircle/studio/main/assets/logo.png\" alt=\"API Circle Studio\" width=\"120\" height=\"120\" />\n</p>\n\n<h1 align=\"center\">@apicircle/shared</h1>\n\n<p align=\"center\">\n  <strong>The TypeScript contract for everything API Circle Studio reads, writes, and ships.</strong><br />\n  One package, one source of truth — types, IDs, validators, crypto, and the MCP tool catalog.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@apicircle/shared\"><img src=\"https://img.shields.io/npm/v/@apicircle/shared?color=cb3837&logo=npm\" alt=\"npm version\" /></a>\n  <img src=\"https://img.shields.io/badge/types-included-blue?logo=typescript\" alt=\"TypeScript types included\" />\n  <img src=\"https://img.shields.io/badge/node-%E2%89%A5%2020-brightgreen\" alt=\"Node ≥ 20\" />\n  <img src=\"https://img.shields.io/badge/zero%20runtime%20deps-yes-success\" alt=\"Zero runtime dependencies\" />\n</p>\n\n---\n\n## Why this package exists\n\nEvery other `@apicircle/*` package — the request engine, the mock server, the\nMCP host, the CLI, the desktop app — agrees on **one workspace schema**.\nThat schema lives here.\n\nIf you are building a third-party tool that reads, writes, syncs, lints, or\nvisualises an API Circle workspace, this is the only dependency you need to\nstay byte-for-byte compatible with Studio.\n\n> **Use this directly when** you are writing a custom MCP client, a workspace\n> linter, a Git pre-commit hook, a migration script, or any other tool that\n> needs to understand the Studio workspace format without pulling in the\n> full execution engine.\n\n## Install\n\n```bash\nnpm install @apicircle/shared\n# pnpm add @apicircle/shared\n# yarn add @apicircle/shared\n```\n\nShips dual ESM + CJS builds and full `.d.ts` types. Zero runtime dependencies.\n\n## What's in the box\n\n| Surface              | What you get                                                                                                                                                                          |\n| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **Workspace schema** | `WorkspaceSynced` (the git-tracked document) and `WorkspaceLocal` (per-device state) — every entity type Studio knows about, fully typed.                                             |\n| **Entity types**     | Requests, folders, environments, mock-server definitions, plans, assertions, releases, linked workspaces, global assets (schemas, GraphQL, files), history runs, secret-crypto blobs. |\n| **`generateId()`**   | The only sanctioned way to mint entity IDs — collision-resistant, URL-safe, length-bounded.                                                                                           |\n| **Validators**       | Lightweight shape checks for workspace documents and imported specs — handy when you're loading untrusted JSON.                                                                       |\n| **Crypto helpers**   | AES-GCM via WebCrypto for at-rest secret material. Browser-safe, no Node-only modules.                                                                                                |\n| **MCP catalog**      | `MCP_TOOL_NAMES` — the canonical list of every tool the MCP server exposes, plus the `McpToolName` union type. Stay in lockstep with the server, by version.                          |\n| **Envelope types**   | Discriminated unions for MCP responses (`multiple-workspaces`, error envelopes, etc.) so your client gets exhaustive narrowing for free.                                              |\n\n## A taste of it\n\n```ts\nimport {\n  MCP_TOOL_NAMES,\n  generateId,\n  type McpToolName,\n  type WorkspaceSynced,\n  type Request,\n} from '@apicircle/shared';\n\n// Build a request the way Studio would — same ID shape, same schema.\nconst req: Request = {\n  id: generateId(),\n  name: 'List Pets',\n  method: 'GET',\n  url: 'https://api.example.com/pets',\n  headers: [],\n  params: [],\n  auth: { type: 'none' },\n  bodies: {},\n  activeBody: 'none',\n};\n\n// Validate a workspace document loaded from disk / Git.\nconst synced: WorkspaceSynced = JSON.parse(raw);\n\n// Iterate every MCP tool the server knows about — useful for building\n// custom MCP clients, dashboards, or documentation generators.\nfor (const name of MCP_TOOL_NAMES) {\n  console.log(name); // 'workspace.list', 'request.create', 'mock.start', ...\n}\n\nfunction dispatch(name: McpToolName) {\n  // McpToolName is a string literal union, so the switch is exhaustive.\n}\n```\n\n## Where this fits in the ecosystem\n\n```\n@apicircle/shared              ◀── you are here (types + utilities)\n├── @apicircle/core            (request engine, auth, imports, applyMutation)\n├── @apicircle/mock-server-core (Hono mock-server runtime)\n├── @apicircle/mcp-server       (MCP stdio host + tool catalog)\n└── @apicircle/cli              (apicircle binary)\n```\n\nMost users will install `@apicircle/cli` or `@apicircle/mcp-server` and never\ntouch this package directly. You only need `@apicircle/shared` when you're\nthe one **building** something that talks to a Studio workspace.\n\n## Stability\n\nThe workspace schema is the public contract API Circle Studio cares about most.\nBreaking changes are versioned per [semver](https://semver.org); the schema\nis exercised by **1,900+ unit and integration tests** across the wider Studio\ncodebase, and every Studio release (desktop, web, CLI, MCP) pins the same\n`@apicircle/shared` version.\n\n## Learn more\n\n- **Studio repo & docs**: <https://github.com/apicircle/studio>\n- **MCP tool reference**: <https://github.com/apicircle/studio/blob/main/docs/mcp-tools-reference.md>\n- **Architecture overview**: <https://github.com/apicircle/studio/blob/main/docs/architecture/platform.md>\n\n## License\n\nReleased under the **API Circle Studio License** — a custom source-available license, not an OSI-approved open-source license. Free for personal, educational, and non-commercial use, plus a 30-day commercial evaluation period; ongoing commercial use requires a separate license. See [LICENSE](./LICENSE) for the full terms, or contact **apicircle365@gmail.com** for commercial licensing.\n","readmeFilename":"README.md"}