@tantainnovative/ndpr-toolkit 1.0.10 → 2.1.1
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/LICENSE +21 -0
- package/README.md +293 -136
- package/dist/breach-6z0r-KuE.d.mts +17 -0
- package/dist/breach-BFfnvtRk.d.ts +17 -0
- package/dist/breach-BtFbDOmV.d.mts +185 -0
- package/dist/breach-BtFbDOmV.d.ts +185 -0
- package/dist/breach.d.mts +275 -0
- package/dist/breach.d.ts +275 -0
- package/dist/breach.js +2 -0
- package/dist/breach.js.map +1 -0
- package/dist/breach.mjs +2 -0
- package/dist/breach.mjs.map +1 -0
- package/dist/chunk-2SYNHRP6.mjs +2 -0
- package/dist/chunk-2SYNHRP6.mjs.map +1 -0
- package/dist/chunk-2XHD22J7.mjs +7 -0
- package/dist/chunk-2XHD22J7.mjs.map +1 -0
- package/dist/chunk-3YCV2BA6.js +2 -0
- package/dist/chunk-3YCV2BA6.js.map +1 -0
- package/dist/chunk-4A354HL3.js +2 -0
- package/dist/chunk-4A354HL3.js.map +1 -0
- package/dist/chunk-4DKT6IB6.js +94 -0
- package/dist/chunk-4DKT6IB6.js.map +1 -0
- package/dist/chunk-5ZBO2UPH.js +2 -0
- package/dist/chunk-5ZBO2UPH.js.map +1 -0
- package/dist/chunk-6GGGTRDZ.mjs +2 -0
- package/dist/chunk-6GGGTRDZ.mjs.map +1 -0
- package/dist/chunk-6JFTAYXV.mjs +2 -0
- package/dist/chunk-6JFTAYXV.mjs.map +1 -0
- package/dist/chunk-6JVYYLS7.js +2 -0
- package/dist/chunk-6JVYYLS7.js.map +1 -0
- package/dist/chunk-6SGG6WPA.mjs +2 -0
- package/dist/chunk-6SGG6WPA.mjs.map +1 -0
- package/dist/chunk-AQEGDEQM.js +7 -0
- package/dist/chunk-AQEGDEQM.js.map +1 -0
- package/dist/chunk-C2IJWCZQ.mjs +2 -0
- package/dist/chunk-C2IJWCZQ.mjs.map +1 -0
- package/dist/chunk-CMZTI7SG.js +2 -0
- package/dist/chunk-CMZTI7SG.js.map +1 -0
- package/dist/chunk-DB3JH4DS.mjs +2 -0
- package/dist/chunk-DB3JH4DS.mjs.map +1 -0
- package/dist/chunk-FFW7RUAG.mjs +94 -0
- package/dist/chunk-FFW7RUAG.mjs.map +1 -0
- package/dist/chunk-FK3CSFLJ.js +2 -0
- package/dist/chunk-FK3CSFLJ.js.map +1 -0
- package/dist/chunk-GIV2OHE6.mjs +2 -0
- package/dist/chunk-GIV2OHE6.mjs.map +1 -0
- package/dist/chunk-GMLNWS2N.mjs +2 -0
- package/dist/chunk-GMLNWS2N.mjs.map +1 -0
- package/dist/chunk-IQF726GS.js +2 -0
- package/dist/chunk-IQF726GS.js.map +1 -0
- package/dist/chunk-IWUUVRLJ.js +2 -0
- package/dist/chunk-IWUUVRLJ.js.map +1 -0
- package/dist/chunk-JUN6YPLL.mjs +72 -0
- package/dist/chunk-JUN6YPLL.mjs.map +1 -0
- package/dist/chunk-L3FKTBGV.js +72 -0
- package/dist/chunk-L3FKTBGV.js.map +1 -0
- package/dist/chunk-L52PDW6O.mjs +2 -0
- package/dist/chunk-L52PDW6O.mjs.map +1 -0
- package/dist/chunk-LI6WJ3LZ.js +2 -0
- package/dist/chunk-LI6WJ3LZ.js.map +1 -0
- package/dist/chunk-LXRXDTPI.js +2 -0
- package/dist/chunk-LXRXDTPI.js.map +1 -0
- package/dist/chunk-MQFZHA2D.js +2 -0
- package/dist/chunk-MQFZHA2D.js.map +1 -0
- package/dist/chunk-OITITR6K.mjs +2 -0
- package/dist/chunk-OITITR6K.mjs.map +1 -0
- package/dist/chunk-PDJGTQMY.mjs +2 -0
- package/dist/chunk-PDJGTQMY.mjs.map +1 -0
- package/dist/chunk-PGSA2O5P.mjs +2 -0
- package/dist/chunk-PGSA2O5P.mjs.map +1 -0
- package/dist/chunk-PM7CMTMB.js +4 -0
- package/dist/chunk-PM7CMTMB.js.map +1 -0
- package/dist/chunk-PYEX7DFR.mjs +4 -0
- package/dist/chunk-PYEX7DFR.mjs.map +1 -0
- package/dist/chunk-QKK5S54L.mjs +2 -0
- package/dist/chunk-QKK5S54L.mjs.map +1 -0
- package/dist/chunk-RB26MIRI.js +2 -0
- package/dist/chunk-RB26MIRI.js.map +1 -0
- package/dist/chunk-RGYK4VAY.mjs +2 -0
- package/dist/chunk-RGYK4VAY.mjs.map +1 -0
- package/dist/chunk-RHWW5FDP.js +16 -0
- package/dist/chunk-RHWW5FDP.js.map +1 -0
- package/dist/chunk-RYZEIDNR.js +2 -0
- package/dist/chunk-RYZEIDNR.js.map +1 -0
- package/dist/chunk-SLNMKGQ2.mjs +2 -0
- package/dist/chunk-SLNMKGQ2.mjs.map +1 -0
- package/dist/chunk-SSGJREE3.js +2 -0
- package/dist/chunk-SSGJREE3.js.map +1 -0
- package/dist/chunk-SWF3YVE5.js +4 -0
- package/dist/chunk-SWF3YVE5.js.map +1 -0
- package/dist/chunk-T44JQT2O.mjs +2 -0
- package/dist/chunk-T44JQT2O.mjs.map +1 -0
- package/dist/chunk-TDDAYVKK.js +2 -0
- package/dist/chunk-TDDAYVKK.js.map +1 -0
- package/dist/chunk-TXBZPCGF.mjs +2 -0
- package/dist/chunk-TXBZPCGF.mjs.map +1 -0
- package/dist/chunk-UUWVBENC.js +2 -0
- package/dist/chunk-UUWVBENC.js.map +1 -0
- package/dist/chunk-UYP64PV7.mjs +4 -0
- package/dist/chunk-UYP64PV7.mjs.map +1 -0
- package/dist/chunk-VMJBW3EF.mjs +2 -0
- package/dist/chunk-VMJBW3EF.mjs.map +1 -0
- package/dist/chunk-WW3X3ELF.js +2 -0
- package/dist/chunk-WW3X3ELF.js.map +1 -0
- package/dist/chunk-WWT2ZSNU.mjs +2 -0
- package/dist/chunk-WWT2ZSNU.mjs.map +1 -0
- package/dist/chunk-XMKA6GVK.mjs +16 -0
- package/dist/chunk-XMKA6GVK.mjs.map +1 -0
- package/dist/chunk-Y34DQYS7.js +2 -0
- package/dist/chunk-Y34DQYS7.js.map +1 -0
- package/dist/chunk-ZU73VG3X.js +2 -0
- package/dist/chunk-ZU73VG3X.js.map +1 -0
- package/dist/consent-CmVzqZUk.d.mts +99 -0
- package/dist/consent-CmVzqZUk.d.ts +99 -0
- package/dist/consent-DCc5zjXI.d.mts +24 -0
- package/dist/consent-DLWb5ota.d.ts +24 -0
- package/dist/consent.d.mts +197 -0
- package/dist/consent.d.ts +197 -0
- package/dist/consent.js +2 -0
- package/dist/consent.js.map +1 -0
- package/dist/consent.mjs +2 -0
- package/dist/consent.mjs.map +1 -0
- package/dist/core.d.mts +14 -0
- package/dist/core.d.ts +14 -0
- package/dist/core.js +2 -0
- package/dist/core.js.map +1 -0
- package/dist/core.mjs +2 -0
- package/dist/core.mjs.map +1 -0
- package/dist/cross-border-BrIy1ieh.d.mts +192 -0
- package/dist/cross-border-BrIy1ieh.d.ts +192 -0
- package/dist/cross-border.d.mts +58 -0
- package/dist/cross-border.d.ts +58 -0
- package/dist/cross-border.js +2 -0
- package/dist/cross-border.js.map +1 -0
- package/dist/cross-border.mjs +2 -0
- package/dist/cross-border.mjs.map +1 -0
- package/dist/dpia-B9ZZJG5a.d.mts +15 -0
- package/dist/dpia-fdtTd2DI.d.ts +15 -0
- package/dist/dpia-vWfE_9bO.d.mts +137 -0
- package/dist/dpia-vWfE_9bO.d.ts +137 -0
- package/dist/dpia.d.mts +179 -0
- package/dist/dpia.d.ts +179 -0
- package/dist/dpia.js +2 -0
- package/dist/dpia.js.map +1 -0
- package/dist/dpia.mjs +2 -0
- package/dist/dpia.mjs.map +1 -0
- package/dist/dsr-jq5NUEdz.d.ts +14 -0
- package/dist/dsr-pQzQ3H1O.d.mts +128 -0
- package/dist/dsr-pQzQ3H1O.d.ts +128 -0
- package/dist/dsr-whPkiI0_.d.mts +14 -0
- package/dist/dsr.d.mts +192 -0
- package/dist/dsr.d.ts +192 -0
- package/dist/dsr.js +2 -0
- package/dist/dsr.js.map +1 -0
- package/dist/dsr.mjs +2 -0
- package/dist/dsr.mjs.map +1 -0
- package/dist/hooks.d.mts +17 -0
- package/dist/hooks.d.ts +17 -0
- package/dist/hooks.js +2 -0
- package/dist/hooks.js.map +1 -0
- package/dist/hooks.mjs +2 -0
- package/dist/hooks.mjs.map +1 -0
- package/dist/index.d.mts +31 -448
- package/dist/index.d.ts +31 -448
- package/dist/index.js +1 -190
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -190
- package/dist/index.mjs.map +1 -1
- package/dist/lawful-basis-CWtvDG1x.d.mts +112 -0
- package/dist/lawful-basis-CWtvDG1x.d.ts +112 -0
- package/dist/lawful-basis-D-oXFizg.d.mts +57 -0
- package/dist/lawful-basis-v04AhbK2.d.ts +57 -0
- package/dist/lawful-basis.d.mts +55 -0
- package/dist/lawful-basis.d.ts +55 -0
- package/dist/lawful-basis.js +2 -0
- package/dist/lawful-basis.js.map +1 -0
- package/dist/lawful-basis.mjs +2 -0
- package/dist/lawful-basis.mjs.map +1 -0
- package/dist/policy.d.mts +195 -0
- package/dist/policy.d.ts +195 -0
- package/dist/policy.js +2 -0
- package/dist/policy.js.map +1 -0
- package/dist/policy.mjs +2 -0
- package/dist/policy.mjs.map +1 -0
- package/dist/privacy-9FcJceMr.d.mts +15 -0
- package/dist/privacy-BXz7O2ej.d.ts +15 -0
- package/dist/privacy-Ca6te9Ir.d.mts +138 -0
- package/dist/privacy-Ca6te9Ir.d.ts +138 -0
- package/dist/ropa-BebGfqKQ.d.ts +200 -0
- package/dist/ropa-Rb4dsFSz.d.mts +200 -0
- package/dist/ropa.d.mts +45 -0
- package/dist/ropa.d.ts +45 -0
- package/dist/ropa.js +2 -0
- package/dist/ropa.js.map +1 -0
- package/dist/ropa.mjs +2 -0
- package/dist/ropa.mjs.map +1 -0
- package/dist/unstyled.d.mts +4 -4
- package/dist/unstyled.d.ts +4 -4
- package/dist/unstyled.js +1 -1
- package/dist/unstyled.js.map +1 -1
- package/dist/unstyled.mjs +1 -1
- package/dist/unstyled.mjs.map +1 -1
- package/dist/useBreach-WrZzJilM.d.mts +99 -0
- package/dist/useBreach-vrh_XMpI.d.ts +99 -0
- package/dist/useConsent-D0pAfTlb.d.ts +65 -0
- package/dist/useConsent-DOt2Njst.d.mts +65 -0
- package/dist/useCrossBorderTransfer-D4FQYfFt.d.ts +66 -0
- package/dist/useCrossBorderTransfer-TVnY8_UX.d.mts +66 -0
- package/dist/useDPIA-DFDHBLSa.d.ts +94 -0
- package/dist/useDPIA-FqPofFaV.d.mts +94 -0
- package/dist/useDSR-DAqqOBXb.d.ts +74 -0
- package/dist/useDSR-OXM5Q9rf.d.mts +74 -0
- package/dist/useLawfulBasis-DNQ8YszQ.d.mts +68 -0
- package/dist/useLawfulBasis-RILM_xsx.d.ts +68 -0
- package/dist/usePrivacyPolicy-CfySfBLS.d.ts +89 -0
- package/dist/usePrivacyPolicy-Dit2sFuV.d.mts +89 -0
- package/dist/useROPA-Bcs6cRdi.d.ts +64 -0
- package/dist/useROPA-nmcSiUYv.d.mts +64 -0
- package/package.json +146 -20
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { C as ConsentOption, a as ConsentSettings, b as ConsentStorageOptions } from './consent-CmVzqZUk.mjs';
|
|
3
|
+
export { L as LawfulBasisType } from './consent-CmVzqZUk.mjs';
|
|
4
|
+
export { u as useConsent } from './useConsent-DOt2Njst.mjs';
|
|
5
|
+
export { v as validateConsent, a as validateConsentOptions } from './consent-DCc5zjXI.mjs';
|
|
6
|
+
|
|
7
|
+
interface ConsentBannerProps {
|
|
8
|
+
/**
|
|
9
|
+
* Array of consent options to display
|
|
10
|
+
*/
|
|
11
|
+
options: ConsentOption[];
|
|
12
|
+
/**
|
|
13
|
+
* Callback function called when user saves their consent choices
|
|
14
|
+
*/
|
|
15
|
+
onSave: (settings: ConsentSettings) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Title displayed on the banner
|
|
18
|
+
* @default "We Value Your Privacy"
|
|
19
|
+
*/
|
|
20
|
+
title?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Description text displayed on the banner
|
|
23
|
+
* @default "We use cookies and similar technologies to provide our services and enhance your experience."
|
|
24
|
+
*/
|
|
25
|
+
description?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Text for the accept all button
|
|
28
|
+
* @default "Accept All"
|
|
29
|
+
*/
|
|
30
|
+
acceptAllButtonText?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Text for the reject all button
|
|
33
|
+
* @default "Reject All"
|
|
34
|
+
*/
|
|
35
|
+
rejectAllButtonText?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Text for the customize button
|
|
38
|
+
* @default "Customize"
|
|
39
|
+
*/
|
|
40
|
+
customizeButtonText?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Text for the save button
|
|
43
|
+
* @default "Save Preferences"
|
|
44
|
+
*/
|
|
45
|
+
saveButtonText?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Position of the banner
|
|
48
|
+
* @default "bottom"
|
|
49
|
+
*/
|
|
50
|
+
position?: 'top' | 'bottom' | 'center';
|
|
51
|
+
/**
|
|
52
|
+
* Version of the consent form
|
|
53
|
+
* @default "1.0"
|
|
54
|
+
*/
|
|
55
|
+
version?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Whether to show the banner
|
|
58
|
+
* If not provided, the banner will be shown if no consent has been saved
|
|
59
|
+
*/
|
|
60
|
+
show?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Storage key for consent settings
|
|
63
|
+
* @default "ndpr_consent"
|
|
64
|
+
*/
|
|
65
|
+
storageKey?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Custom CSS class for the banner
|
|
68
|
+
*/
|
|
69
|
+
className?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Custom CSS class for the buttons
|
|
72
|
+
*/
|
|
73
|
+
buttonClassName?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Custom CSS class for the primary button
|
|
76
|
+
*/
|
|
77
|
+
primaryButtonClassName?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Custom CSS class for the secondary button
|
|
80
|
+
*/
|
|
81
|
+
secondaryButtonClassName?: string;
|
|
82
|
+
}
|
|
83
|
+
declare const ConsentBanner: React.FC<ConsentBannerProps>;
|
|
84
|
+
|
|
85
|
+
interface ConsentManagerProps {
|
|
86
|
+
/**
|
|
87
|
+
* Array of consent options to display
|
|
88
|
+
*/
|
|
89
|
+
options: ConsentOption[];
|
|
90
|
+
/**
|
|
91
|
+
* Current consent settings
|
|
92
|
+
*/
|
|
93
|
+
settings?: ConsentSettings;
|
|
94
|
+
/**
|
|
95
|
+
* Callback function called when user saves their consent choices
|
|
96
|
+
*/
|
|
97
|
+
onSave: (settings: ConsentSettings) => void;
|
|
98
|
+
/**
|
|
99
|
+
* Title displayed in the manager
|
|
100
|
+
* @default "Manage Your Privacy Settings"
|
|
101
|
+
*/
|
|
102
|
+
title?: string;
|
|
103
|
+
/**
|
|
104
|
+
* Description text displayed in the manager
|
|
105
|
+
* @default "Update your consent preferences at any time. Required cookies cannot be disabled as they are necessary for the website to function."
|
|
106
|
+
*/
|
|
107
|
+
description?: string;
|
|
108
|
+
/**
|
|
109
|
+
* Text for the save button
|
|
110
|
+
* @default "Save Preferences"
|
|
111
|
+
*/
|
|
112
|
+
saveButtonText?: string;
|
|
113
|
+
/**
|
|
114
|
+
* Text for the reset button
|
|
115
|
+
* @default "Reset to Defaults"
|
|
116
|
+
*/
|
|
117
|
+
resetButtonText?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Version of the consent form
|
|
120
|
+
* @default "1.0"
|
|
121
|
+
*/
|
|
122
|
+
version?: string;
|
|
123
|
+
/**
|
|
124
|
+
* Custom CSS class for the manager
|
|
125
|
+
*/
|
|
126
|
+
className?: string;
|
|
127
|
+
/**
|
|
128
|
+
* Custom CSS class for the buttons
|
|
129
|
+
*/
|
|
130
|
+
buttonClassName?: string;
|
|
131
|
+
/**
|
|
132
|
+
* Custom CSS class for the primary button
|
|
133
|
+
*/
|
|
134
|
+
primaryButtonClassName?: string;
|
|
135
|
+
/**
|
|
136
|
+
* Custom CSS class for the secondary button
|
|
137
|
+
*/
|
|
138
|
+
secondaryButtonClassName?: string;
|
|
139
|
+
/**
|
|
140
|
+
* Whether to show a success message after saving
|
|
141
|
+
* @default true
|
|
142
|
+
*/
|
|
143
|
+
showSuccessMessage?: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Success message to display after saving
|
|
146
|
+
* @default "Your preferences have been saved."
|
|
147
|
+
*/
|
|
148
|
+
successMessage?: string;
|
|
149
|
+
/**
|
|
150
|
+
* Duration to show the success message (in milliseconds)
|
|
151
|
+
* @default 3000
|
|
152
|
+
*/
|
|
153
|
+
successMessageDuration?: number;
|
|
154
|
+
}
|
|
155
|
+
declare const ConsentManager: React.FC<ConsentManagerProps>;
|
|
156
|
+
|
|
157
|
+
interface ConsentStorageProps {
|
|
158
|
+
/**
|
|
159
|
+
* Current consent settings
|
|
160
|
+
*/
|
|
161
|
+
settings: ConsentSettings;
|
|
162
|
+
/**
|
|
163
|
+
* Storage options for consent settings
|
|
164
|
+
*/
|
|
165
|
+
storageOptions?: ConsentStorageOptions;
|
|
166
|
+
/**
|
|
167
|
+
* Callback function called when settings are loaded from storage
|
|
168
|
+
*/
|
|
169
|
+
onLoad?: (settings: ConsentSettings | null) => void;
|
|
170
|
+
/**
|
|
171
|
+
* Callback function called when settings are saved to storage
|
|
172
|
+
*/
|
|
173
|
+
onSave?: (settings: ConsentSettings) => void;
|
|
174
|
+
/**
|
|
175
|
+
* Whether to automatically save settings to storage
|
|
176
|
+
* @default true
|
|
177
|
+
*/
|
|
178
|
+
autoSave?: boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Whether to automatically load settings from storage on mount
|
|
181
|
+
* @default true
|
|
182
|
+
*/
|
|
183
|
+
autoLoad?: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* Children to render
|
|
186
|
+
* Can be either React nodes or a render prop function that receives storage methods
|
|
187
|
+
*/
|
|
188
|
+
children?: React.ReactNode | ((props: {
|
|
189
|
+
loadSettings: () => ConsentSettings | null;
|
|
190
|
+
saveSettings: (settings: ConsentSettings) => void;
|
|
191
|
+
clearSettings: () => void;
|
|
192
|
+
loaded: boolean;
|
|
193
|
+
}) => React.ReactNode);
|
|
194
|
+
}
|
|
195
|
+
declare const ConsentStorage: ({ settings, storageOptions, onLoad, onSave, autoSave, autoLoad, children }: ConsentStorageProps) => React.ReactElement | null;
|
|
196
|
+
|
|
197
|
+
export { ConsentBanner, ConsentManager, ConsentOption, ConsentSettings, ConsentStorage, ConsentStorageOptions };
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { C as ConsentOption, a as ConsentSettings, b as ConsentStorageOptions } from './consent-CmVzqZUk.js';
|
|
3
|
+
export { L as LawfulBasisType } from './consent-CmVzqZUk.js';
|
|
4
|
+
export { u as useConsent } from './useConsent-D0pAfTlb.js';
|
|
5
|
+
export { v as validateConsent, a as validateConsentOptions } from './consent-DLWb5ota.js';
|
|
6
|
+
|
|
7
|
+
interface ConsentBannerProps {
|
|
8
|
+
/**
|
|
9
|
+
* Array of consent options to display
|
|
10
|
+
*/
|
|
11
|
+
options: ConsentOption[];
|
|
12
|
+
/**
|
|
13
|
+
* Callback function called when user saves their consent choices
|
|
14
|
+
*/
|
|
15
|
+
onSave: (settings: ConsentSettings) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Title displayed on the banner
|
|
18
|
+
* @default "We Value Your Privacy"
|
|
19
|
+
*/
|
|
20
|
+
title?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Description text displayed on the banner
|
|
23
|
+
* @default "We use cookies and similar technologies to provide our services and enhance your experience."
|
|
24
|
+
*/
|
|
25
|
+
description?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Text for the accept all button
|
|
28
|
+
* @default "Accept All"
|
|
29
|
+
*/
|
|
30
|
+
acceptAllButtonText?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Text for the reject all button
|
|
33
|
+
* @default "Reject All"
|
|
34
|
+
*/
|
|
35
|
+
rejectAllButtonText?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Text for the customize button
|
|
38
|
+
* @default "Customize"
|
|
39
|
+
*/
|
|
40
|
+
customizeButtonText?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Text for the save button
|
|
43
|
+
* @default "Save Preferences"
|
|
44
|
+
*/
|
|
45
|
+
saveButtonText?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Position of the banner
|
|
48
|
+
* @default "bottom"
|
|
49
|
+
*/
|
|
50
|
+
position?: 'top' | 'bottom' | 'center';
|
|
51
|
+
/**
|
|
52
|
+
* Version of the consent form
|
|
53
|
+
* @default "1.0"
|
|
54
|
+
*/
|
|
55
|
+
version?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Whether to show the banner
|
|
58
|
+
* If not provided, the banner will be shown if no consent has been saved
|
|
59
|
+
*/
|
|
60
|
+
show?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Storage key for consent settings
|
|
63
|
+
* @default "ndpr_consent"
|
|
64
|
+
*/
|
|
65
|
+
storageKey?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Custom CSS class for the banner
|
|
68
|
+
*/
|
|
69
|
+
className?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Custom CSS class for the buttons
|
|
72
|
+
*/
|
|
73
|
+
buttonClassName?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Custom CSS class for the primary button
|
|
76
|
+
*/
|
|
77
|
+
primaryButtonClassName?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Custom CSS class for the secondary button
|
|
80
|
+
*/
|
|
81
|
+
secondaryButtonClassName?: string;
|
|
82
|
+
}
|
|
83
|
+
declare const ConsentBanner: React.FC<ConsentBannerProps>;
|
|
84
|
+
|
|
85
|
+
interface ConsentManagerProps {
|
|
86
|
+
/**
|
|
87
|
+
* Array of consent options to display
|
|
88
|
+
*/
|
|
89
|
+
options: ConsentOption[];
|
|
90
|
+
/**
|
|
91
|
+
* Current consent settings
|
|
92
|
+
*/
|
|
93
|
+
settings?: ConsentSettings;
|
|
94
|
+
/**
|
|
95
|
+
* Callback function called when user saves their consent choices
|
|
96
|
+
*/
|
|
97
|
+
onSave: (settings: ConsentSettings) => void;
|
|
98
|
+
/**
|
|
99
|
+
* Title displayed in the manager
|
|
100
|
+
* @default "Manage Your Privacy Settings"
|
|
101
|
+
*/
|
|
102
|
+
title?: string;
|
|
103
|
+
/**
|
|
104
|
+
* Description text displayed in the manager
|
|
105
|
+
* @default "Update your consent preferences at any time. Required cookies cannot be disabled as they are necessary for the website to function."
|
|
106
|
+
*/
|
|
107
|
+
description?: string;
|
|
108
|
+
/**
|
|
109
|
+
* Text for the save button
|
|
110
|
+
* @default "Save Preferences"
|
|
111
|
+
*/
|
|
112
|
+
saveButtonText?: string;
|
|
113
|
+
/**
|
|
114
|
+
* Text for the reset button
|
|
115
|
+
* @default "Reset to Defaults"
|
|
116
|
+
*/
|
|
117
|
+
resetButtonText?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Version of the consent form
|
|
120
|
+
* @default "1.0"
|
|
121
|
+
*/
|
|
122
|
+
version?: string;
|
|
123
|
+
/**
|
|
124
|
+
* Custom CSS class for the manager
|
|
125
|
+
*/
|
|
126
|
+
className?: string;
|
|
127
|
+
/**
|
|
128
|
+
* Custom CSS class for the buttons
|
|
129
|
+
*/
|
|
130
|
+
buttonClassName?: string;
|
|
131
|
+
/**
|
|
132
|
+
* Custom CSS class for the primary button
|
|
133
|
+
*/
|
|
134
|
+
primaryButtonClassName?: string;
|
|
135
|
+
/**
|
|
136
|
+
* Custom CSS class for the secondary button
|
|
137
|
+
*/
|
|
138
|
+
secondaryButtonClassName?: string;
|
|
139
|
+
/**
|
|
140
|
+
* Whether to show a success message after saving
|
|
141
|
+
* @default true
|
|
142
|
+
*/
|
|
143
|
+
showSuccessMessage?: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Success message to display after saving
|
|
146
|
+
* @default "Your preferences have been saved."
|
|
147
|
+
*/
|
|
148
|
+
successMessage?: string;
|
|
149
|
+
/**
|
|
150
|
+
* Duration to show the success message (in milliseconds)
|
|
151
|
+
* @default 3000
|
|
152
|
+
*/
|
|
153
|
+
successMessageDuration?: number;
|
|
154
|
+
}
|
|
155
|
+
declare const ConsentManager: React.FC<ConsentManagerProps>;
|
|
156
|
+
|
|
157
|
+
interface ConsentStorageProps {
|
|
158
|
+
/**
|
|
159
|
+
* Current consent settings
|
|
160
|
+
*/
|
|
161
|
+
settings: ConsentSettings;
|
|
162
|
+
/**
|
|
163
|
+
* Storage options for consent settings
|
|
164
|
+
*/
|
|
165
|
+
storageOptions?: ConsentStorageOptions;
|
|
166
|
+
/**
|
|
167
|
+
* Callback function called when settings are loaded from storage
|
|
168
|
+
*/
|
|
169
|
+
onLoad?: (settings: ConsentSettings | null) => void;
|
|
170
|
+
/**
|
|
171
|
+
* Callback function called when settings are saved to storage
|
|
172
|
+
*/
|
|
173
|
+
onSave?: (settings: ConsentSettings) => void;
|
|
174
|
+
/**
|
|
175
|
+
* Whether to automatically save settings to storage
|
|
176
|
+
* @default true
|
|
177
|
+
*/
|
|
178
|
+
autoSave?: boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Whether to automatically load settings from storage on mount
|
|
181
|
+
* @default true
|
|
182
|
+
*/
|
|
183
|
+
autoLoad?: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* Children to render
|
|
186
|
+
* Can be either React nodes or a render prop function that receives storage methods
|
|
187
|
+
*/
|
|
188
|
+
children?: React.ReactNode | ((props: {
|
|
189
|
+
loadSettings: () => ConsentSettings | null;
|
|
190
|
+
saveSettings: (settings: ConsentSettings) => void;
|
|
191
|
+
clearSettings: () => void;
|
|
192
|
+
loaded: boolean;
|
|
193
|
+
}) => React.ReactNode);
|
|
194
|
+
}
|
|
195
|
+
declare const ConsentStorage: ({ settings, storageOptions, onLoad, onSave, autoSave, autoLoad, children }: ConsentStorageProps) => React.ReactElement | null;
|
|
196
|
+
|
|
197
|
+
export { ConsentBanner, ConsentManager, ConsentOption, ConsentSettings, ConsentStorage, ConsentStorageOptions };
|
package/dist/consent.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkFK3CSFLJ_js=require('./chunk-FK3CSFLJ.js'),chunkZU73VG3X_js=require('./chunk-ZU73VG3X.js'),chunkY34DQYS7_js=require('./chunk-Y34DQYS7.js');require('./chunk-MQFZHA2D.js');Object.defineProperty(exports,"ConsentBanner",{enumerable:true,get:function(){return chunkFK3CSFLJ_js.a}});Object.defineProperty(exports,"ConsentManager",{enumerable:true,get:function(){return chunkFK3CSFLJ_js.b}});Object.defineProperty(exports,"ConsentStorage",{enumerable:true,get:function(){return chunkFK3CSFLJ_js.c}});Object.defineProperty(exports,"useConsent",{enumerable:true,get:function(){return chunkZU73VG3X_js.a}});Object.defineProperty(exports,"validateConsent",{enumerable:true,get:function(){return chunkY34DQYS7_js.a}});Object.defineProperty(exports,"validateConsentOptions",{enumerable:true,get:function(){return chunkY34DQYS7_js.b}});//# sourceMappingURL=consent.js.map
|
|
2
|
+
//# sourceMappingURL=consent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"consent.js"}
|
package/dist/consent.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{a as ConsentBanner,b as ConsentManager,c as ConsentStorage}from'./chunk-SLNMKGQ2.mjs';export{a as useConsent}from'./chunk-PDJGTQMY.mjs';export{a as validateConsent,b as validateConsentOptions}from'./chunk-GIV2OHE6.mjs';import'./chunk-WWT2ZSNU.mjs';//# sourceMappingURL=consent.mjs.map
|
|
2
|
+
//# sourceMappingURL=consent.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"consent.mjs"}
|
package/dist/core.d.mts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { C as ConsentOption, a as ConsentSettings, b as ConsentStorageOptions, L as LawfulBasisType } from './consent-CmVzqZUk.mjs';
|
|
2
|
+
export { D as DSRRequest, a as DSRStatus, b as DSRType, c as RequestStatus, R as RequestType } from './dsr-pQzQ3H1O.mjs';
|
|
3
|
+
export { D as DPIAQuestion, b as DPIAResult, c as DPIARisk, a as DPIASection } from './dpia-vWfE_9bO.mjs';
|
|
4
|
+
export { a as BreachCategory, B as BreachReport, N as NotificationRequirement, b as RegulatoryNotification, R as RiskAssessment } from './breach-BtFbDOmV.mjs';
|
|
5
|
+
export { O as OrganizationInfo, P as PolicySection, a as PolicyTemplate, b as PolicyVariable, c as PrivacyPolicy } from './privacy-Ca6te9Ir.mjs';
|
|
6
|
+
export { L as LawfulBasis, b as LawfulBasisSummary, a as LegitimateInterestAssessment, P as ProcessingActivity, S as SensitiveDataCondition } from './lawful-basis-CWtvDG1x.mjs';
|
|
7
|
+
export { A as AdequacyStatus, b as CrossBorderSummary, C as CrossBorderTransfer, a as TransferImpactAssessment, T as TransferMechanism, e as TransferRiskResult, d as TransferValidationResult, c as assessTransferRisk, g as getTransferMechanismDescription, i as isNDPCApprovalRequired, v as validateTransfer } from './cross-border-BrIy1ieh.mjs';
|
|
8
|
+
export { P as ProcessingRecord, b as ROPAComplianceGap, a as ROPASummary, c as ROPAValidationResult, R as RecordOfProcessingActivities, e as exportROPAToCSV, g as generateROPASummary, i as identifyComplianceGaps, v as validateProcessingRecord } from './ropa-Rb4dsFSz.mjs';
|
|
9
|
+
export { L as LawfulBasisComplianceGap, c as LawfulBasisValidationResult, a as assessComplianceGaps, b as generateLawfulBasisSummary, g as getLawfulBasisDescription, v as validateProcessingActivity } from './lawful-basis-D-oXFizg.mjs';
|
|
10
|
+
export { v as validateConsent, a as validateConsentOptions } from './consent-DCc5zjXI.mjs';
|
|
11
|
+
export { f as formatDSRRequest } from './dsr-whPkiI0_.mjs';
|
|
12
|
+
export { a as assessDPIARisk } from './dpia-B9ZZJG5a.mjs';
|
|
13
|
+
export { c as calculateBreachSeverity } from './breach-6z0r-KuE.mjs';
|
|
14
|
+
export { g as generatePolicyText } from './privacy-9FcJceMr.mjs';
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { C as ConsentOption, a as ConsentSettings, b as ConsentStorageOptions, L as LawfulBasisType } from './consent-CmVzqZUk.js';
|
|
2
|
+
export { D as DSRRequest, a as DSRStatus, b as DSRType, c as RequestStatus, R as RequestType } from './dsr-pQzQ3H1O.js';
|
|
3
|
+
export { D as DPIAQuestion, b as DPIAResult, c as DPIARisk, a as DPIASection } from './dpia-vWfE_9bO.js';
|
|
4
|
+
export { a as BreachCategory, B as BreachReport, N as NotificationRequirement, b as RegulatoryNotification, R as RiskAssessment } from './breach-BtFbDOmV.js';
|
|
5
|
+
export { O as OrganizationInfo, P as PolicySection, a as PolicyTemplate, b as PolicyVariable, c as PrivacyPolicy } from './privacy-Ca6te9Ir.js';
|
|
6
|
+
export { L as LawfulBasis, b as LawfulBasisSummary, a as LegitimateInterestAssessment, P as ProcessingActivity, S as SensitiveDataCondition } from './lawful-basis-CWtvDG1x.js';
|
|
7
|
+
export { A as AdequacyStatus, b as CrossBorderSummary, C as CrossBorderTransfer, a as TransferImpactAssessment, T as TransferMechanism, e as TransferRiskResult, d as TransferValidationResult, c as assessTransferRisk, g as getTransferMechanismDescription, i as isNDPCApprovalRequired, v as validateTransfer } from './cross-border-BrIy1ieh.js';
|
|
8
|
+
export { P as ProcessingRecord, b as ROPAComplianceGap, a as ROPASummary, c as ROPAValidationResult, R as RecordOfProcessingActivities, e as exportROPAToCSV, g as generateROPASummary, i as identifyComplianceGaps, v as validateProcessingRecord } from './ropa-BebGfqKQ.js';
|
|
9
|
+
export { L as LawfulBasisComplianceGap, c as LawfulBasisValidationResult, a as assessComplianceGaps, b as generateLawfulBasisSummary, g as getLawfulBasisDescription, v as validateProcessingActivity } from './lawful-basis-v04AhbK2.js';
|
|
10
|
+
export { v as validateConsent, a as validateConsentOptions } from './consent-DLWb5ota.js';
|
|
11
|
+
export { f as formatDSRRequest } from './dsr-jq5NUEdz.js';
|
|
12
|
+
export { a as assessDPIARisk } from './dpia-fdtTd2DI.js';
|
|
13
|
+
export { c as calculateBreachSeverity } from './breach-BFfnvtRk.js';
|
|
14
|
+
export { g as generatePolicyText } from './privacy-BXz7O2ej.js';
|
package/dist/core.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkTDDAYVKK_js=require('./chunk-TDDAYVKK.js'),chunkIQF726GS_js=require('./chunk-IQF726GS.js'),chunkSWF3YVE5_js=require('./chunk-SWF3YVE5.js'),chunkY34DQYS7_js=require('./chunk-Y34DQYS7.js'),chunkCMZTI7SG_js=require('./chunk-CMZTI7SG.js'),chunkSSGJREE3_js=require('./chunk-SSGJREE3.js'),chunkRYZEIDNR_js=require('./chunk-RYZEIDNR.js'),chunkPM7CMTMB_js=require('./chunk-PM7CMTMB.js');require('./chunk-MQFZHA2D.js');Object.defineProperty(exports,"assessComplianceGaps",{enumerable:true,get:function(){return chunkTDDAYVKK_js.c}});Object.defineProperty(exports,"generateLawfulBasisSummary",{enumerable:true,get:function(){return chunkTDDAYVKK_js.d}});Object.defineProperty(exports,"getLawfulBasisDescription",{enumerable:true,get:function(){return chunkTDDAYVKK_js.b}});Object.defineProperty(exports,"validateProcessingActivity",{enumerable:true,get:function(){return chunkTDDAYVKK_js.a}});Object.defineProperty(exports,"assessTransferRisk",{enumerable:true,get:function(){return chunkIQF726GS_js.d}});Object.defineProperty(exports,"getTransferMechanismDescription",{enumerable:true,get:function(){return chunkIQF726GS_js.b}});Object.defineProperty(exports,"isNDPCApprovalRequired",{enumerable:true,get:function(){return chunkIQF726GS_js.a}});Object.defineProperty(exports,"validateTransfer",{enumerable:true,get:function(){return chunkIQF726GS_js.c}});Object.defineProperty(exports,"exportROPAToCSV",{enumerable:true,get:function(){return chunkSWF3YVE5_js.c}});Object.defineProperty(exports,"generateROPASummary",{enumerable:true,get:function(){return chunkSWF3YVE5_js.b}});Object.defineProperty(exports,"identifyComplianceGaps",{enumerable:true,get:function(){return chunkSWF3YVE5_js.d}});Object.defineProperty(exports,"validateProcessingRecord",{enumerable:true,get:function(){return chunkSWF3YVE5_js.a}});Object.defineProperty(exports,"validateConsent",{enumerable:true,get:function(){return chunkY34DQYS7_js.a}});Object.defineProperty(exports,"validateConsentOptions",{enumerable:true,get:function(){return chunkY34DQYS7_js.b}});Object.defineProperty(exports,"formatDSRRequest",{enumerable:true,get:function(){return chunkCMZTI7SG_js.a}});Object.defineProperty(exports,"assessDPIARisk",{enumerable:true,get:function(){return chunkSSGJREE3_js.a}});Object.defineProperty(exports,"calculateBreachSeverity",{enumerable:true,get:function(){return chunkRYZEIDNR_js.a}});Object.defineProperty(exports,"generatePolicyText",{enumerable:true,get:function(){return chunkPM7CMTMB_js.a}});//# sourceMappingURL=core.js.map
|
|
2
|
+
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"core.js"}
|
package/dist/core.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{c as assessComplianceGaps,d as generateLawfulBasisSummary,b as getLawfulBasisDescription,a as validateProcessingActivity}from'./chunk-TXBZPCGF.mjs';export{d as assessTransferRisk,b as getTransferMechanismDescription,a as isNDPCApprovalRequired,c as validateTransfer}from'./chunk-QKK5S54L.mjs';export{c as exportROPAToCSV,b as generateROPASummary,d as identifyComplianceGaps,a as validateProcessingRecord}from'./chunk-PYEX7DFR.mjs';export{a as validateConsent,b as validateConsentOptions}from'./chunk-GIV2OHE6.mjs';export{a as formatDSRRequest}from'./chunk-2SYNHRP6.mjs';export{a as assessDPIARisk}from'./chunk-PGSA2O5P.mjs';export{a as calculateBreachSeverity}from'./chunk-RGYK4VAY.mjs';export{a as generatePolicyText}from'./chunk-UYP64PV7.mjs';import'./chunk-WWT2ZSNU.mjs';//# sourceMappingURL=core.mjs.map
|
|
2
|
+
//# sourceMappingURL=core.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"core.mjs"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-Border Data Transfer types aligned with NDPA 2023 Part VI (Sections 41-45)
|
|
3
|
+
* Personal data may only be transferred outside Nigeria under specific conditions
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Transfer mechanisms recognized under the NDPA
|
|
7
|
+
*/
|
|
8
|
+
type TransferMechanism = 'adequacy_decision' | 'standard_clauses' | 'binding_corporate_rules' | 'ndpc_authorization' | 'explicit_consent' | 'contract_performance' | 'public_interest' | 'legal_claims' | 'vital_interests';
|
|
9
|
+
/**
|
|
10
|
+
* Adequacy status of a destination country
|
|
11
|
+
*/
|
|
12
|
+
type AdequacyStatus = 'adequate' | 'inadequate' | 'pending_review' | 'unknown';
|
|
13
|
+
/**
|
|
14
|
+
* Represents a cross-border data transfer record
|
|
15
|
+
*/
|
|
16
|
+
interface CrossBorderTransfer {
|
|
17
|
+
/** Unique identifier */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Destination country or territory */
|
|
20
|
+
destinationCountry: string;
|
|
21
|
+
/** ISO country code */
|
|
22
|
+
destinationCountryCode?: string;
|
|
23
|
+
/** Adequacy status of the destination */
|
|
24
|
+
adequacyStatus: AdequacyStatus;
|
|
25
|
+
/** The transfer mechanism being relied upon */
|
|
26
|
+
transferMechanism: TransferMechanism;
|
|
27
|
+
/** Categories of personal data being transferred */
|
|
28
|
+
dataCategories: string[];
|
|
29
|
+
/** Whether sensitive personal data is included */
|
|
30
|
+
includesSensitiveData: boolean;
|
|
31
|
+
/** Estimated number of data subjects whose data is transferred */
|
|
32
|
+
estimatedDataSubjects?: number;
|
|
33
|
+
/** Name of the recipient organization */
|
|
34
|
+
recipientOrganization: string;
|
|
35
|
+
/** Contact details of the recipient */
|
|
36
|
+
recipientContact: {
|
|
37
|
+
name: string;
|
|
38
|
+
email: string;
|
|
39
|
+
phone?: string;
|
|
40
|
+
address?: string;
|
|
41
|
+
};
|
|
42
|
+
/** Purpose of the data transfer */
|
|
43
|
+
purpose: string;
|
|
44
|
+
/** Safeguards in place to protect the data */
|
|
45
|
+
safeguards: string[];
|
|
46
|
+
/** Risk assessment summary */
|
|
47
|
+
riskAssessment: string;
|
|
48
|
+
/** Risk level of the transfer */
|
|
49
|
+
riskLevel: 'low' | 'medium' | 'high';
|
|
50
|
+
/** NDPC approval details (required for some transfer mechanisms) */
|
|
51
|
+
ndpcApproval?: {
|
|
52
|
+
required: boolean;
|
|
53
|
+
applied: boolean;
|
|
54
|
+
approved?: boolean;
|
|
55
|
+
referenceNumber?: string;
|
|
56
|
+
appliedAt?: number;
|
|
57
|
+
approvedAt?: number;
|
|
58
|
+
};
|
|
59
|
+
/** Whether a Transfer Impact Assessment has been conducted */
|
|
60
|
+
tiaCompleted: boolean;
|
|
61
|
+
/** Reference to the TIA document */
|
|
62
|
+
tiaReference?: string;
|
|
63
|
+
/** Frequency of the transfer */
|
|
64
|
+
frequency: 'one_time' | 'periodic' | 'continuous';
|
|
65
|
+
/** Start date of the transfer */
|
|
66
|
+
startDate: number;
|
|
67
|
+
/** End date of the transfer (if applicable) */
|
|
68
|
+
endDate?: number;
|
|
69
|
+
/** Status of the transfer */
|
|
70
|
+
status: 'active' | 'suspended' | 'terminated' | 'pending_approval';
|
|
71
|
+
/** Timestamp when the record was created */
|
|
72
|
+
createdAt: number;
|
|
73
|
+
/** Timestamp when the record was last updated */
|
|
74
|
+
updatedAt: number;
|
|
75
|
+
/** Next review date */
|
|
76
|
+
reviewDate?: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Transfer Impact Assessment (TIA) for cross-border transfers
|
|
80
|
+
*/
|
|
81
|
+
interface TransferImpactAssessment {
|
|
82
|
+
/** Unique identifier */
|
|
83
|
+
id: string;
|
|
84
|
+
/** ID of the associated cross-border transfer */
|
|
85
|
+
transferId: string;
|
|
86
|
+
/** Date the assessment was conducted */
|
|
87
|
+
assessmentDate: number;
|
|
88
|
+
/** Person who conducted the assessment */
|
|
89
|
+
assessor: {
|
|
90
|
+
name: string;
|
|
91
|
+
role: string;
|
|
92
|
+
email: string;
|
|
93
|
+
};
|
|
94
|
+
/** Analysis of the destination country's legal framework */
|
|
95
|
+
destinationLegalFramework: string;
|
|
96
|
+
/** Whether the destination has data protection legislation */
|
|
97
|
+
hasDataProtectionLaw: boolean;
|
|
98
|
+
/** Whether the destination has an independent supervisory authority */
|
|
99
|
+
hasIndependentAuthority: boolean;
|
|
100
|
+
/** Risk of government access to the data */
|
|
101
|
+
governmentAccessRisk: 'low' | 'medium' | 'high';
|
|
102
|
+
/** Overall assessment of data protection level */
|
|
103
|
+
dataProtectionLevel: 'adequate' | 'partially_adequate' | 'inadequate';
|
|
104
|
+
/** Supplementary measures to address gaps */
|
|
105
|
+
supplementaryMeasures: string[];
|
|
106
|
+
/** Technical measures (encryption, pseudonymization, etc.) */
|
|
107
|
+
technicalMeasures: string[];
|
|
108
|
+
/** Contractual measures */
|
|
109
|
+
contractualMeasures: string[];
|
|
110
|
+
/** Organizational measures */
|
|
111
|
+
organizationalMeasures: string[];
|
|
112
|
+
/** Overall conclusion */
|
|
113
|
+
conclusion: string;
|
|
114
|
+
/** Whether the transfer can proceed based on the assessment */
|
|
115
|
+
approved: boolean;
|
|
116
|
+
/** Conditions for the transfer (if approved with conditions) */
|
|
117
|
+
conditions?: string[];
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Summary of cross-border transfer compliance
|
|
121
|
+
*/
|
|
122
|
+
interface CrossBorderSummary {
|
|
123
|
+
/** Total number of active transfers */
|
|
124
|
+
totalActiveTransfers: number;
|
|
125
|
+
/** Breakdown by transfer mechanism */
|
|
126
|
+
byMechanism: Record<TransferMechanism, number>;
|
|
127
|
+
/** Breakdown by adequacy status */
|
|
128
|
+
byAdequacy: Record<AdequacyStatus, number>;
|
|
129
|
+
/** Transfers pending NDPC approval */
|
|
130
|
+
pendingApproval: CrossBorderTransfer[];
|
|
131
|
+
/** Transfers due for review */
|
|
132
|
+
dueForReview: CrossBorderTransfer[];
|
|
133
|
+
/** Transfers missing TIA */
|
|
134
|
+
missingTIA: CrossBorderTransfer[];
|
|
135
|
+
/** High-risk transfers */
|
|
136
|
+
highRiskTransfers: CrossBorderTransfer[];
|
|
137
|
+
/** Last updated timestamp */
|
|
138
|
+
lastUpdated: number;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Validation result for a cross-border transfer
|
|
143
|
+
*/
|
|
144
|
+
interface TransferValidationResult {
|
|
145
|
+
isValid: boolean;
|
|
146
|
+
errors: string[];
|
|
147
|
+
warnings: string[];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Risk assessment result for a cross-border transfer
|
|
151
|
+
*/
|
|
152
|
+
interface TransferRiskResult {
|
|
153
|
+
riskLevel: 'low' | 'medium' | 'high';
|
|
154
|
+
riskScore: number;
|
|
155
|
+
factors: string[];
|
|
156
|
+
recommendations: string[];
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Returns whether NDPC approval is required for a given transfer mechanism.
|
|
160
|
+
* Approval is required for standard contractual clauses (Section 42),
|
|
161
|
+
* binding corporate rules (Section 43), and specific NDPC authorization (Section 44).
|
|
162
|
+
*
|
|
163
|
+
* @param mechanism The transfer mechanism
|
|
164
|
+
* @returns Whether NDPC approval is required
|
|
165
|
+
*/
|
|
166
|
+
declare function isNDPCApprovalRequired(mechanism: TransferMechanism): boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Returns a human-readable description of a transfer mechanism with its NDPA section reference.
|
|
169
|
+
*
|
|
170
|
+
* @param mechanism The transfer mechanism
|
|
171
|
+
* @returns Description including the relevant NDPA section
|
|
172
|
+
*/
|
|
173
|
+
declare function getTransferMechanismDescription(mechanism: TransferMechanism): string;
|
|
174
|
+
/**
|
|
175
|
+
* Validates a cross-border transfer record for completeness and compliance.
|
|
176
|
+
* Checks required fields, verifies that NDPC approval is documented when required,
|
|
177
|
+
* and ensures safeguards are in place.
|
|
178
|
+
*
|
|
179
|
+
* @param transfer The cross-border transfer to validate
|
|
180
|
+
* @returns Validation result with errors and warnings
|
|
181
|
+
*/
|
|
182
|
+
declare function validateTransfer(transfer: CrossBorderTransfer): TransferValidationResult;
|
|
183
|
+
/**
|
|
184
|
+
* Performs a basic risk assessment of a cross-border transfer based on adequacy status,
|
|
185
|
+
* transfer mechanism, and data sensitivity.
|
|
186
|
+
*
|
|
187
|
+
* @param transfer The cross-border transfer to assess
|
|
188
|
+
* @returns Risk assessment result with score, factors, and recommendations
|
|
189
|
+
*/
|
|
190
|
+
declare function assessTransferRisk(transfer: CrossBorderTransfer): TransferRiskResult;
|
|
191
|
+
|
|
192
|
+
export { type AdequacyStatus as A, type CrossBorderTransfer as C, type TransferMechanism as T, type TransferImpactAssessment as a, type CrossBorderSummary as b, assessTransferRisk as c, type TransferValidationResult as d, type TransferRiskResult as e, getTransferMechanismDescription as g, isNDPCApprovalRequired as i, validateTransfer as v };
|