@blakfy/cookie 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/README.md +63 -11
- package/dist/cookie.js +2 -2
- package/dist/cookie.js.map +1 -1
- package/dist/cookie.min.js +1 -1
- package/package.json +2 -1
- package/status.json +30 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,39 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/) and S
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [2.1.2] — 2026-05-07
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- `src/api.js` `VERSION` constant `"2.1.0"` → `"2.1.2"` (önceki yayınlarda paket sürümü ile senkron değildi; `window.BlakfyCookie.version` artık doğru sürümü döner)
|
|
11
|
+
|
|
12
|
+
### Docs
|
|
13
|
+
- README'de `data-blakfy-position` default değeri `bottom-right` olarak yanlış belgelenmişti → düzeltildi (`bottom-center`, kodda zaten böyleydi); enum tam liste ile güncellendi
|
|
14
|
+
- README Quick Start örneklerinden gereksiz `data-blakfy-position` override'ı kaldırıldı (default zaten alt-orta)
|
|
15
|
+
- examples/vanilla-html.html + wordpress-snippet.php: `bottom-right` → `bottom-center` (default ile hizalama)
|
|
16
|
+
- Installation bölümü eklendi (npm install + CDN seçenekleri: pinned vs auto-patch)
|
|
17
|
+
- `@blakfy/cookie-next` export tablosu eklendi
|
|
18
|
+
- Migration v1→v2 örneği npm CDN akışına güncellendi
|
|
19
|
+
- `RELEASE.md` baştan yeniden yazıldı (npm publish akışı, granular token, iki paket için manuel publish)
|
|
20
|
+
|
|
21
|
+
### Notes
|
|
22
|
+
- Bu **sadece patch + docs yayınıdır**; davranış değişmedi, public API değişmedi.
|
|
23
|
+
- `@2` semver tag jsDelivr CDN otomatik bu sürüme geçer.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## [2.1.1] — 2026-05-07
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
- **CDN_BASE** runtime URL'i `cdn.jsdelivr.net/gh/tariktunc/blakfy-cookie@v2` → `cdn.jsdelivr.net/npm/@blakfy/cookie@2` (versiyonlu, immutable, npm registry kaynağı)
|
|
31
|
+
- `cookie-next` `BlakfyCookieProvider`: `cdnVersion` prop'u artık npm CDN URL'i üretir (default `"2"` → `@blakfy/cookie@2`)
|
|
32
|
+
- `package.json` `files` listesine `status.json` eklendi (widget runtime'da fetch eder)
|
|
33
|
+
|
|
34
|
+
### Notes
|
|
35
|
+
- Bu sadece patch yayınıdır; v2.1.0 ile tüm public API'ler ve davranış aynıdır.
|
|
36
|
+
- `srcOverride` (Next wrapper) ile özel CDN URL'i geçenler etkilenmez.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
7
40
|
## [2.1.0] — 2026-04-30
|
|
8
41
|
|
|
9
42
|
### Added
|
package/README.md
CHANGED
|
@@ -1,10 +1,41 @@
|
|
|
1
1
|
# Blakfy Cookie Widget
|
|
2
2
|
|
|
3
|
-
>     
|
|
4
4
|
>
|
|
5
5
|
> Tek script ile **KVKK + GDPR + CCPA + Google CMv2 + Microsoft UET + Yandex Metrica + IAB TCF v2.2** uyumlu cookie consent (çerez onayı) widget. **23 dil**, **18 hazır preset** (üçüncü parti araç entegrasyonu), **3 renk teması**, **3-tab tercihler modalı** (Kategoriler / Hizmetler / Hakkında), **tag-gating** (script engelleme/serbest bırakma) dahil.
|
|
6
6
|
|
|
7
|
-
**Versiyon:** 2.1.
|
|
7
|
+
**Versiyon:** 2.1.2 • **Lisans:** MIT • **npm:** `@blakfy/cookie@2.1.2` · `@blakfy/cookie-next@2.1.2` • **CDN:** `cdn.jsdelivr.net/npm/@blakfy/cookie@2.1.2`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
İki yol var. Birini seç.
|
|
14
|
+
|
|
15
|
+
### A) CDN (önerilen — sıfır konfigürasyon)
|
|
16
|
+
|
|
17
|
+
| Strateji | URL | Ne zaman kullan |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| **Pinned** (sabit sürüm) | `cdn.jsdelivr.net/npm/@blakfy/cookie@2.1.2/dist/cookie.min.js` | Production — değişikliklerin gözden geçirilerek kabul edilmesini istersen |
|
|
20
|
+
| **Auto-patch** (semver tag) | `cdn.jsdelivr.net/npm/@blakfy/cookie@2/dist/cookie.min.js` | Otomatik güvenlik/patch güncellemeleri — major (`@3`) gelene kadar takip eder |
|
|
21
|
+
|
|
22
|
+
unpkg da çalışır: `unpkg.com/@blakfy/cookie@2.1.2/dist/cookie.min.js`.
|
|
23
|
+
|
|
24
|
+
### B) npm / bundler (Vite, Webpack, Rollup, Astro)
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm i @blakfy/cookie # Vanilla / bundler için widget
|
|
28
|
+
npm i @blakfy/cookie-next # Next.js / React wrapper (cookie'yi peer olarak çekmez, sadece wrapper)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
// app.js veya main.js
|
|
33
|
+
import "@blakfy/cookie";
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Bundler ile gelen versiyonu kontrol etmek için: `import { version } from "@blakfy/cookie"` mevcut değil — runtime'da `window.BlakfyCookie.version`.
|
|
37
|
+
|
|
38
|
+
> 💡 **Public API:** `window.BlakfyCookie` global'i hem CDN hem npm install yöntemiyle aynı şekilde tanımlanır. Aşağıdaki Quick Start CDN örneğindedir; npm install ediyorsan `<script src=...>` yerine `import "@blakfy/cookie"` kullan, gerisi aynı.
|
|
8
39
|
|
|
9
40
|
---
|
|
10
41
|
|
|
@@ -16,7 +47,7 @@
|
|
|
16
47
|
|
|
17
48
|
```html
|
|
18
49
|
<!-- Bootstrap: Tüm consent sinyallerini 'denied' olarak başlatır -->
|
|
19
|
-
<script src="https://cdn.jsdelivr.net/
|
|
50
|
+
<script src="https://cdn.jsdelivr.net/npm/@blakfy/cookie@2.1.2/dist/cookie-defaults.min.js"></script>
|
|
20
51
|
```
|
|
21
52
|
|
|
22
53
|
### 2. Site içerik script'lerin (GTM/GA4/Pixel/Clarity vb.)
|
|
@@ -38,19 +69,20 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
|
38
69
|
|
|
39
70
|
```html
|
|
40
71
|
<script
|
|
41
|
-
src="https://cdn.jsdelivr.net/
|
|
72
|
+
src="https://cdn.jsdelivr.net/npm/@blakfy/cookie@2.1.2/dist/cookie.min.js"
|
|
42
73
|
data-blakfy-locale="auto"
|
|
43
74
|
data-blakfy-policy-url="/cerez-politikasi"
|
|
44
75
|
data-blakfy-version="1.0"
|
|
45
76
|
data-blakfy-presets="ga4,gtm,facebook,clarity"
|
|
46
77
|
data-blakfy-ccpa="auto"
|
|
47
78
|
data-blakfy-tcf="false"
|
|
48
|
-
data-blakfy-position="bottom-right"
|
|
49
79
|
data-blakfy-theme="auto"
|
|
50
80
|
data-blakfy-accent="#3E5C3A"></script>
|
|
81
|
+
<!-- Konum varsayılanı: alt-orta (bottom-center). İstersen data-blakfy-position="bottom-right" / "top-center" vb. ile değiştir. -->
|
|
82
|
+
|
|
51
83
|
```
|
|
52
84
|
|
|
53
|
-
**Bittiğinde:** Sayfa yüklendiğinde
|
|
85
|
+
**Bittiğinde:** Sayfa yüklendiğinde **alt-orta**'da (varsayılan) consent banner ve "Powered by Blakfy Studio" badge belirir. Konumu değiştirmek için `data-blakfy-position` ile `bottom-right`, `bottom-left`, `top-center`, `top-right`, `top-left` seçeneklerinden birini ver. Kullanıcı bir karar verene kadar GTM/GA4/Facebook Pixel/Clarity tag'leri çalışmaz; karar verildiğinde otomatik aktif olur.
|
|
54
86
|
|
|
55
87
|
---
|
|
56
88
|
|
|
@@ -90,7 +122,8 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
|
|
90
122
|
presets="ga4,gtm,facebook,clarity"
|
|
91
123
|
ccpa="auto"
|
|
92
124
|
tcf={false}
|
|
93
|
-
position
|
|
125
|
+
// position varsayılanı "bottom-center" — değiştirmek istersen aç:
|
|
126
|
+
// position="bottom-right"
|
|
94
127
|
theme="auto"
|
|
95
128
|
accent="#3E5C3A"
|
|
96
129
|
>
|
|
@@ -102,6 +135,16 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
|
|
102
135
|
}
|
|
103
136
|
```
|
|
104
137
|
|
|
138
|
+
**`@blakfy/cookie-next` export'ları:**
|
|
139
|
+
|
|
140
|
+
| Export | Tip | Açıklama |
|
|
141
|
+
|---|---|---|
|
|
142
|
+
| `BlakfyCookieProvider` | React component | Widget'ı `next/script beforeInteractive` ile yükler. Tüm `data-blakfy-*` attribute'ları prop olarak. |
|
|
143
|
+
| `ConsentModeDefault` | React component | Bootstrap script'i (gtag/uetq/ym defaults `denied`). `<head>` içinde kullan. |
|
|
144
|
+
| `useBlakfyConsent()` | Hook | Mevcut consent state'i döndürür, değişimde re-render. |
|
|
145
|
+
| `useGating(category)` | Hook | Belirtilen kategori onaylı mı (`boolean`). Conditional render için. |
|
|
146
|
+
| `useTcf()` | Hook | TCF v2.2 TC string ve event listener wrapper'ı. |
|
|
147
|
+
|
|
105
148
|
Tam Next.js örneği: [`examples/nextjs/`](./examples/nextjs/).
|
|
106
149
|
Paket README'si: [`packages/cookie-next/README.md`](./packages/cookie-next/README.md).
|
|
107
150
|
|
|
@@ -202,7 +245,7 @@ Tüm `<script>` tag'i üzerine konabilen `data-blakfy-*` attribute'ları:
|
|
|
202
245
|
| `data-blakfy-policy-url` | `/cerez-politikasi` | URL | "Çerez Politikası" linki için hedef. |
|
|
203
246
|
| `data-blakfy-version` | `1.0` | string | **Politika versiyonu**. Bunu artırırsan tüm kullanıcılar tekrar onay vermek zorunda (re-consent). |
|
|
204
247
|
| `data-blakfy-audit-endpoint` | `null` | URL | Consent kararı bu endpoint'e POST edilir (KVKK Md.12 / GDPR Art.7(1) kanıt). |
|
|
205
|
-
| `data-blakfy-position` | `bottom-
|
|
248
|
+
| `data-blakfy-position` | `bottom-center` | enum | `bottom-center` \| `bottom-right` \| `bottom-left` \| `top-center` \| `top-right` \| `top-left` |
|
|
206
249
|
| `data-blakfy-theme` | `auto` | enum | **`light`** (beyaz) \| **`gray`** (açık gri) \| **`dark`** (siyah) \| `auto` (`prefers-color-scheme`) |
|
|
207
250
|
| `data-blakfy-accent` | `#3E5C3A` | hex | Buton ve vurgu rengi. |
|
|
208
251
|
| `data-blakfy-presets` | `null` | virgül listesi | Etkinleştirilecek preset key'leri. Örn: `ga4,gtm,facebook,clarity`. Aşağıda 18 preset listesi. |
|
|
@@ -211,7 +254,7 @@ Tüm `<script>` tag'i üzerine konabilen `data-blakfy-*` attribute'ları:
|
|
|
211
254
|
| `data-blakfy-ccpa` | `auto` | enum | `auto` (jurisdiction tespiti), `true` (her zaman aç), `false` (kapat) |
|
|
212
255
|
| `data-blakfy-gpc` | `respect` | enum | `respect` (tarayıcı GPC'si auto-deny say) \| `ignore` |
|
|
213
256
|
| `data-blakfy-dnt` | `respect` | enum | `respect` (UI'da uyar) \| `auto-deny` (auto-reject) |
|
|
214
|
-
| `data-blakfy-status-url` |
|
|
257
|
+
| `data-blakfy-status-url` | `cdn.jsdelivr.net/npm/@blakfy/cookie@2/status.json` | URL | Status bar mesajları için kaynak. Kendi domain'inde host'lamak için override et. |
|
|
215
258
|
| `data-blakfy-status` | `true` | bool | `false` ise status bar render edilmez. |
|
|
216
259
|
|
|
217
260
|
**Desteklenen 23 dil:** `tr`, `en`, `ar`, `fa`, `ur`, `fr`, `ru`, `de`, `he`, `uk`, `es`, `it`, `pt`, `nl`, `pl`, `sv`, `cs`, `zh`, `zh-TW`, `ja`, `ko`, `id`, `hi` (RTL: `ar`, `fa`, `ur`, `he`).
|
|
@@ -224,7 +267,7 @@ Tüm `<script>` tag'i üzerine konabilen `data-blakfy-*` attribute'ları:
|
|
|
224
267
|
|
|
225
268
|
| Metod | Sürüm | İmza | Açıklama |
|
|
226
269
|
|---|---|---|---|
|
|
227
|
-
| `version` | v1 | `string` | Kütüphane sürümü, örn. `"2.1.
|
|
270
|
+
| `version` | v1 | `string` | Kütüphane sürümü, örn. `"2.1.2"`. |
|
|
228
271
|
| `open()` | v1 | `() => void` | Tercihler modalını aç. |
|
|
229
272
|
| `acceptAll()` | v1 | `() => void` | Tüm kategorileri kabul et. |
|
|
230
273
|
| `rejectAll()` | v1 | `() => void` | Tüm kategorileri reddet (essential dışında). |
|
|
@@ -440,7 +483,16 @@ Webvisor `marketing` değil, **`recording`** kategorisi gerektirir. Modal'da bu
|
|
|
440
483
|
|
|
441
484
|
## Migration v1 → v2
|
|
442
485
|
|
|
443
|
-
**Kısa cevap:** Değişiklik gerekmez. v1 kullanıcıları `@1` etiketinde kalır, çalışmaya devam eder. v2'ye opt-in yapmak için **CDN URL'
|
|
486
|
+
**Kısa cevap:** Değişiklik gerekmez. v1 kullanıcıları `@1` etiketinde kalır, çalışmaya devam eder. v2'ye opt-in yapmak için **CDN URL'sini npm registry kaynağına çevir**:
|
|
487
|
+
|
|
488
|
+
```diff
|
|
489
|
+
- <script src="https://cdn.jsdelivr.net/gh/tariktunc/blakfy-cookie@1/cookie.js"></script>
|
|
490
|
+
+ <script src="https://cdn.jsdelivr.net/npm/@blakfy/cookie@2/dist/cookie.min.js"></script>
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
Tüm v1 attribute'ları korunur, kullanıcı consent cookie'si geriye uyumlu okunur. v2'de yeni eklenen özellikler (3-tab modal, 3 renk teması, 18 preset, TCF v2.2, CCPA, GPC) **opt-in** — varsayılanlar v1 davranışını taklit eder.
|
|
494
|
+
|
|
495
|
+
Bundler kullanıyorsan: `npm i @blakfy/cookie` ve `import "@blakfy/cookie"`.
|
|
444
496
|
|
|
445
497
|
Detay: [`MIGRATION.md`](./MIGRATION.md).
|
|
446
498
|
|
package/dist/cookie.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
(() => {
|
|
10
10
|
// src/core/config.js
|
|
11
|
-
var CDN_BASE = "https://cdn.jsdelivr.net/
|
|
11
|
+
var CDN_BASE = "https://cdn.jsdelivr.net/npm/@blakfy/cookie@2";
|
|
12
12
|
var DEFAULTS = {
|
|
13
13
|
locale: "auto",
|
|
14
14
|
mainLang: null,
|
|
@@ -3608,7 +3608,7 @@
|
|
|
3608
3608
|
};
|
|
3609
3609
|
|
|
3610
3610
|
// src/api.js
|
|
3611
|
-
var VERSION = "2.1.
|
|
3611
|
+
var VERSION = "2.1.2";
|
|
3612
3612
|
var CATEGORIES2 = ["analytics", "marketing", "functional", "recording"];
|
|
3613
3613
|
var createAPI = (ctx) => {
|
|
3614
3614
|
const { config, emitter, deps } = ctx;
|