{"_id":"@buun_group/gunspec-sdk","_rev":"22-91d6cbb9d583aa567d2ae8709ea2292c","name":"@buun_group/gunspec-sdk","dist-tags":{"latest":"0.13.1"},"versions":{"0.1.0":{"name":"@buun_group/gunspec-sdk","version":"0.1.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.1.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://gunspec.io"},"dist":{"shasum":"2c452b45b66c0c0021edaccb71144a0f75057a83","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.1.0.tgz","fileCount":8,"integrity":"sha512-gTGWB7f5hdZB8DFe7/gOn5+553wwgIP8IIup+HLfjjYKh8UKfUD4xepoWB5bxH79u1K0yxpjp7M4rh6qao1ELQ==","signatures":[{"sig":"MEUCIE7AWACP2jO/mbxf3NtFc2BmtaIE0Qsx354kyF2VMwFAAiEA9dSiVTRD82Y2i0l//RQjwT38Np1R/JA6+Cm0EqMSj9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":783268},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"eb9bd1cda9e46457179334986545314fb32a9070","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"},"repository":{"url":"https://gunspec.io","type":"git","directory":"packages/sdk"},"_npmVersion":"11.4.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"_nodeVersion":"20.19.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.1.0_1771469377417_0.30062236459520353","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@buun_group/gunspec-sdk","version":"0.1.1","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.1.1","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://gunspec.io"},"dist":{"shasum":"44eb1a1df471ff5788cfa7680ea74f2876448d2b","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.1.1.tgz","fileCount":8,"integrity":"sha512-m/lStF8XoMPQzKeF0Y75sDNCfBp3Xwl7BiR3rsbP4skzqweGtBDp+wOVPt/ngPbUZPZnmgONJyCaPJzeXc3L1Q==","signatures":[{"sig":"MEUCIEtOoUQ5cZrLciSKV8rtU4dG+QgH2l59+J2K3Qw6o2EfAiEAv697fvueH/7v0m/SUEjOMlpckWZkf77KG74MID1/4PM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":783714},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"eb9bd1cda9e46457179334986545314fb32a9070","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"},"repository":{"url":"https://gunspec.io","type":"git","directory":"packages/sdk"},"_npmVersion":"11.4.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"_nodeVersion":"20.19.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.1.1_1771471332939_0.6866238412693892","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@buun_group/gunspec-sdk","version":"0.2.2","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.2.2","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"9218e228c085875c53ed46fdd516b0edc7917471","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.2.2.tgz","fileCount":18,"integrity":"sha512-7kbzODhBhIq362X62jCuEfXpBZrhTFD/239eJHfkqSIOD/er0nq2cSSlrf7vR6MS+FupYQ088P9uWoyfQFyTYQ==","signatures":[{"sig":"MEYCIQDRxK3/KZlcQBuH+6tWitGayFXn6euk8juPEB4xZiAv8wIhANgvMjAficrubx3ficbIsMgAz2iJnIOMNBqlvfhFWgfB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDVOcKjq6TnC0eCAM1ACXzCc/bODOSOdyEHs9akmzVEAAiBQK7HAuEyfy27wIqMSqKCsts1LufJ0rlDQyT1q+uXMHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1707983},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}}},"gitHead":"5d6e9475995aebf6bb2e1c93d65325f2e879888b","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.2.2_1789169302765_0.8307044251038094","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@buun_group/gunspec-sdk","version":"0.2.3","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.2.3","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"61efc35c4627b09a4fb64badacb40db45a789645","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.2.3.tgz","fileCount":18,"integrity":"sha512-xINVxNSP3FRHgiJ6Bndc4hYGp5QWwgWGRqVszGhRpJVhecBGhlCtDkEwZYrf/kKh6C9nMOcVGOcuTyJu5KKXHQ==","signatures":[{"sig":"MEUCIQDDHhiiJgB4dgutlINDwCaJlZCr6lq+q75QfIP0ruyB0AIgFvZSF6NUqsd/mVtMtqxVVKwaOqu7aSfEg70cSamOJsI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGFenXu+cIxvABzFAOI0i+ZiijX8/hUwitdy9xLYScnfAiBTD1GV/rM7+1ohPcrzAjLksGaUmlGaJyD6+wJDzE1ZUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1708224},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"4af4f7b6e6a1b143e4afcafa5269e0916a73f842","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.2.3_1789169661344_0.4875662172822919","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@buun_group/gunspec-sdk","version":"0.3.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.3.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"76b80bcbf1b781a414f5fde18a857de732805325","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.3.0.tgz","fileCount":18,"integrity":"sha512-3+sEtNkrTpQyPYoFO0b3mitrj+GZQjiej2WgaHMiLslpIOgQru71YzXaqmcEb5VyEZP+ieB+H7dViYjp6OGiGw==","signatures":[{"sig":"MEUCIQCiwR8m59Jm2T7FgOAOXTBxu8Cjq6/TzjrQ/em3O1eaMAIgaYNFiZbg73LhSpBtC/EwMAtoby/DPhWc4Rw81iF3vU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHJ7IxpMoo9d/ZWC+t0CI0vgOQftQVgPrMH7gpTUUqZFAiEAv6nSX3i224gWkFYNGZW9fWJC8vCHu5EraO2MrjmcRbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1771219},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"423f9ece32be141eab18f64cbbc125a34c0cc12e","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.3.0_1789285900706_0.04835339317443199","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@buun_group/gunspec-sdk","version":"0.4.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.4.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"6625278bbcd4e14074015f8c6a2f397dc9d8f0c2","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.4.0.tgz","fileCount":18,"integrity":"sha512-r+oreey3hsExq0w77ZdIjomR1d4N/9n3dfwZpb1S0Tgk3UIOD/EnbBCg5MrVl5dPfhFGCjQINMYJzOhjsRgnjA==","signatures":[{"sig":"MEYCIQCxd8GAKU7C1DAMMrw6avHzgl13f6gqSFkM1Vrrp51kkwIhAJlsXwc4Jkqql1gLwY7DxhNjJZZ6ZPHwaRgrWHK09ZbN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICcjKfga7ewtkvAEVDnoeyJMnJ8+TGpatlZhxDpb7hcgAiATSdnSLeQJqXMKHJNLJH/Lb+I+zRuLvjs1yqlJrZznRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1807590},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"0535cc651549815d5d3497c788c785241c7b5ffc","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.4.0_1789305860277_0.9468866235977507","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@buun_group/gunspec-sdk","version":"0.5.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.5.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"7373cf6ecfd438ba50f5ca45256cae04a44664df","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.5.0.tgz","fileCount":18,"integrity":"sha512-mXDsLWnSEtDFXAXOwMGraqaGmc+/oFPZhikTGmpyWuwhgSAuQaYz+n/yM3IrpgvFCgg7+9gG75VNQ4KPqbemPA==","signatures":[{"sig":"MEUCIQCOk+2KWlxF6XM/KPM4tHi/NZhiCD+RyU68f4Ad2p//rAIgAPPc6BLcVCU8RY3+677uLMWg5/ZeaNYHd403xxSGNOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEOvqmiDxT86potIwHcIHpchXG+7lKPT6PibVcZMphbNAiAZ8+Nxj53hXug9+UeV0ih57j379UAztXZkdwuK4OxqGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2049870},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"992f2320b7d33fcdb9bdd5be58869e7e696b9c83","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.5.0_1789609632288_0.45874316055553477","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@buun_group/gunspec-sdk","version":"0.5.1","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.5.1","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"ecb6fe74b7912911caf5b1187322bd2f04f21f70","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.5.1.tgz","fileCount":18,"integrity":"sha512-2pe8TCFtp6rh5oMP/RzvamlCn2x6/RTEWG+yEJlCBf9BnOCsAOCYovMeVg1OoeyBhLBqy8hBcUhWn/EU5V0wFQ==","signatures":[{"sig":"MEUCIHbTG1NBELASaM9bec2n6LwLYrioVxH2q7vAI6mzRS+lAiEAzYtSN0DtuiLBIsn/gM/p1AsEHuSI95fHQEfyGD7q3vI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCmnO7yzdW10gPR8WrDnLih8LFPba+tbk7IMloa4BLnSgIgBDlb7TUoMfqQ5R2em8ksU1ldghXNSY7uevIzZySe9eM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2074044},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"9ac2cbc721507a168058541e66fac2bd00dbe981","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.5.1_1789613125620_0.8805535770833504","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@buun_group/gunspec-sdk","version":"0.6.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.6.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"a1ef143aec7b88edfcadf660cb1ea2bb921231ec","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.6.0.tgz","fileCount":18,"integrity":"sha512-FvZkau+JQumEcPpQAUR9XdUeNW1X71vc7JmMdiw2ZDQ6QxvisiFisHlJfoKBB09JjUc1smefkd0RRgEjASn+dA==","signatures":[{"sig":"MEYCIQDjBifq4rQq3TKHJeCQcJo1nwjppyF8loAQId2wGDSkmgIhANL3zJJ+W8ZBl/I7uKE7YCoilXIxtAphoges5/WhLbJM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDE5c8JcuGGaD4PpPBljiZ+5QfBZNGnqz/4CkSOdQhuWAiB3O+kh0tmLQb/1Y6+q2KDbLcDvbKy2Jz5rfIA/7WfQEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2074958},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"155635a1f604db773c269cc347bf5332af877eba","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.6.0_1789613360673_0.9029882873340662","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@buun_group/gunspec-sdk","version":"0.7.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.7.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"9c14092c770dd9f9f427a301cc9e4c68271856c1","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.7.0.tgz","fileCount":18,"integrity":"sha512-5lP90BahWmp3Xn4qp9XOOOo51Co6lQEIHzZTUYx2H2MX1Fm5SPN41rN8+Zp73c/8y6gJ/KWRIujit4MFEZ1lvQ==","signatures":[{"sig":"MEQCIBfRhKuTG9C0Sze15C2ZdQXSlfwDjDK9qKSqYd3G7TWSAiAmpEOgfRgIO6sTNlh7GkeFhXC5Nrbwz9w86HKeG2PLZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDKpgjvowaCy6FliR7kjYFPh21asVHyRJghppIW3A0ENwIgZw2JjCgcQe4ZcbnG3CiPdbHPEEozeflA4HvQZBbncSg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2075872},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"75360e279c40980a65366cf60557ba20fb9b0990","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.7.0_1789613594304_0.9918755538381328","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@buun_group/gunspec-sdk","version":"0.8.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.8.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"a2c48a74c426fc2413ba684364708e6d4f2046de","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.8.0.tgz","fileCount":18,"integrity":"sha512-Uicrj/REdxVjbGSOLdUoJlYjV73HDY5AXdnFG3yVbm0w+gf00YIqTfaqEX76kko5xKrGOtB0R34AyiqkjHzdIA==","signatures":[{"sig":"MEUCID1FboT6YsPBk/7V6UKHtbhzm1CVyn29c7fr7+4SQ3/9AiEAsJ8UeCL4DepGJ04Koq37aApNXRZuFW9UT3BkDTISBXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDR2GavpREzYWqS3Htp56QB98PDTp+gdrSXjab3dgKi/gIgeYN8rC9SZV6z0/zQ597mnMW1NO/+IGYHSGd9XXzi9qo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2076786},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"5eb8fd928eaac617cd981aba3138014b71541de4","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.8.0_1789613818445_0.6266378248489506","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@buun_group/gunspec-sdk","version":"0.8.1","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.8.1","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"d2d9a6397ea5a6cb8f6a29fb1ac1303381430fff","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.8.1.tgz","fileCount":18,"integrity":"sha512-+ew2m4+4UguYlr1/PVCJ1QFX4p44nVesTMW7ZG3VA4P6MRkm30CqaQr42gPJ3t3Ds+cE9jGJei5/t7pAGwrvUA==","signatures":[{"sig":"MEUCIQCq2NUoMkEufKziQbA+Zxn71vBah+UR08z0HlxOGTuxWQIgTlJz8CyLKDxa8ZlCndm0ZBUQxiNzj5UL9V+wMzAUqGA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCJTDgroJAy9E/LH1koYSoOhJ12991rlAPS+yhmqcdBswIgOFmrLg2eKVXSRN1qR1RMhcOvKsKbNtMtofeFqxl44Tw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2077122},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"f1eed2dbf307694b83e4c1b5761a902bac3397e5","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.8.1_1789620020121_0.7663150962394818","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@buun_group/gunspec-sdk","version":"0.8.2","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.8.2","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"1a81d2f8ca0e19667a5f7fba220fe0b36dd04649","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.8.2.tgz","fileCount":18,"integrity":"sha512-99g9UMeb3hI+Ob8L6nsa99n/ebTuJc1H8xHd+QjTuu7Ctk/oH10NXbFmIxpyI4Rdq8LTerffZYYX385JEMrdKA==","signatures":[{"sig":"MEUCIQC32velFUYA9xA/2bdarnkWecU6WVkgpeFgbhHxa2z8cAIgU04XF5M0532JQi+9S1TUM5u2jzEyX+DTBrBCJvuFk00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDRMIi/npgfOJYmYfw0IuhmsOPe0aI5auflN7zGs4h7GwIhAJ30yUjqyUqwPc8WWID5YpDZ7aHpxd/jZEVx3g5wX2fh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2077458},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"9e775ea0335f17b5bce362cf15dd5dff84a4883e","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.8.2_1789621536818_0.27029525369421203","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@buun_group/gunspec-sdk","version":"0.8.3","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.8.3","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"db97d60feea1bfedf8cd957271e49d24bf716803","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.8.3.tgz","fileCount":18,"integrity":"sha512-FWmoa3HS/Yw+P5t8JplyVaG5cAIdUXIUED98kA8OJjIp2yMj7qnU69jeWGr8Ij6YFh7IinuxkM8TGtS5nyYhIA==","signatures":[{"sig":"MEUCIQCRp6aMHUth5pINh2AMSrMa1nUnhCas/Welje99xYh9dwIgKsNSt5ryshKNrl0okoDjRZ36Sf4zABRF3lRq10VH3aE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD1kKgBP5q4+Mkta2RLMgwi3AYV2t3gmTXtVOOvEEm2tAIhAJSCsl0VeYBfSXLpmBHaMjo/Sj04+M6ywmPu2wu9MZTn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2077794},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"2fe42ce02cfb74823105cf3291598017828f2d80","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.8.3_1789622722825_0.6833447701115629","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@buun_group/gunspec-sdk","version":"0.9.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.9.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"2bcce8c558dcc21baee0dfcc1dc2e2836889908d","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.9.0.tgz","fileCount":18,"integrity":"sha512-nnre2/7PiqOl5UZ68KjMhhtCuWxBCRKKbQPur006SsqXWsrJxcg3V1RXv7MGuu4LwtikPORRzeHsaDjR0csuyw==","signatures":[{"sig":"MEUCID6axLfs2AwV9Dk6qCdbKF5itwuPDjbTIEvkz0RHIv+9AiEAtYOLMN/+nHnElasZ8gf9kNFlmhusQ15XpGUOq9p60cQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHFO9SgrrPwcUaeLiU42DL73q4DuKF3GKTilqoIWK/aqAiEArNeDCJeYrssP1dN4VlAtLT43gVHxffD9u7063/EGl6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2092403},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"36da58619e3a766cf63142b5ccfaadf7cb6dcaf6","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.9.0_1789631709513_0.6390002786080093","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@buun_group/gunspec-sdk","version":"0.10.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.10.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"36646dac9ceb4f79ebe8a785255f8df239dedff2","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.10.0.tgz","fileCount":18,"integrity":"sha512-EDcK7AL3L+rEhvqwvVch8dzmzkPhJ5NJs6crhOnUSzmEN9T+bcVLeYzPJq9xuSscnhqG9pL3CRFaGJ1v4/8S9Q==","signatures":[{"sig":"MEUCIQD7xmbWXZeBJm2ONfVxrEkuZ6bFzO2DBYY42q7LEjrPkwIgJYRyRsxq+ZdnzUf1XJp3PlgGkxwbLhf2NYtdFHGPdVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCZXrHMIuXJJeHY7asbwR2YC/nMsmmU9nGvpJvJPsMw+gIgbq9ZYzH3oVi44EKq53aJRd7LwpXNWYooRXS85QTI3lM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2093133},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"ed6c9ebb5f9583b2bfd3ed5c8dca6ad7ab66258c","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.10.0_1789636542983_0.34809542538634397","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@buun_group/gunspec-sdk","version":"0.11.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.11.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"546109850a2aa8c672ef1f75cb4278ce17cc59e7","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.11.0.tgz","fileCount":18,"integrity":"sha512-i65fE39dn+5AiWBNr24w36mJ8Ok8YmTxWiFx5lpzMKagqPtEAKu4wK4Nr7xCmfV8arheAPM6S/j23w6DB5gr0A==","signatures":[{"sig":"MEYCIQCKwABfOR6509n039r1AuPH9rEUQKhaJX2pTxyYsqITKQIhALPXZZxcPKRgck+NsCCSXl+UsVMbGl+kGOOuHcJbFZ0U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAYsNmerb61zbU+j7xznWvXTMveGKHsmgoi/vfJ0wtw1AiA8HdZ6gCWkVLwCFbRDj8VMt823tTzgcH3ekjgFKWrchg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2144485},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"4975b4220d12f12809e671ae84940ceefc90441e","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.11.0_1789652286485_0.16284392548814774","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@buun_group/gunspec-sdk","version":"0.11.1","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.11.1","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"afe53b4256c4b8526f56faa524dc6247d08d94a0","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.11.1.tgz","fileCount":18,"integrity":"sha512-iLl/GalqVrRN2Ft+EYn2tkJg/xBvDJ+MDe4M86hBYgx6a21o5XpS2NHtyeSaqM53um0gPXuzGeqRmZbb63NIEQ==","signatures":[{"sig":"MEUCIQD6zr5jg5ILB3GdH9bVkZ06QdziJaS3ElM+csDDrTYmNQIgO9/yEcyTqrJ1IpLArEPqYxRpTNd/ThDD3yG8QKEvLWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEEiz5HeiHh4a69vtIQowgUI8UKczlnjfK2uoDKayrwRAiBlXJUY1RsYCPJpCI4iVkXpKlfgWacJ53a7VhMHpd49ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2145033},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"5c639114e1f151621d07f0a6493b6d008747b9e4","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.11.1_1789654156438_0.6217664045619162","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"@buun_group/gunspec-sdk","version":"0.11.2","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.11.2","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"249a99e081b8a28f1800825223e257d735a344b6","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.11.2.tgz","fileCount":18,"integrity":"sha512-WXSqY3dtBqK0g/vl3m4+0E0QdmsSu/vpRbi/pD1VxKDVCSw8NxhUtGyM71LmYXQq3bek2J6Dsy6NO2vD8lY5eA==","signatures":[{"sig":"MEQCICLHBxe/s6EPXMhN3iRJfmRZRUM5iBH7oqshpKxxxKnHAiAbxRk3+9Z2bKrm85DOXBGanKmSRzRLRJWXbeW5SPKMbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD5eQEBWpZw4ChbHuCkV+8PI4pSWGkK8wqQ7OjlhAmTeAIhAOnzQrFy1DKIldTSHGyCwsyJ7f5mBpxUHtynWrhzguQS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2145345},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"0c027cdcd186f9c926d46ecc389f4212ba7a0e0f","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.11.2_1789655541769_0.9590876989675603","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@buun_group/gunspec-sdk","version":"0.12.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.12.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare/issues"},"dist":{"shasum":"abcca699eb965dd43548cad727003f073f75aa00","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.12.0.tgz","fileCount":18,"integrity":"sha512-JceDZEuX562YDivj5nhAsUsB6iqtl8wxaU88wE8CjTI/oyRtGCyLKROxC5ccrAH6N66B64vOW6cDa7VCauhTZg==","signatures":[{"sig":"MEQCIFuumzT9dXTKlqqXUs2gpGw1O07mfSHn4ugLjv3T4d3HAiBL3XpmOpzcVbBR3fnDB6KbhU/Dd1NRRqU+sX809RScjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD3R0XP5LaW1q7nMCtyqKX37BpqyrHPSwInVxlfZ/grlAIhAKDdZWDWBxNDjge6CDB/teMH8j6HPbbz/Zfx4tkY7vHS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2145883},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"b42041d28400a859b656bcbffdb0dcdedab92da3","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/BuunGroupCore/gunspec-vite-v6-cloudflare.git","type":"git","directory":"packages/sdk"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.12.0_1789700298328_0.19653036107448507","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@buun_group/gunspec-sdk","version":"0.13.0","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","_id":"@buun_group/gunspec-sdk@0.13.0","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"homepage":"https://gunspec.io","bugs":{"url":"https://github.com/gunspec/gunspec-js/issues"},"dist":{"shasum":"797ebdf2905653eed5ad3d7e3ab1846ff6691687","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.13.0.tgz","fileCount":18,"integrity":"sha512-/vRMRFjsTf/sSyYCgh+cG/UUlVF5qgiIaodFhIhIY2QSykrjMIaoPXImuUOXZyq9n1ExvYW/4rujYeDYyuwuLQ==","signatures":[{"sig":"MEQCIHgZF/rr2+Y7acNC7U0l92CKTwPGiFCfuqMkJ7EEXozBAiBYjkPZJveXHEuSkIof6DQ5TOPLLdoThPdGeeehDTxLAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHjA6slki9+RK3wXD2T+T7ukLFOmq+kNxSzXSdg4Hf0fAiEAlwOxPrTHKwG790kygq8ePLQKmmeZX3oJo8jmq/Bkkp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2215414},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"7e94be3acba872487882d5ca13a61e568d7da479","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"repository":{"url":"git+https://github.com/gunspec/gunspec-js.git","type":"git"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"tmp":"tmp/gunspec-sdk_0.13.0_1790087163429_0.19905856731513993","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"_id":"@buun_group/gunspec-sdk@0.13.1","bugs":{"url":"https://github.com/gunspec/gunspec-js/issues"},"dist":{"shasum":"5c9081cb30501e0738518796baec9f74950f6dd3","tarball":"https://registry.npmjs.org/@buun_group/gunspec-sdk/-/gunspec-sdk-0.13.1.tgz","fileCount":18,"integrity":"sha512-fgiNrsl27qcI3sdpCSX95b8ilRISKAcbRe/flHhFO+G1mtnQbAU3cNxBtQJi2FvEOrMTC2mxuTmZ7USrybQk5Q==","signatures":[{"sig":"MEUCIQDeEi6EMuA/zUMuEn3jeF9lzuKik0Jz/6sRNJRJhv2Y6wIgJiYfGO2FYWuKTh+LceOhuBLGhDbW1AWIca3z0yz3j+I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDtW8IGGxzfw7SxElWY3MtqqsIXEq/xsph3nB2DOT514gIhAOc4kbomFMJHsm8l0GBqVRASejsFzyKxFTIZ9z2rfoDC"}],"unpackedSize":2261523},"main":"./dist/index.cjs","name":"@buun_group/gunspec-sdk","type":"module","types":"./dist/index.d.ts","author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./tools":{"import":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.js"},"require":{"types":"./dist/tools/index.d.cts","default":"./dist/tools/index.cjs"}},"./package.json":"./package.json"},"gitHead":"80b218ae1e5cc59958681ff8abf57ff89be1be88","license":"MIT","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","version":"node scripts/sync-version.mjs","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","test:watch":"vitest --watch","generate:types":"node scripts/generate-openapi-types.mjs","prepublishOnly":"npm run build","sync:contracts":"node scripts/sync-api-contracts.mjs","test:integration":"vitest run --config vitest.integration.config.ts","generate:types:check":"node scripts/generate-openapi-types.mjs --check","sync:contracts:check":"node scripts/sync-api-contracts.mjs --check"},"version":"0.13.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4993fc9-08cc-49fc-845f-15522bb0b13c"}},"homepage":"https://gunspec.io","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"repository":{"url":"git+https://github.com/gunspec/gunspec-js.git","type":"git"},"_npmVersion":"12.0.2","description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","directories":{},"maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.2.3","openapi-typescript":"^7"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gunspec-sdk_0.13.1_1790088974598_0.5845875303675938"}}},"time":{"created":"2026-02-19T02:49:37.318Z","modified":"2026-09-22T14:56:14.856Z","0.1.0":"2026-02-19T02:49:37.619Z","0.1.1":"2026-02-19T03:22:13.214Z","0.2.2":"2026-09-11T23:28:22.860Z","0.2.3":"2026-09-11T23:34:21.455Z","0.3.0":"2026-09-13T07:51:40.824Z","0.4.0":"2026-09-13T13:24:20.383Z","0.5.0":"2026-09-17T01:47:12.401Z","0.5.1":"2026-09-17T02:45:25.965Z","0.6.0":"2026-09-17T02:49:20.763Z","0.7.0":"2026-09-17T02:53:14.477Z","0.8.0":"2026-09-17T02:56:58.566Z","0.8.1":"2026-09-17T04:40:20.249Z","0.8.2":"2026-09-17T05:05:36.973Z","0.8.3":"2026-09-17T05:25:22.931Z","0.9.0":"2026-09-17T07:55:09.602Z","0.10.0":"2026-09-17T09:15:43.088Z","0.11.0":"2026-09-17T13:38:06.579Z","0.11.1":"2026-09-17T14:09:16.529Z","0.11.2":"2026-09-17T14:32:21.863Z","0.12.0":"2026-09-18T02:58:18.431Z","0.13.0":"2026-09-22T14:26:03.570Z","0.13.1":"2026-09-22T14:56:14.700Z"},"bugs":{"url":"https://github.com/gunspec/gunspec-js/issues"},"author":{"name":"BUUN GROUP","email":"hello@buungroup.com"},"license":"MIT","homepage":"https://gunspec.io","keywords":["gunspec","firearms","api","sdk","typescript","specifications","database","mcp","agent-tools"],"repository":{"url":"git+https://github.com/gunspec/gunspec-js.git","type":"git"},"description":"Official TypeScript SDK for the GunSpec.io firearms specification database API","maintainers":[{"name":"buun_group","email":"sacha.roussakis-notter@buungroup.com"}],"readme":"# @buun_group/gunspec-sdk\n\nOfficial TypeScript SDK for the [GunSpec.io](https://gunspec.io) firearms specification database API. Zero runtime dependencies; runs on native `fetch` in Node 18+, Bun, Deno, Cloudflare Workers and browsers.\n\n## Installation\n\n```bash\nnpm install @buun_group/gunspec-sdk\n```\n\n## Quick Start\n\n```typescript\nimport { GunSpec } from '@buun_group/gunspec-sdk';\n\n// Reads GUNSPEC_API_KEY from the environment\nconst client = new GunSpec();\n\nconst { data, pagination } = await client.firearms.list({ category: 'pistol', manufacturer: 'glock' });\nfor (const firearm of data) console.log(firearm.name, firearm.version);\n\nconst { data: glock } = await client.firearms.get('glock-g17');\n\n// Turn a loose name into an id\nconst { data: hit } = await client.firearms.resolve('G19 gen 5');\nif (hit.status === 'resolved') console.log(hit.firearmId);\n```\n\n## Configuration\n\n```typescript\nconst client = new GunSpec({\n  apiKey: process.env.GUNSPEC_API_KEY, // or omit: read from the environment. null = anonymous on purpose\n  authScheme: 'x-api-key',             // or 'bearer' for Authorization: Bearer\n  baseURL: 'https://api.gunspec.io',   // default\n  timeout: 30000,                      // ms\n  retry: { maxRetries: 2, initialDelayMs: 500, maxRetryAfterMs: 30000 },\n  etagCache: true,                     // hold ETags; a 304 is served locally and costs no daily quota\n});\n```\n\nSecurity defaults you get without asking:\n\n- **A key never goes over plain `http://`** to anything but localhost. `new GunSpec({ apiKey, baseURL: 'http://api.example.com' })` throws `ConfigurationError`; pass `allowInsecure: true` only for a private network you trust.\n- **The key never appears in an error, a log line, `JSON.stringify(client)` or `console.log(client)`**; it is masked (`gsk_...feca`).\n- **The key stays on the API's own origin.** Redirects are followed by the SDK, not by `fetch`: a hop to another host goes without `X-API-Key` or `Authorization`, a hop from `https` to `http` is refused with `ConnectionError`, and a chain stops after five. A browser hides where a redirect goes, so there a redirecting call under `X-API-Key` throws `ConfigurationError`; use `authScheme: 'bearer'`, whose header the browser removes on a cross-origin hop.\n- **An id of `''`, `.` or `..` throws `InvalidArgumentError`** before any request, because URL parsing would otherwise send the call to a different endpoint.\n- **`Retry-After` is honoured, and bounded.** A 429 or 503 that asks for a wait longer than `maxRetryAfterMs` is surfaced instead of slept through, and a spent daily allowance (`DAILY_CAP_EXCEEDED`) is never retried.\n\n## Resources\n\n| Resource | Methods |\n|----------|---------|\n| `client.firearms` | `list`, `get`, `search`, `resolve`, `resolveMany`, `compare`, `gameMeta`, `actionTypes`, `filterOptions`, `random`, `top`, `headToHead`, `byFeature`, `byAction`, `byMaterial`, `byDesigner`, `powerRating`, `timeline`, `byConflict`, `popular`, `getVariants`, `getImages`, `getSchematics`, `getGameStats`, `getDimensions`, `getUsers`, `getFamilyTree`, `getSimilar`, `getAdoptionMap`, `getGameProfile`, `getSilhouette`, `calculate`, `load`, `mediaCatalog`, `listMedia`, `getMedia`, `downloadMedia`, `getImageAsset`, `getModel`, `getOffers`, `getInterfaces`, `getAttachments`, `listAutoPaging` |\n| `client.manufacturers` | `list`, `get`, `getFirearms`, `getTimeline`, `getStats`, `listAutoPaging` |\n| `client.calibers` | `list`, `get`, `compare`, `ballistics`, `getFirearms`, `getParentChain`, `getFamily`, `getAmmunition`, `listAutoPaging` |\n| `client.categories` | `list`, `getFirearms` |\n| `client.ammunition` | `list`, `get`, `getBulletSvg`, `ballistics`, `listAutoPaging` |\n| `client.attachments` | `list`, `get`, `getFirearms`, `getOffers`, `listAutoPaging` |\n| `client.interfaces` | `list`, `getFirearms` |\n| `client.platforms` | `list`, `get` |\n| `client.vendor` | `shops`, `listOffers`, `pushOffers`, `updateOffer`, `deleteOffer`, `clickUrl`, `resolveClick` |\n| `client.stats` | `summary`, `productionStatus`, `fieldCoverage`, `catalogCoverage`, `popularCalibers`, `prolificManufacturers`, `byCategory`, `byEra`, `materials`, `adoptionByCountry`, `adoptionByType`, `actionTypes`, `featureFrequency`, `caliberPopularityByEra` |\n| `client.game` | `balanceReport`, `tierList`, `matchups`, `roleRoster`, `statDistribution` |\n| `client.gameStats` | `listVersions`, `listFirearms`, `getFirearm` |\n| `client.countries` | `list`, `getArsenal` |\n| `client.conflicts` | `list` |\n| `client.content` | `listChangelog`, `getChangelogEntry`, `listBlogPosts`, `getBlogPost`, `listNotices` |\n| `client.collections` | `getShared` |\n| `client.dataQuality` | `coverage`, `confidence` |\n| `client.favorites` | `list`, `listIds`, `add`, `remove` |\n| `client.reports` | `create`, `list` |\n| `client.support` | `create`, `list`, `get`, `reply` |\n| `client.webhooks` | `list`, `create`, `get`, `update`, `delete`, `test` |\n| `client.usage` | `get` |\n\n`client.http` is the underlying `HttpClient` for a path the resources do not cover yet.\n\n### Compatibility\n\nWhat fits a firearm is computed from mount interfaces, never from names. Browsing the attachment catalog is open on the same terms as firearms; computing a fit is a Studio feature.\n\n```typescript\nconst { data } = await client.firearms.getAttachments('ak-74m', { category: 'suppressor', with_offers: true });\nfor (const group of data.groups) {\n  for (const item of group.items) console.log(item.name, item.fitType, item.confidence, item.via);\n}\n```\n\n### Sellers\n\nA shop names an ordinary Enterprise key in Profile > Seller; that mapping is the whole vendor scope. Prices are integer minor units plus an ISO 4217 code: format with `Intl.NumberFormat`, never divide first.\n\n```typescript\nconst { data: shops } = await client.vendor.shops();\nawait client.vendor.pushOffers({ offers: [{ sku: 'A1', attachment_id: 'surefire-socom556-rc2', price_cents: 129900, currency: 'AUD', url: 'https://shop.example/a1' }] });\nawait client.vendor.updateOffer('A1', { price_cents: 119900, status: 'published' });\n\n// Rendering a listing: link through the tracked URL so the seller sees the visit\nconst { data: offers } = await client.attachments.getOffers('surefire-socom556-rc2', { region: 'AU' });\nconst href = client.vendor.clickUrl(offers[0].clickId!);\n```\n\n### Provenance\n\nA firearm detail, a caliber and an attachment detail carry `provenance`: the pages consulted (`sources`), the 0 to 1 `dataConfidence` set from what was actually sourced, `verifiedAt` and `verifiedFields` for the last check against a maker's page (null means seed knowledge nobody has checked), and the same `updatedAt` and `version` the record carries at the top level. Check a specific figure against `sources`, not against the score.\n\n```typescript\nconst { data } = await client.firearms.get('glock-g17');\nif (data.provenance?.verifiedAt === null) console.log('unverified; sources:', data.provenance.sources);\n```\n\n### Evidence on fits\n\nEvery fit item (`firearms.getAttachments`, `attachments.getFirearms`) carries `source`, the weakest evidence behind it: `curated` is a person's verdict, `universal` needs no interface at all, and `inferred`, `inherited:parent` or `inherited:platform` name the least trustworthy interface row the fit passed through. Treat `inferred` as unverified; `min_confidence` hides it. `FIT_SOURCES` lists the values, and every other closed vocabulary the API serves (`FIREARM_STATUSES`, `MEDIA_KINDS`, `TICKET_STATUSES` ...) is exported the same way with a matching union type, generated from the API source.\n\nThe raw OpenAPI schemas are exported as `components` for callers who want them (`components['schemas']['FirearmRecord']`); the hand-written models are checked against them on every test run.\n\n## Auto-Pagination\n\n```typescript\nfor await (const firearm of client.firearms.listAutoPaging({ category: 'rifle' })) {\n  console.log(firearm.name);\n}\n```\n\n## Caching and conditional requests\n\nEvery response carries `etag`, `cacheControl`, `requestId` and `rateLimit`. Every record carries `updatedAt` (when it changed) and `version` (its content hash: equal versions mean equal data, on every plan).\n\nWith `etagCache: true` the SDK sends `If-None-Match` on every GET and serves the held body when the API answers `304`. A 304 does not count against the plan's daily cap.\n\n```typescript\nconst client = new GunSpec({ etagCache: true });\nconst a = await client.firearms.get('ak-47'); // 200, stored\nconst b = await client.firearms.get('ak-47'); // 304, b.fromCache === true, b.data === a.data\n```\n\nPass an `ETagStore` (`get`/`set`) to persist across processes. Keys are namespaced by a fingerprint of the API key, so two keys never share a plan-shaped body. Hold your own tags with `client.http.requestConditional({ method: 'GET', path, ifNoneMatch })`, which returns `{ notModified: true }` on a 304.\n\n## Error Handling\n\nEvery API error carries `code` (the family, stable forever) and `reason` (the situation, what to branch on), plus `details`, `retryAfter`, `requestId` and `action`: the API's own one-line advice.\n\n```typescript\nimport { GunSpec, APIError, AuthenticationError, PermissionError, RateLimitError } from '@buun_group/gunspec-sdk';\n\ntry {\n  await client.firearms.getAttachments('ak-47');\n} catch (error) {\n  if (error instanceof PermissionError && error.reason === 'PLAN_REQUIRED') {\n    console.log(`Needs ${error.requiredTier}. ${error.action}`);\n  } else if (error instanceof RateLimitError) {\n    console.log(error.isDailyCap ? 'Daily allowance spent' : `Retry in ${error.retryAfter}s`);\n  } else if (error instanceof AuthenticationError) {\n    console.log(error.reason); // KEY_MISSING | KEY_INVALID | KEY_DISABLED | KEY_EXPIRED | ...\n  } else if (error instanceof APIError) {\n    console.log(error.status, error.reason, error.requestId);\n  }\n}\n```\n\n401 is a credential problem: a different key can work. 403 is a permission: reissuing a key changes nothing. Subclasses: `BadRequestError` (400), `AuthenticationError` (401), `PermissionError` (403), `NotFoundError` (404), `ConflictError` (409), `PayloadTooLargeError` (413), `RateLimitError` (429), `InternalServerError` (500), `ServiceUnavailableError` (503); `ConnectionError`, `TimeoutError`, `ConfigurationError` and `InvalidArgumentError` never reached the API. `ERROR_REASONS` exports every reason with its summary and action.\n\n## Webhooks\n\nVerify deliveries before trusting them. The header is `X-Webhook-Signature: t=<unix>,v1=<hex>`, HMAC-SHA256 over `${t}.${rawBody}` with the endpoint secret.\n\n```typescript\nimport { constructWebhookEvent, WebhookSignatureError } from '@buun_group/gunspec-sdk';\n\napp.post('/hooks/gunspec', async (req, res) => {\n  try {\n    const event = await constructWebhookEvent(await req.text(), req.headers.get('X-Webhook-Signature'), process.env.GUNSPEC_WEBHOOK_SECRET);\n    if (event.type === 'firearm.updated') await mirror.upsert(event.data);\n    res.status(204).end();\n  } catch (e) {\n    if (e instanceof WebhookSignatureError) return res.status(400).end();\n    throw e;\n  }\n});\n```\n\nPass the body **as received**; re-serialising a parsed object breaks the HMAC. Dedupe on `X-Webhook-Id` (the event), quote `X-Webhook-Delivery` (the attempt) to support. `WEBHOOK_EVENT_TYPES` lists every subscribable event.\n\n## Tool manifest (agents)\n\n`@buun_group/gunspec-sdk/tools` restates the read-only surface as tools: a stable name, a model-facing description, a JSON Schema for the arguments, the plan it needs, and `execute(client, args)`. Adapters render it for Anthropic (`asAnthropicTools`), OpenAI (`asOpenAITools`) and MCP (`asMcpTools`); `toolsForTier` hides what a plan cannot reach.\n\n```typescript\nimport { GunSpec } from '@buun_group/gunspec-sdk';\nimport { asAnthropicTools, executeTool } from '@buun_group/gunspec-sdk/tools';\n\nconst tools = asAnthropicTools();\nconst result = await executeTool(new GunSpec(), 'gunspec_get_firearm', { id: 'ak-47' });\n```\n\n### Workflows\n\nFive tools make several SDK calls and return one compact, combined answer, so an agent spends one turn where it would otherwise spend several. They are listed first in `GUNSPEC_TOOLS` and exported together as `WORKFLOW_TOOLS`.\n\n| Tool | Plan | Most requests | Replaces |\n|---|---|---|---|\n| `gunspec_identify_firearm` | Builder | 4 | resolve, get, variants, media |\n| `gunspec_compare_by_name` | Builder | 6 (up to 5 names) | one resolve per name, compare |\n| `gunspec_what_fits` | Studio | 2 | resolve, attachments with offers |\n| `gunspec_cartridge_profile` | Explorer | 5 | caliber get or search, firearms, family, ammunition |\n| `gunspec_load_compare` | Builder | 9 (up to 8 loads) | ammunition list, one ballistics call per load |\n\n```typescript\nconst identified = await executeTool(new GunSpec(), 'gunspec_identify_firearm', { name: 'Glock 17' });\n```\n\nThree rules hold for every workflow:\n\n- **Every request still counts.** A workflow saves the model's turns, not API requests: each call it makes is metered against your plan like a direct one, up to the figure in the table.\n- **A name is never guessed.** One that matches several records, or none, comes back `resolved: false` with the candidates rather than an answer about the first match.\n- **A missing plan is a gap, not a failure.** An optional step your plan does not cover is listed in `gaps` with the plan it needs, and the rest of the answer still stands.\n\n## Development\n\n```bash\npnpm test                    # unit suite, no network\npnpm sync:contracts          # regenerate error reasons, webhook events and vocabularies from the API source\npnpm generate:types          # regenerate src/types/generated from apps/api/openapi.json\npnpm typecheck               # the source, plus the type-level mirror test against the generated spec\npnpm test:integration        # against a live API; skipped unless the two variables below are set\n```\n\nThe integration suite runs against the local worker (`pnpm dev:api`, port 8788) with the enterprise dev key that `pnpm --filter @gunspec/api db:seed:dev-key` creates:\n\n```bash\nGUNSPEC_INTEGRATION_BASE_URL=http://localhost:8788 GUNSPEC_INTEGRATION_API_KEY=dev-internal-key pnpm test:integration\n```\n\nIt asserts shapes, never catalog figures, and cleans up what it writes.\n\n## Requirements\n\n- Node.js >= 18 (or any runtime with `fetch` and WebCrypto)\n- TypeScript >= 5.0 for type-checking; not required at runtime\n\n## License\n\nMIT\n","readmeFilename":"README.md"}