{"_id":"@angelitosystems/sdk-visioner7","_rev":"8-d6e7405324135bfb3dfd4dc02bed3dce","name":"@angelitosystems/sdk-visioner7","dist-tags":{"latest":"2.0.4"},"versions":{"1.0.0":{"name":"@angelitosystems/sdk-visioner7","version":"1.0.0","keywords":["nestjs","sunat","ruc","dni","cpe","guia-remision","visioner7","peru","sdk"],"license":"MIT","_id":"@angelitosystems/sdk-visioner7@1.0.0","maintainers":[{"name":"angelitosystems","email":"angelitojpcmantilla22@gmail.com"}],"dist":{"shasum":"8618518cf4c1b461409e9c239b87e922a686cc25","tarball":"https://registry.npmjs.org/@angelitosystems/sdk-visioner7/-/sdk-visioner7-1.0.0.tgz","fileCount":33,"integrity":"sha512-diHJ/foWlJD5QwF5Pq3p7K0XorSPhWGa5IC4MatAkExzswnZ1dyddJSjwD1GSOXthAd8l5ub154pdZyvulsK2A==","signatures":[{"sig":"MEUCIQDPAIBHt1zSkprZzkrLBZfvUOGcY2etJV92eJ/ZWsjRQQIgHF4gKhNnnxlJt+bXk/hBCcxFU0+8ZY/PIe+IGmzRqic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142392},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"3ca5e83d63114872201332ed3f22da6e170f7e36","scripts":{"build":"tsc -p tsconfig.json","clean":"rimraf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"angelitosystems","email":"angelitojpcmantilla22@gmail.com"},"_npmVersion":"11.12.1","description":"SDK independiente para NestJS y TypeScript que facilita la integración con un servicio externo contratado para consultas RUC-DNI, Tipo de Cambio, Guías de Remisión y CPE.","directories":{},"_nodeVersion":"26.3.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","axios":"^1.20.0","rimraf":"^6.1.3","typescript":"^7.0.2","@types/node":"^26.5.0","@nestjs/core":"^12.0.1","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.2.2"},"peerDependencies":{"rxjs":"^7.0.0","axios":"^1.20.0","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-visioner7_1.0.0_1788973593986_0.8773710061664104","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@angelitosystems/sdk-visioner7","version":"1.0.1","keywords":["nestjs","sunat","ruc","dni","cpe","guia-remision","visioner7","peru","sdk"],"license":"MIT","_id":"@angelitosystems/sdk-visioner7@1.0.1","maintainers":[{"name":"angelitosystems","email":"angelitojpcmantilla22@gmail.com"}],"homepage":"https://github.com/angelitosystems/SDK-VISIONER7#readme","bugs":{"url":"https://github.com/angelitosystems/SDK-VISIONER7/issues"},"dist":{"shasum":"ece4912d063dbc295005f0b537eca6fa02416704","tarball":"https://registry.npmjs.org/@angelitosystems/sdk-visioner7/-/sdk-visioner7-1.0.1.tgz","fileCount":12,"integrity":"sha512-4llcAx9x1UqZt+TrR2aGHANtA+PcCSIxKVAdbSbtgW5a58gDAz1gKnRr87H51vbO4wmtD9hWc8hOmtUjrdQYLw==","signatures":[{"sig":"MEUCIAXUmmkHBzsQp5fiPaipxDz55rq/sBQN23GUZ56w7L+lAiEA1Cj0uIYSqzTJKs4/Gk8Zl2WbMKkJc8HSyKqbjaDW/S0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@angelitosystems%2fsdk-visioner7@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31406},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"3d48df7286ec4ecbb2bdce5bc7b466613b26d460","scripts":{"build":"tsc -p tsconfig.json","clean":"rimraf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0a45e81f-442d-4799-934b-5268ca597389"}},"repository":{"url":"git+https://github.com/angelitosystems/SDK-VISIONER7.git","type":"git"},"_npmVersion":"11.19.0","description":"SDK independiente para NestJS y TypeScript que facilita la integración con un servicio externo contratado para consultas RUC-DNI, Tipo de Cambio, Guías de Remisión y CPE.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","axios":"^1.20.0","rimraf":"^6.1.3","typescript":"^7.0.2","@types/node":"^26.5.0","@nestjs/core":"^12.0.1","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.2.2"},"peerDependencies":{"rxjs":"^7.0.0","axios":"^1.20.0","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-visioner7_1.0.1_1788973975785_0.49340462102077254","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@angelitosystems/sdk-visioner7","version":"1.0.2","keywords":["nestjs","sunat","ruc","dni","cpe","guia-remision","visioner7","peru","sdk"],"license":"MIT","_id":"@angelitosystems/sdk-visioner7@1.0.2","maintainers":[{"name":"angelitosystems","email":"angelitojpcmantilla22@gmail.com"}],"homepage":"https://angelitosystems.github.io/SDK-VISIONER7/","bugs":{"url":"https://github.com/angelitosystems/SDK-VISIONER7/issues"},"dist":{"shasum":"c8623026b392d4d3b313234b80769685393640bb","tarball":"https://registry.npmjs.org/@angelitosystems/sdk-visioner7/-/sdk-visioner7-1.0.2.tgz","fileCount":12,"integrity":"sha512-/3eQsu3y70WQzBR4vpLgxc2ValkBkXmFLOpD64AhivwDVn8J5j1oWLfK3fCgSiSx5FYkwF+gI7er2F2Gr/3p3w==","signatures":[{"sig":"MEUCIQCfMls1DMi42F3si+UkuDtcF5b2HxU657YX7PS1vmMqZgIgUm00TVx+Pr6J8HvyT1981bebXHth7chocGsP8/jfxPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@angelitosystems%2fsdk-visioner7@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31471},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"47146a47cebaf64551663ba63c6d9b2966479758","scripts":{"build":"tsc -p tsconfig.json","clean":"rimraf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0a45e81f-442d-4799-934b-5268ca597389"}},"repository":{"url":"git+https://github.com/angelitosystems/SDK-VISIONER7.git","type":"git"},"_npmVersion":"11.19.0","description":"SDK independiente para NestJS y TypeScript que facilita la integración con un servicio externo contratado para consultas RUC-DNI, Tipo de Cambio, Guías de Remisión y CPE.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","axios":"^1.20.0","rimraf":"^6.1.3","typescript":"^7.0.2","@types/node":"^26.5.0","@nestjs/core":"^12.0.1","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.2.2"},"peerDependencies":{"rxjs":"^7.0.0","axios":"^1.20.0","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-visioner7_1.0.2_1788975037510_0.23462653664657163","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@angelitosystems/sdk-visioner7","version":"2.0.0","keywords":["nestjs","sunat","ruc","dni","cpe","guia-remision","visioner7","peru","sdk"],"license":"MIT","_id":"@angelitosystems/sdk-visioner7@2.0.0","maintainers":[{"name":"angelitosystems","email":"angelitojpcmantilla22@gmail.com"}],"homepage":"https://angelitosystems.github.io/SDK-VISIONER7/","bugs":{"url":"https://github.com/angelitosystems/SDK-VISIONER7/issues"},"dist":{"shasum":"4e9fd2dcfd4c439065551811a8eac9a31c35f903","tarball":"https://registry.npmjs.org/@angelitosystems/sdk-visioner7/-/sdk-visioner7-2.0.0.tgz","fileCount":17,"integrity":"sha512-yOLNcdSf1nmpuNrkg6q3HBbJrqwh8fHti7cLHaAsEbj2TkXB/HOkMUtiaBS3d6Porj67fOadCRLNRE599eQ9eg==","signatures":[{"sig":"MEUCIQCHvQXHxnve/Lkiild2i3rA3m+NYgIPOlBG3iItnfTyvQIgfxMsmGPSrmAkmtlr4ll5k0L6OGea2BAzv+MyYRm/Fp4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@angelitosystems%2fsdk-visioner7@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50094},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"b65695908861bd73fadbf99037527d3ae1ef5a5b","scripts":{"build":"tsc -p tsconfig.json","clean":"rimraf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0a45e81f-442d-4799-934b-5268ca597389"}},"repository":{"url":"git+https://github.com/angelitosystems/SDK-VISIONER7.git","type":"git"},"_npmVersion":"11.19.0","description":"SDK independiente para NestJS y TypeScript que facilita la integración con un servicio externo contratado para consultas RUC-DNI, Tipo de Cambio, Guías de Remisión y CPE.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","axios":"^1.20.0","rimraf":"^6.1.3","typescript":"^7.0.2","@types/node":"^26.5.0","@nestjs/core":"^12.0.1","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.2.2"},"peerDependencies":{"rxjs":"^7.0.0","axios":"^1.20.0","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-visioner7_2.0.0_1788979171825_0.2904306844761908","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@angelitosystems/sdk-visioner7","version":"2.0.1","keywords":["nestjs","sunat","ruc","dni","cpe","guia-remision","visioner7","peru","sdk"],"license":"MIT","_id":"@angelitosystems/sdk-visioner7@2.0.1","maintainers":[{"name":"angelitosystems","email":"angelitojpcmantilla22@gmail.com"}],"homepage":"https://angelitosystems.github.io/SDK-VISIONER7/","bugs":{"url":"https://github.com/angelitosystems/SDK-VISIONER7/issues"},"dist":{"shasum":"005c49086ec837329de017bc4c54ae14c55c9d95","tarball":"https://registry.npmjs.org/@angelitosystems/sdk-visioner7/-/sdk-visioner7-2.0.1.tgz","fileCount":17,"integrity":"sha512-krv1CSRIqQsqEZdMcZNXHvFTn29/zMC+Fc1TROVMuR8O2qMGdnZy6el4GMZ0makEspRInXauVmHEknUiSio3Xw==","signatures":[{"sig":"MEYCIQDQN+wmEUG6RNPWuUd+S3kdzol8YlrPBPJZZk0fLElKpwIhAMYhSi4OoLTlwMR6q2DxG9p3DlKY6+q5EIzYm3d2JRrr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@angelitosystems%2fsdk-visioner7@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50158},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"0bfa46e2ca3c1b5340c98c580cb819c7e78d2ce8","scripts":{"build":"tsc -p tsconfig.json","clean":"rimraf dist","prepack":"npm run build","prepare":"npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0a45e81f-442d-4799-934b-5268ca597389"}},"repository":{"url":"git+https://github.com/angelitosystems/SDK-VISIONER7.git","type":"git"},"_npmVersion":"11.19.0","description":"SDK independiente para NestJS y TypeScript que facilita la integración con un servicio externo contratado para consultas RUC-DNI, Tipo de Cambio, Guías de Remisión y CPE.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","axios":"^1.20.0","rimraf":"^6.1.3","typescript":"^7.0.2","@types/node":"^26.5.0","@nestjs/core":"^12.0.1","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.2.2"},"peerDependencies":{"rxjs":"^7.0.0","axios":"^1.20.0","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-visioner7_2.0.1_1788980126862_0.19476515400239314","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@angelitosystems/sdk-visioner7","version":"2.0.2","keywords":["nestjs","sunat","ruc","dni","cpe","guia-remision","visioner7","peru","sdk"],"license":"MIT","_id":"@angelitosystems/sdk-visioner7@2.0.2","maintainers":[{"name":"angelitosystems","email":"angelitojpcmantilla22@gmail.com"}],"homepage":"https://angelitosystems.github.io/SDK-VISIONER7/","bugs":{"url":"https://github.com/angelitosystems/SDK-VISIONER7/issues"},"dist":{"shasum":"0f725244a0e1115f576baf3f18aab0f1303e7156","tarball":"https://registry.npmjs.org/@angelitosystems/sdk-visioner7/-/sdk-visioner7-2.0.2.tgz","fileCount":47,"integrity":"sha512-uonnp8SYNPoW6vLhf2J4uVQnsj5/l4OMDce/B5rk1XWgmxjA6IockZiK2XLSQgMRyd3hq+nV7XyYS/aUuKc2tQ==","signatures":[{"sig":"MEQCIBf1bbLcxyi2ekP35mT87yDrKrcDGm/zqgj14FYIjD2RAiAmkWFusgtCHDXL93y6/BlcGBq2EQpBl5vG4cXotoikgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@angelitosystems%2fsdk-visioner7@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92670},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"5c76ddb44891017c7267546992e7834418f1fdea","scripts":{"build":"tsc -p tsconfig.json","clean":"rimraf dist tsconfig.tsbuildinfo","prepack":"npm run build","prepare":"npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0a45e81f-442d-4799-934b-5268ca597389"}},"repository":{"url":"git+https://github.com/angelitosystems/SDK-VISIONER7.git","type":"git"},"_npmVersion":"11.19.0","description":"SDK independiente para NestJS y TypeScript que facilita la integración con un servicio externo contratado para consultas RUC-DNI, Tipo de Cambio, Guías de Remisión y CPE.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","axios":"^1.20.0","rimraf":"^6.1.3","typescript":"^7.0.2","@types/node":"^26.5.0","@nestjs/core":"^12.0.1","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.2.2"},"peerDependencies":{"rxjs":"^7.0.0","axios":"^1.20.0","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-visioner7_2.0.2_1788980555969_0.035396447779446616","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@angelitosystems/sdk-visioner7","version":"2.0.3","keywords":["nestjs","sunat","ruc","dni","cpe","guia-remision","visioner7","peru","sdk"],"license":"MIT","_id":"@angelitosystems/sdk-visioner7@2.0.3","maintainers":[{"name":"angelitosystems","email":"angelitojpcmantilla22@gmail.com"}],"homepage":"https://angelitosystems.github.io/SDK-VISIONER7/","bugs":{"url":"https://github.com/angelitosystems/SDK-VISIONER7/issues"},"dist":{"shasum":"9eb1de1d2ec8604faaca056cc7455e1b7bd65f8e","tarball":"https://registry.npmjs.org/@angelitosystems/sdk-visioner7/-/sdk-visioner7-2.0.3.tgz","fileCount":47,"integrity":"sha512-igv5GQTbcBT2VtIbh3vj9cXetRUue31j/4UooUClAD+wndRq74lrIK9iq+7DcbFBMj2Nig0rGwIiJ2HxL/bYhg==","signatures":[{"sig":"MEYCIQD9xQBdn7FlyszOyHMbeen0oeW7S0f8x++9yhMEqaq99AIhALvuscYUgNY7rNp/jqoZ4AxhifQvvqq91HzlO5z/5T/4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@angelitosystems%2fsdk-visioner7@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103713},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"104493437fdfff359fdf83f329a6f0b263c56140","scripts":{"build":"tsc -p tsconfig.json","clean":"rimraf dist tsconfig.tsbuildinfo","prepack":"npm run build","prepare":"npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0a45e81f-442d-4799-934b-5268ca597389"}},"repository":{"url":"git+https://github.com/angelitosystems/SDK-VISIONER7.git","type":"git"},"_npmVersion":"11.19.0","description":"SDK independiente para NestJS y TypeScript que facilita la integración con un servicio externo contratado para consultas RUC-DNI, Tipo de Cambio, Guías de Remisión y CPE.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","axios":"^1.20.0","rimraf":"^6.1.3","typescript":"^7.0.2","@types/node":"^26.5.0","@nestjs/core":"^12.0.1","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.2.2"},"peerDependencies":{"rxjs":"^7.0.0","axios":"^1.20.0","@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-visioner7_2.0.3_1789091198659_0.8348214322597327","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@angelitosystems/sdk-visioner7","version":"2.0.4","repository":{"type":"git","url":"git+https://github.com/angelitosystems/SDK-VISIONER7.git"},"main":"dist/index.js","devDependencies":{"@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","@nestjs/core":"^12.0.1","@types/node":"^26.5.0","axios":"^1.20.0","reflect-metadata":"^0.2.2","rimraf":"^6.1.3","rxjs":"^7.8.1","typescript":"^7.0.2"},"peerDependencies":{"@nestjs/axios":"^12.0.0","@nestjs/common":"^12.0.1","axios":"^1.20.0","reflect-metadata":"^0.1.13 || ^0.2.0","rxjs":"^7.0.0"},"description":"SDK independiente para NestJS y TypeScript que facilita la integración con un servicio externo contratado para consultas RUC-DNI, Tipo de Cambio, Guías de Remisión y CPE.","homepage":"https://angelitosystems.github.io/SDK-VISIONER7/","keywords":["nestjs","sunat","ruc","dni","cpe","guia-remision","visioner7","peru","sdk"],"license":"MIT","publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","prepare":"npm run build","prepack":"npm run build","prepublishOnly":"npm run build","clean":"rimraf dist tsconfig.tsbuildinfo"},"type":"module","types":"dist/index.d.ts","gitHead":"25bbcbf63012eea9f87868586e66f689f10cfb17","_id":"@angelitosystems/sdk-visioner7@2.0.4","bugs":{"url":"https://github.com/angelitosystems/SDK-VISIONER7/issues"},"_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-CqrfV7B15/dnX4Ay7ffWYr1fhEbRPkTvzyspERq7Px3lRtmvh9ceWSHldU7QAypFA1lH4jLr1sBRVItSA8SpvA==","shasum":"da154ddd32ca8bb3c53d1a8382b303b2e3eca08c","tarball":"https://registry.npmjs.org/@angelitosystems/sdk-visioner7/-/sdk-visioner7-2.0.4.tgz","fileCount":47,"unpackedSize":105588,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@angelitosystems%2fsdk-visioner7@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHfNgGI0IYNCYja5Y6UigFpXZZp0T/M3lzWmpq5Zh6+SAiEArl0T16C8Nzny42k473IK88foYPdnrnF/yBMc19L0xMY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0a45e81f-442d-4799-934b-5268ca597389"}},"directories":{},"maintainers":[{"name":"angelitosystems","email":"angelitojpcmantilla22@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk-visioner7_2.0.4_1789092227088_0.8654454667231433"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-09T17:06:33.582Z","modified":"2026-09-11T02:03:47.649Z","1.0.0":"2026-09-09T17:06:34.179Z","1.0.1":"2026-09-09T17:12:55.914Z","1.0.2":"2026-09-09T17:30:37.641Z","2.0.0":"2026-09-09T18:39:31.948Z","2.0.1":"2026-09-09T18:55:27.043Z","2.0.2":"2026-09-09T19:02:36.123Z","2.0.3":"2026-09-11T01:46:38.765Z","2.0.4":"2026-09-11T02:03:47.323Z"},"bugs":{"url":"https://github.com/angelitosystems/SDK-VISIONER7/issues"},"license":"MIT","homepage":"https://angelitosystems.github.io/SDK-VISIONER7/","keywords":["nestjs","sunat","ruc","dni","cpe","guia-remision","visioner7","peru","sdk"],"repository":{"type":"git","url":"git+https://github.com/angelitosystems/SDK-VISIONER7.git"},"description":"SDK independiente para NestJS y TypeScript que facilita la integración con un servicio externo contratado para consultas RUC-DNI, Tipo de Cambio, Guías de Remisión y CPE.","maintainers":[{"name":"angelitosystems","email":"angelitojpcmantilla22@gmail.com"}],"readme":"# SDK-VISIONER7\n\nSDK de integración para **NestJS + TypeScript** desarrollado para facilitar la comunicación entre aplicaciones NestJS y un **servicio de API de Visioner7 contratado por el desarrollador/cliente**.\n\nEl SDK proporciona una capa tipada y organizada para consumir las funcionalidades contratadas del servicio, incluyendo consultas relacionadas con SUNAT, emisión de documentos electrónicos y otras operaciones disponibles según el servicio contratado.\n\n> **Importante:** Este proyecto es una integración de software desarrollada de forma independiente para uso de clientes y/o proyectos que cuentan con acceso autorizado al servicio correspondiente.\n> No es un producto oficial de Visioner7, no representa a Visioner7 y no implica afiliación, asociación, patrocinio o respaldo por parte de Visioner7.\n\n**Servicio utilizado:**\n[https://visioner7-api.com/](https://visioner7-api.com/?utm_source=chatgpt.com)\n\n---\n\n## Características\n\nEl SDK proporciona una interfaz tipada para trabajar con las funcionalidades disponibles en el servicio contratado, entre ellas:\n\n* Consulta de RUC (contribuyentes).\n* Consulta de información de domicilio fiscal.\n* Consulta de establecimientos anexos.\n* Consulta de DNI (personas naturales).\n* Consulta de tipo de cambio.\n* Emisión de Guías de Remisión.\n* Consulta de estado/ticket de Guías de Remisión.\n* Emisión de Comprobantes de Pago Electrónicos (CPE).\n* Manejo centralizado de errores.\n* Configuración mediante `forRoot`.\n* Configuración mediante `forRootAsync`.\n* Interfaces TypeScript para requests y responses.\n* Integración con `@nestjs/axios`.\n\nDesde la **versión 2.0.0** la API pública del SDK (métodos, clases e interfaces) está nombrada en **inglés**, y el SDK se encarga internamente de traducir los payloads hacia el formato que espera el proveedor (capa de *mapping*). Tu aplicación solo trabaja con nombres en inglés.\n\n---\n\n# Instalación\n\nEl SDK utiliza `@nestjs/axios` para realizar las peticiones HTTP.\n\n```bash\nnpm install @angelitosystems/sdk-visioner7\nnpm install @nestjs/axios axios reflect-metadata rxjs\n```\n\nSi el proyecto se utiliza dentro de un monorepo o como código interno, también puede integrarse directamente como una librería privada.\n\nPor ejemplo:\n\n```text\nlibs/sdk-visioner7/\n```\n\nTambién puede distribuirse mediante un registro privado de paquetes.\n\n---\n\n# Migración v1 → v2\n\nLa versión 2.0.0 renombra la API pública al inglés y **elimina los alias antiguos** (`SunatModule`, `SunatService`, `consultarRuc`, etc.). Correspondencia principal:\n\n| v1 (anterior)                    | v2 (actual)                              |\n| -------------------------------- | ---------------------------------------- |\n| `SunatModule`                    | `SDKVisioner7Module`                     |\n| `SunatService`                   | `SDKVisioner7Service`                    |\n| `SunatApiException`              | `SDKVisioner7ApiException`               |\n| `consultarRuc()`                 | `lookupTaxpayer()`                       |\n| `consultarLocalesEstablecimientos()` | `lookupEstablishments()`             |\n| `consultarDni()`                 | `lookupPerson()`                         |\n| `obtenerTipoCambio()`            | `getExchangeRate()`                      |\n| `emitirGuiaRemision()`           | `issueRemittanceGuide()`                 |\n| `consultarTicketGuiaRemision()`  | `getRemittanceGuideTicketStatus()`       |\n| `generarCpe()`                   | `generateVoucher()`                      |\n| `TipoConsultaLocal`              | `EstablishmentQueryType`                 |\n| `SUNAT_*` (variables de entorno) | `SDK_VISIONER7_*`                        |\n\nLos payloads y respuestas también llegan tipados en inglés (por ejemplo `response.taxpayer.businessName` en vez de `response.comprobante.desRazonSocial`). El SDK mapea automáticamente hacia/desde el formato del proveedor.\n\n---\n\n# Configuración\n\n## Opción 1: `forRoot`\n\nConfiguración síncrona:\n\n```ts\nimport { Module } from '@nestjs/common';\nimport { SDKVisioner7Module } from '@angelitosystems/sdk-visioner7';\n\n@Module({\n  imports: [\n    SDKVisioner7Module.forRoot({\n      baseUrl: 'https://service1.visioner7-api.com/api',\n      authToken: process.env.SDK_VISIONER7_AUTH_TOKEN,\n      businessToken: process.env.SDK_VISIONER7_BUSINESS_TOKEN,\n      timeout: 15000,\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\n### Opciones\n\n| Opción          | Descripción                                           |\n| --------------- | ----------------------------------------------------- |\n| `baseUrl`       | URL base del servicio contratado                      |\n| `authToken`     | Token de autenticación proporcionado para el servicio |\n| `businessToken` | Token utilizado por determinadas operaciones          |\n| `timeout`       | Tiempo máximo de espera de las solicitudes HTTP       |\n\nEl valor de `baseUrl` debe corresponder al entorno y servicio que tenga habilitado el cliente.\n\n---\n\n# Opción 2: `forRootAsync`\n\nSe recomienda utilizar `forRootAsync` cuando las credenciales y configuración provienen de variables de entorno o `ConfigService`.\n\n```ts\nimport { Module } from '@nestjs/common';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport { SDKVisioner7Module } from '@angelitosystems/sdk-visioner7';\n\n@Module({\n  imports: [\n    ConfigModule.forRoot({\n      isGlobal: true,\n    }),\n\n    SDKVisioner7Module.forRootAsync({\n      imports: [ConfigModule],\n\n      inject: [ConfigService],\n\n      useFactory: (config: ConfigService) => ({\n        baseUrl: config.get<string>('SDK_VISIONER7_BASE_URL'),\n        authToken: config.get<string>('SDK_VISIONER7_AUTH_TOKEN'),\n        businessToken: config.get<string>('SDK_VISIONER7_BUSINESS_TOKEN'),\n        timeout: 15000,\n      }),\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nEl módulo se registra como global para evitar importaciones repetidas en los módulos que utilicen `SDKVisioner7Service`.\n\n---\n\n# Variables de entorno\n\nEjemplo:\n\n```env\nSDK_VISIONER7_BASE_URL=https://service1.visioner7-api.com/api\nSDK_VISIONER7_AUTH_TOKEN=your_token_here\nSDK_VISIONER7_BUSINESS_TOKEN=your_business_token_here\n```\n\n**Nunca almacenes credenciales reales directamente dentro del código fuente.**\n\nSe recomienda utilizar:\n\n* Variables de entorno.\n* Secret managers.\n* Sistemas seguros de configuración.\n* Secretos administrados por el proveedor de infraestructura.\n\n---\n\n# Uso del servicio\n\nUna vez configurado el módulo, puedes inyectar `SDKVisioner7Service` en cualquier servicio de NestJS.\n\n```ts\nimport { Injectable } from '@nestjs/common';\nimport { SDKVisioner7Service } from '@angelitosystems/sdk-visioner7';\n\n@Injectable()\nexport class FacturacionService {\n  constructor(\n    private readonly sdkVisioner7Service: SDKVisioner7Service,\n  ) {}\n\n  async validarCliente(ruc: string) {\n    const response = await this.sdkVisioner7Service.lookupTaxpayer(ruc);\n\n    return response.taxpayer;\n  }\n}\n```\n\n---\n\n# Métodos disponibles\n\n## 1. Consultar RUC (contribuyente)\n\n```ts\nsdkVisioner7Service.lookupTaxpayer(\n  ruc: string | number,\n): Promise<TaxpayerLookupResponse>\n```\n\nRealiza una consulta de RUC mediante el servicio contratado.\n\n```ts\nconst response = await sdkVisioner7Service.lookupTaxpayer(\n  '20611187719',\n);\n\nconsole.log(\n  response.taxpayer.businessName,\n);\n```\n\nLa aplicación debe contar con las credenciales y permisos correspondientes para utilizar esta operación.\n\n---\n\n# 2. Consultar domicilio fiscal / establecimientos anexos\n\n```ts\nsdkVisioner7Service.lookupEstablishments(\n  ruc: string | number,\n  queryType: EstablishmentQueryType | number,\n): Promise<EstablishmentLookupResponse>\n```\n\nTipos disponibles:\n\n```ts\nEstablishmentQueryType.FISCAL_ADDRESS          // 1: domicilio fiscal\nEstablishmentQueryType.ANNEXED_ESTABLISHMENTS  // 2: establecimientos anexos\n```\n\nEjemplo:\n\n```ts\nconst domicilio =\n  await this.sdkVisioner7Service.lookupEstablishments(\n    '20611187719',\n    EstablishmentQueryType.FISCAL_ADDRESS,\n  );\n\nconsole.log(domicilio.fiscalAddress?.[0]?.address);\n```\n\n---\n\n# 3. Consultar DNI (persona natural)\n\n```ts\nsdkVisioner7Service.lookupPerson(\n  dni: string | number,\n): Promise<NaturalPersonLookupResponse>\n```\n\nEjemplo:\n\n```ts\nconst persona = await this.sdkVisioner7Service.lookupPerson(\n  '10292315',\n);\n\nconsole.log(\n  persona.person.givenNames,\n  persona.person.paternalSurname,\n);\n```\n\nEl uso de información personal debe realizarse de acuerdo con la normativa aplicable y con una finalidad legítima.\n\n---\n\n# 4. Tipo de cambio\n\n```ts\nsdkVisioner7Service.getExchangeRate(\n  params: ExchangeRateRequest,\n): Promise<ExchangeRateResponse>\n```\n\nEjemplo:\n\n```ts\nconst response =\n  await this.sdkVisioner7Service.getExchangeRate({\n    year: 2025,\n    month: 7,\n  });\n\nconst compra = response.data.find(\n  item => item.side === 'C',\n)?.value;\n\nconst venta = response.data.find(\n  item => item.side === 'V',\n)?.value;\n\nconsole.log({\n  compra,\n  venta,\n});\n```\n\nCuando corresponda, el SDK utiliza el `businessToken` configurado en el módulo.\n\n---\n\n# 5. Emisión de Guías de Remisión\n\n```ts\nsdkVisioner7Service.issueRemittanceGuide(\n  payload: RemittanceGuideRequest,\n): Promise<RemittanceGuideResponse>\n```\n\nEmite una guía de remisión (remitente público, remitente privado o transportista). El \"tipo\" de guía depende exclusivamente de los campos incluidos en el payload.\n\nEjemplo conceptual:\n\n```ts\nconst resultado =\n  await this.sdkVisioner7Service.issueRemittanceGuide({\n    processType: '1',\n    companyDocumentNumber: 'YOUR_RUC',\n    companySolUsername: 'YOUR_SOL_USER',\n    companySolPassword: 'YOUR_SOL_PASSWORD',\n    signaturePassword: 'YOUR_SIGNATURE_PASSWORD',\n\n    documentTypeCode: '09',\n    documentNumber: 'T001-00000002',\n\n    idToken: 'YOUR_ID_TOKEN',\n    tokenKey: 'YOUR_TOKEN_KEY',\n\n    documentDate: '2025-08-10',\n\n    companyDocumentType: '6',\n    companyBusinessName: 'EMPRESA DE EJEMPLO S.A.C.',\n\n    recipientDocumentType: '6',\n    recipientDocumentNumber: 'YOUR_CLIENT_RUC',\n    recipientBusinessName: 'CLIENTE DE EJEMPLO S.A.C.',\n\n    shipmentItem: '1',\n    transferReasonCode: '01',\n    transferReasonDescription: 'VENTA',\n    grossWeightUnit: 'KGM',\n    grossWeight: '10.00',\n    transportModalityCode: '01',\n    startDate: '2025-08-10',\n\n    originUbigeoCode: '150101',\n    originAddress: 'AV. EJEMPLO 123',\n    destinationUbigeoCode: '150101',\n    destinationAddress: 'AV. DESTINO 456',\n\n    items: [\n      {\n        item: '1',\n        unitOfMeasure: 'NIU',\n        quantity: '1',\n        orderItem: '1',\n        description: 'PRODUCTO DE EJEMPLO',\n        code: 'PROD001',\n      },\n    ],\n  });\n\nconsole.log(resultado.providerResult.sunatMessage);\n```\n\n> Los valores mostrados son únicamente ilustrativos. Sustituye las credenciales y datos empresariales por valores correspondientes a tu propio entorno.\n\n---\n\n# 6. Consultar ticket de Guía de Remisión\n\n```ts\nsdkVisioner7Service.getRemittanceGuideTicketStatus(\n  payload: RemittanceGuideTicketStatusRequest,\n): Promise<RemittanceGuideTicketStatusResponse>\n```\n\nEjemplo:\n\n```ts\nconst estado =\n  await this.sdkVisioner7Service.getRemittanceGuideTicketStatus({\n    ticket: 'YOUR_TICKET',\n    companyDocumentNumber: 'YOUR_RUC',\n    companySolUsername: 'YOUR_SOL_USER',\n    companySolPassword: 'YOUR_SOL_PASSWORD',\n    idToken: 'YOUR_ID_TOKEN',\n    tokenKey: 'YOUR_TOKEN_KEY',\n    documentTypeCode: '31',\n    documentNumber: 'V001-00000001',\n    processType: '1',\n  });\n```\n\n---\n\n# 7. Generación de CPE (comprobantes electrónicos)\n\n```ts\nsdkVisioner7Service.generateVoucher(\n  payload: GenerateVoucherRequest,\n): Promise<GenerateVoucherResponse>\n```\n\nLa modalidad de pago se determina mediante la información enviada en `paymentTerms`:\n\n* **Contado**: una única entrada con `paymentFormCode: 'Contado'`.\n* **Crédito**: una entrada `'Credito'` + cuotas (`'Cuota001'`, `'Cuota002'`, ...) con `dueDate`.\n\nEjemplo (factura al contado):\n\n```ts\nconst factura =\n  await this.sdkVisioner7Service.generateVoucher({\n    operationType: '0101',\n    totalTaxableAmount: '305.08',\n    totalUntaxedAmount: '0.00',\n    totalExemptAmount: '0.00',\n    totalFreeAmount: '0.00',\n    subtotal: '305.08',\n    totalDiscount: '0.00',\n    igvPercentage: '18.00',\n    totalIgv: '54.92',\n    total: '360.00',\n\n    totalInWords: 'TRESCIENTOS SESENTA CON 00/100 SOLES',\n\n    voucherTypeCode: '01',\n    currencyCode: 'PEN',\n\n    voucherNumber: 'F001-00000001',\n    issueDate: '2025-08-10',\n\n    clientDocumentNumber: 'YOUR_CLIENT_DOCUMENT',\n    clientBusinessName: 'CLIENTE DE EJEMPLO',\n    clientDocumentType: '6',\n\n    companyDocumentNumber: 'YOUR_RUC',\n    companyDocumentType: '6',\n    companyBusinessName: 'EMPRESA DE EJEMPLO S.A.C.',\n\n    companySolUsername: 'YOUR_SOL_USER',\n    companySolPassword: 'YOUR_SOL_PASSWORD',\n    certificatePassword: 'YOUR_CERT_PASSWORD',\n    signaturePassword: 'YOUR_SIGNATURE_PASSWORD',\n    processType: '1',\n\n    paymentTerms: [\n      {\n        paymentFormCode: 'Contado',\n        amount: '360.00',\n      },\n    ],\n\n    items: [\n      {\n        item: '1',\n        unitOfMeasure: 'NIU',\n        quantity: '1.00',\n        price: '360.00',\n        amount: '305.08',\n        priceTypeCode: '01',\n        igv: '54.92',\n        igvPercentage: '18.00',\n        isc: '0.00',\n        operationTypeCode: '10',\n        code: 'PROD001',\n        description: 'PRODUCTO DE EJEMPLO',\n        priceWithoutIgv: '305.08',\n        icbperFlag: 0,\n        icbperTaxAmount: '0.00',\n        icbperTotalAmount: '0.00',\n      },\n    ],\n  });\n\nconsole.log(factura.sunatMessage);\nconsole.log(factura.file);\n```\n\n---\n\n# Manejo de errores\n\nEl SDK centraliza los errores mediante `SDKVisioner7ApiException`, que extiende `HttpException` de NestJS.\n\nEjemplo:\n\n```ts\nimport { SDKVisioner7ApiException } from\n  '@angelitosystems/sdk-visioner7';\n\ntry {\n  await this.sdkVisioner7Service.lookupTaxpayer(\n    '00000000000',\n  );\n} catch (error) {\n  if (error instanceof SDKVisioner7ApiException) {\n    console.error(\n      error.endpoint,\n      error.providerResponse,\n    );\n  }\n\n  throw error;\n}\n```\n\nEsto permite integrar fácilmente el SDK con los `ExceptionFilter` globales de NestJS.\n\n---\n\n# Glosario\n\nEl servicio integra con conceptos tributarios y logísticos de Perú. Esta sección explica cada término que aparece en el SDK y en los payloads del proveedor:\n\n| Término | Significado |\n| --- | --- |\n| **SUNAT** | Superintendencia Nacional de Aduanas y de Administración Tributaria: entidad del Estado peruano que administra impuestos y valida los comprobantes electrónicos. |\n| **RUC** | Registro Único de Contribuyentes: número de 11 dígitos que identifica a una empresa o persona con negocio ante SUNAT. |\n| **DNI** | Documento Nacional de Identidad: documento de identidad de personas naturales peruanas (8 dígitos). |\n| **CPE** | Comprobante de Pago Electrónico: factura o boleta electrónica enviada a SUNAT para su validación antes de considerarse emitida. |\n| **Factura / Boleta** | Tipos de comprobante. Códigos SUNAT: `01` = factura, `03` = boleta (campo `voucherTypeCode`). |\n| **Guía de Remisión (GRE)** | Documento electrónico que sustenta el traslado de bienes (campo `documentTypeCode: '09'`). |\n| **Remitente público / privado / transportista** | Modalidades de guía de remisión según quién traslada los bienes. Se definen por los campos incluidos en el payload. |\n| **Ticket** | Código que devuelve el proveedor al emitir una guía; permite consultar después el resultado de la validación (`getRemittanceGuideTicketStatus`). |\n| **CDR** | Constancia de Recepción: respuesta oficial de SUNAT con el resultado de la validación del comprobante. `responseCode`/`sunatCode` en `\"0\"` significa aceptado. |\n| **Hash CDR / CPE** | Resumen criptográfico (huella) del XML del comprobante o de la constancia. |\n| **XML / UBL** | Formato estándar en el que se genera y firma el comprobante electrónico. |\n| **IGV** | Impuesto General a las Ventas: IVA peruano (18% habitual). Campos `igv`, `igvPercentage`, `totalIgv`. |\n| **ISC** | Impuesto Selectivo al Consumo: aplica a ciertos bienes (bebidas, combustibles, etc.). Campos `isc`, `totalIsc`. |\n| **ICBPER** | Impuesto a la Bolsa Plástica de un solo uso. En el proveedor aparece como `IMPUESTO_BP`/`IMPORTE_BP` y el flag `FLG_ICBPER` (mapeado a `icbperFlag`, `icbperTaxAmount`, `icbperTotalAmount`). |\n| **Gravado** | Operación afecta al IGV (`totalTaxableAmount`). |\n| **Exonerado** | Operación no afecta al IGV por ley (`totalExemptAmount`). |\n| **Inafecto** | Operación no sujeta al IGV por naturaleza (`totalUntaxedAmount`). |\n| **Gratuito** | Entregas gratuitas (`totalFreeAmount`). |\n| **Detracción** | Retención de un porcentaje del pago a una cuenta del Banco de la Nación para ciertos bienes/servicios (campos `detractionCode`, `detractionPercentage`, `detractionsTotal`). |\n| **Percepción** | Cobro anticipado del IGV en la venta (campos `perceptions*`). |\n| **Retención** | Retención del IGV al proveedor (campos `retentions*`). |\n| **Contado / Crédito** | Formas de pago del CPE. En el proveedor: `COD_FORMA_PAGO = 'Contado'` o `'Credito'` + cuotas `Cuota001`, `Cuota002`, ... (mapeado a `paymentTerms`). |\n| **Tipo de cambio** | Precio de referencia del dólar (USD) publicado por SUNAT, con valores de compra (`side: 'C'`) y venta (`side: 'V'`). |\n| **Ubigeo** | Código geográfico oficial (departamento / provincia / distrito) usado en direcciones. |\n| **Usuario SOL / Clave SOL** | Credenciales del portal de SUNAT con las que se firma y envía el comprobante (`companySolUsername`, `companySolPassword`). |\n| **Certificado digital / firma** | Certificado con el que se firma el XML del comprobante (`signaturePassword`, `certificatePassword`). |\n| **Habido / condición de domicilio** | Condición del contribuyente frente a SUNAT (ubicable o no). Campos `statusCode` y `presenceCode` en el lookup de RUC. |\n| **Establecimientos anexos** | Sucursales o locales adicionales declarados por un contribuyente además de su domicilio fiscal. |\n| **Tipo de proceso (`processType`)** | Modo de emisión según el proveedor: producción o beta (`'1'` / `'2'`). |\n| **MTC** | Ministerio de Transportes y Comunicaciones: registros de vehículos y conductores usados en guías transportista (campos `*MtcRegistrationId`). |\n| **NIU / KGM** | Unidades de medida: NIU = unidades, KGM = kilogramos (campos `unitOfMeasure`, `grossWeightUnit`). |\n| **PEN / USD** | Códigos de moneda ISO: sol peruano y dólar estadounidense (campo `currencyCode`). |\n\n---\n\n# Integración recomendada\n\nUna arquitectura recomendada sería:\n\n```text\nFrontend\n   │\n   ▼\nBackend / API\n   │\n   ├── Clientes\n   ├── Facturación\n   ├── Guías\n   ├── Reportes\n   │\n   ▼\nSDKVisioner7Service\n   │\n   ▼\nServicio API contratado\n   │\n   ▼\nOperaciones correspondientes\n```\n\nEl frontend **no debe comunicarse directamente con el servicio externo utilizando credenciales privadas**.\n\nLas credenciales deben permanecer exclusivamente en el backend.\n\n---\n\n# Seguridad\n\nNunca expongas en frontend, JavaScript del navegador, aplicaciones móviles sin protección o repositorios públicos:\n\n```text\nSDK_VISIONER7_AUTH_TOKEN\nSDK_VISIONER7_BUSINESS_TOKEN\nUSUARIO_SOL_EMPRESA\nPASS_SOL_EMPRESA\nPAS_FIRMA\nCLAVE_TOKEN\nID_TOKEN\n```\n\nUtiliza variables de entorno:\n\n```env\nSDK_VISIONER7_AUTH_TOKEN=********\nSDK_VISIONER7_BUSINESS_TOKEN=********\n```\n\nY agrega `.env` al `.gitignore`:\n\n```gitignore\n.env\n.env.local\n.env.production\n```\n\n---\n\n# Protección de datos\n\nLas operaciones de consulta y emisión pueden involucrar información empresarial o datos personales.\n\nLa aplicación que utilice este SDK es responsable de:\n\n* Gestionar adecuadamente las credenciales.\n* Implementar controles de acceso.\n* Proteger la información almacenada.\n* Evitar registrar información sensible innecesariamente.\n* Cumplir con la normativa que resulte aplicable.\n* Utilizar las credenciales únicamente para las finalidades autorizadas.\n* Implementar medidas adecuadas de seguridad.\n\nEl SDK no pretende sustituir las obligaciones legales, regulatorias o contractuales del sistema que lo utilice.\n\n---\n\n# Ejemplo de integración completa\n\nLa carpeta:\n\n```text\nexample/\n```\n\ncontiene una integración de referencia:\n\n```text\nexample/\n├── app.module.ts\n└── app.controller.ts\n```\n\nPor ejemplo:\n\n```ts\n@Module({\n  imports: [\n    ConfigModule.forRoot({\n      isGlobal: true,\n    }),\n\n    SDKVisioner7Module.forRootAsync({\n      imports: [ConfigModule],\n      inject: [ConfigService],\n\n      useFactory: (config: ConfigService) => ({\n        baseUrl: config.get<string>(\n          'SDK_VISIONER7_BASE_URL',\n        ),\n\n        authToken: config.get<string>(\n          'SDK_VISIONER7_AUTH_TOKEN',\n        ),\n\n        businessToken: config.get<string>(\n          'SDK_VISIONER7_BUSINESS_TOKEN',\n        ),\n\n        timeout: 15000,\n      }),\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\n---\n\n# Build\n\nInstala las dependencias:\n\n```bash\nnpm install\n```\n\nCompila el proyecto:\n\n```bash\nnpm run build\n```\n\nEl resultado normalmente se genera en:\n\n```text\ndist/\n```\n\ncon los archivos JavaScript y declaraciones TypeScript correspondientes.\n\n---\n\n# Estructura del proyecto\n\n```text\n@angelitosystems/sdk-visioner7/\n│\n├── src/\n│   ├── interfaces/\n│   │   ├── sdk-visioner7-config.interface.ts\n│   │   ├── lookups.interface.ts\n│   │   ├── remittance-guide.interface.ts\n│   │   ├── voucher.interface.ts\n│   │   └── index.ts\n│   │\n│   ├── mapping/\n│   │   ├── lookups.mapping.ts\n│   │   ├── remittance-guide.mapping.ts\n│   │   ├── voucher.mapping.ts\n│   │   ├── voucher-response.mapping.ts\n│   │   └── index.ts\n│   │\n│   ├── exceptions/\n│   │   └── sdk-visioner7-api.exception.ts\n│   │\n│   ├── constants.ts\n│   ├── sdk-visioner7.module.ts\n│   ├── sdk-visioner7.service.ts\n│   └── index.ts\n│\n├── example/\n│   ├── app.module.ts\n│   └── app.controller.ts\n│\n├── package.json\n├── tsconfig.json\n├── .gitignore\n└── README.md\n```\n\nLa carpeta `mapping/` contiene la capa de traducción entre la API pública del SDK (en inglés) y el formato que espera el proveedor (campos como `txtTOTAL`, `NRO_DOCUMENTO_EMPRESA`, etc.).\n\n---\n\n# Naturaleza del proyecto\n\nEste proyecto debe considerarse una **librería de integración independiente**.\n\nLa implementación del SDK:\n\n* No constituye una API propia de SUNAT.\n* No constituye un producto oficial de Visioner7.\n* No representa a Visioner7.\n* No afirma una relación societaria, comercial o de representación con Visioner7.\n* No modifica ni redistribuye la infraestructura del proveedor.\n* Se limita a proporcionar una interfaz de software para facilitar la integración de una aplicación con un servicio externo al que el usuario/cliente tenga acceso autorizado.\n\nLa disponibilidad, características, límites, autenticación, endpoints y condiciones de uso del servicio externo dependen del proveedor y del servicio contratado.\n\n---\n\n# Servicio externo\n\nLa integración está diseñada para trabajar con el servicio correspondiente disponible en:\n\n[visioner7-api.com](https://visioner7-api.com/?utm_source=chatgpt.com)\n\nPara conocer las condiciones, disponibilidad y características actuales del servicio, consulta directamente la información proporcionada por el proveedor.\n\n---\n\n# Responsabilidad del usuario de la librería\n\nEl desarrollador o empresa que utilice este SDK es responsable de:\n\n1. Contar con acceso legítimo al servicio externo.\n2. Mantener vigentes sus credenciales.\n3. Cumplir las condiciones de uso del servicio contratado.\n4. Utilizar las funcionalidades de acuerdo con las autorizaciones correspondientes.\n5. Proteger las credenciales de acceso.\n6. Cumplir las obligaciones tributarias, comerciales, de privacidad y seguridad que correspondan.\n7. Validar que los documentos generados cumplan con los requisitos aplicables a su operación.\n\n---\n\n# Descargo de responsabilidad\n\nEste SDK se proporciona como una herramienta de integración de software.\n\nEl desarrollador de esta librería no garantiza la disponibilidad permanente, exactitud, continuidad, tiempos de respuesta o modificaciones futuras del servicio externo.\n\nLos cambios realizados por el proveedor del servicio, incluyendo modificaciones de endpoints, autenticación, formatos de respuesta, límites, requisitos o funcionalidades, pueden requerir actualizaciones del SDK.\n\nLa utilización de este SDK no sustituye la revisión de la documentación, condiciones contractuales o requisitos técnicos del servicio externo.\n\n---\n\n# Licencia\n\nLa licencia de este proyecto debe definirse de acuerdo con la forma en que se distribuya la librería.\n\nSi se trata de una herramienta privada para proyectos propios o de clientes, se recomienda mantener el repositorio privado y establecer mediante contrato las condiciones de uso, distribución y soporte.\n\n---\n\n## Nota final\n\nEste SDK fue desarrollado como una **capa de integración para facilitar el consumo de un servicio externo contratado**, manteniendo tipado, organización y manejo de errores dentro de aplicaciones NestJS.\n\nPara información sobre el servicio externo utilizado por la integración:\n\n[https://visioner7-api.com/](https://visioner7-api.com/?utm_source=chatgpt.com)\n","readmeFilename":"README.md"}