@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,64 +0,0 @@
1
- import { c as PrivacyPolicy } from './privacy-Ca6te9Ir.mjs';
2
- import { H as HTMLExportOptions, g as PDFExportOptions, f as DOCXExportOptions } from './policy-engine-fYSqEqSW.mjs';
3
-
4
- /**
5
- * Export a PrivacyPolicy as a self-contained HTML string.
6
- *
7
- * The returned string includes:
8
- * - An embedded `<style>` block (responsive, dark/light, print-friendly)
9
- * - An `<article>` wrapper with semantic markup
10
- * - A `<nav>` table of contents with anchor links
11
- * - A `<section>` for every included policy section
12
- * - A metadata footer (org name, effective date, version, generator credit)
13
- * - Optional custom CSS injection via `options.customCSS`
14
- */
15
- declare function exportHTML(policy: PrivacyPolicy, options?: HTMLExportOptions): string;
16
-
17
- /**
18
- * Export a PrivacyPolicy as a clean Markdown string.
19
- *
20
- * Structure:
21
- * ```
22
- * # Policy Title
23
- * _Effective: date | Version: X | Org Name_
24
- *
25
- * ## Table of Contents
26
- * - [Section Title](#anchor)
27
- *
28
- * ## 1. Section Title
29
- * Section content...
30
- * ```
31
- */
32
- declare function exportMarkdown(policy: PrivacyPolicy): string;
33
-
34
- /**
35
- * Export a PrivacyPolicy to a PDF Blob using jspdf (optional peer dependency).
36
- *
37
- * Features:
38
- * - Optional cover page with title, organisation, date, version and compliance badge
39
- * - Optional table of contents page
40
- * - One section per heading, content reflowed to fit the page
41
- * - Automatic page breaks
42
- * - Page header (org name) and footer (page X of Y) on every page
43
- * - PDF metadata (title, author, subject, keywords)
44
- *
45
- * @throws {Error} if the `jspdf` package is not installed
46
- */
47
- declare function exportPDF(policy: PrivacyPolicy, options?: PDFExportOptions): Promise<Blob>;
48
-
49
- /**
50
- * Export a PrivacyPolicy as a Word (.docx) Blob using the `docx` library
51
- * (optional peer dependency).
52
- *
53
- * Features:
54
- * - Title paragraph with large bold text
55
- * - Organisation name + version subtitle
56
- * - Optional table of contents placeholder heading
57
- * - All included policy sections as Heading 1 + body paragraphs / bullet lists
58
- * - Running header (org name) and page-number footer on every page
59
- *
60
- * @throws {Error} if the `docx` package is not installed
61
- */
62
- declare function exportDOCX(policy: PrivacyPolicy, options?: DOCXExportOptions): Promise<Blob>;
63
-
64
- export { exportHTML as a, exportMarkdown as b, exportPDF as c, exportDOCX as e };
@@ -1,15 +0,0 @@
1
- import { a as DPIAResult } from './dpia-c9GiiOq0.js';
2
-
3
- /**
4
- * Assesses the risk level of a DPIA based on the identified risks
5
- * @param dpiaResult The DPIA result containing risks to assess
6
- * @returns Assessment result with overall risk level and recommendations
7
- */
8
- declare function assessDPIARisk(dpiaResult: DPIAResult): {
9
- overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
10
- requiresConsultation: boolean;
11
- canProceed: boolean;
12
- recommendations: string[];
13
- };
14
-
15
- export { assessDPIARisk as a };
@@ -1,15 +0,0 @@
1
- import { a as DPIAResult } from './dpia-c9GiiOq0.mjs';
2
-
3
- /**
4
- * Assesses the risk level of a DPIA based on the identified risks
5
- * @param dpiaResult The DPIA result containing risks to assess
6
- * @returns Assessment result with overall risk level and recommendations
7
- */
8
- declare function assessDPIARisk(dpiaResult: DPIAResult): {
9
- overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
10
- requiresConsultation: boolean;
11
- canProceed: boolean;
12
- recommendations: string[];
13
- };
14
-
15
- export { assessDPIARisk as a };
@@ -1,137 +0,0 @@
1
- /**
2
- * Data Protection Impact Assessment types aligned with NDPA 2023 Sections 38-39
3
- * A DPIA is required when processing is likely to result in high risk to data subjects
4
- */
5
- /**
6
- * Represents a question in the DPIA questionnaire
7
- */
8
- interface DPIAQuestion {
9
- /** Unique identifier for the question */
10
- id: string;
11
- /** The text of the question */
12
- text: string;
13
- /** Additional guidance for answering the question */
14
- guidance?: string;
15
- /** Type of input required for the answer */
16
- type: 'text' | 'textarea' | 'select' | 'radio' | 'checkbox' | 'scale';
17
- /** Options for select, radio, or checkbox questions */
18
- options?: Array<{
19
- value: string;
20
- label: string;
21
- riskLevel?: 'low' | 'medium' | 'high';
22
- }>;
23
- /** For scale questions, the minimum value */
24
- minValue?: number;
25
- /** For scale questions, the maximum value */
26
- maxValue?: number;
27
- /** For scale questions, labels for the scale points */
28
- scaleLabels?: Record<number, string>;
29
- /** Whether the question is required */
30
- required: boolean;
31
- /** Risk level associated with this question */
32
- riskLevel?: 'low' | 'medium' | 'high';
33
- /** Whether this question triggers additional questions based on the answer */
34
- hasDependentQuestions?: boolean;
35
- /** Conditions that determine when this question should be shown */
36
- showWhen?: Array<{
37
- questionId: string;
38
- operator: 'equals' | 'contains' | 'greaterThan' | 'lessThan';
39
- value: string | number | boolean;
40
- }>;
41
- }
42
- /**
43
- * Represents a section in the DPIA questionnaire
44
- */
45
- interface DPIASection {
46
- /** Unique identifier for the section */
47
- id: string;
48
- /** Title of the section */
49
- title: string;
50
- /** Description of the section */
51
- description?: string;
52
- /** Questions in this section */
53
- questions: DPIAQuestion[];
54
- /** Order of the section in the questionnaire */
55
- order: number;
56
- }
57
- /**
58
- * Represents a risk identified in the DPIA
59
- */
60
- interface DPIARisk {
61
- /** Unique identifier for the risk */
62
- id: string;
63
- /** Description of the risk */
64
- description: string;
65
- /** Likelihood of the risk occurring (1-5) */
66
- likelihood: number;
67
- /** Impact if the risk occurs (1-5) */
68
- impact: number;
69
- /** Overall risk score (likelihood * impact) */
70
- score: number;
71
- /** Risk level based on the score */
72
- level: 'low' | 'medium' | 'high' | 'critical';
73
- /** Measures to mitigate the risk */
74
- mitigationMeasures?: string[];
75
- /** Whether the risk has been mitigated */
76
- mitigated: boolean;
77
- /** Residual risk score after mitigation */
78
- residualScore?: number;
79
- /** Questions that identified this risk */
80
- relatedQuestionIds: string[];
81
- }
82
- /**
83
- * Represents the result of a completed DPIA
84
- */
85
- interface DPIAResult {
86
- /** Unique identifier for the DPIA */
87
- id: string;
88
- /** Title of the DPIA */
89
- title: string;
90
- /** Description of the processing activity being assessed */
91
- processingDescription: string;
92
- /** Timestamp when the DPIA was started */
93
- startedAt: number;
94
- /** Timestamp when the DPIA was completed */
95
- completedAt?: number;
96
- /** Person responsible for conducting the DPIA */
97
- assessor: {
98
- name: string;
99
- role: string;
100
- email: string;
101
- };
102
- /** Answers to all questions in the DPIA */
103
- answers: Record<string, string | number | boolean | string[]>;
104
- /** Risks identified in the DPIA */
105
- risks: DPIARisk[];
106
- /** Overall risk level of the processing activity */
107
- overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
108
- /** Whether the DPIA concluded that the processing can proceed */
109
- canProceed: boolean;
110
- /** Reasons why the processing can or cannot proceed */
111
- conclusion: string;
112
- /** Recommendations for the processing activity */
113
- recommendations?: string[];
114
- /** Next review date for the DPIA */
115
- reviewDate?: number;
116
- /** Version of the DPIA questionnaire used */
117
- version: string;
118
- /**
119
- * Whether prior consultation with NDPC is required
120
- * Per NDPA Section 39, consultation is required when DPIA indicates high residual risk
121
- */
122
- ndpcConsultationRequired?: boolean;
123
- /** Date when NDPC consultation was initiated */
124
- ndpcConsultationDate?: number;
125
- /** Reference number from NDPC consultation */
126
- ndpcConsultationReference?: string;
127
- /**
128
- * The lawful basis for the processing activity being assessed
129
- */
130
- lawfulBasis?: string;
131
- /**
132
- * Whether this DPIA involves cross-border data transfers
133
- */
134
- involvesCrossBorderTransfer?: boolean;
135
- }
136
-
137
- export type { DPIAQuestion as D, DPIAResult as a, DPIARisk as b, DPIASection as c };
@@ -1,137 +0,0 @@
1
- /**
2
- * Data Protection Impact Assessment types aligned with NDPA 2023 Sections 38-39
3
- * A DPIA is required when processing is likely to result in high risk to data subjects
4
- */
5
- /**
6
- * Represents a question in the DPIA questionnaire
7
- */
8
- interface DPIAQuestion {
9
- /** Unique identifier for the question */
10
- id: string;
11
- /** The text of the question */
12
- text: string;
13
- /** Additional guidance for answering the question */
14
- guidance?: string;
15
- /** Type of input required for the answer */
16
- type: 'text' | 'textarea' | 'select' | 'radio' | 'checkbox' | 'scale';
17
- /** Options for select, radio, or checkbox questions */
18
- options?: Array<{
19
- value: string;
20
- label: string;
21
- riskLevel?: 'low' | 'medium' | 'high';
22
- }>;
23
- /** For scale questions, the minimum value */
24
- minValue?: number;
25
- /** For scale questions, the maximum value */
26
- maxValue?: number;
27
- /** For scale questions, labels for the scale points */
28
- scaleLabels?: Record<number, string>;
29
- /** Whether the question is required */
30
- required: boolean;
31
- /** Risk level associated with this question */
32
- riskLevel?: 'low' | 'medium' | 'high';
33
- /** Whether this question triggers additional questions based on the answer */
34
- hasDependentQuestions?: boolean;
35
- /** Conditions that determine when this question should be shown */
36
- showWhen?: Array<{
37
- questionId: string;
38
- operator: 'equals' | 'contains' | 'greaterThan' | 'lessThan';
39
- value: string | number | boolean;
40
- }>;
41
- }
42
- /**
43
- * Represents a section in the DPIA questionnaire
44
- */
45
- interface DPIASection {
46
- /** Unique identifier for the section */
47
- id: string;
48
- /** Title of the section */
49
- title: string;
50
- /** Description of the section */
51
- description?: string;
52
- /** Questions in this section */
53
- questions: DPIAQuestion[];
54
- /** Order of the section in the questionnaire */
55
- order: number;
56
- }
57
- /**
58
- * Represents a risk identified in the DPIA
59
- */
60
- interface DPIARisk {
61
- /** Unique identifier for the risk */
62
- id: string;
63
- /** Description of the risk */
64
- description: string;
65
- /** Likelihood of the risk occurring (1-5) */
66
- likelihood: number;
67
- /** Impact if the risk occurs (1-5) */
68
- impact: number;
69
- /** Overall risk score (likelihood * impact) */
70
- score: number;
71
- /** Risk level based on the score */
72
- level: 'low' | 'medium' | 'high' | 'critical';
73
- /** Measures to mitigate the risk */
74
- mitigationMeasures?: string[];
75
- /** Whether the risk has been mitigated */
76
- mitigated: boolean;
77
- /** Residual risk score after mitigation */
78
- residualScore?: number;
79
- /** Questions that identified this risk */
80
- relatedQuestionIds: string[];
81
- }
82
- /**
83
- * Represents the result of a completed DPIA
84
- */
85
- interface DPIAResult {
86
- /** Unique identifier for the DPIA */
87
- id: string;
88
- /** Title of the DPIA */
89
- title: string;
90
- /** Description of the processing activity being assessed */
91
- processingDescription: string;
92
- /** Timestamp when the DPIA was started */
93
- startedAt: number;
94
- /** Timestamp when the DPIA was completed */
95
- completedAt?: number;
96
- /** Person responsible for conducting the DPIA */
97
- assessor: {
98
- name: string;
99
- role: string;
100
- email: string;
101
- };
102
- /** Answers to all questions in the DPIA */
103
- answers: Record<string, string | number | boolean | string[]>;
104
- /** Risks identified in the DPIA */
105
- risks: DPIARisk[];
106
- /** Overall risk level of the processing activity */
107
- overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
108
- /** Whether the DPIA concluded that the processing can proceed */
109
- canProceed: boolean;
110
- /** Reasons why the processing can or cannot proceed */
111
- conclusion: string;
112
- /** Recommendations for the processing activity */
113
- recommendations?: string[];
114
- /** Next review date for the DPIA */
115
- reviewDate?: number;
116
- /** Version of the DPIA questionnaire used */
117
- version: string;
118
- /**
119
- * Whether prior consultation with NDPC is required
120
- * Per NDPA Section 39, consultation is required when DPIA indicates high residual risk
121
- */
122
- ndpcConsultationRequired?: boolean;
123
- /** Date when NDPC consultation was initiated */
124
- ndpcConsultationDate?: number;
125
- /** Reference number from NDPC consultation */
126
- ndpcConsultationReference?: string;
127
- /**
128
- * The lawful basis for the processing activity being assessed
129
- */
130
- lawfulBasis?: string;
131
- /**
132
- * Whether this DPIA involves cross-border data transfers
133
- */
134
- involvesCrossBorderTransfer?: boolean;
135
- }
136
-
137
- export type { DPIAQuestion as D, DPIAResult as a, DPIARisk as b, DPIASection as c };
@@ -1,14 +0,0 @@
1
- import { D as DSRRequest } from './dsr-yKbqX531.js';
2
-
3
- /**
4
- * Formats a DSR request for display or submission
5
- * @param request The DSR request to format
6
- * @returns Formatted request data
7
- */
8
- declare function formatDSRRequest(request: DSRRequest): {
9
- formattedRequest: Record<string, unknown>;
10
- isValid: boolean;
11
- validationErrors: string[];
12
- };
13
-
14
- export { formatDSRRequest as f };
@@ -1,14 +0,0 @@
1
- import { D as DSRRequest } from './dsr-yKbqX531.mjs';
2
-
3
- /**
4
- * Formats a DSR request for display or submission
5
- * @param request The DSR request to format
6
- * @returns Formatted request data
7
- */
8
- declare function formatDSRRequest(request: DSRRequest): {
9
- formattedRequest: Record<string, unknown>;
10
- isValid: boolean;
11
- validationErrors: string[];
12
- };
13
-
14
- export { formatDSRRequest as f };
@@ -1,128 +0,0 @@
1
- /**
2
- * Data Subject Rights types aligned with NDPA 2023 Part IV (Sections 29-36)
3
- */
4
- /**
5
- * Types of data subject requests per NDPA Part IV
6
- * - 'information': Right to be informed (Section 29)
7
- * - 'access': Right of access (Section 30)
8
- * - 'rectification': Right to rectification (Section 31)
9
- * - 'erasure': Right to erasure (Section 32)
10
- * - 'restriction': Right to restrict processing (Section 33)
11
- * - 'portability': Right to data portability (Section 34)
12
- * - 'objection': Right to object (Section 35)
13
- * - 'automated_decision_making': Rights related to automated decision-making (Section 36)
14
- */
15
- type DSRType = 'information' | 'access' | 'rectification' | 'erasure' | 'restriction' | 'portability' | 'objection' | 'automated_decision_making';
16
- /**
17
- * Status of a data subject request
18
- */
19
- type DSRStatus = 'pending' | 'awaitingVerification' | 'inProgress' | 'completed' | 'rejected';
20
- /**
21
- * Represents a type of data subject request (detailed configuration)
22
- */
23
- interface RequestType {
24
- /** Unique identifier for the request type */
25
- id: string;
26
- /** Display name for the request type */
27
- name: string;
28
- /** Description of what this request type entails */
29
- description: string;
30
- /**
31
- * NDPA section reference (e.g., "Section 30" for access requests)
32
- */
33
- ndpaSection?: string;
34
- /**
35
- * Estimated time to fulfill this type of request (in days)
36
- * NDPA requires response within 30 days
37
- */
38
- estimatedCompletionTime: number;
39
- /** Whether additional information is required for this request type */
40
- requiresAdditionalInfo: boolean;
41
- /** Custom fields required for this request type */
42
- additionalFields?: Array<{
43
- id: string;
44
- label: string;
45
- type: 'text' | 'textarea' | 'select' | 'checkbox' | 'file';
46
- options?: string[];
47
- required: boolean;
48
- placeholder?: string;
49
- }>;
50
- }
51
- /**
52
- * Legacy status of a data subject request
53
- * @deprecated Use DSRStatus instead
54
- */
55
- type RequestStatus = 'pending' | 'verifying' | 'processing' | 'completed' | 'rejected';
56
- /**
57
- * Represents a data subject request
58
- */
59
- interface DSRRequest {
60
- /** Unique identifier for the request */
61
- id: string;
62
- /** Type of request */
63
- type: DSRType;
64
- /** Current status of the request */
65
- status: DSRStatus;
66
- /** Timestamp when the request was submitted */
67
- createdAt: number;
68
- /** Timestamp when the request was last updated */
69
- updatedAt: number;
70
- /** Timestamp when the request was completed (if applicable) */
71
- completedAt?: number;
72
- /** Timestamp when the identity was verified (if applicable) */
73
- verifiedAt?: number;
74
- /**
75
- * Due date for responding to the request (timestamp)
76
- * NDPA requires response within 30 days of receipt
77
- */
78
- dueDate?: number;
79
- /** Description or details of the request */
80
- description?: string;
81
- /**
82
- * The lawful basis under which the data was originally processed
83
- * Relevant for evaluating objection and erasure requests
84
- */
85
- lawfulBasis?: string;
86
- /** Data subject information */
87
- subject: {
88
- name: string;
89
- email: string;
90
- phone?: string;
91
- identifierValue?: string;
92
- identifierType?: string;
93
- };
94
- /** Additional information provided by the data subject */
95
- additionalInfo?: Record<string, string | number | boolean | null>;
96
- /** Notes added by staff processing the request */
97
- internalNotes?: Array<{
98
- timestamp: number;
99
- author: string;
100
- note: string;
101
- }>;
102
- /** Verification status */
103
- verification?: {
104
- verified: boolean;
105
- method?: string;
106
- verifiedAt?: number;
107
- verifiedBy?: string;
108
- };
109
- /** Reason for rejection (if status is 'rejected') */
110
- rejectionReason?: string;
111
- /** Files attached to the request */
112
- attachments?: Array<{
113
- id: string;
114
- name: string;
115
- type: string;
116
- url: string;
117
- addedAt: number;
118
- }>;
119
- /**
120
- * Whether an extension was requested for this DSR
121
- * NDPA allows a one-time extension of 30 days with justification
122
- */
123
- extensionRequested?: boolean;
124
- /** Reason for the extension, if requested */
125
- extensionReason?: string;
126
- }
127
-
128
- export type { DSRRequest as D, RequestStatus as R, DSRStatus as a, DSRType as b, RequestType as c };
@@ -1,128 +0,0 @@
1
- /**
2
- * Data Subject Rights types aligned with NDPA 2023 Part IV (Sections 29-36)
3
- */
4
- /**
5
- * Types of data subject requests per NDPA Part IV
6
- * - 'information': Right to be informed (Section 29)
7
- * - 'access': Right of access (Section 30)
8
- * - 'rectification': Right to rectification (Section 31)
9
- * - 'erasure': Right to erasure (Section 32)
10
- * - 'restriction': Right to restrict processing (Section 33)
11
- * - 'portability': Right to data portability (Section 34)
12
- * - 'objection': Right to object (Section 35)
13
- * - 'automated_decision_making': Rights related to automated decision-making (Section 36)
14
- */
15
- type DSRType = 'information' | 'access' | 'rectification' | 'erasure' | 'restriction' | 'portability' | 'objection' | 'automated_decision_making';
16
- /**
17
- * Status of a data subject request
18
- */
19
- type DSRStatus = 'pending' | 'awaitingVerification' | 'inProgress' | 'completed' | 'rejected';
20
- /**
21
- * Represents a type of data subject request (detailed configuration)
22
- */
23
- interface RequestType {
24
- /** Unique identifier for the request type */
25
- id: string;
26
- /** Display name for the request type */
27
- name: string;
28
- /** Description of what this request type entails */
29
- description: string;
30
- /**
31
- * NDPA section reference (e.g., "Section 30" for access requests)
32
- */
33
- ndpaSection?: string;
34
- /**
35
- * Estimated time to fulfill this type of request (in days)
36
- * NDPA requires response within 30 days
37
- */
38
- estimatedCompletionTime: number;
39
- /** Whether additional information is required for this request type */
40
- requiresAdditionalInfo: boolean;
41
- /** Custom fields required for this request type */
42
- additionalFields?: Array<{
43
- id: string;
44
- label: string;
45
- type: 'text' | 'textarea' | 'select' | 'checkbox' | 'file';
46
- options?: string[];
47
- required: boolean;
48
- placeholder?: string;
49
- }>;
50
- }
51
- /**
52
- * Legacy status of a data subject request
53
- * @deprecated Use DSRStatus instead
54
- */
55
- type RequestStatus = 'pending' | 'verifying' | 'processing' | 'completed' | 'rejected';
56
- /**
57
- * Represents a data subject request
58
- */
59
- interface DSRRequest {
60
- /** Unique identifier for the request */
61
- id: string;
62
- /** Type of request */
63
- type: DSRType;
64
- /** Current status of the request */
65
- status: DSRStatus;
66
- /** Timestamp when the request was submitted */
67
- createdAt: number;
68
- /** Timestamp when the request was last updated */
69
- updatedAt: number;
70
- /** Timestamp when the request was completed (if applicable) */
71
- completedAt?: number;
72
- /** Timestamp when the identity was verified (if applicable) */
73
- verifiedAt?: number;
74
- /**
75
- * Due date for responding to the request (timestamp)
76
- * NDPA requires response within 30 days of receipt
77
- */
78
- dueDate?: number;
79
- /** Description or details of the request */
80
- description?: string;
81
- /**
82
- * The lawful basis under which the data was originally processed
83
- * Relevant for evaluating objection and erasure requests
84
- */
85
- lawfulBasis?: string;
86
- /** Data subject information */
87
- subject: {
88
- name: string;
89
- email: string;
90
- phone?: string;
91
- identifierValue?: string;
92
- identifierType?: string;
93
- };
94
- /** Additional information provided by the data subject */
95
- additionalInfo?: Record<string, string | number | boolean | null>;
96
- /** Notes added by staff processing the request */
97
- internalNotes?: Array<{
98
- timestamp: number;
99
- author: string;
100
- note: string;
101
- }>;
102
- /** Verification status */
103
- verification?: {
104
- verified: boolean;
105
- method?: string;
106
- verifiedAt?: number;
107
- verifiedBy?: string;
108
- };
109
- /** Reason for rejection (if status is 'rejected') */
110
- rejectionReason?: string;
111
- /** Files attached to the request */
112
- attachments?: Array<{
113
- id: string;
114
- name: string;
115
- type: string;
116
- url: string;
117
- addedAt: number;
118
- }>;
119
- /**
120
- * Whether an extension was requested for this DSR
121
- * NDPA allows a one-time extension of 30 days with justification
122
- */
123
- extensionRequested?: boolean;
124
- /** Reason for the extension, if requested */
125
- extensionReason?: string;
126
- }
127
-
128
- export type { DSRRequest as D, RequestStatus as R, DSRStatus as a, DSRType as b, RequestType as c };