@c15t/nextjs 1.5.0 → 1.6.0
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/README.md +107 -34
- package/dist/client.cjs +1 -0
- package/dist/client.d.ts +3 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +1 -0
- package/dist/components/callbacks/index.cjs +2 -0
- package/dist/components/callbacks/index.d.ts +5 -0
- package/dist/components/callbacks/index.d.ts.map +1 -0
- package/dist/components/callbacks/index.js +2 -0
- package/dist/components/consent-manager-provider/index.cjs +1 -1
- package/dist/components/consent-manager-provider/index.d.ts +2 -2
- package/dist/components/consent-manager-provider/index.d.ts.map +1 -1
- package/dist/components/consent-manager-provider/index.js +1 -1
- package/dist/components/consent-manager-provider/initial-data-hoc.d.ts +1 -2
- package/dist/components/consent-manager-provider/initial-data-hoc.d.ts.map +1 -1
- package/dist/components/consent-manager-provider/pages.d.ts +1 -1
- package/dist/components/consent-manager-provider/pages.d.ts.map +1 -1
- package/dist/components/consent-manager-provider/utils/enrich-options.d.ts +1 -1
- package/dist/components/consent-manager-provider/utils/enrich-options.d.ts.map +1 -1
- package/dist/components/consent-manager-provider/utils/initial-data.test.cjs +1 -1
- package/dist/components/consent-manager-provider/utils/initial-data.test.js +1 -1
- package/dist/components/react/headless.cjs +1 -0
- package/dist/components/react/headless.d.ts +2 -0
- package/dist/components/react/headless.d.ts.map +1 -0
- package/dist/components/react/headless.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/pages.cjs +1 -1
- package/dist/pages.d.ts +2 -3
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +1 -1
- package/dist/shared.cjs +1 -0
- package/dist/shared.d.ts +3 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +1 -0
- package/dist/types.cjs +1 -0
- package/dist/types.d.ts +38 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +0 -0
- package/dist/version.cjs +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +54 -16
- package/readme.json +36 -0
package/README.md
CHANGED
|
@@ -1,53 +1,128 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://c15t.com?utm_source=github&utm_medium=repopage_%40c15t%2Fnextjs" target="_blank" rel="noopener noreferrer">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="../../docs/assets/c15t-banner-readme-dark.svg" type="image/svg+xml">
|
|
5
|
+
<img src="../../docs/assets/c15t-banner-readme-light.svg" alt="c15t Banner" type="image/svg+xml">
|
|
6
|
+
</picture>
|
|
7
|
+
</a>
|
|
8
|
+
<br />
|
|
9
|
+
<h1 align="center">@c15t/nextjs: Next.js Integration</h1>
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
[](https://github.com/c15t/c15t)
|
|
13
|
+
[](https://github.com/c15t/c15t/actions/workflows/ci.yml)
|
|
14
|
+
[](https://github.com/c15t/c15t/blob/main/LICENSE.md)
|
|
15
|
+
[](https://c15t.com/discord)
|
|
16
|
+
[](https://www.npmjs.com/package/@c15t/nextjs)
|
|
17
|
+
[](https://github.com/c15t/c15t)
|
|
18
|
+
[](https://github.com/c15t/c15t/commits/main)
|
|
19
|
+
[](https://github.com/c15t/c15t/issues)
|
|
20
|
+
|
|
21
|
+
Developer-first CMP for Next.js: cookie banner, consent manager, preferences centre. GDPR ready with minimal setup and rich customization
|
|
22
|
+
|
|
23
|
+
## Key Features
|
|
24
|
+
|
|
25
|
+
- Works with Next.js 15, 14, and 13
|
|
26
|
+
- Full 'use client' support for React Server Components
|
|
27
|
+
- Server-side rendering support for both app and pages routers
|
|
28
|
+
- Automatic GDPR, CCPA, and LGPD compliance
|
|
29
|
+
- Minimal configuration with TypeScript-first design
|
|
30
|
+
- Headless, customisable UI components (Cookie Banner, Consent Dialog, etc.)
|
|
31
|
+
- Built-in internationalisation support
|
|
32
|
+
- Seamless consent storage and tracking
|
|
33
|
+
|
|
34
|
+
## Prerequisites
|
|
35
|
+
|
|
36
|
+
- Next.js 13.5.4 or later
|
|
37
|
+
- React 18 or later
|
|
38
|
+
- Node.js 18.17.0 or later
|
|
39
|
+
- A hosted [c15t instance](https://consent.io) (free sign-up) or [self-hosted deployment](https://c15t.com/docs/self-host/v2)
|
|
40
|
+
|
|
41
|
+
## Quick Start
|
|
42
|
+
|
|
43
|
+
Easiest setup with @c15t/cli:
|
|
1
44
|
|
|
2
|
-
|
|
45
|
+
```bash
|
|
46
|
+
# Generate schema and code
|
|
47
|
+
pnpm dlx @c15t/cli generate
|
|
48
|
+
# Alternatives:
|
|
49
|
+
# npx @c15t/cli generate
|
|
50
|
+
# bunx --bun @c15t/cli generate
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
The CLI will:
|
|
3
54
|
|
|
4
|
-
|
|
55
|
+
- Install necessary packages
|
|
56
|
+
- Configure your c15t instance
|
|
57
|
+
- Set up environment variables
|
|
58
|
+
- Add consent management components to your app
|
|
5
59
|
|
|
6
|
-
## Installation
|
|
60
|
+
## Manual Installation
|
|
7
61
|
|
|
8
62
|
```bash
|
|
9
|
-
npm install @c15t/nextjs
|
|
10
|
-
# or
|
|
11
|
-
yarn add @c15t/nextjs
|
|
12
|
-
# or
|
|
13
63
|
pnpm add @c15t/nextjs
|
|
14
64
|
```
|
|
15
65
|
|
|
16
|
-
|
|
66
|
+
To manually install, follow the guide in our [docs – manual setup](https://c15t.com/docs/frameworks/nextjs/quickstart#manual-setup).
|
|
67
|
+
|
|
68
|
+
## Usage
|
|
69
|
+
|
|
70
|
+
1. Import `ConsentManagerProvider` in your app's root layout
|
|
71
|
+
2. Add `CookieBanner` and `ConsentManagerDialog` components
|
|
72
|
+
3. Customise styling and behaviour to fit your app
|
|
73
|
+
4. For full implementation details, see the [Next.js quickstart docs](https://c15t.com/docs/frameworks/next/quickstart)
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
// app/layout.tsx
|
|
77
|
+
import { ConsentManagerProvider, CookieBanner } from '@c15t/nextjs'
|
|
78
|
+
|
|
79
|
+
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
80
|
+
return (
|
|
81
|
+
<html lang="en">
|
|
82
|
+
<body>
|
|
83
|
+
<ConsentManagerProvider>
|
|
84
|
+
{children}
|
|
85
|
+
<CookieBanner />
|
|
86
|
+
</ConsentManagerProvider>
|
|
87
|
+
</body>
|
|
88
|
+
</html>
|
|
89
|
+
)
|
|
90
|
+
}
|
|
91
|
+
```
|
|
17
92
|
|
|
18
|
-
|
|
19
|
-
- 🎯 Type-safe API client
|
|
20
|
-
- 🎨 Pre-built React components
|
|
21
|
-
- 🔒 Secure consent management
|
|
22
|
-
- 📱 Responsive design
|
|
23
|
-
- 🌐 Server-side rendering support
|
|
93
|
+
## Documentation
|
|
24
94
|
|
|
25
|
-
|
|
95
|
+
For further information, guides, and examples visit the [reference documentation](https://c15t.com/docs/frameworks/next/quickstart).
|
|
26
96
|
|
|
27
|
-
|
|
97
|
+
## Support
|
|
28
98
|
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
99
|
+
- Join our [Discord community](https://c15t.com/discord)
|
|
100
|
+
- Open an issue on our [GitHub repository](https://github.com/c15t/c15t/issues)
|
|
101
|
+
- Visit [consent.io](https://consent.io) and use the chat widget
|
|
102
|
+
- Contact our support team via email [support@consent.io](mailto:support@consent.io)
|
|
33
103
|
|
|
34
|
-
|
|
104
|
+
## Contributing
|
|
35
105
|
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
106
|
+
- We're open to all community contributions!
|
|
107
|
+
- Read our [Contribution Guidelines](https://c15t.com/docs/oss/contributing)
|
|
108
|
+
- Review our [Code of Conduct](https://c15t.com/docs/oss/code-of-conduct)
|
|
109
|
+
- Fork the repository
|
|
110
|
+
- Create a new branch for your feature
|
|
111
|
+
- Submit a pull request
|
|
112
|
+
- **All contributions, big or small, are welcome and appreciated!**
|
|
39
113
|
|
|
40
|
-
|
|
114
|
+
## Security
|
|
41
115
|
|
|
42
|
-
|
|
43
|
-
- `createConsentClient`: Function for creating a consent client instance
|
|
116
|
+
If you believe you have found a security vulnerability in c15t, we encourage you to **_responsibly disclose this and NOT open a public issue_**. We will investigate all legitimate reports.
|
|
44
117
|
|
|
118
|
+
Our preference is that you make use of GitHub's private vulnerability reporting feature to disclose potential security vulnerabilities in our Open Source Software. To do this, please visit [https://github.com/c15t/c15t/security](https://github.com/c15t/c15t/security) and click the "Report a vulnerability" button.
|
|
45
119
|
|
|
46
|
-
|
|
120
|
+
### Security Policy
|
|
47
121
|
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
122
|
+
- Please do not share security vulnerabilities in public forums, issues, or pull requests
|
|
123
|
+
- Provide detailed information about the potential vulnerability
|
|
124
|
+
- Allow reasonable time for us to address the issue before any public disclosure
|
|
125
|
+
- We are committed to addressing security concerns promptly and transparently
|
|
51
126
|
|
|
52
127
|
## License
|
|
53
128
|
|
|
@@ -55,6 +130,4 @@ pnpm add @c15t/nextjs
|
|
|
55
130
|
|
|
56
131
|
---
|
|
57
132
|
|
|
58
|
-
|
|
59
|
-
<strong>Built with ❤️ by the <a href="https://www.consent.io">consent.io</a> team</strong>
|
|
60
|
-
</div>
|
|
133
|
+
**Built with ❤️ by the [consent.io](https://www.consent.io?utm_source=github&utm_medium=repopage_%40c15t%2Fnextjs) team**
|
package/dist/client.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_modules__={"./components/callbacks":function(e){e.exports=require("./components/callbacks/index.cjs")},"./shared":function(e){e.exports=require("./shared.cjs")}},__webpack_module_cache__={};function __webpack_require__(e){var _=__webpack_module_cache__[e];if(void 0!==_)return _.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};for(var __webpack_i__ in(()=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ConsentManagerCallbacks:()=>e.ConsentManagerCallbacks});var e=__webpack_require__("./components/callbacks"),_=__webpack_require__("./shared"),r={};for(var a in _)0>["ConsentManagerCallbacks","default"].indexOf(a)&&(r[a]=(function(e){return _[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,r)})(),exports.ConsentManagerCallbacks=__webpack_exports__.ConsentManagerCallbacks,__webpack_exports__)-1===["ConsentManagerCallbacks"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,cAAc,UAAU,CAAC"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as a from"./components/callbacks/index.js";export*from"./shared.js";var s=a.ConsentManagerCallbacks;export{s as ConsentManagerCallbacks};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ConsentManagerCallbacks:()=>ConsentManagerCallbacks});let react_namespaceObject=require("@c15t/react"),external_react_namespaceObject=require("react");function ConsentManagerCallbacks({callbacks:e}){let{setCallback:_}=(0,react_namespaceObject.useConsentManager)();return(0,external_react_namespaceObject.useEffect)(()=>{if(e)for(let[r,a]of Object.entries(e))_(r,a)},[e,_]),null}for(var __webpack_i__ in exports.ConsentManagerCallbacks=__webpack_exports__.ConsentManagerCallbacks,__webpack_exports__)-1===["ConsentManagerCallbacks"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/callbacks/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,2BAA2B,EAEhC,MAAM,aAAa,CAAC;AAGrB,wBAAgB,uBAAuB,CAAC,EACvC,SAAS,GACT,EAAE;IACF,SAAS,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;CAC/D,QAiBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ConsentManagerProvider:()=>ConsentManagerProvider});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),react_namespaceObject=require("@c15t/react"),headers_namespaceObject=require("next/headers"),enrich_options_cjs_namespaceObject=require("./utils/enrich-options.cjs"),initial_data_cjs_namespaceObject=require("./utils/initial-data.cjs");function ConsentManagerProvider({children:e,options:_}){let r;
|
|
1
|
+
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ConsentManagerProvider:()=>ConsentManagerProvider});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),react_namespaceObject=require("@c15t/react"),headers_namespaceObject=require("next/headers"),enrich_options_cjs_namespaceObject=require("./utils/enrich-options.cjs"),initial_data_cjs_namespaceObject=require("./utils/initial-data.cjs");function ConsentManagerProvider({children:e,options:_}){let r;if("c15t"===_.mode){if(!_.backendURL)throw Error("backendURL is required for c15t mode");r=(0,initial_data_cjs_namespaceObject.getC15TInitialData)(_.backendURL,(0,headers_namespaceObject.headers)())}else r=void 0;return(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.ConsentManagerProvider,{options:(0,enrich_options_cjs_namespaceObject.enrichOptions)({options:_,initialData:r,usingAppDir:!0}),children:e})}for(var __webpack_i__ in exports.ConsentManagerProvider=__webpack_exports__.ConsentManagerProvider,__webpack_exports__)-1===["ConsentManagerProvider"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function ConsentManagerProvider({ children, options, }:
|
|
1
|
+
import type { AppDirectoryConsentManagerProviderProps } from '../../types';
|
|
2
|
+
export declare function ConsentManagerProvider({ children, options, }: AppDirectoryConsentManagerProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/consent-manager-provider/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/consent-manager-provider/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACX,uCAAuC,EAEvC,MAAM,aAAa,CAAC;AAIrB,wBAAgB,sBAAsB,CAAC,EACtC,QAAQ,EACR,OAAO,GACP,EAAE,uCAAuC,2CA4BzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as
|
|
1
|
+
import*as r from"react/jsx-runtime";import*as i from"@c15t/react";import*as t from"next/headers";import*as e from"./utils/enrich-options.js";import*as o from"./utils/initial-data.js";function a({children:a,options:n}){let s;if("c15t"===n.mode){if(!n.backendURL)throw Error("backendURL is required for c15t mode");s=(0,o.getC15TInitialData)(n.backendURL,(0,t.headers)())}else s=void 0;return(0,r.jsx)(i.ConsentManagerProvider,{options:(0,e.enrichOptions)({options:n,initialData:s,usingAppDir:!0}),children:a})}export{a as ConsentManagerProvider};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { ConsentManagerProviderProps } from '@c15t/react';
|
|
2
1
|
import type { GetServerSideProps } from 'next';
|
|
3
|
-
type InitialData
|
|
2
|
+
import type { InitialData } from '../../types';
|
|
4
3
|
interface WithInitialC15TDataProps {
|
|
5
4
|
initialC15TData?: InitialData;
|
|
6
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initial-data-hoc.d.ts","sourceRoot":"","sources":["../../../src/components/consent-manager-provider/initial-data-hoc.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"initial-data-hoc.d.ts","sourceRoot":"","sources":["../../../src/components/consent-manager-provider/initial-data-hoc.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,MAAM,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,UAAU,wBAAwB;IACjC,eAAe,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE7D,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAC5C,kBAAkB,CAAC,KAAK,GAAG,wBAAwB,CAAC,CAqCtD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ConsentManagerProviderProps } from '@c15t/react';
|
|
2
|
-
type InitialDataPromise
|
|
2
|
+
import type { InitialDataPromise } from '../../types';
|
|
3
3
|
/**
|
|
4
4
|
* Base props for the consent manager provider
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../src/components/consent-manager-provider/pages.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,2BAA2B,EAChC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../src/components/consent-manager-provider/pages.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,2BAA2B,EAChC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD;;GAEG;AACH,KAAK,iBAAiB,GAAG;IACxB,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;CAClD,CAAC;AAEF;;GAEG;AACH,KAAK,aAAa,GAAG,iBAAiB,GAAG;IACxC,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,GAAG;QACjD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC1B,CAAC;IACF,WAAW,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,KAAK,cAAc,GAAG,iBAAiB,GAAG;IACzC,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,GAAG;QACjD,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;KAC3B,CAAC;IACF,WAAW,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,KAAK,mBAAmB,GAAG,aAAa,GAAG,cAAc,CAAC;AAE1D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,2CAiBhE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ConsentManagerProviderProps } from '@c15t/react';
|
|
2
|
-
type InitialDataPromise
|
|
2
|
+
import type { InitialDataPromise } from '../../../types';
|
|
3
3
|
interface EnrichOptionsProps {
|
|
4
4
|
initialData?: InitialDataPromise;
|
|
5
5
|
usingAppDir?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrich-options.d.ts","sourceRoot":"","sources":["../../../../src/components/consent-manager-provider/utils/enrich-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"enrich-options.d.ts","sourceRoot":"","sources":["../../../../src/components/consent-manager-provider/utils/enrich-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,UAAU,kBAAkB;IAC3B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;CAChD;AAED,wBAAgB,aAAa,CAAC,EAC7B,OAAO,EACP,WAAW,EACX,WAAmB,GACnB,EAAE,kBAAkB,GAAG,2BAA2B,CAAC,SAAS,CAAC,CA4B7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};let external_vitest_namespaceObject=require("vitest"),external_headers_cjs_namespaceObject=require("./headers.cjs"),external_initial_data_cjs_namespaceObject=require("./initial-data.cjs"),external_normalize_url_cjs_namespaceObject=require("./normalize-url.cjs");for(var __webpack_i__ in external_vitest_namespaceObject.vi.mock("next/headers",()=>({headers:()=>new Headers({"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"})})),external_vitest_namespaceObject.vi.mock("./headers",()=>({extractRelevantHeaders:external_vitest_namespaceObject.vi.fn()})),external_vitest_namespaceObject.vi.mock("./normalize-url",()=>({normalizeBackendURL:external_vitest_namespaceObject.vi.fn()})),(0,external_vitest_namespaceObject.describe)("getC15TInitialData",()=>{let e={"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"},t=new Headers({"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"}),a=external_vitest_namespaceObject.vi.fn();(0,external_vitest_namespaceObject.beforeEach)(()=>{external_vitest_namespaceObject.vi.clearAllMocks(),external_vitest_namespaceObject.vi.stubGlobal("fetch",a),external_headers_cjs_namespaceObject.extractRelevantHeaders.mockReturnValue(e),external_normalize_url_cjs_namespaceObject.normalizeBackendURL.mockReturnValue("https://api.example.com")}),(0,external_vitest_namespaceObject.afterEach)(()=>{external_vitest_namespaceObject.vi.unstubAllGlobals()}),(0,external_vitest_namespaceObject.it)("should return undefined when normalized URL is not available",async()=>{external_normalize_url_cjs_namespaceObject.normalizeBackendURL.mockReturnValue(null);let e=await (0,external_initial_data_cjs_namespaceObject.getC15TInitialData)("https://example.com",t);(0,external_vitest_namespaceObject.expect)(e).toBeUndefined()}),(0,external_vitest_namespaceObject.it)("should return undefined when no relevant headers are present",async()=>{external_headers_cjs_namespaceObject.extractRelevantHeaders.mockReturnValue({});let e=await (0,external_initial_data_cjs_namespaceObject.getC15TInitialData)("https://example.com",t);(0,external_vitest_namespaceObject.expect)(e).toBeUndefined()}),(0,external_vitest_namespaceObject.it)("should successfully fetch and return consent banner data",async()=>{let n={showConsentBanner:!0,jurisdiction:{message:"Please accept cookies",code:"GDPR"},location:{countryCode:"US",regionCode:"CA"},translations:{language:"en",translations:{common:{acceptAll:"Accept All",rejectAll:"Reject All",customize:"Customize",save:"Save"},cookieBanner:{title:"Cookie Preferences",description:"We use cookies to improve your experience"},consentManagerDialog:{title:"Manage Cookie Preferences",description:"Customize your cookie preferences"},consentTypes:{necessary:{title:"Necessary",description:"Required for the website to function"},experience:{title:"Experience",description:"Enhance your browsing experience"},functionality:{title:"Functionality",description:"Enable specific functionality"},marketing:{title:"Marketing",description:"Help us improve our marketing"},measurement:{title:"Measurement",description:"Help us measure performance"}}}}};a.mockResolvedValueOnce({ok:!0,json:()=>Promise.resolve(n)});let c=await (0,external_initial_data_cjs_namespaceObject.getC15TInitialData)("https://example.com",t);(0,external_vitest_namespaceObject.expect)(a).toHaveBeenCalledWith("https://api.example.com/show-consent-banner",{method:"GET",headers:e}),(0,external_vitest_namespaceObject.expect)(c).toEqual(n)}),(0,external_vitest_namespaceObject.it)("should handle fetch failure gracefully",async()=>{a.mockRejectedValueOnce(Error("Network error"));let e=await (0,external_initial_data_cjs_namespaceObject.getC15TInitialData)("https://example.com",t);(0,external_vitest_namespaceObject.expect)(e).toBeUndefined()}),(0,external_vitest_namespaceObject.it)("should handle non-ok response gracefully",async()=>{a.mockResolvedValueOnce({ok:!1,status:500,statusText:"Internal Server Error"});let e=await (0,external_initial_data_cjs_namespaceObject.getC15TInitialData)("https://example.com",t);(0,external_vitest_namespaceObject.expect)(e).toBeUndefined()})}),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
1
|
+
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};let external_vitest_namespaceObject=require("vitest"),external_headers_cjs_namespaceObject=require("./headers.cjs"),external_initial_data_cjs_namespaceObject=require("./initial-data.cjs"),external_normalize_url_cjs_namespaceObject=require("./normalize-url.cjs");for(var __webpack_i__ in external_vitest_namespaceObject.vi.mock("next/headers",()=>({headers:()=>new Headers({"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"})})),external_vitest_namespaceObject.vi.mock("./headers",()=>({extractRelevantHeaders:external_vitest_namespaceObject.vi.fn()})),external_vitest_namespaceObject.vi.mock("./normalize-url",()=>({normalizeBackendURL:external_vitest_namespaceObject.vi.fn()})),(0,external_vitest_namespaceObject.describe)("getC15TInitialData",()=>{let e={"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"},t=new Headers({"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"}),a=external_vitest_namespaceObject.vi.fn();(0,external_vitest_namespaceObject.beforeEach)(()=>{external_vitest_namespaceObject.vi.clearAllMocks(),external_vitest_namespaceObject.vi.stubGlobal("fetch",a),external_headers_cjs_namespaceObject.extractRelevantHeaders.mockReturnValue(e),external_normalize_url_cjs_namespaceObject.normalizeBackendURL.mockReturnValue("https://api.example.com")}),(0,external_vitest_namespaceObject.afterEach)(()=>{external_vitest_namespaceObject.vi.unstubAllGlobals()}),(0,external_vitest_namespaceObject.it)("should return undefined when normalized URL is not available",async()=>{external_normalize_url_cjs_namespaceObject.normalizeBackendURL.mockReturnValue(null);let e=await (0,external_initial_data_cjs_namespaceObject.getC15TInitialData)("https://example.com",t);(0,external_vitest_namespaceObject.expect)(e).toBeUndefined()}),(0,external_vitest_namespaceObject.it)("should return undefined when no relevant headers are present",async()=>{external_headers_cjs_namespaceObject.extractRelevantHeaders.mockReturnValue({});let e=await (0,external_initial_data_cjs_namespaceObject.getC15TInitialData)("https://example.com",t);(0,external_vitest_namespaceObject.expect)(e).toBeUndefined()}),(0,external_vitest_namespaceObject.it)("should successfully fetch and return consent banner data",async()=>{let n={showConsentBanner:!0,branding:"c15t",jurisdiction:{message:"Please accept cookies",code:"GDPR"},location:{countryCode:"US",regionCode:"CA"},translations:{language:"en",translations:{common:{acceptAll:"Accept All",rejectAll:"Reject All",customize:"Customize",save:"Save"},cookieBanner:{title:"Cookie Preferences",description:"We use cookies to improve your experience"},consentManagerDialog:{title:"Manage Cookie Preferences",description:"Customize your cookie preferences"},consentTypes:{necessary:{title:"Necessary",description:"Required for the website to function"},experience:{title:"Experience",description:"Enhance your browsing experience"},functionality:{title:"Functionality",description:"Enable specific functionality"},marketing:{title:"Marketing",description:"Help us improve our marketing"},measurement:{title:"Measurement",description:"Help us measure performance"}}}}};a.mockResolvedValueOnce({ok:!0,json:()=>Promise.resolve(n)});let c=await (0,external_initial_data_cjs_namespaceObject.getC15TInitialData)("https://example.com",t);(0,external_vitest_namespaceObject.expect)(a).toHaveBeenCalledWith("https://api.example.com/show-consent-banner",{method:"GET",headers:e}),(0,external_vitest_namespaceObject.expect)(c).toEqual(n)}),(0,external_vitest_namespaceObject.it)("should handle fetch failure gracefully",async()=>{a.mockRejectedValueOnce(Error("Network error"));let e=await (0,external_initial_data_cjs_namespaceObject.getC15TInitialData)("https://example.com",t);(0,external_vitest_namespaceObject.expect)(e).toBeUndefined()}),(0,external_vitest_namespaceObject.it)("should handle non-ok response gracefully",async()=>{a.mockResolvedValueOnce({ok:!1,status:500,statusText:"Internal Server Error"});let e=await (0,external_initial_data_cjs_namespaceObject.getC15TInitialData)("https://example.com",t);(0,external_vitest_namespaceObject.expect)(e).toBeUndefined()})}),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"vitest";import*as t from"./headers.js";import*as a from"./initial-data.js";import*as o from"./normalize-url.js";e.vi.mock("next/headers",()=>({headers:()=>new Headers({"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"})})),e.vi.mock("./headers",()=>({extractRelevantHeaders:e.vi.fn()})),e.vi.mock("./normalize-url",()=>({normalizeBackendURL:e.vi.fn()})),(0,e.describe)("getC15TInitialData",()=>{let n={"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"},r=new Headers({"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"}),i=e.vi.fn();(0,e.beforeEach)(()=>{e.vi.clearAllMocks(),e.vi.stubGlobal("fetch",i),t.extractRelevantHeaders.mockReturnValue(n),o.normalizeBackendURL.mockReturnValue("https://api.example.com")}),(0,e.afterEach)(()=>{e.vi.unstubAllGlobals()}),(0,e.it)("should return undefined when normalized URL is not available",async()=>{o.normalizeBackendURL.mockReturnValue(null);let t=await (0,a.getC15TInitialData)("https://example.com",r);(0,e.expect)(t).toBeUndefined()}),(0,e.it)("should return undefined when no relevant headers are present",async()=>{t.extractRelevantHeaders.mockReturnValue({});let o=await (0,a.getC15TInitialData)("https://example.com",r);(0,e.expect)(o).toBeUndefined()}),(0,e.it)("should successfully fetch and return consent banner data",async()=>{let t={showConsentBanner:!0,jurisdiction:{message:"Please accept cookies",code:"GDPR"},location:{countryCode:"US",regionCode:"CA"},translations:{language:"en",translations:{common:{acceptAll:"Accept All",rejectAll:"Reject All",customize:"Customize",save:"Save"},cookieBanner:{title:"Cookie Preferences",description:"We use cookies to improve your experience"},consentManagerDialog:{title:"Manage Cookie Preferences",description:"Customize your cookie preferences"},consentTypes:{necessary:{title:"Necessary",description:"Required for the website to function"},experience:{title:"Experience",description:"Enhance your browsing experience"},functionality:{title:"Functionality",description:"Enable specific functionality"},marketing:{title:"Marketing",description:"Help us improve our marketing"},measurement:{title:"Measurement",description:"Help us measure performance"}}}}};i.mockResolvedValueOnce({ok:!0,json:()=>Promise.resolve(t)});let o=await (0,a.getC15TInitialData)("https://example.com",r);(0,e.expect)(i).toHaveBeenCalledWith("https://api.example.com/show-consent-banner",{method:"GET",headers:n}),(0,e.expect)(o).toEqual(t)}),(0,e.it)("should handle fetch failure gracefully",async()=>{i.mockRejectedValueOnce(Error("Network error"));let t=await (0,a.getC15TInitialData)("https://example.com",r);(0,e.expect)(t).toBeUndefined()}),(0,e.it)("should handle non-ok response gracefully",async()=>{i.mockResolvedValueOnce({ok:!1,status:500,statusText:"Internal Server Error"});let t=await (0,a.getC15TInitialData)("https://example.com",r);(0,e.expect)(t).toBeUndefined()})});
|
|
1
|
+
import*as e from"vitest";import*as t from"./headers.js";import*as a from"./initial-data.js";import*as o from"./normalize-url.js";e.vi.mock("next/headers",()=>({headers:()=>new Headers({"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"})})),e.vi.mock("./headers",()=>({extractRelevantHeaders:e.vi.fn()})),e.vi.mock("./normalize-url",()=>({normalizeBackendURL:e.vi.fn()})),(0,e.describe)("getC15TInitialData",()=>{let n={"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"},r=new Headers({"x-forwarded-proto":"https","x-forwarded-host":"example.com",cookie:"test=123"}),i=e.vi.fn();(0,e.beforeEach)(()=>{e.vi.clearAllMocks(),e.vi.stubGlobal("fetch",i),t.extractRelevantHeaders.mockReturnValue(n),o.normalizeBackendURL.mockReturnValue("https://api.example.com")}),(0,e.afterEach)(()=>{e.vi.unstubAllGlobals()}),(0,e.it)("should return undefined when normalized URL is not available",async()=>{o.normalizeBackendURL.mockReturnValue(null);let t=await (0,a.getC15TInitialData)("https://example.com",r);(0,e.expect)(t).toBeUndefined()}),(0,e.it)("should return undefined when no relevant headers are present",async()=>{t.extractRelevantHeaders.mockReturnValue({});let o=await (0,a.getC15TInitialData)("https://example.com",r);(0,e.expect)(o).toBeUndefined()}),(0,e.it)("should successfully fetch and return consent banner data",async()=>{let t={showConsentBanner:!0,branding:"c15t",jurisdiction:{message:"Please accept cookies",code:"GDPR"},location:{countryCode:"US",regionCode:"CA"},translations:{language:"en",translations:{common:{acceptAll:"Accept All",rejectAll:"Reject All",customize:"Customize",save:"Save"},cookieBanner:{title:"Cookie Preferences",description:"We use cookies to improve your experience"},consentManagerDialog:{title:"Manage Cookie Preferences",description:"Customize your cookie preferences"},consentTypes:{necessary:{title:"Necessary",description:"Required for the website to function"},experience:{title:"Experience",description:"Enhance your browsing experience"},functionality:{title:"Functionality",description:"Enable specific functionality"},marketing:{title:"Marketing",description:"Help us improve our marketing"},measurement:{title:"Measurement",description:"Help us measure performance"}}}}};i.mockResolvedValueOnce({ok:!0,json:()=>Promise.resolve(t)});let o=await (0,a.getC15TInitialData)("https://example.com",r);(0,e.expect)(i).toHaveBeenCalledWith("https://api.example.com/show-consent-banner",{method:"GET",headers:n}),(0,e.expect)(o).toEqual(t)}),(0,e.it)("should handle fetch failure gracefully",async()=>{i.mockRejectedValueOnce(Error("Network error"));let t=await (0,a.getC15TInitialData)("https://example.com",r);(0,e.expect)(t).toBeUndefined()}),(0,e.it)("should handle non-ok response gracefully",async()=>{i.mockResolvedValueOnce({ok:!1,status:500,statusText:"Internal Server Error"});let t=await (0,a.getC15TInitialData)("https://example.com",r);(0,e.expect)(t).toBeUndefined()})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_modules__={"@c15t/react/headless":function(e){e.exports=require("@c15t/react/headless")}},__webpack_module_cache__={};function __webpack_require__(e){var _=__webpack_module_cache__[e];if(void 0!==_)return _.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};for(var __webpack_i__ in(()=>{__webpack_require__.r(__webpack_exports__);var e=__webpack_require__("@c15t/react/headless"),_={};for(var r in e)"default"!==r&&(_[r]=(function(_){return e[_]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_)})(),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../../../src/components/react/headless.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"@c15t/react/headless";
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.
|
|
1
|
+
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_modules__={"./components/consent-manager-provider":function(e){e.exports=require("./components/consent-manager-provider/index.cjs")},"./shared":function(e){e.exports=require("./shared.cjs")}},__webpack_module_cache__={};function __webpack_require__(e){var _=__webpack_module_cache__[e];if(void 0!==_)return _.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};for(var __webpack_i__ in(()=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ConsentManagerProvider:()=>e.ConsentManagerProvider});var e=__webpack_require__("./components/consent-manager-provider"),_=__webpack_require__("./shared"),r={};for(var a in _)0>["ConsentManagerProvider","default"].indexOf(a)&&(r[a]=(function(e){return _[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,r)})(),exports.ConsentManagerProvider=__webpack_exports__.ConsentManagerProvider,__webpack_exports__)-1===["ConsentManagerProvider"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,5 @@
|
|
|
8
8
|
* @see {@link ./middleware} for Next.js middleware integration
|
|
9
9
|
*/
|
|
10
10
|
export { ConsentManagerProvider } from './components/consent-manager-provider';
|
|
11
|
-
export
|
|
12
|
-
export type { ConsentManagerOptions, ConsentManagerProviderProps, ConsentManagerDialogProps, ConsentManagerInterface, ConsentManagerWidgetProps, CookieBannerProps, } from '@c15t/react';
|
|
11
|
+
export * from './shared';
|
|
13
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as
|
|
1
|
+
import*as r from"./components/consent-manager-provider/index.js";export*from"./shared.js";var e=r.ConsentManagerProvider;export{e as ConsentManagerProvider};
|
package/dist/pages.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.
|
|
1
|
+
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_modules__={"./components/consent-manager-provider/initial-data-hoc":function(e){e.exports=require("./components/consent-manager-provider/initial-data-hoc.cjs")},"./components/consent-manager-provider/pages":function(e){e.exports=require("./components/consent-manager-provider/pages.cjs")},"./shared":function(e){e.exports=require("./shared.cjs")}},__webpack_module_cache__={};function __webpack_require__(e){var _=__webpack_module_cache__[e];if(void 0!==_)return _.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};for(var __webpack_i__ in(()=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ConsentManagerProvider:()=>_.ConsentManagerProvider,withInitialC15TData:()=>e.withInitialC15TData});var e=__webpack_require__("./components/consent-manager-provider/initial-data-hoc"),_=__webpack_require__("./components/consent-manager-provider/pages"),r=__webpack_require__("./shared"),a={};for(var t in r)0>["ConsentManagerProvider","default","withInitialC15TData"].indexOf(t)&&(a[t]=(function(e){return r[e]}).bind(0,t));__webpack_require__.d(__webpack_exports__,a)})(),exports.ConsentManagerProvider=__webpack_exports__.ConsentManagerProvider,exports.withInitialC15TData=__webpack_exports__.withInitialC15TData,__webpack_exports__)-1===["ConsentManagerProvider","withInitialC15TData"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
|
package/dist/pages.d.ts
CHANGED
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
* @see {@link @c15t/react} for React components and hooks
|
|
8
8
|
* @see {@link ./middleware} for Next.js middleware integration
|
|
9
9
|
*/
|
|
10
|
-
export { ConsentManagerProvider } from './components/consent-manager-provider/pages';
|
|
11
10
|
export { withInitialC15TData } from './components/consent-manager-provider/initial-data-hoc';
|
|
12
|
-
export {
|
|
13
|
-
export
|
|
11
|
+
export { ConsentManagerProvider } from './components/consent-manager-provider/pages';
|
|
12
|
+
export * from './shared';
|
|
14
13
|
//# sourceMappingURL=pages.d.ts.map
|
package/dist/pages.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,cAAc,UAAU,CAAC"}
|
package/dist/pages.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as
|
|
1
|
+
import*as a from"./components/consent-manager-provider/initial-data-hoc.js";import*as r from"./components/consent-manager-provider/pages.js";export*from"./shared.js";var e=r.ConsentManagerProvider,o=a.withInitialC15TData;export{e as ConsentManagerProvider,o as withInitialC15TData};
|
package/dist/shared.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,a)=>{for(var r in a)__webpack_require__.o(a,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},__webpack_require__.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{useColorScheme:()=>react_namespaceObject.useColorScheme,mergeTranslationConfigs:()=>react_namespaceObject.mergeTranslationConfigs,defaultTranslationConfig:()=>react_namespaceObject.defaultTranslationConfig,prepareTranslationConfig:()=>react_namespaceObject.prepareTranslationConfig,ConsentManagerWidget:()=>react_namespaceObject.ConsentManagerWidget,useFocusTrap:()=>react_namespaceObject.useFocusTrap,detectBrowserLanguage:()=>react_namespaceObject.detectBrowserLanguage,CookieBanner:()=>react_namespaceObject.CookieBanner,configureConsentManager:()=>react_namespaceObject.configureConsentManager,useConsentManager:()=>react_namespaceObject.useConsentManager,useTranslations:()=>react_namespaceObject.useTranslations,ConsentManagerDialog:()=>react_namespaceObject.ConsentManagerDialog});let react_namespaceObject=require("@c15t/react");for(var __webpack_i__ in exports.ConsentManagerDialog=__webpack_exports__.ConsentManagerDialog,exports.ConsentManagerWidget=__webpack_exports__.ConsentManagerWidget,exports.CookieBanner=__webpack_exports__.CookieBanner,exports.configureConsentManager=__webpack_exports__.configureConsentManager,exports.defaultTranslationConfig=__webpack_exports__.defaultTranslationConfig,exports.detectBrowserLanguage=__webpack_exports__.detectBrowserLanguage,exports.mergeTranslationConfigs=__webpack_exports__.mergeTranslationConfigs,exports.prepareTranslationConfig=__webpack_exports__.prepareTranslationConfig,exports.useColorScheme=__webpack_exports__.useColorScheme,exports.useConsentManager=__webpack_exports__.useConsentManager,exports.useFocusTrap=__webpack_exports__.useFocusTrap,exports.useTranslations=__webpack_exports__.useTranslations,__webpack_exports__)-1===["ConsentManagerDialog","ConsentManagerWidget","CookieBanner","configureConsentManager","defaultTranslationConfig","detectBrowserLanguage","mergeTranslationConfigs","prepareTranslationConfig","useColorScheme","useConsentManager","useFocusTrap","useTranslations"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
|
package/dist/shared.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { ConsentManagerDialogProps, ConsentManagerInterface, ConsentManagerOptions, ConsentManagerWidgetProps, CookieBannerProps, } from '@c15t/react';
|
|
2
|
+
export { ConsentManagerDialog, ConsentManagerWidget, CookieBanner, configureConsentManager, defaultTranslationConfig, detectBrowserLanguage, mergeTranslationConfigs, prepareTranslationConfig, useColorScheme, useConsentManager, useFocusTrap, useTranslations, } from '@c15t/react';
|
|
3
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAGA,YAAY,EACX,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EAEvB,wBAAwB,EACxB,cAAc,EAEd,iBAAiB,EACjB,YAAY,EACZ,eAAe,GACf,MAAM,aAAa,CAAC"}
|
package/dist/shared.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"@c15t/react";var a=e.ConsentManagerDialog,n=e.ConsentManagerWidget,s=e.CookieBanner,o=e.configureConsentManager,r=e.defaultTranslationConfig,_=e.detectBrowserLanguage,t=e.mergeTranslationConfigs,g=e.prepareTranslationConfig,p=e.useColorScheme,i=e.useConsentManager,C=e.useFocusTrap,c=e.useTranslations;export{a as ConsentManagerDialog,n as ConsentManagerWidget,s as CookieBanner,o as configureConsentManager,r as defaultTranslationConfig,_ as detectBrowserLanguage,t as mergeTranslationConfigs,g as prepareTranslationConfig,p as useColorScheme,i as useConsentManager,C as useFocusTrap,c as useTranslations};
|
package/dist/types.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};for(var __webpack_i__ in __webpack_require__.r(__webpack_exports__),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ConsentManagerProviderProps as ReactConsentManagerProviderProps } from '@c15t/react';
|
|
2
|
+
/**
|
|
3
|
+
* NextJS-specific configuration options for the ConsentManagerProvider.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* This interface extends the base React ConsentManagerProviderProps but excludes
|
|
7
|
+
* callback functionality. Callbacks are omitted to simplify the NextJS integration
|
|
8
|
+
* and prevent potential conflicts with server-side rendering.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* // Basic NextJS consent manager setup without callbacks
|
|
13
|
+
* <ConsentManagerProvider
|
|
14
|
+
* options={{
|
|
15
|
+
* mode: 'c15t',
|
|
16
|
+
* backendURL: '/api/c15t',
|
|
17
|
+
* react: {
|
|
18
|
+
* theme: customTheme
|
|
19
|
+
* }
|
|
20
|
+
* }}
|
|
21
|
+
* >
|
|
22
|
+
* {children}
|
|
23
|
+
* </ConsentManagerProvider>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @see {@link ReactConsentManagerProviderProps} For the complete React provider props
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
export type AppDirectoryConsentManagerProviderProps = Omit<ReactConsentManagerProviderProps, 'options'> & {
|
|
30
|
+
/**
|
|
31
|
+
* Configuration options for the consent manager without callback functions.
|
|
32
|
+
* This ensures NextJS compatibility by removing potentially problematic callbacks.
|
|
33
|
+
*/
|
|
34
|
+
options: Omit<ReactConsentManagerProviderProps['options'], 'callbacks'>;
|
|
35
|
+
};
|
|
36
|
+
export type InitialDataPromise = NonNullable<ReactConsentManagerProviderProps['options']['store']>['_initialData'];
|
|
37
|
+
export type InitialData = Awaited<InitialDataPromise>;
|
|
38
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,IAAI,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,uCAAuC,GAAG,IAAI,CACzD,gCAAgC,EAChC,SAAS,CACT,GAAG;IACH;;;OAGG;IACH,OAAO,EAAE,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAC3C,gCAAgC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CACpD,CAAC,cAAc,CAAC,CAAC;AAElB,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC"}
|
package/dist/types.js
ADDED
|
File without changes
|
package/dist/version.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{version:()=>version});let version="1.
|
|
1
|
+
"use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{version:()=>version});let version="1.6.0";for(var __webpack_i__ in exports.version=__webpack_exports__.version,__webpack_exports__)-1===["version"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "1.
|
|
1
|
+
export declare const version = "1.6.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let e="1.
|
|
1
|
+
let e="1.6.0";export{e as version};
|
package/package.json
CHANGED
|
@@ -1,36 +1,70 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c15t/nextjs",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Next.js
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
3
|
+
"version": "1.6.0",
|
|
4
|
+
"description": "Developer-first CMP for Next.js: cookie banner, consent manager, preferences centre. GDPR ready with minimal setup and rich customization.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"nextjs",
|
|
7
|
+
"consent",
|
|
8
|
+
"privacy",
|
|
9
|
+
"gdpr",
|
|
10
|
+
"ccpa",
|
|
11
|
+
"lgpd",
|
|
12
|
+
"server-side rendering",
|
|
13
|
+
"react",
|
|
14
|
+
"typescript",
|
|
15
|
+
"cookie-banner",
|
|
16
|
+
"consent-management-platform",
|
|
17
|
+
"cmp",
|
|
18
|
+
"consent-banner",
|
|
19
|
+
"user-consent",
|
|
20
|
+
"privacy-compliance",
|
|
21
|
+
"web-privacy"
|
|
11
22
|
],
|
|
23
|
+
"homepage": "https://c15t.com/docs/frameworks/next/quickstart",
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "https://github.com/c15t/c15t.git",
|
|
27
|
+
"directory": "packages/nextjs"
|
|
28
|
+
},
|
|
29
|
+
"license": "GPL-3.0-only",
|
|
30
|
+
"sideEffects": false,
|
|
31
|
+
"type": "module",
|
|
12
32
|
"exports": {
|
|
33
|
+
"./headless": {
|
|
34
|
+
"types": "./dist/components/react/headless.d.ts",
|
|
35
|
+
"import": "./dist/components/react/headless.js",
|
|
36
|
+
"require": "./dist/components/react/headless.cjs"
|
|
37
|
+
},
|
|
13
38
|
"./pages": {
|
|
14
39
|
"types": "./dist/pages.d.ts",
|
|
15
40
|
"import": "./dist/pages.js",
|
|
16
41
|
"require": "./dist/pages.cjs"
|
|
17
42
|
},
|
|
43
|
+
"./client": {
|
|
44
|
+
"types": "./dist/client.d.ts",
|
|
45
|
+
"import": "./dist/client.js",
|
|
46
|
+
"require": "./dist/client.cjs"
|
|
47
|
+
},
|
|
18
48
|
".": {
|
|
19
49
|
"types": "./dist/index.d.ts",
|
|
20
50
|
"import": "./dist/index.js",
|
|
21
51
|
"require": "./dist/index.cjs"
|
|
22
52
|
}
|
|
23
53
|
},
|
|
24
|
-
"
|
|
25
|
-
"
|
|
54
|
+
"main": "./dist/index.js",
|
|
55
|
+
"module": "./dist/index.mjs",
|
|
56
|
+
"types": "./dist/index.d.ts",
|
|
57
|
+
"files": [
|
|
58
|
+
"dist"
|
|
59
|
+
],
|
|
26
60
|
"dependencies": {
|
|
27
|
-
"@c15t/react": "1.
|
|
28
|
-
"@c15t/translations": "1.
|
|
61
|
+
"@c15t/react": "1.6.0",
|
|
62
|
+
"@c15t/translations": "1.6.0"
|
|
29
63
|
},
|
|
30
64
|
"devDependencies": {
|
|
31
65
|
"genversion": "^3.2.0",
|
|
32
66
|
"typescript": "^5.0.0",
|
|
33
|
-
"@c15t/backend": "1.
|
|
67
|
+
"@c15t/backend": "1.6.0",
|
|
34
68
|
"@c15t/typescript-config": "0.0.1-beta.1",
|
|
35
69
|
"@c15t/vitest-config": "1.0.0"
|
|
36
70
|
},
|
|
@@ -39,13 +73,17 @@
|
|
|
39
73
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc",
|
|
40
74
|
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
|
|
41
75
|
},
|
|
76
|
+
"publishConfig": {
|
|
77
|
+
"access": "public"
|
|
78
|
+
},
|
|
42
79
|
"scripts": {
|
|
43
80
|
"prebuild": "genversion --esm --semi src/version.ts",
|
|
44
81
|
"build": "pnpm prebuild && rslib build",
|
|
82
|
+
"check-types": "pnpm prebuild && tsc --noEmit",
|
|
45
83
|
"dev": "pnpm prebuild && rslib build --watch",
|
|
46
|
-
"fmt": "pnpm biome format --write . && pnpm biome check --formatter-enabled=false --linter-enabled=false --
|
|
84
|
+
"fmt": "pnpm biome format --write . && pnpm biome check --formatter-enabled=false --linter-enabled=false --write",
|
|
47
85
|
"lint": "pnpm biome lint ./src",
|
|
48
|
-
"test": "vitest run --passWithNoTests",
|
|
49
|
-
"test:watch": "vitest --passWithNoTests"
|
|
86
|
+
"test": "pnpm prebuild && vitest run --passWithNoTests",
|
|
87
|
+
"test:watch": "pnpm prebuild && vitest --passWithNoTests"
|
|
50
88
|
}
|
|
51
89
|
}
|
package/readme.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "@c15t/nextjs: Next.js Integration",
|
|
3
|
+
"description": "Developer-first CMP for Next.js: cookie banner, consent manager, preferences centre. GDPR ready with minimal setup and rich customization",
|
|
4
|
+
"features": [
|
|
5
|
+
"Works with Next.js 15, 14, and 13",
|
|
6
|
+
"Full 'use client' support for React Server Components",
|
|
7
|
+
"Server-side rendering support for both app and pages routers",
|
|
8
|
+
"Automatic GDPR, CCPA, and LGPD compliance",
|
|
9
|
+
"Minimal configuration with TypeScript-first design",
|
|
10
|
+
"Headless, customisable UI components (Cookie Banner, Consent Dialog, etc.)",
|
|
11
|
+
"Built-in internationalisation support",
|
|
12
|
+
"Seamless consent storage and tracking"
|
|
13
|
+
],
|
|
14
|
+
"prerequisites": [
|
|
15
|
+
"Next.js 13.5.4 or later",
|
|
16
|
+
"React 18 or later",
|
|
17
|
+
"Node.js 18.17.0 or later",
|
|
18
|
+
"A hosted [c15t instance](https://consent.io) (free sign-up) or [self-hosted deployment](https://c15t.com/docs/self-host/v2)"
|
|
19
|
+
],
|
|
20
|
+
"manualInstallation": [
|
|
21
|
+
"",
|
|
22
|
+
"```bash\npnpm add @c15t/nextjs\n```",
|
|
23
|
+
"",
|
|
24
|
+
"To manually install, follow the guide in our [docs – manual setup](https://c15t.com/docs/frameworks/nextjs/quickstart#manual-setup)."
|
|
25
|
+
],
|
|
26
|
+
"usage": [
|
|
27
|
+
"Import `ConsentManagerProvider` in your app's root layout",
|
|
28
|
+
"Add `CookieBanner` and `ConsentManagerDialog` components",
|
|
29
|
+
"Customise styling and behaviour to fit your app",
|
|
30
|
+
"For full implementation details, see the [Next.js quickstart docs](https://c15t.com/docs/frameworks/next/quickstart)",
|
|
31
|
+
"```tsx\n// app/layout.tsx\nimport { ConsentManagerProvider, CookieBanner } from '@c15t/nextjs'\n\nexport default function RootLayout({ children }: { children: React.ReactNode }) {\n return (\n <html lang=\"en\">\n <body>\n <ConsentManagerProvider>\n {children}\n <CookieBanner />\n </ConsentManagerProvider>\n </body>\n </html>\n )\n}\n```"
|
|
32
|
+
],
|
|
33
|
+
"docsLink": "https://c15t.com/docs/frameworks/next/quickstart",
|
|
34
|
+
"quickStartLink": "https://c15t.com/docs/frameworks/next/quickstart",
|
|
35
|
+
"showCLIGeneration": true
|
|
36
|
+
}
|