{"_id":"@pimia/sdk","_rev":"31-3676544e8b4f264fdcdf999ee774214d","name":"@pimia/sdk","dist-tags":{"latest":"0.36.0"},"versions":{"0.1.0":{"name":"@pimia/sdk","version":"0.1.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.1.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"c1e06ca439270bf9ab6e42e7bd1fbea53a9b3e78","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.1.0.tgz","fileCount":15,"integrity":"sha512-B1rJNSbvC/lqqNV/RZrUV2aSLi15r2eUzxjM/RWRcfkUsiQZAX4h/LTwSHLOU9Zx3c8mJ4tl7zFjj9+pCh3v1g==","signatures":[{"sig":"MEUCIQC2Hkw1UEU8EDonF6Ol1QzfOMHH7s8zxQUO0DmEmbZmWgIgaDxcJhBgnCpFnVhguRVQCsUcUfLeyw3dpt0vkoua4bo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":489273},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"7165d00b34ef13fcbbd5515635dd904fb2a216f0","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"openapi-typescript ../spec/pimia-api-v1.json -o src/api.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1785648935490_0.6285321287752719","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@pimia/sdk","version":"0.2.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.2.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"d1dfb0eb4e3f13aad0998a3f721f0f0369744ce4","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.2.0.tgz","fileCount":15,"integrity":"sha512-K1UTsBppz0ciO59hLo9MFPvJL+yIBbuc2aG5IBIvf3xp+vXrAXyi48RuPTOJU9YGTvdKn2qEG9GrpvQr4iSoOA==","signatures":[{"sig":"MEQCIAnbJRLtCc97LE9piQhOVqzCUh/Q0qjT8U0mQHqyNWVbAiBrC4zM4w6HXsWu2oDUy2jRX2VTNaSNUwfqGNO/6VbgXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":537224},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"d164555b8c042c6499b0e01ed39704c37205ded2","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"openapi-typescript ../spec/pimia-api-v1.json -o src/api.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1786286796060_0.8555427939815663","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@pimia/sdk","version":"0.3.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.3.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"6317d08cd296147dae7a2fbec02a75774a2fe7f2","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.3.0.tgz","fileCount":17,"integrity":"sha512-Q5yZ7X4MsEPRPeuwrjdgBCYLvkoWRxnzql7z9qMxLASU5i3uQ461bzoc+t+fzopZo/k8202OCSC2pVdQiH1SEw==","signatures":[{"sig":"MEUCIQCt2360Roc4Z/38oS/F79OEAEPPXlG6z7IzQwc4Q6xJ3AIgAdm5TOYwpLmlcDEIkETKCiavjsAlwwbPsOc1heHnEXA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":583783},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"7a5077b3be2f7ad844de13b7f87673a255a51a07","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"openapi-typescript ../spec/pimia-api-v1.json -o src/api.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.0_1786376634366_0.9604852674275417","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@pimia/sdk","version":"0.4.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.4.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"d2220ea05afc6e16f607b1f43bb10f66dcf35a9c","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.4.0.tgz","fileCount":17,"integrity":"sha512-FDX1f1hofl9+vwPV3gphuKV/IPbBybZgVXN87Yuu7BBXzng+QiaFqAbsgP2oMJDv8A6Polz9G8HxT709y5wpfQ==","signatures":[{"sig":"MEUCIQDcM1Lb+WguBtDpFHOLsHr32FH2QLK4h5BKM4FZ2CzlZQIgJLHkSg631wdpZxvQ3ZTYzOnIpRO5O103+AJGtQD0jGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":600028},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"71ac1678f1887d9f83d8950ca5797b1cb88b2710","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"openapi-typescript ../spec/pimia-api-v1.json -o src/api.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.4.0_1786381037609_0.6254763666522711","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@pimia/sdk","version":"0.5.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.5.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"8658877df20a7302e940cb011b2f9071fc4edbdb","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.5.0.tgz","fileCount":17,"integrity":"sha512-myv5L0WZftySEksQFED6zXO+pGte2050yU2pzOlEAHbLDmJwtBYHdXkvXatVKfLl7wghJR2OpoBk/v47LaKofg==","signatures":[{"sig":"MEQCIEBYEFOl3+2N9iYa7vAdeF3pkF4BtGX/u2zxtPGS9cVbAiA7PZcXQ8UamJ+U8SBuMdnwQqNjgO0/FWo50AJnrnfRtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":603149},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"34dfdafd3166c2a47a26e617615cffe3e5d6dae6","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"openapi-typescript ../spec/pimia-api-v1.json -o src/api.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.5.0_1786393807244_0.7164596072920097","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@pimia/sdk","version":"0.6.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.6.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"cf2c1b88bf383179864ce52db3d3fe5b1d05617d","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.6.0.tgz","fileCount":17,"integrity":"sha512-pY64a2Aql7bCpMBraWbQ9WwXz9Rws0jOG8K16nyvVtmryvHwENEmoybghQ1Lg0ckGbMxYlodYRICIFHYGT3T9g==","signatures":[{"sig":"MEYCIQDNMZ6hMi3JhZKTFqDuyS+dmqAG5oOE8u77TsN2NgCjYAIhANbY0IOICwnmJnata/ensqbHo8ee40+lTXKLyNdl31y0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":780203},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"be7bb0bcf92fbe3cd947225998474b4640016f40","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"openapi-typescript ../spec/pimia-api-v1.json -o src/api.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.6.0_1787395395665_0.6482315478921119","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@pimia/sdk","version":"0.7.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.7.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"ff46a5a884721f32a9b92cedbdb8604aa536a9e5","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.7.0.tgz","fileCount":17,"integrity":"sha512-el4BaM496ncZXjxU/Wd3WtbaTgUoZxnbE3InzwYAmj7G6d5TXygV/HzHwOg1362Vo9PF4O7u3AgpkhcjiLcSMg==","signatures":[{"sig":"MEUCIGbqbLtmOiibbtsk3ybbHxUn/xPYrvU7v+2DXxeLcA8FAiEA7SLtPIH2GiaK0Uxd+U4fXrdtKuuXQo+PdpZVryNorUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":793849},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"1b8f50d0541f632a42f8795f4db52201b945775b","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.0_1787580764285_0.5500464804710719","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@pimia/sdk","version":"0.8.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.8.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"7350fd4c608bf33b83acbb765b21cca0a41aa994","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.8.0.tgz","fileCount":17,"integrity":"sha512-d/alToGroZuxgL0doxlkuxMkwg0Pa5mOOAMIhXA324m/koFBmltOxOWCFKVG3RVE75zUDDBACgFvtBghagGvdA==","signatures":[{"sig":"MEUCIQCDszVw9vPdNvCdQEAqfqNMIj+D2yHqFpCoa/tqNO2/4QIgN2hzoyM9zyGOnP7a3h0HmGMl6LbThPYJ/B3x2kbTIzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":899889},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"e6e067fc1b4a6aaa6062828e753addf7fe45c3d6","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.8.0_1787685620946_0.08119023088337074","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@pimia/sdk","version":"0.9.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.9.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"ddb8d5f645bc481f73bf76edb9444adb46fda8fe","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.9.0.tgz","fileCount":17,"integrity":"sha512-trxeHUjVwEKVQlf0E6GQlgJ9OAAOiCSl5q1QCaF1lRCbY6CdQhGWNAIko5kWspmfK5WPR+UkDYHz95+9X2yB9Q==","signatures":[{"sig":"MEUCIQDWqbcm8gSKNI3lkr5bvbIJAQeFn6ovKPKonsmQ9fKXYgIgZkLfJVnm1tgdLKxBY2+ubzCxiwVTnUgfwajbGMh+P08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":906882},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"5d4fea74d612156e7a3671a3f697597201bf4de9","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.9.0_1787693165275_0.6714945900122833","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@pimia/sdk","version":"0.10.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.10.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"4be0d4815cd9fa7b7789ef30ed134996269d57f8","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.10.0.tgz","fileCount":17,"integrity":"sha512-ta0ATyiZiOaFbpNVipVsZTRCgqOmvdsyhGQ0FLujnD8gN9RJ3OZ4XE32wzTmrlUpMdS9uw0zYzOopN6gWybbNw==","signatures":[{"sig":"MEUCID+lPvDJ/R2jdWdFpXwJ4I5Bcm+0APGQXPGlRabFe52FAiEAvFarWVsAjeJvJ0hLBRhGgiP17kaBD56rHp2yppRcjDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":916294},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"cfe6740d90b4de2fb4eb35a6c04289cd518d06e2","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.10.0_1787770437504_0.8399085729698785","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@pimia/sdk","version":"0.11.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.11.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"1ad24bdd0608117ba9642d8aa28f275499c0dde4","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.11.0.tgz","fileCount":17,"integrity":"sha512-WsHxzCPJZXtLGIaP7g6oKHPfefuivzugEe78ba1P3aAt+rdmWCnPuod5KQmrzO2sBjbQu51iF06TK3bvxNahxw==","signatures":[{"sig":"MEUCIQDWb/ZWVjToGZnKBTOMR8+pBlwfj7Tm1yBL4GPs2VXaVwIgRZGrWGcJESQmTalgXHEPDkRcNJ7qylUXtKU+LTsjbho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":986394},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"b1ce2ed4f79111e709e67d28ec142ff8ed69ea46","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.11.0_1787786418976_0.01689564573290303","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@pimia/sdk","version":"0.12.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.12.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"f9c7f567b285dd25068c469d263c537d632e696d","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.12.0.tgz","fileCount":17,"integrity":"sha512-6FbEdCt35Dm28Q0zrNiTHVvsWjjlzG/+iD+Uo5Qaqzx5L8jZ1IOCUZDuCKxn20orE3/x2fjLLJQuh9yE2gImMQ==","signatures":[{"sig":"MEQCIDppmS6mv2XK0c93tkcFEO46645oV0vWmTw47KxNRgYsAiBu8zK3G0pghjLIV2qfTpulvAp14InsmoRuD0ps7tJXSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1029080},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"de06f39284cd8d655a6297a7e266f3416e3a67c3","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.12.0_1788084982164_0.6284414818234838","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@pimia/sdk","version":"0.13.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.13.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"4663e585efb77b26beaf04750fc44ecb5dd17171","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.13.0.tgz","fileCount":17,"integrity":"sha512-smD0TjsgiYYAvbxMh41lHffOqmebO4hFLzmyJVzP3COZn8pQDGe1TyKTMI3PjoFjsjj9akQAhQCF8Vjvf5IUNg==","signatures":[{"sig":"MEYCIQCcYuhvVGBhDI8O5eJDS4hJhZSCgSqi/VE8XaVJ46O5iAIhAMzTOI03MpQNlX69kj/nxQMLIyFacDFUmhxKVdkfufdw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1057465},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"f75c57b5564b0e765cdbc52688b84f0e9faf6943","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.13.0_1788159175895_0.2915463121064297","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@pimia/sdk","version":"0.14.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.14.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"3206eeb8d674d212f71a15a7dd4a3ff321a7921c","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.14.0.tgz","fileCount":17,"integrity":"sha512-Ps7TDJGiG6okBtWqpZMhlg5eWQQYAOo5Pm4xWeaOo7+E23ybdeBUxRezMftk6hLWv+2aWu9bk9+06Vrg2gt5AA==","signatures":[{"sig":"MEQCIBSxZ0dojpqBM1w6sDeTdumGo6ZdPrGtLMevbF23oK12AiAfObLgV0TJAfzQSa+6g1xJHNkwQASMhSIQMEDXLnC+Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1059622},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"e64a1e155933fba1d7a2a594df4fae6d13fe1ec1","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.14.0_1788161719072_0.3050504161253951","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@pimia/sdk","version":"0.15.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.15.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"1e6df40980d4787b423edb76a0d7c717c96d3d15","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.15.0.tgz","fileCount":17,"integrity":"sha512-WBMIVXToMlt+rxpTq16gQ5Kb9Wlv/nxIQY5vOItuepZ/PCc5Mc0rQGgz17JfXsxCAtwhTlRi9rJaAFqObVK02w==","signatures":[{"sig":"MEQCIFLGWDu+B41sqPxDCBB6jhTNijApEecSXwx8ll8ubMJoAiAmsNbEydxxRB+XylddllLGC5XB4BbNn7ARki9wNzYsBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1080760},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"1b0c5b7917cbd69c1a54fb9f2d71647a890f1efa","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.15.0_1788169876089_0.13847859237528626","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@pimia/sdk","version":"0.16.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.16.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"65ade373e649a7917bc665a35074d184c90b8629","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.16.0.tgz","fileCount":17,"integrity":"sha512-6jkYkQr/osY2ztUcugeYVBFqF9KfyuEn6MizoxfGgL5FcV5OTYz6haW/UpHF2T8s4aJwpQmcBxOGno4iUgAlOw==","signatures":[{"sig":"MEYCIQDzI+GEqci8JQyqp73IkIN46GsUlvubqU4vwsyv4jjvtgIhANaRDrmlcXCi+m7t82n5IZ/MqDn4271JclV2+6+DtfS1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1091742},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"92fc95f22071073641bceba545ff4943ad221119","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.16.0_1788176333498_0.8698968204741873","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@pimia/sdk","version":"0.17.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.17.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"a7771acf4b92fe4ac42911838f7f4f6bbeb88dc4","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.17.0.tgz","fileCount":17,"integrity":"sha512-G+dY8U6FEKdXTW9bzRPQZan0e5LhrKqCdwn8A/FXzouWdcxc9FAKULbENdsrbzshMCylE3STh9nXUmjdd7Qu8g==","signatures":[{"sig":"MEUCIQDr/Ms6G/EqWeJXQ5YTrU+lP0ZZTKiGMJ9XiGvVh5OBGgIgGMzhpfktbj/dmLFARnFEBh/fHO/IAS/chwbIv3Um8O4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1093468},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"e5bca68fb487f6bc35afee5dd4dc338603a59a6a","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.17.0_1788263269633_0.017221400147088506","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@pimia/sdk","version":"0.18.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.18.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"214b11be575a613c5a6bc6119afd0df775a7f2c4","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.18.0.tgz","fileCount":17,"integrity":"sha512-8SURL9LAqGJSqy68MALn720FtFsodT8ipiRjjjQBcj53Fo9QPDP9v+rrnZrapu5z3h6hFvHN+9rrIQces0DnIA==","signatures":[{"sig":"MEQCIFgfpkwSsi5Xb3BuXf1XpxHw35V4PB9I+HyIh/UwPOoHAiBrqPMh9mkhlJkraF76rOpBwkUL+R2kZ6x9GWOX+qsE8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1142641},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"e5ea8615e44da331f0a6defd0e457b23f8ca45a7","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.18.0_1788417091415_0.9178789031998065","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@pimia/sdk","version":"0.19.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.19.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"c7027336c8e974c304c56f4095fa51e91bb16ca5","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.19.0.tgz","fileCount":17,"integrity":"sha512-wv6kRx7YVnuBB71HokPP/v5qGAlUb7IoMqtqb7DmY2MKze6lbUtoh69XyfXqNWdF4K5q87leVM/oXw32e8ZkEg==","signatures":[{"sig":"MEUCIQCzCgsuJdQ+g13zuZ8mDaPnzMj0+lBj5hl/wLvy4eROTgIgQsZZ0HApofHXOyqxJ1f6o8tRwaeiEm86NcmJ1m7tmg4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1143179},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"47598fae22e6ba69463f891ec934f82cfdbf1f9b","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.19.0_1788422340281_0.13652518264475688","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@pimia/sdk","version":"0.20.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.20.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"49c5d8fe879ac7903b461a2d4618c8e7e033c732","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.20.0.tgz","fileCount":17,"integrity":"sha512-S/OBa8ePTFnnUWlQfrUI+/JOZybYoYgAOskCNaSND+pPA0yYflsXvp0HQMXw4PBKyoVMcgL8bLMpO/e5JEvx8A==","signatures":[{"sig":"MEUCICw822rD4oE9tGyV4tgyiVxY8pDsGdYDpUXUv2IvzgxaAiEAzFF6BQDV/tW7D+UyX72HcaDjAsWBay1Z3SLQIOu6z/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1149115},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"a929e0aec955c6be0735320219ffc5af12fae99f","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.20.0_1788441115632_0.7532730771251495","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@pimia/sdk","version":"0.21.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.21.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"de00e723a390dd6e4c03dc6b0815f777b0ad07dc","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.21.0.tgz","fileCount":17,"integrity":"sha512-iws47sRT6Yz1dDtCtPtIDF/oqt3c3uyRRBXM2wFOk1oyvd5O7HcFFjPyTkDYzhfOi23pGJOP+aIicW/JYklJBQ==","signatures":[{"sig":"MEYCIQD04Eptpq30S5Ld0+OdcK/vXd5FpOtAXe9zT3NhkibqiAIhAMQgjUo3SjM9HKfUEgHgMh3Yg3BuwcmCRqXQln9OJp7p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1150103},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"}},"gitHead":"0b4e6846f98e22fc98e9581804dcb8be74a28d46","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.21.0_1788442654799_0.4550640065820848","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@pimia/sdk","version":"0.27.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.27.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"2c2585ccd308386d24df25e618a3bf71d9ddbc2d","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.27.0.tgz","fileCount":21,"integrity":"sha512-5cP1NfRmaDIqIZBmgzHIKE9dWBWsnFDeMAGj/FedbNf8x7jbzz8ByzJ4MfVNvAKap876m+8fqD185y/9WB7B5g==","signatures":[{"sig":"MEUCIQD0nNvMRcCvH1BfFCeggO6u8rkW+hRXuE59ffWO0ySzIQIgdWbePWUj0dr2a8hQb3ahiPXCtLVjcQfOh6Bxc/J9Rbs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1334783},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"},"./central-api":{"types":"./dist/central-api.d.ts","import":"./dist/central-api.js"}},"gitHead":"d35683161e5b70d8b18463aeef0a8e7bf94f7987","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.27.0_1788904674509_0.48707215342270005","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@pimia/sdk","version":"0.28.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.28.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"60ed0863b9e47dc63df82b721410e435c17c23ed","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.28.0.tgz","fileCount":21,"integrity":"sha512-7sifSylVQmXIS6ZwbCdyDmrnRW5XA+ulzs77l3IMG45W7xQiNP/ge34DcV0JtKOXEjFF2moVW/SZU/Be3ibuHw==","signatures":[{"sig":"MEYCIQCZ9qtOgBZ+3nAzB+9GePpaVc9RgVCxumUp+d5FQlXfHQIhAKluf6R3zbvIyli7RPVPqe1Aw44Bil/M6hebmEGnKjAH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF/n/M+1tNyJCAOgfHg5cOzryDEcVogCJHFbqzaxGy7lAiAoMHdzhtK108v4+TQixCiEDO5DBrjPEToLpUDdMYV7aQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1443224},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"},"./central-api":{"types":"./dist/central-api.d.ts","import":"./dist/central-api.js"}},"gitHead":"8cd6f42aef3815176599c0c61e8ba6fb39b12764","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.28.0_1789378345279_0.9906269077499417","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@pimia/sdk","version":"0.29.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.29.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"145efd243c5ac957bab052e74c045655e5c64994","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.29.0.tgz","fileCount":21,"integrity":"sha512-qxEEo9o4siWhnD2Sf6RcVcihLjU2R9m9qjUbxBdxFW+hWPyrTf1JH0xTGG8wlBu/5vE4bbKwLXQxlpmKIcbqEQ==","signatures":[{"sig":"MEYCIQD62L4MR7xWYPN5JxMflFsiwAvjTvKSk7s5BLw0p5gfXwIhAJ0W4ZisfMoiwNn4bZxFXRnwEsNHJAHLaNbt775DLxAK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC5LK/IA1w5qRvbQCoKf8cEj+BefvGxXrkGYvxG3BRi9gIhAK1du7bBwxUjUjv8QoYbQtnQsOQU5yYr4OM/FOad0mmW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1703325},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"},"./central-api":{"types":"./dist/central-api.d.ts","import":"./dist/central-api.js"}},"gitHead":"9642f6b6ce5b7d8c74ec8322bf4bb049dd68a3d2","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.29.0_1789411378059_0.9838663774411482","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@pimia/sdk","version":"0.30.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.30.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"618e36d01d04a18f7843816613cd749dc69504b7","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.30.0.tgz","fileCount":23,"integrity":"sha512-72A/hDATeFhKIZ1H1DAiVknzYemNmfqo8mlQ9OPphkDNLXO7Quv8ZyFMAzuEld3PTrjci387FWSMbV3J/02C5A==","signatures":[{"sig":"MEUCIQCheHTq0SrNoQ2uXtEBLaa0cUiejtswVOHU75URCtK6VgIgAdXXVSkbKfH6N+UbVeVPyVb8CNQIZpVxFmM69A3BMAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGSDcSOxK4Dkkeiu4h4/l7Ctfc3xnLueWZGyguhXS6dUAiAMkka0ivQzciy358vbakvaUerwyoZjRM+ZX0+41kUtdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1728829},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"},"./central-api":{"types":"./dist/central-api.d.ts","import":"./dist/central-api.js"}},"gitHead":"5ab83db5680df66cf8e17bb49df74a8283fb83fc","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.30.0_1789453813785_0.2846012883677136","host":"s3://npm-registry-packages-npm-production"}},"0.30.1":{"name":"@pimia/sdk","version":"0.30.1","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.30.1","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"15f21b25aabeff5878527591a8eb1a0e96671ad2","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.30.1.tgz","fileCount":25,"integrity":"sha512-kg68cUSoYhs//kACXTzps8aKwa9yuNynn7U79/lEFqFPgFkHzGgPDwktucVrf+7AAcdQeqX9SJjL6uRxinjDVw==","signatures":[{"sig":"MEUCIQCB+McoO1jCVeKHyWR/SUPop6xrd6KOiKZ6ojkrGAfcNAIgBC2YCh1szLkyB6CZppUhtLrBcZMW7iGcxlR6qxlm0Fc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDFchAW+wV2SEgjljUcHiClB7j63uToVjRngw4D+/1O4gIgPOiqq+mS+nr2rmEanLnOpbQmfJQnU8lY56LYRpTQr5g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.30.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1730737},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"},"./central-api":{"types":"./dist/central-api.d.ts","import":"./dist/central-api.js"}},"gitHead":"7577bc5be34230c8347df7aa425fd55866ad5cc5","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.30.1_1789455238068_0.21753048313345658","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@pimia/sdk","version":"0.31.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.31.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"7434c074ecda876aa425d7cc8a046a1d7d93b47d","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.31.0.tgz","fileCount":25,"integrity":"sha512-kgtY2R1Cm4dV2teMoAfIvyVN259ssNF9iNAefSnZN3rwrVBGVWAZRUYY0OoIt6pNNGht3t22+IAhKDYMRJs5Cg==","signatures":[{"sig":"MEYCIQD7rY9f4VD5Ljd4ncwsB0f4rAELI3604+hChOTT+ejXeAIhAKGXkawWZF59k2TY/Y3mQdCp5ALPq9Wuo064DVq5zGZx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAZZOMYGaR3gwyS3EfCe2f+CU4vnw1f39m908b8E8JDeAiEA2VTERkn1tEiLw70SZyT7pTVUpidf6xKRpPugiucIvwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1744087},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"},"./central-api":{"types":"./dist/central-api.d.ts","import":"./dist/central-api.js"}},"gitHead":"d61107c02497d63ce2a516443b606315caa2ceb3","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.31.0_1789536625460_0.14158108746849107","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@pimia/sdk","version":"0.32.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.32.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"f52079317904023df3137ea5316c10814eedbe93","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.32.0.tgz","fileCount":25,"integrity":"sha512-iA10ecE7mZ694Ody3zGNefZx7f+q0IlxgD9bLfZUb/XBc98yh8pzjJwQfrRaEzOvi0RNLXuUbEhsPy9KCZVraQ==","signatures":[{"sig":"MEUCIQCAN+AtQaVZ46dP4nSQsnhHA7r1hKmySnAY1B7+M941CwIgaZT9qg41he6/N8E2+cYYqU/GwpIeBue4BeBRjFF1fu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC7TPiFD418oB48SVIMV6xNB1dTJP5Nn2SyI/JOVxTO+QIgDo6DAyYwxNTiVgt+MFCwYhyvgzqkdtdOh/oT3XhCDDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1764534},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"},"./central-api":{"types":"./dist/central-api.d.ts","import":"./dist/central-api.js"}},"gitHead":"6292d2aaeaa6a00c72f0d42c3c1c1c44c2d67564","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.32.0_1790085015925_0.9163562622808925","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@pimia/sdk","version":"0.34.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.34.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"5022395c8a5c5ec426fd5d8c449bce6462fcfed8","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.34.0.tgz","fileCount":25,"integrity":"sha512-wjZlTxXvL4UMNddG5bKaCRx/t0TkRTMKYxgDmknX7Szykgu8TnMfnDLf5dhfQs6Lr7Q8nd3GHtqt2YWFpeNOOw==","signatures":[{"sig":"MEUCIFCEIayTsBoAh/Hf9I3UrsE1GEAd101PxC0U5wb7NC7WAiEA+KxXx7/hrby2Ll2aXZXFC1Tg+rCpCdWwXI4ndyP4Iaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC1H7whiD4tHKFmyYrcB8d6txwPYzsIw6yJNO10e9gVPgIhAIXvPu77L1RwCGkIplyG0JYdnq/BTmD8Dj9lZ6NQedje","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1856757},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"},"./central-api":{"types":"./dist/central-api.d.ts","import":"./dist/central-api.js"}},"gitHead":"34167c5a636e978deba7fd9c774aa72454820d88","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.34.0_1790145487504_0.7264660197363042","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@pimia/sdk","version":"0.35.0","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","_id":"@pimia/sdk@0.35.0","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"56ba8d0c05f0db80f802b93ec17d998e6502ff72","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.35.0.tgz","fileCount":25,"integrity":"sha512-gSz3+/Ld8upalY9QcwInGUZAnY6DYwUreMFc9YPb1tupUieeMpDkC4qjj+Nkj4lg5uIihLm7//6SvHOen5pz1A==","signatures":[{"sig":"MEUCIBST2Vb9DEjKSq6/RLzuWotouB61XgwOJclvZ7rEx2aHAiEA5RljtHpHVscTblVs78WLKn0e0V6rLXMkkrij+K3xWpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEo239Rb8SNuctQ3pfCVzKaSm+v/EE3WBvMk8919p/0EAiEA7R+tHSee266jKjjVvrcBmtxXxfBwACJel3oIv5I81JM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1998605},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"},"./central-api":{"types":"./dist/central-api.d.ts","import":"./dist/central-api.js"}},"gitHead":"34ff25fde5af79989359ee89b5f6c2cf8a22b2cd","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.35.0_1790271155874_0.8119691067081765","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"_id":"@pimia/sdk@0.36.0","bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"dist":{"shasum":"ed62a6dcfbf94e41472c697fbe353326f904937f","tarball":"https://registry.npmjs.org/@pimia/sdk/-/sdk-0.36.0.tgz","fileCount":27,"integrity":"sha512-B6DEx9lBCi0+sGFQ8dNjW9BoWTpOD4gx9DvoDawORgFFxZavn7MaFoIjdp27FC7cy7r6JFdQTbliLBIMUcybRQ==","signatures":[{"sig":"MEYCIQCgGgBmRmUKl83h6TTkCnKrFbMuXgzvUFY40ZvLsucT7AIhAIBxpROccGQDAB3I2ajPrOnc/+feJ7vlIM0arMnbhfF0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCBSYE+toZmgCTDs3WQ1lYOKL6rHxWrKbTzkmYCn/qZZAIhAKuDeOPyOxm3OwzKGRtETGiWDvHWAq9/osdQ4nUG+jP8"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pimia%2fsdk@0.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2211552},"main":"./dist/index.js","name":"@pimia/sdk","type":"module","types":"./dist/index.d.ts","author":{"url":"https://pimia.es","name":"Pimia"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./api":{"types":"./dist/api.d.ts","import":"./dist/api.js"},"./central-api":{"types":"./dist/central-api.d.ts","import":"./dist/central-api.js"}},"gitHead":"fda342464c27d7f4d8fb8fb8ca50b5c1ad008d34","license":"MIT","scripts":{"test":"node --test test/*.test.js","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","generate:types":"node scripts/generate-types.mjs","prepublishOnly":"npm run build"},"version":"0.36.0","_npmUser":{"name":"pablogaleote","email":"pablogaleote@gmail.com"},"homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"_npmVersion":"10.9.8","description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","directories":{},"maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.36.0_1790627991051_0.38517327132877077"}}},"time":{"created":"2026-08-02T05:35:35.378Z","modified":"2026-09-28T20:39:51.495Z","0.1.0":"2026-08-02T05:35:35.634Z","0.2.0":"2026-08-09T14:46:36.199Z","0.3.0":"2026-08-10T15:43:54.530Z","0.4.0":"2026-08-10T16:57:17.814Z","0.5.0":"2026-08-10T20:30:07.395Z","0.6.0":"2026-08-22T10:43:15.828Z","0.7.0":"2026-08-24T14:12:44.458Z","0.8.0":"2026-08-25T19:20:21.160Z","0.9.0":"2026-08-25T21:26:05.437Z","0.10.0":"2026-08-26T18:53:57.663Z","0.11.0":"2026-08-26T23:20:19.126Z","0.12.0":"2026-08-30T10:16:22.327Z","0.13.0":"2026-08-31T06:52:56.035Z","0.14.0":"2026-08-31T07:35:19.265Z","0.15.0":"2026-08-31T09:51:16.211Z","0.16.0":"2026-08-31T11:38:53.654Z","0.17.0":"2026-09-01T11:47:49.791Z","0.18.0":"2026-09-03T06:31:31.536Z","0.19.0":"2026-09-03T07:59:00.503Z","0.20.0":"2026-09-03T13:11:55.754Z","0.21.0":"2026-09-03T13:37:34.942Z","0.27.0":"2026-09-08T21:57:54.665Z","0.28.0":"2026-09-14T09:32:25.367Z","0.29.0":"2026-09-14T18:42:58.180Z","0.30.0":"2026-09-15T06:30:13.866Z","0.30.1":"2026-09-15T06:53:58.226Z","0.31.0":"2026-09-16T05:30:25.544Z","0.32.0":"2026-09-22T13:50:16.147Z","0.34.0":"2026-09-23T06:38:07.632Z","0.35.0":"2026-09-24T17:32:35.979Z","0.36.0":"2026-09-28T20:39:51.156Z"},"bugs":{"url":"https://github.com/Pimia-AI/pimia-sdks/issues"},"author":{"url":"https://pimia.es","name":"Pimia"},"license":"MIT","homepage":"https://github.com/Pimia-AI/pimia-sdks/tree/main/typescript#readme","keywords":["pimia","facturacion","verifactu","oauth","sdk"],"repository":{"url":"git+https://github.com/Pimia-AI/pimia-sdks.git","type":"git","directory":"typescript"},"description":"Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.","maintainers":[{"name":"pablogaleote","email":"pablogaleote@gmail.com"}],"readme":"# @pimia/sdk\n\n`baseUrl` es el **origen**, sin `/api` ni barra final: `https://pimia.es`\npara el cliente central o `https://acme.pimia.es` para el de instancia.\nEl cliente añade `/api/…` (central, TypeScript) o `/api/v1/…` (instancia).\nDesde 0.30.1, un valor terminado en `/api` o `/api/v1` se rechaza al construir\nel cliente (en PHP, al crear `Config`), antes de hacer peticiones. Quita ese\nsufijo; no se elimina automáticamente. Una barra final sigue admitiéndose.\n\n\nCliente TypeScript oficial de la API de Pimia para **apps de partner**: OAuth\ncon PKCE, **rotación del refresh token** persistida, reintentos de rate limit y\ntipos generados del OpenAPI. Licencia MIT.\n\nRequisitos: Node ≥ 20 (o cualquier runtime con `fetch` y WebCrypto global).\n\n## Instalación\n\n```bash\nnpm install @pimia/sdk\n```\n\nPublicado desde v0.1.0, con\n[provenance SLSA](https://docs.npmjs.com/generating-provenance-statements)\nfirmada por el workflow de release: el tarball es verificablemente\n[este repositorio](https://github.com/Pimia-AI/pimia-sdks).\n\n## Uso en 20 líneas\n\n```ts\nimport { OAuth, PimiaClient, MemoryTokenStore, SCOPES, createPkceChallenge, createState } from '@pimia/sdk'\n\nconst config = {\n  baseUrl: 'https://acme.pimia.es',\n  clientId: process.env.PIMIA_CLIENT_ID!,\n  clientSecret: process.env.PIMIA_CLIENT_SECRET, // solo app server-side\n  redirectUri: 'https://miapp.example/callback',\n}\n\n// 1. Mandas al usuario a autorizar (guarda verifier y state en su sesión)\nconst pkce = await createPkceChallenge()\nconst state = createState()\nconst url = new OAuth(config).buildAuthorizeUrl({\n  scopes: [SCOPES.invoicesRead, SCOPES.customersRead],\n  state,\n  pkce,\n})\n\n// 2. En tu callback: canjeas el code y guardas los tokens en TU store\nconst tokens = new MemoryTokenStore() // en producción: tu BD\ntokens.save(await new OAuth(config).exchangeCode(code, pkce))\n\n// 3. A partir de aquí, el cliente refresca y reintenta solo\nconst pimia = new PimiaClient({ ...config, tokens })\nconst invoices = await pimia.invoices.list({ page: 1 })\n```\n\nLos tipos de todos los endpoints salen del OpenAPI:\n\n```ts\nimport type { paths } from '@pimia/sdk/api'\n\ntype Invoice = paths['/invoices/{id}']['get']['responses'][200]['content']['application/json']\n```\n\n## Lo único que tienes que leer antes de escribir código\n\n**El refresh token de Pimia rota.** Cada refresco devuelve uno nuevo y mata el\nanterior; reusar uno ya rotado revoca el grant entero en cascada. Por eso el\ncliente exige un `TokenStore` en lugar de un string: persiste el conjunto de\ntokens tras cada refresco y no refresques dos veces en paralelo con el mismo\ntoken. Las dos cosas las cubre el SDK si lo usas como está pensado.\n\n## Un servicio que reenvía el token de su usuario\n\nTodo lo de arriba supone que **tu app posee un grant**. Hay integraciones que no\ny que no deben: un servicio al que el front le manda, en cada petición, el\n`Authorization` del usuario que ya entró en Pimia. Para ésas está el modo de\ntoken prestado — sin `clientId`, sin `TokenStore` y sin ceremonia OAuth:\n\n```ts\nconst pimia = PimiaClient.withBorrowedToken({\n  baseUrl: `https://${tenant}.pimia.es`,\n  accessToken: bearerDeQuienLlama,\n  // La empresa activa viaja en cabecera, como en todo el API. OMÍTELA cuando no\n  // la sepas: `company:` vacía es una cabecera presente que no casa con ninguna\n  // empresa.\n  headers: empresa === null ? {} : { company: String(empresa) },\n  // Atiendes una petición web: los reintentos del SDK ESPERAN, y esperar dentro\n  // de la petición de un usuario es una petición colgada.\n  maxRateLimitRetries: 0,\n})\n\nconst empresaActiva = await pimia.bootstrap.currentCompanyId()\nconst censo = await pimia.crm.assignableUsers()\n```\n\nLo que ganas con esto es que **Pimia sigue decidiendo los permisos**: tu servicio\nno puede darle a nadie más de lo que su token ya le daba, y no hay una\ncredencial de servicio que auditar aparte.\n\nTres cosas que conviene tener claras:\n\n- **Un cliente por petición.** El token vive lo que viva la petición que lo\n  trajo; una instancia compartida es una credencial compartida.\n- **No se refresca.** El refresh es del dueño del grant. Cuando el token caduca,\n  el 401 sube como `UnauthorizedError` y quien tiene que conseguir otro es quien\n  te lo prestó. El cliente no lo intenta —y eso es deliberado: con la rotación\n  de Pimia, tocar el refresh de otro revoca su grant entero.\n- **`pimia.oauth` es `null`** en este modo. No hay ceremonia que hacer, y un\n  `OAuth` sin `clientId` compondría una URL de autorización rota que sólo\n  fallaría en el navegador del usuario.\n\n`GET /bootstrap` merece un aviso propio: **es la única respuesta del API que no\nviene envuelta en `data`**. Sus claves cuelgan de la raíz, así que un\ndesenvolvedor de `data` escrito «para todas las llamadas» devuelve vacío sin\nerror — y el fallo se ve como una empresa sin resolver o como una moneda que cae\nal respaldo, nunca como un fallo. `pimia.bootstrap.currentCompanyId()` y\n`.currency()` lo leen bien; `.get()` te da el cuerpo tal cual.\n\n## Reintentar un `POST` sin duplicar\n\nManda una `Idempotency-Key` única por operación y Pimia ejecuta la escritura\nuna sola vez, por muchos reintentos que haya:\n\n```ts\nconst clave = crypto.randomUUID()\nawait client.estimates.create(presupuesto, { idempotencyKey: clave })\n```\n\nReúsala **solo** en los reintentos de esa misma operación: la misma clave con\notro cuerpo responde `422`.\n\nTras un reintento el cuerpo que recibes es idéntico al de la primera llamada\n—ese es justo el contrato—, así que el cuerpo solo no dice si Pimia escribió o\nse limitó a repetirse. Para saberlo, `requestWithMeta`:\n\n```ts\nconst { data, meta } = await client.requestWithMeta('/estimates', {\n  method: 'POST',\n  body: presupuesto,\n  idempotencyKey: clave,\n})\n\nif (meta.idempotentReplay) {\n  // ya existía: no se ha creado nada nuevo\n}\n```\n\n## Subir un fichero\n\nDiez operaciones de la API son `multipart/form-data`: el justificante de un\ngasto, el documento de una factura recibida, un extracto bancario, el membrete\nde una plantilla, el certificado de firma, el avatar. Para ésas pásale un\n`FormData` y el cliente lo manda tal cual — **no le pongas `content-type`**: el\nruntime escribe el suyo con el `boundary` que separa las partes, y una cabecera\npuesta a mano se lo quita (el cliente lo rechaza antes de salir, con un aviso\nque lo explica).\n\n`toFormData` hace las tres conversiones que el servidor espera y que `FormData`\nsola no hace: los booleanos como `1`/`0`, los objetos y arrays como cadena\nJSON, y los `null` omitidos en vez de mandados como la cadena `\"null\"`.\n\n```ts\nimport { toFormData } from '@pimia/sdk'\n\n// Un gasto con su justificante en PDF, de una sola llamada.\nawait client.post('/expenses', toFormData({\n  expense_date: '2026-08-24',\n  expense_category_id: 3,\n  amount: 12100,                       // céntimos, como todo importe\n  attachment_receipt: ficheroDelInput, // un File del navegador\n  customFields: [{ id: 3, value: 'REF-42' }],\n}))\n\n// El documento de una factura recibida, con un Blob al que le das nombre.\nconst form = new FormData()\nform.append('document', blobPdf, 'factura-proveedor.pdf')\nawait client.post(`/received-invoices/${id}/upload/document`, form)\n```\n\nLos campos de fichero salen tipados como `Blob` en `@pimia/sdk/api`, así que un\n`File` del navegador encaja sin ceremonia.\n\n⚠️ Lo que **no** puedes pasar es un `ReadableStream`: el cliente reintenta ante\nun 401 y ante un 429, y un cuerpo de un solo uso no se puede volver a mandar.\n\n## Descargar un fichero\n\nPara las dos operaciones que devuelven un binario, `download`:\n\n```ts\nconst pdf = await client.download(`/received-invoices/${id}/show/document`)\nconst url = URL.createObjectURL(pdf)\n```\n\n⚠️ **No uses `get()` para esto.** Lee la respuesta con `response.text()`, así\nque un PDF llega entero de tamaño y no se abre — sin ningún error que mirar.\n\n## Recibir webhooks\n\n`verifyWebhook` comprueba la firma `PIMIA-WEBHOOK-v1` y te devuelve el evento\ntipado. No reimplementes el HMAC:\n\n```ts\nimport express from 'express'\nimport { verifyWebhook, WebhookVerificationError } from '@pimia/sdk'\n\n// ⚠️ express.raw(), NO express.json(): Pimia firma los bytes que envía, y\n// parsear + volver a serializar rompe la firma sin que se vea por qué.\napp.post('/pimia', express.raw({ type: 'application/json' }), async (req, res) => {\n  let hook\n\n  try {\n    hook = await verifyWebhook({\n      secret: process.env.PIMIA_WEBHOOK_SECRET,\n      headers: req.headers,\n      body: req.body,\n    })\n  } catch (error) {\n    return res.status(400).send((error as WebhookVerificationError).reason)\n  }\n\n  // Pimia reintenta: la misma entrega llega con el mismo `delivery`.\n  // Procesar cada uno una sola vez es todo el exactly-once que necesitas.\n  if (await yaProcesado(hook.delivery)) return res.sendStatus(200)\n\n  if (hook.known) {\n    switch (hook.event) {\n      case 'estimate.accepted':\n        await facturar(hook.payload.id) // payload tipado, sin castings\n        break\n      case 'invoice.paid':\n        await cobrar(hook.payload.id)\n        break\n    }\n  }\n\n  res.sendStatus(200) // responde rápido; el trabajo pesado, a una cola\n})\n```\n\nLos ocho eventos del catálogo (`approval.decided`, `invoice.received`,\n`app.revoked`, `customer.created`, `customer.updated`, `invoice.created`,\n`estimate.accepted`, `invoice.paid`) vienen tipados. Uno que este SDK todavía\nno conozca **no es un error**: se verifica igual y llega con `known: false`.\n\nDetalles que ahorran un rato:\n\n- `secret` acepta una **lista** de secretos, para rotarlo sin ventana de caída.\n- La ventana anti-replay son 300 s; ajústala con `toleranceSeconds`.\n- Los errores traen un `reason` (`signature_mismatch`, `timestamp_out_of_window`,\n  `missing_headers`, `invalid_timestamp`, `invalid_json`) para tus métricas.\n- `signWebhook()` firma un cuerpo como lo haría Pimia: úsalo en **tus tests**,\n  no en producción.\n\n## El plano central: la cartera del integrador\n\nSi eres integrador (una cuenta de **desarrollador** en Pimia), tu cartera, tus\nclients OAuth, las invitaciones, el patrocinio y el traspaso viven en el\n**plano central** (`baseUrl: https://pimia.es`; llamadas bajo `/api/…`), no en la API de un tenant. Es otro\ncliente y otra credencial: el **token personal** de tu cuenta, no un token\nOAuth de instancia.\n\n```ts\nimport { PimiaCentralClient, MissingAbilityError } from '@pimia/sdk'\n\nconst central = new PimiaCentralClient({\n  baseUrl: 'https://pimia.es',\n  token: () => process.env.PIMIA_CENTRAL_TOKEN!,\n})\n\nconst { data } = await central.overview()          // tu cartera, con la atribución\nawait central.invitations.create({                  // el cliente nace dueño; pagas tú\n  email: 'ana@talleres-ana.es',\n  company_name: 'Talleres Ana',\n  billing: 'sponsor',\n})\nawait central.sponsorship.sponsor({ tenant_slug: 'talleres-ana', plan_id: 6 })\n```\n\nEl token está acotado por plano: `desarrollador` abre `/desarrollador/*` y\n`central` abre invitaciones, patrocinio y traspaso. Si al tuyo le falta una,\nla llamada lanza `MissingAbilityError` con `ability` diciendo cuál. Lo que el\nplano central NO da es contenido fiscal de ningún cliente: a los datos de una\ninstancia se llega por OAuth consentido, con `PimiaClient`.\n\nTu correo y tu Stripe propios (contrato central 1.15.0, habilidad\n`desarrollador`):\n\n```ts\nimport { PimiaApiError, RateLimitError, type StripeCorteCode } from '@pimia/sdk'\n\n// Las invitaciones que mandas salen desde tu servidor de correo.\nawait central.correo.update({\n  mail_driver: 'smtp',\n  from_name: 'ERP Studio',\n  from_mail: 'hola@erpstudio.es',\n  mail_host: 'smtp.erpstudio.es',\n  mail_port: '587',\n  mail_username: 'hola@erpstudio.es',\n  mail_password: process.env.SMTP_PASSWORD!,\n})\nconst prueba = await central.correo.test({ to: 'yo@erpstudio.es' })\nif (!prueba.success) console.warn(prueba.error, prueba.reason) // 200 siempre: no lanza\n\n// Tu cuenta de Stripe, independiente de la facturación de Pimia.\ntry {\n  const { data } = await central.stripe.update({\n    publishable_key: 'pk_live_…',\n    secret_key: process.env.STRIPE_SECRET_KEY!,\n    mode: 'live',\n  })\n  console.log(data.webhook_url) // dala de alta a mano en Stripe y guarda su whsec_\n} catch (error) {\n  if (error instanceof RateLimitError) {\n    // stripe_too_many_attempts o el límite de 10 PUT/minuto: espera error.retryAfter\n  } else if (error instanceof PimiaApiError) {\n    const code = error.code as StripeCorteCode | undefined // stripe_key_invalid, stripe_mode_mismatch…\n  }\n}\n```\n\n`error.code` es el código de corte del cuerpo (`code`, o `error`): compara eso,\nno el `message`. El receptor `POST /stripe/integrador/{opaco}` no es un método:\nlo llama Stripe, firmado.\n\n«Facturo con Pimia»: la factura de lo que cobras a tus clientes con tu Stripe\n(contrato central 1.16.0, habilidad `desarrollador`):\n\n```ts\nconst { data: ajustes } = await central.facturacionAClientes.get() // emisoras elegibles, tipo_iva como texto\nawait central.facturacionAClientes.update({\n  factura_con_pimia: true,\n  tenant_emisor_id: ajustes.emisoras[0]!.id,\n  tipo_iva: 21,\n})\n\n// Una página (hasta 50) con list(), o todas siguiendo next_cursor con iterate():\nfor await (const f of central.facturasAClientes.iterate({ estado: 'pendiente_sin_nif' })) {\n  // corrige el NIF del cliente y vuelve a encolarla (solo error y pendiente_sin_nif; lo demás, 409)\n  await central.facturasAClientes.retry(f.id)\n}\n```\n\nLo que cuesta tu canal, tramo a tramo (contrato central **1.19.0**):\n\n```ts\nconst { data } = await central.facturacion()\n// ⛔ Antes de enseñar el total, mira si mezcla monedas: con activaciones en\n// monedas distintas `moneda` es null y `total_cents` NO es un importe.\nif (!data.anadidos.monedas_mezcladas) {\n  console.log(data.anadidos.total, data.anadidos.moneda)          // «24,00 €», «EUR»\n}\ndata.anadidos.asientos_sin_precio                                  // asientos que no suman\ndata.asientos[0]?.precio_cents                                     // null = sin precio propio\n\n// Qué tiene activado cada cliente, con NOMBRE (antes solo había un recuento):\nfor (const fila of (await central.overview()).data.cartera) {\n  fila.activaciones.map((a) => `${a.kind}:${a.slug} — ${a.name}`)\n}\n\n// Si un módulo se reprecio después de activarse:\nconst { items } = (await central.activaciones.list('talleres-ana')).data\nitems.filter((i) => i.cambio_de_precio)  // precio_inicial_cents vs price_cents\n\n// Tu tramo por volumen; el descuento YA está aplicado en los wholesale_price_*:\nconst { wholesale_tier } = (await central.catalogo.get()).data.disponibles\nwholesale_tier.next?.seats_missing     // asientos que faltan para el siguiente\n```\n\n⚠️ En la 0.33.0 `currency` del `PUT /desarrollador/catalogo` es un enum cerrado\n(`CatalogoCurrency`), no cualquier código de tres letras, y `compliance-es` /\n`compliance-fr` salen de `en_lugar_de` y `componentes_pimia`.\n\nLos tipos salen de `spec/pimia-central-v1.json` (`@pimia/sdk/central-api`).\n\n## Más\n\nDocumentación completa, modelo mental (un tenant = una base URL = un token),\ntabla de errores tipados y el contrato OpenAPI, en el monorepo:\n[Pimia-AI/pimia-sdks](https://github.com/Pimia-AI/pimia-sdks).\n\n### Acciones pendientes (0.30.0 preparada)\n\n```ts\nimport { isOwnerConfirmationRequired } from '@pimia/sdk'\nimport type { ApiSuccess } from '@pimia/sdk'\n\nconst result = await client.put<ApiSuccess<'users.update'>>('/users/42', { role: 'admin' })\nif (isOwnerConfirmationRequired(result)) {\n  mostrarPendiente(result.message) // data.id es la solicitud, no el usuario.\n} else {\n  mostrarUsuarioActualizado(result)\n}\n\nconst cambio = await central.tenants.production('acme', { plan: 'pro' })\nif (cambio.estado === 'primer_periodo_pendiente') {\n  compartirConCliente(cambio.checkoutUrl) // Todavía no está en producción.\n}\n```\n\n`central.tenants.attachVertical(slug, {vertical, plan?})` devuelve la misma unión.\n`central.tenants.transferOwnership()` devuelve la confirmación pendiente del dueño,\nno el tenant traspasado. `owner_confirmation_mail_failed` (503) se conserva en\n`PimiaApiError.code`; no se reintenta automáticamente. El SDK no abre enlaces\nni ejecuta la confirmación. La cartera/ficha obtiene `CobroDeInstancia` de\n`central.overview().data.cartera[].cobro`; puede ser null, igual que su enlace.\n\nCambios incompatibles y versión propuesta: [Cómo migrar](../CHANGELOG.md#cómo-migrar).\n\n### Contratos: modos, modelos y vista previa (0.34.0)\n\nUn contrato tiene **modo**, y el modo manda sobre el resto de la ficha:\n\n```ts\n// Cuotas: la recurrente nace al activar.\nawait client.contracts.create({\n  title: 'Mantenimiento', customer_id: 5, starts_at: '2026-10-01',\n  billing_mode: 'INSTALLMENTS', amount: 12000, billing_every: 'MONTHLY',\n})\n\n// Hitos: total opcional, guía ordenada, proyecto y clausulado elegido.\nawait client.contracts.create({\n  title: 'Reforma', customer_id: 5, starts_at: '2026-10-01',\n  billing_mode: 'MILESTONES', total_amount: 450000, project_id: 11,\n  contract_model_version_id: 9,\n  milestones: [\n    { description: 'Fase 1', amount: 150000, planned_date: '2026-11-01', position: 1 },\n    { description: 'Fase 2', amount: 300000, planned_date: null, position: 2 },\n  ],\n})\n```\n\n`ONE_OFF` lleva `total_amount` opcional y `NONE` no lleva nada económico:\nes un documento que se firma. `customer_id` sigue siendo obligatorio en los\ncuatro, y un campo ajeno al modo es un **422**, no un dato que se ignore. Un\nalta sin `billing_mode` se resuelve al persistido o a `INSTALLMENTS`, así que\nlos contratos anteriores no cambian.\n\n⛔ **Solo `INSTALLMENTS` factura.** En los otros tres, `activate` pasa a ACTIVE\nsin crear recurrente ni factura, y `recurringInvoiceId` ahí es un 422. Los\nhitos son **guía**: no emiten nada. La factura de un hito se crea a mano y se\nve bajo el contrato:\n\n```ts\nawait client.invoices.create({ customer_id: 5, invoice_date: '2026-11-02', due_date: '2026-11-30', contract_id: 7, items: [...] })\n```\n\n**El clausulado propio de la empresa.** Es un formato de datos —bloques y,\ndentro, texto o marcadores—, nunca HTML ni plantilla:\n\n```ts\nconst { data: diccionario, meta } = await client.contracts.models.variables({ billing_mode: 'MILESTONES' })\n// meta.block_types, meta.inline_types y meta.limits vienen del servidor: no los claves.\n\nconst { data: modelo } = await client.contracts.models.create({\n  name: 'Mantenimiento',\n  content: [\n    { type: 'heading', level: 2, text: [{ type: 'text', value: 'Objeto', bold: true }] },\n    { type: 'paragraph', text: [{ type: 'text', value: 'Entre ' }, { type: 'variable', key: 'customer.name' }] },\n    { type: 'table', variable: 'contract.milestones' },\n    { type: 'signature' }, // dónde firma el cliente: uno, ni cero ni dos\n  ],\n  draft_revision: 0,\n})\nawait client.contracts.models.publish(modelo.id) // versión INMUTABLE\n```\n\nGuardar contenido exige la `draft_revision` que leíste: si otra edición guardó\nmientras tanto, es un **409** y hay que recargar y reaplicar. Publicar la v2 no\ntoca la v1 ni los contratos que la eligieron; `archive` retira de las\nselecciones nuevas y no borra historial. Los `modes` de cada marcador dicen con\nqué modos es compatible, y `guarded` que además hay que **poder ver** el dato.\nEl catálogo tiene **abilities propias**: poder enviar un contrato no concede\nredactar modelos.\n\n**Revisar antes de firmar**, que desde el #934 es el recorrido:\n\n```ts\nconst vista = await client.contracts.documentPreview(7, { name: 'Ana', email: 'ana@example.test' })\nconst pdf = await client.contracts.documentPreviewDownload(7, vista.data.reference) // Blob\nawait client.contracts.signature.send(7, {\n  name: 'Ana', email: 'ana@example.test', document_version_id: vista.data.reference,\n})\n```\n\nLa preview **no envía**: no crea envelope, no manda correos y no consume\nintento de firma. Los bytes se sirven del archivo y no se regeneran nunca —un\nPDF horneado de nuevo sería otro documento—. `source_document_sha256` es\nevidencia, **no autorización**: lo que se manda es la `reference`, y el\nservidor lo vuelve a comprobar bajo bloqueo.\n\n⛔ Si falta un dato o la revisión dejó de ser vigente, el 422 trae **todos** los\nmotivos y no se reintenta solo:\n\n```ts\ntry { await client.contracts.documentPreview(7) }\ncatch (e) { const motivos = contractDocumentBlockers(e); if (motivos) mostrarBloqueo(motivos) }\n```\n\n`implicit_preview: true` marca la revisión que preparó el propio envío de un\ncontrato sin modelo: **no acredita que nadie haya visto el papel**.\n\n### Firma del cliente en contratos (0.32.0)\n\n```ts\nconst sent = await client.contracts.signature.send(7, {\n  name: 'Ana', email: 'ana@example.test', send_email: true,\n}, { idempotencyKey: 'contrato-7-firma-1' })\n// sent.data es ContractResource; sent.signingUrl es una capacidad para firmar.\nconst { data } = await client.contracts.signature.status(7)\nconst accepted = await client.contracts.signature.remind(7) // 202: { success: boolean }\nawait client.contracts.signature.cancel(7) // cancela la firma, no el contrato\n```\n\n`send` acepta además `subject` y `body`; su cuerpo es el tipo exportado\n`ContractSignatureRequest`. Las cuatro respuestas derivan del OpenAPI. `status`\nexige `contracts:read`; las otras acciones, `contracts:write`. Los métodos\naceptan las opciones habituales de cabeceras/señal; los POST también admiten\n`idempotencyKey`.\n\n`signingUrl` solo vuelve en `send`: no lo registres en logs ni lo expongas en\nlistados. El resto consulta o modifica el estado del núcleo sin devolver esa\ncapacidad. `data.signature` contiene estado, versión, fechas y hashes; fechas\ny hashes pueden ser null. El spec tipa `status` como string, sin enum.\nCompletar la firma no activa el contrato y volver del navegador no acredita\nque esté firmado. El 202 del recordatorio acepta el correo, no su entrega;\npara personalizar su `subject`/`body`, usa el POST genérico a la misma ruta.\n","readmeFilename":"README.md"}