{"_id":"repoaccess-core","_rev":"28-b41eb21a546d7dd332bb95a95b8818d5","name":"repoaccess-core","dist-tags":{"latest":"3.2.1"},"versions":{"0.2.0":{"name":"repoaccess-core","version":"0.2.0","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.2.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"a3a5e325b152d1db5a6121ce23ff2a10e5cb955b","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.2.0.tgz","fileCount":29,"integrity":"sha512-RHLI1lrdSH7TTXkGnspSsmH/Cp7nmfHzkrPp20+4JfCKpbtT/d7ZikzFOOFzssKcIy34ZRkrArGYFppoS4y0FA==","signatures":[{"sig":"MEQCIAEIWmXFIheMJZixO54VyBzMVs4S6kEJr/H73YyX0fkdAiA9t+QsJshk9CTzKjLg6hNkJGaFBBxP8LcSxb6iboZjZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242844},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"f19cbc16b034b77b3057c230b5bf1748317ff92b","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.104.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.2.0_1782715860196_0.9096153407046184","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"repoaccess-core","version":"0.2.1","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.2.1","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"5274f0693d7f72b5a17f86b1995ffd24028be3fd","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.2.1.tgz","fileCount":26,"integrity":"sha512-EToVr/XN93gS4hwNiijfZtBG9dpA4PlDrk/FK0INW4TbdP3IyoC+wcCDx1WI6wZDs7rndhaTDVwQ6cQCUfBypQ==","signatures":[{"sig":"MEUCIFphr5aWfh+ur99RlJcdIvgGSezAmr5MY9PsLyEaTaGnAiEAgcnoAdK9T1jVTI2Q9zFS+YMG0D2wK2fvbmclEjC/TeU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195465},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"02f48449e064b3dbeac712a895211dc9d9110be7","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.104.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.2.1_1782718172560_0.5596137405431358","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"repoaccess-core","version":"0.2.2","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.2.2","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"8fa53c63310cc99a0a3c05af2d42214d6d4863d2","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.2.2.tgz","fileCount":26,"integrity":"sha512-GgcN7V4A2Qjq/dz69/jkwf6Y54Fxi4ghLIxJGhemM+qEnYsHFD0Xb/iW3KIeFhWYbaDQoGX2Jxo28v7kxc+5Vw==","signatures":[{"sig":"MEQCICPbE4dmZdqd8cjLfaNEs8RlyKacn8u1Kim8vBkND5mVAiBNSnKfMEbNVLig2xCzep+p0bNI2dunZILEud/2azVp3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195531},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"35f22c89b61a0458bbdb54708844fb9d1013d172","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.104.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.2.2_1782720411995_0.7611584010704591","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"repoaccess-core","version":"0.2.3","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.2.3","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"e3866460415d883c630bc69878df3678ae0b0ffd","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.2.3.tgz","fileCount":26,"integrity":"sha512-2JegmMrxGSw/le1V7MvHcbcKlKy+OybmBQaGVRaNNrFseENnRIPYRng0vkZXrBSWqsEYkhcmrVGbI0lImas32g==","signatures":[{"sig":"MEUCIQDOn+dtnYy+8Hbr+AGCkPLMWtJv9jlvjwXTOwvqF/+npAIgTacI8XfzMgfYz4RIrrl7dy8Fv3i+E1DT/DySqJbS9xM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195589},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"efb046525e197c8dc82c5bc87a047d503d30ef18","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.104.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.2.3_1782731282746_0.3015344982995001","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"repoaccess-core","version":"0.2.4","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.2.4","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"03bf29c057393930e21098db378ea99724732ad4","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.2.4.tgz","fileCount":26,"integrity":"sha512-1Eeq9dcHZhmBiw4poBxevqhVUkOfcyBZlKq110U0AJ0ADxFndDMT1ukKLl3LTUnexX2rFQ48asxpFkCVwFnRjA==","signatures":[{"sig":"MEQCIAHVtCQjHv1mxGfaGMbedMDLBIi6iK7KlG22fmUvHURPAiBVxmUZVvnxwRr5aDTOHZLdSlnIkYhd4VXHDZHl0XItiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205977},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"dfe3e2cd171b4f3821dfd92db9e1f6d6a4650e9d","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.105.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.2.4_1782740409615_0.5287116995480918","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"repoaccess-core","version":"0.2.5","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.2.5","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"f87f9135df20ffdd538b610ef21d893839c7d8b5","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.2.5.tgz","fileCount":26,"integrity":"sha512-upVV4L80f0yuw754R7iXyuninx6UsYP5iRXFZJ4LLHSI9krUfurMhvinHTWWKhYtl82zy81zptKS6Av1ASzD0A==","signatures":[{"sig":"MEQCIDm7igyH5vSzU2XFBM2+am2VoQdN6Smv+PV3eixb7NbgAiAgYCPuDZrfAHVn4GqMb41NcxUwMnxEXIKOg8RSuRVCXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213239},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"0c27bfbd0c660b428cdf54b3870ab33d2e018186","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.105.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.2.5_1782834047216_0.3619481703464036","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"repoaccess-core","version":"0.3.0","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.3.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"69ec10f7a1a3a95410459e10a6f3da49d017a210","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.3.0.tgz","fileCount":26,"integrity":"sha512-Pa3yRiE7aNrAklRk+YjuLw5u53X793omL2T3e9zb/ikwQ8IEiP/NaaBt/+qh8/NOshry79FEvaqxt2dObjrvnA==","signatures":[{"sig":"MEUCIG0EswzIoKTzpwFOHS+CFyj6lJZLrahXmV8yqcMKMCZHAiEAsZoK3dWlnW7RQfhb6tDIzPr0jKbi8ci0Qjqol+csrMQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216489},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"05eea9724a28b77f075efe0b7781d943ff691465","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.105.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.3.0_1782905550828_0.301244686105377","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"repoaccess-core","version":"0.4.0","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.4.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"f892d9a4c0c980ada4f8273342b7b4e3bdd2bd75","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.4.0.tgz","fileCount":26,"integrity":"sha512-hpSCDibuYmhY39UMatMy5f7GwKBU1BI2gtU9NDH3LKQG8yqZkq78/94F5nxJmeGH0qbCCqkpo7fnPCbqgO/9ng==","signatures":[{"sig":"MEQCICcRYa+Q0SXVuwzNN1a/MYwxN6eu0GiY4+3uqkqgd15rAiBD+toD7YbPdqsIlrIxZUUKhpvLXLGvetum1N4YhWNQYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219156},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"1708dcd7b21e3d8f767c9892ca8715f3e9fbf4f4","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.105.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.4.0_1783086415330_0.09912928111104091","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"repoaccess-core","version":"0.5.0","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.5.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"9182c91fe349e2c5c38707cf758e1ef0f640747d","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.5.0.tgz","fileCount":27,"integrity":"sha512-qltnCIMeEk04zmy3/v2hCNGx4s4/KurbsM/yj9fBDc8m3OxRN+ZkcFNtpduRthrgtHvYbdUSi+GIu8DzNhWMcw==","signatures":[{"sig":"MEUCIH4b+wi1zeQ8HN2wBHBigEfJL0CeWwvdz9EPCNZGOJIoAiEAgB9WIV2OAwwnAkgr9m6whFmFXjX98laOnH/R2wiGlX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223816},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"37d3faf82c6f5b69370236988b61ddc390bcb3e3","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.105.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.5.0_1783171929744_0.8178124209886464","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"repoaccess-core","version":"0.6.0","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.6.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"3823f2a8909f6b32dc9bbf751bc079b1fb09e579","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.6.0.tgz","fileCount":28,"integrity":"sha512-W/EdbVhp8XybOT8A83tPGan4ClI/nFA6xPuBHRrtSbXWepar6C2jIM0wvRB5xZueOnE//xOvX9C67g2liiJMww==","signatures":[{"sig":"MEYCIQCawiVKWnByalozBFcXZmrFTwR7rRIVZO3KTcN8qKuhigIhAIzzvIELu0wCaVi8uXg4C0MY2EpUkmPOL1HVQBI5INdI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236924},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"b74a81d5a176d84c4862f3d70d6cbd4c5652db19","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.105.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.6.0_1783253975454_0.7524365481349127","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"repoaccess-core","version":"0.6.1","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.6.1","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"c81f9832dc6f1521333edcff04a4b2fc0f740a2f","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.6.1.tgz","fileCount":28,"integrity":"sha512-6H5dRmwxj+6hbRej7orRgquZzXPz4E/mzxQyDxENQvYwX4TzuTPhIlqpgf4ZimAYr1CtbDq0bMzSc96TwwlpDg==","signatures":[{"sig":"MEUCICZs/ydL9VYslylbGJjcujCUADMxRlGfsynpVXP0Pi3NAiEAy32Xi/UIqpnwXlaDHNjaDFmWb38im9Y1REM+TXD0IS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239212},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"1aabada8c573d54fc03dc1ecbb292041815b7850","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.105.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.6.1_1783262307689_0.5561000284579589","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"repoaccess-core","version":"0.7.0","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.7.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"bd171cfbb28b1c29a92f21d3a1016ee803c2064f","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.7.0.tgz","fileCount":28,"integrity":"sha512-o5gwt95uLD4tbPEPA45j6TnWDqDgJGfurZNeIJpxzUvyvZDAEUL6oogY0yIYZbsjJjG9JWq00/PDJ25Cu60sgw==","signatures":[{"sig":"MEUCIAG9UmI2wKsvkKgEvLJSBsvgeLuFH/SugNuSe8X+Wo3mAiEAsoKp7arZZv8gXcd9fVIx/eaiPm5qYuT22NnlRX/PVmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240816},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"c6a6b12473e381b23633f7edb19b4e06822a3f3e","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","dependencies":{"hono":"^4.12.25"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.105.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.7.0_1783322077246_0.1825050682120266","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"repoaccess-core","version":"0.8.0","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.8.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"67bfd60e48caeb6bf936f01b60baa23360286e47","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.8.0.tgz","fileCount":28,"integrity":"sha512-i+/l/cup6zYVWl+sCQesL9UZiPqopXWRX4TJhCuYzNsA2o/aoNsDWhruaBmUFtC4z6fmmV97OiTgjSEN0KVcJg==","signatures":[{"sig":"MEUCIQDX/QfjTFMWeg9xsTk4rnJVoQZPO1Hlu+Y6eYOy8mj5NwIgZXjbXCTFVFDNvGwcKjT5CPd+ehYS9n6U4W5C22x3Ti8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248536},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"adf97f973f5fd15fb28fc360dd9cf177582786a0","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit","wizard:e2e":"node scripts/wizard.mjs e2e","wizard:deploy":"node scripts/wizard.mjs deploy","wizard:doctor":"node scripts/wizard.mjs doctor","wizard:check-env":"node scripts/wizard.mjs check-env","wizard:kv-create":"node scripts/wizard.mjs kv-create","wizard:preflight":"node scripts/wizard.mjs preflight","wizard:resolve-url":"node scripts/wizard.mjs resolve-url","wizard:grant-record":"node scripts/wizard.mjs grant-record","wizard:github-verify":"node scripts/wizard.mjs github-verify","wizard:secrets-check":"node scripts/wizard.mjs secrets-check"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"11.9.0","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.25","vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.107.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.8.0_1783835166286_0.9714451702113827","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"repoaccess-core","version":"0.8.1","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.8.1","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"493ddb1459d44fa7d40af3654506b84cf8d15927","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.8.1.tgz","fileCount":28,"integrity":"sha512-u74dptJVi0ROeL55rbM1R4ggaFM20+1qZnoFWQbMelOI8z6b8oYvPXD7qa9ME94Tpy+nhURqioXanki0BAyuOw==","signatures":[{"sig":"MEUCIFAA/qG/SM7+X3I+F9NXt8WmUC1rQ5EJqzLXqGRo2r1TAiEAqjta9rZMNiC5GeBZtKZtk+f8QV+ca4VCT2qVRMuUBNc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":250055},"type":"module","exports":{".":"./src/index.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"8386dcd557d8be8956c91b12bfbccf9517b06fc9","scripts":{"dev":"wrangler dev","test":"vitest run","deploy":"wrangler deploy --minify","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit","wizard:e2e":"node scripts/wizard.mjs e2e","wizard:deploy":"node scripts/wizard.mjs deploy","wizard:doctor":"node scripts/wizard.mjs doctor","wizard:check-env":"node scripts/wizard.mjs check-env","wizard:kv-create":"node scripts/wizard.mjs kv-create","wizard:preflight":"node scripts/wizard.mjs preflight","wizard:resolve-url":"node scripts/wizard.mjs resolve-url","wizard:grant-record":"node scripts/wizard.mjs grant-record","wizard:github-verify":"node scripts/wizard.mjs github-verify","wizard:secrets-check":"node scripts/wizard.mjs secrets-check"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"12.0.1","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"sharp":false,"esbuild":false,"workerd":false,"fsevents":false},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.12.25","vitest":"^4.1.0","prettier":"^3.8.4","wrangler":"^4.110.0","typescript":"5.9.3","@types/node":"^25.9.3","@cloudflare/vitest-pool-workers":"^0.16.15"},"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.8.1_1783845755368_0.9490630812131036","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"repoaccess-core","version":"0.9.0","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.9.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"6b107b97b13c99e115dbcae3e3f3412ff1a5ad08","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.9.0.tgz","fileCount":30,"integrity":"sha512-Ts78J19+CePX+timF7wyI3sGWHTC2odaCGv5XqEZ4LiPBSLQpJVBQlq1EGL6bwm/lIosannh8gaRqkRlPOgMEA==","signatures":[{"sig":"MEYCIQCqhNO3tgXvIW26YRlRSOCiMaYUv/Kev3mn7oLri9nQ2wIhANpFUmQjKZ2wYp+8K54j/sEG922YLsnmhBdkBhmqfQDi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274489},"type":"module","exports":{".":"./src/lib.ts","./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"7d490ea693f3347b65d173c64ab08782d46cf136","scripts":{"dev":"wrangler dev --env=\"\"","test":"vitest run","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit","wizard:drive":"node scripts/wizard-driver.mjs","check:release":"node scripts/check-release.mjs","check:tarball":"node scripts/check-tarball.mjs","deploy:sandbox":"wrangler deploy --minify --env=\"\" --secrets-file .dev.vars","prepublishOnly":"node scripts/check-tarball.mjs","deploy:production":"wrangler deploy --minify --env production --secrets-file .dev.vars.production"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"12.0.1","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"sharp":false,"esbuild":false,"workerd":false,"fsevents":false},"_hasShrinkwrap":false,"devDependencies":{"hono":"4.12.30","fallow":"3.4.2","vitest":"4.1.10","prettier":"3.9.5","wrangler":"4.110.0","typescript":"7.0.2","@types/node":"26.1.1","@cloudflare/vitest-pool-workers":"0.18.4"},"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.9.0_1784386236186_0.21376953362178508","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"repoaccess-core","version":"0.9.1","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.9.1","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"bcb475dbfd7bec715a5431d17a5ffe95e1b19a7b","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.9.1.tgz","fileCount":32,"integrity":"sha512-YP8GiWzhuTsJQWcySI/DZGnnbeZqxZ+NX/bVm0CrOFv5ZRc2m8Lb2j3W5VZbBR17navWaZl7kGTgYpn31bUKAQ==","signatures":[{"sig":"MEUCIQCwpw86A1tEdx852o2b1K9D7ZntZGg9H1WT7ohtKf7unQIgVHhRpu564/Obx0HugT2JISrWg1wH5u+ezH5zuARtC+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":371174},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"db0b8898d468c56cc6945684774adf8cf9d2d9b7","scripts":{"dev":"wrangler dev --env=\"\"","test":"vitest run","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit","wizard:drive":"node scripts/wizard-driver.mjs","check:release":"node scripts/check-release.mjs","check:tarball":"node scripts/check-tarball.mjs","deploy:sandbox":"wrangler deploy --minify --env=\"\" --secrets-file .dev.vars","prepublishOnly":"node scripts/check-tarball.mjs","deploy:production":"wrangler deploy --minify --env production --secrets-file .dev.vars.production"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"12.0.1","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"sharp":false,"esbuild":false,"workerd":false,"fsevents":false},"_hasShrinkwrap":false,"devDependencies":{"hono":"4.12.30","fallow":"3.4.2","vitest":"4.1.10","prettier":"3.9.5","wrangler":"4.110.0","typescript":"7.0.2","@types/node":"26.1.1","@cloudflare/vitest-pool-workers":"0.18.4"},"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.9.1_1784446243063_0.16443713456637465","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"repoaccess-core","version":"0.9.2","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.9.2","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"52023a7ff8471ca0560189134b98a64a98e4eea1","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.9.2.tgz","fileCount":32,"integrity":"sha512-H2ZfKGB1MTUa7wWOItfbPQyhfyod+jOD5rtZWH6zKa4kPsu9yD2WTawYfybKH1biTqeOhZugn0CnbqsdFKJu4Q==","signatures":[{"sig":"MEUCIAasRQiJC+LcaYStv4Sl4kQ4wD7Jp73ZM/GXyZjwz45RAiEAh9W0Pf2bxoZf+gTb+/ScySlJYGV+j61d0+glYQj0pDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377571},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"2959d507d602b39cffe80c6d70e53dc9e2a86278","scripts":{"dev":"wrangler dev --env=\"\"","test":"vitest run","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit","wizard:drive":"node scripts/wizard-driver.mjs","check:release":"node scripts/check-release.mjs","check:tarball":"node scripts/check-tarball.mjs","deploy:sandbox":"wrangler deploy --minify --env=\"\" --secrets-file .dev.vars","prepublishOnly":"node scripts/check-tarball.mjs","deploy:production":"wrangler deploy --minify --env production --secrets-file .dev.vars.production"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"12.0.1","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"sharp":false,"esbuild":false,"workerd":false,"fsevents":false},"_hasShrinkwrap":false,"devDependencies":{"hono":"4.12.30","fallow":"3.4.2","vitest":"4.1.10","prettier":"3.9.5","wrangler":"4.110.0","typescript":"7.0.2","@types/node":"26.1.1","@cloudflare/vitest-pool-workers":"0.18.4"},"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.9.2_1784467440564_0.017167239929771982","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"repoaccess-core","version":"0.9.3","license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.9.3","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"dist":{"shasum":"1b07afe52146f19a848e752ae547bd0d7cc72167","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.9.3.tgz","fileCount":32,"integrity":"sha512-HlZNTW9CIWw7sylhjF9MlIfODQWq4YDcmPQx2rZc7FABNsVWBcoUvelT0KDj+6iN1QHEs+sat/Dp4flN/DvjLw==","signatures":[{"sig":"MEUCIQCGB31X9gb3j9pvsgzT3wbisNL3TheyR6kal2KM153UkgIgNnk3CEFwyUTRLVxb++PVlM7FXlrdJKUqLm7tvADcZ60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":379803},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"a35c2338bccad1d58d228588bf9f7c634766ca2c","scripts":{"dev":"wrangler dev --env=\"\"","test":"vitest run","format":"prettier --write .","typegen":"wrangler types --env-interface CloudflareBindings","typecheck":"tsc --noEmit","wizard:drive":"node scripts/wizard-driver.mjs","check:release":"node scripts/check-release.mjs","check:tarball":"node scripts/check-tarball.mjs","deploy:sandbox":"wrangler deploy --minify --env=\"\" --secrets-file .dev.vars","prepublishOnly":"node scripts/check-tarball.mjs","deploy:production":"wrangler deploy --minify --env production --secrets-file .dev.vars.production"},"_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"_npmVersion":"12.0.1","description":"**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.**","directories":{},"_nodeVersion":"24.18.0","allowScripts":{"sharp":false,"esbuild":false,"workerd":false,"fsevents":false},"_hasShrinkwrap":false,"devDependencies":{"hono":"4.12.30","fallow":"3.4.2","vitest":"4.1.10","prettier":"3.9.5","wrangler":"4.110.0","typescript":"7.0.2","@types/node":"26.1.1","@cloudflare/vitest-pool-workers":"0.18.4"},"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.9.3_1784472870367_0.5100478720662547","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"repoaccess-core","version":"0.10.0","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core"],"license":"AGPL-3.0-or-later","_id":"repoaccess-core@0.10.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"homepage":"https://edgekits.dev","bugs":{"email":"hello@edgekits.dev"},"dist":{"shasum":"00fe4111fc359e8595f292f9214954c1af890065","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-0.10.0.tgz","fileCount":32,"integrity":"sha512-xmbkFQFBqMNb/JIndP/Ctvg+JBRyZgMYhxA75IArE6IPUK62XfmCz8SJbklxYYuQr5k/NJWypA6LaMJ7J8jjRA==","signatures":[{"sig":"MEQCIGHZic5EdeaO9zxLrybWeoEv3qRAUuJtfXINI5egogO3AiBmYZX5rApsMSZdSwCN1zZwWOp0mAb91YylNApD8iUUMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":402967},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"0f639639aeb5ebf05943bbe6edcbfa8cbc57fddc","_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"_npmVersion":"12.0.1","description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_0.10.0_1785477791152_0.446233980764976","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"repoaccess-core","version":"1.0.0","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core"],"license":"AGPL-3.0-or-later","_id":"repoaccess-core@1.0.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"homepage":"https://edgekits.dev/en/tools/repoaccess/","bugs":{"url":"https://github.com/EdgeKits/repoaccess-core/issues","email":"hello@edgekits.dev"},"dist":{"shasum":"2282c27d21a37543f484889d2b19b146af13e944","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-1.0.0.tgz","fileCount":33,"integrity":"sha512-KQRr83NYqp/Bn7W7s24uTTWxfEnLc8om1AiNrFv5rlmBvIVsxGYexFAX908qDHml4z2ndOAQnykwOlnyRIgbXg==","signatures":[{"sig":"MEUCIEpDFl9u9VdvCYG/CdBLcM2g7jWv0obdeAXXa6b9PymWAiEAur3nJSGEW598cY+At1eDy7HWDld/9+MxWMcA/te1tRY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":415981},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"f57376447f3c013224a2d9eff7052f9a9097b322","_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"_npmVersion":"12.0.1","description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_1.0.0_1785767057983_0.7157521461982581","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"repoaccess-core","version":"1.1.0","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core"],"license":"AGPL-3.0-or-later","_id":"repoaccess-core@1.1.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"homepage":"https://edgekits.dev/en/tools/repoaccess/","bugs":{"url":"https://github.com/EdgeKits/repoaccess-core/issues","email":"hello@edgekits.dev"},"dist":{"shasum":"7508bf1ec4f32971d6fad3859ee586ea6d170817","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-1.1.0.tgz","fileCount":34,"integrity":"sha512-DpjK5EjauNToYDT43G2wlJu9G9ejZNPqxKLAWyNf6DtZo4Wjn7P5S0fcD7oIXYGCEeBT+Yvo3pw582OGF1FjRA==","signatures":[{"sig":"MEUCIFRH7/i1cXzT0OshkxMGUN1D5bcFpyQt8tFUpXvqB7UiAiEAgt1lieIkYV49NCmxh0YSj/QJf87/3d5xzqWVG2SHQvU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":433503},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"e3fed3e59b91199d428951c52db885d8f6d5113f","_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"_npmVersion":"12.0.1","description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_1.1.0_1786018926501_0.6690601145132988","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"repoaccess-core","version":"2.0.0","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core"],"license":"AGPL-3.0-or-later","_id":"repoaccess-core@2.0.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"homepage":"https://edgekits.dev/en/tools/repoaccess/","bugs":{"url":"https://github.com/EdgeKits/repoaccess-core/issues","email":"hello@edgekits.dev"},"dist":{"shasum":"6e70f642b7bec2fbf4996d955efba96aad770371","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-2.0.0.tgz","fileCount":33,"integrity":"sha512-08p4MKy9xJ71rKAUES8XVn2l9k/G6/aFI28gvfmQANRTbWUl/ci6mU98EFRuCpQKIrWeHQ2wzN4lfkj+7bOQKg==","signatures":[{"sig":"MEUCIAVTH4rh1hypqwnig0no4fMotdQgIcuiH3ohx6yGbCFXAiEAneuZSDRK5GWLCA0tV5KDUr/kTFfMHYVKiFOvYXxjRQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":453633},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"13775d7fd3f7bfae2b45998f757e05e34273b8f9","_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"_npmVersion":"12.0.1","description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_2.0.0_1786351896177_0.4127661064947008","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"repoaccess-core","version":"2.1.0","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core"],"license":"AGPL-3.0-or-later","_id":"repoaccess-core@2.1.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"homepage":"https://edgekits.dev/en/tools/repoaccess/","bugs":{"url":"https://github.com/EdgeKits/repoaccess-core/issues","email":"hello@edgekits.dev"},"dist":{"shasum":"77005119cb0e01d58c857db88a91a7a76a7465bd","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-2.1.0.tgz","fileCount":33,"integrity":"sha512-LTrjP8qfvRl412nYv0spJi4e6Zk+b+eZlWavvyDMO/awIFiHZCHw7GPfmRZNiz/V1Sr5BIj20PSi2GXHeGa7aA==","signatures":[{"sig":"MEUCIBIvFC74k0Yvynwk9rl0Pts45HmO7I6DNMgWPmASv562AiEAiDuEKHxPcNVOw4WHBol0BX/bXhuF4r/iyFkoTzJqnqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":465359},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"d570249bb2c4129ba1c4fd9c0c7285bb8405bf83","_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"_npmVersion":"12.0.1","description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_2.1.0_1786546335867_0.39562399630718237","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"repoaccess-core","version":"3.0.0","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core"],"license":"AGPL-3.0-or-later","_id":"repoaccess-core@3.0.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"homepage":"https://edgekits.dev/en/tools/repoaccess/","bugs":{"url":"https://github.com/EdgeKits/repoaccess-core/issues","email":"hello@edgekits.dev"},"dist":{"shasum":"3caa896e9fe98f1272ee67ad06262615405ababb","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-3.0.0.tgz","fileCount":33,"integrity":"sha512-RKKyDPqcfC9vquTHy9fMePHUCtIKdZ4K2AfH4p4igaUIpzMXYAa+gbGyZfAqnCRXEhvQLeuKp9HA8ru29jPNaw==","signatures":[{"sig":"MEYCIQDtiyZJz0JUEFdyFsCKVKiCrZiIr7smux5sD0ewPkCoGwIhALONF+hOqWFDSInfk6alRtG8mv/F9E4YFInkAplEj/1B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475589},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"80a156e7f67daf0cd51b6f87473520b21a37d662","_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"_npmVersion":"12.0.1","description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_3.0.0_1786782000006_0.43376044999791485","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"repoaccess-core","version":"3.0.1","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core"],"license":"AGPL-3.0-or-later","_id":"repoaccess-core@3.0.1","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"homepage":"https://edgekits.dev/en/tools/repoaccess/","bugs":{"url":"https://github.com/EdgeKits/repoaccess-core/issues","email":"hello@edgekits.dev"},"dist":{"shasum":"ed2f927650a6a34237c629635feec3a53d276163","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-3.0.1.tgz","fileCount":33,"integrity":"sha512-FyQrQftsbK6/hAZx0+UpT38MSX7qyeB2ZeZJu6zFWKc9V95KwH9F/Ah5A75eXTDfkcXREwYpZIekx5cf3kL+Sw==","signatures":[{"sig":"MEYCIQD8getd4AtEoz89ZVMpo9c3VHjm1E3h4mekZ+fBSQqWegIhAKqmgUN6DgvOVawTE4cx7M4qsoPjx8G3ocq2kptqPmQP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":477447},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"5bdc7821e1157359281c829c3463751c31756184","_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"_npmVersion":"12.0.1","description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_3.0.1_1786970138433_0.13312017832317147","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"repoaccess-core","version":"3.1.0","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core"],"license":"AGPL-3.0-or-later","_id":"repoaccess-core@3.1.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"homepage":"https://edgekits.dev/en/tools/repoaccess/","bugs":{"url":"https://github.com/EdgeKits/repoaccess-core/issues","email":"hello@edgekits.dev"},"dist":{"shasum":"71e611a7d39d91e6ccb305f8a15419878d6eb809","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-3.1.0.tgz","fileCount":33,"integrity":"sha512-JNni5/kh4BnaxWwA9lRUNjGg3++Be8hWF47Om3+9PBp4TndFNBAVOH9CrYCq40FDEpSMdMVGE2KeR/4FvbQM6Q==","signatures":[{"sig":"MEQCIDDB+Y/GJ6ZujzT1H9LYgP4vWpqHnHwyCrIWVTC/5RspAiAJk5b8jrsHUdoghu/gWv6tErrSixE2deqxSh869bLE3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":482193},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"12d5737d26d693cb25b5a0eda81d1c2401028443","_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"_npmVersion":"12.0.1","description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_3.1.0_1787578174210_0.46261277040604165","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"repoaccess-core","version":"3.2.0","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core","repo-access","sell-code","github-teams","access-control"],"license":"AGPL-3.0-or-later","_id":"repoaccess-core@3.2.0","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"homepage":"https://edgekits.dev/en/tools/repoaccess/","bugs":{"url":"https://github.com/EdgeKits/repoaccess-core/issues","email":"hello@edgekits.dev"},"dist":{"shasum":"7b59ddf860df9b35c3b3658545b348ddb72aa07d","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-3.2.0.tgz","fileCount":33,"integrity":"sha512-WfDoQ2iDqxmDpM9z0fznBa18/o3gBo/4pnU2r6gtPfnnaYI7KS9PIc0Gi83JzycjD0M9WhTPAf48nxfFS6O+AA==","signatures":[{"sig":"MEQCIAsWin6Vu447y2IMYj8GprsY78JUlAmm/AuOj82RBUbcAiBH1zWrhTqxPrXuvHGgHMipS7mSO4rl6AluxDhDWpOuMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCnFT6pYhTyIsjqXR82J3wr/+vfRm48OBzmqfzAdk5ibgIhAOLCbJTXw/slRy/lIUnHDmoypo5sZqYqq4Dldhg2k1Yl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555803},"type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"7526ef2add2cf40aaaea0c816da16e36269a2a4f","_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"_npmVersion":"12.0.1","description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"tmp":"tmp/repoaccess-core_3.2.0_1789559234138_0.37834201105510146","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"_id":"repoaccess-core@3.2.1","bugs":{"url":"https://github.com/EdgeKits/repoaccess-core/issues","email":"hello@edgekits.dev"},"dist":{"shasum":"48dc58e7c7fe954422aa3d8b9064b7c6dd92cba7","tarball":"https://registry.npmjs.org/repoaccess-core/-/repoaccess-core-3.2.1.tgz","fileCount":33,"integrity":"sha512-XmyOziCcBOPLM+eNTbHba+SNFj1OrI2rh+yYHLfKML1Nlx+3i+wR+uXFlktYRlgGzNoKctPguKgbN0qk6H67DA==","signatures":[{"sig":"MEYCIQD/e166XpotcAgSFnrPqG0oomrHhICei0Rc+GgtrdWyvgIhAOh1bBy6DMYo/3QZvQWwFtK24G+jaDH7d9+sWskYKT+F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHSEGtjX6t8Bbtbbf4FDCOZ4onAMPPpEhcqWqn6Fc6FkAiEAwOv7OD1Ctx8eN2k5qlpHwi94aJOL2Ylqz4CBcV/7eOY="}],"unpackedSize":564977},"name":"repoaccess-core","type":"module","exports":{".":"./src/lib.ts","./wizard":{"types":"./scripts/wizard.d.mts","default":"./scripts/wizard.mjs"},"./adapters/stripe":"./src/adapters/stripe.ts"},"gitHead":"6053bfb3832fd23683614eb4ece75c795acd2c79","license":"AGPL-3.0-or-later","version":"3.2.1","_npmUser":{"name":"edgekits","email":"hello@edgekits.dev"},"homepage":"https://edgekits.dev/en/tools/repoaccess/","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core","repo-access","sell-code","github-teams","access-control"],"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"_npmVersion":"12.0.1","description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","directories":{},"maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"hono":"^4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/repoaccess-core_3.2.1_1789638975139_0.4134912727770359"}}},"time":{"created":"2026-06-29T06:51:00.113Z","modified":"2026-09-17T09:56:15.698Z","0.2.0":"2026-06-29T06:51:00.364Z","0.2.1":"2026-06-29T07:29:32.708Z","0.2.2":"2026-06-29T08:06:52.133Z","0.2.3":"2026-06-29T11:08:02.886Z","0.2.4":"2026-06-29T13:40:09.762Z","0.2.5":"2026-06-30T15:40:47.373Z","0.3.0":"2026-07-01T11:32:30.986Z","0.4.0":"2026-07-03T13:46:55.470Z","0.5.0":"2026-07-04T13:32:09.880Z","0.6.0":"2026-07-05T12:19:35.598Z","0.6.1":"2026-07-05T14:38:27.837Z","0.7.0":"2026-07-06T07:14:37.375Z","0.8.0":"2026-07-12T05:46:06.465Z","0.8.1":"2026-07-12T08:42:35.499Z","0.9.0":"2026-07-18T14:50:36.322Z","0.9.1":"2026-07-19T07:30:43.198Z","0.9.2":"2026-07-19T13:24:00.706Z","0.9.3":"2026-07-19T14:54:30.515Z","0.10.0":"2026-07-31T06:03:11.318Z","1.0.0":"2026-08-03T14:24:18.155Z","1.1.0":"2026-08-06T12:22:06.674Z","2.0.0":"2026-08-10T08:51:36.337Z","2.1.0":"2026-08-12T14:52:16.047Z","3.0.0":"2026-08-15T08:20:00.151Z","3.0.1":"2026-08-17T12:35:38.606Z","3.1.0":"2026-08-24T13:29:34.371Z","3.2.0":"2026-09-16T11:47:14.241Z","3.2.1":"2026-09-17T09:56:15.230Z"},"bugs":{"url":"https://github.com/EdgeKits/repoaccess-core/issues","email":"hello@edgekits.dev"},"license":"AGPL-3.0-or-later","homepage":"https://edgekits.dev/en/tools/repoaccess/","keywords":["github","stripe","webhook","cloudflare-workers","paywall","self-hosted","hono","open-core","repo-access","sell-code","github-teams","access-control"],"repository":{"url":"git+https://github.com/EdgeKits/repoaccess-core.git","type":"git"},"description":"Sell access to a private GitHub repo on your own infrastructure, with the payment provider you already use.","maintainers":[{"name":"edgekits","email":"hello@edgekits.dev"}],"readme":"# RepoAccess\n\n**Sell access to a private GitHub repo on your own infrastructure, with the payment provider you\nalready use.**\n\nA buyer pays, and they're automatically invited to the GitHub team that carries access to your private\nrepo. A refund or chargeback revokes it. It runs as a single **Cloudflare Worker** on your own\naccount: no server, no SaaS subscription, no per-sale cut. Cloudflare's free plan carries hundreds of\nsales a day.\n\n**Your coding agent sets this up without ever seeing your secrets** - and the rules that enforce that are\ncommitted in this repo, so you can check them before you start.\n\nUse it to sell SaaS boilerplates, starter kits, courses, AI notebooks, private modules, or paid\ncommunity resources. Anything delivered as a repo.\n\n`repoaccess-core` is the free, open-source (AGPL-3.0) core. It ships the **Stripe** adapter plus the\nfull grant and revoke engine. **RepoAccess Pro** (see below) adds more payment providers (including\nMerchant-of-Record options) for sellers who can't use Stripe, several customizable claim-page\ntemplates, and support.\n\n## Why this exists\n\nTools like Polar, Dodo, and GitHub Sponsors also solve \"pay, then GitHub access\", but they're **billing\nplatforms**: you adopt their checkout and they take a per-transaction cut. Two consequences:\n\n- **They're Stripe-bound.** If you're somewhere Stripe isn't available (much of CIS, MENA, Africa,\n  Asia, and beyond), you're locked out.\n- **They own the rail.** You can't bring the provider you already sell with, and you pay a % forever.\n\nRepoAccess is the opposite: a light, single-purpose access-grant worker you self-host and wire to\n**any** webhook-capable provider. This repository ships the engine with a complete Stripe\nadapter, and the adapter seam is a small, typed, public contract - the provider you already sell\nwith is one implementation of it away, or already packaged in **Pro** (see below). Keep your\ncheckout, your margins, and your region.\n\n## How it works\n\n1. Your provider fires a webhook to your worker on a sale (and on refunds or chargebacks).\n2. The worker **verifies** the signature, **normalizes** the event, and runs a durable **Workflow**.\n3. The buyer lands in the GitHub team that carries your repo. By default they open a one-time **claim\n   link** and enter their GitHub username; if your checkout already collected the username, they're\n   added directly.\n4. On a refund or chargeback (within a 180-day window), access is **revoked** and any pending invite is\n   cancelled.\n\nNo \"Login with GitHub\", no phoning home: GitHub's own invitation _is_ the identity check. Only the real\naccount owner can accept it.\n\n## What a refund actually removes (and what it leaves alone)\n\n**A refund revokes the product that was refunded. Not the buyer.** This matters the moment you sell more\nthan one thing:\n\n1. **Only the teams on that grant.** Teams that came from a _different_ purchase are not touched.\n2. **Any pending invitation** for that buyer is cancelled - an unaccepted invite is still a grant in flight -\n   and issued again for any team another purchase still entitles them to.\n3. **Then org membership is reconciled against live GitHub state.** The worker asks GitHub which of your\n   configured teams the buyer is still in. If they are in **any** of them they **keep their org membership**,\n   and everything their other purchases entitle them to. Only when they are in **no** product team at all is\n   the buyer removed from the organization - an org member with no team gets nothing anyway (your base\n   permissions are `No permission`), so leaving them there would be untidy, not generous.\n\nSo the case sellers worry about is already handled: **a buyer who owns product A, buys product B, then\nrefunds B, loses B and keeps A.** The check is made against GitHub itself, never against the worker's own\nrecords, so it stays correct even after a grant record has aged out.\n\n**The support ticket this saves you.** GitHub's own emails are what cause the panic, not the software. Every\nrevoke sends a **team**-removal notice, which is accurate and reads like what it is. The alarming one is the\nSECOND email: a buyer left in no team at all is also told they were removed from the **organization**, which\nreads like a ban. It is not, and nothing else was touched. A buyer who still holds another purchase stays in\nthat purchase's team, so they get the team notice and never the organization one. Full rules, including the\none caveat about teams you add by hand, are in the [setup guide](./docs/setup-guide.md).\n\n## Guided setup (recommended)\n\n![RepoAccess setup wizard - guided, verified, step by step (shown in OpenCode)](https://raw.githubusercontent.com/EdgeKits/repoaccess-core/main/docs/assets/setup-wizard-opencode.gif)\n\n**Before you start.** A free **Cloudflare account**. A **GitHub organization** you own - personal accounts\nhave no teams, so an org is required, and a Free org is fine. A **second GitHub account** to play the test\nbuyer: your org-owner account is already in the org, so it never receives an invite and cannot test the real\npath. And **Node** and **git**. Budget about an hour if you are setting all of that up from scratch; much\nless if your GitHub org and payment account already exist.\n\nThe fastest way in is the built-in **setup wizard**. Clone the repo and run it in\n[Claude Code](https://claude.com/claude-code):\n\n```bash\ngit clone https://github.com/EdgeKits/repoaccess-core.git\ncd repoaccess-core\nnpm install\nclaude            # then type: /repoaccess-setup\n```\n\n`/repoaccess-setup` hand-walks you through the entire setup, one verified step at a time: your GitHub\norg and team plus the privacy settings that keep your repos private, the Stripe product and webhook,\nyour secrets, deploy, and a live end-to-end test. It edits the config files for you and guides the\ndashboard clicks (no digging through docs).\n\nDuring the wizard, your coding agent runs a single setup command (`npm run wizard:drive`) and the wizard\ndoes the rest: it runs the wrangler and npm work and edits two config files\n(`src/config/repoaccess.config.ts` and `wrangler.jsonc`) for you.\n\n**How it never sees your secrets.** The wizard is a program, not a set of instructions your agent\nimprovises from. The agent runs one command, renders what the program prints, and hands your\nanswer back; the file work happens inside that program, in a child process, not through the\nagent.\n\nYou paste your secret values into `.dev.vars` yourself, and the deploy hands that FILE to\n`wrangler`, which reads it itself - so the wizard does not read your secret values for the upload\nat all. Where it does need one, to call an API on your behalf, it reads it inside that child\nprocess and puts it straight into a request header. Either way they never pass through the agent\nat any point.\n\nAnd the restriction is not a promise: `.claude/settings.json` and `opencode.json` in this repo\ndeny the agent's file reads of `.dev.vars` and `.dev.vars.production` by name, every other route\nto them sits outside the allowlist and stops at your approval prompt, and both files are\ncommitted, so you can read them before you run anything.\n\nThe wizard needs exactly one call, `npm run wizard:drive`, and the allowlist is what lets you\napprove it once (pick 'yes, and don't ask again' the first time) instead of step by step. Read\nthe allowlist rather than take our word for its size: it covers `npm run` scripts and\n`npm install`, plus edits to the two config files the wizard writes. What it does not cover is\nyour secrets file, which is denied by name.\n\nIf you would rather see it than read it: a test in this repo plants fake secret values through\nthe setup's end-to-end check and asserts they never appear in anything the agent sees.\n\nThis is a configuration you can inspect rather than a sandbox: the guarantee is that the agent is never\nasked to touch your secrets, its reads of those two files are refused by name, and anything else it\nmight reach for has to come past you first.\n\n**Other agents (Codex, Cursor, Amp, ...):** open the cloned repo in your agent. The repo carries an\n`AGENTS.md` at its root - the file coding agents look for - and it points at the same wizard. Claude Code\nand [OpenCode](https://opencode.ai) also expose it as the `/repoaccess-setup` command.\n\n**Rather not use an agent at all?** The wizard is a convenience, not a requirement - nothing in RepoAccess\nneeds one. The [manual setup guide](./docs/user-guide-stripe.md) walks this same clone-and-deploy path by\nhand, dashboard click by dashboard click, and ends with the same live end-to-end test.\n\nRather wire RepoAccess into an existing worker by hand instead of cloning? Use **Compose it yourself** below.\n\n## Compose it yourself\n\n```bash\nnpm install repoaccess-core hono\n```\n\n`hono` is a peer dependency (RepoAccess is built on Hono). npm 7+ installs it automatically, but pnpm and\nYarn require it listed explicitly, so install it alongside.\n\nCompose the adapters you use and pass a typed config:\n\n```ts\n// src/index.ts\nimport { createWorker, createAccessWorkflow, ClaimGuard } from 'repoaccess-core'\nimport { stripe } from 'repoaccess-core/adapters/stripe'\nimport { config } from './repoaccess.config'\n\n// Pass the SAME adapter list to both factories.\nconst adapters = [stripe]\n\nexport default createWorker({ adapters, config })\nexport class AccessWorkflow extends createAccessWorkflow(config, adapters) {}\nexport { ClaimGuard }\n```\n\n> `adapters` is optional for hmac-only setups (Stripe), but pass it to both so adding an\n> `api_callback` adapter later just works.\n\n```ts\n// src/repoaccess.config.ts\nimport type { RepoAccessConfig } from 'repoaccess-core'\n\nexport const config: RepoAccessConfig = {\n  githubOrg: 'your-org',\n  productTeamMap: {\n    stripe: { prod_ABC: { teams: ['pro'], grant_mode: 'username' } },\n    defaults: {\n      teams: [],\n      grant_mode: 'claim',\n      revoke_policy: { mode: 'log_only' },\n    },\n  },\n}\n```\n\nAdd the Cloudflare bindings (Workflow, KV, Durable Object), put your secrets (`GITHUB_TOKEN`,\n`STRIPE_WEBHOOK_SECRET`) in `.dev.vars`, and `npx wrangler deploy --env=\"\"`. Full walkthrough:\n[**setup guide**](./docs/setup-guide.md).\n\n## What's in core\n\n- **Stripe** adapter: HMAC-verified `checkout.session.completed`,\n  `checkout.session.async_payment_succeeded`, `charge.refunded`, `charge.dispute.created`.\n- **Grant and revoke** engine: a durable Cloudflare Workflow, idempotent on retried webhooks, GitHub\n  rate-limit backoff, and reconciliation around manual changes.\n- **Claim flow**: a one-time claim link plus a single-flight Durable Object so two submissions can't\n  over-grant. The claim page is a pluggable, seller-brandable template.\n- **Config as code**: a typed config object, no escaped-JSON env vars.\n- **Safe outbound events** (optional): signed `access.*` and `claim.*` webhooks with an SSRF allowlist.\n- **Runs on Cloudflare's free plan at real volume** - hundreds of sales a day. You upgrade because\n  your sales outgrew it, not because the software asked you to.\n\nEvery release is recorded in [`CHANGELOG.md`](CHANGELOG.md). Read it before you `git pull`: it says what\na version fixes, whether it touches config you set, and whether it is worth taking at all.\n\n## RepoAccess Pro\n\nCore is everything you need to self-host with Stripe. **Pro** is for sellers who need more:\n\n- **More payment providers**: **Paddle** and **Lemon Squeezy** (Merchant-of-Record, with tax handled\n  for you), **Gumroad**, **Razorpay** (India), and **Telegram Stars** (in-Telegram checkout). Sell from\n  the regions, and with the providers, a Stripe-only setup can't reach. More providers are on the way.\n- **Your brand on every page the buyer sees.** The claim form, the \"setting up your access\" page, \"access\n  granted\", the failure page: all rendered by your worker. Pro ships designed presets, each with a **light\n  and a dark palette**, contrast-checked, on system fonts so they load instantly. Pick one in a single file,\n  override any token, and the buyer's own browser decides light or dark.\n- **A worker-hosted checkout page** for Paddle, so you can sell through a Merchant of Record without owning a\n  website at all.\n- **An embeddable service**: another Worker on your account can call grant and revoke directly over a service\n  binding - no public URL, no signature, the binding is the authorization.\n- **The recipe to add any provider yourself**, written so a coding agent can follow it unaided: the adapter\n  contract, three worked examples, and our per-provider notes on what each one's documentation gets wrong.\n- **Support and a year of updates**, which mostly means keeping the adapters correct as the providers quietly\n  change their webhooks underneath you.\n- One-time license, your own infra, no per-sale cut.\n\nPricing and how to get it are on the [RepoAccess page](https://edgekits.dev/en/tools/repoaccess/).\n\n## License\n\nAGPL-3.0-or-later. Copyright © 2026 Gary Stupak. See [LICENSE](LICENSE).\n\nIf you run a modified RepoAccess as a service for others, the AGPL's network-use terms apply (see the FAQ\nbelow). For a closed-source or otherwise proprietary use, the licensed edition is **RepoAccess Pro** - there\nis no separate commercial license for core. How the two editions relate, and what a commercial arrangement\nlooks like, is on the [licensing page](https://edgekits.dev/en/tools/repoaccess/licensing/); the full\nexplanation lives in [LICENSING.md](LICENSING.md).\n\n## License and AGPL FAQ\n\nRepoAccess core is licensed under **AGPL-3.0**. Plain-English answers to the questions people actually ask\n(this is not legal advice - for edge cases, consult a lawyer):\n\n**Can I self-host it to sell access to my own private repos?**\nYes, freely - that is the intended use. If you run it unmodified, its source is already public (this repo),\nso you have nothing extra to do. AGPL covers the RepoAccess source itself; it does not require you to open\nyour repositories, your buyers' data, or your business.\n\n**What if I modify core and run it as a service?**\nAGPL's network clause (section 13) applies: if you modify RepoAccess and let users interact with your\nmodified version over a network, you must offer those users the complete corresponding source of your\nversion - by providing a public download (a public git repo or archive), prominently, at no charge. That is\nan accessible offer to the people using your service, not private correspondence. In practice: publish your\nfork's source and link it from the running service.\n\n**Does importing core into my own worker make my whole app AGPL?**\nCombining AGPL code into your worker generally makes the combined work subject to AGPL, so if you offer it\nover a network you would owe its corresponding source to your users. If you need a **closed-source**\ncommercial product, that is exactly what **RepoAccess Pro** is for: a proprietarily licensed\nedition (including the embeddable RPC service) with no AGPL obligation. Use core (AGPL) for open /\nself-hosted; use Pro for closed commercial.\n\n**Is there a commercial license for core?**\nNot sold on its own. The proprietary path is Pro, which licenses this same core code to you on\nPro's terms instead of the AGPL. Core on its own is AGPL-only by design: the copyleft is what stops\nsomeone from privately forking it into a closed, competing service.\n\n(Not legal advice. The \"derivative work\" vs \"mere aggregation\" boundary has nuance; consult a professional\nfor your specific situation.)\n\n---\n\nRepoAccess is part of [EdgeKits](https://edgekits.dev/).\n","readmeFilename":"README.md"}