c15t
Version:
<div align="center"> <img src="https://c15t.com/logo-icon.png" alt="c15t Logo" width="64" height="64" /> <h1>c15t</h1> <p>Transform privacy consent from a compliance checkbox into a fully observable system</p>
331 lines (212 loc) • 11.5 kB
Markdown
# c15t
## 1.5.0
### Minor Changes
- 230f749: feat(nextjs): added pages support + nextjs 13 support
### Patch Changes
- Updated dependencies [230f749]
- Updated dependencies [c1b87dd]
- @c15t/backend@1.5.0
- @c15t/translations@1.5.0
## 1.5.0-canary-20250722133547
### Patch Changes
- 35b5fc3: fix: removed package.json imports for Next 13 compatibility
- Updated dependencies [35b5fc3]
- @c15t/backend@1.5.0-canary-20250722133547
## 1.5.0-canary-20250722085128
### Minor Changes
- 35f052c: feat(nextjs): added pages support
### Patch Changes
- Updated dependencies [74e1825]
- @c15t/backend@1.5.0-canary-20250722085128
## 1.4.4
### Patch Changes
- f6a3e5f: fix(core, react): translation overrides sometimes not set before banner is shown
## 1.4.2
### Patch Changes
- 53774ce: fix(core): hasConsentFor should return true when no consent is needed
- Updated dependencies [53774ce]
- @c15t/translations@1.4.2
- @c15t/backend@1.4.2
## 1.4.2-canary-20250702103734
### Patch Changes
- eed347c: fix(core): hasConsentFor should return true when no consent is needed
- Updated dependencies [cd218e7]
- @c15t/translations@1.4.2-canary-20250702103734
- @c15t/backend@1.4.2-canary-20250702103734
## 1.4.1
### Patch Changes
- Updated dependencies [8afd304]
- @c15t/backend@1.4.1
## 1.4.0
### Minor Changes
- 6eb9a8d: feat(core, react): added ignoreGeoLocation, improved provider props
feat(core): added 'config' prop to store for better debugging
fix(react): add aria label to cookie banner component
fix(cli): removed env import
fix(cli): asks for pkg manager twice
## 1.3.3
### Patch Changes
- b4d53be: feat(core): added Google Tag Manager support
fix(react): allow trapFocus={false} in CookieBanner
fix(nextjs): improved url validation
## 1.3.3-canary-20250624131627
### Patch Changes
- 63200df: feat(core): added Google Tag Manager support
## 1.3.1
### Patch Changes
- 7fecb81: refactor(nextjs): fetch inital data from backend in c15t mode instead of duplicate logic
fix: incorrect link to quickstart
fix(issue-274): include nextjs externals in rslib
fix(core): fall back to API call if initialData promise is empty
chore: add translation for zh
- Updated dependencies [7fecb81]
- @c15t/translations@1.3.1
- @c15t/backend@1.3.1
## 1.3.1-canary-20250618084038
### Patch Changes
- 95edb35: fix(core): fall back to API call if initialData promise is empty
- Updated dependencies [5da2f28]
- @c15t/translations@1.3.1-canary-20250618084038
- @c15t/backend@1.3.1-canary-20250618084038
## 1.3.0
### Minor Changes
- 85e5e3d: ## 🌍 New Translations Package
- **NEW**: Added `@c15t/translations` package with comprehensive i18n support
- Added translations for 8 languages: English, German, Spanish, Finnish, French, Italian, Dutch, Portuguese
- Includes translations for consent banners, dialogs, and common phrases
- Replaced the former `@c15t/middleware` package functionality
## 🔧 CLI Enhancements
- **NEW**: Added telemetry system with framework and package manager detection
- **NEW**: Enhanced onboarding flow with better framework detection (React, Next.js, etc.)
- **NEW**: Automatic package manager detection (pnpm, yarn, npm)
- **NEW**: Added `--telemetry-debug` flag for debugging telemetry
- Improved error handling and user experience during setup
- Better file generation for different storage modes and configurations
## 🎯 Backend Updates
- **NEW**: Server-side translation support in consent banner handling
- Added language detection from `Accept-Language` headers
- Updated consent banner contracts to include translation schemas
- Enhanced jurisdiction checking with better default handling
- Updated user agent and IP address handling (now defaults to null instead of "unknown")
## ⚛️ React Package Changes
- **NEW**: Integrated translation support throughout components
- Updated `ConsentManagerProvider` to handle initial translation configuration
- Removed dependency on middleware package
- Enhanced consent manager store with translation capabilities
## 🔄 Next.js Package Restructuring
- **BREAKING**: Removed middleware exports and functionality
- **NEW**: Added `ConsentManagerProvider` component for server-side rendering
- **NEW**: Server-side consent banner detection with jurisdiction mapping
- Added support for extracting consent-relevant headers
- Updated to work with new translations system
## 🏗️ Core Package Updates
- **NEW**: Integrated translation configuration system
- Updated offline client to include default translations
- Enhanced consent banner fetching with translation support
- Improved store management with initial data handling
## 🔄 Infrastructure & Tooling
- **NEW**: Added GitHub Actions workflow for canary releases
- **NEW**: Added branch synchronization workflow (main → canary)
- Updated BiomeJS configuration with comprehensive linting rules
- Enhanced build configurations across packages
## 📦 Package Management
- Updated dependencies across all packages
- Added peer dependencies where appropriate
- Improved module exports and build configurations
- Enhanced TypeScript configurations for better type safety
***
## 📋 Detailed Change Breakdown
### **New Features**
- Added multi-language support for consent banners with new translations in German, Spanish, Finnish, French, Italian, Dutch, and Portuguese.
- Consent banner logic enhanced to detect user location and language from HTTP headers, showing localized messages per jurisdiction.
- Next.js ConsentManagerProvider now performs server-side initialization of consent state for consistent banner display and translation.
- CLI onboarding improved with robust environment detection, modularized flow, enhanced telemetry, and guided dependency installation.
- Introduced new CLI global flag for telemetry debug mode.
### **Improvements**
- Consent banner responses now include detailed translation structures and jurisdiction information.
- Translation utilities and types centralized in a new `@c15t/translations` package for easier integration.
- Onboarding file generation refactored to unify client config and environment file creation.
- Documentation and changelogs updated for new canary releases and integration guidance.
- CLI telemetry enhanced with asynchronous event tracking and debug logging support.
### **Bug Fixes**
- Fixed consent banner logic for correct handling of US jurisdiction and fallback scenarios.
- Improved error handling and debug logging in CLI telemetry and onboarding.
### **Refactor**
- Removed legacy middleware exports and Node SDK re-exports from Next.js and middleware packages.
- Consolidated jurisdiction and consent banner logic into dedicated Next.js consent-manager-provider modules.
- Updated CLI context creation to async with enriched environment metadata and improved logging.
- Refactored onboarding storage modes to delegate file generation and unify cancellation handling.
### **Tests**
- Added extensive tests for consent banner display logic, jurisdiction detection, language preference parsing, and translation selection.
- Removed deprecated tests for deleted middleware and jurisdiction modules.
### **Chores**
- Updated package versions and dependencies to latest canary releases, including addition of `@c15t/translations`.
- Added and updated GitHub Actions workflows for canary releases and branch synchronization.
- Updated package metadata and configuration files for consistency and improved build settings.
This release represents a major step forward in internationalization support, developer experience improvements, and architectural refinements across the entire c15t ecosystem.
### Patch Changes
- Updated dependencies [85e5e3d]
- @c15t/backend@1.3.0
- @c15t/translations@1.3.0
## 1.2.2-canary-20250603153501
### Patch Changes
- e50e925: refactor(core, nextjs): removed use of cookies
fix(nextjs): pass through promise instead of blocking the app
feat(react, core): added ability to use server-side translations from show-consent-banner endpoint
## 1.2.2-canary-20250602152741
### Patch Changes
- Updated dependencies [131a2ff]
- @c15t/backend@1.2.2-canary-20250602152741
## 1.2.2-canary-20250521133509
### Patch Changes
- Updated dependencies [e4b9778]
- @c15t/backend@1.2.2-canary-20250521133509
## 1.2.2-canary-20250514203718
### Patch Changes
- f24f11b: bump package
- Updated dependencies [f24f11b]
- @c15t/backend@1.2.2-canary-20250514203718
- @c15t/translations@1.2.2-canary-20250514203718
## 1.2.2-canary-20250514183211
### Patch Changes
- f64f000: feat: added @c15t/nextjs, @c15t/translations for better integration, server-side translations & fetching of consent banner
- Updated dependencies [f64f000]
- @c15t/translations@1.2.2-canary-20250514183211
- @c15t/backend@1.2.2-canary-20250514183211
## 1.2.1
### Patch Changes
- Updated dependencies [[`aca32d3`](https://github.com/c15t/c15t/commit/aca32d3f0f76d75ad618a8ba3386ce385ac612e4)]:
- @c15t/backend@1.2.1
## 1.2.0
### Minor Changes
- [#224](https://github.com/c15t/c15t/pull/224) [`838a9b5`](https://github.com/c15t/c15t/commit/838a9b52c31326899ec3c903e43bf7bc31a6490f) Thanks [@BurnedChris](https://github.com/BurnedChris)! - Refactored backend to be a new orpc client / server
### Patch Changes
- [#222](https://github.com/c15t/c15t/pull/222) [`b1de2ba`](https://github.com/c15t/c15t/commit/b1de2baccd63295d49fb2868f63659f5ff48a9ce) Thanks [@KayleeWilliams](https://github.com/KayleeWilliams)! - fix(core, react): added "common" translations, removed widget translations
- Updated dependencies [[`838a9b5`](https://github.com/c15t/c15t/commit/838a9b52c31326899ec3c903e43bf7bc31a6490f)]:
- @c15t/backend@1.2.0
## 1.1.4
### Patch Changes
- [#207](https://github.com/c15t/c15t/pull/207) [`2d81c9f`](https://github.com/c15t/c15t/commit/2d81c9fc84ee960e46196dfd460407a925901a82) Thanks [@KayleeWilliams](https://github.com/KayleeWilliams)! - fix(core, react): translations not working
## 1.1.3
### Patch Changes
- [#203](https://github.com/c15t/c15t/pull/203) [`4d47e21`](https://github.com/c15t/c15t/commit/4d47e2109bfc894f1666b19f4ff40d7398f10c57) Thanks [@KayleeWilliams](https://github.com/KayleeWilliams)! - fix(core): callbacks not working on c15t mode
## 1.0.1
### Patch Changes
- [`08446ae`](https://github.com/c15t/c15t/commit/08446aef443a20a2262477a1dca3569d6bf672ad) Thanks [@BurnedChris](https://github.com/BurnedChris)! - # Removal of localstorage option in offline and custom
- **Documentation**
- Updated offline mode documentation to remove references to the `localStorageKey` configuration option.
- **Bug Fixes**
- Removed the ability to customize the localStorage key for storing consent data; a fixed key is now always used.
- **Refactor**
- Streamlined internal handling of localStorage keys by removing related configuration options and parameters.
- **Tests**
- Updated and removed tests related to custom localStorage key usage.
## 1.0.0-rc.1
### Patch Changes
- Refactored package.json imports
## 0.0.1-beta.10
### Patch Changes
- all build tools now use rslib + new formatting from biomejs
## 0.0.1-beta.9
### Patch Changes
- 1912aa9: Refactored codebase to use Ultracite Biome Config for stricter linting