@tantainnovative/ndpr-toolkit 3.10.1 → 3.10.3
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 +45 -0
- package/README.md +10 -8
- package/package.json +33 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,51 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [3.10.3](https://github.com/mr-tanta/ndpr-toolkit/compare/v3.10.2...v3.10.3) (2026-05-25)
|
|
6
|
+
|
|
7
|
+
### Bug fix: 4 missing subpath exports
|
|
8
|
+
|
|
9
|
+
The published `exports` map in the root `package.json` was missing four subpaths whose dist files were always being built and shipped in the tarball but were never wired into the import resolver. Affected paths:
|
|
10
|
+
|
|
11
|
+
- `./headless` — added in 3.10.0 (alias of `/hooks`)
|
|
12
|
+
- `./lawful-basis/lite` — added in 3.8.0
|
|
13
|
+
- `./cross-border/lite` — added in 3.8.0
|
|
14
|
+
- `./ropa/lite` — added in 3.8.0
|
|
15
|
+
|
|
16
|
+
Consumers running `import { … } from '@tantainnovative/ndpr-toolkit/headless'` (or any of the three `/lite` paths) on 3.8.0 through 3.10.2 got a Node resolution error despite the dist files being present in their `node_modules`. The bug was that the inner `packages/ndpr-toolkit/package.json` had the exports right, but only the root `package.json` is consumed by the publish workflow — and the root never got them.
|
|
17
|
+
|
|
18
|
+
3.10.3 adds all four entries to both the `exports` map and the `typesVersions["*"]` block in the root `package.json`. Verified by inspecting the published 3.10.3 tarball's `package.json` to confirm `npm view @tantainnovative/ndpr-toolkit@3.10.3 exports` lists all 23 paths.
|
|
19
|
+
|
|
20
|
+
### Docs
|
|
21
|
+
|
|
22
|
+
- New **`/docs/guides/upgrading-3-7-to-3-10`** guide — concise upgrade path for the common case of consumers stuck on 3.7.0 (the last version that reached npm before the publish-pipeline regression). Covers what's new, what didn't change, the post-bump verify checklist, and the reason 3.10.3 is the right target rather than any intermediate.
|
|
23
|
+
- README — compacted the "What's new" notice. The 700-word historical narrative is now a brief 3.10.x summary with links to the new upgrade guide and the full CHANGELOG. Reverted the StackBlitz / CodeSandbox "Open in" links from `examples/ecommerce-starter` back to `examples/nextjs-app` (the comprehensive all-in-one demo — the ecommerce-starter is great as a deeper example but `examples/nextjs-app` is the better headline first-look).
|
|
24
|
+
|
|
25
|
+
### Verification
|
|
26
|
+
|
|
27
|
+
- All 23 exports keys present in both `exports` and `typesVersions["*"]` (was 19 in 3.10.2)
|
|
28
|
+
- Build outputs verified locally — every claimed import path resolves to an existing `dist/<name>.{js,mjs,d.ts}`
|
|
29
|
+
- Tests: 1192 / 1192 passing (no runtime changes)
|
|
30
|
+
- `tsc --noEmit` clean for the docs site
|
|
31
|
+
|
|
32
|
+
## [3.10.2](https://github.com/mr-tanta/ndpr-toolkit/compare/v3.10.1...v3.10.2) (2026-05-25)
|
|
33
|
+
|
|
34
|
+
README-only patch — runtime is byte-identical to 3.10.1. Fixes the npm-rendered README so it reflects the current state of the toolkit.
|
|
35
|
+
|
|
36
|
+
### What was wrong
|
|
37
|
+
|
|
38
|
+
The npm publish workflow runs `npm publish` from `working-directory: .` (the repo root), so the README that lands on the npm package page is **`/README.md`**, not `packages/ndpr-toolkit/README.md`. Three earlier releases (3.8.1, 3.9.0, 3.10.0) updated the inner README — wrong file — leaving the npm-visible header stuck at the v3.4.0 "What's new" notice with the v3.4.0 release link and the `1098 passing` tests badge.
|
|
39
|
+
|
|
40
|
+
### What changed in this patch
|
|
41
|
+
|
|
42
|
+
- "What's new" notice — v3.4.0 paragraph → consolidated 3.5 → 3.10.x highlights (NDPRThemeProvider, `/headless`, production DSR backend example, ecommerce starter, SSR-safe templates, Bun quickstart, typed DSR callbacks, Lite manager variants, focus management).
|
|
43
|
+
- Header release link — `v3.4.0 Release` → `v3.10.1 Release`.
|
|
44
|
+
- Tests badge — `1098 passing` → `1192 passing`.
|
|
45
|
+
- StackBlitz / CodeSandbox "Open in" links — `examples/nextjs-app` (no longer exists) → `examples/ecommerce-starter`.
|
|
46
|
+
- Screenshot image URLs — pinned tag `v3.5.2` → `v3.10.1` so the images come from the current release tree.
|
|
47
|
+
|
|
48
|
+
The body of the README already had the correct content for everything below the header (Bun quickstart, Choose Your Layer, Adapters, Live Demos table, etc.).
|
|
49
|
+
|
|
5
50
|
## [3.10.1](https://github.com/mr-tanta/ndpr-toolkit/compare/v3.10.0...v3.10.1) (2026-05-25)
|
|
6
51
|
|
|
7
52
|
Hotfix release. Code and runtime are identical to 3.10.0 — this patch fixes the build/publish pipeline that silently failed every release from 3.8.0 onward, so 3.10.1 is the first version since 3.7.0 to actually reach npm.
|
package/README.md
CHANGED
|
@@ -6,20 +6,22 @@
|
|
|
6
6
|
[](https://www.npmjs.com/package/@tantainnovative/ndpr-toolkit)
|
|
7
7
|
[](https://opensource.org/licenses/MIT)
|
|
8
8
|
[](https://www.typescriptlang.org/)
|
|
9
|
-
[](#)
|
|
10
10
|
[](https://bundlephobia.com/package/@tantainnovative/ndpr-toolkit)
|
|
11
11
|
|
|
12
12
|
v3 ships **zero-config presets**, **pluggable storage adapters**, **compound components**, and a **compliance score engine** — eight production-ready modules covering consent, data subject rights, DPIA, breach notification, privacy policies, lawful basis, cross-border transfers, and ROPA.
|
|
13
13
|
|
|
14
|
-
**[Documentation](https://ndprtoolkit.com.ng)** | **[Live Demos](https://ndprtoolkit.com.ng/ndpr-demos)** | **[npm](https://www.npmjs.com/package/@tantainnovative/ndpr-toolkit)** | **[Blog](https://ndprtoolkit.com.ng/blog)** | **[v3.
|
|
14
|
+
**[Documentation](https://ndprtoolkit.com.ng)** | **[Live Demos](https://ndprtoolkit.com.ng/ndpr-demos)** | **[npm](https://www.npmjs.com/package/@tantainnovative/ndpr-toolkit)** | **[Blog](https://ndprtoolkit.com.ng/blog)** | **[v3.10.3 Release](https://github.com/mr-tanta/ndpr-toolkit/releases/tag/v3.10.3)**
|
|
15
15
|
|
|
16
16
|
[](https://stackblitz.com/github/mr-tanta/ndpr-toolkit/tree/main/examples/nextjs-app)
|
|
17
17
|
[](https://codesandbox.io/p/github/mr-tanta/ndpr-toolkit/main/examples/nextjs-app)
|
|
18
18
|
|
|
19
|
-
> **What's new in 3.
|
|
19
|
+
> **What's new in 3.10.x:** Typed theming via `<NDPRThemeProvider>`, a `/headless` subpath alias of `/hooks` for headless-UI consumers, and a production-grade DSR backend reference at `examples/dsr-backend-prod/` (Prisma + Resend behind no-infra shims). New docs guides: [theming](https://ndprtoolkit.com.ng/docs/guides/theming), [headless](https://ndprtoolkit.com.ng/docs/guides/headless), [production-dsr-backend](https://ndprtoolkit.com.ng/docs/guides/production-dsr-backend).
|
|
20
|
+
>
|
|
21
|
+
> **Upgrading from 3.7.x?** See the [3.7 → 3.10 upgrade guide](https://ndprtoolkit.com.ng/docs/guides/upgrading-3-7-to-3-10) — fully additive, no API breaks. Full changelog on [GitHub](https://github.com/mr-tanta/ndpr-toolkit/blob/main/CHANGELOG.md).
|
|
20
22
|
|
|
21
23
|
<p align="center">
|
|
22
|
-
<img src="https://raw.githubusercontent.com/mr-tanta/ndpr-toolkit/v3.
|
|
24
|
+
<img src="https://raw.githubusercontent.com/mr-tanta/ndpr-toolkit/v3.10.3/public/screenshots/hero.png" alt="NDPA Toolkit — NDPA Compliance Made Beautiful" width="800" />
|
|
23
25
|
</p>
|
|
24
26
|
|
|
25
27
|
---
|
|
@@ -68,7 +70,7 @@ import { apiAdapter } from '@tantainnovative/ndpr-toolkit/adapters';
|
|
|
68
70
|
That's it. NDPA-compliant consent with server-side persistence in under 20 lines.
|
|
69
71
|
|
|
70
72
|
<p align="center">
|
|
71
|
-
<img src="https://raw.githubusercontent.com/mr-tanta/ndpr-toolkit/v3.
|
|
73
|
+
<img src="https://raw.githubusercontent.com/mr-tanta/ndpr-toolkit/v3.10.3/public/screenshots/consent-demo.png" alt="Consent Management Demo — interactive consent banner with state inspector" width="800" />
|
|
72
74
|
<br />
|
|
73
75
|
<em>Interactive consent demo with configurable position, theme, storage, and real-time state inspector</em>
|
|
74
76
|
</p>
|
|
@@ -432,13 +434,13 @@ Every module has an interactive demo. No signup, no setup — try them instantly
|
|
|
432
434
|
|
|
433
435
|
<p align="center">
|
|
434
436
|
<a href="https://ndprtoolkit.com.ng/ndpr-demos">
|
|
435
|
-
<img src="https://raw.githubusercontent.com/mr-tanta/ndpr-toolkit/v3.
|
|
437
|
+
<img src="https://raw.githubusercontent.com/mr-tanta/ndpr-toolkit/v3.10.3/public/screenshots/demos-overview.png" alt="8 interactive live demos — zero setup required" width="800" />
|
|
436
438
|
</a>
|
|
437
439
|
</p>
|
|
438
440
|
|
|
439
441
|
<p align="center">
|
|
440
|
-
<img src="https://raw.githubusercontent.com/mr-tanta/ndpr-toolkit/v3.
|
|
441
|
-
<img src="https://raw.githubusercontent.com/mr-tanta/ndpr-toolkit/v3.
|
|
442
|
+
<img src="https://raw.githubusercontent.com/mr-tanta/ndpr-toolkit/v3.10.3/public/screenshots/dsr-demo.png" alt="Data Subject Rights — 8 rights with request tracking" width="400" />
|
|
443
|
+
<img src="https://raw.githubusercontent.com/mr-tanta/ndpr-toolkit/v3.10.3/public/screenshots/breach-demo.png" alt="Breach Notification — 72-hour countdown with step-by-step workflow" width="400" />
|
|
442
444
|
</p>
|
|
443
445
|
|
|
444
446
|
<p align="center">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tantainnovative/ndpr-toolkit",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Nigeria Data Protection Toolkit — enterprise-grade compliance components for the Nigeria Data Protection Act (NDPA) 2023",
|
|
6
6
|
"pnpm": {
|
|
@@ -112,6 +112,11 @@
|
|
|
112
112
|
"import": "./dist/hooks.mjs",
|
|
113
113
|
"require": "./dist/hooks.js"
|
|
114
114
|
},
|
|
115
|
+
"./headless": {
|
|
116
|
+
"types": "./dist/headless.d.ts",
|
|
117
|
+
"import": "./dist/headless.mjs",
|
|
118
|
+
"require": "./dist/headless.js"
|
|
119
|
+
},
|
|
115
120
|
"./consent": {
|
|
116
121
|
"types": "./dist/consent.d.ts",
|
|
117
122
|
"import": "./dist/consent.mjs",
|
|
@@ -142,16 +147,31 @@
|
|
|
142
147
|
"import": "./dist/lawful-basis.mjs",
|
|
143
148
|
"require": "./dist/lawful-basis.js"
|
|
144
149
|
},
|
|
150
|
+
"./lawful-basis/lite": {
|
|
151
|
+
"types": "./dist/lawful-basis-lite.d.ts",
|
|
152
|
+
"import": "./dist/lawful-basis-lite.mjs",
|
|
153
|
+
"require": "./dist/lawful-basis-lite.js"
|
|
154
|
+
},
|
|
145
155
|
"./cross-border": {
|
|
146
156
|
"types": "./dist/cross-border.d.ts",
|
|
147
157
|
"import": "./dist/cross-border.mjs",
|
|
148
158
|
"require": "./dist/cross-border.js"
|
|
149
159
|
},
|
|
160
|
+
"./cross-border/lite": {
|
|
161
|
+
"types": "./dist/cross-border-lite.d.ts",
|
|
162
|
+
"import": "./dist/cross-border-lite.mjs",
|
|
163
|
+
"require": "./dist/cross-border-lite.js"
|
|
164
|
+
},
|
|
150
165
|
"./ropa": {
|
|
151
166
|
"types": "./dist/ropa.d.ts",
|
|
152
167
|
"import": "./dist/ropa.mjs",
|
|
153
168
|
"require": "./dist/ropa.js"
|
|
154
169
|
},
|
|
170
|
+
"./ropa/lite": {
|
|
171
|
+
"types": "./dist/ropa-lite.d.ts",
|
|
172
|
+
"import": "./dist/ropa-lite.mjs",
|
|
173
|
+
"require": "./dist/ropa-lite.js"
|
|
174
|
+
},
|
|
155
175
|
"./adapters": {
|
|
156
176
|
"types": "./dist/adapters.d.ts",
|
|
157
177
|
"import": "./dist/adapters.mjs",
|
|
@@ -202,6 +222,9 @@
|
|
|
202
222
|
"hooks": [
|
|
203
223
|
"./dist/hooks.d.ts"
|
|
204
224
|
],
|
|
225
|
+
"headless": [
|
|
226
|
+
"./dist/headless.d.ts"
|
|
227
|
+
],
|
|
205
228
|
"consent": [
|
|
206
229
|
"./dist/consent.d.ts"
|
|
207
230
|
],
|
|
@@ -220,12 +243,21 @@
|
|
|
220
243
|
"lawful-basis": [
|
|
221
244
|
"./dist/lawful-basis.d.ts"
|
|
222
245
|
],
|
|
246
|
+
"lawful-basis/lite": [
|
|
247
|
+
"./dist/lawful-basis-lite.d.ts"
|
|
248
|
+
],
|
|
223
249
|
"cross-border": [
|
|
224
250
|
"./dist/cross-border.d.ts"
|
|
225
251
|
],
|
|
252
|
+
"cross-border/lite": [
|
|
253
|
+
"./dist/cross-border-lite.d.ts"
|
|
254
|
+
],
|
|
226
255
|
"ropa": [
|
|
227
256
|
"./dist/ropa.d.ts"
|
|
228
257
|
],
|
|
258
|
+
"ropa/lite": [
|
|
259
|
+
"./dist/ropa-lite.d.ts"
|
|
260
|
+
],
|
|
229
261
|
"adapters": [
|
|
230
262
|
"./dist/adapters.d.ts"
|
|
231
263
|
],
|