{"_id":"@1st-flock/donations-embed-node","_rev":"12-b6007004c3099805ecfd19876dca5914","name":"@1st-flock/donations-embed-node","dist-tags":{"latest":"1.4.1"},"versions":{"1.0.0":{"name":"@1st-flock/donations-embed-node","version":"1.0.0","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.0.0","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"d36f33d111650422ba64475605e226edb8a9013a","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.0.0.tgz","fileCount":17,"integrity":"sha512-F9CjKEdvksoOYlVhkiIFGq6FDjVSFDFOJtNAjWdYdAJLrXDXgUHuiSewKT6/k7axRBRVWBZwHPFWt4vXyy6/Ww==","signatures":[{"sig":"MEUCIFJK+e9gtrh2cuzLDUDgOyF5/xL2SfR1qiWJuffF5iPoAiEA66AF6iRZ4B42JpQShrwuXDnEs/9Pxj9hkQcoltqb3FU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344297},"main":"./dist/index.cjs","type":"module","_from":"file:1st-flock-donations-embed-node-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"1stflock","email":"derek.howard@1stflock.com"},"_resolved":"/tmp/e16cd320f1853593fcb3a36a7fe32ee8/1st-flock-donations-embed-node-1.0.0.tgz","_integrity":"sha512-F9CjKEdvksoOYlVhkiIFGq6FDjVSFDFOJtNAjWdYdAJLrXDXgUHuiSewKT6/k7axRBRVWBZwHPFWt4vXyy6/Ww==","repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.0.0_1777355437652_0.17798551548396668","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@1st-flock/donations-embed-node","version":"1.0.1","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.0.1","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"2f581d6bcba070c7ec0582fe8c12ee997ac500a8","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.0.1.tgz","fileCount":17,"integrity":"sha512-yK7g6NukQ/hmoa6qH4T3GQe0Zuf7Au/12iB/29yhQi9wLt2Cu3sLHNJFxfIX5T5ifWeFg2joz5ae2jL5huHZJw==","signatures":[{"sig":"MEUCIBC//O3hL63wiVxc1mThJ3/gdMq5kL4P8JatADbO/jHRAiEA2FBO66HHoVZdbM2bfIsTWqTkHIeTy/5Z6MKqdKVmMwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344297},"main":"./dist/index.cjs","type":"module","_from":"file:1st-flock-donations-embed-node-1.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"1stflock","email":"derek.howard@1stflock.com"},"_resolved":"/tmp/8dd153cb4b8c03763feb34730bf147f5/1st-flock-donations-embed-node-1.0.1.tgz","_integrity":"sha512-yK7g6NukQ/hmoa6qH4T3GQe0Zuf7Au/12iB/29yhQi9wLt2Cu3sLHNJFxfIX5T5ifWeFg2joz5ae2jL5huHZJw==","repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.0.1_1777359323507_0.31275459614627255","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@1st-flock/donations-embed-node","version":"1.1.0","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.1.0","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"e5fd12eb9e58ddd7e38eee08b00bc8fab002383f","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.1.0.tgz","fileCount":17,"integrity":"sha512-+tpaCeu2ckonSLwgNMGZHbPQWPqTbVS448fRs3ZdbmKAaXL9pRChZO6VY5aX5HY9JRJeX7MCGvaVllo66vrTYw==","signatures":[{"sig":"MEUCIQD4esrC5cki2I+I3xQg+CZ4MW8PDA+wR5prXR8/sIrvHAIgV59zmKB7ZCQyyn5zAD/4R8d5pnQ5Pg3uBKaMxlNMa60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349799},"main":"./dist/index.cjs","type":"module","_from":"file:1st-flock-donations-embed-node-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"1stflock","email":"derek.howard@1stflock.com"},"_resolved":"/tmp/02d797d84a2b67d5df848ce50d8ab7b5/1st-flock-donations-embed-node-1.1.0.tgz","_integrity":"sha512-+tpaCeu2ckonSLwgNMGZHbPQWPqTbVS448fRs3ZdbmKAaXL9pRChZO6VY5aX5HY9JRJeX7MCGvaVllo66vrTYw==","repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.1.0_1777471593337_0.30282858485464015","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@1st-flock/donations-embed-node","version":"1.1.1","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.1.1","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"833a94a64dba57ed704b23b9f3f1c9b6a720d62d","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.1.1.tgz","fileCount":17,"integrity":"sha512-lA1JPRA/wlJ0+jRzrewBRP1QPDKWFQmeYYhGA0ZOU9Tr2/mfwjcm3mjP0U6vP4oe8PVbdli4JLZ8etfXcYymOQ==","signatures":[{"sig":"MEUCIQCPF712I3O3BsTAwIWc9YS0dU9TgeFJRdFIjavwkfKYkQIgVyNJEoo1CS5JV1u5/EISIyXqBFaEIBCNJGAuQQQlQck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349799},"main":"./dist/index.cjs","type":"module","_from":"file:1st-flock-donations-embed-node-1.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"1stflock","email":"derek.howard@1stflock.com"},"_resolved":"/tmp/86f4109658e2b6850c2aecd96c29e8b3/1st-flock-donations-embed-node-1.1.1.tgz","_integrity":"sha512-lA1JPRA/wlJ0+jRzrewBRP1QPDKWFQmeYYhGA0ZOU9Tr2/mfwjcm3mjP0U6vP4oe8PVbdli4JLZ8etfXcYymOQ==","repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.1.1_1777482625075_0.11209489420584595","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@1st-flock/donations-embed-node","version":"1.1.2","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.1.2","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"30e596a1ffe09db54db9aa9fd97ab2ee416c680b","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.1.2.tgz","fileCount":17,"integrity":"sha512-bdJMv38iqaAay9rADs9zKXH4X/avDlAjSNUwxK0mZovsMZfMtFOl2te/LtUH6i1xzlj923N4A7V2T4Q4m7dV0Q==","signatures":[{"sig":"MEUCIQCcz5cDtI3Mh8nzsueRstA8VnmTsc7c4qPLhWWU1jDKZgIgcQqBk+u+7Z8SutOfV1kG45/yZVyiEuBbG9lmF1QRX/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349799},"main":"./dist/index.cjs","type":"module","_from":"file:1st-flock-donations-embed-node-1.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"1stflock","email":"derek.howard@1stflock.com"},"_resolved":"/tmp/94e3623ecca5ebcd584af6bfb8ce8e26/1st-flock-donations-embed-node-1.1.2.tgz","_integrity":"sha512-bdJMv38iqaAay9rADs9zKXH4X/avDlAjSNUwxK0mZovsMZfMtFOl2te/LtUH6i1xzlj923N4A7V2T4Q4m7dV0Q==","repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.1.2_1777483208596_0.7445725306519768","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@1st-flock/donations-embed-node","version":"1.2.6","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.2.6","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"0029267b4e6430655be4d307864301f8ba3bd503","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.2.6.tgz","fileCount":17,"integrity":"sha512-CMIldnT1lNb+3e2y6IDHshmlVCdWBgyoml7ovjPxkAa5mXwZN7NDNbjd2nXd+9FZAYQ//goGOM4vyuvHPvUhZw==","signatures":[{"sig":"MEUCIA8OxG9lF0wI8AOtOWpvX41vUQxfMSRlVqHfqMMa46xIAiEAwNm4x48T3JMZoDbE2dTZx/gYLFsI6qkyXTQ2/zPnXog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349799},"main":"./dist/index.cjs","type":"module","_from":"file:1st-flock-donations-embed-node-1.2.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"1stflock","email":"derek.howard@1stflock.com"},"_resolved":"/tmp/2cd5f1f461eefa850172d0d52afc5a03/1st-flock-donations-embed-node-1.2.6.tgz","_integrity":"sha512-CMIldnT1lNb+3e2y6IDHshmlVCdWBgyoml7ovjPxkAa5mXwZN7NDNbjd2nXd+9FZAYQ//goGOM4vyuvHPvUhZw==","repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.2.6_1777574837252_0.836641656936641","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@1st-flock/donations-embed-node","version":"1.2.7","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.2.7","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"cca80989827103e8d4c42d9cf6b7bdf600ed64b3","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.2.7.tgz","fileCount":17,"integrity":"sha512-8mbHPKRiLslG1kNDebPCl65qnfV1YMkrfsHLTYBWywW0RRtpFTwm42bcf0FFv9FeNAAy0pSpJbuU3MZ1oRhExg==","signatures":[{"sig":"MEUCIGw7OBq6uw93hhZ0fjoNBR/K4SFnML91yTwCdma23ZmPAiEA47/4RnMWST6u4hih4WHIC3RfojTR/tOfnNex1i7lQRE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349799},"main":"./dist/index.cjs","type":"module","_from":"file:1st-flock-donations-embed-node-1.2.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"1stflock","email":"derek.howard@1stflock.com"},"_resolved":"/tmp/4961f1eb6fe0ea1b31483d673b1fb1fd/1st-flock-donations-embed-node-1.2.7.tgz","_integrity":"sha512-8mbHPKRiLslG1kNDebPCl65qnfV1YMkrfsHLTYBWywW0RRtpFTwm42bcf0FFv9FeNAAy0pSpJbuU3MZ1oRhExg==","repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.2.7_1777582340005_0.9456406406864097","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@1st-flock/donations-embed-node","version":"1.3.1","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.3.1","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"841e91f59fae873f81cedad91bd1ab9759b1ad5c","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.3.1.tgz","fileCount":17,"integrity":"sha512-sznx8VZKoW/G/unntZZe+77PA3Nh79SzfHhdWgjhXU5wYp/2yPq3h+4EITIMA6uciRfrp+0EeH868zkyUMsIAg==","signatures":[{"sig":"MEYCIQCSeGJmF8U79SjZMzLdi9MNe1LHs36eA5MHXtHsKLDIVQIhAPztD7OnrgLcyqAePONnhRDmlROOcqVRwpfUTIkS2b7Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349792},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"gitHead":"95cf1896c6692b3f0476aae0408a3f1fc3dc60d5","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"GitLab CI/CD","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"gitlab","oidcConfigId":"oidc:adfa06b0-1aeb-456d-89e1-bbb605770164"}},"repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^7.3.6","vitest":"^4.1.8","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.3.1_1784257855980_0.2895489656645682","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@1st-flock/donations-embed-node","version":"1.3.2","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.3.2","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"a8398efd1c37650d615b2da5d9d7179d7dd168c9","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.3.2.tgz","fileCount":17,"integrity":"sha512-siQUoIOZxpES0tt4hWGhydRC1KrLJ61Z8rqwza8awQL4eb2bcI1q8zRyfAe47DzIE5PDPuO2CISJjpA1Oh+2HA==","signatures":[{"sig":"MEYCIQD/JZXpWc9OK2XPpAIJmrBJcb4rdL/xViyPW9jqYpghcgIhAN+nVCJEFVLE6cJ8imruk9hxwW/g4jmuDPwewDaHuvwa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349792},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"gitHead":"fa98688fada6bb820b156fdcd68e1d0a95f2aa1d","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"GitLab CI/CD","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"gitlab","oidcConfigId":"oidc:adfa06b0-1aeb-456d-89e1-bbb605770164"}},"repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^7.3.6","vitest":"^4.1.8","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.3.2_1784296414930_0.6555040512923314","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@1st-flock/donations-embed-node","version":"1.3.3","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.3.3","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"5d5dd77d4ab81f7acfd27f84a9efabd36213acb5","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.3.3.tgz","fileCount":17,"integrity":"sha512-aUdaEcQgiuGo0fgNpz0pD9Kmyc2KN9vzI/A+r9o1wbg0dnX967/E2DJfkYFBozF22+Dy+D5LdYNtG3XI7vCsFQ==","signatures":[{"sig":"MEQCIAcjYUb92lEGq1qGn/2I4U8glp7ONRup4o0M8KDMMdHhAiBDgDL5PuS2nrQk2xH54e/nedQpvePoOrMi9XPJ4dn6pQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349792},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"gitHead":"fa7958c19b0d80a4a0d9c4e5f2d3e2c6f6af21f6","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"GitLab CI/CD","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"gitlab","oidcConfigId":"oidc:adfa06b0-1aeb-456d-89e1-bbb605770164"}},"repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^7.3.6","vitest":"^4.1.8","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.3.3_1784299133400_0.8439933819044587","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@1st-flock/donations-embed-node","version":"1.4.0","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"license":"MIT","_id":"@1st-flock/donations-embed-node@1.4.0","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"dist":{"shasum":"50bc1318909ab728dde1d91006f9c86025aa7de0","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.4.0.tgz","fileCount":17,"integrity":"sha512-8rIfkdjZdHsx9xo8jSyP1eA9KOGovDo/z49jDAGlYSx5Xx0izOCn9rXuE468hFOmEL+trhCMchie+n10eQJ+Kw==","signatures":[{"sig":"MEUCIQDtYw4cfjdRvaNmCgkTcXMhjNbiuQy7qD8YdNB+rQrZHgIgIy6z4yBD2vqcGkAHxCR8RIQLve96TKBhOp2pTU4hZXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349792},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"gitHead":"5ee174f09c0e1feaede36e4fdb30aa35e2c27eda","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"vitest run","build":"tsup && pnpm check-bundle-size","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest","check-bundle-size":"node scripts/check-bundle-size.mjs"},"_npmUser":{"name":"GitLab CI/CD","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"gitlab","oidcConfigId":"oidc:adfa06b0-1aeb-456d-89e1-bbb605770164"}},"repository":{"url":"git+https://gitlab.com/1st-flock/donations.git","type":"git","directory":"node/donations-embed-node"},"_npmVersion":"11.12.1","description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^7.3.6","vitest":"^4.1.8","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/donations-embed-node_1.4.0_1784341180798_0.20273629777156765","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@1st-flock/donations-embed-node","version":"1.4.1","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./webhooks":{"types":"./dist/webhooks.d.ts","import":"./dist/webhooks.js","require":"./dist/webhooks.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsup --watch","build":"tsup && pnpm check-bundle-size","check-bundle-size":"node scripts/check-bundle-size.mjs","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","lint":"biome check .","lint:fix":"biome check --write ."},"engines":{"node":">=18.17.0"},"devDependencies":{"@biomejs/biome":"^1.9.0","@types/node":"^20.0.0","tsup":"^8.0.0","typescript":"^5.0.0","vite":"^7.3.6","vitest":"^4.1.8"},"keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"repository":{"type":"git","url":"git+https://gitlab.com/1st-flock/donations.git","directory":"node/donations-embed-node"},"homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"license":"MIT","gitHead":"0b1f7a377bebcb25343926f2cf1d2bae1208b3d9","_id":"@1st-flock/donations-embed-node@1.4.1","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-gx55iL59ZUmL1eRA5A08HrW/h/ILHjK1fWWL/dTmMGmHhDvmSVoNgx5m19BI15w6u155A3mgSVPAThQjO6pBUg==","shasum":"4535cd9469648f532e824290e8f88ad3b2c86efa","tarball":"https://registry.npmjs.org/@1st-flock/donations-embed-node/-/donations-embed-node-1.4.1.tgz","fileCount":17,"unpackedSize":349816,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDtrbhHtm9sZABY8LWJVrEqMbw76XSPBtdh7dDhQIzbtgIhAOtf489n5WgeL8sut9KEOaZujQfcsS5W7IMa2fGGpE8B"}]},"_npmUser":{"name":"GitLab CI/CD","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"gitlab","oidcConfigId":"oidc:adfa06b0-1aeb-456d-89e1-bbb605770164"}},"directories":{},"maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/donations-embed-node_1.4.1_1785963207577_0.6439856604385994"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-28T05:50:37.562Z","modified":"2026-08-05T20:53:27.872Z","1.0.0":"2026-04-28T05:50:37.850Z","1.0.1":"2026-04-28T06:55:23.634Z","1.1.0":"2026-04-29T14:06:33.480Z","1.1.1":"2026-04-29T17:10:25.229Z","1.1.2":"2026-04-29T17:20:08.750Z","1.2.6":"2026-04-30T18:47:17.406Z","1.2.7":"2026-04-30T20:52:20.191Z","1.3.1":"2026-07-17T03:10:56.145Z","1.3.2":"2026-07-17T13:53:35.099Z","1.3.3":"2026-07-17T14:38:53.634Z","1.4.0":"2026-07-18T02:19:40.977Z","1.4.1":"2026-08-05T20:53:27.739Z"},"bugs":{"url":"https://gitlab.com/1st-flock/donations/-/issues"},"license":"MIT","homepage":"https://gitlab.com/1st-flock/donations/-/tree/main/node/donations-embed-node","keywords":["1stflock","donations","donations-embed","webhook","hmac","node","server"],"repository":{"type":"git","url":"git+https://gitlab.com/1st-flock/donations.git","directory":"node/donations-embed-node"},"description":"Server-side Node SDK for 1st Flock Donations Embed — typed API client + HMAC webhook verifier.","maintainers":[{"name":"1stflock","email":"derek.howard@1stflock.com"}],"readme":"# @1st-flock/donations-embed-node\n\nServer-side Node SDK for the 1st Flock Donations Embed API. Typed client for donations and recurring schedules, plus a constant-time HMAC-SHA256 webhook verifier. Zero runtime dependencies; ships ESM and CJS.\n\n[![npm version](https://img.shields.io/npm/v/@1st-flock/donations-embed-node.svg)](https://www.npmjs.com/package/@1st-flock/donations-embed-node)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@1st-flock/donations-embed-node)](https://bundlephobia.com/package/@1st-flock/donations-embed-node)\n[![license](https://img.shields.io/npm/l/@1st-flock/donations-embed-node.svg)](./LICENSE)\n\n## Install\n\n```bash\nnpm install @1st-flock/donations-embed-node\n# or\npnpm add @1st-flock/donations-embed-node\n# or\nyarn add @1st-flock/donations-embed-node\n```\n\nRequires Node 18.17 or newer (Bun and Deno work too with their Node-compat shims). No third-party runtime dependencies — just Node's built-in `fetch` and `crypto`.\n\n## Quickstart\n\n```ts\nimport { Client } from \"@1st-flock/donations-embed-node\";\n\nconst client = new Client({ apiKey: process.env.FLOCK_SECRET_KEY! });\n\n// List the most recent 25 donations.\nconst page = await client.listDonations({ limit: 25 });\nfor (const donation of page.donations) {\n  console.log(donation.id, donation.gross_amount_cents, donation.status);\n}\n```\n\nRun this against a sandbox key (`sk_test_…`) and any donation made through the embed (e.g. with sandbox card `4111 1111 1111 1111`, exp `10/29`, CVV `123`) shows up here within a few seconds.\n\n## Configuration\n\nGenerate keys in the 1st Flock account portal under **Donations Setup → Embed Keys** ([full guide](https://1stflock.com/developers/donations-embed/)). The server SDK requires a **secret** key:\n\n- **Secret keys** (`sk_live_…`, `sk_test_…`) — server-only. Never ship a secret key to a browser or any client-rendered code. Treat them like any other production credential — store in a secrets manager, rotate on suspicion of compromise.\n- **Webhook signing secret** — issued separately when you create or rotate a webhook endpoint. Used by `verifyWebhook` to authenticate inbound deliveries. Store alongside the secret key.\n\nThe constructor rejects publishable keys (`pk_…`) at construction time with a clear `TypeError` so misconfiguration surfaces synchronously rather than as a confusing 401.\n\n```ts\nconst client = new Client({\n  apiKey: process.env.FLOCK_SECRET_KEY!,\n  // Optional overrides:\n  baseUrl: \"https://api.sandbox.1stflock.com\", // also auto-resolved by sk_test_ prefix\n  retries: 3,        // retries on 5xx + network errors (default 3)\n  timeout: 30_000,   // per-request timeout in ms (default 30_000)\n  logger: console,   // anything with debug(message, ...args)\n});\n```\n\n## Test mode\n\nPass a sandbox key (`sk_test_…`) — the SDK routes to the sandbox cluster automatically based on the `_test_` prefix. No real money moves. Same code path, same wire format, same webhook events. Donations show up in the hub with a **TEST** badge and never appear in the production ledger.\n\n## Common tasks\n\n### List + paginate donations\n\n```ts\nlet cursor: string | undefined;\ndo {\n  const page = await client.listDonations({ cursor, limit: 200 });\n  for (const donation of page.donations) {\n    await syncToLedger(donation);\n  }\n  cursor = page.next_cursor ?? undefined;\n} while (cursor);\n```\n\nFilter by fund or donor email:\n\n```ts\nconst buildingFundOnly = await client.listDonations({ fundId: \"general\" });\nconst samsHistory = await client.listDonations({ donorEmail: \"sam@example.com\" });\n```\n\n### Fetch a single donation\n\n```ts\nconst donation = await client.getDonation(\"8a1b9c4d-1234-4321-9abc-def012345678\");\nconsole.log(donation.confirmation_id, donation.gross_amount_cents);\n```\n\nCross-organization access deliberately collapses to `404` (`NotFoundError`) so you cannot use the API to confirm whether a UUID belongs to another tenant.\n\n### Refund a donation\n\n```ts\nimport { Client, idempotencyKey } from \"@1st-flock/donations-embed-node\";\n\n// Full refund:\nawait client.refundDonation(donationId);\n\n// Partial refund with an idempotency key (safe to retry on network blip):\nconst refund = await client.refundDonation(\n  donationId,\n  { amountCents: 1000, reason: \"Donor adjustment\" },\n  { idempotencyKey: idempotencyKey(\"refund\") },\n);\nconsole.log(refund.processor_refund_id, refund.refund_amount_cents);\n```\n\nThe `idempotencyKey()` helper returns a tagged UUID like `\"refund:1f2dab36-2a55-4f11-bdc8-2a2a4a95b001\"`. Replays of the same key return the original response without re-contacting the gateway.\n\n### List + cancel recurring schedules\n\n```ts\nconst page = await client.listRecurring({ status: \"active\", limit: 100 });\nfor (const recurring of page.recurring) {\n  if (donorOptedOut(recurring.donor_email)) {\n    await client.cancelRecurring(recurring.id, {\n      idempotencyKey: idempotencyKey(\"cancel-recurring\"),\n    });\n  }\n}\n```\n\n### Fire a synthetic webhook (integration test)\n\n```ts\nconst result = await client.testWebhook(\"donation.completed\");\nconsole.log(\"test event id:\", result.event_id);\n```\n\nThe synthetic event's `data.object.synthetic` flag is set so downstream code can branch on it.\n\n## Webhook verification\n\nVerify every inbound delivery with `verifyWebhook` — constant-time HMAC-SHA256 comparison plus a 5-minute timestamp tolerance to defeat replays.\n\n```ts\nimport express from \"express\";\nimport { verifyWebhook, WebhookError } from \"@1st-flock/donations-embed-node\";\n\nconst app = express();\n\napp.post(\n  \"/webhooks/donations\",\n  express.raw({ type: \"application/json\" }), // give us the raw body bytes\n  (req, res) => {\n    const signature = req.header(\"Flock-Signature\") ?? \"\";\n    try {\n      const event = verifyWebhook(req.body, signature, process.env.FLOCK_WEBHOOK_SECRET!);\n      switch (event.type) {\n        case \"donation.completed\":\n          enqueueReceipt(event.data.object);\n          break;\n        case \"donation.refunded\":\n          reverseReceipt(event.data.object);\n          break;\n        case \"key.frozen\":\n          alertOnCall(event.data.object);\n          break;\n      }\n      res.status(204).end();\n    } catch (err) {\n      // Always 401 — never confirm which check failed.\n      if (err instanceof WebhookError) {\n        return res.status(401).send(\"invalid signature\");\n      }\n      throw err;\n    }\n  },\n);\n```\n\nPass the **exact body bytes** the platform delivered. Re-serializing the JSON before verifying will invalidate the signature.\n\n`verifyWebhook` raises typed exceptions on failure (`WebhookFormatError`, `WebhookTimestampError`, `WebhookSignatureError` — all inherit from `WebhookError`) so you can log distinct failure modes even though the HTTP response is the same `401` in every case.\n\nFor consumers that need only the verifier (and don't want to load the API client surface), import from the dedicated subpath:\n\n```ts\nimport { verifyWebhook } from \"@1st-flock/donations-embed-node/webhooks\";\n```\n\n## Errors\n\nEvery API call raises a typed exception on a non-2xx response.\n\n| HTTP status | Class |\n| --- | --- |\n| 400 / 422 | `ValidationError` |\n| 401 | `AuthError` |\n| 403 | `ForbiddenError` |\n| 404 | `NotFoundError` |\n| 409 | `ConflictError` |\n| 410 | `GoneError` |\n| 429 | `RateLimitError` (carries `retryAfterSeconds`) |\n| 502 | `BadGatewayError` |\n| 503 | `ServiceUnavailableError` |\n| Other | `ApiError` |\n\nAll inherit from `ApiError` and expose `statusCode`, `code`, `message`, `details`, and `requestId`.\n\n```ts\nimport { ApiError, RateLimitError, ConflictError } from \"@1st-flock/donations-embed-node\";\n\ntry {\n  await client.refundDonation(donationId, { amountCents: 1000 });\n} catch (err) {\n  if (err instanceof RateLimitError) {\n    await sleep((err.retryAfterSeconds ?? 1) * 1000);\n    return retry();\n  }\n  if (err instanceof ConflictError) {\n    return console.warn(\"Already refunded:\", donationId);\n  }\n  if (err instanceof ApiError) {\n    console.error(`API error ${err.statusCode} ${err.code}: ${err.message}`);\n  }\n  throw err;\n}\n```\n\n## Full documentation\n\nThe full reference — every endpoint, every error code, the webhook event catalogue with payload schemas, and operations guidance — lives at [1stflock.com/developers/donations-embed/](https://1stflock.com/developers/donations-embed/).\n\n## Vendor neutrality\n\nThis SDK never names the underlying payment processor, bank-link service, or any other third-party vendor in customer-facing strings. Donations carry vendor-neutral identifiers (`processor_transaction_id`, `processor_refund_id`, `processor_subscription_id`); errors route through 1st Flock's own taxonomy. The underlying integrations are an implementation detail and may change without notice — your code never has to.\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n\n## Reporting issues\n\nFile issues at [gitlab.com/1st-flock/donations/-/issues](https://gitlab.com/1st-flock/donations/-/issues) with the label `donations-embed-node`.\n","readmeFilename":"README.md"}