@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,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 };
|