@contentpass/react-native-contentpass 0.2.6 → 0.3.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 +10 -0
- package/lib/commonjs/Contentpass.js +95 -5
- package/lib/commonjs/Contentpass.js.map +1 -1
- package/lib/commonjs/{utils → contentpassTokenUtils}/fetchContentpassToken.js +3 -0
- package/lib/commonjs/contentpassTokenUtils/fetchContentpassToken.js.map +1 -0
- package/lib/commonjs/contentpassTokenUtils/parseContentpassToken.js.map +1 -0
- package/lib/commonjs/contentpassTokenUtils/validateSubscription.js.map +1 -0
- package/lib/commonjs/countImpressionUtils/sendPageViewEvent.js +24 -0
- package/lib/commonjs/countImpressionUtils/sendPageViewEvent.js.map +1 -0
- package/lib/commonjs/countImpressionUtils/sendStats.js +20 -0
- package/lib/commonjs/countImpressionUtils/sendStats.js.map +1 -0
- package/lib/commonjs/logger.js +27 -0
- package/lib/commonjs/logger.js.map +1 -0
- package/lib/commonjs/sentryIntegration.js +5 -0
- package/lib/commonjs/sentryIntegration.js.map +1 -1
- package/lib/module/Contentpass.js +93 -5
- package/lib/module/Contentpass.js.map +1 -1
- package/lib/module/{utils → contentpassTokenUtils}/fetchContentpassToken.js +3 -0
- package/lib/module/contentpassTokenUtils/fetchContentpassToken.js.map +1 -0
- package/lib/module/contentpassTokenUtils/parseContentpassToken.js.map +1 -0
- package/lib/module/contentpassTokenUtils/validateSubscription.js.map +1 -0
- package/lib/module/countImpressionUtils/sendPageViewEvent.js +20 -0
- package/lib/module/countImpressionUtils/sendPageViewEvent.js.map +1 -0
- package/lib/module/countImpressionUtils/sendStats.js +16 -0
- package/lib/module/countImpressionUtils/sendStats.js.map +1 -0
- package/lib/module/logger.js +22 -0
- package/lib/module/logger.js.map +1 -0
- package/lib/module/sentryIntegration.js +4 -0
- package/lib/module/sentryIntegration.js.map +1 -1
- package/lib/typescript/commonjs/src/Contentpass.d.ts +15 -1
- package/lib/typescript/commonjs/src/Contentpass.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/contentpassTokenUtils/fetchContentpassToken.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/contentpassTokenUtils/parseContentpassToken.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/contentpassTokenUtils/validateSubscription.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/countImpressionUtils/sendPageViewEvent.d.ts +8 -0
- package/lib/typescript/commonjs/src/countImpressionUtils/sendPageViewEvent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/countImpressionUtils/sendStats.d.ts +10 -0
- package/lib/typescript/commonjs/src/countImpressionUtils/sendStats.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/logger.d.ts +8 -0
- package/lib/typescript/commonjs/src/logger.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/sentryIntegration.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/ContentpassConfig.d.ts +4 -0
- package/lib/typescript/commonjs/src/types/ContentpassConfig.d.ts.map +1 -1
- package/lib/typescript/module/src/Contentpass.d.ts +15 -1
- package/lib/typescript/module/src/Contentpass.d.ts.map +1 -1
- package/lib/typescript/module/src/contentpassTokenUtils/fetchContentpassToken.d.ts.map +1 -0
- package/lib/typescript/module/src/contentpassTokenUtils/parseContentpassToken.d.ts.map +1 -0
- package/lib/typescript/module/src/contentpassTokenUtils/validateSubscription.d.ts.map +1 -0
- package/lib/typescript/module/src/countImpressionUtils/sendPageViewEvent.d.ts +8 -0
- package/lib/typescript/module/src/countImpressionUtils/sendPageViewEvent.d.ts.map +1 -0
- package/lib/typescript/module/src/countImpressionUtils/sendStats.d.ts +10 -0
- package/lib/typescript/module/src/countImpressionUtils/sendStats.d.ts.map +1 -0
- package/lib/typescript/module/src/logger.d.ts +8 -0
- package/lib/typescript/module/src/logger.d.ts.map +1 -0
- package/lib/typescript/module/src/sentryIntegration.d.ts.map +1 -1
- package/lib/typescript/module/src/types/ContentpassConfig.d.ts +4 -0
- package/lib/typescript/module/src/types/ContentpassConfig.d.ts.map +1 -1
- package/package.json +4 -2
- package/lib/commonjs/utils/fetchContentpassToken.js.map +0 -1
- package/lib/commonjs/utils/parseContentpassToken.js.map +0 -1
- package/lib/commonjs/utils/validateSubscription.js.map +0 -1
- package/lib/module/utils/fetchContentpassToken.js.map +0 -1
- package/lib/module/utils/parseContentpassToken.js.map +0 -1
- package/lib/module/utils/validateSubscription.js.map +0 -1
- package/lib/typescript/commonjs/src/utils/fetchContentpassToken.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/utils/parseContentpassToken.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/utils/validateSubscription.d.ts.map +0 -1
- package/lib/typescript/module/src/utils/fetchContentpassToken.d.ts.map +0 -1
- package/lib/typescript/module/src/utils/parseContentpassToken.d.ts.map +0 -1
- package/lib/typescript/module/src/utils/validateSubscription.d.ts.map +0 -1
- /package/lib/commonjs/{utils → contentpassTokenUtils}/parseContentpassToken.js +0 -0
- /package/lib/commonjs/{utils → contentpassTokenUtils}/validateSubscription.js +0 -0
- /package/lib/module/{utils → contentpassTokenUtils}/parseContentpassToken.js +0 -0
- /package/lib/module/{utils → contentpassTokenUtils}/validateSubscription.js +0 -0
- /package/lib/typescript/commonjs/src/{utils → contentpassTokenUtils}/fetchContentpassToken.d.ts +0 -0
- /package/lib/typescript/commonjs/src/{utils → contentpassTokenUtils}/parseContentpassToken.d.ts +0 -0
- /package/lib/typescript/commonjs/src/{utils → contentpassTokenUtils}/validateSubscription.d.ts +0 -0
- /package/lib/typescript/module/src/{utils → contentpassTokenUtils}/fetchContentpassToken.d.ts +0 -0
- /package/lib/typescript/module/src/{utils → contentpassTokenUtils}/parseContentpassToken.d.ts +0 -0
- /package/lib/typescript/module/src/{utils → contentpassTokenUtils}/validateSubscription.d.ts +0 -0
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import uuid from 'react-native-uuid';
|
|
3
4
|
import OidcAuthStateStorage from "./OidcAuthStateStorage.js";
|
|
4
5
|
import { ContentpassStateType } from "./types/ContentpassState.js";
|
|
5
6
|
import { authorize, refresh } from 'react-native-app-auth';
|
|
6
7
|
import { REFRESH_TOKEN_RETRIES, SCOPES } from "./consts/oidcConsts.js";
|
|
7
8
|
import { RefreshTokenStrategy } from "./types/RefreshTokenStrategy.js";
|
|
8
|
-
import fetchContentpassToken from "./
|
|
9
|
-
import validateSubscription from "./
|
|
9
|
+
import fetchContentpassToken from "./contentpassTokenUtils/fetchContentpassToken.js";
|
|
10
|
+
import validateSubscription from "./contentpassTokenUtils/validateSubscription.js";
|
|
10
11
|
import { reportError, setSentryExtraAttribute } from "./sentryIntegration.js";
|
|
12
|
+
import sendStats from "./countImpressionUtils/sendStats.js";
|
|
13
|
+
import sendPageViewEvent from "./countImpressionUtils/sendPageViewEvent.js";
|
|
14
|
+
import logger, { enableLogger } from "./logger.js";
|
|
15
|
+
const DEFAULT_SAMPLING_RATE = 0.05;
|
|
11
16
|
export default class Contentpass {
|
|
12
17
|
contentpassState = {
|
|
13
18
|
state: ContentpassStateType.INITIALISING
|
|
@@ -16,12 +21,22 @@ export default class Contentpass {
|
|
|
16
21
|
oidcAuthState = null;
|
|
17
22
|
refreshTimer = null;
|
|
18
23
|
constructor(config) {
|
|
24
|
+
if (config.logLevel) {
|
|
25
|
+
enableLogger(config.logLevel);
|
|
26
|
+
}
|
|
27
|
+
logger.debug('Contentpass initialised with config', config);
|
|
28
|
+
if (config.samplingRate && (config.samplingRate < 0 || config.samplingRate > 1)) {
|
|
29
|
+
logger.error('Sampling rate must be between 0 and 1');
|
|
30
|
+
throw new Error('Sampling rate must be between 0 and 1');
|
|
31
|
+
}
|
|
32
|
+
this.samplingRate = config.samplingRate || DEFAULT_SAMPLING_RATE;
|
|
19
33
|
this.authStateStorage = new OidcAuthStateStorage(config.propertyId);
|
|
20
34
|
this.config = config;
|
|
21
35
|
setSentryExtraAttribute('propertyId', config.propertyId);
|
|
22
36
|
this.initialiseAuthState();
|
|
23
37
|
}
|
|
24
38
|
authenticate = async () => {
|
|
39
|
+
logger.info('Starting authentication flow');
|
|
25
40
|
let result;
|
|
26
41
|
try {
|
|
27
42
|
result = await authorize({
|
|
@@ -46,9 +61,11 @@ export default class Contentpass {
|
|
|
46
61
|
});
|
|
47
62
|
throw err;
|
|
48
63
|
}
|
|
64
|
+
logger.info('Authentication flow finished, checking subscription...');
|
|
49
65
|
await this.onNewAuthState(result);
|
|
50
66
|
};
|
|
51
67
|
registerObserver(observer) {
|
|
68
|
+
logger.info('Registering observer');
|
|
52
69
|
if (this.contentpassStateObservers.includes(observer)) {
|
|
53
70
|
return;
|
|
54
71
|
}
|
|
@@ -56,9 +73,11 @@ export default class Contentpass {
|
|
|
56
73
|
this.contentpassStateObservers.push(observer);
|
|
57
74
|
}
|
|
58
75
|
unregisterObserver(observer) {
|
|
76
|
+
logger.info('Unregistering observer');
|
|
59
77
|
this.contentpassStateObservers = this.contentpassStateObservers.filter(o => o !== observer);
|
|
60
78
|
}
|
|
61
79
|
logout = async () => {
|
|
80
|
+
logger.info('Logging out and clearing auth state');
|
|
62
81
|
await this.authStateStorage.clearOidcAuthState();
|
|
63
82
|
this.changeContentpassState({
|
|
64
83
|
state: ContentpassStateType.UNAUTHENTICATED,
|
|
@@ -66,42 +85,97 @@ export default class Contentpass {
|
|
|
66
85
|
});
|
|
67
86
|
};
|
|
68
87
|
recoverFromError = async () => {
|
|
88
|
+
logger.info('Recovering from error');
|
|
69
89
|
this.changeContentpassState({
|
|
70
90
|
state: ContentpassStateType.INITIALISING
|
|
71
91
|
});
|
|
72
92
|
await this.initialiseAuthState();
|
|
73
93
|
};
|
|
94
|
+
countImpression = async () => {
|
|
95
|
+
await Promise.all([this.countPaidImpressionWhenUserHasValidSub(), this.countSampledImpression()]);
|
|
96
|
+
};
|
|
97
|
+
countPaidImpressionWhenUserHasValidSub = async () => {
|
|
98
|
+
if (!this.hasValidSubscriptionAndAccessToken()) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
logger.info('Counting paid impression');
|
|
102
|
+
const impressionId = uuid.v4();
|
|
103
|
+
try {
|
|
104
|
+
await sendPageViewEvent(this.config.apiUrl, {
|
|
105
|
+
propertyId: this.config.propertyId,
|
|
106
|
+
impressionId,
|
|
107
|
+
accessToken: this.oidcAuthState.accessToken
|
|
108
|
+
});
|
|
109
|
+
} catch (err) {
|
|
110
|
+
reportError(err, {
|
|
111
|
+
msg: 'Failed to count paid impression'
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
countSampledImpression = async () => {
|
|
116
|
+
const generatedSample = Math.random();
|
|
117
|
+
const publicId = this.config.propertyId.slice(0, 8);
|
|
118
|
+
const instanceId = uuid.v4();
|
|
119
|
+
if (generatedSample >= this.samplingRate) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
logger.info('Counting sampled impression');
|
|
123
|
+
try {
|
|
124
|
+
await sendStats(this.config.apiUrl, {
|
|
125
|
+
ea: 'load',
|
|
126
|
+
ec: 'tcf-sampled',
|
|
127
|
+
cpabid: instanceId,
|
|
128
|
+
cppid: publicId,
|
|
129
|
+
cpsr: this.samplingRate
|
|
130
|
+
});
|
|
131
|
+
} catch (err) {
|
|
132
|
+
reportError(err, {
|
|
133
|
+
msg: 'Failed to count sampled impression'
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
};
|
|
74
137
|
initialiseAuthState = async () => {
|
|
75
138
|
const authState = await this.authStateStorage.getOidcAuthState();
|
|
76
139
|
if (authState) {
|
|
140
|
+
logger.debug('Found auth state in storage, initialising with it');
|
|
77
141
|
await this.onNewAuthState(authState);
|
|
78
142
|
return;
|
|
79
143
|
}
|
|
144
|
+
logger.debug('No auth state found in storage, initialising unauthenticated');
|
|
80
145
|
this.changeContentpassState({
|
|
81
146
|
state: ContentpassStateType.UNAUTHENTICATED,
|
|
82
147
|
hasValidSubscription: false
|
|
83
148
|
});
|
|
84
149
|
};
|
|
85
150
|
onNewAuthState = async authState => {
|
|
151
|
+
logger.debug('New auth state received');
|
|
86
152
|
this.oidcAuthState = authState;
|
|
87
153
|
await this.authStateStorage.storeOidcAuthState(authState);
|
|
88
154
|
const strategy = this.setupRefreshTimer();
|
|
89
155
|
// if instant refresh, no need to check subscription as it will happen in the refresh
|
|
90
156
|
if (strategy === RefreshTokenStrategy.INSTANTLY) {
|
|
157
|
+
logger.debug('Instant refresh, skipping subscription check');
|
|
91
158
|
return;
|
|
92
159
|
}
|
|
93
160
|
try {
|
|
161
|
+
logger.info('Checking subscription');
|
|
94
162
|
const contentpassToken = await fetchContentpassToken({
|
|
95
163
|
issuer: this.config.issuer,
|
|
96
164
|
propertyId: this.config.propertyId,
|
|
97
165
|
idToken: this.oidcAuthState.idToken
|
|
98
166
|
});
|
|
99
167
|
const hasValidSubscription = validateSubscription(contentpassToken);
|
|
168
|
+
logger.info({
|
|
169
|
+
hasValidSubscription
|
|
170
|
+
}, 'Subscription check successful');
|
|
100
171
|
this.changeContentpassState({
|
|
101
172
|
state: ContentpassStateType.AUTHENTICATED,
|
|
102
173
|
hasValidSubscription
|
|
103
174
|
});
|
|
104
175
|
} catch (err) {
|
|
176
|
+
reportError(err, {
|
|
177
|
+
msg: 'Failed to fetch contentpass token and validate subscription'
|
|
178
|
+
});
|
|
105
179
|
this.changeContentpassState({
|
|
106
180
|
state: ContentpassStateType.ERROR,
|
|
107
181
|
error: err
|
|
@@ -111,18 +185,23 @@ export default class Contentpass {
|
|
|
111
185
|
setupRefreshTimer = () => {
|
|
112
186
|
const accessTokenExpirationDate = this.oidcAuthState?.accessTokenExpirationDate;
|
|
113
187
|
if (!accessTokenExpirationDate) {
|
|
188
|
+
logger.warn('No access token expiration date provided');
|
|
114
189
|
return RefreshTokenStrategy.NO_REFRESH;
|
|
115
190
|
}
|
|
116
191
|
const now = new Date();
|
|
117
192
|
const expirationDate = new Date(accessTokenExpirationDate);
|
|
118
193
|
const timeDiff = expirationDate.getTime() - now.getTime();
|
|
119
194
|
if (timeDiff <= 0) {
|
|
195
|
+
logger.debug('Access token expired, refreshing instantly');
|
|
120
196
|
this.refreshToken(0);
|
|
121
197
|
return RefreshTokenStrategy.INSTANTLY;
|
|
122
198
|
}
|
|
123
199
|
if (this.refreshTimer) {
|
|
124
200
|
clearTimeout(this.refreshTimer);
|
|
125
201
|
}
|
|
202
|
+
logger.debug({
|
|
203
|
+
timeDiff
|
|
204
|
+
}, 'Setting up refresh timer');
|
|
126
205
|
this.refreshTimer = setTimeout(async () => {
|
|
127
206
|
await this.refreshToken(0);
|
|
128
207
|
}, timeDiff);
|
|
@@ -134,6 +213,7 @@ export default class Contentpass {
|
|
|
134
213
|
return;
|
|
135
214
|
}
|
|
136
215
|
try {
|
|
216
|
+
logger.info('Refreshing token');
|
|
137
217
|
const refreshResult = await refresh({
|
|
138
218
|
clientId: this.config.propertyId,
|
|
139
219
|
redirectUrl: this.config.redirectUrl,
|
|
@@ -143,26 +223,34 @@ export default class Contentpass {
|
|
|
143
223
|
refreshToken: this.oidcAuthState.refreshToken
|
|
144
224
|
});
|
|
145
225
|
await this.onNewAuthState(refreshResult);
|
|
226
|
+
logger.info('Token refreshed successfully');
|
|
146
227
|
} catch (err) {
|
|
147
228
|
await this.onRefreshTokenError(counter, err);
|
|
148
229
|
}
|
|
149
230
|
};
|
|
150
231
|
onRefreshTokenError = async (counter, err) => {
|
|
151
|
-
reportError(err, {
|
|
152
|
-
msg: `Failed to refresh token after ${counter} retries`
|
|
153
|
-
});
|
|
154
232
|
// FIXME: add handling for specific error to not retry in every case
|
|
155
233
|
if (counter < REFRESH_TOKEN_RETRIES) {
|
|
234
|
+
logger.warn({
|
|
235
|
+
err,
|
|
236
|
+
counter
|
|
237
|
+
}, 'Failed to refresh token, retrying');
|
|
156
238
|
const delay = counter * 1000 * 10;
|
|
157
239
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
158
240
|
await this.refreshToken(counter + 1);
|
|
159
241
|
return;
|
|
160
242
|
}
|
|
243
|
+
reportError(err, {
|
|
244
|
+
msg: `Failed to refresh token after ${counter} retries`
|
|
245
|
+
});
|
|
161
246
|
await this.logout();
|
|
162
247
|
};
|
|
163
248
|
changeContentpassState = state => {
|
|
164
249
|
this.contentpassState = state;
|
|
165
250
|
this.contentpassStateObservers.forEach(observer => observer(state));
|
|
166
251
|
};
|
|
252
|
+
hasValidSubscriptionAndAccessToken = () => {
|
|
253
|
+
return this.contentpassState.state === ContentpassStateType.AUTHENTICATED && this.contentpassState.hasValidSubscription && this.oidcAuthState?.accessToken;
|
|
254
|
+
};
|
|
167
255
|
}
|
|
168
256
|
//# sourceMappingURL=Contentpass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OidcAuthStateStorage","ContentpassStateType","authorize","refresh","REFRESH_TOKEN_RETRIES","SCOPES","RefreshTokenStrategy","fetchContentpassToken","validateSubscription","reportError","setSentryExtraAttribute","Contentpass","contentpassState","state","INITIALISING","contentpassStateObservers","oidcAuthState","refreshTimer","constructor","config","authStateStorage","propertyId","initialiseAuthState","authenticate","result","clientId","redirectUrl","issuer","scopes","additionalParameters","cp_route","prompt","cp_property","cp_plan","planId","err","msg","changeContentpassState","ERROR","
|
|
1
|
+
{"version":3,"names":["uuid","OidcAuthStateStorage","ContentpassStateType","authorize","refresh","REFRESH_TOKEN_RETRIES","SCOPES","RefreshTokenStrategy","fetchContentpassToken","validateSubscription","reportError","setSentryExtraAttribute","sendStats","sendPageViewEvent","logger","enableLogger","DEFAULT_SAMPLING_RATE","Contentpass","contentpassState","state","INITIALISING","contentpassStateObservers","oidcAuthState","refreshTimer","constructor","config","logLevel","debug","samplingRate","error","Error","authStateStorage","propertyId","initialiseAuthState","authenticate","info","result","clientId","redirectUrl","issuer","scopes","additionalParameters","cp_route","prompt","cp_property","cp_plan","planId","err","msg","changeContentpassState","ERROR","onNewAuthState","registerObserver","observer","includes","push","unregisterObserver","filter","o","logout","clearOidcAuthState","UNAUTHENTICATED","hasValidSubscription","recoverFromError","countImpression","Promise","all","countPaidImpressionWhenUserHasValidSub","countSampledImpression","hasValidSubscriptionAndAccessToken","impressionId","v4","apiUrl","accessToken","generatedSample","Math","random","publicId","slice","instanceId","ea","ec","cpabid","cppid","cpsr","authState","getOidcAuthState","storeOidcAuthState","strategy","setupRefreshTimer","INSTANTLY","contentpassToken","idToken","AUTHENTICATED","accessTokenExpirationDate","warn","NO_REFRESH","now","Date","expirationDate","timeDiff","getTime","refreshToken","clearTimeout","setTimeout","TIMER_SET","counter","refreshResult","onRefreshTokenError","delay","resolve","forEach"],"sourceRoot":"../../src","sources":["Contentpass.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,mBAAmB;AACpC,OAAOC,oBAAoB,MAEpB,2BAAwB;AAC/B,SAEEC,oBAAoB,QACf,6BAA0B;AACjC,SACEC,SAAS,EAETC,OAAO,QACF,uBAAuB;AAC9B,SAASC,qBAAqB,EAAEC,MAAM,QAAQ,wBAAqB;AACnE,SAASC,oBAAoB,QAAQ,iCAA8B;AACnE,OAAOC,qBAAqB,MAAM,kDAA+C;AACjF,OAAOC,oBAAoB,MAAM,iDAA8C;AAE/E,SAASC,WAAW,EAAEC,uBAAuB,QAAQ,wBAAqB;AAC1E,OAAOC,SAAS,MAAM,qCAAkC;AACxD,OAAOC,iBAAiB,MAAM,6CAA0C;AACxE,OAAOC,MAAM,IAAIC,YAAY,QAAQ,aAAU;AAE/C,MAAMC,qBAAqB,GAAG,IAAI;AAalC,eAAe,MAAMC,WAAW,CAAiC;EAKvDC,gBAAgB,GAAqB;IAC3CC,KAAK,EAAEjB,oBAAoB,CAACkB;EAC9B,CAAC;EACOC,yBAAyB,GAA0B,EAAE;EACrDC,aAAa,GAAyB,IAAI;EAC1CC,YAAY,GAA0B,IAAI;EAElDC,WAAWA,CAACC,MAAyB,EAAE;IACrC,IAAIA,MAAM,CAACC,QAAQ,EAAE;MACnBX,YAAY,CAACU,MAAM,CAACC,QAAQ,CAAC;IAC/B;IAEAZ,MAAM,CAACa,KAAK,CAAC,qCAAqC,EAAEF,MAAM,CAAC;IAC3D,IACEA,MAAM,CAACG,YAAY,KAClBH,MAAM,CAACG,YAAY,GAAG,CAAC,IAAIH,MAAM,CAACG,YAAY,GAAG,CAAC,CAAC,EACpD;MACAd,MAAM,CAACe,KAAK,CAAC,uCAAuC,CAAC;MACrD,MAAM,IAAIC,KAAK,CAAC,uCAAuC,CAAC;IAC1D;IACA,IAAI,CAACF,YAAY,GAAGH,MAAM,CAACG,YAAY,IAAIZ,qBAAqB;IAChE,IAAI,CAACe,gBAAgB,GAAG,IAAI9B,oBAAoB,CAACwB,MAAM,CAACO,UAAU,CAAC;IACnE,IAAI,CAACP,MAAM,GAAGA,MAAM;IACpBd,uBAAuB,CAAC,YAAY,EAAEc,MAAM,CAACO,UAAU,CAAC;IACxD,IAAI,CAACC,mBAAmB,CAAC,CAAC;EAC5B;EAEOC,YAAY,GAAG,MAAAA,CAAA,KAA2B;IAC/CpB,MAAM,CAACqB,IAAI,CAAC,8BAA8B,CAAC;IAC3C,IAAIC,MAAuB;IAE3B,IAAI;MACFA,MAAM,GAAG,MAAMjC,SAAS,CAAC;QACvBkC,QAAQ,EAAE,IAAI,CAACZ,MAAM,CAACO,UAAU;QAChCM,WAAW,EAAE,IAAI,CAACb,MAAM,CAACa,WAAW;QACpCC,MAAM,EAAE,IAAI,CAACd,MAAM,CAACc,MAAM;QAC1BC,MAAM,EAAElC,MAAM;QACdmC,oBAAoB,EAAE;UACpBC,QAAQ,EAAE,OAAO;UACjBC,MAAM,EAAE,SAAS;UACjBC,WAAW,EAAE,IAAI,CAACnB,MAAM,CAACO,UAAU;UACnCa,OAAO,EAAE,IAAI,CAACpB,MAAM,CAACqB;QACvB;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOC,GAAQ,EAAE;MACjBrC,WAAW,CAACqC,GAAG,EAAE;QAAEC,GAAG,EAAE;MAAsB,CAAC,CAAC;MAChD,IAAI,CAACC,sBAAsB,CAAC;QAC1B9B,KAAK,EAAEjB,oBAAoB,CAACgD,KAAK;QACjCrB,KAAK,EAAEkB;MACT,CAAC,CAAC;MAEF,MAAMA,GAAG;IACX;IACAjC,MAAM,CAACqB,IAAI,CAAC,wDAAwD,CAAC;IAErE,MAAM,IAAI,CAACgB,cAAc,CAACf,MAAM,CAAC;EACnC,CAAC;EAEMgB,gBAAgBA,CAACC,QAA6B,EAAE;IACrDvC,MAAM,CAACqB,IAAI,CAAC,sBAAsB,CAAC;IACnC,IAAI,IAAI,CAACd,yBAAyB,CAACiC,QAAQ,CAACD,QAAQ,CAAC,EAAE;MACrD;IACF;IAEAA,QAAQ,CAAC,IAAI,CAACnC,gBAAgB,CAAC;IAC/B,IAAI,CAACG,yBAAyB,CAACkC,IAAI,CAACF,QAAQ,CAAC;EAC/C;EAEOG,kBAAkBA,CAACH,QAA6B,EAAE;IACvDvC,MAAM,CAACqB,IAAI,CAAC,wBAAwB,CAAC;IACrC,IAAI,CAACd,yBAAyB,GAAG,IAAI,CAACA,yBAAyB,CAACoC,MAAM,CACnEC,CAAC,IAAKA,CAAC,KAAKL,QACf,CAAC;EACH;EAEOM,MAAM,GAAG,MAAAA,CAAA,KAAY;IAC1B7C,MAAM,CAACqB,IAAI,CAAC,qCAAqC,CAAC;IAClD,MAAM,IAAI,CAACJ,gBAAgB,CAAC6B,kBAAkB,CAAC,CAAC;IAChD,IAAI,CAACX,sBAAsB,CAAC;MAC1B9B,KAAK,EAAEjB,oBAAoB,CAAC2D,eAAe;MAC3CC,oBAAoB,EAAE;IACxB,CAAC,CAAC;EACJ,CAAC;EAEMC,gBAAgB,GAAG,MAAAA,CAAA,KAAY;IACpCjD,MAAM,CAACqB,IAAI,CAAC,uBAAuB,CAAC;IACpC,IAAI,CAACc,sBAAsB,CAAC;MAC1B9B,KAAK,EAAEjB,oBAAoB,CAACkB;IAC9B,CAAC,CAAC;IAEF,MAAM,IAAI,CAACa,mBAAmB,CAAC,CAAC;EAClC,CAAC;EAEM+B,eAAe,GAAG,MAAAA,CAAA,KAAY;IACnC,MAAMC,OAAO,CAACC,GAAG,CAAC,CAChB,IAAI,CAACC,sCAAsC,CAAC,CAAC,EAC7C,IAAI,CAACC,sBAAsB,CAAC,CAAC,CAC9B,CAAC;EACJ,CAAC;EAEOD,sCAAsC,GAAG,MAAAA,CAAA,KAAY;IAC3D,IAAI,CAAC,IAAI,CAACE,kCAAkC,CAAC,CAAC,EAAE;MAC9C;IACF;IAEAvD,MAAM,CAACqB,IAAI,CAAC,0BAA0B,CAAC;IACvC,MAAMmC,YAAY,GAAGtE,IAAI,CAACuE,EAAE,CAAC,CAAC;IAE9B,IAAI;MACF,MAAM1D,iBAAiB,CAAC,IAAI,CAACY,MAAM,CAAC+C,MAAM,EAAE;QAC1CxC,UAAU,EAAE,IAAI,CAACP,MAAM,CAACO,UAAU;QAClCsC,YAAY;QACZG,WAAW,EAAE,IAAI,CAACnD,aAAa,CAAEmD;MACnC,CAAC,CAAC;IACJ,CAAC,CAAC,OAAO1B,GAAQ,EAAE;MACjBrC,WAAW,CAACqC,GAAG,EAAE;QAAEC,GAAG,EAAE;MAAkC,CAAC,CAAC;IAC9D;EACF,CAAC;EAEOoB,sBAAsB,GAAG,MAAAA,CAAA,KAAY;IAC3C,MAAMM,eAAe,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC;IACrC,MAAMC,QAAQ,GAAG,IAAI,CAACpD,MAAM,CAACO,UAAU,CAAC8C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACnD,MAAMC,UAAU,GAAG/E,IAAI,CAACuE,EAAE,CAAC,CAAC;IAE5B,IAAIG,eAAe,IAAI,IAAI,CAAC9C,YAAY,EAAE;MACxC;IACF;IAEAd,MAAM,CAACqB,IAAI,CAAC,6BAA6B,CAAC;IAC1C,IAAI;MACF,MAAMvB,SAAS,CAAC,IAAI,CAACa,MAAM,CAAC+C,MAAM,EAAE;QAClCQ,EAAE,EAAE,MAAM;QACVC,EAAE,EAAE,aAAa;QACjBC,MAAM,EAAEH,UAAU;QAClBI,KAAK,EAAEN,QAAQ;QACfO,IAAI,EAAE,IAAI,CAACxD;MACb,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOmB,GAAQ,EAAE;MACjBrC,WAAW,CAACqC,GAAG,EAAE;QAAEC,GAAG,EAAE;MAAqC,CAAC,CAAC;IACjE;EACF,CAAC;EAEOf,mBAAmB,GAAG,MAAAA,CAAA,KAAY;IACxC,MAAMoD,SAAS,GAAG,MAAM,IAAI,CAACtD,gBAAgB,CAACuD,gBAAgB,CAAC,CAAC;IAChE,IAAID,SAAS,EAAE;MACbvE,MAAM,CAACa,KAAK,CAAC,mDAAmD,CAAC;MACjE,MAAM,IAAI,CAACwB,cAAc,CAACkC,SAAS,CAAC;MACpC;IACF;IAEAvE,MAAM,CAACa,KAAK,CACV,8DACF,CAAC;IACD,IAAI,CAACsB,sBAAsB,CAAC;MAC1B9B,KAAK,EAAEjB,oBAAoB,CAAC2D,eAAe;MAC3CC,oBAAoB,EAAE;IACxB,CAAC,CAAC;EACJ,CAAC;EAEOX,cAAc,GAAG,MAAOkC,SAAwB,IAAK;IAC3DvE,MAAM,CAACa,KAAK,CAAC,yBAAyB,CAAC;IACvC,IAAI,CAACL,aAAa,GAAG+D,SAAS;IAC9B,MAAM,IAAI,CAACtD,gBAAgB,CAACwD,kBAAkB,CAACF,SAAS,CAAC;IAEzD,MAAMG,QAAQ,GAAG,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACzC;IACA,IAAID,QAAQ,KAAKjF,oBAAoB,CAACmF,SAAS,EAAE;MAC/C5E,MAAM,CAACa,KAAK,CAAC,8CAA8C,CAAC;MAC5D;IACF;IAEA,IAAI;MACFb,MAAM,CAACqB,IAAI,CAAC,uBAAuB,CAAC;MACpC,MAAMwD,gBAAgB,GAAG,MAAMnF,qBAAqB,CAAC;QACnD+B,MAAM,EAAE,IAAI,CAACd,MAAM,CAACc,MAAM;QAC1BP,UAAU,EAAE,IAAI,CAACP,MAAM,CAACO,UAAU;QAClC4D,OAAO,EAAE,IAAI,CAACtE,aAAa,CAACsE;MAC9B,CAAC,CAAC;MACF,MAAM9B,oBAAoB,GAAGrD,oBAAoB,CAACkF,gBAAgB,CAAC;MACnE7E,MAAM,CAACqB,IAAI,CAAC;QAAE2B;MAAqB,CAAC,EAAE,+BAA+B,CAAC;MACtE,IAAI,CAACb,sBAAsB,CAAC;QAC1B9B,KAAK,EAAEjB,oBAAoB,CAAC2F,aAAa;QACzC/B;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOf,GAAQ,EAAE;MACjBrC,WAAW,CAACqC,GAAG,EAAE;QACfC,GAAG,EAAE;MACP,CAAC,CAAC;MACF,IAAI,CAACC,sBAAsB,CAAC;QAC1B9B,KAAK,EAAEjB,oBAAoB,CAACgD,KAAK;QACjCrB,KAAK,EAAEkB;MACT,CAAC,CAAC;IACJ;EACF,CAAC;EAEO0C,iBAAiB,GAAGA,CAAA,KAA4B;IACtD,MAAMK,yBAAyB,GAC7B,IAAI,CAACxE,aAAa,EAAEwE,yBAAyB;IAE/C,IAAI,CAACA,yBAAyB,EAAE;MAC9BhF,MAAM,CAACiF,IAAI,CAAC,0CAA0C,CAAC;MACvD,OAAOxF,oBAAoB,CAACyF,UAAU;IACxC;IAEA,MAAMC,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC;IACtB,MAAMC,cAAc,GAAG,IAAID,IAAI,CAACJ,yBAAyB,CAAC;IAC1D,MAAMM,QAAQ,GAAGD,cAAc,CAACE,OAAO,CAAC,CAAC,GAAGJ,GAAG,CAACI,OAAO,CAAC,CAAC;IACzD,IAAID,QAAQ,IAAI,CAAC,EAAE;MACjBtF,MAAM,CAACa,KAAK,CAAC,4CAA4C,CAAC;MAC1D,IAAI,CAAC2E,YAAY,CAAC,CAAC,CAAC;MACpB,OAAO/F,oBAAoB,CAACmF,SAAS;IACvC;IAEA,IAAI,IAAI,CAACnE,YAAY,EAAE;MACrBgF,YAAY,CAAC,IAAI,CAAChF,YAAY,CAAC;IACjC;IAEAT,MAAM,CAACa,KAAK,CAAC;MAAEyE;IAAS,CAAC,EAAE,0BAA0B,CAAC;IACtD,IAAI,CAAC7E,YAAY,GAAGiF,UAAU,CAAC,YAAY;MACzC,MAAM,IAAI,CAACF,YAAY,CAAC,CAAC,CAAC;IAC5B,CAAC,EAAEF,QAAQ,CAAC;IAEZ,OAAO7F,oBAAoB,CAACkG,SAAS;EACvC,CAAC;EAEOH,YAAY,GAAG,MAAOI,OAAe,IAAK;IAChD,IAAI,CAAC,IAAI,CAACpF,aAAa,EAAEgF,YAAY,EAAE;MACrC5F,WAAW,CAAC,IAAIoB,KAAK,CAAC,4CAA4C,CAAC,CAAC;MACpE;IACF;IAEA,IAAI;MACFhB,MAAM,CAACqB,IAAI,CAAC,kBAAkB,CAAC;MAC/B,MAAMwE,aAAa,GAAG,MAAMvG,OAAO,CACjC;QACEiC,QAAQ,EAAE,IAAI,CAACZ,MAAM,CAACO,UAAU;QAChCM,WAAW,EAAE,IAAI,CAACb,MAAM,CAACa,WAAW;QACpCC,MAAM,EAAE,IAAI,CAACd,MAAM,CAACc,MAAM;QAC1BC,MAAM,EAAElC;MACV,CAAC,EACD;QACEgG,YAAY,EAAE,IAAI,CAAChF,aAAa,CAACgF;MACnC,CACF,CAAC;MACD,MAAM,IAAI,CAACnD,cAAc,CAACwD,aAAa,CAAC;MACxC7F,MAAM,CAACqB,IAAI,CAAC,8BAA8B,CAAC;IAC7C,CAAC,CAAC,OAAOY,GAAQ,EAAE;MACjB,MAAM,IAAI,CAAC6D,mBAAmB,CAACF,OAAO,EAAE3D,GAAG,CAAC;IAC9C;EACF,CAAC;EAEO6D,mBAAmB,GAAG,MAAAA,CAAOF,OAAe,EAAE3D,GAAU,KAAK;IACnE;IACA,IAAI2D,OAAO,GAAGrG,qBAAqB,EAAE;MACnCS,MAAM,CAACiF,IAAI,CAAC;QAAEhD,GAAG;QAAE2D;MAAQ,CAAC,EAAE,mCAAmC,CAAC;MAClE,MAAMG,KAAK,GAAGH,OAAO,GAAG,IAAI,GAAG,EAAE;MACjC,MAAM,IAAIzC,OAAO,CAAE6C,OAAO,IAAKN,UAAU,CAACM,OAAO,EAAED,KAAK,CAAC,CAAC;MAC1D,MAAM,IAAI,CAACP,YAAY,CAACI,OAAO,GAAG,CAAC,CAAC;MACpC;IACF;IAEAhG,WAAW,CAACqC,GAAG,EAAE;MACfC,GAAG,EAAE,iCAAiC0D,OAAO;IAC/C,CAAC,CAAC;IAEF,MAAM,IAAI,CAAC/C,MAAM,CAAC,CAAC;EACrB,CAAC;EAEOV,sBAAsB,GAAI9B,KAAuB,IAAK;IAC5D,IAAI,CAACD,gBAAgB,GAAGC,KAAK;IAC7B,IAAI,CAACE,yBAAyB,CAAC0F,OAAO,CAAE1D,QAAQ,IAAKA,QAAQ,CAAClC,KAAK,CAAC,CAAC;EACvE,CAAC;EAEOkD,kCAAkC,GAAGA,CAAA,KAAM;IACjD,OACE,IAAI,CAACnD,gBAAgB,CAACC,KAAK,KAAKjB,oBAAoB,CAAC2F,aAAa,IAClE,IAAI,CAAC3E,gBAAgB,CAAC4C,oBAAoB,IAC1C,IAAI,CAACxC,aAAa,EAAEmD,WAAW;EAEnC,CAAC;AACH","ignoreList":[]}
|
|
@@ -17,6 +17,9 @@ export default async function fetchContentpassToken({
|
|
|
17
17
|
client_id: propertyId
|
|
18
18
|
}).toString()
|
|
19
19
|
});
|
|
20
|
+
if (!tokenEndpointResponse.ok) {
|
|
21
|
+
throw new Error(`Failed to fetch Contentpass token, status: ${tokenEndpointResponse.statusText}`);
|
|
22
|
+
}
|
|
20
23
|
const {
|
|
21
24
|
contentpass_token
|
|
22
25
|
} = await tokenEndpointResponse.json();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TOKEN_ENDPOINT","fetchContentpassToken","idToken","propertyId","issuer","tokenEndpointResponse","fetch","method","headers","body","URLSearchParams","grant_type","subject_token","client_id","toString","ok","Error","statusText","contentpass_token","json"],"sourceRoot":"../../../src","sources":["contentpassTokenUtils/fetchContentpassToken.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,yBAAsB;AAErD,eAAe,eAAeC,qBAAqBA,CAAC;EAClDC,OAAO;EACPC,UAAU;EACVC;AAKF,CAAC,EAAE;EACD,MAAMC,qBAAqB,GAAG,MAAMC,KAAK,CAAC,GAAGF,MAAM,GAAGJ,cAAc,EAAE,EAAE;IACtEO,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB,CAAC;IACDC,IAAI,EAAE,IAAIC,eAAe,CAAC;MACxBC,UAAU,EAAE,mBAAmB;MAC/BC,aAAa,EAAEV,OAAO;MACtBW,SAAS,EAAEV;IACb,CAAC,CAAC,CAACW,QAAQ,CAAC;EACd,CAAC,CAAC;EAEF,IAAI,CAACT,qBAAqB,CAACU,EAAE,EAAE;IAC7B,MAAM,IAAIC,KAAK,CACb,8CAA8CX,qBAAqB,CAACY,UAAU,EAChF,CAAC;EACH;EAEA,MAAM;IAAEC;EAAkB,CAAC,GAAG,MAAMb,qBAAqB,CAACc,IAAI,CAAC,CAAC;EAEhE,OAAOD,iBAAiB;AAC1B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parseContentpassToken","contentpassToken","tokenParts","split","length","Error","header","JSON","parse","atob","body"],"sourceRoot":"../../../src","sources":["contentpassTokenUtils/parseContentpassToken.ts"],"mappings":";;AAeA,eAAe,SAASA,qBAAqBA,CAC3CC,gBAAwB,EACX;EACb,MAAMC,UAAU,GAAGD,gBAAgB,CAACE,KAAK,CAAC,GAAG,CAAC;EAC9C,IAAID,UAAU,CAACE,MAAM,GAAG,CAAC,EAAE;IACzB,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;EACtE;EAEA,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACP,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;EAC/C,MAAMQ,IAAI,GAAGH,IAAI,CAACC,KAAK,CAACC,IAAI,CAACP,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;EAE7C,OAAO;IACLI,MAAM;IACNI;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parseContentpassToken","reportError","validateSubscription","contentpassToken","body","auth","plans","length","err","msg"],"sourceRoot":"../../../src","sources":["contentpassTokenUtils/validateSubscription.ts"],"mappings":";;AAAA,OAAOA,qBAAqB,MAAM,4BAAyB;AAC3D,SAASC,WAAW,QAAQ,yBAAsB;AAElD,eAAe,SAASC,oBAAoBA,CAACC,gBAAwB,EAAE;EACrE,IAAI;IACF,MAAM;MAAEC;IAAK,CAAC,GAAGJ,qBAAqB,CAACG,gBAAgB,CAAC;IACxD,OAAO,CAAC,CAACC,IAAI,CAACC,IAAI,IAAI,CAAC,CAACD,IAAI,CAACE,KAAK,CAACC,MAAM;EAC3C,CAAC,CAAC,OAAOC,GAAQ,EAAE;IACjBP,WAAW,CAACO,GAAG,EAAE;MAAEC,GAAG,EAAE;IAAkC,CAAC,CAAC;IAC5D,OAAO,KAAK;EACd;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export default async function sendPageViewEvent(apiUrl, payload) {
|
|
4
|
+
const {
|
|
5
|
+
propertyId,
|
|
6
|
+
impressionId,
|
|
7
|
+
accessToken
|
|
8
|
+
} = payload;
|
|
9
|
+
const path = `pass/hit?pid=${propertyId}&iid=${impressionId}&t=pageview`;
|
|
10
|
+
const response = await fetch(`${apiUrl}/${path}`, {
|
|
11
|
+
headers: {
|
|
12
|
+
Authorization: `Bearer ${accessToken}`
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
if (!response.ok) {
|
|
16
|
+
throw new Error(`Failed send page view event, status: ${response.statusText}`);
|
|
17
|
+
}
|
|
18
|
+
return response;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=sendPageViewEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sendPageViewEvent","apiUrl","payload","propertyId","impressionId","accessToken","path","response","fetch","headers","Authorization","ok","Error","statusText"],"sourceRoot":"../../../src","sources":["countImpressionUtils/sendPageViewEvent.ts"],"mappings":";;AAMA,eAAe,eAAeA,iBAAiBA,CAC7CC,MAAc,EACdC,OAAwB,EACxB;EACA,MAAM;IAAEC,UAAU;IAAEC,YAAY;IAAEC;EAAY,CAAC,GAAGH,OAAO;EACzD,MAAMI,IAAI,GAAG,gBAAgBH,UAAU,QAAQC,YAAY,aAAa;EAExE,MAAMG,QAAQ,GAAG,MAAMC,KAAK,CAAC,GAAGP,MAAM,IAAIK,IAAI,EAAE,EAAE;IAChDG,OAAO,EAAE;MACPC,aAAa,EAAE,UAAUL,WAAW;IACtC;EACF,CAAC,CAAC;EAEF,IAAI,CAACE,QAAQ,CAACI,EAAE,EAAE;IAChB,MAAM,IAAIC,KAAK,CACb,wCAAwCL,QAAQ,CAACM,UAAU,EAC7D,CAAC;EACH;EAEA,OAAON,QAAQ;AACjB","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export default async function sendStats(apiUrl, payload) {
|
|
4
|
+
const response = await fetch(`${apiUrl}/stats`, {
|
|
5
|
+
method: 'POST',
|
|
6
|
+
headers: {
|
|
7
|
+
'Content-Type': 'application/json; charset=UTF-8'
|
|
8
|
+
},
|
|
9
|
+
body: JSON.stringify(payload)
|
|
10
|
+
});
|
|
11
|
+
if (!response.ok) {
|
|
12
|
+
throw new Error(`Failed to send stats, status: ${response.statusText}`);
|
|
13
|
+
}
|
|
14
|
+
return response;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=sendStats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sendStats","apiUrl","payload","response","fetch","method","headers","body","JSON","stringify","ok","Error","statusText"],"sourceRoot":"../../../src","sources":["countImpressionUtils/sendStats.ts"],"mappings":";;AAQA,eAAe,eAAeA,SAASA,CAACC,MAAc,EAAEC,OAAqB,EAAE;EAC7E,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAAC,GAAGH,MAAM,QAAQ,EAAE;IAC9CI,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB,CAAC;IACDC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACP,OAAO;EAC9B,CAAC,CAAC;EAEF,IAAI,CAACC,QAAQ,CAACO,EAAE,EAAE;IAChB,MAAM,IAAIC,KAAK,CAAC,iCAAiCR,QAAQ,CAACS,UAAU,EAAE,CAAC;EACzE;EAEA,OAAOT,QAAQ;AACjB","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { consoleTransport, logger } from 'react-native-logs';
|
|
4
|
+
const log = logger.createLogger({
|
|
5
|
+
// by default loggger is disabled
|
|
6
|
+
enabled: false,
|
|
7
|
+
transport: consoleTransport,
|
|
8
|
+
transportOptions: {
|
|
9
|
+
colors: {
|
|
10
|
+
info: 'blueBright',
|
|
11
|
+
warn: 'yellowBright',
|
|
12
|
+
error: 'redBright'
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
export const enableLogger = severity => {
|
|
17
|
+
log.setSeverity(severity);
|
|
18
|
+
log.enable();
|
|
19
|
+
log.debug('Logger enabled with severity', severity);
|
|
20
|
+
};
|
|
21
|
+
export default log;
|
|
22
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["consoleTransport","logger","log","createLogger","enabled","transport","transportOptions","colors","info","warn","error","enableLogger","severity","setSeverity","enable","debug"],"sourceRoot":"../../src","sources":["logger.ts"],"mappings":";;AAAA,SACEA,gBAAgB,EAChBC,MAAM,QAED,mBAAmB;AAQ1B,MAAMC,GAAW,GAAGD,MAAM,CAACE,YAAY,CAAC;EACtC;EACAC,OAAO,EAAE,KAAK;EACdC,SAAS,EAAEL,gBAAgB;EAC3BM,gBAAgB,EAAE;IAChBC,MAAM,EAAE;MACNC,IAAI,EAAE,YAAY;MAClBC,IAAI,EAAE,cAAc;MACpBC,KAAK,EAAE;IACT;EACF;AACF,CAAC,CAAC;AAEF,OAAO,MAAMC,YAAY,GAAIC,QAAkB,IAAK;EAClDV,GAAG,CAACW,WAAW,CAACD,QAAQ,CAAC;EACzBV,GAAG,CAACY,MAAM,CAAC,CAAC;EAEZZ,GAAG,CAACa,KAAK,CAAC,8BAA8B,EAAEH,QAAQ,CAAC;AACrD,CAAC;AAED,eAAeV,GAAG","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import * as Sentry from '@sentry/react-native';
|
|
4
4
|
import { defaultStackParser, makeFetchTransport } from '@sentry/react';
|
|
5
5
|
import { getDefaultIntegrations } from '@sentry/react-native/dist/js/integrations/default';
|
|
6
|
+
import logger from "./logger.js";
|
|
6
7
|
|
|
7
8
|
// as it's only the open source package, we want to have minimal sentry configuration here to not override sentry instance,
|
|
8
9
|
// which can be used in the application
|
|
@@ -39,6 +40,9 @@ sentryClient.init();
|
|
|
39
40
|
export const reportError = (err, {
|
|
40
41
|
msg
|
|
41
42
|
} = {}) => {
|
|
43
|
+
logger.error({
|
|
44
|
+
err
|
|
45
|
+
}, msg || 'Unexpected error');
|
|
42
46
|
if (msg) {
|
|
43
47
|
sentryScope.addBreadcrumb({
|
|
44
48
|
category: 'Error',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Sentry","defaultStackParser","makeFetchTransport","getDefaultIntegrations","options","attachStacktrace","autoInitializeNativeSdk","dsn","enableAppStartTracking","enableAutoPerformanceTracing","enableCaptureFailedRequests","enableNative","enableNativeCrashHandling","enableNativeFramesTracking","enableNativeNagger","enableNdk","enableStallTracking","enableUserInteractionTracing","enableWatchdogTerminationTracking","maxQueueSize","parentSpanIsAlwaysRootSpan","patchGlobalPromise","sendClientReports","stackParser","transport","integrations","sentryClient","ReactNativeClient","sentryScope","Scope","setClient","init","reportError","err","msg","addBreadcrumb","category","message","level","captureException","setSentryExtraAttribute","key","value","setExtra"],"sourceRoot":"../../src","sources":["sentryIntegration.ts"],"mappings":";;AAAA,OAAO,KAAKA,MAAM,MAAM,sBAAsB;AAC9C,SAASC,kBAAkB,EAAEC,kBAAkB,QAAQ,eAAe;AACtE,SAASC,sBAAsB,QAAQ,mDAAmD;;
|
|
1
|
+
{"version":3,"names":["Sentry","defaultStackParser","makeFetchTransport","getDefaultIntegrations","logger","options","attachStacktrace","autoInitializeNativeSdk","dsn","enableAppStartTracking","enableAutoPerformanceTracing","enableCaptureFailedRequests","enableNative","enableNativeCrashHandling","enableNativeFramesTracking","enableNativeNagger","enableNdk","enableStallTracking","enableUserInteractionTracing","enableWatchdogTerminationTracking","maxQueueSize","parentSpanIsAlwaysRootSpan","patchGlobalPromise","sendClientReports","stackParser","transport","integrations","sentryClient","ReactNativeClient","sentryScope","Scope","setClient","init","reportError","err","msg","error","addBreadcrumb","category","message","level","captureException","setSentryExtraAttribute","key","value","setExtra"],"sourceRoot":"../../src","sources":["sentryIntegration.ts"],"mappings":";;AAAA,OAAO,KAAKA,MAAM,MAAM,sBAAsB;AAC9C,SAASC,kBAAkB,EAAEC,kBAAkB,QAAQ,eAAe;AACtE,SAASC,sBAAsB,QAAQ,mDAAmD;AAC1F,OAAOC,MAAM,MAAM,aAAU;;AAE7B;AACA;AACA,MAAMC,OAAO,GAAG;EACdC,gBAAgB,EAAE,IAAI;EACtBC,uBAAuB,EAAE,KAAK;EAC9BC,GAAG,EAAE,yEAAyE;EAC9EC,sBAAsB,EAAE,KAAK;EAC7BC,4BAA4B,EAAE,KAAK;EACnCC,2BAA2B,EAAE,KAAK;EAClCC,YAAY,EAAE,KAAK;EACnBC,yBAAyB,EAAE,KAAK;EAChCC,0BAA0B,EAAE,KAAK;EACjCC,kBAAkB,EAAE,KAAK;EACzBC,SAAS,EAAE,KAAK;EAChBC,mBAAmB,EAAE,IAAI;EACzBC,4BAA4B,EAAE,KAAK;EACnCC,iCAAiC,EAAE,KAAK;EACxCC,YAAY,EAAE,EAAE;EAChBC,0BAA0B,EAAE,IAAI;EAChCC,kBAAkB,EAAE,IAAI;EACxBC,iBAAiB,EAAE,IAAI;EACvBC,WAAW,EAAEvB,kBAAkB;EAC/BwB,SAAS,EAAEvB,kBAAkB;EAC7BwB,YAAY,EAAE;AAChB,CAAC;AAED,MAAMC,YAAY,GAAG,IAAI3B,MAAM,CAAC4B,iBAAiB,CAAC;EAChD,GAAGvB,OAAO;EACVqB,YAAY,EAAEvB,sBAAsB,CAACE,OAAO;AAC9C,CAAC,CAAC;AAEF,MAAMwB,WAAW,GAAG,IAAI7B,MAAM,CAAC8B,KAAK,CAAC,CAAC;AACtCD,WAAW,CAACE,SAAS,CAACJ,YAAY,CAAC;AAEnCA,YAAY,CAACK,IAAI,CAAC,CAAC;AAMnB,OAAO,MAAMC,WAAW,GAAGA,CAACC,GAAU,EAAE;EAAEC;AAAwB,CAAC,GAAG,CAAC,CAAC,KAAK;EAC3E/B,MAAM,CAACgC,KAAK,CAAC;IAAEF;EAAI,CAAC,EAAEC,GAAG,IAAI,kBAAkB,CAAC;EAChD,IAAIA,GAAG,EAAE;IACPN,WAAW,CAACQ,aAAa,CAAC;MACxBC,QAAQ,EAAE,OAAO;MACjBC,OAAO,EAAEJ,GAAG;MACZK,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEAX,WAAW,CAACY,gBAAgB,CAACP,GAAG,CAAC;AACnC,CAAC;AAED,OAAO,MAAMQ,uBAAuB,GAAGA,CAACC,GAAW,EAAEC,KAAa,KAAK;EACrEf,WAAW,CAACgB,QAAQ,CAACF,GAAG,EAAEC,KAAK,CAAC;AAClC,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { type ContentpassState } from './types/ContentpassState';
|
|
2
2
|
import type { ContentpassConfig } from './types/ContentpassConfig';
|
|
3
3
|
export type ContentpassObserver = (state: ContentpassState) => void;
|
|
4
|
-
|
|
4
|
+
interface ContentpassInterface {
|
|
5
|
+
authenticate: () => Promise<void>;
|
|
6
|
+
registerObserver: (observer: ContentpassObserver) => void;
|
|
7
|
+
unregisterObserver: (observer: ContentpassObserver) => void;
|
|
8
|
+
logout: () => Promise<void>;
|
|
9
|
+
recoverFromError: () => Promise<void>;
|
|
10
|
+
countImpression: () => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export default class Contentpass implements ContentpassInterface {
|
|
5
13
|
private authStateStorage;
|
|
6
14
|
private readonly config;
|
|
15
|
+
private readonly samplingRate;
|
|
7
16
|
private contentpassState;
|
|
8
17
|
private contentpassStateObservers;
|
|
9
18
|
private oidcAuthState;
|
|
@@ -14,11 +23,16 @@ export default class Contentpass {
|
|
|
14
23
|
unregisterObserver(observer: ContentpassObserver): void;
|
|
15
24
|
logout: () => Promise<void>;
|
|
16
25
|
recoverFromError: () => Promise<void>;
|
|
26
|
+
countImpression: () => Promise<void>;
|
|
27
|
+
private countPaidImpressionWhenUserHasValidSub;
|
|
28
|
+
private countSampledImpression;
|
|
17
29
|
private initialiseAuthState;
|
|
18
30
|
private onNewAuthState;
|
|
19
31
|
private setupRefreshTimer;
|
|
20
32
|
private refreshToken;
|
|
21
33
|
private onRefreshTokenError;
|
|
22
34
|
private changeContentpassState;
|
|
35
|
+
private hasValidSubscriptionAndAccessToken;
|
|
23
36
|
}
|
|
37
|
+
export {};
|
|
24
38
|
//# sourceMappingURL=Contentpass.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contentpass.d.ts","sourceRoot":"","sources":["../../../../src/Contentpass.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Contentpass.d.ts","sourceRoot":"","sources":["../../../../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,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC1D,kBAAkB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5D,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;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;IAEtC,OAAO,CAAC,gBAAgB,CAEtB;IACF,OAAO,CAAC,yBAAyB,CAA6B;IAC9D,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,EAAE,iBAAiB;IAoB9B,YAAY,QAAa,OAAO,CAAC,IAAI,CAAC,CA6B3C;IAEK,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB;IAU9C,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB;IAOhD,MAAM,sBAOX;IAEK,gBAAgB,sBAOrB;IAEK,eAAe,sBAKpB;IAEF,OAAO,CAAC,sCAAsC,CAiB5C;IAEF,OAAO,CAAC,sBAAsB,CAqB5B;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 @@
|
|
|
1
|
+
{"version":3,"file":"fetchContentpassToken.d.ts","sourceRoot":"","sources":["../../../../../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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseContentpassToken.d.ts","sourceRoot":"","sources":["../../../../../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":["../../../../../src/contentpassTokenUtils/validateSubscription.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,WAQpE"}
|
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendPageViewEvent.d.ts","sourceRoot":"","sources":["../../../../../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 @@
|
|
|
1
|
+
{"version":3,"file":"sendStats.d.ts","sourceRoot":"","sources":["../../../../../src/countImpressionUtils/sendStats.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { logger, type transportFunctionType } from 'react-native-logs';
|
|
2
|
+
import type { Severity } from './types/ContentpassConfig';
|
|
3
|
+
import type { ConsoleTransportOptions } from 'react-native-logs/dist/transports/consoleTransport';
|
|
4
|
+
type Logger = ReturnType<typeof logger.createLogger<transportFunctionType<ConsoleTransportOptions>>>;
|
|
5
|
+
declare const log: Logger;
|
|
6
|
+
export declare const enableLogger: (severity: Severity) => void;
|
|
7
|
+
export default log;
|
|
8
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAElG,KAAK,MAAM,GAAG,UAAU,CACtB,OAAO,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAC3E,CAAC;AAEF,QAAA,MAAM,GAAG,EAAE,MAWT,CAAC;AAEH,eAAO,MAAM,YAAY,aAAc,QAAQ,SAK9C,CAAC;AAEF,eAAe,GAAG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentryIntegration.d.ts","sourceRoot":"","sources":["../../../../src/sentryIntegration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sentryIntegration.d.ts","sourceRoot":"","sources":["../../../../src/sentryIntegration.ts"],"names":[],"mappings":"AAyCA,KAAK,kBAAkB,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,WAAW,QAAS,KAAK,YAAW,kBAAkB,SAWlE,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,MAAM,SAAS,MAAM,SAEjE,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
export type Severity = 'debug' | 'info' | 'warn' | 'error';
|
|
1
2
|
export type ContentpassConfig = {
|
|
2
3
|
propertyId: string;
|
|
3
4
|
planId: string;
|
|
4
5
|
redirectUrl: string;
|
|
5
6
|
issuer: string;
|
|
7
|
+
apiUrl: string;
|
|
8
|
+
samplingRate?: number;
|
|
9
|
+
logLevel?: Severity;
|
|
6
10
|
};
|
|
7
11
|
//# sourceMappingURL=ContentpassConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentpassConfig.d.ts","sourceRoot":"","sources":["../../../../../src/types/ContentpassConfig.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ContentpassConfig.d.ts","sourceRoot":"","sources":["../../../../../src/types/ContentpassConfig.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { type ContentpassState } from './types/ContentpassState';
|
|
2
2
|
import type { ContentpassConfig } from './types/ContentpassConfig';
|
|
3
3
|
export type ContentpassObserver = (state: ContentpassState) => void;
|
|
4
|
-
|
|
4
|
+
interface ContentpassInterface {
|
|
5
|
+
authenticate: () => Promise<void>;
|
|
6
|
+
registerObserver: (observer: ContentpassObserver) => void;
|
|
7
|
+
unregisterObserver: (observer: ContentpassObserver) => void;
|
|
8
|
+
logout: () => Promise<void>;
|
|
9
|
+
recoverFromError: () => Promise<void>;
|
|
10
|
+
countImpression: () => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export default class Contentpass implements ContentpassInterface {
|
|
5
13
|
private authStateStorage;
|
|
6
14
|
private readonly config;
|
|
15
|
+
private readonly samplingRate;
|
|
7
16
|
private contentpassState;
|
|
8
17
|
private contentpassStateObservers;
|
|
9
18
|
private oidcAuthState;
|
|
@@ -14,11 +23,16 @@ export default class Contentpass {
|
|
|
14
23
|
unregisterObserver(observer: ContentpassObserver): void;
|
|
15
24
|
logout: () => Promise<void>;
|
|
16
25
|
recoverFromError: () => Promise<void>;
|
|
26
|
+
countImpression: () => Promise<void>;
|
|
27
|
+
private countPaidImpressionWhenUserHasValidSub;
|
|
28
|
+
private countSampledImpression;
|
|
17
29
|
private initialiseAuthState;
|
|
18
30
|
private onNewAuthState;
|
|
19
31
|
private setupRefreshTimer;
|
|
20
32
|
private refreshToken;
|
|
21
33
|
private onRefreshTokenError;
|
|
22
34
|
private changeContentpassState;
|
|
35
|
+
private hasValidSubscriptionAndAccessToken;
|
|
23
36
|
}
|
|
37
|
+
export {};
|
|
24
38
|
//# sourceMappingURL=Contentpass.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contentpass.d.ts","sourceRoot":"","sources":["../../../../src/Contentpass.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Contentpass.d.ts","sourceRoot":"","sources":["../../../../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,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC1D,kBAAkB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5D,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;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;IAEtC,OAAO,CAAC,gBAAgB,CAEtB;IACF,OAAO,CAAC,yBAAyB,CAA6B;IAC9D,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,EAAE,iBAAiB;IAoB9B,YAAY,QAAa,OAAO,CAAC,IAAI,CAAC,CA6B3C;IAEK,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB;IAU9C,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB;IAOhD,MAAM,sBAOX;IAEK,gBAAgB,sBAOrB;IAEK,eAAe,sBAKpB;IAEF,OAAO,CAAC,sCAAsC,CAiB5C;IAEF,OAAO,CAAC,sBAAsB,CAqB5B;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 @@
|
|
|
1
|
+
{"version":3,"file":"fetchContentpassToken.d.ts","sourceRoot":"","sources":["../../../../../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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseContentpassToken.d.ts","sourceRoot":"","sources":["../../../../../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":["../../../../../src/contentpassTokenUtils/validateSubscription.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,WAQpE"}
|
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendPageViewEvent.d.ts","sourceRoot":"","sources":["../../../../../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"}
|