@tantainnovative/ndpr-toolkit 3.4.0 → 3.5.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.
Files changed (188) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +80 -38
  3. package/dist/adapters.d.mts +34 -25
  4. package/dist/adapters.d.ts +34 -25
  5. package/dist/breach.d.mts +803 -44
  6. package/dist/breach.d.ts +803 -44
  7. package/dist/breach.js +2 -1
  8. package/dist/breach.mjs +2 -1
  9. package/dist/{chunk-2WH4DLV5.js → chunk-3EGQWLJ6.js} +3 -3
  10. package/dist/chunk-B4Z5MBUC.mjs +2 -0
  11. package/dist/{chunk-LSCMXAPY.mjs → chunk-CKGJK4D7.mjs} +3 -3
  12. package/dist/{chunk-XSEZDQLB.js → chunk-CKJAECGV.js} +2 -2
  13. package/dist/{chunk-AHSMDPG5.js → chunk-CPK5D5FY.js} +2 -2
  14. package/dist/{chunk-DCJK5OZT.mjs → chunk-CWHBCQGT.mjs} +2 -2
  15. package/dist/{chunk-KSERBMXW.mjs → chunk-F5TXUA4O.mjs} +3 -3
  16. package/dist/{chunk-BN77GP4W.mjs → chunk-GN5C32JB.mjs} +2 -2
  17. package/dist/{chunk-ZLSWOFAY.mjs → chunk-GRLIPT5V.mjs} +2 -2
  18. package/dist/{chunk-DUY6F3GT.mjs → chunk-H3EYBSVP.mjs} +3 -3
  19. package/dist/{chunk-MG73MOZC.mjs → chunk-I557S566.mjs} +2 -2
  20. package/dist/{chunk-QVULSG6J.mjs → chunk-ID2NYIVE.mjs} +3 -3
  21. package/dist/chunk-J5WCPZLW.js +2 -0
  22. package/dist/{chunk-4R42ZNO7.mjs → chunk-JFFOPHU3.mjs} +57 -57
  23. package/dist/{chunk-P2YV6DR3.js → chunk-LIM64IV2.js} +3 -3
  24. package/dist/chunk-LU7PKE7Y.mjs +2 -0
  25. package/dist/{chunk-HQSU7LGM.js → chunk-LWXZMKC2.js} +4 -4
  26. package/dist/{chunk-XMBSJJ5U.js → chunk-ORFC66EA.js} +3 -3
  27. package/dist/{chunk-VTITKWGX.mjs → chunk-QSVVAZVT.mjs} +2 -2
  28. package/dist/chunk-SCWNM4PC.mjs +2 -0
  29. package/dist/{chunk-EHAZIKDX.js → chunk-SKKOMFXH.js} +2 -2
  30. package/dist/{chunk-WH6ZMUOS.mjs → chunk-TUNQUVHU.mjs} +2 -2
  31. package/dist/chunk-TV4U6AIS.js +2 -0
  32. package/dist/{chunk-ZYLDLGFL.js → chunk-VIQUXWJC.js} +2 -2
  33. package/dist/{chunk-SUEGUY35.js → chunk-XIM7KMD6.js} +2 -2
  34. package/dist/{chunk-P6QAFBCV.js → chunk-XNSZ7KUH.js} +2 -2
  35. package/dist/{chunk-RNTNHVKZ.js → chunk-YPKUHSK4.js} +2 -2
  36. package/dist/{chunk-UFPSUO52.js → chunk-Z73T6MWY.js} +57 -57
  37. package/dist/consent.d.mts +648 -84
  38. package/dist/consent.d.ts +648 -84
  39. package/dist/consent.js +2 -1
  40. package/dist/consent.mjs +2 -1
  41. package/dist/core.d.mts +2049 -23
  42. package/dist/core.d.ts +2049 -23
  43. package/dist/core.js +1 -1
  44. package/dist/core.mjs +1 -1
  45. package/dist/cross-border.d.mts +470 -99
  46. package/dist/cross-border.d.ts +470 -99
  47. package/dist/cross-border.js +1 -0
  48. package/dist/cross-border.mjs +1 -0
  49. package/dist/dpia.d.mts +591 -37
  50. package/dist/dpia.d.ts +591 -37
  51. package/dist/dpia.js +1 -0
  52. package/dist/dpia.mjs +1 -0
  53. package/dist/dsr.d.mts +654 -37
  54. package/dist/dsr.d.ts +654 -37
  55. package/dist/dsr.js +2 -1
  56. package/dist/dsr.mjs +2 -1
  57. package/dist/hooks.d.mts +2174 -30
  58. package/dist/hooks.d.ts +2174 -30
  59. package/dist/hooks.js +2 -1
  60. package/dist/hooks.mjs +2 -1
  61. package/dist/index.d.mts +4428 -43
  62. package/dist/index.d.ts +4428 -43
  63. package/dist/index.js +2 -1
  64. package/dist/index.mjs +2 -1
  65. package/dist/lawful-basis.d.mts +368 -32
  66. package/dist/lawful-basis.d.ts +368 -32
  67. package/dist/lawful-basis.js +1 -0
  68. package/dist/lawful-basis.mjs +1 -0
  69. package/dist/policy.d.mts +1178 -83
  70. package/dist/policy.d.ts +1178 -83
  71. package/dist/policy.js +2 -1
  72. package/dist/policy.mjs +2 -1
  73. package/dist/presets.d.mts +1020 -114
  74. package/dist/presets.d.ts +1020 -114
  75. package/dist/presets.js +2 -1
  76. package/dist/presets.mjs +2 -1
  77. package/dist/ropa.d.mts +396 -31
  78. package/dist/ropa.d.ts +396 -31
  79. package/dist/ropa.js +2 -1
  80. package/dist/ropa.mjs +2 -1
  81. package/dist/server.d.mts +2133 -24
  82. package/dist/server.d.ts +2133 -24
  83. package/dist/server.js +1 -1
  84. package/dist/server.mjs +1 -1
  85. package/dist/unstyled.d.mts +523 -55
  86. package/dist/unstyled.d.ts +523 -55
  87. package/dist/unstyled.js +2 -1
  88. package/dist/unstyled.mjs +2 -1
  89. package/package.json +3 -3
  90. package/dist/BreachReportForm-DpRrBoxU.d.ts +0 -158
  91. package/dist/BreachReportForm-yJ2Zl6gz.d.mts +0 -158
  92. package/dist/ConsentBanner-F5ayys5K.d.mts +0 -156
  93. package/dist/ConsentBanner-VqIPophc.d.ts +0 -156
  94. package/dist/ConsentManager-C7I3PDe8.d.mts +0 -105
  95. package/dist/ConsentManager-CQ2IZtUU.d.ts +0 -105
  96. package/dist/CrossBorderTransferManager-D5Lc0e46.d.ts +0 -90
  97. package/dist/CrossBorderTransferManager-DkZhv9vD.d.mts +0 -90
  98. package/dist/DPIAQuestionnaire-VXBoWFMC.d.ts +0 -123
  99. package/dist/DPIAQuestionnaire-jkt1Veb6.d.mts +0 -123
  100. package/dist/DSRRequestForm-D8rPTNmU.d.ts +0 -146
  101. package/dist/DSRRequestForm-DRouEr9j.d.mts +0 -146
  102. package/dist/DSRTracker-Bl__d4df.d.ts +0 -163
  103. package/dist/DSRTracker-CSVDfgQQ.d.mts +0 -163
  104. package/dist/LawfulBasisTracker-CBqOxX1D.d.mts +0 -85
  105. package/dist/LawfulBasisTracker-Cg30NbDA.d.ts +0 -85
  106. package/dist/NDPRDashboard-CLJpEg0X.d.mts +0 -44
  107. package/dist/NDPRDashboard-DDWNd2Ah.d.ts +0 -44
  108. package/dist/NDPRProvider-DYFb8xEl.d.ts +0 -68
  109. package/dist/NDPRProvider-U3QNu6MA.d.mts +0 -68
  110. package/dist/PolicyExporter-Bgi6nz82.d.mts +0 -291
  111. package/dist/PolicyExporter-BnvuFncj.d.ts +0 -291
  112. package/dist/ROPAManager-BS4eB8Hw.d.mts +0 -79
  113. package/dist/ROPAManager-qxTrXLkD.d.ts +0 -79
  114. package/dist/RegulatoryReportGenerator-BUYgzTTT.d.ts +0 -282
  115. package/dist/RegulatoryReportGenerator-DwcHcEFp.d.mts +0 -282
  116. package/dist/StepIndicator-CgrlokSV.d.ts +0 -171
  117. package/dist/StepIndicator-W8S_QjgO.d.mts +0 -171
  118. package/dist/breach-B_-6lDqS.d.mts +0 -17
  119. package/dist/breach-CzXqSsaY.d.ts +0 -17
  120. package/dist/breach-Eu9byel8.d.mts +0 -185
  121. package/dist/breach-Eu9byel8.d.ts +0 -185
  122. package/dist/chunk-5X32J5IA.mjs +0 -2
  123. package/dist/chunk-7D2OIPHH.mjs +0 -2
  124. package/dist/chunk-JKKRPS4P.js +0 -2
  125. package/dist/chunk-NCOZB2WU.mjs +0 -2
  126. package/dist/chunk-RGNP45VR.js +0 -2
  127. package/dist/compliance-score-racQe_E_.d.mts +0 -115
  128. package/dist/compliance-score-racQe_E_.d.ts +0 -115
  129. package/dist/consent-CmVzqZUk.d.mts +0 -99
  130. package/dist/consent-CmVzqZUk.d.ts +0 -99
  131. package/dist/consent-audit-BdByjYlM.d.mts +0 -65
  132. package/dist/consent-audit-DhbfMR0n.d.ts +0 -65
  133. package/dist/cross-border-BBi9rZyO.d.mts +0 -54
  134. package/dist/cross-border-Dy-U9Hu6.d.ts +0 -54
  135. package/dist/cross-border-UyT00llA.d.mts +0 -141
  136. package/dist/cross-border-UyT00llA.d.ts +0 -141
  137. package/dist/docx-BxKascXN.d.ts +0 -64
  138. package/dist/docx-CV7Vsry_.d.mts +0 -64
  139. package/dist/dpia-D82hUrJe.d.ts +0 -15
  140. package/dist/dpia-DQDFw2_l.d.mts +0 -15
  141. package/dist/dpia-c9GiiOq0.d.mts +0 -137
  142. package/dist/dpia-c9GiiOq0.d.ts +0 -137
  143. package/dist/dsr-CIx5sd7e.d.ts +0 -14
  144. package/dist/dsr-XZ_HqTlA.d.mts +0 -14
  145. package/dist/dsr-yKbqX531.d.mts +0 -128
  146. package/dist/dsr-yKbqX531.d.ts +0 -128
  147. package/dist/lawful-basis-BEyI0kGg.d.ts +0 -57
  148. package/dist/lawful-basis-C2eGaoHM.d.mts +0 -57
  149. package/dist/lawful-basis-Cv1VmDLn.d.mts +0 -112
  150. package/dist/lawful-basis-Cv1VmDLn.d.ts +0 -112
  151. package/dist/locale-CxJx2tzn.d.mts +0 -25
  152. package/dist/locale-DSkrtf-c.d.ts +0 -25
  153. package/dist/policy-engine-CCUCud2T.d.ts +0 -154
  154. package/dist/policy-engine-fYSqEqSW.d.mts +0 -154
  155. package/dist/policy-sections-BYx6fEFk.d.ts +0 -56
  156. package/dist/policy-sections-Dm97Nq8m.d.mts +0 -56
  157. package/dist/policy-templates-DhLwq4R-.d.ts +0 -43
  158. package/dist/policy-templates-DwYl2329.d.mts +0 -43
  159. package/dist/privacy-Ca6te9Ir.d.mts +0 -138
  160. package/dist/privacy-Ca6te9Ir.d.ts +0 -138
  161. package/dist/ropa-BDTM06tr.d.ts +0 -152
  162. package/dist/ropa-CFHuT7jE.d.mts +0 -152
  163. package/dist/ropa-CyynscU6.d.ts +0 -51
  164. package/dist/ropa-NIgxd8uP.d.mts +0 -51
  165. package/dist/sanitize-CxxwKxAx.d.mts +0 -94
  166. package/dist/sanitize-CxxwKxAx.d.ts +0 -94
  167. package/dist/styling-BMDGQDgS.d.mts +0 -64
  168. package/dist/styling-BaoQtV06.d.ts +0 -64
  169. package/dist/types-DK2CoKOC.d.mts +0 -10
  170. package/dist/types-DK2CoKOC.d.ts +0 -10
  171. package/dist/useAdaptivePolicyWizard-BnjW4OR4.d.mts +0 -52
  172. package/dist/useAdaptivePolicyWizard-sb3m4-Zk.d.ts +0 -52
  173. package/dist/useBreach-CPr86Yan.d.mts +0 -115
  174. package/dist/useBreach-DkVXvtJK.d.ts +0 -115
  175. package/dist/useConsent-DCNkIJHR.d.mts +0 -75
  176. package/dist/useConsent-dOcELSfX.d.ts +0 -75
  177. package/dist/useCrossBorderTransfer-DixjLjN1.d.mts +0 -78
  178. package/dist/useCrossBorderTransfer-DvSq06lv.d.ts +0 -78
  179. package/dist/useDPIA-B6180UQn.d.mts +0 -109
  180. package/dist/useDPIA-CTqbNbww.d.ts +0 -109
  181. package/dist/useDSR-WvHk8_iu.d.mts +0 -85
  182. package/dist/useDSR-wH4H6hSM.d.ts +0 -85
  183. package/dist/useDefaultPrivacyPolicy-Cs2WQSYQ.d.mts +0 -162
  184. package/dist/useDefaultPrivacyPolicy-DkOqMg2e.d.ts +0 -162
  185. package/dist/useLawfulBasis-CKJ-kw84.d.mts +0 -79
  186. package/dist/useLawfulBasis-DFTmu1ca.d.ts +0 -79
  187. package/dist/useROPA-BSSU1rfx.d.ts +0 -76
  188. package/dist/useROPA-C2hjaBTz.d.mts +0 -76
