@becklyn/react-usercentrics 3.0.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.md ADDED
@@ -0,0 +1,15 @@
1
+ React.js Usercentrics
2
+ ====================
3
+
4
+
5
+ Usage
6
+ -----
7
+
8
+ Install this library into your project:
9
+
10
+ ```shell
11
+ npm i --save @mayd/react-usercentrics
12
+ ```
13
+
14
+ Wrap your application using the `UsercentricsProvider.tsx` or use the `useUsercentricsHook` directly.
15
+
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useUsercentrics = exports.UsercentricsProvider = exports.UsercentricsContext = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const hook_1 = require("../hook");
7
+ exports.UsercentricsContext = (0, react_1.createContext)({});
8
+ const UsercentricsProvider = (_a) => {
9
+ var { children } = _a, props = tslib_1.__rest(_a, ["children"]);
10
+ const data = (0, hook_1.useUsercentricsHook)(props);
11
+ return react_1.default.createElement(exports.UsercentricsContext.Provider, { value: data }, children);
12
+ };
13
+ exports.UsercentricsProvider = UsercentricsProvider;
14
+ const useUsercentrics = () => (0, react_1.useContext)(exports.UsercentricsContext);
15
+ exports.useUsercentrics = useUsercentrics;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useUsercentricsHook = void 0;
4
+ const react_1 = require("react");
5
+ const useUsercentricsHook = ({ windowEvent = "ucEvent", forceReload, debug, }) => {
6
+ var _a;
7
+ const [cmp, setCmp] = (0, react_1.useState)(null);
8
+ const [consentUpdate, setConsentUpdate] = (0, react_1.useState)(0);
9
+ const [serviceStates, setServiceStates] = (0, react_1.useState)({});
10
+ const incrementConsentUpdate = () => setConsentUpdate(prev => ++prev);
11
+ const isInitialized = !!((_a = cmp === null || cmp === void 0 ? void 0 : cmp.isInitialized) === null || _a === void 0 ? void 0 : _a.call(cmp));
12
+ (0, react_1.useEffect)(() => {
13
+ const onCmpEvent = (event) => {
14
+ if (["ACCEPT_ALL", "DENY_ALL", "SAVE"].includes(event.detail.type)) {
15
+ incrementConsentUpdate();
16
+ }
17
+ };
18
+ window.addEventListener("UC_UI_CMP_EVENT", onCmpEvent);
19
+ return () => window.removeEventListener("UC_UI_CMP_EVENT", onCmpEvent);
20
+ }, []);
21
+ (0, react_1.useEffect)(() => {
22
+ const onLoad = () => {
23
+ incrementConsentUpdate();
24
+ if (!window.UC_UI) {
25
+ return;
26
+ }
27
+ if (debug) {
28
+ console.log(window.UC_UI);
29
+ }
30
+ setCmp(window.UC_UI);
31
+ };
32
+ window.addEventListener("UC_UI_INITIALIZED", onLoad);
33
+ return () => window.removeEventListener("UC_UI_INITIALIZED", onLoad);
34
+ }, [debug]);
35
+ (0, react_1.useEffect)(() => {
36
+ const handleCustomEvent = (e) => {
37
+ const details = e.detail;
38
+ if (debug) {
39
+ console.log(details);
40
+ }
41
+ if (details.action !== "onInitialPageLoad") {
42
+ for (const key in details) {
43
+ const value = details[key];
44
+ if (serviceStates[key] !== value && (forceReload === null || forceReload === void 0 ? void 0 : forceReload[key]) === value) {
45
+ window.location.reload();
46
+ return;
47
+ }
48
+ }
49
+ }
50
+ setServiceStates(details);
51
+ };
52
+ const onUcEvent = ((e) => handleCustomEvent(e));
53
+ window.addEventListener(windowEvent, onUcEvent);
54
+ return () => window.removeEventListener(windowEvent, onUcEvent);
55
+ }, [debug, windowEvent, forceReload, serviceStates]);
56
+ const showFirstLayer = (0, react_1.useCallback)(() => {
57
+ if (!cmp || !isInitialized) {
58
+ return;
59
+ }
60
+ cmp.showFirstLayer();
61
+ }, [cmp, isInitialized]);
62
+ const showSecondLayer = (0, react_1.useCallback)((serviceId) => {
63
+ if (!cmp || !isInitialized) {
64
+ return;
65
+ }
66
+ cmp.showSecondLayer(serviceId);
67
+ }, [cmp, isInitialized]);
68
+ const acceptService = (0, react_1.useCallback)((serviceId) => {
69
+ if (!cmp || !isInitialized) {
70
+ return;
71
+ }
72
+ cmp.acceptService(serviceId);
73
+ }, [cmp, isInitialized]);
74
+ const isServiceAccepted = (0, react_1.useCallback)((serviceId) => {
75
+ if (debug) {
76
+ return true;
77
+ }
78
+ if (!cmp || !isInitialized) {
79
+ return false;
80
+ }
81
+ const service = cmp.getServicesBaseInfo().find(data => data.id === serviceId);
82
+ return !!service && service.consent.status;
83
+ }, [debug, cmp, isInitialized]);
84
+ return {
85
+ cmp,
86
+ consentUpdate,
87
+ isInitialized,
88
+ showFirstLayer,
89
+ showSecondLayer,
90
+ acceptService,
91
+ isServiceAccepted,
92
+ };
93
+ };
94
+ exports.useUsercentricsHook = useUsercentricsHook;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./context"), exports);
5
+ tslib_1.__exportStar(require("./hook"), exports);
6
+ tslib_1.__exportStar(require("./types"), exports);
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import React, { createContext, useContext } from "react";
2
+ import { useUsercentricsHook } from "../hook";
3
+ export const UsercentricsContext = createContext({});
4
+ export const UsercentricsProvider = ({ children, ...props }) => {
5
+ const data = useUsercentricsHook(props);
6
+ return React.createElement(UsercentricsContext.Provider, { value: data }, children);
7
+ };
8
+ export const useUsercentrics = () => useContext(UsercentricsContext);
@@ -0,0 +1,89 @@
1
+ import { useCallback, useEffect, useState } from "react";
2
+ export const useUsercentricsHook = ({ windowEvent = "ucEvent", forceReload, debug, }) => {
3
+ const [cmp, setCmp] = useState(null);
4
+ const [consentUpdate, setConsentUpdate] = useState(0);
5
+ const [serviceStates, setServiceStates] = useState({});
6
+ const incrementConsentUpdate = () => setConsentUpdate(prev => ++prev);
7
+ const isInitialized = !!cmp?.isInitialized?.();
8
+ useEffect(() => {
9
+ const onCmpEvent = (event) => {
10
+ if (["ACCEPT_ALL", "DENY_ALL", "SAVE"].includes(event.detail.type)) {
11
+ incrementConsentUpdate();
12
+ }
13
+ };
14
+ window.addEventListener("UC_UI_CMP_EVENT", onCmpEvent);
15
+ return () => window.removeEventListener("UC_UI_CMP_EVENT", onCmpEvent);
16
+ }, []);
17
+ useEffect(() => {
18
+ const onLoad = () => {
19
+ incrementConsentUpdate();
20
+ if (!window.UC_UI) {
21
+ return;
22
+ }
23
+ if (debug) {
24
+ console.log(window.UC_UI);
25
+ }
26
+ setCmp(window.UC_UI);
27
+ };
28
+ window.addEventListener("UC_UI_INITIALIZED", onLoad);
29
+ return () => window.removeEventListener("UC_UI_INITIALIZED", onLoad);
30
+ }, [debug]);
31
+ useEffect(() => {
32
+ const handleCustomEvent = (e) => {
33
+ const details = e.detail;
34
+ if (debug) {
35
+ console.log(details);
36
+ }
37
+ if (details.action !== "onInitialPageLoad") {
38
+ for (const key in details) {
39
+ const value = details[key];
40
+ if (serviceStates[key] !== value && forceReload?.[key] === value) {
41
+ window.location.reload();
42
+ return;
43
+ }
44
+ }
45
+ }
46
+ setServiceStates(details);
47
+ };
48
+ const onUcEvent = ((e) => handleCustomEvent(e));
49
+ window.addEventListener(windowEvent, onUcEvent);
50
+ return () => window.removeEventListener(windowEvent, onUcEvent);
51
+ }, [debug, windowEvent, forceReload, serviceStates]);
52
+ const showFirstLayer = useCallback(() => {
53
+ if (!cmp || !isInitialized) {
54
+ return;
55
+ }
56
+ cmp.showFirstLayer();
57
+ }, [cmp, isInitialized]);
58
+ const showSecondLayer = useCallback((serviceId) => {
59
+ if (!cmp || !isInitialized) {
60
+ return;
61
+ }
62
+ cmp.showSecondLayer(serviceId);
63
+ }, [cmp, isInitialized]);
64
+ const acceptService = useCallback((serviceId) => {
65
+ if (!cmp || !isInitialized) {
66
+ return;
67
+ }
68
+ cmp.acceptService(serviceId);
69
+ }, [cmp, isInitialized]);
70
+ const isServiceAccepted = useCallback((serviceId) => {
71
+ if (debug) {
72
+ return true;
73
+ }
74
+ if (!cmp || !isInitialized) {
75
+ return false;
76
+ }
77
+ const service = cmp.getServicesBaseInfo().find(data => data.id === serviceId);
78
+ return !!service && service.consent.status;
79
+ }, [debug, cmp, isInitialized]);
80
+ return {
81
+ cmp,
82
+ consentUpdate,
83
+ isInitialized,
84
+ showFirstLayer,
85
+ showSecondLayer,
86
+ acceptService,
87
+ isServiceAccepted,
88
+ };
89
+ };
@@ -0,0 +1,3 @@
1
+ export * from "./context";
2
+ export * from "./hook";
3
+ export * from "./types";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ import React, { PropsWithChildren } from "react";
2
+ import { ServiceStates, UC } from "../types";
3
+ export interface UsercentricsData {
4
+ cmp: UC | null;
5
+ consentUpdate: number;
6
+ isInitialized: boolean;
7
+ showFirstLayer: () => void;
8
+ showSecondLayer: (serviceId?: string) => void;
9
+ acceptService: (serviceId: string) => void;
10
+ isServiceAccepted: (serviceId: string) => boolean;
11
+ }
12
+ export declare const UsercentricsContext: React.Context<UsercentricsData>;
13
+ export interface UsercentricsProps {
14
+ windowEvent?: string;
15
+ forceReload?: ServiceStates;
16
+ debug?: boolean;
17
+ }
18
+ export declare const UsercentricsProvider: React.FC<PropsWithChildren<UsercentricsProps>>;
19
+ export declare const useUsercentrics: () => UsercentricsData;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAA6B,MAAM,OAAO,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CACrD;AAED,eAAO,MAAM,mBAAmB,iCAA0D,CAAC;AAE3F,MAAM,WAAW,iBAAiB;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAO/E,CAAC;AAEF,eAAO,MAAM,eAAe,wBAAwC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { UsercentricsData, UsercentricsProps } from "../context";
2
+ export declare const useUsercentricsHook: ({ windowEvent, forceReload, debug, }: UsercentricsProps) => UsercentricsData;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hook/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGjE,eAAO,MAAM,mBAAmB,GAAI,sCAIjC,iBAAiB,KAAG,gBA2HtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./context";
2
+ export * from "./hook";
3
+ export * from "./types";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,44 @@
1
+ export interface UCConsent {
2
+ status: boolean;
3
+ }
4
+ export interface UCService {
5
+ id: string;
6
+ name: string;
7
+ consent: UCConsent;
8
+ }
9
+ export interface UC {
10
+ timeStamp: number;
11
+ isInitialized: () => boolean;
12
+ showFirstLayer: () => void;
13
+ showSecondLayer: (serviceId?: string) => void;
14
+ acceptService: (serviceId: string) => void;
15
+ getServicesBaseInfo: () => UCService[];
16
+ }
17
+ export type UCActionType = "onUcImprintClick" | "onUcPrivacyClick" | "onInitialPageLoad" | "onAcceptAllServices" | "onDenyAllServices" | "onUpdateServices" | "onSessionRestored";
18
+ export type ServiceStates = Record<string, string | boolean>;
19
+ export interface UCCustomEventBase<T = object> extends CustomEvent<{
20
+ action: UCActionType;
21
+ event: string;
22
+ type: string;
23
+ } & ServiceStates & T> {
24
+ type: string;
25
+ }
26
+ export interface UCCustomEvent extends UCCustomEventBase {
27
+ type: "ucEvent";
28
+ }
29
+ export interface UCInitializedEvent extends CustomEvent<null> {
30
+ type: "UC_UI_INITIALIZED";
31
+ }
32
+ export interface UCCMPEvent extends CustomEvent<{
33
+ source: "FIRST_LAYER" | "SECOND_LAYER";
34
+ type: "ACCEPT_ALL" | "DENY_ALL" | "SAVE" | "CMP_SHOWN" | "MORE_INFORMATION_LINK" | "IMPRINT_LINK" | "PRIVACY_POLICY_LINK";
35
+ }> {
36
+ type: "UC_UI_CMP_EVENT";
37
+ }
38
+ export interface UCViewChangedEvent extends CustomEvent<{
39
+ previousView: "NONE" | "FIRST_LAYER" | "SECOND_LAYER";
40
+ view: "NONE" | "FIRST_LAYER" | "SECOND_LAYER" | "PRIVACY_BUTTON";
41
+ }> {
42
+ type: "UC_UI_VIEW_CHANGED";
43
+ }
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,EAAE;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,mBAAmB,EAAE,MAAM,SAAS,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,YAAY,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,GAClB,mBAAmB,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AAE7D,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CACzC,SAAQ,WAAW,CACf;IACI,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG,aAAa,GACb,CAAC,CACR;IACD,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACpD,IAAI,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW,CAAC,IAAI,CAAC;IACzD,IAAI,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,UACb,SAAQ,WAAW,CAAC;IAChB,MAAM,EAAE,aAAa,GAAG,cAAc,CAAC;IACvC,IAAI,EACE,YAAY,GACZ,UAAU,GACV,MAAM,GACN,WAAW,GACX,uBAAuB,GACvB,cAAc,GACd,qBAAqB,CAAC;CAC/B,CAAC;IACF,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,kBACb,SAAQ,WAAW,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,CAAC;IACtD,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,GAAG,gBAAgB,CAAC;CACpE,CAAC;IACF,IAAI,EAAE,oBAAoB,CAAC;CAC9B"}
@@ -0,0 +1,19 @@
1
+ import { UC, UCCMPEvent, UCCustomEvent, UCInitializedEvent, UCViewChangedEvent } from "./index";
2
+ declare global {
3
+ interface Window {
4
+ UC_UI?: UC;
5
+ addEventListener(type: "ucEvent", listener: (event: UCCustomEvent) => void, options?: boolean | AddEventListenerOptions): void;
6
+ addEventListener(type: "UC_UI_INITIALIZED", listener: (event: UCInitializedEvent) => void, options?: boolean | AddEventListenerOptions): void;
7
+ addEventListener(type: "UC_UI_CMP_EVENT", listener: (event: UCCMPEvent) => void, options?: boolean | AddEventListenerOptions): void;
8
+ addEventListener(type: "UC_UI_VIEW_CHANGED", listener: (event: UCViewChangedEvent) => void, options?: boolean | AddEventListenerOptions): void;
9
+ removeEventListener(type: "ucEvent", listener: (event: UCCustomEvent) => any, options?: boolean | EventListenerOptions): void;
10
+ removeEventListener(type: "UC_UI_INITIALIZED", listener: (event: UCInitializedEvent) => any, options?: boolean | EventListenerOptions): void;
11
+ removeEventListener(type: "UC_UI_CMP_EVENT", listener: (event: UCCMPEvent) => any, options?: boolean | EventListenerOptions): void;
12
+ removeEventListener(type: "UC_UI_VIEW_CHANGED", listener: (event: UCViewChangedEvent) => any, options?: boolean | EventListenerOptions): void;
13
+ dispatchEvent<K extends keyof UCCustomEvent>(event: UCCustomEvent[K]): void;
14
+ dispatchEvent<K extends keyof UCInitializedEvent>(event: UCInitializedEvent[K]): void;
15
+ dispatchEvent<K extends keyof UCCMPEvent>(event: UCCMPEvent[K]): void;
16
+ dispatchEvent<K extends keyof UCViewChangedEvent>(event: UCViewChangedEvent[K]): void;
17
+ }
18
+ }
19
+ //# sourceMappingURL=usercentrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usercentrics.d.ts","sourceRoot":"","sources":["../../../src/types/usercentrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEhG,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,KAAK,CAAC,EAAE,EAAE,CAAC;QACX,gBAAgB,CACZ,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EACxC,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI,CAAC;QACR,gBAAgB,CACZ,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI,CAAC;QACR,gBAAgB,CACZ,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACrC,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI,CAAC;QACR,gBAAgB,CACZ,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI,CAAC;QACR,mBAAmB,CACf,IAAI,EAAE,SAAS,EAEf,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,EACvC,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI,CAAC;QACR,mBAAmB,CACf,IAAI,EAAE,mBAAmB,EAEzB,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,GAAG,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI,CAAC;QACR,mBAAmB,CACf,IAAI,EAAE,iBAAiB,EAEvB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,GAAG,EACpC,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI,CAAC;QACR,mBAAmB,CACf,IAAI,EAAE,oBAAoB,EAE1B,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,GAAG,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI,CAAC;QACR,aAAa,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5E,aAAa,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACtF,aAAa,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACtE,aAAa,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACzF;CACJ"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@becklyn/react-usercentrics",
3
+ "version": "3.0.0",
4
+ "license": "UNLICENSED",
5
+ "homepage": "https://github.com/Becklyn-Studios/react-usercentrics",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/Becklyn-Studios/react-usercentrics.git"
9
+ },
10
+ "scripts": {
11
+ "test": "echo \"Error: no test specified\" && exit 0",
12
+ "format": "eslint . --fix && prettier --write \"src/**/*.{ts,tsx}\"",
13
+ "lint": "eslint . --max-warnings 0 && prettier --check \"src/**/*.{ts,tsx}\"",
14
+ "build": "npm run clean && tsc -p tsconfig-es.json && tsc -p tsconfig-cjs.json",
15
+ "clean": "rm -rf dist",
16
+ "prepublishOnly": "npm test && npm run lint && npm run build",
17
+ "preversion": "npm run lint"
18
+ },
19
+ "devDependencies": {
20
+ "@becklyn/prettier": "*",
21
+ "@becklyn/eslint": "*",
22
+ "@becklyn/tsconfig": "*",
23
+ "@trivago/prettier-plugin-sort-imports": "^4.3.0",
24
+ "@types/react": "^18.2.14",
25
+ "react": "^16.8.6",
26
+ "react-dom": "^16.8.6",
27
+ "typescript": "^5.8.3"
28
+ },
29
+ "peerDependencies": {
30
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
31
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
32
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
33
+ },
34
+ "peerDependenciesMeta": {
35
+ "@types/react": {
36
+ "optional": true
37
+ }
38
+ },
39
+ "files": [
40
+ "dist"
41
+ ],
42
+ "main": "dist/cjs/index.js",
43
+ "module": "dist/es/index.js",
44
+ "exports": {
45
+ ".": {
46
+ "require": "./dist/cjs/index.js",
47
+ "import": "./dist/es/index.js",
48
+ "default": "./dist/cjs/index.js",
49
+ "types": "./dist/types/index.d.ts"
50
+ },
51
+ "./package.json": "./package.json"
52
+ },
53
+ "sideEffects": false,
54
+ "prettier": "@becklyn/prettier"
55
+ }