@osano/osano-cmp-react-native 0.12.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.dev.md +216 -1
- package/README.md +2 -268
- package/android/src/main/java/com/OsanoCMPSDK/OsanoCMPSDKModule.kt +41 -0
- package/ios/OsanoCmpSDK.mm +42 -0
- package/lib/commonjs/ConsentManager.js +57 -14
- package/lib/commonjs/ConsentManager.js.map +1 -1
- package/lib/commonjs/ConsentUiBuilder.js +10 -7
- package/lib/commonjs/ConsentUiBuilder.js.map +1 -1
- package/lib/commonjs/commands.js +10 -5
- package/lib/commonjs/commands.js.map +1 -1
- package/lib/commonjs/components/Button.js +6 -7
- package/lib/commonjs/components/Button.js.map +1 -1
- package/lib/commonjs/components/Checkbox.js +1 -2
- package/lib/commonjs/components/Checkbox.js.map +1 -1
- package/lib/commonjs/components/ExpansionPanel.js +1 -2
- package/lib/commonjs/components/ExpansionPanel.js.map +1 -1
- package/lib/commonjs/components/Link.js +1 -2
- package/lib/commonjs/components/Link.js.map +1 -1
- package/lib/commonjs/components/StoragePolicyLink.js +1 -2
- package/lib/commonjs/components/StoragePolicyLink.js.map +1 -1
- package/lib/commonjs/components/Toggle.js +1 -2
- package/lib/commonjs/components/Toggle.js.map +1 -1
- package/lib/commonjs/context.js +5 -4
- package/lib/commonjs/context.js.map +1 -1
- package/lib/commonjs/iab/tcf/constants.js +34 -1
- package/lib/commonjs/iab/tcf/constants.js.map +1 -1
- package/lib/commonjs/iab/tcf/iab-storage-utils.js +102 -0
- package/lib/commonjs/iab/tcf/iab-storage-utils.js.map +1 -0
- package/lib/commonjs/iab/tcf/index.js +1 -2
- package/lib/commonjs/iab/tcf/index.js.map +1 -1
- package/lib/commonjs/iab/tcf/middleware.js +33 -35
- package/lib/commonjs/iab/tcf/middleware.js.map +1 -1
- package/lib/commonjs/iab/tcf/selectors.js +1 -1
- package/lib/commonjs/iab/tcf/selectors.js.map +1 -1
- package/lib/commonjs/iab/tcf/v2.0/shared-constants.js +1 -2
- package/lib/commonjs/iab/tcf/v2.0/shared-constants.js.map +1 -1
- package/lib/commonjs/index.js +29 -9
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/locale/af.json +342 -323
- package/lib/commonjs/locale/ar.json +342 -323
- package/lib/commonjs/locale/bg.json +342 -323
- package/lib/commonjs/locale/ca.json +342 -323
- package/lib/commonjs/locale/cs.json +342 -323
- package/lib/commonjs/locale/da.json +342 -323
- package/lib/commonjs/locale/de-at.json +342 -323
- package/lib/commonjs/locale/de.json +342 -323
- package/lib/commonjs/locale/el.json +342 -323
- package/lib/commonjs/locale/en-au.json +342 -323
- package/lib/commonjs/locale/en-ca.json +342 -323
- package/lib/commonjs/locale/en-gb.json +342 -323
- package/lib/commonjs/locale/en.json +342 -323
- package/lib/commonjs/locale/es-mx.json +342 -323
- package/lib/commonjs/locale/es.json +342 -323
- package/lib/commonjs/locale/et.json +342 -323
- package/lib/commonjs/locale/fa.json +342 -323
- package/lib/commonjs/locale/fi.json +342 -323
- package/lib/commonjs/locale/fr-ca.json +342 -323
- package/lib/commonjs/locale/fr.json +342 -323
- package/lib/commonjs/locale/gd.json +342 -323
- package/lib/commonjs/locale/he.json +342 -323
- package/lib/commonjs/locale/hi.json +342 -323
- package/lib/commonjs/locale/hr.json +342 -323
- package/lib/commonjs/locale/hu.json +342 -323
- package/lib/commonjs/locale/hy.json +342 -323
- package/lib/commonjs/locale/id.json +342 -323
- package/lib/commonjs/locale/is.json +342 -323
- package/lib/commonjs/locale/it.json +342 -323
- package/lib/commonjs/locale/ja.json +342 -323
- package/lib/commonjs/locale/kk.json +342 -323
- package/lib/commonjs/locale/ko.json +342 -323
- package/lib/commonjs/locale/lt.json +342 -323
- package/lib/commonjs/locale/lv.json +342 -323
- package/lib/commonjs/locale/mi.json +342 -323
- package/lib/commonjs/locale/ms.json +342 -323
- package/lib/commonjs/locale/nb.json +342 -323
- package/lib/commonjs/locale/nl-be.json +342 -323
- package/lib/commonjs/locale/nl.json +342 -323
- package/lib/commonjs/locale/nn.json +342 -323
- package/lib/commonjs/locale/no.json +342 -323
- package/lib/commonjs/locale/pl.json +342 -323
- package/lib/commonjs/locale/pt-br.json +342 -323
- package/lib/commonjs/locale/pt.json +342 -323
- package/lib/commonjs/locale/ro.json +342 -323
- package/lib/commonjs/locale/ru.json +342 -323
- package/lib/commonjs/locale/sk.json +342 -323
- package/lib/commonjs/locale/sl.json +342 -323
- package/lib/commonjs/locale/sq.json +342 -323
- package/lib/commonjs/locale/sr.json +342 -323
- package/lib/commonjs/locale/sv.json +342 -323
- package/lib/commonjs/locale/th.json +342 -323
- package/lib/commonjs/locale/tl.json +342 -323
- package/lib/commonjs/locale/tr.json +342 -323
- package/lib/commonjs/locale/uk.json +342 -323
- package/lib/commonjs/locale/vi.json +342 -323
- package/lib/commonjs/locale/zh-hk.json +342 -323
- package/lib/commonjs/locale/zh-tw.json +342 -323
- package/lib/commonjs/locale/zh.json +342 -323
- package/lib/commonjs/locale/zu.json +342 -323
- package/lib/commonjs/native/OsanoCmp.js +16 -0
- package/lib/commonjs/native/OsanoCmp.js.map +1 -1
- package/lib/commonjs/services/consent.js +6 -5
- package/lib/commonjs/services/consent.js.map +1 -1
- package/lib/commonjs/services/google-consent-mode-mapper.js +109 -0
- package/lib/commonjs/services/google-consent-mode-mapper.js.map +1 -0
- package/lib/commonjs/types/google-consent-mode.js +73 -0
- package/lib/commonjs/types/google-consent-mode.js.map +1 -0
- package/lib/commonjs/utils/OsanoLogger.js +51 -0
- package/lib/commonjs/utils/OsanoLogger.js.map +1 -0
- package/lib/commonjs/utils/index.js +7 -0
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/views/Dialog/Buttons.js +1 -2
- package/lib/commonjs/views/Dialog/Buttons.js.map +1 -1
- package/lib/commonjs/views/Dialog/FirstLayerUsage.js +1 -2
- package/lib/commonjs/views/Dialog/FirstLayerUsage.js.map +1 -1
- package/lib/commonjs/views/Dialog/Message.js +1 -2
- package/lib/commonjs/views/Dialog/Message.js.map +1 -1
- package/lib/commonjs/views/Dialog/PreferenceManagementDeepLinks.js +1 -2
- package/lib/commonjs/views/Dialog/PreferenceManagementDeepLinks.js.map +1 -1
- package/lib/commonjs/views/Dialog/index.js +1 -2
- package/lib/commonjs/views/Dialog/index.js.map +1 -1
- package/lib/commonjs/views/Drawer/Drawer.ConsentCategories.js +1 -2
- package/lib/commonjs/views/Drawer/Drawer.ConsentCategories.js.map +1 -1
- package/lib/commonjs/views/Drawer/Drawer.Header.js +1 -2
- package/lib/commonjs/views/Drawer/Drawer.Header.js.map +1 -1
- package/lib/commonjs/views/Drawer/Drawer.Iab.Disclosures.js +1 -2
- package/lib/commonjs/views/Drawer/Drawer.Iab.Disclosures.js.map +1 -1
- package/lib/commonjs/views/Drawer/Drawer.Iab.Vendors.js +1 -2
- package/lib/commonjs/views/Drawer/Drawer.Iab.Vendors.js.map +1 -1
- package/lib/commonjs/views/Drawer/index.js +1 -2
- package/lib/commonjs/views/Drawer/index.js.map +1 -1
- package/lib/module/ConsentManager.js +56 -12
- package/lib/module/ConsentManager.js.map +1 -1
- package/lib/module/ConsentUiBuilder.js +9 -5
- package/lib/module/ConsentUiBuilder.js.map +1 -1
- package/lib/module/commands.js +10 -5
- package/lib/module/commands.js.map +1 -1
- package/lib/module/components/Button.js +5 -5
- package/lib/module/components/Button.js.map +1 -1
- package/lib/module/context.js +5 -4
- package/lib/module/context.js.map +1 -1
- package/lib/module/iab/tcf/constants.js +32 -0
- package/lib/module/iab/tcf/constants.js.map +1 -1
- package/lib/module/iab/tcf/iab-storage-utils.js +89 -0
- package/lib/module/iab/tcf/iab-storage-utils.js.map +1 -0
- package/lib/module/iab/tcf/middleware.js +25 -27
- package/lib/module/iab/tcf/middleware.js.map +1 -1
- package/lib/module/iab/tcf/selectors.js +1 -1
- package/lib/module/iab/tcf/selectors.js.map +1 -1
- package/lib/module/index.js +22 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/locale/af.json +342 -323
- package/lib/module/locale/ar.json +342 -323
- package/lib/module/locale/bg.json +342 -323
- package/lib/module/locale/ca.json +342 -323
- package/lib/module/locale/cs.json +342 -323
- package/lib/module/locale/da.json +342 -323
- package/lib/module/locale/de-at.json +342 -323
- package/lib/module/locale/de.json +342 -323
- package/lib/module/locale/el.json +342 -323
- package/lib/module/locale/en-au.json +342 -323
- package/lib/module/locale/en-ca.json +342 -323
- package/lib/module/locale/en-gb.json +342 -323
- package/lib/module/locale/en.json +342 -323
- package/lib/module/locale/es-mx.json +342 -323
- package/lib/module/locale/es.json +342 -323
- package/lib/module/locale/et.json +342 -323
- package/lib/module/locale/fa.json +342 -323
- package/lib/module/locale/fi.json +342 -323
- package/lib/module/locale/fr-ca.json +342 -323
- package/lib/module/locale/fr.json +342 -323
- package/lib/module/locale/gd.json +342 -323
- package/lib/module/locale/he.json +342 -323
- package/lib/module/locale/hi.json +342 -323
- package/lib/module/locale/hr.json +342 -323
- package/lib/module/locale/hu.json +342 -323
- package/lib/module/locale/hy.json +342 -323
- package/lib/module/locale/id.json +342 -323
- package/lib/module/locale/is.json +342 -323
- package/lib/module/locale/it.json +342 -323
- package/lib/module/locale/ja.json +342 -323
- package/lib/module/locale/kk.json +342 -323
- package/lib/module/locale/ko.json +342 -323
- package/lib/module/locale/lt.json +342 -323
- package/lib/module/locale/lv.json +342 -323
- package/lib/module/locale/mi.json +342 -323
- package/lib/module/locale/ms.json +342 -323
- package/lib/module/locale/nb.json +342 -323
- package/lib/module/locale/nl-be.json +342 -323
- package/lib/module/locale/nl.json +342 -323
- package/lib/module/locale/nn.json +342 -323
- package/lib/module/locale/no.json +342 -323
- package/lib/module/locale/pl.json +342 -323
- package/lib/module/locale/pt-br.json +342 -323
- package/lib/module/locale/pt.json +342 -323
- package/lib/module/locale/ro.json +342 -323
- package/lib/module/locale/ru.json +342 -323
- package/lib/module/locale/sk.json +342 -323
- package/lib/module/locale/sl.json +342 -323
- package/lib/module/locale/sq.json +342 -323
- package/lib/module/locale/sr.json +342 -323
- package/lib/module/locale/sv.json +342 -323
- package/lib/module/locale/th.json +342 -323
- package/lib/module/locale/tl.json +342 -323
- package/lib/module/locale/tr.json +342 -323
- package/lib/module/locale/uk.json +342 -323
- package/lib/module/locale/vi.json +342 -323
- package/lib/module/locale/zh-hk.json +342 -323
- package/lib/module/locale/zh-tw.json +342 -323
- package/lib/module/locale/zh.json +342 -323
- package/lib/module/locale/zu.json +342 -323
- package/lib/module/native/OsanoCmp.js +12 -0
- package/lib/module/native/OsanoCmp.js.map +1 -1
- package/lib/module/services/consent.js +6 -6
- package/lib/module/services/consent.js.map +1 -1
- package/lib/module/services/google-consent-mode-mapper.js +103 -0
- package/lib/module/services/google-consent-mode-mapper.js.map +1 -0
- package/lib/module/types/google-consent-mode.js +70 -0
- package/lib/module/types/google-consent-mode.js.map +1 -0
- package/lib/module/utils/OsanoLogger.js +44 -0
- package/lib/module/utils/OsanoLogger.js.map +1 -0
- package/lib/module/utils/index.js +1 -0
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/lib/commonjs/ConsentManager.d.ts +15 -0
- package/lib/typescript/lib/commonjs/ConsentManager.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/ConsentUiBuilder.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/commands.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/components/Button.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/components/Checkbox.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/components/ExpansionPanel.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/components/Link.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/components/StoragePolicyLink.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/components/Toggle.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/constants.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/gpp/api.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/gpp/consent.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/gpp/encoders/AbstractBase64UrlEncoder.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/gpp/v1/index.d.ts +1 -3
- package/lib/typescript/lib/commonjs/iab/gpp/v1/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/tcf/consent.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/tcf/constants.d.ts +41 -1
- package/lib/typescript/lib/commonjs/iab/tcf/constants.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/tcf/iab-storage-utils.d.ts +9 -0
- package/lib/typescript/lib/commonjs/iab/tcf/iab-storage-utils.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/iab/tcf/middleware.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/tcf/reducer.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/tcf/selectors.d.ts +0 -1
- package/lib/typescript/lib/commonjs/iab/tcf/selectors.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/tcf/v2.0/shared-constants.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/usp/api.d.ts +1 -1
- package/lib/typescript/lib/commonjs/iab/usp/api.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/usp/consent.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/usp/selectors.d.ts +1 -4
- package/lib/typescript/lib/commonjs/iab/usp/selectors.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/iab/usp/v1/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/index.d.ts +2 -0
- package/lib/typescript/lib/commonjs/native/OsanoCmp.d.ts +4 -0
- package/lib/typescript/lib/commonjs/native/OsanoCmp.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/reducer.d.ts +7 -1
- package/lib/typescript/lib/commonjs/reducer.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/services/consent.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/services/google-consent-mode-mapper.d.ts +72 -0
- package/lib/typescript/lib/commonjs/services/google-consent-mode-mapper.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/types/google-consent-mode.d.ts +32 -0
- package/lib/typescript/lib/commonjs/types/google-consent-mode.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/utils/OsanoLogger.d.ts +16 -0
- package/lib/typescript/lib/commonjs/utils/OsanoLogger.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/utils/Translator.d.ts +1 -1
- package/lib/typescript/lib/commonjs/utils/Translator.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/utils/index.d.ts +2 -0
- package/lib/typescript/lib/commonjs/utils/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/views/Dialog/Buttons.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/views/Dialog/FirstLayerUsage.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/views/Dialog/Message.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/views/Dialog/PreferenceManagementDeepLinks.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/views/Dialog/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/views/Drawer/Drawer.ConsentCategories.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/views/Drawer/Drawer.Header.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/views/Drawer/Drawer.Iab.Disclosures.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/views/Drawer/Drawer.Iab.Vendors.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/views/Drawer/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/ConsentManager.d.ts +17 -2
- package/lib/typescript/lib/module/ConsentManager.d.ts.map +1 -1
- package/lib/typescript/lib/module/ConsentUiBuilder.d.ts +1 -0
- package/lib/typescript/lib/module/ConsentUiBuilder.d.ts.map +1 -1
- package/lib/typescript/lib/module/actions.d.ts.map +1 -1
- package/lib/typescript/lib/module/commands.d.ts +1 -1
- package/lib/typescript/lib/module/commands.d.ts.map +1 -1
- package/lib/typescript/lib/module/components/Button.d.ts.map +1 -1
- package/lib/typescript/lib/module/constants.d.ts.map +1 -1
- package/lib/typescript/lib/module/context.d.ts +9 -1
- package/lib/typescript/lib/module/context.d.ts.map +1 -1
- package/lib/typescript/lib/module/flavors/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/constants.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/gpp/api.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/gpp/consent.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/gpp/encoders/AbstractBase64UrlEncoder.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/gpp/v1/constants.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/gpp/v1/index.d.ts +1 -3
- package/lib/typescript/lib/module/iab/gpp/v1/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/tcf/consent.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/tcf/constants.d.ts +41 -1
- package/lib/typescript/lib/module/iab/tcf/constants.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/tcf/iab-storage-utils.d.ts +8 -0
- package/lib/typescript/lib/module/iab/tcf/iab-storage-utils.d.ts.map +1 -0
- package/lib/typescript/lib/module/iab/tcf/index.d.ts +0 -2
- package/lib/typescript/lib/module/iab/tcf/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/tcf/middleware.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/tcf/reducer.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/tcf/selectors.d.ts +0 -1
- package/lib/typescript/lib/module/iab/tcf/selectors.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/tcf/v2.0/index.d.ts +0 -2
- package/lib/typescript/lib/module/iab/tcf/v2.0/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/tcf/v2.0/shared-constants.d.ts +0 -1
- package/lib/typescript/lib/module/iab/tcf/v2.0/shared-constants.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/tcf/v2.0/tcfcav1-constants.d.ts +5 -2
- package/lib/typescript/lib/module/iab/tcf/v2.0/tcfcav1-constants.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/tcf/v2.0/tcfeuv2-constants.d.ts +0 -1
- package/lib/typescript/lib/module/iab/tcf/v2.0/tcfeuv2-constants.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/usp/api.d.ts +1 -1
- package/lib/typescript/lib/module/iab/usp/api.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/usp/consent.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/usp/selectors.d.ts +1 -4
- package/lib/typescript/lib/module/iab/usp/selectors.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/usp/v1/constants.d.ts.map +1 -1
- package/lib/typescript/lib/module/iab/usp/v1/index.d.ts +1 -1
- package/lib/typescript/lib/module/iab/usp/v1/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/index.d.ts +1 -0
- package/lib/typescript/lib/module/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/native/OsanoCmp.d.ts +4 -0
- package/lib/typescript/lib/module/native/OsanoCmp.d.ts.map +1 -1
- package/lib/typescript/lib/module/reducer.d.ts +7 -1
- package/lib/typescript/lib/module/reducer.d.ts.map +1 -1
- package/lib/typescript/lib/module/services/google-consent-mode-mapper.d.ts +71 -0
- package/lib/typescript/lib/module/services/google-consent-mode-mapper.d.ts.map +1 -0
- package/lib/typescript/lib/module/types/google-consent-mode.d.ts +38 -0
- package/lib/typescript/lib/module/types/google-consent-mode.d.ts.map +1 -0
- package/lib/typescript/lib/module/utils/OsanoLogger.d.ts +15 -0
- package/lib/typescript/lib/module/utils/OsanoLogger.d.ts.map +1 -0
- package/lib/typescript/lib/module/utils/Translator.d.ts +1 -1
- package/lib/typescript/lib/module/utils/Translator.d.ts.map +1 -1
- package/lib/typescript/lib/module/utils/index.d.ts +1 -0
- package/lib/typescript/src/ConsentManager.d.ts +23 -7
- package/lib/typescript/src/ConsentManager.d.ts.map +1 -1
- package/lib/typescript/src/ConsentUiBuilder.d.ts +1 -1
- package/lib/typescript/src/ConsentUiBuilder.d.ts.map +1 -1
- package/lib/typescript/src/commands.d.ts.map +1 -1
- package/lib/typescript/src/components/Button.d.ts +1 -1
- package/lib/typescript/src/components/Button.d.ts.map +1 -1
- package/lib/typescript/src/components/Divider.d.ts.map +1 -1
- package/lib/typescript/src/components/ExpansionPanel.d.ts.map +1 -1
- package/lib/typescript/src/components/Link.d.ts.map +1 -1
- package/lib/typescript/src/components/Locale.d.ts.map +1 -1
- package/lib/typescript/src/components/StoragePolicyLink.d.ts.map +1 -1
- package/lib/typescript/src/components/Toggle.d.ts.map +1 -1
- package/lib/typescript/src/context.d.ts +4 -2
- package/lib/typescript/src/context.d.ts.map +1 -1
- package/lib/typescript/src/iab/actions.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/api.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/consent.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/encoders/AbstractBase64UrlEncoder.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/encoders/BooleanEncoder.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/encoders/DatetimeEncoder.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/encoders/FibonacciIntegerEncoder.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/encoders/FibonacciIntegerRangeEncoder.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedBitfieldEncoder.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedIntegerEncoder.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedIntegerListEncoder.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedIntegerRangeEncoder.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedStringEncoder.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/v1/constants.d.ts.map +1 -1
- package/lib/typescript/src/iab/gpp/v1/index.d.ts +1 -3
- package/lib/typescript/src/iab/gpp/v1/index.d.ts.map +1 -1
- package/lib/typescript/src/iab/index.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/actions.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/consent.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/constants.d.ts +32 -0
- package/lib/typescript/src/iab/tcf/constants.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/helpers.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/iab-storage-utils.d.ts +24 -0
- package/lib/typescript/src/iab/tcf/iab-storage-utils.d.ts.map +1 -0
- package/lib/typescript/src/iab/tcf/middleware.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/reducer.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/selectors.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/v2.0/formatters.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/v2.0/shared-constants.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/v2.0/tcfcav1-constants.d.ts.map +1 -1
- package/lib/typescript/src/iab/tcf/v2.0/tcfeuv2-constants.d.ts.map +1 -1
- package/lib/typescript/src/iab/usp/api.d.ts +1 -1
- package/lib/typescript/src/iab/usp/api.d.ts.map +1 -1
- package/lib/typescript/src/iab/usp/consent.d.ts.map +1 -1
- package/lib/typescript/src/iab/usp/selectors.d.ts +1 -4
- package/lib/typescript/src/iab/usp/selectors.d.ts.map +1 -1
- package/lib/typescript/src/iab/usp/v1/constants.d.ts.map +1 -1
- package/lib/typescript/src/iab/usp/v1/index.d.ts +1 -1
- package/lib/typescript/src/iab/usp/v1/index.d.ts.map +1 -1
- package/lib/typescript/src/iab/utilities.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/native/OsanoCmp.d.ts +4 -0
- package/lib/typescript/src/native/OsanoCmp.d.ts.map +1 -1
- package/lib/typescript/src/reducer.d.ts.map +1 -1
- package/lib/typescript/src/selectors.d.ts.map +1 -1
- package/lib/typescript/src/services/consent.d.ts +1 -1
- package/lib/typescript/src/services/consent.d.ts.map +1 -1
- package/lib/typescript/src/services/google-consent-mode-mapper.d.ts +66 -0
- package/lib/typescript/src/services/google-consent-mode-mapper.d.ts.map +1 -0
- package/lib/typescript/src/styles.d.ts.map +1 -1
- package/lib/typescript/src/types/google-consent-mode.d.ts +77 -0
- package/lib/typescript/src/types/google-consent-mode.d.ts.map +1 -0
- package/lib/typescript/src/utils/Color.d.ts.map +1 -1
- package/lib/typescript/src/utils/OsanoLogger.d.ts +15 -0
- package/lib/typescript/src/utils/OsanoLogger.d.ts.map +1 -0
- package/lib/typescript/src/utils/index.d.ts +1 -0
- package/lib/typescript/src/utils/index.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/ConsentManager.ts +93 -25
- package/src/ConsentUiBuilder.tsx +23 -13
- package/src/commands.ts +11 -8
- package/src/components/Button.tsx +17 -17
- package/src/context.ts +6 -3
- package/src/iab/tcf/constants.ts +46 -0
- package/src/iab/tcf/iab-storage-utils.ts +166 -0
- package/src/iab/tcf/middleware.ts +43 -51
- package/src/index.tsx +35 -8
- package/src/locale/af.json +342 -323
- package/src/locale/ar.json +342 -323
- package/src/locale/bg.json +342 -323
- package/src/locale/ca.json +342 -323
- package/src/locale/cs.json +342 -323
- package/src/locale/da.json +342 -323
- package/src/locale/de-at.json +342 -323
- package/src/locale/de.json +342 -323
- package/src/locale/el.json +342 -323
- package/src/locale/en-au.json +342 -323
- package/src/locale/en-ca.json +342 -323
- package/src/locale/en-gb.json +342 -323
- package/src/locale/en.json +342 -323
- package/src/locale/es-mx.json +342 -323
- package/src/locale/es.json +342 -323
- package/src/locale/et.json +342 -323
- package/src/locale/fa.json +342 -323
- package/src/locale/fi.json +342 -323
- package/src/locale/fr-ca.json +342 -323
- package/src/locale/fr.json +342 -323
- package/src/locale/gd.json +342 -323
- package/src/locale/he.json +342 -323
- package/src/locale/hi.json +342 -323
- package/src/locale/hr.json +342 -323
- package/src/locale/hu.json +342 -323
- package/src/locale/hy.json +342 -323
- package/src/locale/id.json +342 -323
- package/src/locale/is.json +342 -323
- package/src/locale/it.json +342 -323
- package/src/locale/ja.json +342 -323
- package/src/locale/kk.json +342 -323
- package/src/locale/ko.json +342 -323
- package/src/locale/lt.json +342 -323
- package/src/locale/lv.json +342 -323
- package/src/locale/mi.json +342 -323
- package/src/locale/ms.json +342 -323
- package/src/locale/nb.json +342 -323
- package/src/locale/nl-be.json +342 -323
- package/src/locale/nl.json +342 -323
- package/src/locale/nn.json +342 -323
- package/src/locale/no.json +342 -323
- package/src/locale/pl.json +342 -323
- package/src/locale/pt-br.json +342 -323
- package/src/locale/pt.json +342 -323
- package/src/locale/ro.json +342 -323
- package/src/locale/ru.json +342 -323
- package/src/locale/sk.json +342 -323
- package/src/locale/sl.json +342 -323
- package/src/locale/sq.json +342 -323
- package/src/locale/sr.json +342 -323
- package/src/locale/sv.json +342 -323
- package/src/locale/th.json +342 -323
- package/src/locale/tl.json +342 -323
- package/src/locale/tr.json +342 -323
- package/src/locale/uk.json +342 -323
- package/src/locale/vi.json +342 -323
- package/src/locale/zh-hk.json +342 -323
- package/src/locale/zh-tw.json +342 -323
- package/src/locale/zh.json +342 -323
- package/src/locale/zu.json +342 -323
- package/src/native/OsanoCmp.ts +29 -0
- package/src/services/consent.ts +9 -8
- package/src/services/google-consent-mode-mapper.ts +122 -0
- package/src/types/google-consent-mode.ts +122 -0
- package/src/types/index.d.ts +4 -2
- package/src/utils/OsanoLogger.ts +53 -0
- package/src/utils/index.ts +2 -0
package/src/native/OsanoCmp.ts
CHANGED
|
@@ -30,3 +30,32 @@ export function getStorage(key: string): Promise<string | null | undefined> {
|
|
|
30
30
|
export function clearStorage(key: string): Promise<void> {
|
|
31
31
|
return OsanoCmp.clearStorage(key);
|
|
32
32
|
}
|
|
33
|
+
export function setStorageToDefault(
|
|
34
|
+
key: string,
|
|
35
|
+
value: string,
|
|
36
|
+
): Promise<string> {
|
|
37
|
+
return OsanoCmp.setStorageToDefault
|
|
38
|
+
? OsanoCmp.setStorageToDefault(key, value)
|
|
39
|
+
: Promise.resolve(value);
|
|
40
|
+
}
|
|
41
|
+
export function setIntStorageToDefault(
|
|
42
|
+
key: string,
|
|
43
|
+
value: number,
|
|
44
|
+
): Promise<number> {
|
|
45
|
+
return OsanoCmp.setIntStorageToDefault
|
|
46
|
+
? OsanoCmp.setIntStorageToDefault(key, value)
|
|
47
|
+
: Promise.resolve(value);
|
|
48
|
+
}
|
|
49
|
+
export function setBoolStorageToDefault(
|
|
50
|
+
key: string,
|
|
51
|
+
value: boolean,
|
|
52
|
+
): Promise<boolean> {
|
|
53
|
+
return OsanoCmp.setBoolStorageToDefault
|
|
54
|
+
? OsanoCmp.setBoolStorageToDefault(key, value)
|
|
55
|
+
: Promise.resolve(value);
|
|
56
|
+
}
|
|
57
|
+
export function clearStorageFromDefault(key: string): Promise<void> {
|
|
58
|
+
return OsanoCmp.clearStorageFromDefault
|
|
59
|
+
? OsanoCmp.clearStorageFromDefault(key)
|
|
60
|
+
: Promise.resolve();
|
|
61
|
+
}
|
package/src/services/consent.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
+
import { sha512 } from 'js-sha512';
|
|
2
|
+
import { Platform } from 'react-native';
|
|
3
|
+
import { TextEncoder } from 'text-encoding';
|
|
4
|
+
import type { ConsentManager } from '../ConsentManager';
|
|
1
5
|
import {
|
|
2
6
|
ConsentCategory,
|
|
3
7
|
ConsentCategory as ConsentCategoryType,
|
|
8
|
+
env,
|
|
4
9
|
} from '../constants';
|
|
5
10
|
import { clearStorage, getStorage, setStorage } from '../native/OsanoCmp';
|
|
6
|
-
|
|
7
|
-
import API from '../utils/API';
|
|
8
11
|
import type { Config } from '../types/consent-config';
|
|
9
|
-
import type { ConsentManager } from '../ConsentManager';
|
|
10
|
-
import { Platform } from 'react-native';
|
|
11
|
-
import { TextEncoder } from 'text-encoding';
|
|
12
|
-
import { env } from '../constants';
|
|
13
12
|
import { merge } from '../utils';
|
|
14
|
-
import
|
|
13
|
+
import API from '../utils/API';
|
|
14
|
+
import { osanoLogger } from '../utils/OsanoLogger';
|
|
15
15
|
|
|
16
16
|
const Buffer = require('buffer').Buffer;
|
|
17
17
|
|
|
@@ -270,6 +270,7 @@ export const fetchConsent = async (cmp: ConsentManager) => {
|
|
|
270
270
|
ConsentCategoryType[category as keyof typeof ConsentCategoryType],
|
|
271
271
|
);
|
|
272
272
|
await storeConsent(cmp, remoteConsentCategories);
|
|
273
|
+
|
|
273
274
|
return remoteConsentCategories;
|
|
274
275
|
}
|
|
275
276
|
} catch (error) {
|
|
@@ -278,7 +279,7 @@ export const fetchConsent = async (cmp: ConsentManager) => {
|
|
|
278
279
|
|
|
279
280
|
return consent;
|
|
280
281
|
} catch (error) {
|
|
281
|
-
|
|
282
|
+
osanoLogger.error('Error fetching consent:', error as Error);
|
|
282
283
|
// Consent not found or network/server error.
|
|
283
284
|
const consent = await retrieveConsent(cmp);
|
|
284
285
|
return consent;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { ConsentCategory } from '../constants';
|
|
2
|
+
import type { GoogleConsentMap } from '../types/google-consent-mode';
|
|
3
|
+
import {
|
|
4
|
+
GoogleConsentMapImpl,
|
|
5
|
+
GoogleConsentParameter,
|
|
6
|
+
GoogleConsentStatus,
|
|
7
|
+
} from '../types/google-consent-mode';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Google Consent Mode Category Mapper
|
|
11
|
+
*
|
|
12
|
+
* Converts Osano consent categories to Google Consent Mode v2 parameters.
|
|
13
|
+
*
|
|
14
|
+
* **Mapping Logic (matching iOS/Android SDKs):**
|
|
15
|
+
* - ANALYTICS category → analytics_storage parameter
|
|
16
|
+
* - MARKETING category → ad_storage, ad_user_data, ad_personalization parameters
|
|
17
|
+
*
|
|
18
|
+
* All Google Consent Mode parameters default to "denied" until explicitly granted through category mapping.
|
|
19
|
+
*/
|
|
20
|
+
export class GoogleConsentModeMapper {
|
|
21
|
+
private static readonly GOOGLE_CATEGORIES_MAP: Record<
|
|
22
|
+
string,
|
|
23
|
+
GoogleConsentParameter[]
|
|
24
|
+
> = {
|
|
25
|
+
[ConsentCategory.ANALYTICS]: [GoogleConsentParameter.ANALYTICS_STORAGE],
|
|
26
|
+
[ConsentCategory.MARKETING]: [
|
|
27
|
+
GoogleConsentParameter.AD_STORAGE,
|
|
28
|
+
GoogleConsentParameter.AD_USER_DATA,
|
|
29
|
+
GoogleConsentParameter.AD_PERSONALIZATION,
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Build a Google Consent Map from a set of Osano consent categories
|
|
35
|
+
*
|
|
36
|
+
* @param categories - Set of Osano consent categories that the user has granted
|
|
37
|
+
* @returns GoogleConsentMap with appropriate Google Consent Mode v2 parameters
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const categories = new Set([ConsentCategory.ANALYTICS, ConsentCategory.MARKETING]);
|
|
42
|
+
* const consentMap = GoogleConsentModeMapper.buildGoogleConsentMap(categories);
|
|
43
|
+
*
|
|
44
|
+
* // Results in:
|
|
45
|
+
* // {
|
|
46
|
+
* // analytics_storage: 'granted',
|
|
47
|
+
* // ad_storage: 'granted',
|
|
48
|
+
* // ad_user_data: 'granted',
|
|
49
|
+
* // ad_personalization: 'granted'
|
|
50
|
+
* // }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
static buildGoogleConsentMap(
|
|
54
|
+
categories: Set<ConsentCategory>,
|
|
55
|
+
): GoogleConsentMap {
|
|
56
|
+
// Initialize all parameters to DENIED by default
|
|
57
|
+
const consentMap: Record<GoogleConsentParameter, GoogleConsentStatus> = {
|
|
58
|
+
[GoogleConsentParameter.ANALYTICS_STORAGE]: GoogleConsentStatus.DENIED,
|
|
59
|
+
[GoogleConsentParameter.AD_STORAGE]: GoogleConsentStatus.DENIED,
|
|
60
|
+
[GoogleConsentParameter.AD_USER_DATA]: GoogleConsentStatus.DENIED,
|
|
61
|
+
[GoogleConsentParameter.AD_PERSONALIZATION]: GoogleConsentStatus.DENIED,
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// Apply GRANTED status for mapped categories
|
|
65
|
+
categories.forEach((category) => {
|
|
66
|
+
const googleParameters = this.GOOGLE_CATEGORIES_MAP[category];
|
|
67
|
+
|
|
68
|
+
if (googleParameters) {
|
|
69
|
+
googleParameters.forEach((parameter) => {
|
|
70
|
+
consentMap[parameter] = GoogleConsentStatus.GRANTED;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
return this.createGoogleConsentMap(consentMap);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Create a GoogleConsentMap from a raw consent map
|
|
80
|
+
*
|
|
81
|
+
* @param consentMap - Raw mapping of Google Consent Mode parameters to status
|
|
82
|
+
* @returns GoogleConsentMap implementation with helper methods
|
|
83
|
+
*/
|
|
84
|
+
static createGoogleConsentMap(
|
|
85
|
+
consentMap: Record<GoogleConsentParameter, GoogleConsentStatus>,
|
|
86
|
+
): GoogleConsentMap {
|
|
87
|
+
return new GoogleConsentMapImpl(consentMap);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Check if a consent category is mapped to Google Consent Mode parameters
|
|
92
|
+
*
|
|
93
|
+
* @param category - Osano consent category to check
|
|
94
|
+
* @returns true if the category is mapped to Google Consent Mode parameters
|
|
95
|
+
*/
|
|
96
|
+
static isGoogleConsentCategory(category: ConsentCategory): boolean {
|
|
97
|
+
return category in this.GOOGLE_CATEGORIES_MAP;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Get Google Consent Mode parameters for a specific consent category
|
|
102
|
+
*
|
|
103
|
+
* @param category - Osano consent category
|
|
104
|
+
* @returns Array of Google Consent Mode parameters mapped to this category
|
|
105
|
+
*/
|
|
106
|
+
static getGoogleParametersForCategory(
|
|
107
|
+
category: ConsentCategory,
|
|
108
|
+
): GoogleConsentParameter[] {
|
|
109
|
+
return this.GOOGLE_CATEGORIES_MAP[category] || [];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Get readonly copy of the categories mapping
|
|
114
|
+
*
|
|
115
|
+
* @returns Readonly mapping of Osano categories to Google Consent Mode parameters
|
|
116
|
+
*/
|
|
117
|
+
static getCategoriesMapping(): Readonly<
|
|
118
|
+
Record<string, GoogleConsentParameter[]>
|
|
119
|
+
> {
|
|
120
|
+
return Object.freeze({ ...this.GOOGLE_CATEGORIES_MAP });
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google Consent Mode v2 parameters as defined by Google
|
|
3
|
+
* @see https://developers.google.com/tag-platform/security/guides/consent?consentmode=advanced
|
|
4
|
+
*/
|
|
5
|
+
export enum GoogleConsentParameter {
|
|
6
|
+
ANALYTICS_STORAGE = 'analytics_storage',
|
|
7
|
+
AD_STORAGE = 'ad_storage',
|
|
8
|
+
AD_USER_DATA = 'ad_user_data',
|
|
9
|
+
AD_PERSONALIZATION = 'ad_personalization',
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Google Consent Mode v2 status values
|
|
14
|
+
*/
|
|
15
|
+
export enum GoogleConsentStatus {
|
|
16
|
+
GRANTED = 'granted',
|
|
17
|
+
DENIED = 'denied',
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Immutable consent map that provides Google Consent Mode v2 parameters
|
|
22
|
+
* with their corresponding status values and helper methods.
|
|
23
|
+
*/
|
|
24
|
+
export interface GoogleConsentMap {
|
|
25
|
+
readonly consentMap: Record<GoogleConsentParameter, GoogleConsentStatus>;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Convert the consent map to a string-based record for easier Firebase integration
|
|
29
|
+
* @returns Object with string keys and string values
|
|
30
|
+
*/
|
|
31
|
+
toStringMap(): Record<string, string>;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Check if analytics storage consent is granted
|
|
35
|
+
* @returns true if analytics_storage is granted
|
|
36
|
+
*/
|
|
37
|
+
isAnalyticsStorageGranted(): boolean;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Check if ad storage consent is granted
|
|
41
|
+
* @returns true if ad_storage is granted
|
|
42
|
+
*/
|
|
43
|
+
isAdStorageGranted(): boolean;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Check if ad user data consent is granted
|
|
47
|
+
* @returns true if ad_user_data is granted
|
|
48
|
+
*/
|
|
49
|
+
isAdUserDataGranted(): boolean;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Check if ad personalization consent is granted
|
|
53
|
+
* @returns true if ad_personalization is granted
|
|
54
|
+
*/
|
|
55
|
+
isAdPersonalizationGranted(): boolean;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Callback function type for Google Consent Mode updates
|
|
60
|
+
*
|
|
61
|
+
* This callback is triggered whenever consent status changes and provides
|
|
62
|
+
* the Google Consent Mode v2 parameters in a format ready for Firebase integration.
|
|
63
|
+
*
|
|
64
|
+
* @param consentMap - Object containing the four Google Consent Mode v2 parameters:
|
|
65
|
+
* - "analytics_storage": "granted" or "denied"
|
|
66
|
+
* - "ad_storage": "granted" or "denied"
|
|
67
|
+
* - "ad_user_data": "granted" or "denied"
|
|
68
|
+
* - "ad_personalization": "granted" or "denied"
|
|
69
|
+
*/
|
|
70
|
+
export interface GoogleConsentModeCallback {
|
|
71
|
+
(consentMap: Record<string, string>): void;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Concrete implementation of GoogleConsentMap interface
|
|
76
|
+
*/
|
|
77
|
+
export class GoogleConsentMapImpl implements GoogleConsentMap {
|
|
78
|
+
readonly consentMap: Record<GoogleConsentParameter, GoogleConsentStatus>;
|
|
79
|
+
|
|
80
|
+
constructor(consentMap: Record<GoogleConsentParameter, GoogleConsentStatus>) {
|
|
81
|
+
// Create immutable copy
|
|
82
|
+
this.consentMap = Object.freeze({ ...consentMap });
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
toStringMap(): Record<string, string> {
|
|
86
|
+
const stringMap: Record<string, string> = {};
|
|
87
|
+
|
|
88
|
+
Object.entries(this.consentMap).forEach(([parameter, status]) => {
|
|
89
|
+
stringMap[parameter] = status;
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
return stringMap;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
isAnalyticsStorageGranted(): boolean {
|
|
96
|
+
return (
|
|
97
|
+
this.consentMap[GoogleConsentParameter.ANALYTICS_STORAGE] ===
|
|
98
|
+
GoogleConsentStatus.GRANTED
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
isAdStorageGranted(): boolean {
|
|
103
|
+
return (
|
|
104
|
+
this.consentMap[GoogleConsentParameter.AD_STORAGE] ===
|
|
105
|
+
GoogleConsentStatus.GRANTED
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
isAdUserDataGranted(): boolean {
|
|
110
|
+
return (
|
|
111
|
+
this.consentMap[GoogleConsentParameter.AD_USER_DATA] ===
|
|
112
|
+
GoogleConsentStatus.GRANTED
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
isAdPersonalizationGranted(): boolean {
|
|
117
|
+
return (
|
|
118
|
+
this.consentMap[GoogleConsentParameter.AD_PERSONALIZATION] ===
|
|
119
|
+
GoogleConsentStatus.GRANTED
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
}
|
package/src/types/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type {
|
|
|
6
6
|
} from '../iab/tcf/types';
|
|
7
7
|
import type { IabFrameworkType } from '../iab/types';
|
|
8
8
|
import type { Palette } from './consent-config';
|
|
9
|
-
|
|
9
|
+
import type { GoogleConsentModeCallback } from './google-consent-mode';
|
|
10
10
|
|
|
11
11
|
export type OsanoOverrides = {
|
|
12
12
|
flavor?: FlavorKeys;
|
|
@@ -30,6 +30,8 @@ export interface OsanoProps {
|
|
|
30
30
|
onConfigLoadFailure?: () => void;
|
|
31
31
|
onLangLoadSuccess?: () => void;
|
|
32
32
|
onLangLoadFailure?: () => void;
|
|
33
|
+
onGoogleConsentUpdate?: GoogleConsentModeCallback;
|
|
33
34
|
overrides?: OsanoOverrides;
|
|
34
|
-
extUsrData?: string
|
|
35
|
+
extUsrData?: string;
|
|
36
|
+
setLoggingEnabled?: boolean;
|
|
35
37
|
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export class OsanoLogger {
|
|
2
|
+
private readonly TAG = 'OsanoSDK';
|
|
3
|
+
private isEnabled = true;
|
|
4
|
+
|
|
5
|
+
setEnabled(enabled: boolean): void {
|
|
6
|
+
this.isEnabled = enabled;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
getEnabled(): boolean {
|
|
10
|
+
return this.isEnabled;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
error(message: string, error?: Error): void {
|
|
14
|
+
// Always log errors regardless of enabled state
|
|
15
|
+
if (error) {
|
|
16
|
+
console.error(`[${this.TAG}] ${message}`, error);
|
|
17
|
+
} else {
|
|
18
|
+
console.error(`[${this.TAG}] ${message}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
warn(message: string): void {
|
|
23
|
+
if (!this.isEnabled) return;
|
|
24
|
+
console.warn(`[${this.TAG}] ${message}`);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
info(message: string): void {
|
|
28
|
+
if (!this.isEnabled) return;
|
|
29
|
+
console.info(`[${this.TAG}] ${message}`);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
debug(message: string): void {
|
|
33
|
+
if (!this.isEnabled) return;
|
|
34
|
+
console.debug(`[${this.TAG}] ${message}`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
verbose(message: string): void {
|
|
38
|
+
if (!this.isEnabled) return;
|
|
39
|
+
console.log(`[${this.TAG}-VERBOSE] ${message}`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
metric(name: string, durationMs: number): void {
|
|
43
|
+
if (!this.isEnabled) return;
|
|
44
|
+
console.info(`[${this.TAG}-Metrics] ${name}: ${durationMs} ms`);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
log(message: string): void {
|
|
48
|
+
if (!this.isEnabled) return;
|
|
49
|
+
console.log(`[${this.TAG}] ${message}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export const osanoLogger = new OsanoLogger();
|