@@ -1,171 +0,0 @@
1
- import React__default from 'react';
2
- import { a as DPIAResult, c as DPIASection } from './dpia-c9GiiOq0.js';
3
-
4
- interface DPIAReportClassNames {
5
- /** Outermost wrapper */
6
- root?: string;
7
- /** Report header area */
8
- header?: string;
9
- /** Main report title */
10
- title?: string;
11
- /** Executive summary section */
12
- summary?: string;
13
- /** Risk level badge */
14
- riskBadge?: string;
15
- /** Risks table element */
16
- riskTable?: string;
17
- /** Individual risk row */
18
- riskRow?: string;
19
- /** Recommendation list item */
20
- recommendation?: string;
21
- /** Conclusion text */
22
- conclusion?: string;
23
- /** Print button */
24
- printButton?: string;
25
- /** Alias for printButton */
26
- primaryButton?: string;
27
- }
28
- interface DPIAReportProps {
29
- /**
30
- * The DPIA result to display
31
- */
32
- result: DPIAResult;
33
- /**
34
- * The sections of the DPIA questionnaire
35
- */
36
- sections: DPIASection[];
37
- /**
38
- * Whether to show the full report or just a summary
39
- * @default true
40
- */
41
- showFullReport?: boolean;
42
- /**
43
- * Whether to allow printing the report
44
- * @default true
45
- */
46
- allowPrint?: boolean;
47
- /**
48
- * Whether to allow exporting the report as PDF
49
- * @default true
50
- */
51
- allowExport?: boolean;
52
- /**
53
- * Callback function called when the report is exported
54
- */
55
- onExport?: (format: 'pdf' | 'docx' | 'html') => void;
56
- /**
57
- * Custom CSS class for the report container
58
- */
59
- className?: string;
60
- /**
61
- * Custom CSS class for the buttons
62
- */
63
- buttonClassName?: string;
64
- /**
65
- * Per-section class name overrides
66
- */
67
- classNames?: DPIAReportClassNames;
68
- /**
69
- * When true, all default classes are stripped.
70
- * Only explicit overrides from `classNames` are applied.
71
- * @default false
72
- */
73
- unstyled?: boolean;
74
- }
75
- /**
76
- * DPIA report component. Implements NDPA Sections 38-39 requirements for documenting
77
- * and presenting Data Protection Impact Assessment findings, risks, and recommendations.
78
- */
79
- declare const DPIAReport: React__default.FC<DPIAReportProps>;
80
-
81
- interface Step {
82
- /**
83
- * Unique identifier for the step
84
- */
85
- id: string;
86
- /**
87
- * Display label for the step
88
- */
89
- label: string;
90
- /**
91
- * Optional description for the step
92
- */
93
- description?: string;
94
- /**
95
- * Whether the step is completed
96
- */
97
- completed: boolean;
98
- /**
99
- * Whether the step is the current active step
100
- */
101
- active: boolean;
102
- /**
103
- * Optional icon for the step
104
- */
105
- icon?: React__default.ReactNode;
106
- }
107
- interface StepIndicatorClassNames {
108
- /** Outermost wrapper */
109
- root?: string;
110
- /** Individual step wrapper */
111
- step?: string;
112
- /** Active step circle / indicator */
113
- stepActive?: string;
114
- /** Completed step circle / indicator */
115
- stepCompleted?: string;
116
- /** Pending (incomplete, inactive) step circle / indicator */
117
- stepPending?: string;
118
- /** Connector line between steps */
119
- connector?: string;
120
- /** Step label text */
121
- label?: string;
122
- }
123
- interface StepIndicatorProps {
124
- /**
125
- * Array of steps to display
126
- */
127
- steps: Step[];
128
- /**
129
- * Callback function called when a step is clicked
130
- */
131
- onStepClick?: (stepId: string) => void;
132
- /**
133
- * Whether the steps are clickable
134
- * @default true
135
- */
136
- clickable?: boolean;
137
- /**
138
- * Orientation of the step indicator
139
- * @default "horizontal"
140
- */
141
- orientation?: 'horizontal' | 'vertical';
142
- /**
143
- * Custom CSS class for the container
144
- */
145
- className?: string;
146
- /**
147
- * Custom CSS class for the active step
148
- */
149
- activeStepClassName?: string;
150
- /**
151
- * Custom CSS class for completed steps
152
- */
153
- completedStepClassName?: string;
154
- /**
155
- * Custom CSS class for incomplete steps
156
- */
157
- incompleteStepClassName?: string;
158
- /**
159
- * Per-section class name overrides
160
- */
161
- classNames?: StepIndicatorClassNames;
162
- /**
163
- * When true, all default classes are stripped.
164
- * Only explicit overrides from `classNames` are applied.
165
- * @default false
166
- */
167
- unstyled?: boolean;
168
- }
169
- declare const StepIndicator: React__default.FC<StepIndicatorProps>;
170
-
171
- export { DPIAReport as D, StepIndicator as S, type DPIAReportClassNames as a, type StepIndicatorClassNames as b, type DPIAReportProps as c, type StepIndicatorProps as d };
@@ -1,171 +0,0 @@
1
- import React__default from 'react';
2
- import { a as DPIAResult, c as DPIASection } from './dpia-c9GiiOq0.mjs';
3
-
4
- interface DPIAReportClassNames {
5
- /** Outermost wrapper */
6
- root?: string;
7
- /** Report header area */
8
- header?: string;
9
- /** Main report title */
10
- title?: string;
11
- /** Executive summary section */
12
- summary?: string;
13
- /** Risk level badge */
14
- riskBadge?: string;
15
- /** Risks table element */
16
- riskTable?: string;
17
- /** Individual risk row */
18
- riskRow?: string;
19
- /** Recommendation list item */
20
- recommendation?: string;
21
- /** Conclusion text */
22
- conclusion?: string;
23
- /** Print button */
24
- printButton?: string;
25
- /** Alias for printButton */
26
- primaryButton?: string;
27
- }
28
- interface DPIAReportProps {
29
- /**
30
- * The DPIA result to display
31
- */
32
- result: DPIAResult;
33
- /**
34
- * The sections of the DPIA questionnaire
35
- */
36
- sections: DPIASection[];
37
- /**
38
- * Whether to show the full report or just a summary
39
- * @default true
40
- */
41
- showFullReport?: boolean;
42
- /**
43
- * Whether to allow printing the report
44
- * @default true
45
- */
46
- allowPrint?: boolean;
47
- /**
48
- * Whether to allow exporting the report as PDF
49
- * @default true
50
- */
51
- allowExport?: boolean;
52
- /**
53
- * Callback function called when the report is exported
54
- */
55
- onExport?: (format: 'pdf' | 'docx' | 'html') => void;
56
- /**
57
- * Custom CSS class for the report container
58
- */
59
- className?: string;
60
- /**
61
- * Custom CSS class for the buttons
62
- */
63
- buttonClassName?: string;
64
- /**
65
- * Per-section class name overrides
66
- */
67
- classNames?: DPIAReportClassNames;
68
- /**
69
- * When true, all default classes are stripped.
70
- * Only explicit overrides from `classNames` are applied.
71
- * @default false
72
- */
73
- unstyled?: boolean;
74
- }
75
- /**
76
- * DPIA report component. Implements NDPA Sections 38-39 requirements for documenting
77
- * and presenting Data Protection Impact Assessment findings, risks, and recommendations.
78
- */
79
- declare const DPIAReport: React__default.FC<DPIAReportProps>;
80
-
81
- interface Step {
82
- /**
83
- * Unique identifier for the step
84
- */
85
- id: string;
86
- /**
87
- * Display label for the step
88
- */
89
- label: string;
90
- /**
91
- * Optional description for the step
92
- */
93
- description?: string;
94
- /**
95
- * Whether the step is completed
96
- */
97
- completed: boolean;
98
- /**
99
- * Whether the step is the current active step
100
- */
101
- active: boolean;
102
- /**
103
- * Optional icon for the step
104
- */
105
- icon?: React__default.ReactNode;
106
- }
107
- interface StepIndicatorClassNames {
108
- /** Outermost wrapper */
109
- root?: string;
110
- /** Individual step wrapper */
111
- step?: string;
112
- /** Active step circle / indicator */
113
- stepActive?: string;
114
- /** Completed step circle / indicator */
115
- stepCompleted?: string;
116
- /** Pending (incomplete, inactive) step circle / indicator */
117
- stepPending?: string;
118
- /** Connector line between steps */
119
- connector?: string;
120
- /** Step label text */
121
- label?: string;
122
- }
123
- interface StepIndicatorProps {
124
- /**
125
- * Array of steps to display
126
- */
127
- steps: Step[];
128
- /**
129
- * Callback function called when a step is clicked
130
- */
131
- onStepClick?: (stepId: string) => void;
132
- /**
133
- * Whether the steps are clickable
134
- * @default true
135
- */
136
- clickable?: boolean;
137
- /**
138
- * Orientation of the step indicator
139
- * @default "horizontal"
140
- */
141
- orientation?: 'horizontal' | 'vertical';
142
- /**
143
- * Custom CSS class for the container
144
- */
145
- className?: string;
146
- /**
147
- * Custom CSS class for the active step
148
- */
149
- activeStepClassName?: string;
150
- /**
151
- * Custom CSS class for completed steps
152
- */
153
- completedStepClassName?: string;
154
- /**
155
- * Custom CSS class for incomplete steps
156
- */
157
- incompleteStepClassName?: string;
158
- /**
159
- * Per-section class name overrides
160
- */
161
- classNames?: StepIndicatorClassNames;
162
- /**
163
- * When true, all default classes are stripped.
164
- * Only explicit overrides from `classNames` are applied.
165
- * @default false
166
- */
167
- unstyled?: boolean;
168
- }
169
- declare const StepIndicator: React__default.FC<StepIndicatorProps>;
170
-
171
- export { DPIAReport as D, StepIndicator as S, type DPIAReportClassNames as a, type StepIndicatorClassNames as b, type DPIAReportProps as c, type StepIndicatorProps as d };
@@ -1,17 +0,0 @@
1
- import { a as BreachReport, b as RiskAssessment } from './breach-Eu9byel8.mjs';
2
-
3
- /**
4
- * Calculates the severity of a data breach based on various factors
5
- * @param report The breach report
6
- * @param assessment The risk assessment (if available)
7
- * @returns The calculated severity and notification requirements
8
- */
9
- declare function calculateBreachSeverity(report: BreachReport, assessment?: RiskAssessment): {
10
- severityLevel: 'low' | 'medium' | 'high' | 'critical';
11
- notificationRequired: boolean;
12
- urgentNotificationRequired: boolean;
13
- timeframeHours: number;
14
- justification: string;
15
- };
16
-
17
- export { calculateBreachSeverity as c };
@@ -1,17 +0,0 @@
1
- import { a as BreachReport, b as RiskAssessment } from './breach-Eu9byel8.js';
2
-
3
- /**
4
- * Calculates the severity of a data breach based on various factors
5
- * @param report The breach report
6
- * @param assessment The risk assessment (if available)
7
- * @returns The calculated severity and notification requirements
8
- */
9
- declare function calculateBreachSeverity(report: BreachReport, assessment?: RiskAssessment): {
10
- severityLevel: 'low' | 'medium' | 'high' | 'critical';
11
- notificationRequired: boolean;
12
- urgentNotificationRequired: boolean;
13
- timeframeHours: number;
14
- justification: string;
15
- };
16
-
17
- export { calculateBreachSeverity as c };
@@ -1,185 +0,0 @@
1
- /**
2
- * Breach notification types aligned with NDPA 2023 Section 40
3
- * Data controllers must notify the NDPC within 72 hours of becoming aware of a breach
4
- * Data subjects must be notified without undue delay when breach is likely to result in high risk
5
- */
6
- /**
7
- * Represents a data breach category
8
- */
9
- interface BreachCategory {
10
- /** Unique identifier for the category */
11
- id: string;
12
- /** Display name for the category */
13
- name: string;
14
- /** Description of this breach category */
15
- description: string;
16
- /** Default severity level for this category */
17
- defaultSeverity: 'low' | 'medium' | 'high' | 'critical';
18
- }
19
- /**
20
- * Represents a data breach report
21
- */
22
- interface BreachReport {
23
- /** Unique identifier for the breach report */
24
- id: string;
25
- /** Title/summary of the breach */
26
- title: string;
27
- /** Detailed description of the breach */
28
- description: string;
29
- /** Category of the breach */
30
- category: string;
31
- /** Timestamp when the breach was discovered */
32
- discoveredAt: number;
33
- /** Timestamp when the breach occurred (if known) */
34
- occurredAt?: number;
35
- /** Timestamp when the breach was reported internally */
36
- reportedAt: number;
37
- /** Person who reported the breach */
38
- reporter: {
39
- name: string;
40
- email: string;
41
- department: string;
42
- phone?: string;
43
- };
44
- /** Systems or data affected by the breach */
45
- affectedSystems: string[];
46
- /** Types of data involved in the breach */
47
- dataTypes: string[];
48
- /** Whether sensitive personal data is involved (NDPA Section 27) */
49
- involvesSensitiveData?: boolean;
50
- /** Estimated number of data subjects affected */
51
- estimatedAffectedSubjects?: number;
52
- /** Whether the breach is ongoing or contained */
53
- status: 'ongoing' | 'contained' | 'resolved';
54
- /** Initial actions taken to address the breach */
55
- initialActions?: string;
56
- /** Attachments related to the breach */
57
- attachments?: Array<{
58
- id: string;
59
- name: string;
60
- type: string;
61
- url: string;
62
- addedAt: number;
63
- }>;
64
- }
65
- /**
66
- * Represents a risk assessment for a data breach
67
- */
68
- interface RiskAssessment {
69
- /** Unique identifier for the risk assessment */
70
- id: string;
71
- /** ID of the breach this assessment is for */
72
- breachId: string;
73
- /** Timestamp when the assessment was conducted */
74
- assessedAt: number;
75
- /** Person who conducted the assessment */
76
- assessor: {
77
- name: string;
78
- role: string;
79
- email: string;
80
- };
81
- /** Confidentiality impact (1-5) */
82
- confidentialityImpact: number;
83
- /** Integrity impact (1-5) */
84
- integrityImpact: number;
85
- /** Availability impact (1-5) */
86
- availabilityImpact: number;
87
- /** Likelihood of harm to data subjects (1-5) */
88
- harmLikelihood: number;
89
- /** Severity of potential harm to data subjects (1-5) */
90
- harmSeverity: number;
91
- /** Overall risk score */
92
- overallRiskScore: number;
93
- /** Risk level based on the overall score */
94
- riskLevel: 'low' | 'medium' | 'high' | 'critical';
95
- /** Whether the breach is likely to result in a risk to rights and freedoms */
96
- risksToRightsAndFreedoms: boolean;
97
- /** Whether the breach is likely to result in a high risk to rights and freedoms */
98
- highRisksToRightsAndFreedoms: boolean;
99
- /** Justification for the risk assessment */
100
- justification: string;
101
- }
102
- /**
103
- * Represents notification requirements for a data breach per NDPA Section 40
104
- */
105
- interface NotificationRequirement {
106
- /**
107
- * Whether NDPC notification is required
108
- * Per NDPA Section 40, notification to NDPC is required for all breaches
109
- * that pose a risk to data subjects' rights and freedoms
110
- */
111
- ndpcNotificationRequired: boolean;
112
- /**
113
- * Deadline for NDPC notification (72 hours from discovery)
114
- * NDPA Section 40(1)
115
- */
116
- ndpcNotificationDeadline: number;
117
- /**
118
- * Whether data subject notification is required
119
- * Per NDPA Section 40(4), required when breach is likely to result in
120
- * high risk to rights and freedoms of data subjects
121
- */
122
- dataSubjectNotificationRequired: boolean;
123
- /** Justification for the notification decision */
124
- justification: string;
125
- /**
126
- * @deprecated Use ndpcNotificationRequired instead. Kept for backward compatibility.
127
- */
128
- nitdaNotificationRequired?: boolean;
129
- /**
130
- * @deprecated Use ndpcNotificationDeadline instead. Kept for backward compatibility.
131
- */
132
- nitdaNotificationDeadline?: number;
133
- }
134
- /**
135
- * Represents a notification sent to the NDPC (Nigeria Data Protection Commission)
136
- */
137
- interface RegulatoryNotification {
138
- /** Unique identifier for the notification */
139
- id: string;
140
- /** ID of the breach this notification is for */
141
- breachId: string;
142
- /** Timestamp when the notification was sent */
143
- sentAt: number;
144
- /** Method used to send the notification */
145
- method: 'email' | 'portal' | 'letter' | 'other';
146
- /** Reference number assigned by the NDPC (if available) */
147
- referenceNumber?: string;
148
- /** Contact person at the NDPC */
149
- ndpcContact?: {
150
- name: string;
151
- email: string;
152
- phone?: string;
153
- };
154
- /** Content of the notification */
155
- content: string;
156
- /** Attachments included with the notification */
157
- attachments?: Array<{
158
- id: string;
159
- name: string;
160
- type: string;
161
- url: string;
162
- }>;
163
- /** Follow-up communications with the NDPC */
164
- followUps?: Array<{
165
- timestamp: number;
166
- direction: 'sent' | 'received';
167
- content: string;
168
- attachments?: Array<{
169
- id: string;
170
- name: string;
171
- type: string;
172
- url: string;
173
- }>;
174
- }>;
175
- /**
176
- * @deprecated Use ndpcContact instead. Kept for backward compatibility.
177
- */
178
- nitdaContact?: {
179
- name: string;
180
- email: string;
181
- phone?: string;
182
- };
183
- }
184
-
185
- export type { BreachCategory as B, NotificationRequirement as N, RegulatoryNotification as R, BreachReport as a, RiskAssessment as b };