Skip to content

Commit 555cdc1

Browse files
authored
Merge pull request #114 from adjust/v560
Bump version to 5.6.0
2 parents d245824 + 6064b3c commit 555cdc1

File tree

12 files changed

+85
-28
lines changed

12 files changed

+85
-28
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
### Version 5.6.0 (30th January 2023)
2+
#### Added
3+
- Added a return of Promise from `trackEvent` method.
4+
5+
#### Fixed
6+
- Fixed SDK state synchronization issue between multiple tabs.
7+
8+
---
9+
110
### Version 5.5.0 (17th November 2022)
211
#### Added
312
- Added `setReferrer` method to set referrer and trigger `/sdk_click` request manually.
@@ -6,6 +15,7 @@
615
- Fixed [issue](https://github.com/adjust/web_sdk/issues/46) which caused site not to load when cookies are blocked in browser.
716

817
---
18+
919
### Version 5.4.0 (20th September 2022)
1020
#### Added
1121
- Added support of Data Residency.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ To lazy <a id="loading-snippet">load the Adjust Web SDK through CDN</a> paste th
3838

3939
The Adjust Web SDK should be loaded only once per page and it should be initiated once per page load.
4040

41-
When loading the sdk through CDN we suggest using minified version. You can target specific version like `https://cdn.adjust.com/adjust-5.5.0.min.js`, or you can target latest version `https://cdn.adjust.com/adjust-latest.min.js` if you want automatic updates without need to change the target file. The sdk files are cached so they are served as fast as possible, and the cache is refreshed every half an hour. If you want updates immediately make sure to target specific version.
41+
When loading the sdk through CDN we suggest using minified version. You can target specific version like `https://cdn.adjust.com/adjust-5.6.0.min.js`, or you can target latest version `https://cdn.adjust.com/adjust-latest.min.js` if you want automatic updates without need to change the target file. The sdk files are cached so they are served as fast as possible, and the cache is refreshed every half an hour. If you want updates immediately make sure to target specific version.
4242

4343
You may want to use [Subresource Integrity (SRI)](sri-mdn) feature to mitigate XSS attacks risk. In this case you could use the loading snippet that enables SRI check instructing browser to validate the script before running it:
4444
```html
4545
<script type="application/javascript">
46-
!function(t,e,a,r,n,s,o,l,i,d,u){t.Adjust=t.Adjust||{},t.Adjust_q=t.Adjust_q||[];for(var c=0;c<l.length;c++)i(t.Adjust,t.Adjust_q,l[c]);d=e.createElement(a),u=e.getElementsByTagName(a)[0],d.async=!0,d.src="https://cdn.adjust.com/adjust-latest.min.js",d.crossOrigin="anonymous",d.integrity=s,d.onload=function(){for(var e=0;e<t.Adjust_q.length;e++)t.Adjust[t.Adjust_q[e][0]].apply(t.Adjust,t.Adjust_q[e][1]);t.Adjust_q=[]},u.parentNode.insertBefore(d,u)}(window,document,"script",0,0,"sha384-ti9hnBz5iMLIfOik3tirvSeTYG6T0ZZTluQjGNeL0/WZP2kNe+pi8On+zOoBJCl7",0,["initSdk","getAttribution","getWebUUID","setReferrer","trackEvent","addGlobalCallbackParameters","addGlobalPartnerParameters","removeGlobalCallbackParameter","removeGlobalPartnerParameter","clearGlobalCallbackParameters","clearGlobalPartnerParameters","switchToOfflineMode","switchBackToOnlineMode","stop","restart","gdprForgetMe","disableThirdPartySharing","initSmartBanner","showSmartBanner","hideSmartBanner"],(function(t,e,a){t[a]=function(){e.push([a,arguments])}}));
46+
!function(t,e,a,r,n,s,o,d,l,i,u){t.Adjust=t.Adjust||{},t.Adjust_q=t.Adjust_q||[];for(var c=0;c<d.length;c++)l(t.Adjust,t.Adjust_q,d[c]);i=e.createElement(a),u=e.getElementsByTagName(a)[0],i.async=!0,i.src="https://cdn.adjust.com/adjust-latest.min.js",i.crossOrigin="anonymous",i.integrity=s,i.onload=function(){for(var e=0;e<t.Adjust_q.length;e++)t.Adjust[t.Adjust_q[e][0]].apply(t.Adjust,t.Adjust_q[e][1]);t.Adjust_q=[]},u.parentNode.insertBefore(i,u)}(window,document,"script",0,0,"sha384-BqbTn9xyk5DPznti1ZP8ksxKiOFhKufLBFWm5eNMCnZABFSG1eqQfcu5dsiZJHu5",0,["initSdk","getAttribution","getWebUUID","setReferrer","trackEvent","addGlobalCallbackParameters","addGlobalPartnerParameters","removeGlobalCallbackParameter","removeGlobalPartnerParameter","clearGlobalCallbackParameters","clearGlobalPartnerParameters","switchToOfflineMode","switchBackToOnlineMode","stop","restart","gdprForgetMe","disableThirdPartySharing","initSmartBanner","showSmartBanner","hideSmartBanner"],(function(t,e,a){t[a]=function(){e.push([a,arguments])}}));
4747
</script>
4848
```
4949

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.5.0
1+
5.6.0

dist/INTEGRITY

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sha384-ti9hnBz5iMLIfOik3tirvSeTYG6T0ZZTluQjGNeL0/WZP2kNe+pi8On+zOoBJCl7
1+
sha384-BqbTn9xyk5DPznti1ZP8ksxKiOFhKufLBFWm5eNMCnZABFSG1eqQfcu5dsiZJHu5

dist/adjust-latest.js

Lines changed: 63 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2180,7 +2180,7 @@ function isLocalStorageSupported() /*: boolean*/{
21802180
|}*/
21812181
var Globals = {
21822182
namespace: "adjust-sdk" || 0,
2183-
version: "5.5.0" || 0,
2183+
version: "5.6.0" || 0,
21842184
env: "production"
21852185
};
21862186
/* harmony default export */ const globals = (Globals);
@@ -7452,6 +7452,9 @@ import { type DocumentT, type HttpSuccessResponseT, type HttpErrorResponseT, typ
74527452

74537453

74547454

7455+
7456+
7457+
74557458
/**
74567459
* Flag to mark if session watch is already on
74577460
*
@@ -7540,6 +7543,7 @@ function session_destroy() /*: void*/{
75407543
if (_pva) {
75417544
clearTimeout(_idTimeout);
75427545
off(documentExt, _pva.visibilityChange, _handleVisibilityChange);
7546+
on(documentExt, _pva.visibilityChange, _restoreAfterAsyncEnable);
75437547
}
75447548
}
75457549

@@ -7584,6 +7588,16 @@ function _handleVisibilityChange() /*: void*/{
75847588
var handler = _pva && documentExt[_pva.hidden] ? _handleBackground : _handleForeground;
75857589
_idTimeout = setTimeout(handler, 0);
75867590
}
7591+
function _restoreAfterAsyncEnable() /*: void*/{
7592+
if (!_pva || documentExt[_pva.hidden]) {
7593+
return;
7594+
}
7595+
reload();
7596+
if (!_running && disable_status() === 'on') {
7597+
off(documentExt, _pva.visibilityChange, _restoreAfterAsyncEnable);
7598+
main.__internal__.restartAfterAsyncEnable();
7599+
}
7600+
}
75877601

75887602
/**
75897603
* Handle session request finish; update installed state
@@ -8239,13 +8253,14 @@ function _checkEventDeduplicationId(id /*: string*/) /*: Promise<?number>*/{
82398253
* @param {number=} timestamp
82408254
* @return Promise
82418255
*/
8242-
function event_event(params /*: EventParamsT*/, timestamp /*: number*/) /*: void | Promise<void>*/{
8256+
function event_event(params /*: EventParamsT*/, timestamp /*: number*/) /*: Promise<void>*/{
82438257
if (!params || params && (isEmpty(params) || !params.eventToken)) {
8244-
logger.error('You must provide event token in order to track event');
8245-
return;
8258+
var reason = 'You must provide event token in order to track event';
8259+
logger.error(reason);
8260+
return event_Promise.reject(reason);
82468261
}
82478262
return _checkEventDeduplicationId(params.deduplicationId).then(get).then(function (globalParams) {
8248-
push({
8263+
return push({
82498264
url: '/event',
82508265
method: 'POST',
82518266
params: event_prepareParams(params, globalParams)
@@ -8256,6 +8271,7 @@ function event_event(params /*: EventParamsT*/, timestamp /*: number*/) /*: void
82568271
if (error && error.message) {
82578272
logger.error(error.message);
82588273
}
8274+
return event_Promise.reject(error);
82598275
});
82608276
}
82618277
;// CONCATENATED MODULE: ./src/sdk/sdk-click.js
@@ -9484,13 +9500,8 @@ function setReferrer(referrer /*: string*/) {
94849500
*
94859501
* @param {Object} params
94869502
*/
9487-
function trackEvent(params /*: EventParamsT*/) /*: void*/{
9488-
_preCheck('track event', function (timestamp) {
9489-
return event_event(params, timestamp);
9490-
}, {
9491-
schedule: true,
9492-
waitForInitFinished: true
9493-
});
9503+
function trackEvent(params /*: EventParamsT*/) /*: Promise<void>*/{
9504+
return _internalTrackEvent(params);
94949505
}
94959506

94969507
/**
@@ -9612,8 +9623,7 @@ function gdprForgetMe() /*: void*/{
96129623
*/
96139624
function disableThirdPartySharing() /*: void*/{
96149625
_preCheck('disable third-party sharing', _handleDisableThirdPartySharing, {
9615-
schedule: true,
9616-
waitForInitFinished: false
9626+
schedule: true
96179627
});
96189628
}
96199629
function initSmartBanner(options /*: SmartBannerOptionsT*/) /*: void*/{
@@ -9839,6 +9849,34 @@ function _start(options /*: InitOptionsT*/) /*: void*/{
98399849
}
98409850
start().then(main_continue).then(sdkClick).catch(main_error);
98419851
}
9852+
function _internalTrackEvent(params /*: EventParamsT*/) {
9853+
if (storage.getType() === STORAGE_TYPES.NO_STORAGE) {
9854+
var reason = 'Adjust SDK can not track event, no storage available';
9855+
logger.log(reason);
9856+
return main_Promise.reject(reason);
9857+
}
9858+
if (disable_status() !== 'on') {
9859+
var _reason = 'Adjust SDK is disabled, can not track event';
9860+
logger.log(_reason);
9861+
return main_Promise.reject(_reason);
9862+
}
9863+
if (!_isInitialised()) {
9864+
var _reason2 = 'Adjust SDK can not track event, sdk instance is not initialized';
9865+
logger.error(_reason2);
9866+
return main_Promise.reject(_reason2);
9867+
}
9868+
return new main_Promise(function (resolve) {
9869+
var _callback = function _callback(timestamp) {
9870+
return resolve(event_event(params, timestamp));
9871+
};
9872+
if (!_isInstalled || !_isStarted && _isInitialised()) {
9873+
delay(_callback, 'track event');
9874+
logger.log('Running track event is delayed until Adjust SDK is up');
9875+
} else {
9876+
_callback();
9877+
}
9878+
});
9879+
}
98429880

98439881
/**
98449882
* Check if it's possible to run provided method
@@ -9861,12 +9899,12 @@ function _preCheck(description /*: string*/, callback /*: () => mixed*/) /*: mix
98619899
logger.log("Adjust SDK is disabled, can not ".concat(description));
98629900
return;
98639901
}
9864-
if (!optionalInit && waitForInitFinished && !_isInitialised()) {
9902+
if (!(optionalInit || _isInitialised()) && waitForInitFinished) {
98659903
logger.error("Adjust SDK can not ".concat(description, ", sdk instance is not initialized"));
98669904
return;
98679905
}
98689906
if (typeof callback === 'function') {
9869-
if (schedule && !(_isInstalled && _isStarted) && (_isInitialised() || optionalInit)) {
9907+
if (schedule && !(_isInstalled && _isStarted) && (optionalInit || _isInitialised())) {
98709908
delay(callback, description);
98719909
logger.log("Running ".concat(description, " is delayed until Adjust SDK is up"));
98729910
} else {
@@ -9877,6 +9915,12 @@ function _preCheck(description /*: string*/, callback /*: () => mixed*/) /*: mix
98779915
function _clearDatabase() {
98789916
return storage.deleteDatabase();
98799917
}
9918+
function _restartAfterAsyncEnable() {
9919+
logger.log('Adjust SDK has been restarted due to asynchronous enable');
9920+
if (main_options) {
9921+
_start(main_options);
9922+
}
9923+
}
98809924
var Adjust = {
98819925
initSdk: initSdk,
98829926
getAttribution: main_getAttribution,
@@ -9901,6 +9945,9 @@ var Adjust = {
99019945
__testonly__: {
99029946
destroy: main_destroy,
99039947
clearDatabase: _clearDatabase
9948+
},
9949+
__internal__: {
9950+
restartAfterAsyncEnable: _restartAfterAsyncEnable
99049951
}
99059952
};
99069953
/* harmony default export */ const main = (Adjust);

dist/adjust-latest.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/sdk.snippet-sri.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/chinese/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Read this in other languages: [English][en-readme], [中文][zh-readme], [日本
3838

3939
Adjust Web SDK 在每个页面应当仅加载一次,每次页面加载应当初始化一次。
4040

41-
在通过 CDN 加载 SDK 时,我们建议您使用精简版本。您可以定向特定版本,如 `https://cdn.adjust.com/adjust-5.5.0.min.js`;如果您需要自动更新,不想变更目标文件,也可以定向最新版本:`https://cdn.adjust.com/adjust-latest.min.js` 。SDK 文件均有缓存,因此能以最快速度获取,缓存每半小时刷新一次。如果您想立即获得更新,请务必定向特定版本。
41+
在通过 CDN 加载 SDK 时,我们建议您使用精简版本。您可以定向特定版本,如 `https://cdn.adjust.com/adjust-5.6.0.min.js`;如果您需要自动更新,不想变更目标文件,也可以定向最新版本:`https://cdn.adjust.com/adjust-latest.min.js` 。SDK 文件均有缓存,因此能以最快速度获取,缓存每半小时刷新一次。如果您想立即获得更新,请务必定向特定版本。
4242

4343
您也可以通过 NPM 安装我们的 SDK:
4444

docs/japanese/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ CDNでAdjustSDKを遅延ロードするためには、以下のコードを`<hea
3939

4040
Adjust Web SDKはページごとに1回だけ読み込まれ、ページの読み込みごとに1回起動される必要があります。
4141

42-
CDNを利用してSDKをロードするときは、縮小バージョンを使用することを推奨します。そうすることで、 `https://cdn.adjust.com/adjust-5.5.0.min.js` のような特定のバージョンをターゲットにしたり、あるいは ターゲットファイルを変更せずに自動更新する場合は、最新バージョン `https://adjust.com/adjust-latest.min.js` をターゲットにすることが可能です。 SDKファイルはキャッシュされるため即時に提供され、更新は30分ごとに行われます。すぐに更新する必要がある場合は、必ず特定のバージョンをターゲットにしてください。
42+
CDNを利用してSDKをロードするときは、縮小バージョンを使用することを推奨します。そうすることで、 `https://cdn.adjust.com/adjust-5.6.0.min.js` のような特定のバージョンをターゲットにしたり、あるいは ターゲットファイルを変更せずに自動更新する場合は、最新バージョン `https://adjust.com/adjust-latest.min.js` をターゲットにすることが可能です。 SDKファイルはキャッシュされるため即時に提供され、更新は30分ごとに行われます。すぐに更新する必要がある場合は、必ず特定のバージョンをターゲットにしてください。
4343

4444
また、NPMを利用してSDKをインストールすることも可能です:
4545

docs/korean/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Adjust SDK는 CommonJS와 AMD 환경에서 작동하고 CDN을 통해 로딩될
3939

4040
Adjust 웹 SDK는 페이지당 한 번만 로딩되어야 하며 페이지 로딩당 한번만 초기화되어야 합니다.
4141

42-
CDN을 통해 SDK를 로딩할 때 축소 버전을 사용하는 것이 좋습니다. `https://cdn.adjust.com/adjust-5.5.0.min.js`와 같은 특정 버전을 타깃팅하거나 대상 파일을 변경할 필요 없이 자동 업데이트를 원하는 경우 최신 버전`https://cdn.adjust.com/adjust-latest.min.js`을 타깃팅 합니다. sdk 파일은 캐싱되어 최대한 빠르게 제공되며 30분 마다 캐시가 새로고침됩니다. 즉시 업데이트를 원하는 경우에는 특정 버전을 타깃팅해야 합니다.
42+
CDN을 통해 SDK를 로딩할 때 축소 버전을 사용하는 것이 좋습니다. `https://cdn.adjust.com/adjust-5.6.0.min.js`와 같은 특정 버전을 타깃팅하거나 대상 파일을 변경할 필요 없이 자동 업데이트를 원하는 경우 최신 버전`https://cdn.adjust.com/adjust-latest.min.js`을 타깃팅 합니다. sdk 파일은 캐싱되어 최대한 빠르게 제공되며 30분 마다 캐시가 새로고침됩니다. 즉시 업데이트를 원하는 경우에는 특정 버전을 타깃팅해야 합니다.
4343

4444
NPM을 통한 SDK 설치 역시 가능합니다:
4545

0 commit comments

Comments
 (0)