diff --git a/.release-please-manifest.json b/.release-please-manifest.json index aa0ca40..9246b28 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,5 +1,5 @@ { - ".": "1.4.3", - "apps/web": "0.5.3", - "apps/api": "1.2.8" + ".": "1.5.0", + "apps/web": "0.6.0", + "apps/api": "1.3.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index afeabe3..a326157 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,59 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.5.0](https://github.com/RepliMap/replimap-mono/compare/replimap-mono-v1.4.3...replimap-mono-v1.5.0) (2026-07-05) + + +### Features + +* **api:** add GET /v1/checkout/session/:id/license post-payment lookup ([ffdb8b4](https://github.com/RepliMap/replimap-mono/commit/ffdb8b475bbbec401b17a720b820cb3782f87533)) +* **api:** add getLicenseByUserEmailLatest helper ([1f4134e](https://github.com/RepliMap/replimap-mono/commit/1f4134ebea41473bcbdb56218377be525f7e96ba)) +* **api:** add POST /v1/license/provision-community for free-tier auto-signup ([c7d71e5](https://github.com/RepliMap/replimap-mono/commit/c7d71e5d3e1a83e5338b5951670f2153367b77e6)) +* **api:** add RATE_LIMIT_DISABLED env flag for local dev/e2e ([7fbff44](https://github.com/RepliMap/replimap-mono/commit/7fbff449a531e2b7c7b0d735c241b9bd56c664ed)) +* **api:** extend handleCreateCheckout to support lifetime billing ([704ded8](https://github.com/RepliMap/replimap-mono/commit/704ded807d0335efb58252f134ccd93181e6d924)) +* **billing:** switch to live Stripe price IDs, allow www + apex CORS, ([b39d4ac](https://github.com/RepliMap/replimap-mono/commit/b39d4ac62f131257677cd30f01f68422ef809abd)) +* **payments:** harden Stripe webhook flow, add license CSPRNG, and require auth on community provisioning ([a570276](https://github.com/RepliMap/replimap-mono/commit/a5702768272a4c9d565056827c3b8dc55fe3e9cc)) +* **web:** add cta-links helper with checkoutHref/freeSignupHref ([a276fbf](https://github.com/RepliMap/replimap-mono/commit/a276fbf96c743466ce30be196e721ac45fdb2064)) +* **web:** add getCheckoutLicense + provisionCommunityLicense api clients ([3e18dba](https://github.com/RepliMap/replimap-mono/commit/3e18dba37a51adb7f91f3b222dffa3b4802233f7)) +* **web:** poll and display license key on /checkout/success page ([06ba075](https://github.com/RepliMap/replimap-mono/commit/06ba075cc399642fbfcb4cabfbe403a5595354a7)) +* **web:** route header + bottom CTAs to sign-up instead of Tally ([aee075c](https://github.com/RepliMap/replimap-mono/commit/aee075c9b05f3de057c64422e76dee6d6a1eb402)) +* **web:** route hero 'Get Started Free' to Clerk sign-up ([d8226e6](https://github.com/RepliMap/replimap-mono/commit/d8226e6c9c82d6378b329e01f93a9cf1e8b582b0)) +* **web:** route pricing CTAs to checkout + support lifetime in /checkout ([556db81](https://github.com/RepliMap/replimap-mono/commit/556db819e6f81b45e6b134b0852174cf489d32d7)) + + +### Bug Fixes + +* **api:** add migration to bootstrap Drizzle schema on local D1 ([aa29216](https://github.com/RepliMap/replimap-mono/commit/aa29216bd7410de1edb72df95a23d286563e2db0)) +* **api:** guard checkout-license route so it doesn't swallow all GET requests ([6aa25dc](https://github.com/RepliMap/replimap-mono/commit/6aa25dc329fbdc8269fefeb13aa4b29e291b4d43)) +* **api:** self-heal subscription.created when user not yet in DB ([df74f99](https://github.com/RepliMap/replimap-mono/commit/df74f99c851e18ec90183a274c245b108586ff25)) +* **dashboard:** populate device list, per-plan limits, grace days, expiry (followups [#6](https://github.com/RepliMap/replimap-mono/issues/6)/[#7](https://github.com/RepliMap/replimap-mono/issues/7)) ([2e4b6d0](https://github.com/RepliMap/replimap-mono/commit/2e4b6d02abce4829ff0686775b18d95878db733d)) +* **web:** add X-Internal-Auth header to provision-community request ([8f83d6f](https://github.com/RepliMap/replimap-mono/commit/8f83d6f9d04b64f3feb9f6950d51b12f672247c8)) +* **web:** force-dynamic on /checkout to fix SSG prerender of Clerk hooks ([8c846b5](https://github.com/RepliMap/replimap-mono/commit/8c846b56b79260f98243eeaebae2828663b3a531)) +* **web:** guard license.fingerprints access against undefined ([7b829cd](https://github.com/RepliMap/replimap-mono/commit/7b829cdbd65cb09be00bc9ac0f5a7e20cbf09d4c)) +* **webhook:** backfill billing period from subscription items, retry ([2134d8b](https://github.com/RepliMap/replimap-mono/commit/2134d8b65e7d236a114605d0c71093f156013612)) +* **webhook:** resolve customer email via customer_details fallback, refuse to guess plan on unresolvable lifetime payments ([3164b1b](https://github.com/RepliMap/replimap-mono/commit/3164b1bbafa674dd3fed161b5bae64dae160be53)) +* **webhook:** resolve invoice subscription id via parent.subscription_details on API >=2025-03-31 ([7640f4a](https://github.com/RepliMap/replimap-mono/commit/7640f4a39491cfa599086b53f42cc74774fed11f)) +* **webhook:** resolve refunded charges to licenses via payment_intent, always create customers on lifetime checkout ([06e8111](https://github.com/RepliMap/replimap-mono/commit/06e81116b62509706c21007dcb69036efb2b496c)) +* **web:** link Clerk user to license via email, auto-provision community ([30d088f](https://github.com/RepliMap/replimap-mono/commit/30d088f068391b828f949371e3686beba23d3caa)) +* **web:** move license fetch/provision to client-side (Cloudflare Bot Fight Mode blocks Vercel SSR requests) ([e6bd1c9](https://github.com/RepliMap/replimap-mono/commit/e6bd1c9f820b58ff4cae61631bfd13c88bb9d9cb)) +* **web:** pass license_key as query param to /v1/me/license ([1051aaa](https://github.com/RepliMap/replimap-mono/commit/1051aaa860838207fc156ca596eb72c7069cd144)) + + +### Documentation + +* add commercial flow testing guide ([a1db780](https://github.com/RepliMap/replimap-mono/commit/a1db780a52331396e1bac88c4b8ece21348c1068)) +* add production deployment checklist ([3eb9a03](https://github.com/RepliMap/replimap-mono/commit/3eb9a03485422645bd8e1ab3d717a35d067ff2cd)) +* add production rollback playbook + follow-ups tracker ([cb38f0e](https://github.com/RepliMap/replimap-mono/commit/cb38f0eb97e0bec90f51b239aff2593bf9a79f5f)) +* add repo CLAUDE.md (ops landmines + doc index), sync status across docs ([5a44b75](https://github.com/RepliMap/replimap-mono/commit/5a44b75f1d0c0c494df2ea27fe5954a7ae6580ee)) +* complete A6 e2e dev validation log (items 9 + cleanup, D1 restored to baseline) ([b89cf98](https://github.com/RepliMap/replimap-mono/commit/b89cf989444836ca43938d84ed076891709c62cb)) +* correct §1.3 — prod D1 needs ledger alignment, not migration apply ([a145d42](https://github.com/RepliMap/replimap-mono/commit/a145d42f82555c697c8dc5d59248b0252e7c3fb9)) +* document commercial flow e2e harness and update README ([7ad9b2e](https://github.com/RepliMap/replimap-mono/commit/7ad9b2e10be8232fbfd5cb7f509a9dc0ea652300)) +* mark §5 rollout complete (prod deployed f62bd94c) ([cbdc51d](https://github.com/RepliMap/replimap-mono/commit/cbdc51db956ac55c58f7df09133d203331e86233)) +* mark checklist §1.5 (post-deploy smoke test) done, link live e2e evidence ([61fb196](https://github.com/RepliMap/replimap-mono/commit/61fb1965b3c2042d306165e91590edc565b7a5a7)) +* mark followups [#6](https://github.com/RepliMap/replimap-mono/issues/6)/[#7](https://github.com/RepliMap/replimap-mono/issues/7) deployed to prod (API 90bfc4ca), CI green ([04b86eb](https://github.com/RepliMap/replimap-mono/commit/04b86ebf34de4a89c9866af5f24a26b450a45779)) +* mark followups [#6](https://github.com/RepliMap/replimap-mono/issues/6)/[#7](https://github.com/RepliMap/replimap-mono/issues/7) fixed; add [#8](https://github.com/RepliMap/replimap-mono/issues/8) (license key as URL query param — ([2e4b6d0](https://github.com/RepliMap/replimap-mono/commit/2e4b6d02abce4829ff0686775b18d95878db733d)) +* record first live production end-to-end smoke test (payment + refund/cancel) ([0a098f4](https://github.com/RepliMap/replimap-mono/commit/0a098f4029d13f47e6e4eecba4db6be3bffa5b3c)) + ## [1.4.3](https://github.com/RepliMap/replimap-mono/compare/replimap-mono-v1.4.2...replimap-mono-v1.4.3) (2026-01-23) diff --git a/apps/api/CHANGELOG.md b/apps/api/CHANGELOG.md index 68d7352..09f864d 100644 --- a/apps/api/CHANGELOG.md +++ b/apps/api/CHANGELOG.md @@ -1,5 +1,37 @@ # Changelog +## [1.3.0](https://github.com/RepliMap/replimap-mono/compare/replimap-api-v1.2.8...replimap-api-v1.3.0) (2026-07-05) + + +### Features + +* **api:** add GET /v1/checkout/session/:id/license post-payment lookup ([ffdb8b4](https://github.com/RepliMap/replimap-mono/commit/ffdb8b475bbbec401b17a720b820cb3782f87533)) +* **api:** add getLicenseByUserEmailLatest helper ([1f4134e](https://github.com/RepliMap/replimap-mono/commit/1f4134ebea41473bcbdb56218377be525f7e96ba)) +* **api:** add POST /v1/license/provision-community for free-tier auto-signup ([c7d71e5](https://github.com/RepliMap/replimap-mono/commit/c7d71e5d3e1a83e5338b5951670f2153367b77e6)) +* **api:** add RATE_LIMIT_DISABLED env flag for local dev/e2e ([7fbff44](https://github.com/RepliMap/replimap-mono/commit/7fbff449a531e2b7c7b0d735c241b9bd56c664ed)) +* **api:** extend handleCreateCheckout to support lifetime billing ([704ded8](https://github.com/RepliMap/replimap-mono/commit/704ded807d0335efb58252f134ccd93181e6d924)) +* **billing:** switch to live Stripe price IDs, allow www + apex CORS, ([b39d4ac](https://github.com/RepliMap/replimap-mono/commit/b39d4ac62f131257677cd30f01f68422ef809abd)) +* **payments:** harden Stripe webhook flow, add license CSPRNG, and require auth on community provisioning ([a570276](https://github.com/RepliMap/replimap-mono/commit/a5702768272a4c9d565056827c3b8dc55fe3e9cc)) + + +### Bug Fixes + +* **api:** add migration to bootstrap Drizzle schema on local D1 ([aa29216](https://github.com/RepliMap/replimap-mono/commit/aa29216bd7410de1edb72df95a23d286563e2db0)) +* **api:** guard checkout-license route so it doesn't swallow all GET requests ([6aa25dc](https://github.com/RepliMap/replimap-mono/commit/6aa25dc329fbdc8269fefeb13aa4b29e291b4d43)) +* **api:** self-heal subscription.created when user not yet in DB ([df74f99](https://github.com/RepliMap/replimap-mono/commit/df74f99c851e18ec90183a274c245b108586ff25)) +* **dashboard:** populate device list, per-plan limits, grace days, expiry (followups [#6](https://github.com/RepliMap/replimap-mono/issues/6)/[#7](https://github.com/RepliMap/replimap-mono/issues/7)) ([2e4b6d0](https://github.com/RepliMap/replimap-mono/commit/2e4b6d02abce4829ff0686775b18d95878db733d)) +* **web:** add X-Internal-Auth header to provision-community request ([8f83d6f](https://github.com/RepliMap/replimap-mono/commit/8f83d6f9d04b64f3feb9f6950d51b12f672247c8)) +* **webhook:** backfill billing period from subscription items, retry ([2134d8b](https://github.com/RepliMap/replimap-mono/commit/2134d8b65e7d236a114605d0c71093f156013612)) +* **webhook:** resolve customer email via customer_details fallback, refuse to guess plan on unresolvable lifetime payments ([3164b1b](https://github.com/RepliMap/replimap-mono/commit/3164b1bbafa674dd3fed161b5bae64dae160be53)) +* **webhook:** resolve invoice subscription id via parent.subscription_details on API >=2025-03-31 ([7640f4a](https://github.com/RepliMap/replimap-mono/commit/7640f4a39491cfa599086b53f42cc74774fed11f)) +* **webhook:** resolve refunded charges to licenses via payment_intent, always create customers on lifetime checkout ([06e8111](https://github.com/RepliMap/replimap-mono/commit/06e81116b62509706c21007dcb69036efb2b496c)) +* **web:** move license fetch/provision to client-side (Cloudflare Bot Fight Mode blocks Vercel SSR requests) ([e6bd1c9](https://github.com/RepliMap/replimap-mono/commit/e6bd1c9f820b58ff4cae61631bfd13c88bb9d9cb)) + + +### Documentation + +* mark followups [#6](https://github.com/RepliMap/replimap-mono/issues/6)/[#7](https://github.com/RepliMap/replimap-mono/issues/7) fixed; add [#8](https://github.com/RepliMap/replimap-mono/issues/8) (license key as URL query param — ([2e4b6d0](https://github.com/RepliMap/replimap-mono/commit/2e4b6d02abce4829ff0686775b18d95878db733d)) + ## [1.2.8](https://github.com/RepliMap/replimap-mono/compare/replimap-api-v1.2.7...replimap-api-v1.2.8) (2026-01-23) ## [1.2.7](https://github.com/RepliMap/replimap-mono/compare/replimap-api-v1.2.6...replimap-api-v1.2.7) (2026-01-22) diff --git a/apps/api/package-lock.json b/apps/api/package-lock.json index 15c45f9..37a4fdf 100644 --- a/apps/api/package-lock.json +++ b/apps/api/package-lock.json @@ -1,12 +1,12 @@ { "name": "replimap-backend", - "version": "1.2.8", + "version": "1.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "replimap-backend", - "version": "1.2.8", + "version": "1.3.0", "dependencies": { "drizzle-orm": "^0.45.1", "stripe": "^14.10.0", diff --git a/apps/api/package.json b/apps/api/package.json index a49ccda..cfb1be6 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -1,6 +1,6 @@ { "name": "@replimap/api", - "version": "1.2.8", + "version": "1.3.0", "description": "RepliMap License Management API - Cloudflare Workers + D1", "main": "src/index.ts", "scripts": { diff --git a/apps/web/CHANGELOG.md b/apps/web/CHANGELOG.md index 0e1bf69..2517b5a 100644 --- a/apps/web/CHANGELOG.md +++ b/apps/web/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## [0.6.0](https://github.com/RepliMap/replimap-mono/compare/replimap-web-v0.5.3...replimap-web-v0.6.0) (2026-07-05) + + +### Features + +* **billing:** switch to live Stripe price IDs, allow www + apex CORS, ([b39d4ac](https://github.com/RepliMap/replimap-mono/commit/b39d4ac62f131257677cd30f01f68422ef809abd)) +* **payments:** harden Stripe webhook flow, add license CSPRNG, and require auth on community provisioning ([a570276](https://github.com/RepliMap/replimap-mono/commit/a5702768272a4c9d565056827c3b8dc55fe3e9cc)) +* **web:** add cta-links helper with checkoutHref/freeSignupHref ([a276fbf](https://github.com/RepliMap/replimap-mono/commit/a276fbf96c743466ce30be196e721ac45fdb2064)) +* **web:** add getCheckoutLicense + provisionCommunityLicense api clients ([3e18dba](https://github.com/RepliMap/replimap-mono/commit/3e18dba37a51adb7f91f3b222dffa3b4802233f7)) +* **web:** poll and display license key on /checkout/success page ([06ba075](https://github.com/RepliMap/replimap-mono/commit/06ba075cc399642fbfcb4cabfbe403a5595354a7)) +* **web:** route header + bottom CTAs to sign-up instead of Tally ([aee075c](https://github.com/RepliMap/replimap-mono/commit/aee075c9b05f3de057c64422e76dee6d6a1eb402)) +* **web:** route hero 'Get Started Free' to Clerk sign-up ([d8226e6](https://github.com/RepliMap/replimap-mono/commit/d8226e6c9c82d6378b329e01f93a9cf1e8b582b0)) +* **web:** route pricing CTAs to checkout + support lifetime in /checkout ([556db81](https://github.com/RepliMap/replimap-mono/commit/556db819e6f81b45e6b134b0852174cf489d32d7)) + + +### Bug Fixes + +* **dashboard:** populate device list, per-plan limits, grace days, expiry (followups [#6](https://github.com/RepliMap/replimap-mono/issues/6)/[#7](https://github.com/RepliMap/replimap-mono/issues/7)) ([2e4b6d0](https://github.com/RepliMap/replimap-mono/commit/2e4b6d02abce4829ff0686775b18d95878db733d)) +* **web:** add X-Internal-Auth header to provision-community request ([8f83d6f](https://github.com/RepliMap/replimap-mono/commit/8f83d6f9d04b64f3feb9f6950d51b12f672247c8)) +* **web:** force-dynamic on /checkout to fix SSG prerender of Clerk hooks ([8c846b5](https://github.com/RepliMap/replimap-mono/commit/8c846b56b79260f98243eeaebae2828663b3a531)) +* **web:** guard license.fingerprints access against undefined ([7b829cd](https://github.com/RepliMap/replimap-mono/commit/7b829cdbd65cb09be00bc9ac0f5a7e20cbf09d4c)) +* **web:** link Clerk user to license via email, auto-provision community ([30d088f](https://github.com/RepliMap/replimap-mono/commit/30d088f068391b828f949371e3686beba23d3caa)) +* **web:** move license fetch/provision to client-side (Cloudflare Bot Fight Mode blocks Vercel SSR requests) ([e6bd1c9](https://github.com/RepliMap/replimap-mono/commit/e6bd1c9f820b58ff4cae61631bfd13c88bb9d9cb)) +* **web:** pass license_key as query param to /v1/me/license ([1051aaa](https://github.com/RepliMap/replimap-mono/commit/1051aaa860838207fc156ca596eb72c7069cd144)) + + +### Documentation + +* mark followups [#6](https://github.com/RepliMap/replimap-mono/issues/6)/[#7](https://github.com/RepliMap/replimap-mono/issues/7) fixed; add [#8](https://github.com/RepliMap/replimap-mono/issues/8) (license key as URL query param — ([2e4b6d0](https://github.com/RepliMap/replimap-mono/commit/2e4b6d02abce4829ff0686775b18d95878db733d)) + ## [0.5.3](https://github.com/RepliMap/replimap-mono/compare/replimap-web-v0.5.2...replimap-web-v0.5.3) (2026-01-23) diff --git a/apps/web/package.json b/apps/web/package.json index 4037110..7b23ff8 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@replimap/web", - "version": "0.5.3", + "version": "0.6.0", "private": true, "scripts": { "dev": "next dev", diff --git a/package.json b/package.json index 183f59e..21a4774 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "replimap-mono", - "version": "1.4.3", + "version": "1.5.0", "private": true, "description": "RepliMap Monorepo - Cloud Infrastructure Visualization & Compliance", "scripts": {