{"_id":"@ejosterberg/medusa-plugin-opensalestax","_rev":"8-c3efb8347fab3f79b7b302707e36bfbd","name":"@ejosterberg/medusa-plugin-opensalestax","dist-tags":{"latest":"0.4.4"},"versions":{"0.1.0":{"name":"@ejosterberg/medusa-plugin-opensalestax","version":"0.1.0","keywords":["medusa","medusa-plugin","medusa-plugin-tax","tax","sales-tax","us-tax","opensalestax"],"author":{"name":"Eric Osterberg","email":"ejosterberg@gmail.com"},"license":"Apache-2.0","_id":"@ejosterberg/medusa-plugin-opensalestax@0.1.0","maintainers":[{"name":"ejosterberg","email":"ejosterberg@gmail.com"}],"homepage":"https://github.com/ejosterberg/opensalestax-medusa","bugs":{"url":"https://github.com/ejosterberg/opensalestax-medusa/issues"},"dist":{"shasum":"63fa7cc832feac05b7b05ee8685ffb13c83fd845","tarball":"https://registry.npmjs.org/@ejosterberg/medusa-plugin-opensalestax/-/medusa-plugin-opensalestax-0.1.0.tgz","fileCount":12,"integrity":"sha512-QJ1UpcP6i0jq8DCSnaL8z3CRvQcSKSM+ll02L8jons898epJNNAENaPJeMJSl0SfYHcB9MoYVKWTRqMe0gWNOA==","signatures":[{"sig":"MEQCIGEMtdC3Ovyyf0OIRtLEHJM6TTrJ6tTkdelbYFFP2G4rAiA7e3Y7HJ+14UcVTknrZE/o2IMIPC55gqIn0f7ODmQmUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56202},"engines":{"node":">=20"},"exports":{".":"./.medusa/server/providers/opensalestax/index.js","./providers/*":"./.medusa/server/providers/*/index.js","./package.json":"./package.json"},"gitHead":"f4441ce9e8493bd0d34915005221ba7c34746e9a","scripts":{"dev":"medusa plugin:develop","lint":"tsc --noEmit","test":"npm run test:unit","build":"medusa plugin:build","test:unit":"jest --testPathPattern=tests/unit --runInBand --forceExit","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"ejosterberg","email":"ejosterberg@gmail.com"},"repository":{"url":"git+https://github.com/ejosterberg/opensalestax-medusa.git","type":"git"},"_npmVersion":"11.4.2","description":"OpenSalesTax tax provider for Medusa v2 — destination-based US sales tax via a self-hosted Apache 2.0 engine.","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@swc/core":"^1.7.28","@swc/jest":"^0.2.39","typescript":"^5.6.2","@types/jest":"^29.5.12","@types/node":"^20.0.0","@medusajs/cli":"2.14.2","@medusajs/medusa":"2.14.2","@medusajs/admin-sdk":"2.14.2","@medusajs/framework":"2.14.2","@medusajs/test-utils":"2.14.2"},"peerDependencies":{"@medusajs/medusa":"^2.13.0","@medusajs/framework":"^2.13.0"},"_npmOperationalInternal":{"tmp":"tmp/medusa-plugin-opensalestax_0.1.0_1778030185098_0.754146482970629","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ejosterberg/medusa-plugin-opensalestax","version":"0.2.0","keywords":["medusa","medusa-plugin","medusa-plugin-tax","tax","sales-tax","us-tax","opensalestax"],"author":{"name":"Eric Osterberg","email":"ejosterberg@gmail.com"},"license":"Apache-2.0","_id":"@ejosterberg/medusa-plugin-opensalestax@0.2.0","maintainers":[{"name":"ejosterberg","email":"ejosterberg@gmail.com"}],"homepage":"https://github.com/ejosterberg/opensalestax-medusa","bugs":{"url":"https://github.com/ejosterberg/opensalestax-medusa/issues"},"dist":{"shasum":"3a3336bb24c129f7aaeefa75e4eb1ddc0f450aee","tarball":"https://registry.npmjs.org/@ejosterberg/medusa-plugin-opensalestax/-/medusa-plugin-opensalestax-0.2.0.tgz","fileCount":12,"integrity":"sha512-I4rF82dNqe1xaTkVNYS9FMHcvJr8VX03QTtQo4M/BD7VtMe1+5kQ7FSLV4BJdqSUiUl06a8Km8qUzXubPjZNNg==","signatures":[{"sig":"MEUCIGu4S7SZ7yEhHcgW0QTNYVC47vCZdPvTPNWD8FMrDo42AiEAklz6qitiTQl3I6rtLVQhQ5ql+y6PB6Z0viNFqI5RzxQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71840},"engines":{"node":">=20"},"exports":{".":"./.medusa/server/providers/opensalestax/index.js","./providers/*":"./.medusa/server/providers/*/index.js","./package.json":"./package.json"},"gitHead":"8fdda90ff44136d8311e97b0f0ef030c76569145","scripts":{"dev":"medusa plugin:develop","lint":"tsc --noEmit","test":"npm run test:unit","build":"medusa plugin:build","test:unit":"jest --testPathPattern=tests/unit --runInBand --forceExit","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"ejosterberg","email":"ejosterberg@gmail.com"},"repository":{"url":"git+https://github.com/ejosterberg/opensalestax-medusa.git","type":"git"},"_npmVersion":"11.4.2","description":"OpenSalesTax tax provider for Medusa v2 — destination-based US sales tax via a self-hosted Apache 2.0 engine.","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@swc/core":"^1.7.28","@swc/jest":"^0.2.39","typescript":"^5.6.2","@types/jest":"^29.5.12","@types/node":"^20.0.0","@medusajs/cli":"2.14.2","@medusajs/medusa":"2.14.2","@medusajs/admin-sdk":"2.14.2","@medusajs/framework":"2.14.2","@medusajs/test-utils":"2.14.2"},"peerDependencies":{"@medusajs/medusa":"^2.13.0","@medusajs/framework":"^2.13.0"},"_npmOperationalInternal":{"tmp":"tmp/medusa-plugin-opensalestax_0.2.0_1778033733790_0.15952436850112361","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ejosterberg/medusa-plugin-opensalestax","version":"0.3.0","keywords":["medusa","medusa-plugin","medusa-plugin-tax","tax","sales-tax","us-tax","opensalestax"],"author":{"name":"Eric Osterberg","email":"ejosterberg@gmail.com"},"license":"Apache-2.0","_id":"@ejosterberg/medusa-plugin-opensalestax@0.3.0","maintainers":[{"name":"ejosterberg","email":"ejosterberg@gmail.com"}],"homepage":"https://github.com/ejosterberg/opensalestax-medusa","bugs":{"url":"https://github.com/ejosterberg/opensalestax-medusa/issues"},"dist":{"shasum":"a500f3b97d1d19cdf2a8e07ab86f664ead99fbbd","tarball":"https://registry.npmjs.org/@ejosterberg/medusa-plugin-opensalestax/-/medusa-plugin-opensalestax-0.3.0.tgz","fileCount":10,"integrity":"sha512-f8/V8TZsALs3EV/6mzY7+5tJcX3BSEq5c2sYvymH0QduC+yHokrT5CoM03OrVnJ+pkLImDI1QEvCbWn2JKu7Tw==","signatures":[{"sig":"MEQCIDizCVdsCpZ0G3W8ZMNDxvXRA3ikjd6X6K+g5mBN1mecAiALtYubOwiJo56/0gLv02bh+2S6AUljIe4TmUu94Qsuow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67524},"engines":{"node":">=20"},"exports":{".":"./.medusa/server/providers/opensalestax/index.js","./providers/*":"./.medusa/server/providers/*/index.js","./package.json":"./package.json"},"gitHead":"fbcd1cf74b1266cd3f0a741cd949de3e7949d1fa","scripts":{"dev":"medusa plugin:develop","lint":"tsc --noEmit","test":"npm run test:unit","build":"medusa plugin:build","test:unit":"jest --testPathPattern=tests/unit --runInBand --forceExit","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"ejosterberg","email":"ejosterberg@gmail.com"},"repository":{"url":"git+https://github.com/ejosterberg/opensalestax-medusa.git","type":"git"},"_npmVersion":"11.4.2","description":"OpenSalesTax tax provider for Medusa v2 — destination-based US sales tax via a self-hosted Apache 2.0 engine.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@ejosterberg/opensalestax":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@swc/core":"^1.7.28","@swc/jest":"^0.2.39","typescript":"^5.6.2","@types/jest":"^29.5.12","@types/node":"^20.0.0","@medusajs/cli":"2.14.2","@medusajs/medusa":"2.14.2","@medusajs/admin-sdk":"2.14.2","@medusajs/framework":"2.14.2","@medusajs/test-utils":"2.14.2"},"peerDependencies":{"@medusajs/medusa":"^2.13.0","@medusajs/framework":"^2.13.0"},"_npmOperationalInternal":{"tmp":"tmp/medusa-plugin-opensalestax_0.3.0_1778857409839_0.2912725302351733","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@ejosterberg/medusa-plugin-opensalestax","version":"0.3.1","keywords":["medusa","medusa-plugin","medusa-plugin-tax","tax","sales-tax","us-tax","opensalestax"],"author":{"name":"Eric Osterberg","email":"ejosterberg@gmail.com"},"license":"(Apache-2.0 OR GPL-2.0-or-later)","_id":"@ejosterberg/medusa-plugin-opensalestax@0.3.1","maintainers":[{"name":"ejosterberg","email":"ejosterberg@gmail.com"}],"homepage":"https://github.com/ejosterberg/opensalestax-medusa","bugs":{"url":"https://github.com/ejosterberg/opensalestax-medusa/issues"},"dist":{"shasum":"ba1e42f909e43a03c262fb37310e1774cf851fdb","tarball":"https://registry.npmjs.org/@ejosterberg/medusa-plugin-opensalestax/-/medusa-plugin-opensalestax-0.3.1.tgz","fileCount":10,"integrity":"sha512-pLQt+ATvBseuqpYxpPd+KwHuy51U4oCFYBcClNBDqXXmI7IVnmyzX7yRaxhvhtheLAXBNYPCQvQIype5ylYuzQ==","signatures":[{"sig":"MEUCIERNZWhYT9lodkc1nQgmzmHn5j28ZLqLOqABoyh9lUTHAiEAoH//XQXNvg0pWGTj0brymRB7Wq9rYpCSYYQvbC3yuJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ejosterberg%2fmedusa-plugin-opensalestax@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57497},"engines":{"node":">=20"},"exports":{".":"./.medusa/server/providers/opensalestax/index.js","./providers/*":"./.medusa/server/providers/*/index.js","./package.json":"./package.json"},"gitHead":"d26da57ffe9e23b5535e2f3011fe3c28db2ecaf5","scripts":{"dev":"medusa plugin:develop","lint":"tsc --noEmit","test":"npm run test:unit","build":"medusa plugin:build","test:unit":"jest --testPathPattern=tests/unit --runInBand --forceExit","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f338633-e208-4a8d-bc93-d6dd151e3c1a"}},"repository":{"url":"git+https://github.com/ejosterberg/opensalestax-medusa.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenSalesTax tax provider for Medusa v2 — destination-based US sales tax via a self-hosted Apache 2.0 engine.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@ejosterberg/opensalestax":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@swc/core":"^1.7.28","@swc/jest":"^0.2.39","typescript":"^5.6.2","@types/jest":"^29.5.12","@types/node":"^20.0.0","@medusajs/cli":"2.14.2","@medusajs/medusa":"2.14.2","@medusajs/admin-sdk":"2.14.2","@medusajs/framework":"2.14.2","@medusajs/test-utils":"2.14.2"},"peerDependencies":{"@medusajs/medusa":"^2.13.0","@medusajs/framework":"^2.13.0"},"_npmOperationalInternal":{"tmp":"tmp/medusa-plugin-opensalestax_0.3.1_1779040076206_0.1896874024336166","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@ejosterberg/medusa-plugin-opensalestax","version":"0.4.0","keywords":["medusa","medusa-plugin","medusa-plugin-tax","tax","sales-tax","us-tax","opensalestax"],"author":{"name":"Eric Osterberg","email":"ejosterberg@gmail.com"},"license":"(Apache-2.0 OR GPL-2.0-or-later)","_id":"@ejosterberg/medusa-plugin-opensalestax@0.4.0","maintainers":[{"name":"ejosterberg","email":"ejosterberg@gmail.com"}],"homepage":"https://github.com/ejosterberg/opensalestax-medusa","bugs":{"url":"https://github.com/ejosterberg/opensalestax-medusa/issues"},"dist":{"shasum":"e04cd2e653ea336fb6564657849b1fbb0ca3626a","tarball":"https://registry.npmjs.org/@ejosterberg/medusa-plugin-opensalestax/-/medusa-plugin-opensalestax-0.4.0.tgz","fileCount":10,"integrity":"sha512-x0VqA1yJdYIckPfChplYGnlpm1DFZr6cgpAl6pFX98R5QTxOoAuydovC8iEInn6kDcLo2wXRXEbgNVf2VQzkGg==","signatures":[{"sig":"MEUCIF0nidMvRAqo7ypRDUQKwiVcnnewYSBoRjR82A7zQHW3AiEA2mwX3Yp8VGSVN3b1iJ7O7/nAwyGz+Scz+GhTLz/VWF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ejosterberg%2fmedusa-plugin-opensalestax@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64274},"engines":{"node":">=20"},"exports":{".":"./.medusa/server/providers/opensalestax/index.js","./providers/*":"./.medusa/server/providers/*/index.js","./package.json":"./package.json"},"gitHead":"ece2ccf31f401e3c369ebfb7b5617d89baf153f0","scripts":{"dev":"medusa plugin:develop","lint":"tsc --noEmit","test":"npm run test:unit","build":"medusa plugin:build","test:unit":"jest --testPathPattern=tests/unit --runInBand --forceExit","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f338633-e208-4a8d-bc93-d6dd151e3c1a"}},"repository":{"url":"git+https://github.com/ejosterberg/opensalestax-medusa.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenSalesTax tax provider for Medusa v2 — destination-based US sales tax via a self-hosted Apache 2.0 engine.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@ejosterberg/opensalestax":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@swc/core":"^1.7.28","@swc/jest":"^0.2.39","typescript":"^5.6.2","@types/jest":"^29.5.12","@types/node":"^20.0.0","@medusajs/cli":"2.14.2","@medusajs/medusa":"2.14.2","@medusajs/admin-sdk":"2.14.2","@medusajs/framework":"2.14.2","@medusajs/test-utils":"2.14.2"},"peerDependencies":{"@medusajs/medusa":"^2.13.0","@medusajs/framework":"^2.13.0"},"_npmOperationalInternal":{"tmp":"tmp/medusa-plugin-opensalestax_0.4.0_1779164498135_0.46247130316862894","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@ejosterberg/medusa-plugin-opensalestax","version":"0.4.1","keywords":["medusa","medusa-plugin","medusa-plugin-tax","tax","sales-tax","us-tax","opensalestax"],"author":{"name":"Eric Osterberg","email":"ejosterberg@gmail.com"},"license":"(Apache-2.0 OR GPL-2.0-or-later)","_id":"@ejosterberg/medusa-plugin-opensalestax@0.4.1","maintainers":[{"name":"ejosterberg","email":"ejosterberg@gmail.com"}],"homepage":"https://github.com/ejosterberg/opensalestax-medusa","bugs":{"url":"https://github.com/ejosterberg/opensalestax-medusa/issues"},"dist":{"shasum":"0682117a4a6cc108e131ab77aa62c09cd2a597a7","tarball":"https://registry.npmjs.org/@ejosterberg/medusa-plugin-opensalestax/-/medusa-plugin-opensalestax-0.4.1.tgz","fileCount":10,"integrity":"sha512-naBcNsQPU6XBpbiYhzSk8Qcjkn/o/hGHT00lOyoCtObw2n9fnrbBFaE0Hke7eThqljlGqL4V8z/kvMpeB6Lg3Q==","signatures":[{"sig":"MEUCIQCMEn4dOSQkvkmG06tIsTXzClCpieqKD/Crl5qJie/NVAIgQzZOJ9R7Mmu2FSmMX1JU2r+MfjwxcKJA/EiAweCxsvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ejosterberg%2fmedusa-plugin-opensalestax@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72514},"engines":{"node":">=20"},"exports":{".":"./.medusa/server/providers/opensalestax/index.js","./providers/*":"./.medusa/server/providers/*/index.js","./package.json":"./package.json"},"gitHead":"e635eecef44771e35e6dd86072dc4bdafa183390","scripts":{"dev":"medusa plugin:develop","lint":"tsc --noEmit","test":"npm run test:unit","build":"medusa plugin:build","test:unit":"jest --testPathPattern=tests/unit --runInBand --forceExit","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f338633-e208-4a8d-bc93-d6dd151e3c1a"}},"repository":{"url":"git+https://github.com/ejosterberg/opensalestax-medusa.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenSalesTax tax provider for Medusa v2 — destination-based US sales tax via a self-hosted Apache 2.0 engine.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@ejosterberg/opensalestax":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@swc/core":"^1.7.28","@swc/jest":"^0.2.39","typescript":"^5.6.2","@types/jest":"^29.5.12","@types/node":"^20.0.0","@types/react":"^18.3.28","@medusajs/cli":"2.14.2","@medusajs/medusa":"2.14.2","@medusajs/admin-sdk":"2.14.2","@medusajs/framework":"2.14.2","@medusajs/test-utils":"2.14.2"},"peerDependencies":{"@medusajs/medusa":"^2.13.0","@medusajs/framework":"^2.13.0"},"_npmOperationalInternal":{"tmp":"tmp/medusa-plugin-opensalestax_0.4.1_1779166181855_0.944122159281017","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@ejosterberg/medusa-plugin-opensalestax","version":"0.4.2","keywords":["medusa","medusa-plugin","medusa-plugin-tax","tax","sales-tax","us-tax","opensalestax"],"author":{"name":"Eric Osterberg","email":"ejosterberg@gmail.com"},"license":"(Apache-2.0 OR GPL-2.0-or-later)","_id":"@ejosterberg/medusa-plugin-opensalestax@0.4.2","maintainers":[{"name":"ejosterberg","email":"ejosterberg@gmail.com"}],"homepage":"https://github.com/ejosterberg/opensalestax-medusa","bugs":{"url":"https://github.com/ejosterberg/opensalestax-medusa/issues"},"dist":{"shasum":"e6a0f46c941b6e50863712fab110c98134b3637e","tarball":"https://registry.npmjs.org/@ejosterberg/medusa-plugin-opensalestax/-/medusa-plugin-opensalestax-0.4.2.tgz","fileCount":10,"integrity":"sha512-31b5vbmQt8wmS2IpiARLF/AUtFIGXc1OqRqz0AoF3qUP6OUXD/pS6ZHON6bpUNEP8USpAZvyDITdODwRx95YwQ==","signatures":[{"sig":"MEYCIQDvAA8AgHWE4ujwr4qi1xw0+r4VahN9GJdNFTMeASLGwgIhAIpMoL7+LiNXvhKqZ9TJ7pZTBwWRv6M7sygNqDbqtRej","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ejosterberg%2fmedusa-plugin-opensalestax@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72978},"engines":{"node":">=20"},"exports":{".":"./.medusa/server/providers/opensalestax/index.js","./providers/*":"./.medusa/server/providers/*/index.js","./package.json":"./package.json"},"gitHead":"39dd0eec9b70d0e9a88d0b242d2b6a92ce0bbfc0","scripts":{"dev":"medusa plugin:develop","lint":"tsc --noEmit","test":"npm run test:unit","build":"medusa plugin:build","test:unit":"jest --testPathPattern=tests/unit --runInBand --forceExit","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f338633-e208-4a8d-bc93-d6dd151e3c1a"}},"repository":{"url":"git+https://github.com/ejosterberg/opensalestax-medusa.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenSalesTax tax provider for Medusa v2 — destination-based US sales tax via a self-hosted Apache 2.0 engine.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@ejosterberg/opensalestax":"^0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","@swc/core":"^1.7.28","@swc/jest":"^0.2.39","typescript":"^5.6.2","@types/jest":"^29.5.12","@types/node":"^20.0.0","@types/react":"^18.3.28","@medusajs/cli":"2.14.2","@medusajs/medusa":"2.14.2","@medusajs/admin-sdk":"2.14.2","@medusajs/framework":"2.14.2","@medusajs/test-utils":"2.14.2"},"peerDependencies":{"@medusajs/medusa":"^2.13.0","@medusajs/framework":"^2.13.0"},"_npmOperationalInternal":{"tmp":"tmp/medusa-plugin-opensalestax_0.4.2_1779167481120_0.5102782159082215","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@ejosterberg/medusa-plugin-opensalestax","version":"0.4.4","description":"OpenSalesTax tax provider for Medusa v2 — destination-based US sales tax via a self-hosted Apache 2.0 engine.","license":"(Apache-2.0 OR GPL-2.0-or-later)","author":{"name":"Eric Osterberg","email":"ejosterberg@gmail.com"},"homepage":"https://github.com/ejosterberg/opensalestax-medusa","repository":{"type":"git","url":"git+https://github.com/ejosterberg/opensalestax-medusa.git"},"keywords":["medusa","medusa-plugin","medusa-plugin-tax","tax","sales-tax","us-tax","opensalestax"],"exports":{"./package.json":"./package.json","./providers/*":"./.medusa/server/providers/*/index.js",".":"./.medusa/server/providers/opensalestax/index.js"},"scripts":{"build":"medusa plugin:build","dev":"medusa plugin:develop","prepublishOnly":"medusa plugin:build","test:unit":"jest --testPathPattern=tests/unit --runInBand --forceExit","test":"npm run test:unit","lint":"tsc --noEmit"},"devDependencies":{"@medusajs/admin-sdk":"2.14.2","@medusajs/cli":"2.14.2","@medusajs/framework":"2.14.2","@medusajs/medusa":"2.14.2","@medusajs/test-utils":"2.14.2","@swc/core":"^1.7.28","@swc/jest":"^0.2.39","@types/jest":"^29.5.12","@types/node":"^20.0.0","@types/react":"^18.3.28","jest":"^29.7.0","typescript":"^5.6.2"},"dependencies":{"@ejosterberg/opensalestax":"^0.3.0"},"peerDependencies":{"@medusajs/framework":"^2.13.0","@medusajs/medusa":"^2.13.0"},"engines":{"node":">=20"},"gitHead":"d2e144304267bacc001fa13d1ec2232f10a56625","_id":"@ejosterberg/medusa-plugin-opensalestax@0.4.4","bugs":{"url":"https://github.com/ejosterberg/opensalestax-medusa/issues"},"_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-w+LffcMC6Co69kbGMbh79TbP9uFqUjHrb1CPmvA+Z+rAxKO7GSrIBtwsl76YnwxWTJVBuxrPMezXkUJGXiZlCQ==","shasum":"a0e147bc1814af88dd7f4f3ebd1768878c7acbd2","tarball":"https://registry.npmjs.org/@ejosterberg/medusa-plugin-opensalestax/-/medusa-plugin-opensalestax-0.4.4.tgz","fileCount":10,"unpackedSize":73933,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ejosterberg%2fmedusa-plugin-opensalestax@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCxQ+Rari5a/NMsfMqKeigwoUp9Y90tLGj3HEYJa9BUyAIhANbSzkizA5hDmHNhNQh0dESNAH15MwSUsKPVPcpt25Lc"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f338633-e208-4a8d-bc93-d6dd151e3c1a"}},"directories":{},"maintainers":[{"name":"ejosterberg","email":"ejosterberg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/medusa-plugin-opensalestax_0.4.4_1779216948072_0.25768771777967414"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-06T01:16:24.976Z","modified":"2026-05-19T18:55:48.544Z","0.1.0":"2026-05-06T01:16:25.337Z","0.2.0":"2026-05-06T02:15:33.964Z","0.3.0":"2026-05-15T15:03:29.999Z","0.3.1":"2026-05-17T17:47:56.350Z","0.4.0":"2026-05-19T04:21:38.334Z","0.4.1":"2026-05-19T04:49:41.983Z","0.4.2":"2026-05-19T05:11:21.304Z","0.4.4":"2026-05-19T18:55:48.225Z"},"bugs":{"url":"https://github.com/ejosterberg/opensalestax-medusa/issues"},"author":{"name":"Eric Osterberg","email":"ejosterberg@gmail.com"},"license":"(Apache-2.0 OR GPL-2.0-or-later)","homepage":"https://github.com/ejosterberg/opensalestax-medusa","keywords":["medusa","medusa-plugin","medusa-plugin-tax","tax","sales-tax","us-tax","opensalestax"],"repository":{"type":"git","url":"git+https://github.com/ejosterberg/opensalestax-medusa.git"},"description":"OpenSalesTax tax provider for Medusa v2 — destination-based US sales tax via a self-hosted Apache 2.0 engine.","maintainers":[{"name":"ejosterberg","email":"ejosterberg@gmail.com"}],"readme":"# OpenSalesTax for Medusa\n\n> Replace TaxJar / Avalara with self-hosted [OpenSalesTax](https://github.com/ejosterberg/open-sales-tax). Free, open-source, US sales-tax calculation for Medusa v2.\n\n[![npm](https://img.shields.io/npm/v/@ejosterberg/medusa-plugin-opensalestax.svg)](https://www.npmjs.com/package/@ejosterberg/medusa-plugin-opensalestax) [![npm downloads](https://img.shields.io/npm/dm/@ejosterberg/medusa-plugin-opensalestax.svg)](https://www.npmjs.com/package/@ejosterberg/medusa-plugin-opensalestax) [![License](https://img.shields.io/badge/license-Apache%202.0%20OR%20GPL%202.0--or--later-blue)](LICENSE) [![Medusa](https://img.shields.io/badge/medusa-v2.13%2B-purple)](package.json) [![Node](https://img.shields.io/badge/node-%E2%89%A520-339933)](package.json)\n\n**Status:** v0.2.0. Tested against Medusa v2.14.2 + OpenSalesTax engine v0.54. **30 unit tests** + live smoke test + live Medusa integration test on a Proxmox VM. v0.2 adds **caching** (~1600x faster on repeat calls during checkout) and **shipping-line tax** (default `general` category, configurable, opt-out-able).\n\n## What this saves you\n\nMost Medusa tax integrations point at paid services:\n\n| Service | Pricing |\n|---|---:|\n| **Avalara AvaTax** | enterprise pricing |\n| **TaxJar** | from $19/mo + transaction fees |\n| **Stripe Tax** | 0.5% per transaction |\n| **OpenSalesTax + this plugin** | $0 software cost, self-hosted |\n\nYou run a small server for the OpenSalesTax engine; this plugin calls into it from Medusa's tax-provider machinery. Tax math runs locally on infrastructure you own.\n\n## Install\n\n```bash\nyarn add @ejosterberg/medusa-plugin-opensalestax\n# or\nnpm install @ejosterberg/medusa-plugin-opensalestax\n```\n\nThe plugin needs the OpenSalesTax engine running somewhere reachable from your Medusa server. The engine is a Docker container; see [the engine's quickstart](https://github.com/ejosterberg/open-sales-tax) for the 5-minute setup.\n\n## Configure\n\nAdd the provider under the Tax Module's `providers` array in `medusa-config.ts`:\n\n```ts\nimport { defineConfig } from \"@medusajs/framework/utils\"\n\nmodule.exports = defineConfig({\n  modules: [\n    {\n      resolve: \"@medusajs/medusa/tax\",\n      options: {\n        providers: [\n          {\n            resolve: \"@ejosterberg/medusa-plugin-opensalestax/providers/opensalestax\",\n            id: \"opensalestax\",\n            options: {\n              apiBaseUrl: process.env.OPENSALESTAX_URL!,\n              apiKey:     process.env.OPENSALESTAX_API_KEY, // optional\n\n              // Optional: map Medusa product_type_id → OST engine category.\n              // OST categories: \"general\" | \"clothing\" | \"groceries\" |\n              //                 \"prescription_drugs\" | \"prepared_food\" |\n              //                 \"digital_goods\"\n              // Empty string = \"skip this line — non-taxable\"\n              defaultCategory: \"general\",\n              categoryByProductTypeId: {\n                \"ptyp_clothing\":   \"clothing\",\n                \"ptyp_groceries\":  \"groceries\",\n                \"ptyp_giftcards\":  \"\",\n              },\n\n              // v0.2: shipping-line tax. Defaults to \"general\"; set to \"\"\n              // to skip shipping tax entirely; or pick another OST category.\n              shippingCategory: \"general\",\n\n              // v0.2: cache TTL in seconds. Default 60. Set to 0 to disable.\n              // Cache uses Medusa's ICacheService from the container.\n              cacheTtlSeconds: 60,\n\n              // v0.4 (CP-3): per-state nexus filter. When non-empty,\n              // the provider short-circuits the engine call for carts\n              // shipping to states not in this list (returns [] —\n              // Medusa treats as \"no tax\"). Unset / empty array =\n              // engine called for every cart (v0.3 behavior).\n              // Accepts an array of 2-letter codes OR a comma-separated\n              // string (e.g. \"MN,WI,IA\") for env-var compatibility.\n              nexusStates: [\"MN\", \"WI\", \"IA\"],\n\n              timeoutMs: 5000, // optional, default 5000\n            },\n          },\n        ],\n      },\n    },\n  ],\n})\n```\n\nThen in the Medusa Admin, assign the provider (`tp_opensalestax_opensalestax`) to a Tax Region (e.g., your \"United States\" region).\n\n## Verifying it works\n\nDrop a $100 product into a cart with a Minneapolis MN shipping address (ZIP 55401). The order summary should show six tax lines summing to $9.03:\n\n| Type     | Jurisdiction                              | Rate    | Tax     |\n|----------|-------------------------------------------|---------|---------|\n| state    | Minnesota                                 | 6.875%  | $6.88   |\n| county   | Hennepin County                           | 0.150%  | $0.15   |\n| city     | Minneapolis                               | 0.500%  | $0.50   |\n| district | Hennepin County Transit Sales Tax         | 0.500%  | $0.50   |\n| district | Metro Area Transportation Sales Tax       | 0.750%  | $0.75   |\n| district | Metro Area Sales and Use Tax for Housing  | 0.250%  | $0.25   |\n|          |                                           | **9.025%** | **$9.03** |\n\nEach jurisdiction shows up as its own line in the order — useful for audit reconciliation. TaxJar / Avalara show one rolled-up number; OpenSalesTax shows you exactly where every penny went.\n\n## How it works\n\n1. Customer adds a US-shipping address to their cart.\n2. Medusa's Tax Module calls `OpenSalesTaxProvider.getTaxLines(items, shipping, context)`.\n3. The provider builds a payload of taxable line items with their pre-tax amounts and OST categories.\n4. Provider calls `POST /v1/calculate` on your engine.\n5. Engine returns per-jurisdiction tax breakdown (state, county, city, special districts).\n6. Provider returns one `ItemTaxLineDTO` per `(line_item × jurisdiction)` to Medusa.\n7. Medusa sums them and renders them in the cart, checkout, and order summary.\n\n### Country / currency gating\n\n- **Non-US destinations** (anything except `country_code === \"US\"`) → returns `[]` (no tax line). Engine is US-only.\n- **Non-USD line items** (`currency_code !== \"usd\"`) → that line is skipped. The engine does not handle non-USD amounts.\n- **Unparseable ZIP codes** → returns `[]`.\n\nThese are silent, fail-soft skips — no exceptions thrown, no checkout interruption.\n\n### Engine errors\n\nIf the engine is unreachable, returns 5xx, or times out, the provider logs the error and returns `[]`. **Returning empty means \"no tax line\"** — don't throw, since Medusa surfaces exceptions to the customer mid-checkout.\n\nYou should monitor your engine's uptime independently. The companion engine project ships with a `/v1/health` endpoint and a Docker healthcheck.\n\n## What's new in v0.4.0\n\n- ✅ **Per-state nexus filter (CP-3).** New `nexusStates` provider option. Most US merchants only have nexus in a small set of states; without a filter, every cart goes through the engine even when the merchant has no obligation to collect for that destination. Setting `nexusStates: [\"MN\", \"WI\", \"IA\"]` short-circuits the engine for any other destination — no RTT, no spurious tax lines. Filter is opt-in: omit or pass `[]` and behavior is identical to v0.3. Brings Medusa in line with WooCom v0.5, Vendure v1.2, and Odoo v0.3.\n\n## What's new in v0.2.0\n\n- ✅ **Caching wrap.** Engine responses are cached under a content-addressed key with a configurable TTL (default 60s). The realistic checkout pattern — customer types ZIP, Medusa recomputes cart totals 5 times — now produces 1 engine call instead of 5. Verified ~1600x speedup on repeat calls in our live test (1603ms → 0ms). Cache uses Medusa's `ICacheService` if registered; degrades gracefully to no-cache if the host hasn't configured one.\n- ✅ **Shipping-line tax.** Provider now sends shipping lines through the engine alongside item lines. Configurable via the `shippingCategory` option: defaults to `\"general\"`, set to `\"\"` to skip shipping tax entirely, or pick any of the 6 OST categories. Returned as `ShippingTaxLineDTO` so Medusa renders shipping tax distinctly in the order summary.\n\n## What's NOT yet shipping (planned for v0.3+)\n\n- **Refund / return tax integration.** Medusa's return flow has its own tax path; we don't yet capture per-order breakdown for refund proration. (The WooCommerce sibling connector ships this in its v0.3 + v0.4.1.)\n- **Automated CI integration test using `moduleIntegrationTestRunner`.** Turning the manual VM-based integration test into a CI-runnable Jest suite requires a Postgres service container in the GitHub Actions matrix. Designed but deferred.\n- **Per-order breakdown storage.** Like the WooCommerce connector's per-order audit table; needs research into Medusa's order-meta patterns.\n\n## Compatibility\n\n- **Medusa** v2.13+ (peerDependency range; tested against v2.14.2)\n- **Node** 20+ (uses built-in `fetch`)\n- **OpenSalesTax engine** v0.36+ (recommended)\n\n## Disclaimer\n\n> Tax calculations are provided as-is for convenience. The merchant is solely responsible for tax-collection accuracy and remittance to the appropriate jurisdictions. Verify against your state Department of Revenue before remitting.\n\n## Quality bar\n\n- **17 unit tests** covering construction, ZIP extraction, unit-amount computation, jurisdiction-to-tax-line mapping, the happy path, country/currency/ZIP gates, fail-soft on engine errors, and category mapping\n- **Live-engine smoke test** confirms 6 jurisdictions returned for ZIP 55401 / $100 with sum-of-rates = 9.025%\n- **TypeScript strict mode** + `noUnusedLocals` + `noUnusedParameters`\n- **Dual-licensed Apache 2.0 OR GPL-2.0-or-later**\n\n## License\n\nDual-licensed under your choice of [Apache-2.0](LICENSE-APACHE.txt) OR [GPL-2.0-or-later](LICENSE-GPL.txt). See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}