@tantainnovative/ndpr-toolkit 3.0.0 → 3.2.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/dist/{PolicyExporter-BIqSVjfC.d.mts → PolicyExporter-Bgi6nz82.d.mts} +93 -1
- package/dist/{PolicyExporter-BNWaPBGU.d.ts → PolicyExporter-BnvuFncj.d.ts} +93 -1
- package/dist/adapters.js +1 -1
- package/dist/adapters.mjs +1 -1
- package/dist/breach.js +1 -1
- package/dist/breach.mjs +1 -1
- package/dist/chunk-256APOQM.js +2 -0
- package/dist/chunk-2FWCVWKN.js +2 -0
- package/dist/chunk-3DJGO6WG.js +2 -0
- package/dist/chunk-44W4H2EY.js +2 -0
- package/dist/chunk-4XCL62MJ.mjs +2 -0
- package/dist/chunk-555WWZ3W.js +2 -0
- package/dist/chunk-6BXUVS6E.js +81 -0
- package/dist/{chunk-KHRBU5K7.js → chunk-6RQGQZT2.js} +2 -2
- package/dist/chunk-6TA2MVTU.mjs +2 -0
- package/dist/chunk-6WIP33TW.mjs +2 -0
- package/dist/{chunk-2ORDHJRD.js → chunk-7AVN424U.js} +2 -2
- package/dist/{chunk-5VMHKNJY.js → chunk-7SMLHZ4B.js} +2 -2
- package/dist/chunk-A4PK7JB2.js +2 -0
- package/dist/chunk-ABDB7LEV.mjs +2 -0
- package/dist/chunk-BKRETVJ6.js +2 -0
- package/dist/chunk-CWUPGY3M.mjs +3 -0
- package/dist/chunk-DJGS7SSN.mjs +2 -0
- package/dist/{chunk-SVCRYM4I.mjs → chunk-E4NCJ7RD.mjs} +2 -2
- package/dist/chunk-E63VPR7U.js +2 -0
- package/dist/chunk-EH2I4L7M.mjs +316 -0
- package/dist/chunk-ELKB2AFZ.js +2 -0
- package/dist/chunk-FDDI426Y.mjs +2 -0
- package/dist/chunk-FOXZRRMW.mjs +2 -0
- package/dist/chunk-GCQRHMTQ.mjs +144 -0
- package/dist/chunk-GKKAK6ES.mjs +3 -0
- package/dist/chunk-GOD4LA2J.mjs +2 -0
- package/dist/{chunk-SWF3YVE5.js → chunk-GOU6FU6Y.js} +3 -3
- package/dist/chunk-HO5M7M4M.js +2 -0
- package/dist/chunk-I23WPZNQ.mjs +94 -0
- package/dist/chunk-I4M2AA3N.js +2 -0
- package/dist/chunk-I54CDQGN.js +3 -0
- package/dist/{chunk-6D3ZUGBB.mjs → chunk-IR7VCBWV.mjs} +2 -2
- package/dist/{chunk-4VVARDN2.mjs → chunk-K45S6YQV.mjs} +2 -2
- package/dist/chunk-KBAFOVE3.js +2 -0
- package/dist/{chunk-P7BSBCB3.js → chunk-KBP26GLC.js} +2 -2
- package/dist/chunk-KVOGOLIR.js +316 -0
- package/dist/chunk-LU4PFST7.js +144 -0
- package/dist/chunk-MDWG2KDA.mjs +2 -0
- package/dist/chunk-NN233SGA.mjs +3 -0
- package/dist/chunk-NRQELKAE.js +2 -0
- package/dist/chunk-NUDVUAD4.mjs +81 -0
- package/dist/chunk-NXQMU36Z.mjs +2 -0
- package/dist/chunk-P42Z5CFE.js +2 -0
- package/dist/chunk-PATONNTZ.mjs +2 -0
- package/dist/{chunk-WLSW4Z4W.mjs → chunk-PM7O5IGE.mjs} +2 -2
- package/dist/chunk-Q7VHB64E.mjs +2 -0
- package/dist/{chunk-PEH5GIMN.js → chunk-QH6YUVJS.js} +2 -2
- package/dist/chunk-QY7PD5XB.js +94 -0
- package/dist/chunk-R3OYAJI6.mjs +2 -0
- package/dist/chunk-S4GRSNB4.js +2 -0
- package/dist/chunk-SAA7UVI2.js +3 -0
- package/dist/{chunk-PYEX7DFR.mjs → chunk-SHMJNRHO.mjs} +3 -3
- package/dist/chunk-TVW6KBVV.mjs +2 -0
- package/dist/chunk-U62QYKVG.mjs +2 -0
- package/dist/chunk-UDNRAQLE.js +3 -0
- package/dist/{chunk-5RSOLEEP.js → chunk-UXMGBIX6.js} +4 -4
- package/dist/{chunk-UZ5EZOA7.js → chunk-VK27WVV3.js} +2 -2
- package/dist/{chunk-G26I6MP5.mjs → chunk-VWPGIES4.mjs} +2 -2
- package/dist/{chunk-NPLXE43Q.mjs → chunk-XQ4M5FHC.mjs} +2 -2
- package/dist/{chunk-CAB7O3GR.mjs → chunk-ZEOQYWOE.mjs} +4 -4
- package/dist/consent.js +1 -1
- package/dist/consent.mjs +1 -1
- package/dist/core.d.mts +9 -46
- package/dist/core.d.ts +9 -46
- package/dist/core.js +1 -1
- package/dist/core.mjs +1 -1
- package/dist/cross-border.js +1 -1
- package/dist/cross-border.mjs +1 -1
- package/dist/dpia.js +1 -1
- package/dist/dpia.mjs +1 -1
- package/dist/dsr.js +1 -1
- package/dist/dsr.mjs +1 -1
- package/dist/hooks.d.mts +2 -0
- package/dist/hooks.d.ts +2 -0
- package/dist/hooks.js +1 -1
- package/dist/hooks.mjs +1 -1
- package/dist/index.d.mts +2 -3
- package/dist/index.d.ts +2 -3
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/lawful-basis.js +1 -1
- package/dist/lawful-basis.mjs +1 -1
- package/dist/policy-engine-C-tShzZH.d.mts +154 -0
- package/dist/policy-engine-DSQpT55_.d.ts +154 -0
- package/dist/policy-sections-CfNVBLCh.d.mts +54 -0
- package/dist/policy-sections-DqH0iZRf.d.ts +54 -0
- package/dist/policy.d.mts +86 -5
- package/dist/policy.d.ts +86 -5
- package/dist/policy.js +1 -1
- package/dist/policy.mjs +1 -1
- package/dist/presets.d.mts +5 -15
- package/dist/presets.d.ts +5 -15
- package/dist/presets.js +1 -1
- package/dist/presets.mjs +1 -1
- package/dist/ropa.js +1 -1
- package/dist/ropa.mjs +1 -1
- package/dist/sanitize-9mOO_cJW.d.mts +147 -0
- package/dist/sanitize-9mOO_cJW.d.ts +147 -0
- package/dist/useAdaptivePolicyWizard-B9Op2gYM.d.ts +52 -0
- package/dist/useAdaptivePolicyWizard-N4eUM4Tj.d.mts +52 -0
- package/package.json +9 -3
- package/dist/PolicyGenerator-BvcWPbxp.d.mts +0 -96
- package/dist/PolicyGenerator-BzRwtlgn.d.ts +0 -96
- package/dist/chunk-27NYSWUG.mjs +0 -2
- package/dist/chunk-2SYNHRP6.mjs +0 -2
- package/dist/chunk-2W7ARAW2.js +0 -2
- package/dist/chunk-3F34NACG.js +0 -2
- package/dist/chunk-3RGJV3VF.js +0 -7
- package/dist/chunk-3V23O4ZJ.js +0 -2
- package/dist/chunk-3XAUN5IM.mjs +0 -3
- package/dist/chunk-6E54NSAO.mjs +0 -2
- package/dist/chunk-7F5F5YWI.mjs +0 -2
- package/dist/chunk-7FIUX3ZM.js +0 -89
- package/dist/chunk-CMZTI7SG.js +0 -2
- package/dist/chunk-EPF7J2FK.js +0 -3
- package/dist/chunk-FR7ZYZXB.js +0 -2
- package/dist/chunk-FXTZDKDC.mjs +0 -3
- package/dist/chunk-GIV2OHE6.mjs +0 -2
- package/dist/chunk-GPJVTGHR.mjs +0 -2
- package/dist/chunk-GVANK6PL.js +0 -3
- package/dist/chunk-HNZK7LY3.mjs +0 -2
- package/dist/chunk-IKEPXHCZ.js +0 -2
- package/dist/chunk-ILCNDOBU.js +0 -2
- package/dist/chunk-IQQW52EF.js +0 -2
- package/dist/chunk-ISSGO2YT.mjs +0 -72
- package/dist/chunk-J6IKAGUP.mjs +0 -89
- package/dist/chunk-KNE4NXCY.mjs +0 -7
- package/dist/chunk-LFNA6WYQ.mjs +0 -2
- package/dist/chunk-PGSA2O5P.mjs +0 -2
- package/dist/chunk-RGYK4VAY.mjs +0 -2
- package/dist/chunk-RSUDIFZV.mjs +0 -2
- package/dist/chunk-RYZEIDNR.js +0 -2
- package/dist/chunk-SBNAMPAP.mjs +0 -2
- package/dist/chunk-SSGJREE3.js +0 -2
- package/dist/chunk-U6VWHC46.js +0 -72
- package/dist/chunk-UK656RCG.js +0 -2
- package/dist/chunk-UOSEH6DC.js +0 -2
- package/dist/chunk-VDZKGCAF.js +0 -2
- package/dist/chunk-WSHSHIIM.mjs +0 -2
- package/dist/chunk-XSK4BSZJ.mjs +0 -2
- package/dist/chunk-Y34DQYS7.js +0 -2
- package/dist/chunk-YJCGEOLO.mjs +0 -2
- package/dist/chunk-ZCZ5RRZO.js +0 -2
package/dist/hooks.d.ts
CHANGED
|
@@ -15,10 +15,12 @@ export { u as useLawfulBasis } from './useLawfulBasis-DFTmu1ca.js';
|
|
|
15
15
|
export { u as useCrossBorderTransfer } from './useCrossBorderTransfer-COqjgjsu.js';
|
|
16
16
|
export { U as UseROPAOptions, a as UseROPAReturn, u as useROPA } from './useROPA-BSSU1rfx.js';
|
|
17
17
|
import { C as ComplianceInput, b as ComplianceReport } from './compliance-score-racQe_E_.js';
|
|
18
|
+
export { U as UseAdaptivePolicyWizardOptions, a as UseAdaptivePolicyWizardReturn, u as useAdaptivePolicyWizard } from './useAdaptivePolicyWizard-B9Op2gYM.js';
|
|
18
19
|
import './types-DK2CoKOC.js';
|
|
19
20
|
import './lawful-basis-BEyI0kGg.js';
|
|
20
21
|
import './cross-border-Dy-U9Hu6.js';
|
|
21
22
|
import './ropa-CyynscU6.js';
|
|
23
|
+
import './policy-engine-DSQpT55_.js';
|
|
22
24
|
|
|
23
25
|
interface UseComplianceScoreOptions {
|
|
24
26
|
input: ComplianceInput;
|
package/dist/hooks.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunk7AVN424U_js=require('./chunk-7AVN424U.js'),chunkKBP26GLC_js=require('./chunk-KBP26GLC.js'),chunk6RQGQZT2_js=require('./chunk-6RQGQZT2.js'),chunkS4GRSNB4_js=require('./chunk-S4GRSNB4.js');require('./chunk-TDDAYVKK.js'),require('./chunk-IQF726GS.js'),require('./chunk-GOU6FU6Y.js');var chunk7SMLHZ4B_js=require('./chunk-7SMLHZ4B.js');require('./chunk-A4PK7JB2.js'),require('./chunk-HO5M7M4M.js');var chunk3DJGO6WG_js=require('./chunk-3DJGO6WG.js');require('./chunk-NRQELKAE.js');var chunkKBAFOVE3_js=require('./chunk-KBAFOVE3.js');require('./chunk-P42Z5CFE.js');var chunkI4M2AA3N_js=require('./chunk-I4M2AA3N.js');require('./chunk-BKRETVJ6.js');var chunkKVOGOLIR_js=require('./chunk-KVOGOLIR.js'),chunkE63VPR7U_js=require('./chunk-E63VPR7U.js');require('./chunk-LU4PFST7.js'),require('./chunk-UXMGBIX6.js'),require('./chunk-ELKB2AFZ.js'),require('./chunk-MQFZHA2D.js');var react=require('react');function l({input:e}){let r=JSON.stringify(e);return react.useMemo(()=>chunkS4GRSNB4_js.a(e),[r])}Object.defineProperty(exports,"useLawfulBasis",{enumerable:true,get:function(){return chunk7AVN424U_js.a}});Object.defineProperty(exports,"useCrossBorderTransfer",{enumerable:true,get:function(){return chunkKBP26GLC_js.a}});Object.defineProperty(exports,"useROPA",{enumerable:true,get:function(){return chunk6RQGQZT2_js.a}});Object.defineProperty(exports,"useConsent",{enumerable:true,get:function(){return chunk7SMLHZ4B_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunk3DJGO6WG_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkKBAFOVE3_js.a}});Object.defineProperty(exports,"useBreach",{enumerable:true,get:function(){return chunkI4M2AA3N_js.a}});Object.defineProperty(exports,"useAdaptivePolicyWizard",{enumerable:true,get:function(){return chunkKVOGOLIR_js.e}});Object.defineProperty(exports,"useDefaultPrivacyPolicy",{enumerable:true,get:function(){return chunkE63VPR7U_js.b}});Object.defineProperty(exports,"usePrivacyPolicy",{enumerable:true,get:function(){return chunkE63VPR7U_js.a}});exports.useComplianceScore=l;//# sourceMappingURL=hooks.js.map
|
|
2
2
|
//# sourceMappingURL=hooks.js.map
|
package/dist/hooks.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{a as useLawfulBasis}from'./chunk-
|
|
1
|
+
export{a as useLawfulBasis}from'./chunk-E4NCJ7RD.mjs';export{a as useCrossBorderTransfer}from'./chunk-XQ4M5FHC.mjs';export{a as useROPA}from'./chunk-PM7O5IGE.mjs';import {a}from'./chunk-ABDB7LEV.mjs';import'./chunk-TXBZPCGF.mjs';import'./chunk-QKK5S54L.mjs';import'./chunk-SHMJNRHO.mjs';export{a as useConsent}from'./chunk-VWPGIES4.mjs';import'./chunk-R3OYAJI6.mjs';import'./chunk-U62QYKVG.mjs';export{a as useDSR}from'./chunk-FOXZRRMW.mjs';import'./chunk-NXQMU36Z.mjs';export{a as useDPIA}from'./chunk-GOD4LA2J.mjs';import'./chunk-6TA2MVTU.mjs';export{a as useBreach}from'./chunk-PATONNTZ.mjs';import'./chunk-DJGS7SSN.mjs';export{e as useAdaptivePolicyWizard}from'./chunk-EH2I4L7M.mjs';export{b as useDefaultPrivacyPolicy,a as usePrivacyPolicy}from'./chunk-FDDI426Y.mjs';import'./chunk-GCQRHMTQ.mjs';import'./chunk-ZEOQYWOE.mjs';import'./chunk-6WIP33TW.mjs';import'./chunk-WWT2ZSNU.mjs';import {useMemo}from'react';function l({input:e}){let r=JSON.stringify(e);return useMemo(()=>a(e),[r])}export{l as useComplianceScore};//# sourceMappingURL=hooks.mjs.map
|
|
2
2
|
//# sourceMappingURL=hooks.mjs.map
|
package/dist/index.d.mts
CHANGED
|
@@ -10,10 +10,9 @@ export { D as DPIAQuestion, a as DPIAResult, b as DPIARisk, c as DPIASection } f
|
|
|
10
10
|
export { B as BreachFormSubmission, a as BreachReportForm, b as BreachReportFormClassNames } from './BreachReportForm-yJ2Zl6gz.mjs';
|
|
11
11
|
export { B as BreachNotificationManager, a as BreachNotificationManagerClassNames, b as BreachRiskAssessment, c as BreachRiskAssessmentClassNames, R as RegulatoryReportGenerator, d as RegulatoryReportGeneratorClassNames } from './RegulatoryReportGenerator-DwcHcEFp.mjs';
|
|
12
12
|
export { B as BreachCategory, a as BreachReport, N as NotificationRequirement, R as RegulatoryNotification, b as RiskAssessment } from './breach-Eu9byel8.mjs';
|
|
13
|
-
export { P as
|
|
14
|
-
export { P as PolicyExporter, a as PolicyExporterClassNames, b as PolicyPreview, c as PolicyPreviewClassNames } from './PolicyExporter-BIqSVjfC.mjs';
|
|
13
|
+
export { P as PolicyExporter, a as PolicyExporterClassNames, b as PolicyGenerator, c as PolicyGeneratorClassNames, d as PolicyPreview, e as PolicyPreviewClassNames } from './PolicyExporter-Bgi6nz82.mjs';
|
|
15
14
|
export { O as OrganizationInfo, P as PolicySection, a as PolicyTemplate, b as PolicyVariable, c as PrivacyPolicy } from './privacy-Ca6te9Ir.mjs';
|
|
16
|
-
export { NDPRConfig, NDPRProvider, sanitizeInput, useNDPRConfig } from './
|
|
15
|
+
export { N as NDPRConfig, a as NDPRProvider, s as sanitizeInput, u as useNDPRConfig } from './sanitize-9mOO_cJW.mjs';
|
|
17
16
|
export { C as ConsentAuditEntry, a as appendAuditEntry, c as createAuditEntry, g as getAuditLog, v as validateConsent, b as validateConsentOptions } from './consent-audit-BdByjYlM.mjs';
|
|
18
17
|
export { f as formatDSRRequest } from './dsr-D_eTNc4S.mjs';
|
|
19
18
|
export { a as assessDPIARisk } from './dpia-CUfOmzvX.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -10,10 +10,9 @@ export { D as DPIAQuestion, a as DPIAResult, b as DPIARisk, c as DPIASection } f
|
|
|
10
10
|
export { B as BreachFormSubmission, a as BreachReportForm, b as BreachReportFormClassNames } from './BreachReportForm-DpRrBoxU.js';
|
|
11
11
|
export { B as BreachNotificationManager, a as BreachNotificationManagerClassNames, b as BreachRiskAssessment, c as BreachRiskAssessmentClassNames, R as RegulatoryReportGenerator, d as RegulatoryReportGeneratorClassNames } from './RegulatoryReportGenerator-BUYgzTTT.js';
|
|
12
12
|
export { B as BreachCategory, a as BreachReport, N as NotificationRequirement, R as RegulatoryNotification, b as RiskAssessment } from './breach-Eu9byel8.js';
|
|
13
|
-
export { P as
|
|
14
|
-
export { P as PolicyExporter, a as PolicyExporterClassNames, b as PolicyPreview, c as PolicyPreviewClassNames } from './PolicyExporter-BNWaPBGU.js';
|
|
13
|
+
export { P as PolicyExporter, a as PolicyExporterClassNames, b as PolicyGenerator, c as PolicyGeneratorClassNames, d as PolicyPreview, e as PolicyPreviewClassNames } from './PolicyExporter-BnvuFncj.js';
|
|
15
14
|
export { O as OrganizationInfo, P as PolicySection, a as PolicyTemplate, b as PolicyVariable, c as PrivacyPolicy } from './privacy-Ca6te9Ir.js';
|
|
16
|
-
export { NDPRConfig, NDPRProvider, sanitizeInput, useNDPRConfig } from './
|
|
15
|
+
export { N as NDPRConfig, a as NDPRProvider, s as sanitizeInput, u as useNDPRConfig } from './sanitize-9mOO_cJW.js';
|
|
17
16
|
export { C as ConsentAuditEntry, a as appendAuditEntry, c as createAuditEntry, g as getAuditLog, v as validateConsent, b as validateConsentOptions } from './consent-audit-DhbfMR0n.js';
|
|
18
17
|
export { f as formatDSRRequest } from './dsr-pNtVb1BK.js';
|
|
19
18
|
export { a as assessDPIARisk } from './dpia-B0Pok5us.js';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var chunkV37BM2LF_js=require('./chunk-V37BM2LF.js'),chunkER7X6E36_js=require('./chunk-ER7X6E36.js'),chunkCL53OI3I_js=require('./chunk-CL53OI3I.js'),
|
|
1
|
+
'use strict';var chunkV37BM2LF_js=require('./chunk-V37BM2LF.js'),chunkER7X6E36_js=require('./chunk-ER7X6E36.js'),chunkCL53OI3I_js=require('./chunk-CL53OI3I.js'),chunkVK27WVV3_js=require('./chunk-VK27WVV3.js'),chunk44W4H2EY_js=require('./chunk-44W4H2EY.js'),chunk7AVN424U_js=require('./chunk-7AVN424U.js'),chunkKBP26GLC_js=require('./chunk-KBP26GLC.js'),chunk6RQGQZT2_js=require('./chunk-6RQGQZT2.js'),chunkS4GRSNB4_js=require('./chunk-S4GRSNB4.js'),chunkTDDAYVKK_js=require('./chunk-TDDAYVKK.js'),chunkIQF726GS_js=require('./chunk-IQF726GS.js'),chunkGOU6FU6Y_js=require('./chunk-GOU6FU6Y.js'),chunk256APOQM_js=require('./chunk-256APOQM.js'),chunk555WWZ3W_js=require('./chunk-555WWZ3W.js'),chunkMJGOLP5M_js=require('./chunk-MJGOLP5M.js'),chunk7SMLHZ4B_js=require('./chunk-7SMLHZ4B.js');require('./chunk-A4PK7JB2.js');var chunkHO5M7M4M_js=require('./chunk-HO5M7M4M.js'),chunk2FWCVWKN_js=require('./chunk-2FWCVWKN.js'),chunkQH6YUVJS_js=require('./chunk-QH6YUVJS.js'),chunk3DJGO6WG_js=require('./chunk-3DJGO6WG.js'),chunkNRQELKAE_js=require('./chunk-NRQELKAE.js'),chunkFY5G6DGZ_js=require('./chunk-FY5G6DGZ.js'),chunkUNKXYVXY_js=require('./chunk-UNKXYVXY.js'),chunkKBAFOVE3_js=require('./chunk-KBAFOVE3.js'),chunkP42Z5CFE_js=require('./chunk-P42Z5CFE.js'),chunk6BXUVS6E_js=require('./chunk-6BXUVS6E.js'),chunkSAA7UVI2_js=require('./chunk-SAA7UVI2.js'),chunkI4M2AA3N_js=require('./chunk-I4M2AA3N.js'),chunkBKRETVJ6_js=require('./chunk-BKRETVJ6.js'),chunkI54CDQGN_js=require('./chunk-I54CDQGN.js'),chunkQY7PD5XB_js=require('./chunk-QY7PD5XB.js'),chunkE63VPR7U_js=require('./chunk-E63VPR7U.js'),chunkUXMGBIX6_js=require('./chunk-UXMGBIX6.js'),chunkE64TU6IU_js=require('./chunk-E64TU6IU.js');require('./chunk-ELKB2AFZ.js'),require('./chunk-MQFZHA2D.js');Object.defineProperty(exports,"NDPRDashboard",{enumerable:true,get:function(){return chunkV37BM2LF_js.a}});Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunkER7X6E36_js.a}});Object.defineProperty(exports,"CrossBorderTransferManager",{enumerable:true,get:function(){return chunkCL53OI3I_js.a}});Object.defineProperty(exports,"ROPAManager",{enumerable:true,get:function(){return chunkVK27WVV3_js.a}});Object.defineProperty(exports,"NDPRProvider",{enumerable:true,get:function(){return chunk44W4H2EY_js.c}});Object.defineProperty(exports,"useNDPRConfig",{enumerable:true,get:function(){return chunk44W4H2EY_js.d}});Object.defineProperty(exports,"useLawfulBasis",{enumerable:true,get:function(){return chunk7AVN424U_js.a}});Object.defineProperty(exports,"useCrossBorderTransfer",{enumerable:true,get:function(){return chunkKBP26GLC_js.a}});Object.defineProperty(exports,"useROPA",{enumerable:true,get:function(){return chunk6RQGQZT2_js.a}});Object.defineProperty(exports,"getComplianceScore",{enumerable:true,get:function(){return chunkS4GRSNB4_js.a}});Object.defineProperty(exports,"assessComplianceGaps",{enumerable:true,get:function(){return chunkTDDAYVKK_js.c}});Object.defineProperty(exports,"generateLawfulBasisSummary",{enumerable:true,get:function(){return chunkTDDAYVKK_js.d}});Object.defineProperty(exports,"getLawfulBasisDescription",{enumerable:true,get:function(){return chunkTDDAYVKK_js.b}});Object.defineProperty(exports,"validateProcessingActivity",{enumerable:true,get:function(){return chunkTDDAYVKK_js.a}});Object.defineProperty(exports,"assessTransferRisk",{enumerable:true,get:function(){return chunkIQF726GS_js.d}});Object.defineProperty(exports,"getTransferMechanismDescription",{enumerable:true,get:function(){return chunkIQF726GS_js.b}});Object.defineProperty(exports,"isNDPCApprovalRequired",{enumerable:true,get:function(){return chunkIQF726GS_js.a}});Object.defineProperty(exports,"validateTransfer",{enumerable:true,get:function(){return chunkIQF726GS_js.c}});Object.defineProperty(exports,"exportROPAToCSV",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.c}});Object.defineProperty(exports,"generateROPASummary",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.b}});Object.defineProperty(exports,"identifyComplianceGaps",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.d}});Object.defineProperty(exports,"validateProcessingRecord",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.a}});Object.defineProperty(exports,"ConsentManager",{enumerable:true,get:function(){return chunk256APOQM_js.a}});Object.defineProperty(exports,"ConsentStorage",{enumerable:true,get:function(){return chunk256APOQM_js.b}});Object.defineProperty(exports,"ConsentBanner",{enumerable:true,get:function(){return chunk555WWZ3W_js.a}});Object.defineProperty(exports,"appendAuditEntry",{enumerable:true,get:function(){return chunkMJGOLP5M_js.c}});Object.defineProperty(exports,"createAuditEntry",{enumerable:true,get:function(){return chunkMJGOLP5M_js.a}});Object.defineProperty(exports,"getAuditLog",{enumerable:true,get:function(){return chunkMJGOLP5M_js.b}});Object.defineProperty(exports,"useConsent",{enumerable:true,get:function(){return chunk7SMLHZ4B_js.a}});Object.defineProperty(exports,"validateConsent",{enumerable:true,get:function(){return chunkHO5M7M4M_js.a}});Object.defineProperty(exports,"validateConsentOptions",{enumerable:true,get:function(){return chunkHO5M7M4M_js.b}});Object.defineProperty(exports,"DSRDashboard",{enumerable:true,get:function(){return chunk2FWCVWKN_js.a}});Object.defineProperty(exports,"DSRTracker",{enumerable:true,get:function(){return chunk2FWCVWKN_js.b}});Object.defineProperty(exports,"DSRRequestForm",{enumerable:true,get:function(){return chunkQH6YUVJS_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunk3DJGO6WG_js.a}});Object.defineProperty(exports,"formatDSRRequest",{enumerable:true,get:function(){return chunkNRQELKAE_js.a}});Object.defineProperty(exports,"DPIAReport",{enumerable:true,get:function(){return chunkFY5G6DGZ_js.a}});Object.defineProperty(exports,"StepIndicator",{enumerable:true,get:function(){return chunkFY5G6DGZ_js.b}});Object.defineProperty(exports,"DPIAQuestionnaire",{enumerable:true,get:function(){return chunkUNKXYVXY_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkKBAFOVE3_js.a}});Object.defineProperty(exports,"assessDPIARisk",{enumerable:true,get:function(){return chunkP42Z5CFE_js.a}});Object.defineProperty(exports,"BreachNotificationManager",{enumerable:true,get:function(){return chunk6BXUVS6E_js.b}});Object.defineProperty(exports,"BreachRiskAssessment",{enumerable:true,get:function(){return chunk6BXUVS6E_js.a}});Object.defineProperty(exports,"RegulatoryReportGenerator",{enumerable:true,get:function(){return chunk6BXUVS6E_js.c}});Object.defineProperty(exports,"BreachReportForm",{enumerable:true,get:function(){return chunkSAA7UVI2_js.a}});Object.defineProperty(exports,"useBreach",{enumerable:true,get:function(){return chunkI4M2AA3N_js.a}});Object.defineProperty(exports,"calculateBreachSeverity",{enumerable:true,get:function(){return chunkBKRETVJ6_js.a}});Object.defineProperty(exports,"sanitizeInput",{enumerable:true,get:function(){return chunkI54CDQGN_js.a}});Object.defineProperty(exports,"PolicyExporter",{enumerable:true,get:function(){return chunkQY7PD5XB_js.c}});Object.defineProperty(exports,"PolicyGenerator",{enumerable:true,get:function(){return chunkQY7PD5XB_js.a}});Object.defineProperty(exports,"PolicyPreview",{enumerable:true,get:function(){return chunkQY7PD5XB_js.b}});Object.defineProperty(exports,"useDefaultPrivacyPolicy",{enumerable:true,get:function(){return chunkE63VPR7U_js.b}});Object.defineProperty(exports,"usePrivacyPolicy",{enumerable:true,get:function(){return chunkE63VPR7U_js.a}});Object.defineProperty(exports,"DEFAULT_POLICY_SECTIONS",{enumerable:true,get:function(){return chunkUXMGBIX6_js.b}});Object.defineProperty(exports,"DEFAULT_POLICY_VARIABLES",{enumerable:true,get:function(){return chunkUXMGBIX6_js.c}});Object.defineProperty(exports,"createBusinessPolicyTemplate",{enumerable:true,get:function(){return chunkUXMGBIX6_js.d}});Object.defineProperty(exports,"generatePolicyText",{enumerable:true,get:function(){return chunkUXMGBIX6_js.a}});Object.defineProperty(exports,"resolveClass",{enumerable:true,get:function(){return chunkE64TU6IU_js.a}});//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{a as NDPRDashboard}from'./chunk-3UWT64FI.mjs';export{a as LawfulBasisTracker}from'./chunk-ELKEZEV5.mjs';export{a as CrossBorderTransferManager}from'./chunk-4JUDKBA2.mjs';export{a as ROPAManager}from'./chunk-
|
|
1
|
+
export{a as NDPRDashboard}from'./chunk-3UWT64FI.mjs';export{a as LawfulBasisTracker}from'./chunk-ELKEZEV5.mjs';export{a as CrossBorderTransferManager}from'./chunk-4JUDKBA2.mjs';export{a as ROPAManager}from'./chunk-K45S6YQV.mjs';export{c as NDPRProvider,d as useNDPRConfig}from'./chunk-TVW6KBVV.mjs';export{a as useLawfulBasis}from'./chunk-E4NCJ7RD.mjs';export{a as useCrossBorderTransfer}from'./chunk-XQ4M5FHC.mjs';export{a as useROPA}from'./chunk-PM7O5IGE.mjs';export{a as getComplianceScore}from'./chunk-ABDB7LEV.mjs';export{c as assessComplianceGaps,d as generateLawfulBasisSummary,b as getLawfulBasisDescription,a as validateProcessingActivity}from'./chunk-TXBZPCGF.mjs';export{d as assessTransferRisk,b as getTransferMechanismDescription,a as isNDPCApprovalRequired,c as validateTransfer}from'./chunk-QKK5S54L.mjs';export{c as exportROPAToCSV,b as generateROPASummary,d as identifyComplianceGaps,a as validateProcessingRecord}from'./chunk-SHMJNRHO.mjs';export{a as ConsentManager,b as ConsentStorage}from'./chunk-Q7VHB64E.mjs';export{a as ConsentBanner}from'./chunk-4XCL62MJ.mjs';export{c as appendAuditEntry,a as createAuditEntry,b as getAuditLog}from'./chunk-P3PULLYP.mjs';export{a as useConsent}from'./chunk-VWPGIES4.mjs';import'./chunk-R3OYAJI6.mjs';export{a as validateConsent,b as validateConsentOptions}from'./chunk-U62QYKVG.mjs';export{a as DSRDashboard,b as DSRTracker}from'./chunk-MDWG2KDA.mjs';export{a as DSRRequestForm}from'./chunk-IR7VCBWV.mjs';export{a as useDSR}from'./chunk-FOXZRRMW.mjs';export{a as formatDSRRequest}from'./chunk-NXQMU36Z.mjs';export{a as DPIAReport,b as StepIndicator}from'./chunk-NPI5T6NH.mjs';export{a as DPIAQuestionnaire}from'./chunk-V3MXWGXU.mjs';export{a as useDPIA}from'./chunk-GOD4LA2J.mjs';export{a as assessDPIARisk}from'./chunk-6TA2MVTU.mjs';export{b as BreachNotificationManager,a as BreachRiskAssessment,c as RegulatoryReportGenerator}from'./chunk-NUDVUAD4.mjs';export{a as BreachReportForm}from'./chunk-CWUPGY3M.mjs';export{a as useBreach}from'./chunk-PATONNTZ.mjs';export{a as calculateBreachSeverity}from'./chunk-DJGS7SSN.mjs';export{a as sanitizeInput}from'./chunk-GKKAK6ES.mjs';export{c as PolicyExporter,a as PolicyGenerator,b as PolicyPreview}from'./chunk-I23WPZNQ.mjs';export{b as useDefaultPrivacyPolicy,a as usePrivacyPolicy}from'./chunk-FDDI426Y.mjs';export{b as DEFAULT_POLICY_SECTIONS,c as DEFAULT_POLICY_VARIABLES,d as createBusinessPolicyTemplate,a as generatePolicyText}from'./chunk-ZEOQYWOE.mjs';export{a as resolveClass}from'./chunk-AYKLAEOU.mjs';import'./chunk-6WIP33TW.mjs';import'./chunk-WWT2ZSNU.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/lawful-basis.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var chunkER7X6E36_js=require('./chunk-ER7X6E36.js'),
|
|
1
|
+
'use strict';var chunkER7X6E36_js=require('./chunk-ER7X6E36.js'),chunk7AVN424U_js=require('./chunk-7AVN424U.js'),chunkTDDAYVKK_js=require('./chunk-TDDAYVKK.js');require('./chunk-E64TU6IU.js'),require('./chunk-ELKB2AFZ.js'),require('./chunk-MQFZHA2D.js');var react=require('react'),jsxRuntime=require('react/jsx-runtime');var r=react.createContext(null);function x(){let s=react.useContext(r);if(!s)throw new Error("LawfulBasis compound components must be wrapped in <LawfulBasis.Provider>. Example: <LawfulBasis.Provider><LawfulBasis.Tracker /></LawfulBasis.Provider>");return s}var e=({adapter:s,storageKey:t,useLocalStorage:i,initialActivities:u,onAdd:f,onUpdate:p,onRemove:l,children:n})=>{let m=chunk7AVN424U_js.a({adapter:s,storageKey:t,useLocalStorage:i,initialActivities:u,onAdd:f,onUpdate:p,onRemove:l});return jsxRuntime.jsx(r.Provider,{value:m,children:n})};var y={Provider:e,Tracker:chunkER7X6E36_js.a};Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunkER7X6E36_js.a}});Object.defineProperty(exports,"useLawfulBasis",{enumerable:true,get:function(){return chunk7AVN424U_js.a}});Object.defineProperty(exports,"assessComplianceGaps",{enumerable:true,get:function(){return chunkTDDAYVKK_js.c}});Object.defineProperty(exports,"generateLawfulBasisSummary",{enumerable:true,get:function(){return chunkTDDAYVKK_js.d}});Object.defineProperty(exports,"getLawfulBasisDescription",{enumerable:true,get:function(){return chunkTDDAYVKK_js.b}});Object.defineProperty(exports,"validateProcessingActivity",{enumerable:true,get:function(){return chunkTDDAYVKK_js.a}});exports.LawfulBasis=y;exports.LawfulBasisProvider=e;exports.useLawfulBasisCompound=x;//# sourceMappingURL=lawful-basis.js.map
|
|
2
2
|
//# sourceMappingURL=lawful-basis.js.map
|
package/dist/lawful-basis.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-ELKEZEV5.mjs';export{a as LawfulBasisTracker}from'./chunk-ELKEZEV5.mjs';import {a as a$1}from'./chunk-
|
|
1
|
+
import {a}from'./chunk-ELKEZEV5.mjs';export{a as LawfulBasisTracker}from'./chunk-ELKEZEV5.mjs';import {a as a$1}from'./chunk-E4NCJ7RD.mjs';export{a as useLawfulBasis}from'./chunk-E4NCJ7RD.mjs';export{c as assessComplianceGaps,d as generateLawfulBasisSummary,b as getLawfulBasisDescription,a as validateProcessingActivity}from'./chunk-TXBZPCGF.mjs';import'./chunk-AYKLAEOU.mjs';import'./chunk-6WIP33TW.mjs';import'./chunk-WWT2ZSNU.mjs';import {createContext,useContext}from'react';import {jsx}from'react/jsx-runtime';var r=createContext(null);function x(){let s=useContext(r);if(!s)throw new Error("LawfulBasis compound components must be wrapped in <LawfulBasis.Provider>. Example: <LawfulBasis.Provider><LawfulBasis.Tracker /></LawfulBasis.Provider>");return s}var e=({adapter:s,storageKey:t,useLocalStorage:i,initialActivities:u,onAdd:f,onUpdate:p,onRemove:l,children:n})=>{let m=a$1({adapter:s,storageKey:t,useLocalStorage:i,initialActivities:u,onAdd:f,onUpdate:p,onRemove:l});return jsx(r.Provider,{value:m,children:n})};var y={Provider:e,Tracker:a};export{y as LawfulBasis,e as LawfulBasisProvider,x as useLawfulBasisCompound};//# sourceMappingURL=lawful-basis.mjs.map
|
|
2
2
|
//# sourceMappingURL=lawful-basis.mjs.map
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { O as OrganizationInfo } from './privacy-Ca6te9Ir.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Policy engine types for the adaptive privacy policy generator.
|
|
5
|
+
* These types power the wizard-driven policy builder, compliance checker,
|
|
6
|
+
* and export functionality — all aligned with the NDPA 2023.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** Industry verticals with sector-specific compliance requirements. */
|
|
10
|
+
type Industry = 'fintech' | 'healthcare' | 'ecommerce' | 'saas' | 'education' | 'government' | 'other';
|
|
11
|
+
/** Organisation size tiers — affects complexity of generated language. */
|
|
12
|
+
type OrgSize = 'startup' | 'midsize' | 'enterprise';
|
|
13
|
+
/** Lawful processing purposes recognised under the NDPA. */
|
|
14
|
+
type ProcessingPurpose = 'service_delivery' | 'marketing' | 'analytics' | 'research' | 'legal_compliance' | 'fraud_prevention';
|
|
15
|
+
/** A logical category of personal data the organisation may collect. */
|
|
16
|
+
interface DataCategory {
|
|
17
|
+
/** Machine-readable identifier. */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Human-readable label shown in the wizard. */
|
|
20
|
+
label: string;
|
|
21
|
+
/** Grouping for display and compliance checks. */
|
|
22
|
+
group: 'identity' | 'financial' | 'behavioral' | 'sensitive' | 'children';
|
|
23
|
+
/** Specific data points within this category. */
|
|
24
|
+
dataPoints: string[];
|
|
25
|
+
/** Whether this category is currently selected by the user. */
|
|
26
|
+
selected: boolean;
|
|
27
|
+
}
|
|
28
|
+
/** A third-party entity that processes data on behalf of the organisation. */
|
|
29
|
+
interface ThirdPartyProcessor {
|
|
30
|
+
/** Name of the third party. */
|
|
31
|
+
name: string;
|
|
32
|
+
/** Purpose of sharing data with this processor. */
|
|
33
|
+
purpose: string;
|
|
34
|
+
/** Country where the processor is located. */
|
|
35
|
+
country: string;
|
|
36
|
+
}
|
|
37
|
+
/** Full context used to generate an adaptive privacy policy. */
|
|
38
|
+
interface TemplateContext {
|
|
39
|
+
/** Organisation details, extended with industry and size. */
|
|
40
|
+
org: OrganizationInfo & {
|
|
41
|
+
industry: Industry;
|
|
42
|
+
orgSize: OrgSize;
|
|
43
|
+
country: string;
|
|
44
|
+
};
|
|
45
|
+
/** Data categories the organisation collects. */
|
|
46
|
+
dataCategories: DataCategory[];
|
|
47
|
+
/** Processing purposes relevant to the organisation. */
|
|
48
|
+
purposes: ProcessingPurpose[];
|
|
49
|
+
/** Whether the organisation processes children's data. */
|
|
50
|
+
hasChildrenData: boolean;
|
|
51
|
+
/** Whether the organisation processes sensitive/special-category data. */
|
|
52
|
+
hasSensitiveData: boolean;
|
|
53
|
+
/** Whether the organisation processes financial data. */
|
|
54
|
+
hasFinancialData: boolean;
|
|
55
|
+
/** Whether data is transferred outside Nigeria. */
|
|
56
|
+
hasCrossBorderTransfer: boolean;
|
|
57
|
+
/** Whether automated decision-making or profiling is used. */
|
|
58
|
+
hasAutomatedDecisions: boolean;
|
|
59
|
+
/** Third-party processors that receive personal data. */
|
|
60
|
+
thirdPartyProcessors: ThirdPartyProcessor[];
|
|
61
|
+
}
|
|
62
|
+
/** A user-defined section added to the policy outside the generated ones. */
|
|
63
|
+
interface CustomSection {
|
|
64
|
+
id: string;
|
|
65
|
+
title: string;
|
|
66
|
+
content: string;
|
|
67
|
+
order: number;
|
|
68
|
+
required: false;
|
|
69
|
+
}
|
|
70
|
+
/** Represents an in-progress policy being built in the wizard. */
|
|
71
|
+
interface PolicyDraft {
|
|
72
|
+
/** Unique identifier for the draft. */
|
|
73
|
+
id: string;
|
|
74
|
+
/** The template context driving section generation. */
|
|
75
|
+
templateContext: TemplateContext;
|
|
76
|
+
/** Custom sections added by the user. */
|
|
77
|
+
customSections: CustomSection[];
|
|
78
|
+
/** Per-section content overrides keyed by section id. */
|
|
79
|
+
sectionOverrides: Record<string, string>;
|
|
80
|
+
/** Ordered list of section ids defining the final order. */
|
|
81
|
+
sectionOrder: string[];
|
|
82
|
+
/** Current wizard step (0-indexed). */
|
|
83
|
+
currentStep: number;
|
|
84
|
+
/** Timestamp of the last save. */
|
|
85
|
+
lastSavedAt: number;
|
|
86
|
+
/** The draft is always in "draft" status until finalised. */
|
|
87
|
+
status: 'draft';
|
|
88
|
+
}
|
|
89
|
+
/** A single gap found during NDPA compliance evaluation. */
|
|
90
|
+
interface ComplianceGap {
|
|
91
|
+
/** Machine-readable requirement identifier. */
|
|
92
|
+
requirementId: string;
|
|
93
|
+
/** Human-readable name of the requirement. */
|
|
94
|
+
requirement: string;
|
|
95
|
+
/** Reference to the relevant NDPA section. */
|
|
96
|
+
ndpaSection: string;
|
|
97
|
+
/** How severe the gap is. */
|
|
98
|
+
severity: 'critical' | 'important' | 'recommended';
|
|
99
|
+
/** Explanation of what is missing. */
|
|
100
|
+
message: string;
|
|
101
|
+
/** Suggested fix type for the UI. */
|
|
102
|
+
fixType: 'add_section' | 'add_content' | 'fill_field';
|
|
103
|
+
/** Label for the fix action button. */
|
|
104
|
+
fixLabel: string;
|
|
105
|
+
/** Pre-written content the user can insert to close the gap. */
|
|
106
|
+
suggestedContent?: string;
|
|
107
|
+
}
|
|
108
|
+
/** Result of evaluating a policy against NDPA requirements. */
|
|
109
|
+
interface ComplianceResult {
|
|
110
|
+
/** Points earned. */
|
|
111
|
+
score: number;
|
|
112
|
+
/** Maximum achievable points (115). */
|
|
113
|
+
maxScore: number;
|
|
114
|
+
/** Percentage score (0-100). */
|
|
115
|
+
percentage: number;
|
|
116
|
+
/** Overall compliance rating. */
|
|
117
|
+
rating: 'compliant' | 'nearly_compliant' | 'not_compliant';
|
|
118
|
+
/** List of identified compliance gaps. */
|
|
119
|
+
gaps: ComplianceGap[];
|
|
120
|
+
/** List of requirement ids that passed. */
|
|
121
|
+
passed: string[];
|
|
122
|
+
}
|
|
123
|
+
/** Options for PDF export of the finalised policy. */
|
|
124
|
+
interface PDFExportOptions {
|
|
125
|
+
includeCoverPage?: boolean;
|
|
126
|
+
includeTOC?: boolean;
|
|
127
|
+
includeComplianceBadge?: boolean;
|
|
128
|
+
logoUrl?: string;
|
|
129
|
+
filename?: string;
|
|
130
|
+
}
|
|
131
|
+
/** Options for DOCX export of the finalised policy. */
|
|
132
|
+
interface DOCXExportOptions {
|
|
133
|
+
includeTOC?: boolean;
|
|
134
|
+
filename?: string;
|
|
135
|
+
}
|
|
136
|
+
/** Options for HTML export of the finalised policy. */
|
|
137
|
+
interface HTMLExportOptions {
|
|
138
|
+
includeStyles?: boolean;
|
|
139
|
+
includePrintCSS?: boolean;
|
|
140
|
+
customCSS?: string;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Comprehensive set of 16 data categories spanning identity, financial,
|
|
144
|
+
* behavioral, sensitive, and children groups. Used to populate the wizard
|
|
145
|
+
* and drive adaptive section generation.
|
|
146
|
+
*/
|
|
147
|
+
declare const DEFAULT_DATA_CATEGORIES: DataCategory[];
|
|
148
|
+
/**
|
|
149
|
+
* Creates a default TemplateContext with sensible empty/initial values.
|
|
150
|
+
* Useful for initialising the wizard state before the user begins editing.
|
|
151
|
+
*/
|
|
152
|
+
declare function createDefaultContext(): TemplateContext;
|
|
153
|
+
|
|
154
|
+
export { type ComplianceGap as C, type DataCategory as D, type HTMLExportOptions as H, type Industry as I, type OrgSize as O, type PolicyDraft as P, type TemplateContext as T, type ComplianceResult as a, type CustomSection as b, type ThirdPartyProcessor as c, createDefaultContext as d, type PDFExportOptions as e, type DOCXExportOptions as f, DEFAULT_DATA_CATEGORIES as g, type ProcessingPurpose as h };
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { O as OrganizationInfo } from './privacy-Ca6te9Ir.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Policy engine types for the adaptive privacy policy generator.
|
|
5
|
+
* These types power the wizard-driven policy builder, compliance checker,
|
|
6
|
+
* and export functionality — all aligned with the NDPA 2023.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** Industry verticals with sector-specific compliance requirements. */
|
|
10
|
+
type Industry = 'fintech' | 'healthcare' | 'ecommerce' | 'saas' | 'education' | 'government' | 'other';
|
|
11
|
+
/** Organisation size tiers — affects complexity of generated language. */
|
|
12
|
+
type OrgSize = 'startup' | 'midsize' | 'enterprise';
|
|
13
|
+
/** Lawful processing purposes recognised under the NDPA. */
|
|
14
|
+
type ProcessingPurpose = 'service_delivery' | 'marketing' | 'analytics' | 'research' | 'legal_compliance' | 'fraud_prevention';
|
|
15
|
+
/** A logical category of personal data the organisation may collect. */
|
|
16
|
+
interface DataCategory {
|
|
17
|
+
/** Machine-readable identifier. */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Human-readable label shown in the wizard. */
|
|
20
|
+
label: string;
|
|
21
|
+
/** Grouping for display and compliance checks. */
|
|
22
|
+
group: 'identity' | 'financial' | 'behavioral' | 'sensitive' | 'children';
|
|
23
|
+
/** Specific data points within this category. */
|
|
24
|
+
dataPoints: string[];
|
|
25
|
+
/** Whether this category is currently selected by the user. */
|
|
26
|
+
selected: boolean;
|
|
27
|
+
}
|
|
28
|
+
/** A third-party entity that processes data on behalf of the organisation. */
|
|
29
|
+
interface ThirdPartyProcessor {
|
|
30
|
+
/** Name of the third party. */
|
|
31
|
+
name: string;
|
|
32
|
+
/** Purpose of sharing data with this processor. */
|
|
33
|
+
purpose: string;
|
|
34
|
+
/** Country where the processor is located. */
|
|
35
|
+
country: string;
|
|
36
|
+
}
|
|
37
|
+
/** Full context used to generate an adaptive privacy policy. */
|
|
38
|
+
interface TemplateContext {
|
|
39
|
+
/** Organisation details, extended with industry and size. */
|
|
40
|
+
org: OrganizationInfo & {
|
|
41
|
+
industry: Industry;
|
|
42
|
+
orgSize: OrgSize;
|
|
43
|
+
country: string;
|
|
44
|
+
};
|
|
45
|
+
/** Data categories the organisation collects. */
|
|
46
|
+
dataCategories: DataCategory[];
|
|
47
|
+
/** Processing purposes relevant to the organisation. */
|
|
48
|
+
purposes: ProcessingPurpose[];
|
|
49
|
+
/** Whether the organisation processes children's data. */
|
|
50
|
+
hasChildrenData: boolean;
|
|
51
|
+
/** Whether the organisation processes sensitive/special-category data. */
|
|
52
|
+
hasSensitiveData: boolean;
|
|
53
|
+
/** Whether the organisation processes financial data. */
|
|
54
|
+
hasFinancialData: boolean;
|
|
55
|
+
/** Whether data is transferred outside Nigeria. */
|
|
56
|
+
hasCrossBorderTransfer: boolean;
|
|
57
|
+
/** Whether automated decision-making or profiling is used. */
|
|
58
|
+
hasAutomatedDecisions: boolean;
|
|
59
|
+
/** Third-party processors that receive personal data. */
|
|
60
|
+
thirdPartyProcessors: ThirdPartyProcessor[];
|
|
61
|
+
}
|
|
62
|
+
/** A user-defined section added to the policy outside the generated ones. */
|
|
63
|
+
interface CustomSection {
|
|
64
|
+
id: string;
|
|
65
|
+
title: string;
|
|
66
|
+
content: string;
|
|
67
|
+
order: number;
|
|
68
|
+
required: false;
|
|
69
|
+
}
|
|
70
|
+
/** Represents an in-progress policy being built in the wizard. */
|
|
71
|
+
interface PolicyDraft {
|
|
72
|
+
/** Unique identifier for the draft. */
|
|
73
|
+
id: string;
|
|
74
|
+
/** The template context driving section generation. */
|
|
75
|
+
templateContext: TemplateContext;
|
|
76
|
+
/** Custom sections added by the user. */
|
|
77
|
+
customSections: CustomSection[];
|
|
78
|
+
/** Per-section content overrides keyed by section id. */
|
|
79
|
+
sectionOverrides: Record<string, string>;
|
|
80
|
+
/** Ordered list of section ids defining the final order. */
|
|
81
|
+
sectionOrder: string[];
|
|
82
|
+
/** Current wizard step (0-indexed). */
|
|
83
|
+
currentStep: number;
|
|
84
|
+
/** Timestamp of the last save. */
|
|
85
|
+
lastSavedAt: number;
|
|
86
|
+
/** The draft is always in "draft" status until finalised. */
|
|
87
|
+
status: 'draft';
|
|
88
|
+
}
|
|
89
|
+
/** A single gap found during NDPA compliance evaluation. */
|
|
90
|
+
interface ComplianceGap {
|
|
91
|
+
/** Machine-readable requirement identifier. */
|
|
92
|
+
requirementId: string;
|
|
93
|
+
/** Human-readable name of the requirement. */
|
|
94
|
+
requirement: string;
|
|
95
|
+
/** Reference to the relevant NDPA section. */
|
|
96
|
+
ndpaSection: string;
|
|
97
|
+
/** How severe the gap is. */
|
|
98
|
+
severity: 'critical' | 'important' | 'recommended';
|
|
99
|
+
/** Explanation of what is missing. */
|
|
100
|
+
message: string;
|
|
101
|
+
/** Suggested fix type for the UI. */
|
|
102
|
+
fixType: 'add_section' | 'add_content' | 'fill_field';
|
|
103
|
+
/** Label for the fix action button. */
|
|
104
|
+
fixLabel: string;
|
|
105
|
+
/** Pre-written content the user can insert to close the gap. */
|
|
106
|
+
suggestedContent?: string;
|
|
107
|
+
}
|
|
108
|
+
/** Result of evaluating a policy against NDPA requirements. */
|
|
109
|
+
interface ComplianceResult {
|
|
110
|
+
/** Points earned. */
|
|
111
|
+
score: number;
|
|
112
|
+
/** Maximum achievable points (115). */
|
|
113
|
+
maxScore: number;
|
|
114
|
+
/** Percentage score (0-100). */
|
|
115
|
+
percentage: number;
|
|
116
|
+
/** Overall compliance rating. */
|
|
117
|
+
rating: 'compliant' | 'nearly_compliant' | 'not_compliant';
|
|
118
|
+
/** List of identified compliance gaps. */
|
|
119
|
+
gaps: ComplianceGap[];
|
|
120
|
+
/** List of requirement ids that passed. */
|
|
121
|
+
passed: string[];
|
|
122
|
+
}
|
|
123
|
+
/** Options for PDF export of the finalised policy. */
|
|
124
|
+
interface PDFExportOptions {
|
|
125
|
+
includeCoverPage?: boolean;
|
|
126
|
+
includeTOC?: boolean;
|
|
127
|
+
includeComplianceBadge?: boolean;
|
|
128
|
+
logoUrl?: string;
|
|
129
|
+
filename?: string;
|
|
130
|
+
}
|
|
131
|
+
/** Options for DOCX export of the finalised policy. */
|
|
132
|
+
interface DOCXExportOptions {
|
|
133
|
+
includeTOC?: boolean;
|
|
134
|
+
filename?: string;
|
|
135
|
+
}
|
|
136
|
+
/** Options for HTML export of the finalised policy. */
|
|
137
|
+
interface HTMLExportOptions {
|
|
138
|
+
includeStyles?: boolean;
|
|
139
|
+
includePrintCSS?: boolean;
|
|
140
|
+
customCSS?: string;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Comprehensive set of 16 data categories spanning identity, financial,
|
|
144
|
+
* behavioral, sensitive, and children groups. Used to populate the wizard
|
|
145
|
+
* and drive adaptive section generation.
|
|
146
|
+
*/
|
|
147
|
+
declare const DEFAULT_DATA_CATEGORIES: DataCategory[];
|
|
148
|
+
/**
|
|
149
|
+
* Creates a default TemplateContext with sensible empty/initial values.
|
|
150
|
+
* Useful for initialising the wizard state before the user begins editing.
|
|
151
|
+
*/
|
|
152
|
+
declare function createDefaultContext(): TemplateContext;
|
|
153
|
+
|
|
154
|
+
export { type ComplianceGap as C, type DataCategory as D, type HTMLExportOptions as H, type Industry as I, type OrgSize as O, type PolicyDraft as P, type TemplateContext as T, type ComplianceResult as a, type CustomSection as b, type ThirdPartyProcessor as c, createDefaultContext as d, type PDFExportOptions as e, type DOCXExportOptions as f, DEFAULT_DATA_CATEGORIES as g, type ProcessingPurpose as h };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { c as PrivacyPolicy, P as PolicySection } from './privacy-Ca6te9Ir.mjs';
|
|
2
|
+
import { T as TemplateContext, a as ComplianceResult } from './policy-engine-C-tShzZH.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* NDPA policy compliance checker.
|
|
6
|
+
*
|
|
7
|
+
* Evaluates a {@link PrivacyPolicy} against 15 requirements drawn from
|
|
8
|
+
* the Nigeria Data Protection Act (NDPA) 2023, producing a scored
|
|
9
|
+
* {@link ComplianceResult} with actionable gaps.
|
|
10
|
+
*
|
|
11
|
+
* Scoring:
|
|
12
|
+
* 6 critical @ 10 pts = 60
|
|
13
|
+
* 5 important @ 7 pts = 35
|
|
14
|
+
* 4 recommended @ 5 pts = 20
|
|
15
|
+
* Total max = 115
|
|
16
|
+
*
|
|
17
|
+
* Rating thresholds:
|
|
18
|
+
* >= 100 → compliant
|
|
19
|
+
* >= 80 → nearly_compliant
|
|
20
|
+
* < 80 → not_compliant
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Evaluates a privacy policy against 15 NDPA 2023 requirements and
|
|
25
|
+
* returns a scored compliance result with actionable gap information.
|
|
26
|
+
*
|
|
27
|
+
* @param policy - The privacy policy to evaluate.
|
|
28
|
+
* @param context - The template context that was used to generate the policy.
|
|
29
|
+
* @returns A {@link ComplianceResult} with score, rating, gaps, and passed ids.
|
|
30
|
+
*/
|
|
31
|
+
declare function evaluatePolicyCompliance(policy: PrivacyPolicy, context: TemplateContext): ComplianceResult;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Adaptive privacy policy section generators.
|
|
35
|
+
*
|
|
36
|
+
* Builds NDPA 2023-compliant policy sections based on the organisation's
|
|
37
|
+
* template context (industry, data categories, purposes, flags, etc.).
|
|
38
|
+
*
|
|
39
|
+
* Every section produces a {@link PolicySection} matching the existing
|
|
40
|
+
* interface from `types/privacy.ts`.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Assembles an ordered array of privacy policy sections based on the
|
|
45
|
+
* provided template context. Core sections are always included; conditional
|
|
46
|
+
* sections are added based on context flags (children, sensitive data,
|
|
47
|
+
* cross-border transfers, automated decisions).
|
|
48
|
+
*
|
|
49
|
+
* @param context - The template context describing the organisation and its data practices.
|
|
50
|
+
* @returns An array of {@link PolicySection} objects, ordered and ready for rendering.
|
|
51
|
+
*/
|
|
52
|
+
declare function assemblePolicy(context: TemplateContext): PolicySection[];
|
|
53
|
+
|
|
54
|
+
export { assemblePolicy as a, evaluatePolicyCompliance as e };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { c as PrivacyPolicy, P as PolicySection } from './privacy-Ca6te9Ir.js';
|
|
2
|
+
import { T as TemplateContext, a as ComplianceResult } from './policy-engine-DSQpT55_.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* NDPA policy compliance checker.
|
|
6
|
+
*
|
|
7
|
+
* Evaluates a {@link PrivacyPolicy} against 15 requirements drawn from
|
|
8
|
+
* the Nigeria Data Protection Act (NDPA) 2023, producing a scored
|
|
9
|
+
* {@link ComplianceResult} with actionable gaps.
|
|
10
|
+
*
|
|
11
|
+
* Scoring:
|
|
12
|
+
* 6 critical @ 10 pts = 60
|
|
13
|
+
* 5 important @ 7 pts = 35
|
|
14
|
+
* 4 recommended @ 5 pts = 20
|
|
15
|
+
* Total max = 115
|
|
16
|
+
*
|
|
17
|
+
* Rating thresholds:
|
|
18
|
+
* >= 100 → compliant
|
|
19
|
+
* >= 80 → nearly_compliant
|
|
20
|
+
* < 80 → not_compliant
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Evaluates a privacy policy against 15 NDPA 2023 requirements and
|
|
25
|
+
* returns a scored compliance result with actionable gap information.
|
|
26
|
+
*
|
|
27
|
+
* @param policy - The privacy policy to evaluate.
|
|
28
|
+
* @param context - The template context that was used to generate the policy.
|
|
29
|
+
* @returns A {@link ComplianceResult} with score, rating, gaps, and passed ids.
|
|
30
|
+
*/
|
|
31
|
+
declare function evaluatePolicyCompliance(policy: PrivacyPolicy, context: TemplateContext): ComplianceResult;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Adaptive privacy policy section generators.
|
|
35
|
+
*
|
|
36
|
+
* Builds NDPA 2023-compliant policy sections based on the organisation's
|
|
37
|
+
* template context (industry, data categories, purposes, flags, etc.).
|
|
38
|
+
*
|
|
39
|
+
* Every section produces a {@link PolicySection} matching the existing
|
|
40
|
+
* interface from `types/privacy.ts`.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Assembles an ordered array of privacy policy sections based on the
|
|
45
|
+
* provided template context. Core sections are always included; conditional
|
|
46
|
+
* sections are added based on context flags (children, sensitive data,
|
|
47
|
+
* cross-border transfers, automated decisions).
|
|
48
|
+
*
|
|
49
|
+
* @param context - The template context describing the organisation and its data practices.
|
|
50
|
+
* @returns An array of {@link PolicySection} objects, ordered and ready for rendering.
|
|
51
|
+
*/
|
|
52
|
+
declare function assemblePolicy(context: TemplateContext): PolicySection[];
|
|
53
|
+
|
|
54
|
+
export { assemblePolicy as a, evaluatePolicyCompliance as e };
|