@contentpass/react-native-contentpass-ui 0.1.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 +28 -0
- package/lib/commonjs/components/ContentpassConsentGate.js +149 -0
- package/lib/commonjs/components/ContentpassConsentGate.js.map +1 -0
- package/lib/commonjs/components/ContentpassLayer.js +176 -0
- package/lib/commonjs/components/ContentpassLayer.js.map +1 -0
- package/lib/commonjs/components/ContentpassLayerEvents.js +2 -0
- package/lib/commonjs/components/ContentpassLayerEvents.js.map +1 -0
- package/lib/commonjs/components/buildFirstLayerUrl.js +35 -0
- package/lib/commonjs/components/buildFirstLayerUrl.js.map +1 -0
- package/lib/commonjs/components/buildFirstLayerUrl.test.js +92 -0
- package/lib/commonjs/components/buildFirstLayerUrl.test.js.map +1 -0
- package/lib/commonjs/index.js +21 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/module/components/ContentpassConsentGate.js +142 -0
- package/lib/module/components/ContentpassConsentGate.js.map +1 -0
- package/lib/module/components/ContentpassLayer.js +171 -0
- package/lib/module/components/ContentpassLayer.js.map +1 -0
- package/lib/module/components/ContentpassLayerEvents.js +2 -0
- package/lib/module/components/ContentpassLayerEvents.js.map +1 -0
- package/lib/module/components/buildFirstLayerUrl.js +31 -0
- package/lib/module/components/buildFirstLayerUrl.js.map +1 -0
- package/lib/module/components/buildFirstLayerUrl.test.js +91 -0
- package/lib/module/components/buildFirstLayerUrl.test.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/react-native-contentpass/src/Contentpass.d.ts +41 -0
- package/lib/typescript/react-native-contentpass/src/Contentpass.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/OidcAuthStateStorage.d.ts +15 -0
- package/lib/typescript/react-native-contentpass/src/OidcAuthStateStorage.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/consts/oidcConsts.d.ts +4 -0
- package/lib/typescript/react-native-contentpass/src/consts/oidcConsts.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/fetchContentpassToken.d.ts +6 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/fetchContentpassToken.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/parseContentpassToken.d.ts +17 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/parseContentpassToken.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/validateSubscription.d.ts +2 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/validateSubscription.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendPageViewEvent.d.ts +8 -0
- package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendPageViewEvent.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendStats.d.ts +11 -0
- package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendStats.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/index.d.ts +12 -0
- package/lib/typescript/react-native-contentpass/src/index.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/logger.d.ts +8 -0
- package/lib/typescript/react-native-contentpass/src/logger.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/sdkContext/ContentpassSdkProvider.d.ts +9 -0
- package/lib/typescript/react-native-contentpass/src/sdkContext/ContentpassSdkProvider.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/sdkContext/useContentpassSdk.d.ts +3 -0
- package/lib/typescript/react-native-contentpass/src/sdkContext/useContentpassSdk.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/sentryIntegration.d.ts +11 -0
- package/lib/typescript/react-native-contentpass/src/sentryIntegration.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/types/CmpAdapter.d.ts +14 -0
- package/lib/typescript/react-native-contentpass/src/types/CmpAdapter.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/types/ContentpassConfig.d.ts +11 -0
- package/lib/typescript/react-native-contentpass/src/types/ContentpassConfig.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/types/ContentpassState.d.ts +28 -0
- package/lib/typescript/react-native-contentpass/src/types/ContentpassState.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/types/RefreshTokenStrategy.d.ts +6 -0
- package/lib/typescript/react-native-contentpass/src/types/RefreshTokenStrategy.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass-ui/src/components/ContentpassConsentGate.d.ts +12 -0
- package/lib/typescript/react-native-contentpass-ui/src/components/ContentpassConsentGate.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass-ui/src/components/ContentpassLayer.d.ts +10 -0
- package/lib/typescript/react-native-contentpass-ui/src/components/ContentpassLayer.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass-ui/src/components/ContentpassLayerEvents.d.ts +7 -0
- package/lib/typescript/react-native-contentpass-ui/src/components/ContentpassLayerEvents.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass-ui/src/components/buildFirstLayerUrl.d.ts +8 -0
- package/lib/typescript/react-native-contentpass-ui/src/components/buildFirstLayerUrl.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass-ui/src/index.d.ts +3 -0
- package/lib/typescript/react-native-contentpass-ui/src/index.d.ts.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { ContentpassStateType, useContentpassSdk } from '@contentpass/react-native-contentpass';
|
|
6
|
+
import ContentpassLayer from './ContentpassLayer';
|
|
7
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
export default function ContentpassConsentGate({
|
|
9
|
+
children,
|
|
10
|
+
cmpAdapter,
|
|
11
|
+
contentpassConfig,
|
|
12
|
+
hideAppWhenVisible = true,
|
|
13
|
+
onVisibilityChange
|
|
14
|
+
}) {
|
|
15
|
+
const sdk = useContentpassSdk();
|
|
16
|
+
const [cmpReady, setCmpReady] = useState(false);
|
|
17
|
+
const [hasFullConsent, setHasFullConsent] = useState(false);
|
|
18
|
+
const [isVisible, setIsVisible] = useState(false);
|
|
19
|
+
const [cpAuthState, setCpAuthState] = useState(null);
|
|
20
|
+
const [isShowingSecondLayer, setIsShowingSecondLayer] = useState(false);
|
|
21
|
+
const [isShowingContentpass, setIsShowingContentpass] = useState(false);
|
|
22
|
+
const [purposesList, setPurposesList] = useState([]);
|
|
23
|
+
const [vendorCount, setVendorCount] = useState(0);
|
|
24
|
+
const layerEvents = useMemo(() => {
|
|
25
|
+
return {
|
|
26
|
+
acceptAll: async () => {
|
|
27
|
+
try {
|
|
28
|
+
await cmpAdapter.acceptAll();
|
|
29
|
+
} catch (error) {
|
|
30
|
+
console.error('Failed to accept all in CMP', error);
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
contentpass: async route => {
|
|
34
|
+
try {
|
|
35
|
+
setIsShowingContentpass(true);
|
|
36
|
+
await sdk.authenticate(route);
|
|
37
|
+
} catch (error) {
|
|
38
|
+
console.error('Failed to authenticate Contentpass', error);
|
|
39
|
+
sdk.recoverFromError();
|
|
40
|
+
} finally {
|
|
41
|
+
setIsShowingContentpass(false);
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
showSecondLayer: async view => {
|
|
45
|
+
setIsShowingSecondLayer(true);
|
|
46
|
+
try {
|
|
47
|
+
await cmpAdapter.showSecondLayer(view);
|
|
48
|
+
} catch (error) {
|
|
49
|
+
console.error('Failed to show second layer in CMP', error);
|
|
50
|
+
} finally {
|
|
51
|
+
setIsShowingSecondLayer(false);
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
sendEvent: (eventCategory, eventAction, eventLabel) => {
|
|
55
|
+
sdk.event(eventCategory, eventAction, eventLabel);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}, [sdk, cmpAdapter]);
|
|
59
|
+
|
|
60
|
+
// Wait for the CMP to be ready
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (cmpReady) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
cmpAdapter?.waitForInit?.().then(() => {
|
|
66
|
+
setCmpReady(true);
|
|
67
|
+
});
|
|
68
|
+
}, [cmpReady, cmpAdapter]);
|
|
69
|
+
|
|
70
|
+
// Listen for consent status changes
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
if (!cmpReady) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
cmpAdapter?.onConsentStatusChange?.(v => setHasFullConsent(v));
|
|
76
|
+
cmpAdapter.getRequiredPurposes().then(v => setPurposesList(v));
|
|
77
|
+
cmpAdapter.getNumberOfVendors().then(v => setVendorCount(v));
|
|
78
|
+
}, [cmpReady, cmpAdapter, onVisibilityChange, isVisible]);
|
|
79
|
+
|
|
80
|
+
// Monitor the contentpass auth state
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
sdk.registerObserver(state => {
|
|
83
|
+
setCpAuthState(state);
|
|
84
|
+
});
|
|
85
|
+
}, [sdk]);
|
|
86
|
+
|
|
87
|
+
// Policy for setting the visibility of the consent layer
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
const invalidStates = [ContentpassStateType.INITIALISING, ContentpassStateType.ERROR];
|
|
90
|
+
if (!cmpReady || !cpAuthState || invalidStates.includes(cpAuthState.state)) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// FIXME do neither show app nor show the layer while
|
|
95
|
+
// second layer or contentpass funnel are shown
|
|
96
|
+
if (isShowingSecondLayer || isShowingContentpass) {
|
|
97
|
+
setIsVisible(false);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const isFine = cpAuthState.state === ContentpassStateType.AUTHENTICATED || hasFullConsent;
|
|
101
|
+
const visible = !isFine;
|
|
102
|
+
console.log('>>> Changing visibility to', visible, isFine, cpAuthState.state, hasFullConsent);
|
|
103
|
+
if (visible !== isVisible) {
|
|
104
|
+
onVisibilityChange?.(visible);
|
|
105
|
+
}
|
|
106
|
+
setIsVisible(visible);
|
|
107
|
+
}, [cmpReady, cpAuthState, hasFullConsent, isShowingContentpass, isShowingSecondLayer, isVisible, onVisibilityChange]);
|
|
108
|
+
if (!isVisible) {
|
|
109
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
110
|
+
children: children
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function renderContentpassLayer() {
|
|
114
|
+
return /*#__PURE__*/_jsx(ContentpassLayer, {
|
|
115
|
+
eventHandler: layerEvents,
|
|
116
|
+
baseUrl: contentpassConfig.apiUrl,
|
|
117
|
+
planId: contentpassConfig.planId,
|
|
118
|
+
propertyId: contentpassConfig.propertyId,
|
|
119
|
+
purposesList: purposesList,
|
|
120
|
+
vendorCount: vendorCount
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
if (hideAppWhenVisible) {
|
|
124
|
+
return renderContentpassLayer();
|
|
125
|
+
}
|
|
126
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
127
|
+
style: styles.overlayContainer,
|
|
128
|
+
children: [children, /*#__PURE__*/_jsx(View, {
|
|
129
|
+
style: styles.overlay,
|
|
130
|
+
children: renderContentpassLayer()
|
|
131
|
+
})]
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
const styles = StyleSheet.create({
|
|
135
|
+
overlayContainer: {
|
|
136
|
+
flex: 1
|
|
137
|
+
},
|
|
138
|
+
overlay: {
|
|
139
|
+
...StyleSheet.absoluteFillObject
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
//# sourceMappingURL=ContentpassConsentGate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useState","StyleSheet","View","ContentpassStateType","useContentpassSdk","ContentpassLayer","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","ContentpassConsentGate","children","cmpAdapter","contentpassConfig","hideAppWhenVisible","onVisibilityChange","sdk","cmpReady","setCmpReady","hasFullConsent","setHasFullConsent","isVisible","setIsVisible","cpAuthState","setCpAuthState","isShowingSecondLayer","setIsShowingSecondLayer","isShowingContentpass","setIsShowingContentpass","purposesList","setPurposesList","vendorCount","setVendorCount","layerEvents","acceptAll","error","console","contentpass","route","authenticate","recoverFromError","showSecondLayer","view","sendEvent","eventCategory","eventAction","eventLabel","event","waitForInit","then","onConsentStatusChange","v","getRequiredPurposes","getNumberOfVendors","registerObserver","state","invalidStates","INITIALISING","ERROR","includes","isFine","AUTHENTICATED","visible","log","renderContentpassLayer","eventHandler","baseUrl","apiUrl","planId","propertyId","style","styles","overlayContainer","overlay","create","flex","absoluteFillObject"],"sourceRoot":"../../../src","sources":["components/ContentpassConsentGate.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet, Text, View } from 'react-native';
|
|
4
|
+
import { WebView } from 'react-native-webview';
|
|
5
|
+
import buildFirstLayerUrl from './buildFirstLayerUrl';
|
|
6
|
+
import { useMemo } from 'react';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const MESSAGE_PROTOCOL = 'contentpass-first-layer';
|
|
9
|
+
const buildGlueCodeJs = firstLayerUrl => `
|
|
10
|
+
(function () {
|
|
11
|
+
try {
|
|
12
|
+
if (window.location.href === 'about:blank') {
|
|
13
|
+
var encodedUrl = '${encodeURIComponent(firstLayerUrl)}';
|
|
14
|
+
var decodedUrl = decodeURIComponent(encodedUrl);
|
|
15
|
+
window.location.href = decodedUrl;
|
|
16
|
+
}
|
|
17
|
+
} catch (e) {}
|
|
18
|
+
|
|
19
|
+
const originalPostMessage = window.postMessage;
|
|
20
|
+
window.postMessage = function (data) {
|
|
21
|
+
try {
|
|
22
|
+
window.ReactNativeWebView.postMessage(
|
|
23
|
+
typeof data === 'string' ? data : JSON.stringify(data)
|
|
24
|
+
);
|
|
25
|
+
} catch (e) {}
|
|
26
|
+
if (originalPostMessage) {
|
|
27
|
+
originalPostMessage.apply(window, arguments);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
true;
|
|
32
|
+
})();
|
|
33
|
+
`;
|
|
34
|
+
const styles = StyleSheet.create({
|
|
35
|
+
container: {
|
|
36
|
+
flex: 1,
|
|
37
|
+
backgroundColor: 'white'
|
|
38
|
+
},
|
|
39
|
+
webview: {
|
|
40
|
+
flex: 1,
|
|
41
|
+
backgroundColor: 'red'
|
|
42
|
+
},
|
|
43
|
+
error: {
|
|
44
|
+
flex: 1,
|
|
45
|
+
alignItems: 'center',
|
|
46
|
+
justifyContent: 'center',
|
|
47
|
+
padding: 16
|
|
48
|
+
},
|
|
49
|
+
errorText: {
|
|
50
|
+
fontSize: 14,
|
|
51
|
+
textAlign: 'center'
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
export default function ContentpassLayer({
|
|
55
|
+
baseUrl,
|
|
56
|
+
eventHandler,
|
|
57
|
+
planId,
|
|
58
|
+
propertyId,
|
|
59
|
+
purposesList,
|
|
60
|
+
vendorCount
|
|
61
|
+
}) {
|
|
62
|
+
const firstLayerUrl = useMemo(() => {
|
|
63
|
+
return buildFirstLayerUrl({
|
|
64
|
+
baseUrl,
|
|
65
|
+
propertyId,
|
|
66
|
+
planId,
|
|
67
|
+
purposesList,
|
|
68
|
+
vendorCount
|
|
69
|
+
});
|
|
70
|
+
}, [baseUrl, planId, propertyId, purposesList, vendorCount]);
|
|
71
|
+
const glueCodeJs = useMemo(() => {
|
|
72
|
+
return buildGlueCodeJs(firstLayerUrl);
|
|
73
|
+
}, [firstLayerUrl]);
|
|
74
|
+
function handleMessage(event) {
|
|
75
|
+
let msg;
|
|
76
|
+
try {
|
|
77
|
+
msg = JSON.parse(event.nativeEvent.data);
|
|
78
|
+
} catch (error) {
|
|
79
|
+
console.error('Error parsing WebView message', error);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (!msg || msg.protocol !== MESSAGE_PROTOCOL) {
|
|
83
|
+
console.log('WebView message with unknown protocol', msg.protocol, msg);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (msg.type !== 'REQUEST') {
|
|
87
|
+
console.warn('WebView message with unknown type', msg.type, msg);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
console.debug('WebView message', msg);
|
|
91
|
+
switch (msg.action) {
|
|
92
|
+
case 'ENABLE_SCROLL_ON_PROPERTY':
|
|
93
|
+
// Ignore this message
|
|
94
|
+
break;
|
|
95
|
+
case 'GO_TO':
|
|
96
|
+
switch (msg.payload?.options?.page) {
|
|
97
|
+
case 'login':
|
|
98
|
+
case 'signup':
|
|
99
|
+
eventHandler.contentpass(msg.payload?.options?.page);
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
console.warn('WebView message with unknown page', msg.payload?.options?.page, msg);
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
break;
|
|
106
|
+
case 'ACCEPT_ALL':
|
|
107
|
+
eventHandler.acceptAll();
|
|
108
|
+
break;
|
|
109
|
+
case 'SHOW_CMP_TOOL':
|
|
110
|
+
eventHandler.showSecondLayer('purpose');
|
|
111
|
+
break;
|
|
112
|
+
case 'SHOW_VENDOR_LIST_TOOL':
|
|
113
|
+
eventHandler.showSecondLayer('vendor');
|
|
114
|
+
break;
|
|
115
|
+
case 'SEND_EVENT':
|
|
116
|
+
if (Array.isArray(msg.payload)) {
|
|
117
|
+
eventHandler.sendEvent(msg.payload[0], msg.payload[1], msg.payload[2]);
|
|
118
|
+
} else {
|
|
119
|
+
console.warn('WebView message with unknown payload', msg.payload);
|
|
120
|
+
}
|
|
121
|
+
break;
|
|
122
|
+
default:
|
|
123
|
+
console.warn('WebView message with unknown action', msg.action, msg);
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return /*#__PURE__*/_jsx(View, {
|
|
128
|
+
style: styles.container,
|
|
129
|
+
children: /*#__PURE__*/_jsx(WebView, {
|
|
130
|
+
source: {
|
|
131
|
+
uri: 'about:blank'
|
|
132
|
+
},
|
|
133
|
+
style: styles.webview,
|
|
134
|
+
originWhitelist: ['*'],
|
|
135
|
+
startInLoadingState: true,
|
|
136
|
+
javaScriptEnabled: true,
|
|
137
|
+
domStorageEnabled: true,
|
|
138
|
+
injectedJavaScript: glueCodeJs,
|
|
139
|
+
onMessage: event => {
|
|
140
|
+
handleMessage(event);
|
|
141
|
+
},
|
|
142
|
+
onShouldStartLoadWithRequest: request => {
|
|
143
|
+
console.debug('WebView request', request.url);
|
|
144
|
+
return true;
|
|
145
|
+
},
|
|
146
|
+
onLoadStart: () => {
|
|
147
|
+
console.debug('WebView load start');
|
|
148
|
+
},
|
|
149
|
+
onLoadEnd: () => {
|
|
150
|
+
console.debug('WebView load end');
|
|
151
|
+
},
|
|
152
|
+
onLoadProgress: event => {
|
|
153
|
+
console.debug('WebView progress', event.nativeEvent.progress);
|
|
154
|
+
},
|
|
155
|
+
onError: event => {
|
|
156
|
+
console.debug('WebView error', event.nativeEvent);
|
|
157
|
+
},
|
|
158
|
+
onHttpError: event => {
|
|
159
|
+
console.debug('WebView HTTP error', event.nativeEvent);
|
|
160
|
+
},
|
|
161
|
+
renderError: (errorDomain, errorCode, errorDesc) => /*#__PURE__*/_jsx(View, {
|
|
162
|
+
style: styles.error,
|
|
163
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
164
|
+
style: styles.errorText,
|
|
165
|
+
children: `WebView error (${errorDomain}:${errorCode}) ${errorDesc}`
|
|
166
|
+
})
|
|
167
|
+
})
|
|
168
|
+
})
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=ContentpassLayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","Text","View","WebView","buildFirstLayerUrl","useMemo","jsx","_jsx","MESSAGE_PROTOCOL","buildGlueCodeJs","firstLayerUrl","encodeURIComponent","styles","create","container","flex","backgroundColor","webview","error","alignItems","justifyContent","padding","errorText","fontSize","textAlign","ContentpassLayer","baseUrl","eventHandler","planId","propertyId","purposesList","vendorCount","glueCodeJs","handleMessage","event","msg","JSON","parse","nativeEvent","data","console","protocol","log","type","warn","debug","action","payload","options","page","contentpass","acceptAll","showSecondLayer","Array","isArray","sendEvent","style","children","source","uri","originWhitelist","startInLoadingState","javaScriptEnabled","domStorageEnabled","injectedJavaScript","onMessage","onShouldStartLoadWithRequest","request","url","onLoadStart","onLoadEnd","onLoadProgress","progress","onError","onHttpError","renderError","errorDomain","errorCode","errorDesc"],"sourceRoot":"../../../src","sources":["components/ContentpassLayer.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACrD,SAASC,OAAO,QAAkC,sBAAsB;AAExE,OAAOC,kBAAkB,MAAM,sBAAsB;AACrD,SAASC,OAAO,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhC,MAAMC,gBAAgB,GAAG,yBAAyB;AAElD,MAAMC,eAAe,GAAIC,aAAqB,IAAK;AACnD;AACA;AACA;AACA,4BAA4BC,kBAAkB,CAACD,aAAa,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAME,MAAM,GAAGZ,UAAU,CAACa,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE;EACnB,CAAC;EACDC,OAAO,EAAE;IACPF,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE;EACnB,CAAC;EACDE,KAAK,EAAE;IACLH,IAAI,EAAE,CAAC;IACPI,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE;EACb;AACF,CAAC,CAAC;AAEF,eAAe,SAASC,gBAAgBA,CAAC;EACvCC,OAAO;EACPC,YAAY;EACZC,MAAM;EACNC,UAAU;EACVC,YAAY;EACZC;AAQF,CAAC,EAAE;EACD,MAAMrB,aAAa,GAAGL,OAAO,CAAC,MAAM;IAClC,OAAOD,kBAAkB,CAAC;MACxBsB,OAAO;MACPG,UAAU;MACVD,MAAM;MACNE,YAAY;MACZC;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACL,OAAO,EAAEE,MAAM,EAAEC,UAAU,EAAEC,YAAY,EAAEC,WAAW,CAAC,CAAC;EAE5D,MAAMC,UAAU,GAAG3B,OAAO,CAAC,MAAM;IAC/B,OAAOI,eAAe,CAACC,aAAa,CAAC;EACvC,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnB,SAASuB,aAAaA,CAACC,KAA0B,EAAE;IACjD,IAAIC,GAAQ;IACZ,IAAI;MACFA,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACH,KAAK,CAACI,WAAW,CAACC,IAAI,CAAC;IAC1C,CAAC,CAAC,OAAOrB,KAAK,EAAE;MACdsB,OAAO,CAACtB,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;MACrD;IACF;IAEA,IAAI,CAACiB,GAAG,IAAIA,GAAG,CAACM,QAAQ,KAAKjC,gBAAgB,EAAE;MAC7CgC,OAAO,CAACE,GAAG,CAAC,uCAAuC,EAAEP,GAAG,CAACM,QAAQ,EAAEN,GAAG,CAAC;MACvE;IACF;IAEA,IAAIA,GAAG,CAACQ,IAAI,KAAK,SAAS,EAAE;MAC1BH,OAAO,CAACI,IAAI,CAAC,mCAAmC,EAAET,GAAG,CAACQ,IAAI,EAAER,GAAG,CAAC;MAChE;IACF;IAEAK,OAAO,CAACK,KAAK,CAAC,iBAAiB,EAAEV,GAAG,CAAC;IAErC,QAAQA,GAAG,CAACW,MAAM;MAChB,KAAK,2BAA2B;QAC9B;QACA;MACF,KAAK,OAAO;QACV,QAAQX,GAAG,CAACY,OAAO,EAAEC,OAAO,EAAEC,IAAI;UAChC,KAAK,OAAO;UACZ,KAAK,QAAQ;YACXtB,YAAY,CAACuB,WAAW,CACtBf,GAAG,CAACY,OAAO,EAAEC,OAAO,EAAEC,IACxB,CAAC;YACD;UACF;YACET,OAAO,CAACI,IAAI,CACV,mCAAmC,EACnCT,GAAG,CAACY,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAC1Bd,GACF,CAAC;YACD;QACJ;QACA;MACF,KAAK,YAAY;QACfR,YAAY,CAACwB,SAAS,CAAC,CAAC;QACxB;MACF,KAAK,eAAe;QAClBxB,YAAY,CAACyB,eAAe,CAAC,SAAS,CAAC;QACvC;MACF,KAAK,uBAAuB;QAC1BzB,YAAY,CAACyB,eAAe,CAAC,QAAQ,CAAC;QACtC;MACF,KAAK,YAAY;QACf,IAAIC,KAAK,CAACC,OAAO,CAACnB,GAAG,CAACY,OAAO,CAAC,EAAE;UAC9BpB,YAAY,CAAC4B,SAAS,CACpBpB,GAAG,CAACY,OAAO,CAAC,CAAC,CAAC,EACdZ,GAAG,CAACY,OAAO,CAAC,CAAC,CAAC,EACdZ,GAAG,CAACY,OAAO,CAAC,CAAC,CACf,CAAC;QACH,CAAC,MAAM;UACLP,OAAO,CAACI,IAAI,CAAC,sCAAsC,EAAET,GAAG,CAACY,OAAO,CAAC;QACnE;QACA;MACF;QACEP,OAAO,CAACI,IAAI,CAAC,qCAAqC,EAAET,GAAG,CAACW,MAAM,EAAEX,GAAG,CAAC;QACpE;IACJ;EACF;EAEA,oBACE5B,IAAA,CAACL,IAAI;IAACsD,KAAK,EAAE5C,MAAM,CAACE,SAAU;IAAA2C,QAAA,eAC5BlD,IAAA,CAACJ,OAAO;MACNuD,MAAM,EAAE;QAAEC,GAAG,EAAE;MAAc,CAAE;MAC/BH,KAAK,EAAE5C,MAAM,CAACK,OAAQ;MACtB2C,eAAe,EAAE,CAAC,GAAG,CAAE;MACvBC,mBAAmB;MACnBC,iBAAiB;MACjBC,iBAAiB;MACjBC,kBAAkB,EAAEhC,UAAW;MAC/BiC,SAAS,EAAG/B,KAAK,IAAK;QACpBD,aAAa,CAACC,KAAK,CAAC;MACtB,CAAE;MACFgC,4BAA4B,EAAGC,OAAO,IAAK;QACzC3B,OAAO,CAACK,KAAK,CAAC,iBAAiB,EAAEsB,OAAO,CAACC,GAAG,CAAC;QAC7C,OAAO,IAAI;MACb,CAAE;MACFC,WAAW,EAAEA,CAAA,KAAM;QACjB7B,OAAO,CAACK,KAAK,CAAC,oBAAoB,CAAC;MACrC,CAAE;MACFyB,SAAS,EAAEA,CAAA,KAAM;QACf9B,OAAO,CAACK,KAAK,CAAC,kBAAkB,CAAC;MACnC,CAAE;MACF0B,cAAc,EAAGrC,KAAK,IAAK;QACzBM,OAAO,CAACK,KAAK,CAAC,kBAAkB,EAAEX,KAAK,CAACI,WAAW,CAACkC,QAAQ,CAAC;MAC/D,CAAE;MACFC,OAAO,EAAGvC,KAAK,IAAK;QAClBM,OAAO,CAACK,KAAK,CAAC,eAAe,EAAEX,KAAK,CAACI,WAAW,CAAC;MACnD,CAAE;MACFoC,WAAW,EAAGxC,KAAK,IAAK;QACtBM,OAAO,CAACK,KAAK,CAAC,oBAAoB,EAAEX,KAAK,CAACI,WAAW,CAAC;MACxD,CAAE;MACFqC,WAAW,EAAEA,CAACC,WAAW,EAAEC,SAAS,EAAEC,SAAS,kBAC7CvE,IAAA,CAACL,IAAI;QAACsD,KAAK,EAAE5C,MAAM,CAACM,KAAM;QAAAuC,QAAA,eACxBlD,IAAA,CAACN,IAAI;UAACuD,KAAK,EAAE5C,MAAM,CAACU,SAAU;UAAAmC,QAAA,EAC3B,kBAAkBmB,WAAW,IAAIC,SAAS,KAAKC,SAAS;QAAE,CACvD;MAAC,CACH;IACN,CACH;EAAC,CACE,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["components/ContentpassLayerEvents.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// const THEME = 'classic';
|
|
4
|
+
// const THEME = 'classic-app';
|
|
5
|
+
const THEME = 'steps';
|
|
6
|
+
|
|
7
|
+
// FIXME pass something from this SDK?
|
|
8
|
+
const SDK_VERSION = '20260203105802-ef26e7d899';
|
|
9
|
+
export default function buildFirstLayerUrl({
|
|
10
|
+
baseUrl,
|
|
11
|
+
propertyId,
|
|
12
|
+
planId,
|
|
13
|
+
purposesList,
|
|
14
|
+
vendorCount
|
|
15
|
+
}) {
|
|
16
|
+
// FIXME handle trailing slash in baseUrl
|
|
17
|
+
const url = new URL(`${baseUrl}/first-layer/`);
|
|
18
|
+
url.searchParams.set('start', 'true');
|
|
19
|
+
url.searchParams.set('theme', THEME);
|
|
20
|
+
url.searchParams.set('v', SDK_VERSION);
|
|
21
|
+
url.searchParams.set('locale', 'en-US');
|
|
22
|
+
url.searchParams.set('planId', planId);
|
|
23
|
+
url.searchParams.set('propertyId', propertyId);
|
|
24
|
+
url.searchParams.set('purposesList', encodeURIComponent(purposesList.join(',')));
|
|
25
|
+
url.searchParams.set('vendorCount', vendorCount.toString());
|
|
26
|
+
// url.searchParams.set('config', 'undefined');
|
|
27
|
+
// FIXME why is it not able to handle the start=true parameter?
|
|
28
|
+
const firstLayerUrl = url.toString().replace('?start=true', '?start');
|
|
29
|
+
return firstLayerUrl;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=buildFirstLayerUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["THEME","SDK_VERSION","buildFirstLayerUrl","baseUrl","propertyId","planId","purposesList","vendorCount","url","URL","searchParams","set","encodeURIComponent","join","toString","firstLayerUrl","replace"],"sourceRoot":"../../../src","sources":["components/buildFirstLayerUrl.ts"],"mappings":";;AAAA;AACA;AACA,MAAMA,KAAK,GAAG,OAAO;;AAErB;AACA,MAAMC,WAAW,GAAG,2BAA2B;AAE/C,eAAe,SAASC,kBAAkBA,CAAC;EACzCC,OAAO;EACPC,UAAU;EACVC,MAAM;EACNC,YAAY;EACZC;AAOF,CAAC,EAAU;EACT;EACA,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAAC,GAAGN,OAAO,eAAe,CAAC;EAC9CK,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;EACrCH,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,OAAO,EAAEX,KAAK,CAAC;EACpCQ,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,GAAG,EAAEV,WAAW,CAAC;EACtCO,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;EACvCH,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,QAAQ,EAAEN,MAAM,CAAC;EACtCG,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,YAAY,EAAEP,UAAU,CAAC;EAC9CI,GAAG,CAACE,YAAY,CAACC,GAAG,CAClB,cAAc,EACdC,kBAAkB,CAACN,YAAY,CAACO,IAAI,CAAC,GAAG,CAAC,CAC3C,CAAC;EACDL,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,aAAa,EAAEJ,WAAW,CAACO,QAAQ,CAAC,CAAC,CAAC;EAC3D;EACA;EACA,MAAMC,aAAa,GAAGP,GAAG,CAACM,QAAQ,CAAC,CAAC,CAACE,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;EAErE,OAAOD,aAAa;AACtB","ignoreList":[]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import buildFirstLayerUrl from './buildFirstLayerUrl';
|
|
4
|
+
describe('buildFirstLayerUrl', () => {
|
|
5
|
+
const defaultParams = {
|
|
6
|
+
baseUrl: 'https://example.com',
|
|
7
|
+
propertyId: 'prop-123',
|
|
8
|
+
planId: 'plan-456',
|
|
9
|
+
purposesList: ['analytics', 'marketing'],
|
|
10
|
+
vendorCount: 5
|
|
11
|
+
};
|
|
12
|
+
it('should build a URL with the correct base path', () => {
|
|
13
|
+
const url = buildFirstLayerUrl(defaultParams);
|
|
14
|
+
expect(url).toContain('https://example.com/first-layer/');
|
|
15
|
+
});
|
|
16
|
+
it('should include the start parameter without =true', () => {
|
|
17
|
+
const url = buildFirstLayerUrl(defaultParams);
|
|
18
|
+
expect(url).toContain('?start&');
|
|
19
|
+
expect(url).not.toContain('start=true');
|
|
20
|
+
});
|
|
21
|
+
it('should include the theme parameter', () => {
|
|
22
|
+
const url = buildFirstLayerUrl(defaultParams);
|
|
23
|
+
const parsed = new URL(url);
|
|
24
|
+
expect(parsed.searchParams.get('theme')).toBe('steps');
|
|
25
|
+
});
|
|
26
|
+
it('should include the SDK version parameter', () => {
|
|
27
|
+
const url = buildFirstLayerUrl(defaultParams);
|
|
28
|
+
const parsed = new URL(url);
|
|
29
|
+
expect(parsed.searchParams.get('v')).toBeTruthy();
|
|
30
|
+
});
|
|
31
|
+
it('should set locale to en-US', () => {
|
|
32
|
+
const url = buildFirstLayerUrl(defaultParams);
|
|
33
|
+
const parsed = new URL(url);
|
|
34
|
+
expect(parsed.searchParams.get('locale')).toBe('en-US');
|
|
35
|
+
});
|
|
36
|
+
it('should include the planId parameter', () => {
|
|
37
|
+
const url = buildFirstLayerUrl(defaultParams);
|
|
38
|
+
const parsed = new URL(url);
|
|
39
|
+
expect(parsed.searchParams.get('planId')).toBe('plan-456');
|
|
40
|
+
});
|
|
41
|
+
it('should include the propertyId parameter', () => {
|
|
42
|
+
const url = buildFirstLayerUrl(defaultParams);
|
|
43
|
+
const parsed = new URL(url);
|
|
44
|
+
expect(parsed.searchParams.get('propertyId')).toBe('prop-123');
|
|
45
|
+
});
|
|
46
|
+
it('should include the vendorCount as a string', () => {
|
|
47
|
+
const url = buildFirstLayerUrl(defaultParams);
|
|
48
|
+
const parsed = new URL(url);
|
|
49
|
+
expect(parsed.searchParams.get('vendorCount')).toBe('5');
|
|
50
|
+
});
|
|
51
|
+
it('should encode and join purposesList with commas', () => {
|
|
52
|
+
const url = buildFirstLayerUrl(defaultParams);
|
|
53
|
+
const parsed = new URL(url);
|
|
54
|
+
const purposesList = parsed.searchParams.get('purposesList');
|
|
55
|
+
|
|
56
|
+
// The value is double-encoded: encodeURIComponent is called before set()
|
|
57
|
+
expect(purposesList).toBe(encodeURIComponent('analytics,marketing'));
|
|
58
|
+
});
|
|
59
|
+
it('should handle a single purpose in the list', () => {
|
|
60
|
+
const url = buildFirstLayerUrl({
|
|
61
|
+
...defaultParams,
|
|
62
|
+
purposesList: ['analytics']
|
|
63
|
+
});
|
|
64
|
+
const parsed = new URL(url);
|
|
65
|
+
expect(parsed.searchParams.get('purposesList')).toBe(encodeURIComponent('analytics'));
|
|
66
|
+
});
|
|
67
|
+
it('should handle an empty purposes list', () => {
|
|
68
|
+
const url = buildFirstLayerUrl({
|
|
69
|
+
...defaultParams,
|
|
70
|
+
purposesList: []
|
|
71
|
+
});
|
|
72
|
+
const parsed = new URL(url);
|
|
73
|
+
expect(parsed.searchParams.get('purposesList')).toBe(encodeURIComponent(''));
|
|
74
|
+
});
|
|
75
|
+
it('should handle vendorCount of 0', () => {
|
|
76
|
+
const url = buildFirstLayerUrl({
|
|
77
|
+
...defaultParams,
|
|
78
|
+
vendorCount: 0
|
|
79
|
+
});
|
|
80
|
+
const parsed = new URL(url);
|
|
81
|
+
expect(parsed.searchParams.get('vendorCount')).toBe('0');
|
|
82
|
+
});
|
|
83
|
+
it('should handle a baseUrl with a trailing path', () => {
|
|
84
|
+
const url = buildFirstLayerUrl({
|
|
85
|
+
...defaultParams,
|
|
86
|
+
baseUrl: 'https://cdn.example.com/consent'
|
|
87
|
+
});
|
|
88
|
+
expect(url).toContain('https://cdn.example.com/consent/first-layer/');
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=buildFirstLayerUrl.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["buildFirstLayerUrl","describe","defaultParams","baseUrl","propertyId","planId","purposesList","vendorCount","it","url","expect","toContain","not","parsed","URL","searchParams","get","toBe","toBeTruthy","encodeURIComponent"],"sourceRoot":"../../../src","sources":["components/buildFirstLayerUrl.test.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","ContentpassLayer","ContentpassConsentGate"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,gBAAgB,QAAQ,+BAA+B;AAC3E,SAASD,OAAO,IAAIE,sBAAsB,QAAQ,qCAAqC","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type ContentpassState } from './types/ContentpassState';
|
|
2
|
+
import type { ContentpassConfig } from './types/ContentpassConfig';
|
|
3
|
+
export type ContentpassObserver = (state: ContentpassState) => void;
|
|
4
|
+
interface ContentpassInterface {
|
|
5
|
+
authenticate: (route?: 'login' | 'signup') => Promise<void>;
|
|
6
|
+
countImpression: () => Promise<void>;
|
|
7
|
+
event: (eventCategory: string, eventAction: string, eventLabel?: string, samplingRate?: number) => Promise<void>;
|
|
8
|
+
logout: () => Promise<void>;
|
|
9
|
+
registerObserver: (observer: ContentpassObserver) => void;
|
|
10
|
+
recoverFromError: () => Promise<void>;
|
|
11
|
+
unregisterObserver: (observer: ContentpassObserver) => void;
|
|
12
|
+
}
|
|
13
|
+
export default class Contentpass implements ContentpassInterface {
|
|
14
|
+
private authStateStorage;
|
|
15
|
+
private readonly config;
|
|
16
|
+
private readonly samplingRate;
|
|
17
|
+
private instanceId;
|
|
18
|
+
private contentpassState;
|
|
19
|
+
private contentpassStateObservers;
|
|
20
|
+
private oidcAuthState;
|
|
21
|
+
private refreshTimer;
|
|
22
|
+
constructor(config: ContentpassConfig);
|
|
23
|
+
authenticate: (route?: "login" | "signup") => Promise<void>;
|
|
24
|
+
event: (eventCategory: string, eventAction: string, eventLabel?: string, samplingRate?: number) => Promise<void>;
|
|
25
|
+
registerObserver(observer: ContentpassObserver): void;
|
|
26
|
+
unregisterObserver(observer: ContentpassObserver): void;
|
|
27
|
+
logout: () => Promise<void>;
|
|
28
|
+
recoverFromError: () => Promise<void>;
|
|
29
|
+
countImpression: () => Promise<void>;
|
|
30
|
+
private countPaidImpressionWhenUserHasValidSub;
|
|
31
|
+
private countSampledImpression;
|
|
32
|
+
private initialiseAuthState;
|
|
33
|
+
private onNewAuthState;
|
|
34
|
+
private setupRefreshTimer;
|
|
35
|
+
private refreshToken;
|
|
36
|
+
private onRefreshTokenError;
|
|
37
|
+
private changeContentpassState;
|
|
38
|
+
private hasValidSubscriptionAndAccessToken;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=Contentpass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Contentpass.d.ts","sourceRoot":"","sources":["../../../../../react-native-contentpass/src/Contentpass.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQnE,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEpE,UAAU,oBAAoB;IAC5B,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,KAAK,EAAE,CACL,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC1D,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,YAAW,oBAAoB;IAC9D,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,gBAAgB,CAEtB;IACF,OAAO,CAAC,yBAAyB,CAA6B;IAC9D,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,EAAE,iBAAiB;IAqB9B,YAAY,GAAU,QAAQ,OAAO,GAAG,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC,CA6BrE;IAEK,KAAK,GACV,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,aAAa,MAAM,EACnB,eAAe,MAAM,mBA+BrB;IAEK,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB;IAU9C,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB;IAOhD,MAAM,sBAOX;IAEK,gBAAgB,sBAOrB;IAEK,eAAe,sBAQpB;IAEF,OAAO,CAAC,sCAAsC,CAgB5C;IAEF,OAAO,CAAC,sBAAsB,CAE5B;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,cAAc,CAkCpB;IAEF,OAAO,CAAC,iBAAiB,CA4BvB;IAEF,OAAO,CAAC,YAAY,CAwBlB;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,kCAAkC,CAMxC;CACH"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type OidcAuthState = {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
accessTokenExpirationDate: string;
|
|
4
|
+
idToken: string;
|
|
5
|
+
refreshToken: string | null;
|
|
6
|
+
tokenType: string;
|
|
7
|
+
};
|
|
8
|
+
export default class OidcAuthStateStorage {
|
|
9
|
+
private readonly key;
|
|
10
|
+
constructor(clientId: string);
|
|
11
|
+
storeOidcAuthState(authState: OidcAuthState): Promise<void>;
|
|
12
|
+
getOidcAuthState(): Promise<OidcAuthState | undefined>;
|
|
13
|
+
clearOidcAuthState(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=OidcAuthStateStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OidcAuthStateStorage.d.ts","sourceRoot":"","sources":["../../../../../react-native-contentpass/src/OidcAuthStateStorage.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,MAAM,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAET,QAAQ,EAAE,MAAM;IAIf,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAI3C,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAMtD,kBAAkB;CAShC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidcConsts.d.ts","sourceRoot":"","sources":["../../../../../../react-native-contentpass/src/consts/oidcConsts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,UAA8C,CAAC;AAClE,eAAO,MAAM,cAAc,qBAAqB,CAAC;AACjD,eAAO,MAAM,qBAAqB,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchContentpassToken.d.ts","sourceRoot":"","sources":["../../../../../../react-native-contentpass/src/contentpassTokenUtils/fetchContentpassToken.ts"],"names":[],"mappings":"AAEA,wBAA8B,qBAAqB,CAAC,EAClD,OAAO,EACP,UAAU,EACV,MAAM,GACP,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,gBAsBA"}
|
package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/parseContentpassToken.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type ParsedToken = {
|
|
2
|
+
body: {
|
|
3
|
+
aud: string;
|
|
4
|
+
auth: boolean;
|
|
5
|
+
exp: number;
|
|
6
|
+
iat: number;
|
|
7
|
+
plans: string[];
|
|
8
|
+
type: string;
|
|
9
|
+
};
|
|
10
|
+
header: {
|
|
11
|
+
alg: string;
|
|
12
|
+
kid: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export default function parseContentpassToken(contentpassToken: string): ParsedToken;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=parseContentpassToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseContentpassToken.d.ts","sourceRoot":"","sources":["../../../../../../react-native-contentpass/src/contentpassTokenUtils/parseContentpassToken.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAC3C,gBAAgB,EAAE,MAAM,GACvB,WAAW,CAab"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateSubscription.d.ts","sourceRoot":"","sources":["../../../../../../react-native-contentpass/src/contentpassTokenUtils/validateSubscription.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,WAQpE"}
|
package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendPageViewEvent.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type HitEndpointArgs = {
|
|
2
|
+
propertyId: string;
|
|
3
|
+
impressionId: string;
|
|
4
|
+
accessToken: string;
|
|
5
|
+
};
|
|
6
|
+
export default function sendPageViewEvent(apiUrl: string, payload: HitEndpointArgs): Promise<Response>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=sendPageViewEvent.d.ts.map
|
package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendPageViewEvent.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendPageViewEvent.d.ts","sourceRoot":"","sources":["../../../../../../react-native-contentpass/src/countImpressionUtils/sendPageViewEvent.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAA8B,iBAAiB,CAC7C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,qBAkBzB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type StatsPayload = {
|
|
2
|
+
ea: string;
|
|
3
|
+
ec: string;
|
|
4
|
+
el?: string;
|
|
5
|
+
cpabid: string;
|
|
6
|
+
cppid: string;
|
|
7
|
+
cpsr: number;
|
|
8
|
+
};
|
|
9
|
+
export default function sendStats(apiUrl: string, payload: StatsPayload): Promise<Response>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=sendStats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendStats.d.ts","sourceRoot":"","sources":["../../../../../../react-native-contentpass/src/countImpressionUtils/sendStats.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAA8B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,qBAc5E"}
|