@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.
Files changed (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +293 -136
  3. package/dist/breach-6z0r-KuE.d.mts +17 -0
  4. package/dist/breach-BFfnvtRk.d.ts +17 -0
  5. package/dist/breach-BtFbDOmV.d.mts +185 -0
  6. package/dist/breach-BtFbDOmV.d.ts +185 -0
  7. package/dist/breach.d.mts +275 -0
  8. package/dist/breach.d.ts +275 -0
  9. package/dist/breach.js +2 -0
  10. package/dist/breach.js.map +1 -0
  11. package/dist/breach.mjs +2 -0
  12. package/dist/breach.mjs.map +1 -0
  13. package/dist/chunk-2SYNHRP6.mjs +2 -0
  14. package/dist/chunk-2SYNHRP6.mjs.map +1 -0
  15. package/dist/chunk-2XHD22J7.mjs +7 -0
  16. package/dist/chunk-2XHD22J7.mjs.map +1 -0
  17. package/dist/chunk-3YCV2BA6.js +2 -0
  18. package/dist/chunk-3YCV2BA6.js.map +1 -0
  19. package/dist/chunk-4A354HL3.js +2 -0
  20. package/dist/chunk-4A354HL3.js.map +1 -0
  21. package/dist/chunk-4DKT6IB6.js +94 -0
  22. package/dist/chunk-4DKT6IB6.js.map +1 -0
  23. package/dist/chunk-5ZBO2UPH.js +2 -0
  24. package/dist/chunk-5ZBO2UPH.js.map +1 -0
  25. package/dist/chunk-6GGGTRDZ.mjs +2 -0
  26. package/dist/chunk-6GGGTRDZ.mjs.map +1 -0
  27. package/dist/chunk-6JFTAYXV.mjs +2 -0
  28. package/dist/chunk-6JFTAYXV.mjs.map +1 -0
  29. package/dist/chunk-6JVYYLS7.js +2 -0
  30. package/dist/chunk-6JVYYLS7.js.map +1 -0
  31. package/dist/chunk-6SGG6WPA.mjs +2 -0
  32. package/dist/chunk-6SGG6WPA.mjs.map +1 -0
  33. package/dist/chunk-AQEGDEQM.js +7 -0
  34. package/dist/chunk-AQEGDEQM.js.map +1 -0
  35. package/dist/chunk-C2IJWCZQ.mjs +2 -0
  36. package/dist/chunk-C2IJWCZQ.mjs.map +1 -0
  37. package/dist/chunk-CMZTI7SG.js +2 -0
  38. package/dist/chunk-CMZTI7SG.js.map +1 -0
  39. package/dist/chunk-DB3JH4DS.mjs +2 -0
  40. package/dist/chunk-DB3JH4DS.mjs.map +1 -0
  41. package/dist/chunk-FFW7RUAG.mjs +94 -0
  42. package/dist/chunk-FFW7RUAG.mjs.map +1 -0
  43. package/dist/chunk-FK3CSFLJ.js +2 -0
  44. package/dist/chunk-FK3CSFLJ.js.map +1 -0
  45. package/dist/chunk-GIV2OHE6.mjs +2 -0
  46. package/dist/chunk-GIV2OHE6.mjs.map +1 -0
  47. package/dist/chunk-GMLNWS2N.mjs +2 -0
  48. package/dist/chunk-GMLNWS2N.mjs.map +1 -0
  49. package/dist/chunk-IQF726GS.js +2 -0
  50. package/dist/chunk-IQF726GS.js.map +1 -0
  51. package/dist/chunk-IWUUVRLJ.js +2 -0
  52. package/dist/chunk-IWUUVRLJ.js.map +1 -0
  53. package/dist/chunk-JUN6YPLL.mjs +72 -0
  54. package/dist/chunk-JUN6YPLL.mjs.map +1 -0
  55. package/dist/chunk-L3FKTBGV.js +72 -0
  56. package/dist/chunk-L3FKTBGV.js.map +1 -0
  57. package/dist/chunk-L52PDW6O.mjs +2 -0
  58. package/dist/chunk-L52PDW6O.mjs.map +1 -0
  59. package/dist/chunk-LI6WJ3LZ.js +2 -0
  60. package/dist/chunk-LI6WJ3LZ.js.map +1 -0
  61. package/dist/chunk-LXRXDTPI.js +2 -0
  62. package/dist/chunk-LXRXDTPI.js.map +1 -0
  63. package/dist/chunk-MQFZHA2D.js +2 -0
  64. package/dist/chunk-MQFZHA2D.js.map +1 -0
  65. package/dist/chunk-OITITR6K.mjs +2 -0
  66. package/dist/chunk-OITITR6K.mjs.map +1 -0
  67. package/dist/chunk-PDJGTQMY.mjs +2 -0
  68. package/dist/chunk-PDJGTQMY.mjs.map +1 -0
  69. package/dist/chunk-PGSA2O5P.mjs +2 -0
  70. package/dist/chunk-PGSA2O5P.mjs.map +1 -0
  71. package/dist/chunk-PM7CMTMB.js +4 -0
  72. package/dist/chunk-PM7CMTMB.js.map +1 -0
  73. package/dist/chunk-PYEX7DFR.mjs +4 -0
  74. package/dist/chunk-PYEX7DFR.mjs.map +1 -0
  75. package/dist/chunk-QKK5S54L.mjs +2 -0
  76. package/dist/chunk-QKK5S54L.mjs.map +1 -0
  77. package/dist/chunk-RB26MIRI.js +2 -0
  78. package/dist/chunk-RB26MIRI.js.map +1 -0
  79. package/dist/chunk-RGYK4VAY.mjs +2 -0
  80. package/dist/chunk-RGYK4VAY.mjs.map +1 -0
  81. package/dist/chunk-RHWW5FDP.js +16 -0
  82. package/dist/chunk-RHWW5FDP.js.map +1 -0
  83. package/dist/chunk-RYZEIDNR.js +2 -0
  84. package/dist/chunk-RYZEIDNR.js.map +1 -0
  85. package/dist/chunk-SLNMKGQ2.mjs +2 -0
  86. package/dist/chunk-SLNMKGQ2.mjs.map +1 -0
  87. package/dist/chunk-SSGJREE3.js +2 -0
  88. package/dist/chunk-SSGJREE3.js.map +1 -0
  89. package/dist/chunk-SWF3YVE5.js +4 -0
  90. package/dist/chunk-SWF3YVE5.js.map +1 -0
  91. package/dist/chunk-T44JQT2O.mjs +2 -0
  92. package/dist/chunk-T44JQT2O.mjs.map +1 -0
  93. package/dist/chunk-TDDAYVKK.js +2 -0
  94. package/dist/chunk-TDDAYVKK.js.map +1 -0
  95. package/dist/chunk-TXBZPCGF.mjs +2 -0
  96. package/dist/chunk-TXBZPCGF.mjs.map +1 -0
  97. package/dist/chunk-UUWVBENC.js +2 -0
  98. package/dist/chunk-UUWVBENC.js.map +1 -0
  99. package/dist/chunk-UYP64PV7.mjs +4 -0
  100. package/dist/chunk-UYP64PV7.mjs.map +1 -0
  101. package/dist/chunk-VMJBW3EF.mjs +2 -0
  102. package/dist/chunk-VMJBW3EF.mjs.map +1 -0
  103. package/dist/chunk-WW3X3ELF.js +2 -0
  104. package/dist/chunk-WW3X3ELF.js.map +1 -0
  105. package/dist/chunk-WWT2ZSNU.mjs +2 -0
  106. package/dist/chunk-WWT2ZSNU.mjs.map +1 -0
  107. package/dist/chunk-XMKA6GVK.mjs +16 -0
  108. package/dist/chunk-XMKA6GVK.mjs.map +1 -0
  109. package/dist/chunk-Y34DQYS7.js +2 -0
  110. package/dist/chunk-Y34DQYS7.js.map +1 -0
  111. package/dist/chunk-ZU73VG3X.js +2 -0
  112. package/dist/chunk-ZU73VG3X.js.map +1 -0
  113. package/dist/consent-CmVzqZUk.d.mts +99 -0
  114. package/dist/consent-CmVzqZUk.d.ts +99 -0
  115. package/dist/consent-DCc5zjXI.d.mts +24 -0
  116. package/dist/consent-DLWb5ota.d.ts +24 -0
  117. package/dist/consent.d.mts +197 -0
  118. package/dist/consent.d.ts +197 -0
  119. package/dist/consent.js +2 -0
  120. package/dist/consent.js.map +1 -0
  121. package/dist/consent.mjs +2 -0
  122. package/dist/consent.mjs.map +1 -0
  123. package/dist/core.d.mts +14 -0
  124. package/dist/core.d.ts +14 -0
  125. package/dist/core.js +2 -0
  126. package/dist/core.js.map +1 -0
  127. package/dist/core.mjs +2 -0
  128. package/dist/core.mjs.map +1 -0
  129. package/dist/cross-border-BrIy1ieh.d.mts +192 -0
  130. package/dist/cross-border-BrIy1ieh.d.ts +192 -0
  131. package/dist/cross-border.d.mts +58 -0
  132. package/dist/cross-border.d.ts +58 -0
  133. package/dist/cross-border.js +2 -0
  134. package/dist/cross-border.js.map +1 -0
  135. package/dist/cross-border.mjs +2 -0
  136. package/dist/cross-border.mjs.map +1 -0
  137. package/dist/dpia-B9ZZJG5a.d.mts +15 -0
  138. package/dist/dpia-fdtTd2DI.d.ts +15 -0
  139. package/dist/dpia-vWfE_9bO.d.mts +137 -0
  140. package/dist/dpia-vWfE_9bO.d.ts +137 -0
  141. package/dist/dpia.d.mts +179 -0
  142. package/dist/dpia.d.ts +179 -0
  143. package/dist/dpia.js +2 -0
  144. package/dist/dpia.js.map +1 -0
  145. package/dist/dpia.mjs +2 -0
  146. package/dist/dpia.mjs.map +1 -0
  147. package/dist/dsr-jq5NUEdz.d.ts +14 -0
  148. package/dist/dsr-pQzQ3H1O.d.mts +128 -0
  149. package/dist/dsr-pQzQ3H1O.d.ts +128 -0
  150. package/dist/dsr-whPkiI0_.d.mts +14 -0
  151. package/dist/dsr.d.mts +192 -0
  152. package/dist/dsr.d.ts +192 -0
  153. package/dist/dsr.js +2 -0
  154. package/dist/dsr.js.map +1 -0
  155. package/dist/dsr.mjs +2 -0
  156. package/dist/dsr.mjs.map +1 -0
  157. package/dist/hooks.d.mts +17 -0
  158. package/dist/hooks.d.ts +17 -0
  159. package/dist/hooks.js +2 -0
  160. package/dist/hooks.js.map +1 -0
  161. package/dist/hooks.mjs +2 -0
  162. package/dist/hooks.mjs.map +1 -0
  163. package/dist/index.d.mts +31 -448
  164. package/dist/index.d.ts +31 -448
  165. package/dist/index.js +1 -190
  166. package/dist/index.js.map +1 -1
  167. package/dist/index.mjs +1 -190
  168. package/dist/index.mjs.map +1 -1
  169. package/dist/lawful-basis-CWtvDG1x.d.mts +112 -0
  170. package/dist/lawful-basis-CWtvDG1x.d.ts +112 -0
  171. package/dist/lawful-basis-D-oXFizg.d.mts +57 -0
  172. package/dist/lawful-basis-v04AhbK2.d.ts +57 -0
  173. package/dist/lawful-basis.d.mts +55 -0
  174. package/dist/lawful-basis.d.ts +55 -0
  175. package/dist/lawful-basis.js +2 -0
  176. package/dist/lawful-basis.js.map +1 -0
  177. package/dist/lawful-basis.mjs +2 -0
  178. package/dist/lawful-basis.mjs.map +1 -0
  179. package/dist/policy.d.mts +195 -0
  180. package/dist/policy.d.ts +195 -0
  181. package/dist/policy.js +2 -0
  182. package/dist/policy.js.map +1 -0
  183. package/dist/policy.mjs +2 -0
  184. package/dist/policy.mjs.map +1 -0
  185. package/dist/privacy-9FcJceMr.d.mts +15 -0
  186. package/dist/privacy-BXz7O2ej.d.ts +15 -0
  187. package/dist/privacy-Ca6te9Ir.d.mts +138 -0
  188. package/dist/privacy-Ca6te9Ir.d.ts +138 -0
  189. package/dist/ropa-BebGfqKQ.d.ts +200 -0
  190. package/dist/ropa-Rb4dsFSz.d.mts +200 -0
  191. package/dist/ropa.d.mts +45 -0
  192. package/dist/ropa.d.ts +45 -0
  193. package/dist/ropa.js +2 -0
  194. package/dist/ropa.js.map +1 -0
  195. package/dist/ropa.mjs +2 -0
  196. package/dist/ropa.mjs.map +1 -0
  197. package/dist/unstyled.d.mts +4 -4
  198. package/dist/unstyled.d.ts +4 -4
  199. package/dist/unstyled.js +1 -1
  200. package/dist/unstyled.js.map +1 -1
  201. package/dist/unstyled.mjs +1 -1
  202. package/dist/unstyled.mjs.map +1 -1
  203. package/dist/useBreach-WrZzJilM.d.mts +99 -0
  204. package/dist/useBreach-vrh_XMpI.d.ts +99 -0
  205. package/dist/useConsent-D0pAfTlb.d.ts +65 -0
  206. package/dist/useConsent-DOt2Njst.d.mts +65 -0
  207. package/dist/useCrossBorderTransfer-D4FQYfFt.d.ts +66 -0
  208. package/dist/useCrossBorderTransfer-TVnY8_UX.d.mts +66 -0
  209. package/dist/useDPIA-DFDHBLSa.d.ts +94 -0
  210. package/dist/useDPIA-FqPofFaV.d.mts +94 -0
  211. package/dist/useDSR-DAqqOBXb.d.ts +74 -0
  212. package/dist/useDSR-OXM5Q9rf.d.mts +74 -0
  213. package/dist/useLawfulBasis-DNQ8YszQ.d.mts +68 -0
  214. package/dist/useLawfulBasis-RILM_xsx.d.ts +68 -0
  215. package/dist/usePrivacyPolicy-CfySfBLS.d.ts +89 -0
  216. package/dist/usePrivacyPolicy-Dit2sFuV.d.mts +89 -0
  217. package/dist/useROPA-Bcs6cRdi.d.ts +64 -0
  218. package/dist/useROPA-nmcSiUYv.d.mts +64 -0
  219. package/package.json +146 -20
@@ -0,0 +1,94 @@
1
+ import { a as DPIASection, b as DPIAResult, D as DPIAQuestion } from './dpia-vWfE_9bO.mjs';
2
+
3
+ interface UseDPIAOptions {
4
+ /**
5
+ * Sections of the DPIA questionnaire
6
+ */
7
+ sections: DPIASection[];
8
+ /**
9
+ * Initial answers (if resuming a DPIA)
10
+ */
11
+ initialAnswers?: Record<string, any>;
12
+ /**
13
+ * Storage key for DPIA data
14
+ * @default "ndpr_dpia_data"
15
+ */
16
+ storageKey?: string;
17
+ /**
18
+ * Whether to use local storage to persist DPIA data
19
+ * @default true
20
+ */
21
+ useLocalStorage?: boolean;
22
+ /**
23
+ * Callback function called when the DPIA is completed
24
+ */
25
+ onComplete?: (result: DPIAResult) => void;
26
+ }
27
+ interface UseDPIAReturn {
28
+ /**
29
+ * Current section index
30
+ */
31
+ currentSectionIndex: number;
32
+ /**
33
+ * Current section
34
+ */
35
+ currentSection: DPIASection | null;
36
+ /**
37
+ * All answers
38
+ */
39
+ answers: Record<string, any>;
40
+ /**
41
+ * Update an answer
42
+ */
43
+ updateAnswer: (questionId: string, value: any) => void;
44
+ /**
45
+ * Go to the next section
46
+ */
47
+ nextSection: () => boolean;
48
+ /**
49
+ * Go to the previous section
50
+ */
51
+ prevSection: () => boolean;
52
+ /**
53
+ * Go to a specific section
54
+ */
55
+ goToSection: (index: number) => boolean;
56
+ /**
57
+ * Check if the current section is valid
58
+ */
59
+ isCurrentSectionValid: () => boolean;
60
+ /**
61
+ * Get validation errors for the current section
62
+ */
63
+ getCurrentSectionErrors: () => Record<string, string>;
64
+ /**
65
+ * Check if the DPIA is complete
66
+ */
67
+ isComplete: () => boolean;
68
+ /**
69
+ * Complete the DPIA and generate a result
70
+ */
71
+ completeDPIA: (assessorInfo: {
72
+ name: string;
73
+ role: string;
74
+ email: string;
75
+ }, title: string, processingDescription: string) => DPIAResult;
76
+ /**
77
+ * Get the visible questions for the current section
78
+ */
79
+ getVisibleQuestions: () => DPIAQuestion[];
80
+ /**
81
+ * Reset the DPIA
82
+ */
83
+ resetDPIA: () => void;
84
+ /**
85
+ * Progress percentage
86
+ */
87
+ progress: number;
88
+ }
89
+ /**
90
+ * Hook for conducting Data Protection Impact Assessments in compliance with the NDPA 2023
91
+ */
92
+ declare function useDPIA({ sections, initialAnswers, storageKey, useLocalStorage, onComplete }: UseDPIAOptions): UseDPIAReturn;
93
+
94
+ export { useDPIA as u };
@@ -0,0 +1,74 @@
1
+ import { D as DSRRequest, R as RequestType, c as RequestStatus } from './dsr-pQzQ3H1O.js';
2
+
3
+ interface UseDSROptions {
4
+ /**
5
+ * Initial requests to load
6
+ */
7
+ initialRequests?: DSRRequest[];
8
+ /**
9
+ * Available request types
10
+ */
11
+ requestTypes: RequestType[];
12
+ /**
13
+ * Storage key for requests
14
+ * @default "ndpr_dsr_requests"
15
+ */
16
+ storageKey?: string;
17
+ /**
18
+ * Whether to use local storage to persist requests
19
+ * @default true
20
+ */
21
+ useLocalStorage?: boolean;
22
+ /**
23
+ * Callback function called when a request is submitted
24
+ */
25
+ onSubmit?: (request: DSRRequest) => void;
26
+ /**
27
+ * Callback function called when a request is updated
28
+ */
29
+ onUpdate?: (request: DSRRequest) => void;
30
+ }
31
+ interface UseDSRReturn {
32
+ /**
33
+ * All requests
34
+ */
35
+ requests: DSRRequest[];
36
+ /**
37
+ * Submit a new request
38
+ */
39
+ submitRequest: (requestData: Omit<DSRRequest, 'id' | 'status' | 'submittedAt' | 'updatedAt' | 'estimatedCompletionDate'>) => DSRRequest;
40
+ /**
41
+ * Update an existing request
42
+ */
43
+ updateRequest: (id: string, updates: Partial<DSRRequest>) => DSRRequest | null;
44
+ /**
45
+ * Get a request by ID
46
+ */
47
+ getRequest: (id: string) => DSRRequest | null;
48
+ /**
49
+ * Get requests by status
50
+ */
51
+ getRequestsByStatus: (status: RequestStatus) => DSRRequest[];
52
+ /**
53
+ * Get requests by type
54
+ */
55
+ getRequestsByType: (type: string) => DSRRequest[];
56
+ /**
57
+ * Get the request type definition by ID
58
+ */
59
+ getRequestType: (typeId: string) => RequestType | undefined;
60
+ /**
61
+ * Format a request for display or submission
62
+ */
63
+ formatRequest: (request: DSRRequest) => Record<string, any>;
64
+ /**
65
+ * Clear all requests
66
+ */
67
+ clearRequests: () => void;
68
+ }
69
+ /**
70
+ * Hook for managing Data Subject Requests in compliance with the NDPA
71
+ */
72
+ declare function useDSR({ initialRequests, requestTypes, storageKey, useLocalStorage, onSubmit, onUpdate }: UseDSROptions): UseDSRReturn;
73
+
74
+ export { useDSR as u };
@@ -0,0 +1,74 @@
1
+ import { D as DSRRequest, R as RequestType, c as RequestStatus } from './dsr-pQzQ3H1O.mjs';
2
+
3
+ interface UseDSROptions {
4
+ /**
5
+ * Initial requests to load
6
+ */
7
+ initialRequests?: DSRRequest[];
8
+ /**
9
+ * Available request types
10
+ */
11
+ requestTypes: RequestType[];
12
+ /**
13
+ * Storage key for requests
14
+ * @default "ndpr_dsr_requests"
15
+ */
16
+ storageKey?: string;
17
+ /**
18
+ * Whether to use local storage to persist requests
19
+ * @default true
20
+ */
21
+ useLocalStorage?: boolean;
22
+ /**
23
+ * Callback function called when a request is submitted
24
+ */
25
+ onSubmit?: (request: DSRRequest) => void;
26
+ /**
27
+ * Callback function called when a request is updated
28
+ */
29
+ onUpdate?: (request: DSRRequest) => void;
30
+ }
31
+ interface UseDSRReturn {
32
+ /**
33
+ * All requests
34
+ */
35
+ requests: DSRRequest[];
36
+ /**
37
+ * Submit a new request
38
+ */
39
+ submitRequest: (requestData: Omit<DSRRequest, 'id' | 'status' | 'submittedAt' | 'updatedAt' | 'estimatedCompletionDate'>) => DSRRequest;
40
+ /**
41
+ * Update an existing request
42
+ */
43
+ updateRequest: (id: string, updates: Partial<DSRRequest>) => DSRRequest | null;
44
+ /**
45
+ * Get a request by ID
46
+ */
47
+ getRequest: (id: string) => DSRRequest | null;
48
+ /**
49
+ * Get requests by status
50
+ */
51
+ getRequestsByStatus: (status: RequestStatus) => DSRRequest[];
52
+ /**
53
+ * Get requests by type
54
+ */
55
+ getRequestsByType: (type: string) => DSRRequest[];
56
+ /**
57
+ * Get the request type definition by ID
58
+ */
59
+ getRequestType: (typeId: string) => RequestType | undefined;
60
+ /**
61
+ * Format a request for display or submission
62
+ */
63
+ formatRequest: (request: DSRRequest) => Record<string, any>;
64
+ /**
65
+ * Clear all requests
66
+ */
67
+ clearRequests: () => void;
68
+ }
69
+ /**
70
+ * Hook for managing Data Subject Requests in compliance with the NDPA
71
+ */
72
+ declare function useDSR({ initialRequests, requestTypes, storageKey, useLocalStorage, onSubmit, onUpdate }: UseDSROptions): UseDSRReturn;
73
+
74
+ export { useDSR as u };
@@ -0,0 +1,68 @@
1
+ import { P as ProcessingActivity, b as LawfulBasisSummary } from './lawful-basis-CWtvDG1x.mjs';
2
+ import { c as LawfulBasisValidationResult } from './lawful-basis-D-oXFizg.mjs';
3
+
4
+ interface UseLawfulBasisOptions {
5
+ /**
6
+ * Initial processing activities to load
7
+ */
8
+ initialActivities?: ProcessingActivity[];
9
+ /**
10
+ * Storage key for persisting activities
11
+ * @default "ndpr_lawful_basis_activities"
12
+ */
13
+ storageKey?: string;
14
+ /**
15
+ * Whether to use local storage to persist activities
16
+ * @default true
17
+ */
18
+ useLocalStorage?: boolean;
19
+ /**
20
+ * Callback when an activity is added
21
+ */
22
+ onAdd?: (activity: ProcessingActivity) => void;
23
+ /**
24
+ * Callback when an activity is updated
25
+ */
26
+ onUpdate?: (activity: ProcessingActivity) => void;
27
+ /**
28
+ * Callback when an activity is removed
29
+ */
30
+ onRemove?: (id: string) => void;
31
+ }
32
+ interface UseLawfulBasisReturn {
33
+ /**
34
+ * All processing activities
35
+ */
36
+ activities: ProcessingActivity[];
37
+ /**
38
+ * Add a new processing activity
39
+ */
40
+ addActivity: (activity: Omit<ProcessingActivity, 'id' | 'createdAt' | 'updatedAt'>) => ProcessingActivity;
41
+ /**
42
+ * Update an existing processing activity
43
+ */
44
+ updateActivity: (id: string, updates: Partial<ProcessingActivity>) => ProcessingActivity | null;
45
+ /**
46
+ * Remove a processing activity
47
+ */
48
+ removeActivity: (id: string) => void;
49
+ /**
50
+ * Get a specific processing activity by ID
51
+ */
52
+ getActivity: (id: string) => ProcessingActivity | null;
53
+ /**
54
+ * Get a summary of all lawful basis documentation
55
+ */
56
+ getSummary: () => LawfulBasisSummary;
57
+ /**
58
+ * Validate a processing activity
59
+ */
60
+ validateActivity: (activity: ProcessingActivity) => LawfulBasisValidationResult;
61
+ }
62
+ /**
63
+ * Hook for managing lawful basis documentation for processing activities
64
+ * in compliance with NDPA 2023 Section 25.
65
+ */
66
+ declare function useLawfulBasis({ initialActivities, storageKey, useLocalStorage, onAdd, onUpdate, onRemove, }?: UseLawfulBasisOptions): UseLawfulBasisReturn;
67
+
68
+ export { useLawfulBasis as u };
@@ -0,0 +1,68 @@
1
+ import { P as ProcessingActivity, b as LawfulBasisSummary } from './lawful-basis-CWtvDG1x.js';
2
+ import { c as LawfulBasisValidationResult } from './lawful-basis-v04AhbK2.js';
3
+
4
+ interface UseLawfulBasisOptions {
5
+ /**
6
+ * Initial processing activities to load
7
+ */
8
+ initialActivities?: ProcessingActivity[];
9
+ /**
10
+ * Storage key for persisting activities
11
+ * @default "ndpr_lawful_basis_activities"
12
+ */
13
+ storageKey?: string;
14
+ /**
15
+ * Whether to use local storage to persist activities
16
+ * @default true
17
+ */
18
+ useLocalStorage?: boolean;
19
+ /**
20
+ * Callback when an activity is added
21
+ */
22
+ onAdd?: (activity: ProcessingActivity) => void;
23
+ /**
24
+ * Callback when an activity is updated
25
+ */
26
+ onUpdate?: (activity: ProcessingActivity) => void;
27
+ /**
28
+ * Callback when an activity is removed
29
+ */
30
+ onRemove?: (id: string) => void;
31
+ }
32
+ interface UseLawfulBasisReturn {
33
+ /**
34
+ * All processing activities
35
+ */
36
+ activities: ProcessingActivity[];
37
+ /**
38
+ * Add a new processing activity
39
+ */
40
+ addActivity: (activity: Omit<ProcessingActivity, 'id' | 'createdAt' | 'updatedAt'>) => ProcessingActivity;
41
+ /**
42
+ * Update an existing processing activity
43
+ */
44
+ updateActivity: (id: string, updates: Partial<ProcessingActivity>) => ProcessingActivity | null;
45
+ /**
46
+ * Remove a processing activity
47
+ */
48
+ removeActivity: (id: string) => void;
49
+ /**
50
+ * Get a specific processing activity by ID
51
+ */
52
+ getActivity: (id: string) => ProcessingActivity | null;
53
+ /**
54
+ * Get a summary of all lawful basis documentation
55
+ */
56
+ getSummary: () => LawfulBasisSummary;
57
+ /**
58
+ * Validate a processing activity
59
+ */
60
+ validateActivity: (activity: ProcessingActivity) => LawfulBasisValidationResult;
61
+ }
62
+ /**
63
+ * Hook for managing lawful basis documentation for processing activities
64
+ * in compliance with NDPA 2023 Section 25.
65
+ */
66
+ declare function useLawfulBasis({ initialActivities, storageKey, useLocalStorage, onAdd, onUpdate, onRemove, }?: UseLawfulBasisOptions): UseLawfulBasisReturn;
67
+
68
+ export { useLawfulBasis as u };
@@ -0,0 +1,89 @@
1
+ import { a as PolicyTemplate, c as PrivacyPolicy, O as OrganizationInfo } from './privacy-Ca6te9Ir.js';
2
+
3
+ interface UsePrivacyPolicyOptions {
4
+ /**
5
+ * Available policy templates
6
+ */
7
+ templates: PolicyTemplate[];
8
+ /**
9
+ * Initial policy data (if editing an existing policy)
10
+ */
11
+ initialPolicy?: PrivacyPolicy;
12
+ /**
13
+ * Storage key for policy data
14
+ * @default "ndpr_privacy_policy"
15
+ */
16
+ storageKey?: string;
17
+ /**
18
+ * Whether to use local storage to persist policy data
19
+ * @default true
20
+ */
21
+ useLocalStorage?: boolean;
22
+ /**
23
+ * Callback function called when a policy is generated
24
+ */
25
+ onGenerate?: (policy: PrivacyPolicy) => void;
26
+ }
27
+ interface UsePrivacyPolicyReturn {
28
+ /**
29
+ * Current policy data
30
+ */
31
+ policy: PrivacyPolicy | null;
32
+ /**
33
+ * Selected template
34
+ */
35
+ selectedTemplate: PolicyTemplate | null;
36
+ /**
37
+ * Organization information
38
+ */
39
+ organizationInfo: OrganizationInfo;
40
+ /**
41
+ * Select a template
42
+ */
43
+ selectTemplate: (templateId: string) => boolean;
44
+ /**
45
+ * Update organization information
46
+ */
47
+ updateOrganizationInfo: (updates: Partial<OrganizationInfo>) => void;
48
+ /**
49
+ * Toggle whether a section is included in the policy
50
+ */
51
+ toggleSection: (sectionId: string, included: boolean) => void;
52
+ /**
53
+ * Update section content
54
+ */
55
+ updateSectionContent: (sectionId: string, content: string) => void;
56
+ /**
57
+ * Update variable values
58
+ */
59
+ updateVariableValue: (variable: string, value: string) => void;
60
+ /**
61
+ * Generate the policy
62
+ */
63
+ generatePolicy: () => PrivacyPolicy;
64
+ /**
65
+ * Get the generated policy text
66
+ */
67
+ getPolicyText: () => {
68
+ fullText: string;
69
+ sectionTexts: Record<string, string>;
70
+ missingVariables: string[];
71
+ };
72
+ /**
73
+ * Reset the policy
74
+ */
75
+ resetPolicy: () => void;
76
+ /**
77
+ * Check if the policy is valid
78
+ */
79
+ isValid: () => {
80
+ valid: boolean;
81
+ errors: string[];
82
+ };
83
+ }
84
+ /**
85
+ * Hook for generating NDPA-compliant privacy policies
86
+ */
87
+ declare function usePrivacyPolicy({ templates, initialPolicy, storageKey, useLocalStorage, onGenerate }: UsePrivacyPolicyOptions): UsePrivacyPolicyReturn;
88
+
89
+ export { usePrivacyPolicy as u };
@@ -0,0 +1,89 @@
1
+ import { a as PolicyTemplate, c as PrivacyPolicy, O as OrganizationInfo } from './privacy-Ca6te9Ir.mjs';
2
+
3
+ interface UsePrivacyPolicyOptions {
4
+ /**
5
+ * Available policy templates
6
+ */
7
+ templates: PolicyTemplate[];
8
+ /**
9
+ * Initial policy data (if editing an existing policy)
10
+ */
11
+ initialPolicy?: PrivacyPolicy;
12
+ /**
13
+ * Storage key for policy data
14
+ * @default "ndpr_privacy_policy"
15
+ */
16
+ storageKey?: string;
17
+ /**
18
+ * Whether to use local storage to persist policy data
19
+ * @default true
20
+ */
21
+ useLocalStorage?: boolean;
22
+ /**
23
+ * Callback function called when a policy is generated
24
+ */
25
+ onGenerate?: (policy: PrivacyPolicy) => void;
26
+ }
27
+ interface UsePrivacyPolicyReturn {
28
+ /**
29
+ * Current policy data
30
+ */
31
+ policy: PrivacyPolicy | null;
32
+ /**
33
+ * Selected template
34
+ */
35
+ selectedTemplate: PolicyTemplate | null;
36
+ /**
37
+ * Organization information
38
+ */
39
+ organizationInfo: OrganizationInfo;
40
+ /**
41
+ * Select a template
42
+ */
43
+ selectTemplate: (templateId: string) => boolean;
44
+ /**
45
+ * Update organization information
46
+ */
47
+ updateOrganizationInfo: (updates: Partial<OrganizationInfo>) => void;
48
+ /**
49
+ * Toggle whether a section is included in the policy
50
+ */
51
+ toggleSection: (sectionId: string, included: boolean) => void;
52
+ /**
53
+ * Update section content
54
+ */
55
+ updateSectionContent: (sectionId: string, content: string) => void;
56
+ /**
57
+ * Update variable values
58
+ */
59
+ updateVariableValue: (variable: string, value: string) => void;
60
+ /**
61
+ * Generate the policy
62
+ */
63
+ generatePolicy: () => PrivacyPolicy;
64
+ /**
65
+ * Get the generated policy text
66
+ */
67
+ getPolicyText: () => {
68
+ fullText: string;
69
+ sectionTexts: Record<string, string>;
70
+ missingVariables: string[];
71
+ };
72
+ /**
73
+ * Reset the policy
74
+ */
75
+ resetPolicy: () => void;
76
+ /**
77
+ * Check if the policy is valid
78
+ */
79
+ isValid: () => {
80
+ valid: boolean;
81
+ errors: string[];
82
+ };
83
+ }
84
+ /**
85
+ * Hook for generating NDPA-compliant privacy policies
86
+ */
87
+ declare function usePrivacyPolicy({ templates, initialPolicy, storageKey, useLocalStorage, onGenerate }: UsePrivacyPolicyOptions): UsePrivacyPolicyReturn;
88
+
89
+ export { usePrivacyPolicy as u };
@@ -0,0 +1,64 @@
1
+ import { R as RecordOfProcessingActivities, P as ProcessingRecord, a as ROPASummary, b as ROPAComplianceGap } from './ropa-BebGfqKQ.js';
2
+
3
+ interface UseROPAOptions {
4
+ /**
5
+ * Initial ROPA state
6
+ */
7
+ initialData: RecordOfProcessingActivities;
8
+ /**
9
+ * Callback when a record is added
10
+ */
11
+ onRecordAdd?: (record: ProcessingRecord) => void;
12
+ /**
13
+ * Callback when a record is updated
14
+ */
15
+ onRecordUpdate?: (id: string, updates: Partial<ProcessingRecord>) => void;
16
+ /**
17
+ * Callback when a record is archived
18
+ */
19
+ onRecordArchive?: (id: string) => void;
20
+ }
21
+ interface UseROPAReturn {
22
+ /**
23
+ * Current state of the Record of Processing Activities
24
+ */
25
+ ropa: RecordOfProcessingActivities;
26
+ /**
27
+ * Add a new processing record
28
+ */
29
+ addRecord: (record: ProcessingRecord) => void;
30
+ /**
31
+ * Update an existing processing record
32
+ */
33
+ updateRecord: (id: string, updates: Partial<ProcessingRecord>) => void;
34
+ /**
35
+ * Archive a processing record by setting its status to 'archived'
36
+ */
37
+ archiveRecord: (id: string) => void;
38
+ /**
39
+ * Get a single processing record by ID
40
+ */
41
+ getRecord: (id: string) => ProcessingRecord | undefined;
42
+ /**
43
+ * Get a summary of the ROPA including statistics
44
+ */
45
+ getSummary: () => ROPASummary;
46
+ /**
47
+ * Export the ROPA as a CSV string
48
+ */
49
+ exportCSV: () => string;
50
+ /**
51
+ * Identify compliance gaps across all records
52
+ */
53
+ getComplianceGaps: () => ROPAComplianceGap[];
54
+ }
55
+ /**
56
+ * Hook for managing a Record of Processing Activities (ROPA)
57
+ * in compliance with NDPA 2023 requirements.
58
+ *
59
+ * Provides state management and utility functions for maintaining
60
+ * a comprehensive register of all data processing activities.
61
+ */
62
+ declare function useROPA({ initialData, onRecordAdd, onRecordUpdate, onRecordArchive, }: UseROPAOptions): UseROPAReturn;
63
+
64
+ export { type UseROPAOptions as U, type UseROPAReturn as a, useROPA as u };
@@ -0,0 +1,64 @@
1
+ import { R as RecordOfProcessingActivities, P as ProcessingRecord, a as ROPASummary, b as ROPAComplianceGap } from './ropa-Rb4dsFSz.mjs';
2
+
3
+ interface UseROPAOptions {
4
+ /**
5
+ * Initial ROPA state
6
+ */
7
+ initialData: RecordOfProcessingActivities;
8
+ /**
9
+ * Callback when a record is added
10
+ */
11
+ onRecordAdd?: (record: ProcessingRecord) => void;
12
+ /**
13
+ * Callback when a record is updated
14
+ */
15
+ onRecordUpdate?: (id: string, updates: Partial<ProcessingRecord>) => void;
16
+ /**
17
+ * Callback when a record is archived
18
+ */
19
+ onRecordArchive?: (id: string) => void;
20
+ }
21
+ interface UseROPAReturn {
22
+ /**
23
+ * Current state of the Record of Processing Activities
24
+ */
25
+ ropa: RecordOfProcessingActivities;
26
+ /**
27
+ * Add a new processing record
28
+ */
29
+ addRecord: (record: ProcessingRecord) => void;
30
+ /**
31
+ * Update an existing processing record
32
+ */
33
+ updateRecord: (id: string, updates: Partial<ProcessingRecord>) => void;
34
+ /**
35
+ * Archive a processing record by setting its status to 'archived'
36
+ */
37
+ archiveRecord: (id: string) => void;
38
+ /**
39
+ * Get a single processing record by ID
40
+ */
41
+ getRecord: (id: string) => ProcessingRecord | undefined;
42
+ /**
43
+ * Get a summary of the ROPA including statistics
44
+ */
45
+ getSummary: () => ROPASummary;
46
+ /**
47
+ * Export the ROPA as a CSV string
48
+ */
49
+ exportCSV: () => string;
50
+ /**
51
+ * Identify compliance gaps across all records
52
+ */
53
+ getComplianceGaps: () => ROPAComplianceGap[];
54
+ }
55
+ /**
56
+ * Hook for managing a Record of Processing Activities (ROPA)
57
+ * in compliance with NDPA 2023 requirements.
58
+ *
59
+ * Provides state management and utility functions for maintaining
60
+ * a comprehensive register of all data processing activities.
61
+ */
62
+ declare function useROPA({ initialData, onRecordAdd, onRecordUpdate, onRecordArchive, }: UseROPAOptions): UseROPAReturn;
63
+
64
+ export { type UseROPAOptions as U, type UseROPAReturn as a, useROPA as u };