aesirx-analytics 2.2.19 → 2.2.21
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/{Consent-TGYEV2XV.js → Consent-OHFGKDZJ.js} +15 -12
- package/dist/{ConsentCustom-IBIHKHPV.js → ConsentCustom-UTTNESFI.js} +65 -62
- package/dist/analytics.js +96 -96
- package/dist/{chunk-ZC2ONV6W.js → chunk-AS3MN6ER.js} +430 -121
- package/dist/{chunk-EL2DBQXP.js → chunk-NTEWP6UQ.js} +467 -17
- package/dist/chunk-YOHHSMUP.js +182 -0
- package/dist/index.js +37 -26
- package/package.json +1 -1
- package/dist/chunk-UJTYOAT7.js +0 -464
@@ -1447,6 +1447,139 @@ var common_default8 = {
|
|
1447
1447
|
txt_details: "D\xE9tails"
|
1448
1448
|
};
|
1449
1449
|
|
1450
|
+
// src/translations/nl/common.json
|
1451
|
+
var common_default9 = {
|
1452
|
+
txt_tier_1_tier: "Laag 1",
|
1453
|
+
txt_tier_1_name: "Sessie-gebaseerd",
|
1454
|
+
txt_tier_1_levelname: "Basis",
|
1455
|
+
txt_tier_1_content: "Ideaal voor nieuwe bezoekers of als je niet wilt dat je gegevens na je huidige bezoek worden opgeslagen.",
|
1456
|
+
txt_tier_1_content_custom: "Voor een sessie van 30 minuten gebruiken we alleen gedragsgegevens (geen persoonlijke gegevens) om je browse-ervaring te verbeteren.",
|
1457
|
+
txt_tier_1_term: "Je stemt in met gegevensverzameling voor alleen een sessie van 30 minuten.",
|
1458
|
+
txt_tier_1_term_custom: "Privacy op basis van sessies van 30 minuten",
|
1459
|
+
txt_tier_1_upgrade: "Upgrade naar Laag 2 Toestemming - Medium",
|
1460
|
+
txt_tier_1_upgradetext: " & voeg een Web3 Wallet toe voor meer controle over gegevens en toestemming of herroep deze op elk gewenst moment.",
|
1461
|
+
txt_tier_2_tier: "Laag 2",
|
1462
|
+
txt_tier_2_name: "AesirX Privacy Schild",
|
1463
|
+
txt_tier_2_levelname: "Medium",
|
1464
|
+
txt_tier_2_content: "Ideaal voor gepersonaliseerde online ervaringen en veilige toestemmingsbeheer over sessies en platforms heen.",
|
1465
|
+
txt_tier_2_content_custom: "Geniet van gepersonaliseerde online ervaringen over meerdere sessies en platforms, met veilig toestemmingsbeheer.",
|
1466
|
+
txt_tier_2_term: "Je stemt in met gegevensgebruik over meerdere sessies heen.",
|
1467
|
+
txt_tier_2_term_custom: "Verbeterde digitale ervaringen met Privacy Schild",
|
1468
|
+
txt_tier_2_upgrade: "Upgrade naar Laag 3 Toestemming - Hoog",
|
1469
|
+
txt_tier_2_upgradetext: " & voeg Wallet-gebaseerde Gedecentraliseerde Toestemming toe om expliciete toestemming te geven voor gegevensverzameling en -verwerking voor de meest veilige, priv\xE9 en gepersonaliseerde ervaring.",
|
1470
|
+
txt_tier_3_tier: "Laag 3",
|
1471
|
+
txt_tier_3_name: "Gedecentraliseerde Wallet",
|
1472
|
+
txt_tier_3_levelname: "Hoog",
|
1473
|
+
txt_tier_3_content: "Gebruik je Web3 Wallet voor meer controle over je gegevens.",
|
1474
|
+
txt_tier_3_content_custom: "Geniet van meer privacy en meer controle over je gegevens met de optie om toestemming op elk moment in te trekken.",
|
1475
|
+
txt_tier_3_term: "Je stemt in met het gebruik van je gegevens, wat je op elk moment kunt herroepen.",
|
1476
|
+
txt_tier_3_term_custom: "Web3 Wallet Integratie",
|
1477
|
+
txt_tier_3_upgrade: "Upgrade naar Laag 4 Toestemming - Super Geavanceerd (onze hoogste laag!)",
|
1478
|
+
txt_tier_3_upgradetext: " & voeg AesirX Privacy Schild toe om expliciete toestemming te geven voor gegevensverzameling en -verwerking voor de meest veilige, priv\xE9 en gepersonaliseerde ervaring.",
|
1479
|
+
txt_tier_4_tier: "Laag 4",
|
1480
|
+
txt_tier_4_name: "Gecombineerde Wallet + AesirX Privacy Schild",
|
1481
|
+
txt_tier_4_levelname: "Super Geavanceerd",
|
1482
|
+
txt_tier_4_content: "Gebruik je Web3 Wallet + AesirX Privacy Schild & krijg volledige controle over het gebruik van je gegevens op meerdere sites. Geef toestemming of trek deze op elk moment in voor echte gedecentraliseerde eigendom van gegevens.",
|
1483
|
+
txt_tier_4_content_custom: "Combineer je Web3 Wallet met AesirX SoP voor volledige controle over meerdere sites & echte gedecentraliseerde eigendom van gegevens.",
|
1484
|
+
txt_tier_4_term: "Je stemt in met het gebruik van je gegevens, wat je op elk moment kunt herroepen.",
|
1485
|
+
txt_tier_4_term_custom: "Volledige Gegevenscontrole met Privacy Schild",
|
1486
|
+
txt_tier_4_upgradetext: "De meest gepersonaliseerde en privacybeschermende ervaring!",
|
1487
|
+
txt_show_details: "Toon details",
|
1488
|
+
txt_hide_details: "Verberg details",
|
1489
|
+
txt_no_collect: "We verzamelen geen persoonlijke gegevens, alleen gebruikersinzichten.",
|
1490
|
+
txt_shield_of_privacy: "Privacy Schild",
|
1491
|
+
txt_you_can_revoke: "Trek je toestemming voor gegevensgebruik in wanneer je wilt.",
|
1492
|
+
txt_go_to: "Ga naar",
|
1493
|
+
txt_link: "link",
|
1494
|
+
txt_for_more_information: "voor meer informatie.",
|
1495
|
+
txt_manage_consent: "Beheer Gedecentraliseerde Toestemming",
|
1496
|
+
txt_revoke_consent: "Trek Toestemming In",
|
1497
|
+
txt_yes_i_consent: "Toestemmen",
|
1498
|
+
txt_reject_consent: "Weigeren",
|
1499
|
+
txt_please_connect: "Verbind je Web3 wallet",
|
1500
|
+
txt_please_sign: "Onderteken het bericht tweemaal in je wallet en wacht tot het is opgeslagen.",
|
1501
|
+
txt_saving: "Opslaan...",
|
1502
|
+
txt_please_connect_your_wallet: "Verbind met je wallet",
|
1503
|
+
txt_connecting: "Verbinden",
|
1504
|
+
txt_here: "HIER",
|
1505
|
+
txt_visit: "Bezoek",
|
1506
|
+
txt_tracking_data_privacy: "VOLGEN EN GEGEVENSBESCHERMINGSVOORKEUREN",
|
1507
|
+
txt_consent: "Toestemming",
|
1508
|
+
txt_about: "Over",
|
1509
|
+
txt_detail: "Details",
|
1510
|
+
txt_consent_to_data: "Geef toestemming voor gegevensgebruik via Privacy Schild (SoP) voor volledige controle over je persoonlijke gegevens. Ervaar privacy-respecterende, veilige, & gepersonaliseerde browsing zonder cookies.",
|
1511
|
+
txt_ethical_compliant: "Ethisch & Conform :",
|
1512
|
+
txt_detail_1: "<span class='fw-semibold text-dark'>Revolutionaire Gegevenscontrole:</span> Geef jezelf de volledige controle over je gegevens.",
|
1513
|
+
txt_detail_2: "<span class='fw-semibold text-dark'>Jouw Gegevens Blijven Van Jou:</span> We garanderen dat je gegevens nooit worden verkocht of gedeeld.",
|
1514
|
+
txt_detail_3: "<span class='fw-semibold text-dark'>We Gebruiken Nooit Cookies:</span> Je content wordt gepersonaliseerd zonder het gebruik van cookies.",
|
1515
|
+
txt_understanding_your_consent: "Begrijp Je Toestemmingsniveaus",
|
1516
|
+
txt_this_website_uses: "Deze website gebruikt een revolutionair 4-Laags Gedecentraliseerd Toestemmingsmodel. Elke laag vertegenwoordigt een ander niveau van toestemming of toegang die gebruikers kunnen geven aan hun gegevens.",
|
1517
|
+
txt_about_1: "Naleving Gegarandeerd: Gebruik van SoP zorgt voor naleving van GDPR, CCPA, & andere privacywetten.",
|
1518
|
+
txt_about_2: "Flexibele Toestemming: Je kunt je toestemming op elk moment wijzigen of intrekken via onze <a class='text-success fw-semibold text-decoration-underline' href='https://dapp.shield.aesirx.io' target='_blank'>dApp</a>.",
|
1519
|
+
txt_about_3: "Meer Leren: Ontdek onze aanpak voor gegevensverwerking in ons <a class='text-success fw-semibold text-decoration-underline' href='https://aesirx.io/privacy-policy' target='_blank'>Privacybeleid</a>.",
|
1520
|
+
txt_about_4: "Voor Bedrijven: Vergroot vertrouwen, beveilig gebruikersidentiteiten, & voorkom inbreuken. Meer info op <a class='text-success fw-semibold text-decoration-underline' href='https://shield.aesirx.io' target='_blank'>https://shield.aesirx.io</a>.",
|
1521
|
+
txt_your_current_level: "Je huidige toestemmingsniveau is:",
|
1522
|
+
txt_upgrade_consent_to: "Upgrade Toestemming naar:",
|
1523
|
+
txt_upgrade_consent: "Upgrade Toestemming",
|
1524
|
+
txt_change_consent: "Gedecentraliseerde Toestemming",
|
1525
|
+
txt_upgrade_consent_text: "Upgrade je toestemmingsniveau & ontgrendel de volledige voordelen van Privacy Schild voor gepersonaliseerde, veilige, ID-geauthenticeerde digitale ervaringen.",
|
1526
|
+
txt_cancel: "Annuleren",
|
1527
|
+
txt_no_personal_data: "Er worden geen persoonlijke gegevens gedeeld of verkocht aan derden.",
|
1528
|
+
txt_manage_your_consent: "Beheer Je Toestemmingsvoorkeuren",
|
1529
|
+
txt_choose_how_we_use: "Kies hoe we je gegevens gebruiken: \u201CWeiger\u201D gegevensverzameling, sta tracking toe [\u201CToestemmen\u201D], of gebruik \u201CGedecentraliseerde Toestemming\u201D voor meer controle over je persoonlijke gegevens & beloningen.",
|
1530
|
+
txt_choose_how_we_use_simple: "Kies hoe we je gegevens gebruiken: \u201CWeiger\u201D gegevensverzameling, sta tracking toe [\u201CToestemmen\u201D].",
|
1531
|
+
txt_by_consenting: "Door toestemming te geven, sta je ons toe je gegevens te verzamelen & gebruiken voor:",
|
1532
|
+
txt_analytics_behavioral: "Analytics & Gedragsgegevens: Om onze diensten te verbeteren & je ervaring te personaliseren.",
|
1533
|
+
txt_form_data: "Formuliergegevens: Wanneer je contact met ons opneemt.",
|
1534
|
+
txt_please_note: "Let op",
|
1535
|
+
txt_we_do_not_share: "We delen je gegevens niet met derden zonder je uitdrukkelijke toestemming.",
|
1536
|
+
txt_you_can_opt_in: "Je kunt je later aanmelden voor specifieke functies zonder algemene toestemming te geven.",
|
1537
|
+
txt_for_more_details: "Raadpleeg voor meer informatie onze website <a class='text-success fw-semibold text-decoration-underline' href='https://aesirx.io/privacy-policy' target='_blank'>privacy policy.</a>",
|
1538
|
+
txt_benefit: "Voordelen",
|
1539
|
+
txt_control_your_data: "<span class='fw-semibold text-primary'>Controle over je gegevens:</span> Kies het niveau van gegevensverzameling en -tracering van je voorkeur.",
|
1540
|
+
txt_earn_rewards: "<span class='fw-semibold text-primary'>Earn rewards:</span> Neem deel aan gedecentraliseerde toestemming voor privacy & beloningen.",
|
1541
|
+
txt_transparent_data: "<span class='fw-semibold text-primary'>Transparante gegevensverzameling:</span> Begrijp hoe je gegevens worden verzameld en gebruikt.",
|
1542
|
+
txt_understanding_your_privacy: "Inzicht in je privacykeuzes",
|
1543
|
+
txt_reject_no_data: "<span class='fw-semibold text-primary'>Reject:</span> Er worden geen gegevens verzameld of geladen, behalve geanonimiseerde paginaweergaves en afwijzingen. Sommige personaliseringsfuncties kunnen worden uitgeschakeld.",
|
1544
|
+
txt_consent_first_third_party: "<span class='fw-semibold text-primary'>Consent:</span> Trackinggegevens van eerste en derde partijen worden verzameld om je ervaring te verbeteren.",
|
1545
|
+
txt_decentralizered_consent_choose: "<span class='fw-semibold text-primary'>Decentralized Consent:</span> Kies Decentrale Wallets of Decentrale Wallet + Privacyschild. Met beide opties kun je toestemming on-site of via de AesirX dApp beheren en intrekken, plus beloningen verdienen met digitale marketingactiviteiten.",
|
1546
|
+
txt_our_commitment_in_action: "Our Commitment in Action",
|
1547
|
+
txt_private_protection: "<span class='fw-semibold text-primary'>Privacy Protection:</span> Gebruikers hebben volledige controle over hun gegevens, waardoor ze verzekerd zijn van maximale privacy.",
|
1548
|
+
txt_enables_compliance: "<span class='fw-semibold text-primary'>Enables Compliance:</span> Het gebruik van het Privacy Shield (SoP) zorgt voor naleving van GDPR, CCPA, ePrivacy-richtlijn en andere regelgeving op het gebied van gegevensbescherming.",
|
1549
|
+
txt_proactive_protection: "<span class='fw-semibold text-primary'>Proactive Protection:</span> We verbeteren de privacymaatregelen om de integriteit van je gegevens te waarborgen.",
|
1550
|
+
txt_flexible_consent: "<span class='fw-semibold text-primary'>Flexible Consent:</span> Je kunt je toestemming te allen tijde on-site of via onze <a class='text-success fw-semibold text-decoration-underline' href='https://dapp.shield.aesirx.io' target='_blank'>dApp</a> (Decentralized Application).",
|
1551
|
+
txt_learn_more: "<span class='fw-semibold text-primary'>Learn More:</span> Ontdek onze benadering van gegevensverwerking in onze <a class='text-success fw-semibold text-decoration-underline' href='https://aesirx.io/privacy-policy' target='_blank'>Privacybeleid</a>.",
|
1552
|
+
txt_for_business: "<span class='fw-semibold text-primary'>Voor Bedrijven:</span> Versterk het vertrouwen, beveilig gebruikersidentiteiten en voorkom inbreuken.",
|
1553
|
+
txt_more_info_at: "Meer info op <a class='text-success fw-semibold text-decoration-underline' href='https://shield.aesirx.io' target='_blank'>https://shield.aesirx.io</a>.",
|
1554
|
+
txt_select_your_preferred: "Selecteer de optie voor gedecentraliseerde toestemming van je voorkeur:",
|
1555
|
+
txt_decentralized_wallet: "Gedecentraliseerde toestemming",
|
1556
|
+
txt_decentralized_wallet_will_be_loaded: "Gedecentraliseerde toestemming wordt geladen",
|
1557
|
+
txt_both_first_party_third_party: "Zowel trackinggegevens van de eerste partij als die van derden worden geactiveerd.",
|
1558
|
+
txt_all_consented_data_will_be_collected: "Alle gegevens waarvoor toestemming is gegeven, worden verzameld.",
|
1559
|
+
txt_users_can_revoke: "Gebruikers kunnen hun toestemming te allen tijde ter plaatse intrekken.",
|
1560
|
+
txt_decentralized_wallet_shield: "Gedecentraliseerde toestemming + privacyschild.",
|
1561
|
+
txt_users_can_revoke_dapp: "Gebruikers kunnen de toestemming op elk moment intrekken op locatie of vanuit de AesirX dApp.",
|
1562
|
+
txt_users_can_earn: "Gebruikers kunnen beloningen verdienen met digitale marketingactiviteiten.",
|
1563
|
+
txt_continue: "Ga verder",
|
1564
|
+
txt_back: "Terug",
|
1565
|
+
txt_you_have_chosen: "Je hebt ervoor gekozen om het verzamelen van gegevens af te wijzen:",
|
1566
|
+
txt_only_anonymized: "Alleen geanonimiseerde paginaweergaven & beperkte functies zullen beschikbaar zijn. Om toegang te krijgen tot alle websitefuncties, inclusief gepersonaliseerde inhoud & verbeterde functionaliteit, kies je een optie:",
|
1567
|
+
txt_consent_allow_data: "<span class='fw-semibold text-primary'>Consent:</span> Sta gegevensverzameling toe voor analytics, formuliergegevens (wanneer je contact met ons opneemt), & gedrags- en gebeurtenistracking, met de optie om je aan te melden voor specifieke functies.",
|
1568
|
+
txt_decentralized_consent_allow_data: "<span class='fw-semibold text-primary'>Decentralized Consent:</span> Sta het verzamelen van gegevens toe voor analyses, formuliergegevens (wanneer je contact met ons opneemt), & het volgen van gedrag en gebeurtenissen, met de optie om toestemming in te trekken, je aan te melden voor specifieke functies en beloningen te verdienen met digitale marketingactiviteiten.",
|
1569
|
+
txt_you_can_revoke_on_the_site: "Je kunt toestemming op de site of een expliciete opt-in toestemming, zoals betalingsverwerking, op elk moment intrekken",
|
1570
|
+
txt_revoke_opt_in: "Opt-in-toestemming intrekken",
|
1571
|
+
txt_revoke_opt_in_payment: "Opt-in toestemming voor betalingsverwerking intrekken",
|
1572
|
+
txt_revoke_opt_in_advisor: "Opt-in-toestemming intrekken voor AesirX Privacy Advisor AI",
|
1573
|
+
txt_revoke_consent_for_the_site: "Toestemming voor de site intrekken",
|
1574
|
+
txt_payment_notice: "Kennisgeving: Verwerking betaling.",
|
1575
|
+
txt_payment_1: "Deze service stelt cookies in en verzamelt gegevens om de verwerking van betalingsgateways te ondersteunen.",
|
1576
|
+
txt_payment_2: "Je aankoop afronden, <span class='fw-semibold'>bestel- & gebruikersgegevens</span> wordt gedeeld met <span class='fw-semibold'>Sellix & Stripe</span> als onze <span class='fw-semibold'>payment processors.</span> (*<span class='fw-semibold'>Google reCaptcha</span> wordt gebruikt door de <span class='fw-semibold'>payment processors</span> voor <span class='fw-semibold'>beveiliging</span> doeleinden.)",
|
1577
|
+
txt_payment_3: "Als u geen toestemming geeft voor het delen van deze gegevens, kunt u de betaling niet voltooien.",
|
1578
|
+
txt_payment_4: "Raadpleeg voor meer informatie onze <a target='_blank' rel='noopener noreferrer' href='https://aesirx.io/privacy-policy' class='text-success fw-semibold'>privacy policy</a>.",
|
1579
|
+
txt_consent_nanagement: "Toestemmingsbeheer",
|
1580
|
+
txt_details: "Details"
|
1581
|
+
};
|
1582
|
+
|
1450
1583
|
// src/translations/index.js
|
1451
1584
|
var appLanguages = {
|
1452
1585
|
en: common_default2,
|
@@ -1456,7 +1589,8 @@ var appLanguages = {
|
|
1456
1589
|
hr: common_default4,
|
1457
1590
|
uk: common_default6,
|
1458
1591
|
es: common_default3,
|
1459
|
-
fr: common_default8
|
1592
|
+
fr: common_default8,
|
1593
|
+
nl: common_default9
|
1460
1594
|
};
|
1461
1595
|
|
1462
1596
|
// src/utils/I18nextProvider.tsx
|
@@ -1495,6 +1629,10 @@ var defaultLanguages = {
|
|
1495
1629
|
fr: {
|
1496
1630
|
title: "Fran\xE7ais",
|
1497
1631
|
translation: common_default8
|
1632
|
+
},
|
1633
|
+
nl: {
|
1634
|
+
title: "Nederlands",
|
1635
|
+
translation: common_default9
|
1498
1636
|
}
|
1499
1637
|
};
|
1500
1638
|
var I18NextContext = createContext2({
|
@@ -1552,20 +1690,331 @@ var AnalyticsContextProvider = ({ children }) => {
|
|
1552
1690
|
};
|
1553
1691
|
var AnalyticsContextProvider_default = AnalyticsContextProvider;
|
1554
1692
|
|
1693
|
+
// src/lib/envHelper.ts
|
1694
|
+
var getHashKey = () => {
|
1695
|
+
let value = null;
|
1696
|
+
try {
|
1697
|
+
if (typeof process.env != "undefined") {
|
1698
|
+
value = process.env.SECURE_LOCAL_STORAGE_HASH_KEY || process.env.REACT_APP_SECURE_LOCAL_STORAGE_HASH_KEY || process.env.NEXT_PUBLIC_SECURE_LOCAL_STORAGE_HASH_KEY || process.env.VITE_SECURE_LOCAL_STORAGE_HASH_KEY;
|
1699
|
+
} else {
|
1700
|
+
console.warn(`react-secure-storage : process is not defined! Just a warning!`);
|
1701
|
+
}
|
1702
|
+
} catch (ex) {
|
1703
|
+
return null;
|
1704
|
+
}
|
1705
|
+
return value;
|
1706
|
+
};
|
1707
|
+
var getStoragePrefix = () => {
|
1708
|
+
let value = null;
|
1709
|
+
try {
|
1710
|
+
if (typeof process.env != "undefined") {
|
1711
|
+
value = process.env.SECURE_LOCAL_STORAGE_PREFIX || process.env.REACT_APP_SECURE_LOCAL_STORAGE_PREFIX || process.env.NEXT_PUBLIC_SECURE_LOCAL_STORAGE_PREFIX || process.env.VITE_SECURE_LOCAL_STORAGE_PREFIX;
|
1712
|
+
} else {
|
1713
|
+
console.warn(`react-secure-storage : process is not defined! Just a warning!`);
|
1714
|
+
}
|
1715
|
+
} catch (ex) {
|
1716
|
+
return null;
|
1717
|
+
}
|
1718
|
+
return value;
|
1719
|
+
};
|
1720
|
+
var getDisabledKeys = () => {
|
1721
|
+
let value = null;
|
1722
|
+
try {
|
1723
|
+
if (typeof process.env != "undefined") {
|
1724
|
+
value = process.env.SECURE_LOCAL_STORAGE_DISABLED_KEYS || process.env.REACT_APP_SECURE_LOCAL_STORAGE_DISABLED_KEYS || process.env.NEXT_PUBLIC_SECURE_LOCAL_STORAGE_DISABLED_KEYS || process.env.VITE_SECURE_LOCAL_STORAGE_DISABLED_KEYS;
|
1725
|
+
} else {
|
1726
|
+
console.warn(`react-secure-storage : process is not defined! Just a warning!`);
|
1727
|
+
}
|
1728
|
+
} catch (ex) {
|
1729
|
+
return null;
|
1730
|
+
}
|
1731
|
+
return value;
|
1732
|
+
};
|
1733
|
+
var envHelper = {
|
1734
|
+
getHashKey,
|
1735
|
+
getStoragePrefix,
|
1736
|
+
getDisabledKeys
|
1737
|
+
};
|
1738
|
+
var envHelper_default = envHelper;
|
1739
|
+
|
1740
|
+
// src/lib/fingerpint.lib.ts
|
1741
|
+
import murmurhash3_32_gc from "murmurhash-js/murmurhash3_gc";
|
1742
|
+
|
1743
|
+
// src/lib/utils.ts
|
1744
|
+
var FINGERPRINT_KEYS = {
|
1745
|
+
USERAGENT: "UserAgent",
|
1746
|
+
SCREEN_PRINT: "ScreenPrint",
|
1747
|
+
PLUGINS: "Plugins",
|
1748
|
+
FONTS: "Fonts",
|
1749
|
+
LOCAL_STORAGE: "LocalStorage",
|
1750
|
+
SESSION_STORAGE: "SessionStorage",
|
1751
|
+
TIMEZONE: "TimeZone",
|
1752
|
+
LANGUAGE: "Language",
|
1753
|
+
SYSTEM_LANGUAGE: "SystemLanguage",
|
1754
|
+
COOKIE: "Cookie",
|
1755
|
+
CANVAS: "Canvas",
|
1756
|
+
HOSTNAME: "Hostname"
|
1757
|
+
};
|
1758
|
+
var getDisabledKeys2 = () => {
|
1759
|
+
const DISABLED_KEYS = envHelper_default.getDisabledKeys() || "";
|
1760
|
+
if (DISABLED_KEYS === "")
|
1761
|
+
return [];
|
1762
|
+
const allOptions = [
|
1763
|
+
FINGERPRINT_KEYS.USERAGENT,
|
1764
|
+
FINGERPRINT_KEYS.SCREEN_PRINT,
|
1765
|
+
FINGERPRINT_KEYS.PLUGINS,
|
1766
|
+
FINGERPRINT_KEYS.FONTS,
|
1767
|
+
FINGERPRINT_KEYS.LOCAL_STORAGE,
|
1768
|
+
FINGERPRINT_KEYS.SESSION_STORAGE,
|
1769
|
+
FINGERPRINT_KEYS.TIMEZONE,
|
1770
|
+
FINGERPRINT_KEYS.LANGUAGE,
|
1771
|
+
FINGERPRINT_KEYS.SYSTEM_LANGUAGE,
|
1772
|
+
FINGERPRINT_KEYS.COOKIE,
|
1773
|
+
FINGERPRINT_KEYS.CANVAS,
|
1774
|
+
FINGERPRINT_KEYS.HOSTNAME
|
1775
|
+
];
|
1776
|
+
const response = [];
|
1777
|
+
DISABLED_KEYS.split("|").forEach((key) => {
|
1778
|
+
if (key === "") {
|
1779
|
+
console.log("test");
|
1780
|
+
} else if (allOptions.includes(key))
|
1781
|
+
response.push(key);
|
1782
|
+
else
|
1783
|
+
console.warn(
|
1784
|
+
`react-secure-storage : ${key} is not present in the available disabled keys options! Please go through the documentation`
|
1785
|
+
);
|
1786
|
+
});
|
1787
|
+
return response;
|
1788
|
+
};
|
1789
|
+
|
1790
|
+
// src/lib/fingerpint.lib.ts
|
1791
|
+
var ClientJS = class {
|
1792
|
+
//
|
1793
|
+
// MAIN METHODS
|
1794
|
+
//
|
1795
|
+
// Get Fingerprint. Return a 32-bit integer representing the browsers fingerprint.
|
1796
|
+
getFingerprint() {
|
1797
|
+
const bar = "|";
|
1798
|
+
const disabledKeys = getDisabledKeys2();
|
1799
|
+
let key = "";
|
1800
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.USERAGENT)) {
|
1801
|
+
key += navigator.userAgent + bar;
|
1802
|
+
}
|
1803
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.HOSTNAME)) {
|
1804
|
+
key += window.location.hostname + bar;
|
1805
|
+
}
|
1806
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.SCREEN_PRINT)) {
|
1807
|
+
key += this.getScreenPrint() + bar;
|
1808
|
+
}
|
1809
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.PLUGINS)) {
|
1810
|
+
key += this.getPlugins() + bar;
|
1811
|
+
}
|
1812
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.FONTS)) {
|
1813
|
+
key += this.getFonts() + bar;
|
1814
|
+
}
|
1815
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.LOCAL_STORAGE)) {
|
1816
|
+
key += this.isLocalStorage() + bar;
|
1817
|
+
}
|
1818
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.SESSION_STORAGE)) {
|
1819
|
+
key += this.isSessionStorage() + bar;
|
1820
|
+
}
|
1821
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.TIMEZONE)) {
|
1822
|
+
key += this.getTimeZone() + bar;
|
1823
|
+
}
|
1824
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.LANGUAGE)) {
|
1825
|
+
key += this.getLanguage() + bar;
|
1826
|
+
}
|
1827
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.SYSTEM_LANGUAGE)) {
|
1828
|
+
key += this.getSystemLanguage() + bar;
|
1829
|
+
}
|
1830
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.COOKIE)) {
|
1831
|
+
key += this.isCookie() + bar;
|
1832
|
+
}
|
1833
|
+
if (!disabledKeys.includes(FINGERPRINT_KEYS.CANVAS)) {
|
1834
|
+
key += this.getCanvasPrint();
|
1835
|
+
}
|
1836
|
+
if (key.endsWith(bar))
|
1837
|
+
key = key.substring(0, key.length - 1);
|
1838
|
+
const seed = 256;
|
1839
|
+
return murmurhash3_32_gc(key, seed);
|
1840
|
+
}
|
1841
|
+
//
|
1842
|
+
// SCREEN METHODS
|
1843
|
+
//
|
1844
|
+
// Get Screen Print. Return a string containing screen information.
|
1845
|
+
getScreenPrint() {
|
1846
|
+
return "Color Depth: " + this.getColorDepth() + ", Device XDPI: " + this.getDeviceXDPI() + ", Device YDPI: " + this.getDeviceYDPI();
|
1847
|
+
}
|
1848
|
+
// Get Color Depth. Return a string containing the color depth.
|
1849
|
+
getColorDepth() {
|
1850
|
+
return window.screen.colorDepth;
|
1851
|
+
}
|
1852
|
+
// Get Current Resolution. Return a string containing the current resolution.
|
1853
|
+
getCurrentResolution() {
|
1854
|
+
return window.screen.width + "x" + window.screen.height;
|
1855
|
+
}
|
1856
|
+
// Get Available Resolution. Return a string containing the available resolution.
|
1857
|
+
getAvailableResolution() {
|
1858
|
+
return window.screen.availWidth + "x" + window.screen.availHeight;
|
1859
|
+
}
|
1860
|
+
// Get Device XPDI. Return a string containing the device XPDI.
|
1861
|
+
getDeviceXDPI() {
|
1862
|
+
return "";
|
1863
|
+
}
|
1864
|
+
// Get Device YDPI. Return a string containing the device YDPI.
|
1865
|
+
getDeviceYDPI() {
|
1866
|
+
return "";
|
1867
|
+
}
|
1868
|
+
//
|
1869
|
+
// PLUGIN METHODS
|
1870
|
+
//
|
1871
|
+
// Get Plugins. Return a string containing a list of installed plugins.
|
1872
|
+
getPlugins() {
|
1873
|
+
let pluginsList = "";
|
1874
|
+
for (let i = 0; i < navigator.plugins.length; i++) {
|
1875
|
+
if (i === navigator.plugins.length - 1) {
|
1876
|
+
pluginsList += navigator.plugins[i].name;
|
1877
|
+
} else {
|
1878
|
+
pluginsList += navigator.plugins[i].name + ", ";
|
1879
|
+
}
|
1880
|
+
}
|
1881
|
+
return pluginsList;
|
1882
|
+
}
|
1883
|
+
//
|
1884
|
+
// FONT METHODS
|
1885
|
+
//
|
1886
|
+
// Get Fonts. Return a string containing a list of installed fonts.
|
1887
|
+
getFonts() {
|
1888
|
+
const fontString = "";
|
1889
|
+
return fontString;
|
1890
|
+
}
|
1891
|
+
//
|
1892
|
+
// STORAGE METHODS
|
1893
|
+
//
|
1894
|
+
// Is Local Storage. Check if local storage is enabled.
|
1895
|
+
isLocalStorage() {
|
1896
|
+
try {
|
1897
|
+
return !!localStorage;
|
1898
|
+
} catch (e2) {
|
1899
|
+
return true;
|
1900
|
+
}
|
1901
|
+
}
|
1902
|
+
// Is Session Storage. Check if session storage is enabled.
|
1903
|
+
isSessionStorage() {
|
1904
|
+
try {
|
1905
|
+
return !!sessionStorage;
|
1906
|
+
} catch (e2) {
|
1907
|
+
return true;
|
1908
|
+
}
|
1909
|
+
}
|
1910
|
+
// Is Cookie. Check if cookies are enabled.
|
1911
|
+
isCookie() {
|
1912
|
+
return navigator.cookieEnabled;
|
1913
|
+
}
|
1914
|
+
//
|
1915
|
+
// TIME METHODS
|
1916
|
+
//
|
1917
|
+
// Get Time Zone. Return a string containing the time zone.
|
1918
|
+
getTimeZone() {
|
1919
|
+
const rightNow = /* @__PURE__ */ new Date();
|
1920
|
+
let myNumber, formattedNumber, result;
|
1921
|
+
myNumber = String(-(rightNow.getTimezoneOffset() / 60));
|
1922
|
+
if (myNumber < 0) {
|
1923
|
+
myNumber = myNumber * -1;
|
1924
|
+
formattedNumber = ("0" + myNumber).slice(-2);
|
1925
|
+
result = "-" + formattedNumber;
|
1926
|
+
} else {
|
1927
|
+
formattedNumber = ("0" + myNumber).slice(-2);
|
1928
|
+
result = "+" + formattedNumber;
|
1929
|
+
}
|
1930
|
+
return result;
|
1931
|
+
}
|
1932
|
+
//
|
1933
|
+
// LANGUAGE METHODS
|
1934
|
+
//
|
1935
|
+
// Get Language. Return a string containing the user language.
|
1936
|
+
getLanguage() {
|
1937
|
+
return navigator.language;
|
1938
|
+
}
|
1939
|
+
// Get System Language. Return a string containing the system language.
|
1940
|
+
getSystemLanguage() {
|
1941
|
+
return navigator.language || window.navigator.language;
|
1942
|
+
}
|
1943
|
+
// Get Canvas Print. Return a string containing the canvas URI data.
|
1944
|
+
getCanvasPrint() {
|
1945
|
+
const canvas = document.createElement("canvas");
|
1946
|
+
let ctx;
|
1947
|
+
try {
|
1948
|
+
ctx = canvas.getContext("2d");
|
1949
|
+
} catch (e2) {
|
1950
|
+
return "";
|
1951
|
+
}
|
1952
|
+
const txt = "ClientJS,org <canvas> 1.0";
|
1953
|
+
ctx.textBaseline = "top";
|
1954
|
+
ctx.font = "14px 'Arial'";
|
1955
|
+
ctx.textBaseline = "alphabetic";
|
1956
|
+
ctx.fillStyle = "#f60";
|
1957
|
+
ctx.fillRect(125, 1, 62, 20);
|
1958
|
+
ctx.fillStyle = "#069";
|
1959
|
+
ctx.fillText(txt, 2, 15);
|
1960
|
+
ctx.fillStyle = "rgba(102, 204, 0, 0.7)";
|
1961
|
+
ctx.fillText(txt, 4, 17);
|
1962
|
+
return canvas.toDataURL();
|
1963
|
+
}
|
1964
|
+
};
|
1965
|
+
var clientJS = new ClientJS();
|
1966
|
+
var fingerpint_lib_default = clientJS;
|
1967
|
+
|
1968
|
+
// src/lib/fingerprint.ts
|
1969
|
+
var HASH_KEY = "E86E2612010258B35137";
|
1970
|
+
var getFingerprint = () => {
|
1971
|
+
const HASH_KEY_CUSTOM = envHelper_default.getHashKey() || HASH_KEY;
|
1972
|
+
if (typeof window === "undefined")
|
1973
|
+
return HASH_KEY_CUSTOM;
|
1974
|
+
return fingerpint_lib_default.getFingerprint() + HASH_KEY_CUSTOM;
|
1975
|
+
};
|
1976
|
+
var fingerprint_default = getFingerprint;
|
1977
|
+
|
1555
1978
|
// src/utils/consent.ts
|
1556
1979
|
import { stringMessage } from "@concordium/react-components";
|
1557
1980
|
import axios from "axios";
|
1558
|
-
|
1981
|
+
import Bowser from "bowser";
|
1982
|
+
var agreeConsents = async (endpoint, level, uuid, consent, wallet, signature, web3id, jwt, network = "concordium", gtagId, gtmId) => {
|
1559
1983
|
const url = `${endpoint}/consent/v1/level${level}/${uuid}`;
|
1560
1984
|
const urlV2 = `${endpoint}/consent/v2/level${level}/${uuid}`;
|
1561
1985
|
if (sessionStorage.getItem("consentGranted") !== "true") {
|
1562
|
-
gtagId && consentModeGrant(true, gtagId
|
1563
|
-
gtmId && consentModeGrant(false, gtmId
|
1986
|
+
gtagId && consentModeGrant(true, gtagId);
|
1987
|
+
gtmId && consentModeGrant(false, gtmId);
|
1564
1988
|
}
|
1989
|
+
const fingerprint = fingerprint_default();
|
1990
|
+
const { location, document: document2 } = window;
|
1991
|
+
const { pathname, search, origin } = location;
|
1992
|
+
const currentUrl = `${origin}${pathname}${search}`;
|
1993
|
+
const referer = document2.referrer ? document2.referrer : window["referer"] ? window["referer"] === "/" ? location.protocol + "//" + location.host : location.protocol + "//" + location.host + window["referer"] : "";
|
1994
|
+
const user_agent = window.navigator.userAgent;
|
1995
|
+
const browser = Bowser.parse(window.navigator.userAgent);
|
1996
|
+
const browser_name = browser?.browser?.name;
|
1997
|
+
const browser_version = browser?.browser?.version ?? "0";
|
1998
|
+
const lang = window.navigator["userLanguage"] || window.navigator.language;
|
1999
|
+
const device = browser?.platform?.model ?? browser?.platform?.type;
|
2000
|
+
const ip = "";
|
2001
|
+
const dataPayload = {
|
2002
|
+
fingerprint,
|
2003
|
+
url: currentUrl?.replace(/^(https?:\/\/)?(www\.)?/, "$1"),
|
2004
|
+
...referer && (referer !== currentUrl || document2.referrer) && {
|
2005
|
+
referer: referer !== currentUrl ? referer?.replace(/^(https?:\/\/)?(www\.)?/, "$1") : document2.referrer?.replace(/^(https?:\/\/)?(www\.)?/, "$1")
|
2006
|
+
},
|
2007
|
+
user_agent,
|
2008
|
+
ip,
|
2009
|
+
browser_name,
|
2010
|
+
browser_version,
|
2011
|
+
lang,
|
2012
|
+
device: device?.includes("iPhone") ? "mobile" : device?.includes("iPad") ? "tablet" : device
|
2013
|
+
};
|
1565
2014
|
try {
|
1566
2015
|
switch (level) {
|
1567
2016
|
case 1:
|
1568
|
-
await axios.post(`${url}/${consent}
|
2017
|
+
await axios.post(`${url}/${consent}`, { ...dataPayload });
|
1569
2018
|
break;
|
1570
2019
|
case 2:
|
1571
2020
|
await axios.post(
|
@@ -1582,7 +2031,8 @@ var agreeConsents = async (endpoint, level, uuid, consent, wallet, signature, we
|
|
1582
2031
|
case 3:
|
1583
2032
|
await axios.post(`${url}/${network}/${wallet}`, {
|
1584
2033
|
signature,
|
1585
|
-
consent
|
2034
|
+
consent,
|
2035
|
+
...dataPayload
|
1586
2036
|
});
|
1587
2037
|
break;
|
1588
2038
|
case 4:
|
@@ -1590,7 +2040,8 @@ var agreeConsents = async (endpoint, level, uuid, consent, wallet, signature, we
|
|
1590
2040
|
`${urlV2}/${network}/${wallet}`,
|
1591
2041
|
{
|
1592
2042
|
signature,
|
1593
|
-
consent
|
2043
|
+
consent,
|
2044
|
+
...dataPayload
|
1594
2045
|
},
|
1595
2046
|
{
|
1596
2047
|
headers: {
|
@@ -1607,19 +2058,17 @@ var agreeConsents = async (endpoint, level, uuid, consent, wallet, signature, we
|
|
1607
2058
|
throw error;
|
1608
2059
|
}
|
1609
2060
|
};
|
1610
|
-
var consentModeGrant = async (isGtag, id
|
2061
|
+
var consentModeGrant = async (isGtag, id) => {
|
1611
2062
|
async function gtag(p0, p1, p2) {
|
1612
2063
|
dataLayer.push(arguments);
|
1613
2064
|
}
|
1614
|
-
if (
|
1615
|
-
|
1616
|
-
|
1617
|
-
|
1618
|
-
|
1619
|
-
|
1620
|
-
|
1621
|
-
dataLayer.push({ "gtm.start": (/* @__PURE__ */ new Date()).getTime(), event: "gtm.js" });
|
1622
|
-
}
|
2065
|
+
if (isGtag && !document.querySelector(`script[src="https://www.googletagmanager.com/gtag/js?id=${id}"]`)) {
|
2066
|
+
await loadGtagScript(id);
|
2067
|
+
gtag("js", /* @__PURE__ */ new Date());
|
2068
|
+
gtag("config", `${id}`);
|
2069
|
+
} else if (!isGtag && !document.querySelector(`script[src="https://www.googletagmanager.com/gtm.js?id=${id}"]`)) {
|
2070
|
+
await loadGtmScript(id);
|
2071
|
+
dataLayer.push({ "gtm.start": (/* @__PURE__ */ new Date()).getTime(), event: "gtm.js" });
|
1623
2072
|
}
|
1624
2073
|
sessionStorage.setItem("consentGranted", "true");
|
1625
2074
|
gtag("consent", "update", {
|
@@ -1832,6 +2281,7 @@ export {
|
|
1832
2281
|
useTranslation,
|
1833
2282
|
AnalyticsContext,
|
1834
2283
|
AnalyticsContextProvider_default,
|
2284
|
+
fingerprint_default,
|
1835
2285
|
agreeConsents,
|
1836
2286
|
loadGtagScript,
|
1837
2287
|
loadGtmScript,
|