{"_id":"@blob-solutions/vcr-am-sdk","_rev":"14-77b3661ab4ecaa6964281f7bdf8bf838","name":"@blob-solutions/vcr-am-sdk","dist-tags":{"latest":"0.18.0"},"versions":{"0.1.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.1.0","keywords":["virtual cash register","cash register","armenia"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.1.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://github.com/blob-am/vcr-am-sdk#readme","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"1fd46b3dc29906c03900413cddde1e04c15f7acf","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.1.0.tgz","fileCount":9,"integrity":"sha512-Nb1lnUsSxuJBIq9gGFgYZecbF2GYLuD5K41e7SBPHtlZaiwp6Nxd7niVKMl6/htmVgTFYAHTE2G8+Rwhp4Zwrg==","signatures":[{"sig":"MEUCIQC78lVUFJiAwraawRzT1eqsb8dtu2hSicsgpbTMRwWh+wIgFfcxwWyny9Z2tnN3Dlpsvf+cArVTrwZHgyBPchlffZI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":939769},"main":"./lib/index.cjs","type":"module","types":"./lib/index.d.ts","module":"./lib/index.js","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.cjs"},"./browser":{"browser":"./lib/index.global.js"}},"gitHead":"f5ea6498500e578ccf2c1d2380d2116920d8874b","scripts":{"build":"tsup src/index.ts","watch-ts":"tsc -w --skipLibCheck","postinstall":"patch-package"},"_npmUser":{"name":"lobotomoe","email":"selfsurfer@gmail.com"},"overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"10.8.1","directories":{},"_nodeVersion":"21.7.3","dependencies":{"zod":"^3.23.8","unfetch":"^5.0.0","typescript":"^5.4.5","simple-typed-fetch":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","type-fest":"^4.18.3","@types/node":"^20.13.0","@tsconfig/node20":"^20.1.4","@tsconfig/strictest":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.1.0_1717324341157_0.1642326324144976","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.3.0","keywords":["virtual cash register","cash register","armenia"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.3.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://github.com/blob-am/vcr-am-sdk#readme","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"f19e026763fe041938702c48e46b8ccc0465124a","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.3.0.tgz","fileCount":10,"integrity":"sha512-T0e+mBjTewfbQrJI8EopfUYLUVBSe/6V3k4DbU4Sd7ZQzEgiFGLOOuPuIZV9B6B/wVjaV1Z/jdzONjhN6Plyig==","signatures":[{"sig":"MEUCIQDs3V1n2MptYLX12a0KaLMO6re4Nzjt8XD0FmpcZvx06QIgcbJHpZXq5n//LNFPOXU2TZeHSfCJC9RWTIPA9EImMI4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":940617},"main":"./lib/index.cjs","type":"module","types":"./lib/index.d.ts","module":"./lib/index.js","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.cjs"},"./browser":{"browser":"./lib/index.global.js"}},"gitHead":"deab1ef5e65dbd6aa45cb30204373d1cf2eebca9","scripts":{"build":"tsup src/index.ts","watch-ts":"tsc -w --skipLibCheck","postinstall":"patch-package"},"_npmUser":{"name":"lobotomoe","email":"selfsurfer@gmail.com"},"overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"10.8.1","description":"This is the official VCR.AM SDK for TS/JS. It provides a simple way to interact with the VCR.AM API.","directories":{},"_nodeVersion":"21.7.3","dependencies":{"zod":"^3.23.8","unfetch":"^5.0.0","typescript":"^5.4.5","simple-typed-fetch":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","type-fest":"^4.20.0","@types/node":"^20.14.2","@tsconfig/node20":"^20.1.4","@tsconfig/strictest":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.3.0_1718048620031_0.5409321318290459","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.4.0","keywords":["virtual cash register","cash register","armenia"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.4.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://github.com/blob-am/vcr-am-sdk#readme","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"03a2615d5eb8e6d991f6fdd17ada9ffeae890213","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.4.0.tgz","fileCount":10,"integrity":"sha512-kZiJFR8i/EAqHzyPdXrq9U1JRppXq4PD7IwFc2IpbR39No/13+A8SBgsEabaffcRDYMibQYg6nhLZhxP7porIA==","signatures":[{"sig":"MEUCIQD2Uuac/tma8HSzp8To6pZaG9d3twsJPT0zbIkfeHWxbwIgNLAeZ2MhDh9+JTXcsotyZ7//rzYNeywqB61ODXM+EE8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":940617},"main":"./lib/index.cjs","type":"module","types":"./lib/index.d.ts","module":"./lib/index.js","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.cjs"},"./browser":{"browser":"./lib/index.global.js"}},"gitHead":"471332c2f4f024c93f208fd7befa432788f0cd49","scripts":{"build":"tsup src/index.ts","watch-ts":"tsc -w --skipLibCheck","postinstall":"patch-package"},"_npmUser":{"name":"lobotomoe","email":"selfsurfer@gmail.com"},"overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"10.8.1","description":"This is the official VCR.AM SDK for TS/JS. It provides a simple way to interact with the VCR.AM API.","directories":{},"_nodeVersion":"21.7.3","dependencies":{"zod":"^3.23.8","unfetch":"^5.0.0","typescript":"^5.4.5","simple-typed-fetch":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","type-fest":"^4.20.0","@types/node":"^20.14.2","@tsconfig/node20":"^20.1.4","@tsconfig/strictest":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.4.0_1718048854470_0.23802308208127387","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.5.0","keywords":["virtual cash register","cash register","armenia"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.5.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://github.com/blob-am/vcr-am-sdk#readme","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"82c5c4bcbdd05a3150adc1c5036a17bd7b4882ca","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.5.0.tgz","fileCount":10,"integrity":"sha512-ebsSzEKIe51VScuypYmZnifLZaKj6zD607VlxP7P+P2UtgO1TnX6CCTS2xRyIDkZ+Cekn48iy1BMiH1Ru1HlMw==","signatures":[{"sig":"MEUCIEIlgfYdSDejdC7VDickbzZVAqKIImH73YIOt7mggGXZAiEAyMOTo7B/CUZ5y3MhA/1p4dWG+3L+en4/Hpjm6HM7dX0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":940848},"main":"./lib/index.cjs","type":"module","types":"./lib/index.d.ts","module":"./lib/index.js","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.cjs"},"./browser":{"browser":"./lib/index.global.js"}},"gitHead":"acbddf0c20d97381ca938b60476c037ca4e79c02","scripts":{"build":"tsup src/index.ts","watch-ts":"tsc -w --skipLibCheck","postinstall":"patch-package"},"_npmUser":{"name":"lobotomoe","email":"selfsurfer@gmail.com"},"overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"10.8.1","description":"This is the official VCR.AM SDK for TS/JS. It provides a simple way to interact with the VCR.AM API.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"zod":"^3.23.8","unfetch":"^5.0.0","typescript":"^5.4.5","simple-typed-fetch":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","type-fest":"^4.20.0","@types/node":"^20.14.2","@tsconfig/node20":"^20.1.4","@tsconfig/strictest":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.5.0_1723568348271_0.22196038771137117","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.6.0","keywords":["virtual cash register","cash register","armenia"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.6.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://github.com/blob-am/vcr-am-sdk#readme","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"67290ba44564092ac34d1e9f37944e9b2578367d","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.6.0.tgz","fileCount":10,"integrity":"sha512-7m3YDSA+MTg2IVgQLXinLJrcL/6FpdTu395Pr71RuDj5l0UTkSg9bxnB/Ffp1k33X5AZrqlqj9cN/7JiVK9XSw==","signatures":[{"sig":"MEYCIQDuV2r0XKrMRx+1X6J3N9jMQxbcKU7JqD+tYD/umveHdwIhAI77W+28lRNtM6kIDTdOZjK4hZ2LH6vJ0YjlwSY+g8Gn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":946197},"main":"./lib/index.cjs","type":"module","types":"./lib/index.d.ts","module":"./lib/index.js","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.cjs"},"./browser":{"browser":"./lib/index.global.js"}},"gitHead":"204edb77e8b5f7d977676fe622242c859f70d20b","scripts":{"build":"tsup src/index.ts","watch-ts":"tsc -w --skipLibCheck","postinstall":"patch-package"},"_npmUser":{"name":"lobotomoe","email":"selfsurfer@gmail.com"},"overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"This is the official VCR.AM SDK for TS/JS. It provides a simple way to interact with the VCR.AM API.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"zod":"^3.23.8","unfetch":"^5.0.0","typescript":"^5.6.2","simple-typed-fetch":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","type-fest":"^4.26.1","@types/node":"^20.14.2","@tsconfig/node20":"^20.1.4","@tsconfig/strictest":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.6.0_1725998661405_0.41007394630654526","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.7.0","keywords":["virtual cash register","cash register","armenia"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.7.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://github.com/blob-am/vcr-am-sdk#readme","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"eeca8b29ab09be7b9b1995754de16346a1986ab2","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.7.0.tgz","fileCount":10,"integrity":"sha512-AjBJeXJ0UgGkbrdSpTkYSAbFV/4qryvvH3pYh73u4wzNBP7FFzmE/tRlYEFSHeDXav+fOOiNOQFT4jbqfyusLg==","signatures":[{"sig":"MEUCID5m+mksgRIybO3ZMw2Xslj25BaV4Jav19hTa+RZA7URAiEAr3dYQ6EyKG94KEEmTdoQ2PBNfXHTKvMocnc2P2H2fxI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":950096},"main":"./lib/index.cjs","type":"module","types":"./lib/index.d.ts","module":"./lib/index.js","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.cjs"},"./browser":{"browser":"./lib/index.global.js"}},"gitHead":"6dbe7ec90e43bf90d9c15703a58a190fb42d692a","scripts":{"build":"tsup src/index.ts","watch-ts":"tsc -w --skipLibCheck","postinstall":"patch-package"},"_npmUser":{"name":"lobotomoe","email":"selfsurfer@gmail.com"},"overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Virtual Cash Register SDK for Armenia","directories":{},"_nodeVersion":"22.5.1","dependencies":{"zod":"^3.23.8","unfetch":"^5.0.0","typescript":"^5.6.3","simple-typed-fetch":"^0.2.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","type-fest":"^4.26.1","@types/node":"^20.14.2","@tsconfig/node20":"^20.1.4","@tsconfig/strictest":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.7.0_1728940177072_0.8157385650973417","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.8.0","keywords":["virtual cash register","cash register","armenia"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.8.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://github.com/blob-am/vcr-am-sdk#readme","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"260834756c4b1a2e00ff7157f0d19b61cf51d9f4","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.8.0.tgz","fileCount":10,"integrity":"sha512-n6l4vypPE+PtNJ0m8ws0ejszzW8DKi9/csowkaQ/hvEfqWzRlAYVgn48ZbFsAM9KG1Z1Tt6llfuVtFVFt+lnCQ==","signatures":[{"sig":"MEUCIQD91OwIYTNbsWT0g6uAP5+rP8BU7EWjbTA/v70hN25LFAIgIvIyywSry5K7YZoV2PMJHnfadqfgk1tcZrZxiNGst7s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":512200},"main":"./lib/index.cjs","type":"module","types":"./lib/index.d.ts","module":"./lib/index.js","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.cjs"},"./browser":{"browser":"./lib/index.global.js"}},"gitHead":"574b0bd2cc864db77bb77c627c06a8306554d3fa","scripts":{"build":"tsup src/index.ts","watch-ts":"tsc -w --skipLibCheck"},"_npmUser":{"name":"lobotomoe","email":"selfsurfer@gmail.com"},"overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"10.9.0","description":"Virtual Cash Register SDK for Armenia","directories":{},"_nodeVersion":"22.5.1","dependencies":{"zod":"^3.24.1","typescript":"^5.7.2","simple-typed-fetch":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","type-fest":"^4.30.2","@types/node":"^20.17.10","@tsconfig/node20":"^20.1.4","@tsconfig/strictest":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.8.0_1734725905262_0.7409960093876657","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.10.0","keywords":["vcr","vcr.am","armenia","armenian","cash-register","virtual-cash-register","fiscalization","src","tax-service","e-receipt","fiscal","blob-solutions","typescript","sdk"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.10.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://vcr.am","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"f9985719ccc4f2d94f886929776b8c2059816303","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.10.0.tgz","fileCount":12,"integrity":"sha512-yERDV/0r3BOI6PLmbFHkZZ3cXxFQMKBDD5zEQbYtUyG6AiJ0OEl3eFF4LWsBa8hqVC7w+Z8eh+rhniS9YrRuFw==","signatures":[{"sig":"MEUCIDS9i7HsXGTKCrnU5bG7+gjZ7tr2OttU02KL05J47Rp5AiEAzCOhDkCDxndvmRVaxNHH3Gc7QQOWxowJ/7XMHwql2Kk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blob-solutions%2fvcr-am-sdk@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1597464},"main":"./lib/index.cjs","type":"module","_from":"file:blob-solutions-vcr-am-sdk-0.10.0.tgz","types":"./lib/index.d.ts","module":"./lib/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"import":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"require":{"types":"./lib/index.d.cts","default":"./lib/index.cjs"}},"./package.json":"./package.json"},"scripts":{"lint":"biome check && pnpm lint:no-as","test":"vitest run","build":"tsup","check":"pnpm lint && pnpm typecheck && pnpm test","clean":"rm -rf lib coverage","format":"biome format --write","lint:fix":"biome check --write","typecheck":"tsc --noEmit","lint:no-as":"node --experimental-strip-types --no-warnings scripts/lint-no-as-cast.ts","test:watch":"vitest","lint:package":"publint && attw --pack .","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2713f6f8-d9c1-42dc-bd00-c8342c8a8dab"}},"_resolved":"/tmp/6188101b9d9e001066d737a6b667ce85/blob-solutions-vcr-am-sdk-0.10.0.tgz","_integrity":"sha512-yERDV/0r3BOI6PLmbFHkZZ3cXxFQMKBDD5zEQbYtUyG6AiJ0OEl3eFF4LWsBa8hqVC7w+Z8eh+rhniS9YrRuFw==","repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"11.11.0","description":"Official TypeScript/JavaScript SDK for the VCR.AM Virtual Cash Register API — fiscalize sales, refunds, and prepayments through Armenia's State Revenue Committee.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.0.10","vitest":"^4.1.5","publint":"^0.3.18","typescript":"^5.9.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/node24":"^24.0.0","@tsconfig/strictest":"^2.0.5","@vitest/coverage-v8":"^4.1.5","@arethetypeswrong/cli":"^0.18.2"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.10.0_1777673180900_0.9245356674157879","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.11.0","keywords":["vcr","vcr.am","armenia","armenian","cash-register","virtual-cash-register","fiscalization","src","tax-service","e-receipt","fiscal","blob-solutions","typescript","sdk"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.11.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://vcr.am","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"576e74e36eaa237b175f9204262bf48714a2939e","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.11.0.tgz","fileCount":12,"integrity":"sha512-0nr9T146vehY9vv1uEiiy5G0k7335SRzIFFEea4cQvdidkf1uzKrYVdPNuTWkQsuxXUF7Ymk6fjlOo2Sj1dITw==","signatures":[{"sig":"MEUCIFrc2xZVEZMX+Uh00a04ui93CJMKv89Eko1c1ttQ1Sg/AiEA4rpAbeQyOsErCFG33yVyAmjqZ93UtNRT9KiIEn52SAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blob-solutions%2fvcr-am-sdk@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1599063},"main":"./lib/index.cjs","type":"module","_from":"file:blob-solutions-vcr-am-sdk-0.11.0.tgz","types":"./lib/index.d.ts","module":"./lib/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"import":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"require":{"types":"./lib/index.d.cts","default":"./lib/index.cjs"}},"./package.json":"./package.json"},"scripts":{"lint":"biome check && pnpm lint:no-as","test":"vitest run","build":"tsup","check":"pnpm lint && pnpm typecheck && pnpm test","clean":"rm -rf lib coverage","format":"biome format --write","lint:fix":"biome check --write","typecheck":"tsc --noEmit","lint:no-as":"node --experimental-strip-types --no-warnings scripts/lint-no-as-cast.ts","test:watch":"vitest","lint:package":"publint && attw --pack .","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2713f6f8-d9c1-42dc-bd00-c8342c8a8dab"}},"_resolved":"/tmp/9c0eb11ec21b2afe1f088a2354972c46/blob-solutions-vcr-am-sdk-0.11.0.tgz","_integrity":"sha512-0nr9T146vehY9vv1uEiiy5G0k7335SRzIFFEea4cQvdidkf1uzKrYVdPNuTWkQsuxXUF7Ymk6fjlOo2Sj1dITw==","repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"11.11.0","description":"Official TypeScript/JavaScript SDK for the VCR.AM Virtual Cash Register API — fiscalize sales, refunds, and prepayments through Armenia's State Revenue Committee.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.0.10","vitest":"^4.1.5","publint":"^0.3.18","typescript":"^5.9.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.14","@tsconfig/node24":"^24.0.0","@tsconfig/strictest":"^2.0.5","@vitest/coverage-v8":"^4.1.5","@arethetypeswrong/cli":"^0.18.2"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.11.0_1778626273350_0.9030314581667023","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.14.0","keywords":["vcr","vcr.am","armenia","armenian","cash-register","virtual-cash-register","fiscalization","src","tax-service","e-receipt","fiscal","blob-solutions","typescript","sdk"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.14.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://vcr.am","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"168c7e42e9aac1b71d2d8e4d3a763798e745e38c","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.14.0.tgz","fileCount":12,"integrity":"sha512-nGxzXGc2XkDinq02fas1oPqshXZGVOHFvguvHPnrfPGYOFn8W+IgtJp6g/rUIJtpgGVZkJiKpq33xvsIU6ukBw==","signatures":[{"sig":"MEYCIQCoqxZIPK30e6qTfaoGU5ZdcnATlKrjxD13+eiPAOgOnwIhAPSQzqOpqxZ+Bqw8ipJgZ1xcfbBKW1yjCxreTMQKm0ra","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blob-solutions%2fvcr-am-sdk@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1698811},"main":"./lib/index.cjs","type":"module","_from":"file:blob-solutions-vcr-am-sdk-0.14.0.tgz","types":"./lib/index.d.ts","module":"./lib/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"import":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"require":{"types":"./lib/index.d.cts","default":"./lib/index.cjs"}},"./package.json":"./package.json"},"scripts":{"lint":"biome check && pnpm lint:no-as","test":"vitest run","build":"tsup","check":"pnpm lint && pnpm typecheck && pnpm test","clean":"rm -rf lib coverage","format":"biome format --write","lint:fix":"biome check --write","typecheck":"tsc --noEmit","lint:no-as":"node --experimental-strip-types --no-warnings scripts/lint-no-as-cast.ts","test:watch":"vitest","lint:package":"publint && attw --pack .","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2713f6f8-d9c1-42dc-bd00-c8342c8a8dab"}},"_resolved":"/tmp/4bce2635f95981ffb0f185015556349a/blob-solutions-vcr-am-sdk-0.14.0.tgz","_integrity":"sha512-nGxzXGc2XkDinq02fas1oPqshXZGVOHFvguvHPnrfPGYOFn8W+IgtJp6g/rUIJtpgGVZkJiKpq33xvsIU6ukBw==","repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Official TypeScript/JavaScript SDK for the VCR.AM Virtual Cash Register API — fiscalize sales, refunds, and prepayments through Armenia's State Revenue Committee.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.1.3","vitest":"^4.1.10","publint":"^0.3.21","typescript":"^5.9.3","@types/node":"^25.6.0","@biomejs/biome":"^2.5.3","@tsconfig/node24":"^24.0.0","@tsconfig/strictest":"^2.0.5","@vitest/coverage-v8":"^4.1.10","@arethetypeswrong/cli":"^0.18.4"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.14.0_1783541035711_0.9847449488865405","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.15.0","keywords":["vcr","vcr.am","armenia","armenian","cash-register","virtual-cash-register","fiscalization","src","tax-service","e-receipt","fiscal","blob-solutions","typescript","sdk"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.15.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://vcr.am","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"e242053e85e24814a404b314094837924360fadf","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.15.0.tgz","fileCount":12,"integrity":"sha512-nGCgIbcjnf6rpMvAyFw/CjBazb9Av59nGrrbq4V2U9IAyaInQet2wxTRVOzhl9JG6Uu75Voco/15axiQQ3DM+Q==","signatures":[{"sig":"MEUCIQCotz79I75ZllmHExWliTnK5T+KBCUiNuQ+8pBvOeGRlwIgGlZ3tCpk7X4eJi9N0+r/cuXpUGrVVhrIAnbMOMk5PIM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blob-solutions%2fvcr-am-sdk@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1719767},"main":"./lib/index.cjs","type":"module","_from":"file:blob-solutions-vcr-am-sdk-0.15.0.tgz","types":"./lib/index.d.ts","module":"./lib/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"import":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"require":{"types":"./lib/index.d.cts","default":"./lib/index.cjs"}},"./package.json":"./package.json"},"scripts":{"lint":"biome check && pnpm lint:no-as","test":"vitest run","build":"tsup","check":"pnpm lint && pnpm typecheck && pnpm test","clean":"rm -rf lib coverage","format":"biome format --write","lint:fix":"biome check --write","typecheck":"tsc --noEmit","lint:no-as":"node --experimental-strip-types --no-warnings scripts/lint-no-as-cast.ts","test:watch":"vitest","lint:package":"publint && attw --pack .","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2713f6f8-d9c1-42dc-bd00-c8342c8a8dab"}},"_resolved":"/tmp/899fb64a286e490d8ea47d71bb08c225/blob-solutions-vcr-am-sdk-0.15.0.tgz","_integrity":"sha512-nGCgIbcjnf6rpMvAyFw/CjBazb9Av59nGrrbq4V2U9IAyaInQet2wxTRVOzhl9JG6Uu75Voco/15axiQQ3DM+Q==","repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Official TypeScript/JavaScript SDK for the VCR.AM Virtual Cash Register API — fiscalize sales, refunds, and prepayments through Armenia's State Revenue Committee.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.1.4","vitest":"^4.1.10","publint":"^0.3.21","typescript":"^5.9.3","@types/node":"^25.6.0","@biomejs/biome":"^2.5.3","@tsconfig/node24":"^24.0.4","@tsconfig/strictest":"^2.0.8","@vitest/coverage-v8":"^4.1.10","@arethetypeswrong/cli":"^0.18.4"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.15.0_1783584882673_0.9482651222894913","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.16.0","keywords":["vcr","vcr.am","armenia","armenian","cash-register","virtual-cash-register","fiscalization","src","tax-service","e-receipt","fiscal","blob-solutions","typescript","sdk"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.16.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://vcr.am","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"a11963b8460883bea96ac5026f54c5663a40ebd3","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.16.0.tgz","fileCount":12,"integrity":"sha512-VkUu3SZ3c/qmvbmCGH4cS7RJYj6gs9twZFDCgQ3dlHcK8mWSya05Et4xSTsh28VHQj+s7bmNLg+aXXCnw7QA3A==","signatures":[{"sig":"MEUCIQDt7lmU/q5GWV5r9bX1NS0cvPxV29ZqENoDiWcfIrb0dQIgQzssg14YzvhWJEbUjO/5FMwY9RUIr1lp/K/rAFRcihI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blob-solutions%2fvcr-am-sdk@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1722517},"main":"./lib/index.cjs","type":"module","_from":"file:blob-solutions-vcr-am-sdk-0.16.0.tgz","types":"./lib/index.d.ts","module":"./lib/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"import":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"require":{"types":"./lib/index.d.cts","default":"./lib/index.cjs"}},"./package.json":"./package.json"},"scripts":{"lint":"biome check && pnpm lint:no-as","test":"vitest run","build":"tsup","check":"pnpm lint && pnpm typecheck && pnpm test","clean":"rm -rf lib coverage","format":"biome format --write","lint:fix":"biome check --write","typecheck":"tsc --noEmit","lint:no-as":"node --experimental-strip-types --no-warnings scripts/lint-no-as-cast.ts","test:watch":"vitest","lint:package":"publint && attw --pack .","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2713f6f8-d9c1-42dc-bd00-c8342c8a8dab"}},"_resolved":"/tmp/5c3c5ab165dcca24686bb17ad0b528ec/blob-solutions-vcr-am-sdk-0.16.0.tgz","_integrity":"sha512-VkUu3SZ3c/qmvbmCGH4cS7RJYj6gs9twZFDCgQ3dlHcK8mWSya05Et4xSTsh28VHQj+s7bmNLg+aXXCnw7QA3A==","repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Official TypeScript/JavaScript SDK for the VCR.AM Virtual Cash Register API — fiscalize sales, refunds, and prepayments through Armenia's State Revenue Committee.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.1.4","vitest":"^4.1.10","publint":"^0.3.21","typescript":"^5.9.3","@types/node":"^25.6.0","@biomejs/biome":"^2.5.3","@tsconfig/node24":"^24.0.4","@tsconfig/strictest":"^2.0.8","@vitest/coverage-v8":"^4.1.10","@arethetypeswrong/cli":"^0.18.4"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.16.0_1783681845928_0.9062443643144722","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.17.0","keywords":["vcr","vcr.am","armenia","armenian","cash-register","virtual-cash-register","fiscalization","src","tax-service","e-receipt","fiscal","blob-solutions","typescript","sdk"],"author":{"name":"Alex Kraiz"},"license":"ISC","_id":"@blob-solutions/vcr-am-sdk@0.17.0","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"homepage":"https://vcr.am","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"dist":{"shasum":"c806c3a85cd8ab0a926f11f3f991c32416e81164","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.17.0.tgz","fileCount":12,"integrity":"sha512-HjXMKstz+Any0iiVPhenFxy1aH/tQBF/7+NwrdDTT9OwRx4r7V94v/RZ+srRnpAl1UodtHxSicA8MZA0p6SC4A==","signatures":[{"sig":"MEQCIBw5911O+z4ng0/xrds0MTPN0crl++helSHxeim02q1iAiBWWneJfqlJpwfhJES3THhpPryhV7lp/yMLVH9sf4sSCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blob-solutions%2fvcr-am-sdk@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1746037},"main":"./lib/index.cjs","type":"module","_from":"file:blob-solutions-vcr-am-sdk-0.17.0.tgz","types":"./lib/index.d.ts","module":"./lib/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"import":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"require":{"types":"./lib/index.d.cts","default":"./lib/index.cjs"}},"./package.json":"./package.json"},"scripts":{"lint":"biome check && pnpm lint:no-as","test":"vitest run","build":"tsup","check":"pnpm lint && pnpm typecheck && pnpm test","clean":"rm -rf lib coverage","format":"biome format --write","lint:fix":"biome check --write","typecheck":"tsc --noEmit","lint:no-as":"node --experimental-strip-types --no-warnings scripts/lint-no-as-cast.ts","test:watch":"vitest","lint:package":"publint && attw --pack .","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2713f6f8-d9c1-42dc-bd00-c8342c8a8dab"}},"_resolved":"/tmp/e5b4f3875b96510f46c28bc3b740963b/blob-solutions-vcr-am-sdk-0.17.0.tgz","_integrity":"sha512-HjXMKstz+Any0iiVPhenFxy1aH/tQBF/7+NwrdDTT9OwRx4r7V94v/RZ+srRnpAl1UodtHxSicA8MZA0p6SC4A==","repository":{"url":"git+https://github.com/blob-am/vcr-am-sdk.git","type":"git"},"_npmVersion":"11.17.0","description":"Official TypeScript/JavaScript SDK for the VCR.AM Virtual Cash Register API — fiscalize sales, refunds, and prepayments through Armenia's State Revenue Committee.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.1.4","vitest":"^4.1.10","publint":"^0.3.21","typescript":"^5.9.3","@types/node":"^25.6.0","@biomejs/biome":"^2.5.3","@tsconfig/node24":"^24.0.4","@tsconfig/strictest":"^2.0.8","@vitest/coverage-v8":"^4.1.10","@arethetypeswrong/cli":"^0.18.4"},"_npmOperationalInternal":{"tmp":"tmp/vcr-am-sdk_0.17.0_1787901753065_0.9185069923764906","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@blob-solutions/vcr-am-sdk","version":"0.18.0","description":"Official TypeScript/JavaScript SDK for the VCR.AM Virtual Cash Register API — fiscalize sales, refunds, and prepayments through Armenia's State Revenue Committee.","keywords":["vcr","vcr.am","armenia","armenian","cash-register","virtual-cash-register","fiscalization","src","tax-service","e-receipt","fiscal","blob-solutions","typescript","sdk"],"homepage":"https://vcr.am","bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"repository":{"type":"git","url":"git+https://github.com/blob-am/vcr-am-sdk.git"},"license":"ISC","author":{"name":"Alex Kraiz"},"type":"module","sideEffects":false,"exports":{".":{"import":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"require":{"types":"./lib/index.d.cts","default":"./lib/index.cjs"}},"./package.json":"./package.json"},"main":"./lib/index.cjs","module":"./lib/index.js","types":"./lib/index.d.ts","engines":{"node":">=22.12.0"},"dependencies":{"zod":"^4.4.3"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.4","@biomejs/biome":"^2.5.3","@tsconfig/node24":"^24.0.4","@tsconfig/strictest":"^2.0.8","@types/node":"^25.6.0","@vitest/coverage-v8":"^4.1.10","publint":"^0.3.21","tsup":"^8.5.1","typescript":"^5.9.3","vite":"^8.1.4","vitest":"^4.1.10"},"publishConfig":{"access":"public","provenance":true},"scripts":{"build":"tsup","clean":"rm -rf lib coverage","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"biome check && pnpm lint:no-as","lint:fix":"biome check --write","lint:no-as":"node --experimental-strip-types --no-warnings scripts/lint-no-as-cast.ts","format":"biome format --write","lint:package":"publint && attw --pack .","check":"pnpm lint && pnpm typecheck && pnpm test"},"_id":"@blob-solutions/vcr-am-sdk@0.18.0","_integrity":"sha512-vT7iNf14sOUx3PxkyyjUC4y1HL4A3vyA+mfEW7bqV34aLtjDSB08DdByUpExS+5h7Hi3vTudYtG98eKt2fFmjQ==","_resolved":"/tmp/9bce8b04a8b7bf03335241e8ffbffe4f/blob-solutions-vcr-am-sdk-0.18.0.tgz","_from":"file:blob-solutions-vcr-am-sdk-0.18.0.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-vT7iNf14sOUx3PxkyyjUC4y1HL4A3vyA+mfEW7bqV34aLtjDSB08DdByUpExS+5h7Hi3vTudYtG98eKt2fFmjQ==","shasum":"d456ea65618b8a55a8eebd9444a12c4d1cc3334d","tarball":"https://registry.npmjs.org/@blob-solutions/vcr-am-sdk/-/vcr-am-sdk-0.18.0.tgz","fileCount":12,"unpackedSize":1749947,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blob-solutions%2fvcr-am-sdk@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFyNX5hAf3tEaNXZFzABtEGuR2s4V+qqXmZTnhmWVzDrAiEA17OFruSvI5bUItnZBDlRij+izA8kSa6vl3aNqb1J1cw="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2713f6f8-d9c1-42dc-bd00-c8342c8a8dab"}},"directories":{},"maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vcr-am-sdk_0.18.0_1787928374781_0.40688055230232756"},"_hasShrinkwrap":false}},"time":{"created":"2024-06-02T10:32:21.058Z","modified":"2026-08-28T14:46:15.344Z","0.1.0":"2024-06-02T10:32:21.343Z","0.3.0":"2024-06-10T19:43:40.223Z","0.4.0":"2024-06-10T19:47:34.691Z","0.5.0":"2024-08-13T16:59:08.439Z","0.6.0":"2024-09-10T20:04:21.610Z","0.7.0":"2024-10-14T21:09:37.346Z","0.8.0":"2024-12-20T20:18:25.503Z","0.10.0":"2026-05-01T22:06:21.124Z","0.11.0":"2026-05-12T22:51:13.603Z","0.14.0":"2026-07-08T20:03:55.913Z","0.15.0":"2026-07-09T08:14:42.839Z","0.16.0":"2026-07-10T11:10:46.117Z","0.17.0":"2026-08-28T07:22:33.222Z","0.18.0":"2026-08-28T14:46:14.963Z"},"bugs":{"url":"https://github.com/blob-am/vcr-am-sdk/issues"},"author":{"name":"Alex Kraiz"},"license":"ISC","homepage":"https://vcr.am","keywords":["vcr","vcr.am","armenia","armenian","cash-register","virtual-cash-register","fiscalization","src","tax-service","e-receipt","fiscal","blob-solutions","typescript","sdk"],"repository":{"type":"git","url":"git+https://github.com/blob-am/vcr-am-sdk.git"},"description":"Official TypeScript/JavaScript SDK for the VCR.AM Virtual Cash Register API — fiscalize sales, refunds, and prepayments through Armenia's State Revenue Committee.","maintainers":[{"name":"lobotomoe","email":"selfsurfer@gmail.com"}],"readme":"# `@blob-solutions/vcr-am-sdk`\n\n[![npm version](https://img.shields.io/npm/v/@blob-solutions/vcr-am-sdk?color=cb3837&logo=npm)](https://www.npmjs.com/package/@blob-solutions/vcr-am-sdk)\n[![types](https://img.shields.io/npm/types/@blob-solutions/vcr-am-sdk?logo=typescript&logoColor=white)](https://www.npmjs.com/package/@blob-solutions/vcr-am-sdk)\n[![CI](https://github.com/blob-am/vcr-am-sdk/actions/workflows/ci.yml/badge.svg)](https://github.com/blob-am/vcr-am-sdk/actions/workflows/ci.yml)\n[![License: ISC](https://img.shields.io/badge/license-ISC-blue.svg)](LICENSE)\n\nOfficial TypeScript / JavaScript SDK for the [VCR.AM](https://vcr.am) Virtual Cash Register API — register sales, refunds, and prepayments through Armenia's State Revenue Committee (SRC).\n\n- **One runtime dep** — just [Zod](https://zod.dev). Native `fetch`, `AbortSignal`, no polyfills.\n- **Cross-runtime** — Node 22+, Bun, Deno, modern browsers. ESM + CJS + IIFE.\n- **Schema-validated** — every response is parsed with Zod 4; contract drift fails loudly with structured errors.\n- **Strict types** — branded errors, `RequireAtLeastOne` amount unions, discriminated buyer / offer types.\n- **Verified** — `publint` clean, `attw` 🟢 across all four resolution modes, 100% line coverage.\n\n## Table of contents\n\n- [Installation](#installation)\n- [Quick start](#quick-start)\n- [Configuration](#configuration)\n- [API reference](#api-reference)\n  - [Account](#account)\n  - [Sales](#sales)\n  - [Prepayments](#prepayments)\n  - [Cashiers](#cashiers)\n  - [Offers and departments](#offers-and-departments)\n  - [Classifier search](#classifier-search)\n- [Error handling](#error-handling)\n- [Cancellation and timeouts](#cancellation-and-timeouts)\n- [Idempotency and retries](#idempotency-and-retries)\n- [When the tax service is unreachable](#when-the-tax-service-is-unreachable)\n- [Browser usage](#browser-usage)\n- [Development](#development)\n- [Versioning](#versioning)\n\n## Installation\n\n```bash\npnpm add @blob-solutions/vcr-am-sdk\n# or: npm install / yarn add / bun add\n```\n\nYou'll need an API key from your VCR.AM dashboard.\n\n## Quick start\n\n```typescript\nimport { VCRClient } from \"@blob-solutions/vcr-am-sdk\";\n\nconst apiKey = process.env.VCR_AM_API_KEY;\nif (apiKey === undefined) throw new Error(\"VCR_AM_API_KEY is required\");\n\nconst vcr = new VCRClient(apiKey);\n\nconst { crn, srcReceiptId, fiscal } = await vcr.registerSale({\n  cashier: { id: 1 },\n  items: [\n    {\n      offer: { externalId: \"sku-coffee\" },\n      quantity: \"1\",\n      price: \"1500\",\n      unit: \"pc\",\n    },\n  ],\n  amount: { cash: \"1500\" },\n  buyer: { type: \"individual\" },\n});\n\nconsole.log({ crn, srcReceiptId, fiscal });\n```\n\n## Configuration\n\n```typescript\nconst vcr = new VCRClient(apiKey, {\n  baseUrl: \"https://vcr.am/api/v1\",  // override for staging or self-hosted\n  fetch: customFetch,                 // injectable fetch (e.g. undici, MSW)\n  timeoutMs: 30_000,                  // default 30s; pass `null` to disable\n});\n```\n\nPer-request overrides apply to every method's optional second argument:\n\n```typescript\nconst controller = new AbortController();\n\nawait vcr.registerSale(sale, {\n  signal: controller.signal,\n  timeoutMs: 5_000,\n});\n```\n\n## API reference\n\nEvery method returns a typed, schema-validated response and accepts an optional `RequestOptions` (`{ signal?, timeoutMs? }`) as its last argument.\n\n### Account\n\n| Method       | Endpoint      | Returns  |\n| ------------ | ------------- | -------- |\n| `whoami()`   | `GET /whoami` | `Whoami` |\n\n`whoami()` resolves which VCR the API key belongs to and whether it is a `production` or `sandbox` key — a cheap health-check. It works on freshly-imported registers that have not been activated yet (`crn` is `null` in that case).\n\n```typescript\nconst me = await vcr.whoami();\nconsole.log(me.vcrId, me.mode, me.businessEntity.tin);\n```\n\n### Sales\n\n| Method                      | Endpoint            | Returns                       |\n| --------------------------- | ------------------- | ----------------------------- |\n| `registerSale(input)`       | `POST /sales`       | `RegisterSaleResponse`        |\n| `getSale(saleId)`           | `GET /sales/{id}`   | `SaleDetail`                  |\n| `registerSaleRefund(input)` | `POST /sales/refund`| `RegisterSaleRefundResponse`  |\n\n```typescript\nconst refund = await vcr.registerSaleRefund({\n  cashier: { id: 1 },\n  saleId: 42,\n  reason: \"customer_request\",\n  refundAmounts: { cash: \"1500\" },\n  items: [{ srcId: 17, quantity: \"1\" }],\n});\n```\n\n**Payment: `amount` or `autoSettle`.** A sale settles by *exactly one* of these — never both (the types enforce it):\n\n- `amount` — explicit AMD per tender (`{ cash?, nonCash?, prepayment?, compensation? }`), as in the quick-start.\n- `autoSettle: { tender: \"cash\" | \"nonCash\" }` — VCR computes the AMD cart total and charges the whole of it to that one tender. Zero-tap: you don't sum the cart yourself, and it's the only sane option for a foreign-currency sale (you can't know the AMD total up front).\n\n**Comment** (optional): pass `comment` to attach a merchant-internal note to the sale — typically an external payment reference for reconciliation (`comment: \"Stripe pi_3Qc...\"`). Max 500 characters; the server strips control characters and trims whitespace. It is purely internal — never printed on the buyer's receipt and never sent to the tax authority — and `getSale(id)` reads it back as `SaleDetail.comment`.\n\n**eMark codes** (marked goods, Govt Decision 1976-N) go on each sale item as `emarks: string[]`; the same codes are echoed on refund items.\n\n**Foreign-currency sales** (HO-234-N): set `currency` on each item and price that item in the foreign currency. VCR converts every line to AMD server-side at the previous-business-day CBA mid-market rate; the fiscal receipt is always AMD. All foreign-priced items in one sale must share the same currency, and mixing AMD with foreign lines is rejected. Preview the rate first with [`getExchangeRate`](#exchange-rate).\n\n```typescript\nawait vcr.registerSale({\n  cashier: { id: 1 },\n  items: [\n    // price is in USD; VCR converts to AMD.\n    { offer: { id: 5 }, quantity: \"1\", price: \"10\", currency: \"USD\", unit: \"pc\" },\n  ],\n  autoSettle: { tender: \"cash\" }, // AMD total is server-derived\n  buyer: { type: \"individual\" },\n});\n```\n\n### Prepayments\n\n| Method                                     | Endpoint                     | Returns                            |\n| ------------------------------------------ | ---------------------------- | ---------------------------------- |\n| `registerPrepayment(input)`                | `POST /prepayments`          | `RegisterPrepaymentResponse`       |\n| `getPrepayment(id)`                        | `GET /prepayments/{id}`      | `PrepaymentDetail`                 |\n| `registerPrepaymentRefund(input)`          | `POST /prepayments/refund`   | `RegisterPrepaymentRefundResponse` |\n| `listPrepayments(filter?)`                 | `GET /prepayments`           | `PrepaymentListItem[]`             |\n| `getCustomerPrepaymentBalance({ ... })`    | `GET /prepayments/balance`   | `CustomerPrepaymentBalance`        |\n\n`listPrepayments({ customerRef?, state? })` returns up to 500 rows, each carrying the ledger-derived `remaining` and `state` (`open` / `consumed` / `refunded`). `getCustomerPrepaymentBalance({ customerRef })` returns the customer's open balance, scoped to the business entity that owns the calling VCR's key.\n\n### Cashiers\n\n| Method                  | Endpoint          | Returns                  |\n| ----------------------- | ----------------- | ------------------------ |\n| `listCashiers()`        | `GET /cashiers`   | `CashierListItem[]`      |\n| `createCashier(input)`  | `POST /cashiers`  | `CreateCashierResponse`  |\n\n```typescript\nconst cashier = await vcr.createCashier({\n  name: {\n    value: { hy: \"Արամ\", en: \"Aram\" },\n    localizationStrategy: \"translation\",\n  },\n  password: \"1234\",\n});\n```\n\n### Offers and departments\n\n| Method                       | Endpoint             | Returns                    |\n| ---------------------------- | -------------------- | -------------------------- |\n| `createOffer(input)`         | `POST /offers`       | `CreateOfferResponse`      |\n| `listOffers(filter?)`        | `GET /offers`        | `OfferListItem[]`          |\n| `getOffer(id)`               | `GET /offers/{id}`   | `OfferListItem`            |\n| `updateOffer(id, { title })` | `PATCH /offers/{id}` | `OfferListItem`            |\n| `createDepartment(input)`    | `POST /departments`  | `CreateDepartmentResponse` |\n| `listDepartments()`          | `GET /departments`   | `DepartmentListItem[]`     |\n\n`listOffers({ externalId?, type?, includeArchived? })` is handy for checking whether an offer already exists (by `externalId`) before creating it. `updateOffer` renames an offer's title going forward — already-issued receipts are unchanged. Offer titles use the canonical `OfferTitle` shape (`{ type: \"localized\" | \"universal\", ... }`); `createOffer` also still accepts the deprecated legacy `{ value, localizationStrategy }` shape.\n\n**Departments decide the tax regime**, so `defaultDepartment` is the one field on `createOffer` worth stopping over. Every register is created with one department per regime — VAT, VAT-exempt, turnover tax, micro-enterprise — and they are numbered in that order, which makes `{ id: 1 }` the VAT one on every register whether or not the merchant owes VAT. Call `listDepartments()` once, read `taxRegime`, and use the id that matches how the business is actually registered. Booking a sale under the wrong regime is not rejected by anything, and a fiscal receipt can only be refunded and reissued, never corrected.\n\nSale items then leave `department` out and inherit the offer's, so the decision is made once per offer instead of once per line.\n\n```typescript\nconst [existing] = await vcr.listOffers({ externalId: \"sku-coffee\" });\nif (existing === undefined) {\n  await vcr.createOffer({\n    type: \"product\",\n    classifierCode: \"0901\",\n    title: { type: \"localized\", content: { hy: \"Սուրճ\" }, localizationStrategy: \"translation\" },\n    defaultMeasureUnit: \"pc\",\n    defaultDepartment: { id: 1 },\n    externalId: \"sku-coffee\",\n  });\n}\n```\n\n### Classifier search\n\n```typescript\nconst matches = await vcr.searchClassifier({\n  query: \"coffee\",\n  type: \"product\",\n  language: \"en\",\n});\n```\n\n### Exchange rate\n\n| Method                              | Endpoint             | Returns        |\n| ----------------------------------- | -------------------- | -------------- |\n| `getExchangeRate({ currency })`     | `GET /exchange-rate` | `ExchangeRate` |\n\nPreviews the AMD conversion rate VCR would apply to a foreign-currency sale registered now — the CBA mid-market rate published on the previous business day (HO-234-N). Read-only; it does not fiscalize anything. `currency` is a 3-letter ISO 4217 code (case-insensitive); `AMD` is rejected.\n\n```typescript\nconst rate = await vcr.getExchangeRate({ currency: \"USD\" });\n// { currency: \"USD\", ratePerUnit: 397.12, amount: 1, rateDate: \"2026-07-08\", ... }\nconst amdEquivalent = Number(usdPrice) * rate.ratePerUnit;\n```\n\n## Error handling\n\nAll SDK errors derive from `VCRError`. Catch the base class for a single handler, or narrow on the specific subclass.\n\n| Class                | Thrown when                                                                                              |\n| -------------------- | -------------------------------------------------------------------------------------------------------- |\n| `VCRApiError`        | Server returned a non-2xx with the unified `{ error, issues? }` envelope. Carries `status`, `body`, `url`. |\n| `VCRValidationError` | Response body did not match the expected schema (2xx or non-envelope error). Carries `issues` (Zod) and `raw`. |\n| `VCRNetworkError`    | Network-level failure: DNS, connection refused, abort, timeout. Wraps the underlying error in `cause`.   |\n\n```typescript\nimport {\n  VCRApiError,\n  VCRError,\n  VCRNetworkError,\n  VCRValidationError,\n} from \"@blob-solutions/vcr-am-sdk\";\n\ntry {\n  await vcr.registerSale(sale);\n} catch (error) {\n  if (error instanceof VCRApiError) {\n    console.error(error.status, error.body.error, error.body.issues);\n  } else if (error instanceof VCRValidationError) {\n    console.error(\"unexpected response shape\", error.issues, error.raw);\n  } else if (error instanceof VCRNetworkError) {\n    console.error(\"network failure\", error.cause);\n  } else if (error instanceof VCRError) {\n    console.error(\"VCR error\", error);\n  } else {\n    throw error;\n  }\n}\n```\n\n## Cancellation and timeouts\n\nThe SDK respects the standard `AbortSignal`:\n\n```typescript\nconst controller = new AbortController();\nsetTimeout(() => controller.abort(), 5_000);\n\nawait vcr.getSale(42, { signal: controller.signal });\n```\n\nThe whole request flow — connection, body read, schema parse — is bounded by a single timer. Default timeout is 30 seconds; configurable per-client (`timeoutMs`) and per-request (`{ timeoutMs }`). Pass `null` to disable.\n\n## Idempotency and retries\n\n**The SDK does not retry.** This is intentional: a blind retry of `registerSale` can double-fiscalize a receipt, and a duplicate fiscal receipt is a real tax document — it cannot be deleted, only refunded.\n\nTo retry a document-creating call safely, pass `idempotencyKey`:\n\n```typescript\nawait vcr.registerSale(sale, { idempotencyKey: `order-${order.id}` });\n```\n\nThe key makes the retry a replay: the original response comes back verbatim and nothing new is created. This covers the case that bites hardest — a 502 from an unreachable tax service, where the sale **was** saved on our side and a naive retry would register a second one.\n\nThe SDK deliberately does not generate the key for you. It only helps if the value stays **stable across your retries**, so it has to come from something you own — an order id, a job id — not a fresh UUID per call.\n\nRules:\n\n- Same key, same body -> the original response, with an `Idempotent-Replay: true` header.\n- Same key, different body -> `422`. Use one key per distinct operation.\n- Same key while the first call is still running -> `409`. Retry shortly, with the same key.\n- Keys are scoped per register and per endpoint, and are retained for 24 hours.\n\nReads (`whoami`, `getSale`, `getPrepayment`, `listPrepayments`, `listCashiers`, `listOffers`, `getOffer`, `listDepartments`, `searchClassifier`, `getExchangeRate`) are always safe to repeat and need no key.\n\n## When the tax service is unreachable\n\nA `502` does **not** always mean nothing happened. When SRC was merely unreachable, VCR still saved the document and queued it for automatic resubmission — the error then carries a `pending` handle, and resending would fiscalize a second receipt.\n\n```typescript\nimport { VCRApiError } from \"@blob-solutions/vcr-am-sdk\";\n\ntry {\n  await vcr.registerSale(sale, { idempotencyKey: `order-${order.id}` });\n} catch (error) {\n  if (error instanceof VCRApiError && error.body.pending !== undefined) {\n    const { type, id } = error.body.pending;\n    // Nothing was lost. Record the id and check back later; do not resend.\n    await queue.push({ type, id });\n    return;\n  }\n  throw error;\n}\n```\n\n`pending` absent on an error means nothing was created, and the call can be repeated normally.\n\nTo find out how a queued document ended up, read it back and check `srcStatus`:\n\n```typescript\nconst sale = await vcr.getSale(id);\n\nswitch (sale.srcStatus) {\n  case \"accepted\":\n    return markFiscalized(sale.receipt);\n  case \"pending\":\n    return checkAgainLater(); // VCR is still retrying; do not resend\n  case \"rejected\":\n    return escalate(\"SRC refused the document — the payload has to change\");\n  case \"needs_decision\":\n    return escalate(\"automatic retries gave up after 24h\");\n}\n```\n\nMost queued documents clear within minutes. `pending` is the state that most looks like failure and most must not be treated as one — resending is the one action that turns a recoverable outage into a duplicate tax document.\n\n## Browser usage\n\nThe IIFE bundle ships at `lib/index.global.js` and exposes a global `vcrsdk`:\n\n```html\n<script src=\"https://unpkg.com/@blob-solutions/vcr-am-sdk/lib/index.global.js\"></script>\n<script>\n  const vcr = new vcrsdk.VCRClient(\"YOUR_KEY\");\n</script>\n```\n\nFor ESM bundlers (Vite, esbuild, Webpack 5+), the package's `\"exports\"` map will pick the right entry automatically — no special config needed.\n\n## Development\n\n```bash\npnpm install\npnpm check         # lint + typecheck + tests\npnpm test          # vitest run\npnpm test:watch\npnpm test:coverage\npnpm typecheck\npnpm lint          # biome + custom no-`as`-cast check\npnpm lint:fix\npnpm build         # ESM + CJS + IIFE + .d.ts via tsup\npnpm lint:package  # publint + are-the-types-wrong\n```\n\n## Versioning\n\n[Semantic Versioning](https://semver.org). See [CHANGELOG.md](CHANGELOG.md) for breaking-change notes; in particular, **0.10.0 fixes two silent bugs** in 0.8.0 (`SaleAmount.prePayment` → `prepayment`, and `searchClassifierCategory` now hits the correct endpoint).\n\n## License\n\nISC © Alex Kraiz\n","readmeFilename":"README.md"}