zmp-sdk 2.16.1 → 2.16.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -34927,12 +34927,39 @@ const readCookieFallback = (name) => {
34927
34927
  return ck;
34928
34928
  };
34929
34929
 
34930
+ const Byte = 1;
34931
+ const KB = 1024 * Byte;
34932
+ const MB = 1024 * KB;
34930
34933
  const ZAPP_ID = window.zAppID;
34931
34934
  const APP_ID = window.APP_ID;
34932
34935
  const APP_CONFIG = window.APP_CONFIG || {};
34936
+ const MINI_APP_LINK = 'https://zalo.me/app/link/zapps';
34937
+ const MINI_APP_INTERNAL_LINK = 'https://h5.zdn.vn/zapps';
34938
+ const COOKIE_NAME = {
34939
+ ZOAUTH: `h5.zdn.vn_zoauth`,
34940
+ ZACC_SESSiON: `h5.zdn.vn_zacc_session`,
34941
+ JS_TOKEN: `h5.zdn.vn_zlink3rd`,
34942
+ ZOAUTH_VRF: `h5.zdn.vn_zoauth_vrf`
34943
+ };
34944
+ const APIS = {
34945
+ GET_USER_INFO: 'https://graph.zalo.me/v2.0/me',
34946
+ GET_ACCESS_TOKEN: 'https://h5.zalo.me/openapi/access_token',
34947
+ GET_ACCESS_TOKEN_V3: 'https://oauth.zaloapp.com/v3/access_token'
34948
+ };
34949
+ const STORAGE_LIMIT = 5 * MB;
34950
+ const NETWORK_TYPE = (isAndroid) => ({
34951
+ NONE: isAndroid ? -2 : 0,
34952
+ WIFI: isAndroid ? 0 : 1,
34953
+ '2G': isAndroid ? 2 : 2,
34954
+ '3G': isAndroid ? 15 : 2,
34955
+ '4G': isAndroid ? 13 : 2
34956
+ });
34957
+ const MEDIA_PICKER_LIMIT = 1 * MB;
34958
+ const MEDIA_PICKER_UPLOAD_SERVER = 'https://zapi-server.tungnt.xyz/upload/photos';
34933
34959
  const ACTION = {
34934
34960
  GET_DOWNLOADED_STICKER: {
34935
- name: 'action.get.downloaded.sticker'
34961
+ name: 'action.get.downloaded.sticker',
34962
+ have_callback: true
34936
34963
  },
34937
34964
  OPEN_SHARE_STICKER: {
34938
34965
  name: 'action.open.share.sticker'
@@ -35022,19 +35049,23 @@ const ACTION = {
35022
35049
  name: 'action.open.sendsticker'
35023
35050
  },
35024
35051
  REPORT_ABUSE: {
35025
- name: 'action.report.abuse'
35052
+ name: 'action.report.abuse',
35053
+ have_callback: true
35026
35054
  },
35027
35055
  FOLLOW_OA: {
35028
- name: 'action.follow.oa'
35056
+ name: 'action.follow.oa',
35057
+ have_callback: true
35029
35058
  },
35030
35059
  UNFOLLOW_OA: {
35031
- name: 'action.unfollow.oa'
35060
+ name: 'action.unfollow.oa',
35061
+ have_callback: true
35032
35062
  },
35033
35063
  OPEN_GAMEDETAIL: {
35034
35064
  name: 'action.open.gamedetail'
35035
35065
  },
35036
35066
  OPEN_SHARESHEET: {
35037
- name: 'action.open.sharesheet'
35067
+ name: 'action.open.sharesheet',
35068
+ have_callback: true
35038
35069
  },
35039
35070
  REQUEST_PERMISSION_CAMERA: {
35040
35071
  name: 'action.request.permission.camera'
@@ -35061,18 +35092,21 @@ const ACTION = {
35061
35092
  },
35062
35093
  CREATE_OPTIONS_MENU: {
35063
35094
  name: 'action.create.options.menu',
35064
- skip_jump: true
35095
+ skip_jump: true,
35096
+ have_callback: true
35065
35097
  },
35066
35098
  CREATE_SHORTCUT: {
35067
35099
  name: 'action.create.shortcut'
35068
35100
  },
35069
35101
  CHANGE_ACTIONBAR_LEFTBUTTON_TYPE: {
35070
35102
  name: 'action.change.actionbar.leftbutton.type',
35071
- skip_jump: true
35103
+ skip_jump: true,
35104
+ have_callback: true
35072
35105
  },
35073
35106
  WINDOW_CLOSE: {
35074
35107
  name: 'action.window.close',
35075
- skip_jump: true
35108
+ skip_jump: true,
35109
+ have_callback: true
35076
35110
  },
35077
35111
  WEBVIEW_CHECKRESERROR: {
35078
35112
  name: 'action.webview.checkResError'
@@ -35085,7 +35119,8 @@ const ACTION = {
35085
35119
  },
35086
35120
  ZBROWSER_JSBRIDGE: {
35087
35121
  name: 'action.zbrowser.jsbridge',
35088
- skip_jump: true
35122
+ skip_jump: true,
35123
+ have_callback: true
35089
35124
  },
35090
35125
  PROMPT_AUTHENTICATION: {
35091
35126
  name: 'action.prompt.authentication'
@@ -35101,13 +35136,16 @@ const ACTION = {
35101
35136
  name: 'action.open.appstore'
35102
35137
  },
35103
35138
  GET_LOCATION: {
35104
- name: 'action.get.location'
35139
+ name: 'action.get.location',
35140
+ have_callback: true
35105
35141
  },
35106
35142
  QUERY_LOCATION_HIDE: {
35107
- name: 'action.query.location.hide'
35143
+ name: 'action.query.location.hide',
35144
+ have_callback: true
35108
35145
  },
35109
35146
  SHOW_TOAST: {
35110
- name: 'action.show.toast'
35147
+ name: 'action.show.toast',
35148
+ have_callback: true
35111
35149
  },
35112
35150
  OPEN_APP: {
35113
35151
  name: 'action.open.app'
@@ -35125,10 +35163,12 @@ const ACTION = {
35125
35163
  name: 'action.open.sms'
35126
35164
  },
35127
35165
  VIEW_MYQR: {
35128
- name: 'action.view.myqr'
35166
+ name: 'action.view.myqr',
35167
+ have_callback: true
35129
35168
  },
35130
35169
  KEEP_SCREEN: {
35131
- name: 'action.keep.screen'
35170
+ name: 'action.keep.screen',
35171
+ have_callback: true
35132
35172
  },
35133
35173
  CHANGE_AUTOROTATE: {
35134
35174
  name: 'action.change.autorotate',
@@ -35147,25 +35187,31 @@ const ACTION = {
35147
35187
  name: 'action.open.inapprw'
35148
35188
  },
35149
35189
  ZALORUN_GETTRACKINGSTATUS: {
35150
- name: 'action.zalorun.getTrackingStatus'
35190
+ name: 'action.zalorun.getTrackingStatus',
35191
+ have_callback: true
35151
35192
  },
35152
35193
  ZALORUN_SETTRACKINGSTATUS: {
35153
- name: 'action.zalorun.setTrackingStatus'
35194
+ name: 'action.zalorun.setTrackingStatus',
35195
+ have_callback: true
35154
35196
  },
35155
35197
  ZALORUN_GETDAYSTEP: {
35156
- name: 'action.zalorun.getDayStep'
35198
+ name: 'action.zalorun.getDayStep',
35199
+ have_callback: true
35157
35200
  },
35158
35201
  ZALORUN_FORCESUBMITDATA: {
35159
- name: 'action.zalorun.forceSubmitData'
35202
+ name: 'action.zalorun.forceSubmitData',
35203
+ have_callback: true
35160
35204
  },
35161
35205
  ZALORUN_SETWEIGHT: {
35162
- name: 'action.zalorun.setWeight'
35206
+ name: 'action.zalorun.setWeight',
35207
+ have_callback: true
35163
35208
  },
35164
35209
  OPEN_PROFILE_EXT: {
35165
35210
  name: 'action.open.profile.ext'
35166
35211
  },
35167
35212
  DOWNLOAD_CATE: {
35168
- name: 'action.download.cate'
35213
+ name: 'action.download.cate',
35214
+ have_callback: true
35169
35215
  },
35170
35216
  JUMP_LOGIN: {
35171
35217
  name: 'action.jump.login',
@@ -35231,28 +35277,6 @@ const ACTION = {
35231
35277
  version_live: { iOS: 999 }
35232
35278
  }
35233
35279
  };
35234
- const ACTION_HAVE_CALLBACK = [
35235
- ACTION.GET_DOWNLOADED_STICKER.name,
35236
- ACTION.REPORT_ABUSE.name,
35237
- ACTION.FOLLOW_OA.name,
35238
- ACTION.UNFOLLOW_OA.name,
35239
- ACTION.OPEN_SHARESHEET.name,
35240
- ACTION.CREATE_OPTIONS_MENU.name,
35241
- ACTION.CHANGE_ACTIONBAR_LEFTBUTTON_TYPE.name,
35242
- ACTION.WINDOW_CLOSE.name,
35243
- ACTION.ZBROWSER_JSBRIDGE.name,
35244
- ACTION.GET_LOCATION.name,
35245
- ACTION.QUERY_LOCATION_HIDE.name,
35246
- ACTION.SHOW_TOAST.name,
35247
- ACTION.VIEW_MYQR.name,
35248
- ACTION.KEEP_SCREEN.name,
35249
- ACTION.ZALORUN_GETTRACKINGSTATUS.name,
35250
- ACTION.ZALORUN_SETTRACKINGSTATUS.name,
35251
- ACTION.ZALORUN_GETDAYSTEP.name,
35252
- ACTION.ZALORUN_FORCESUBMITDATA.name,
35253
- ACTION.ZALORUN_SETWEIGHT.name,
35254
- ACTION.DOWNLOAD_CATE.name
35255
- ];
35256
35280
  const RESPONSE_CODE = {
35257
35281
  BAD_REQUEST: -1400,
35258
35282
  INTERNAL_SERVER_ERROR: -1500,
@@ -35508,6 +35532,96 @@ const apiResponse = {
35508
35532
  }
35509
35533
  };
35510
35534
 
35535
+ function encode(bag) {
35536
+ var pairs = [];
35537
+ for (var key in bag) {
35538
+ if (bag.hasOwnProperty(key)) {
35539
+ var value = bag[key];
35540
+ if (typeof value === "undefined") {
35541
+ return;
35542
+ }
35543
+ if (value === null) {
35544
+ pairs.push(key);
35545
+ return;
35546
+ }
35547
+ pairs.push(encodeURIComponent(key) + "=" + encodeURIComponent(value));
35548
+ }
35549
+ }
35550
+ return pairs.join("&");
35551
+ }
35552
+ function decode(str, strict) {
35553
+ var data = {};
35554
+ if (str === "") {
35555
+ return data;
35556
+ }
35557
+ var pairs = str.split("&");
35558
+ for (var i = 0; i < pairs.length; i++) {
35559
+ var pair = pairs[i].split("=", 2);
35560
+ var key = decodeURIComponent(pair[0]);
35561
+ if (strict && Object.prototype.hasOwnProperty.call(data, key)) {
35562
+ throw new URIError("Duplicate key: " + key);
35563
+ }
35564
+ data[key] = pair.length === 2 ? decodeURIComponent(pair[1]) : null;
35565
+ }
35566
+ return data;
35567
+ }
35568
+ function appendToUrl(url, params) {
35569
+ return (url +
35570
+ (url.indexOf("?") !== -1 ? "&" : "?") +
35571
+ (typeof params === "string" ? params : QueryString.encode(params)));
35572
+ }
35573
+ function getParameterByName(name, url) {
35574
+ if (!url) {
35575
+ url = window.location.href;
35576
+ }
35577
+ name = name.replace(/[\[\]]/g, "\\$&");
35578
+ var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url);
35579
+ if (!results)
35580
+ return null;
35581
+ if (!results[2])
35582
+ return "";
35583
+ return decodeURIComponent(results[2].replace(/\+/g, " "));
35584
+ }
35585
+ function getParamsAsObject(query) {
35586
+ var params = {};
35587
+ if (!query)
35588
+ return params;
35589
+ var values = query.split("&");
35590
+ values.map(function (item) {
35591
+ var data = item.split("=");
35592
+ if (!data || data.length != 2)
35593
+ return;
35594
+ params[data[0]] = decodeURIComponent(data[1].replace(/\+/g, " "));
35595
+ });
35596
+ return params;
35597
+ }
35598
+ function toQueryString(data) {
35599
+ if (!data)
35600
+ return "";
35601
+ if ((typeof data === "undefined" ? "undefined" : typeof (data)) != "object")
35602
+ return data;
35603
+ var key = Object.keys(data);
35604
+ var params = [];
35605
+ key.map(function (k) {
35606
+ var v = data[k];
35607
+ if ((typeof v === "undefined" ? "undefined" : typeof (v)) == "object")
35608
+ v = JSON.stringify(v);
35609
+ else
35610
+ v = encodeURIComponent(v);
35611
+ var item = [k, v].join("=");
35612
+ params.push(item);
35613
+ });
35614
+ return params.join("&");
35615
+ }
35616
+ const QueryString = {
35617
+ encode: encode,
35618
+ decode: decode,
35619
+ appendToUrl: appendToUrl,
35620
+ getParameterByName: getParameterByName,
35621
+ getParamsAsObject: getParamsAsObject,
35622
+ toQueryString: toQueryString,
35623
+ };
35624
+
35511
35625
  const REGEXP_SPECIAL_UNICODE = new RegExp('[\\u0300-\\u036f]', 'g');
35512
35626
  const REGEXP_ACCENT_D = new RegExp('[đ|Đ]', 'g');
35513
35627
  const REGEXP_SPACES = new RegExp('\\s', 'g');
@@ -35728,13 +35842,12 @@ const stringToData = (data) => {
35728
35842
  }
35729
35843
  };
35730
35844
  const checkIOSSupportAction = (action) => {
35731
- var _a, _b;
35732
- const key = action.slice(7, action.length).replace(/\./gi, '_').toUpperCase();
35845
+ var _a;
35733
35846
  const zaloIOSVersion = getZaloVersion();
35734
- const actionVersionLive = ((_b = (_a = ACTION[key]) === null || _a === void 0 ? void 0 : _a.version_live) === null || _b === void 0 ? void 0 : _b.iOS) || 0;
35847
+ const actionVersionLive = ((_a = action === null || action === void 0 ? void 0 : action.version_live) === null || _a === void 0 ? void 0 : _a.iOS) || 0;
35735
35848
  if (Array.isArray(window.ignoreCheckSupport) &&
35736
35849
  window.ignoreCheckSupport.length > 0 &&
35737
- window.ignoreCheckSupport.includes(action)) {
35850
+ window.ignoreCheckSupport.includes(action.name)) {
35738
35851
  return true;
35739
35852
  }
35740
35853
  return zaloIOSVersion >= actionVersionLive;
@@ -35816,7 +35929,36 @@ const checkData = (types, option) => (data) => {
35816
35929
  return {
35817
35930
  error: false
35818
35931
  };
35819
- };
35932
+ };
35933
+ const getAppInfo = (appId, versionStatus, currentVersion) => __awaiter(void 0, void 0, void 0, function* () {
35934
+ const inputData = {
35935
+ appId,
35936
+ versionStatus
35937
+ };
35938
+ if (!lodash.isUndefined(currentVersion)) {
35939
+ inputData.currentVersion = currentVersion;
35940
+ }
35941
+ const api = QueryString.appendToUrl(`${API_DOMAIN}${H5_API.GET_APP_INFO}`, inputData);
35942
+ const msgApi = yield fetch(api, {
35943
+ credentials: 'include'
35944
+ });
35945
+ if (msgApi.ok) {
35946
+ const appInfo = yield msgApi.json();
35947
+ if (appInfo.err < 0 || !appInfo.data) {
35948
+ throw new Error(appInfo);
35949
+ }
35950
+ const info = {
35951
+ name: appInfo.data.name,
35952
+ version: appInfo.data.version,
35953
+ description: appInfo.data.description,
35954
+ appUrl: appInfo.data.appUrl,
35955
+ qrCodeUrl: appInfo.data.qrCodeUrl,
35956
+ logoUrl: appInfo.data.logoUrl
35957
+ };
35958
+ return info;
35959
+ }
35960
+ throw new Error("Can't get app info");
35961
+ });
35820
35962
 
35821
35963
  var eventemitter3 = createCommonjsModule(function (module) {
35822
35964
 
@@ -36188,129 +36330,6 @@ class ZMPEEmitter extends eventemitter3 {
36188
36330
  }
36189
36331
  }
36190
36332
 
36191
- var CONFIG = (() => {
36192
- const Byte = 1;
36193
- const KB = 1024 * Byte;
36194
- const MB = 1024 * KB;
36195
- const device = checkPlatform();
36196
- return {
36197
- MINI_APP_LINK: 'https://zalo.me/app/link/zapps',
36198
- MINI_APP_INTERNAL_LINK: 'https://h5.zdn.vn/zapps',
36199
- COOKIE_NAME: {
36200
- ZOAUTH: `h5.zdn.vn_zoauth`,
36201
- ZACC_SESSiON: `h5.zdn.vn_zacc_session`,
36202
- JS_TOKEN: `h5.zdn.vn_zlink3rd`,
36203
- ZOAUTH_VRF: `h5.zdn.vn_zoauth_vrf`
36204
- },
36205
- APIS: {
36206
- GET_USER_INFO: 'https://graph.zalo.me/v2.0/me',
36207
- GET_ACCESS_TOKEN: 'https://h5.zalo.me/openapi/access_token',
36208
- GET_ACCESS_TOKEN_V3: 'https://oauth.zaloapp.com/v3/access_token'
36209
- },
36210
- STORAGE_DATA_LIMIT: 100 * KB,
36211
- STORAGE_LIMIT: 5 * MB,
36212
- NETWORK_TYPE: {
36213
- NONE: device.isAndroid ? -2 : 0,
36214
- WIFI: device.isAndroid ? 0 : 1,
36215
- '2G': device.isAndroid ? 2 : 2,
36216
- '3G': device.isAndroid ? 15 : 2,
36217
- '4G': device.isAndroid ? 13 : 2
36218
- },
36219
- MEDIA_PICKER_LIMIT: 1 * MB,
36220
- MEDIA_PICKER_UPLOAD_SERVER: 'https://zapi-server.tungnt.xyz/upload/photos'
36221
- };
36222
- })();
36223
-
36224
- function encode(bag) {
36225
- var pairs = [];
36226
- for (var key in bag) {
36227
- if (bag.hasOwnProperty(key)) {
36228
- var value = bag[key];
36229
- if (typeof value === "undefined") {
36230
- return;
36231
- }
36232
- if (value === null) {
36233
- pairs.push(key);
36234
- return;
36235
- }
36236
- pairs.push(encodeURIComponent(key) + "=" + encodeURIComponent(value));
36237
- }
36238
- }
36239
- return pairs.join("&");
36240
- }
36241
- function decode(str, strict) {
36242
- var data = {};
36243
- if (str === "") {
36244
- return data;
36245
- }
36246
- var pairs = str.split("&");
36247
- for (var i = 0; i < pairs.length; i++) {
36248
- var pair = pairs[i].split("=", 2);
36249
- var key = decodeURIComponent(pair[0]);
36250
- if (strict && Object.prototype.hasOwnProperty.call(data, key)) {
36251
- throw new URIError("Duplicate key: " + key);
36252
- }
36253
- data[key] = pair.length === 2 ? decodeURIComponent(pair[1]) : null;
36254
- }
36255
- return data;
36256
- }
36257
- function appendToUrl(url, params) {
36258
- return (url +
36259
- (url.indexOf("?") !== -1 ? "&" : "?") +
36260
- (typeof params === "string" ? params : QueryString.encode(params)));
36261
- }
36262
- function getParameterByName(name, url) {
36263
- if (!url) {
36264
- url = window.location.href;
36265
- }
36266
- name = name.replace(/[\[\]]/g, "\\$&");
36267
- var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url);
36268
- if (!results)
36269
- return null;
36270
- if (!results[2])
36271
- return "";
36272
- return decodeURIComponent(results[2].replace(/\+/g, " "));
36273
- }
36274
- function getParamsAsObject(query) {
36275
- var params = {};
36276
- if (!query)
36277
- return params;
36278
- var values = query.split("&");
36279
- values.map(function (item) {
36280
- var data = item.split("=");
36281
- if (!data || data.length != 2)
36282
- return;
36283
- params[data[0]] = decodeURIComponent(data[1].replace(/\+/g, " "));
36284
- });
36285
- return params;
36286
- }
36287
- function toQueryString(data) {
36288
- if (!data)
36289
- return "";
36290
- if ((typeof data === "undefined" ? "undefined" : typeof (data)) != "object")
36291
- return data;
36292
- var key = Object.keys(data);
36293
- var params = [];
36294
- key.map(function (k) {
36295
- var v = data[k];
36296
- if ((typeof v === "undefined" ? "undefined" : typeof (v)) == "object")
36297
- v = JSON.stringify(v);
36298
- else
36299
- v = encodeURIComponent(v);
36300
- var item = [k, v].join("=");
36301
- params.push(item);
36302
- });
36303
- return params.join("&");
36304
- }
36305
- const QueryString = {
36306
- encode: encode,
36307
- decode: decode,
36308
- appendToUrl: appendToUrl,
36309
- getParameterByName: getParameterByName,
36310
- getParamsAsObject: getParamsAsObject,
36311
- toQueryString: toQueryString,
36312
- };
36313
-
36314
36333
  var wrappers = {};
36315
36334
  var WrapperFn = function wrapFunction(fn, type, source) {
36316
36335
  var t = type || 'default';
@@ -36572,8 +36591,9 @@ class ZaloJSBridge extends eventemitter3 {
36572
36591
  }
36573
36592
  jsCall(action, options, callback, isMultiCallback = false, nRetry = 3, haveTimeout = true) {
36574
36593
  try {
36575
- const key = generateUniqueString(action);
36576
- if (!this._device.isMobile || lodash.isEmpty(action)) {
36594
+ const actionName = action.name;
36595
+ const key = generateUniqueString(actionName);
36596
+ if (!this._device.isMobile || lodash.isEmpty(actionName)) {
36577
36597
  this.onJSCall(key, {
36578
36598
  error_code: -13,
36579
36599
  error_message: 'params invalid!',
@@ -36582,7 +36602,7 @@ class ZaloJSBridge extends eventemitter3 {
36582
36602
  jsToken: this._jsAccessTk,
36583
36603
  access_token: this._accessTk
36584
36604
  },
36585
- action: action
36605
+ action: actionName
36586
36606
  });
36587
36607
  return false;
36588
36608
  }
@@ -36596,11 +36616,11 @@ class ZaloJSBridge extends eventemitter3 {
36596
36616
  error_code: -14,
36597
36617
  error_message: 'Request Timeout!',
36598
36618
  data: {},
36599
- action: action
36619
+ action: actionName
36600
36620
  };
36601
36621
  this._jsCallFuncCallbacks[key] = {
36602
36622
  timeout: haveTimeout &&
36603
- ACTION_HAVE_CALLBACK.includes(action) &&
36623
+ action.have_callback &&
36604
36624
  setTimeout(() => {
36605
36625
  this.onJSCall(key, timeoutCallback);
36606
36626
  }, 8000),
@@ -36610,14 +36630,14 @@ class ZaloJSBridge extends eventemitter3 {
36610
36630
  options = serialize(options);
36611
36631
  if (isMultiCallback) {
36612
36632
  if (this._device.isIOS) {
36613
- return ZaloJavaScriptInterface.jsCall(this._jsAccessTk, action, this._accessTk, options, window.onMultiJSCall(key));
36633
+ return ZaloJavaScriptInterface.jsCall(this._jsAccessTk, actionName, this._accessTk, options, window.onMultiJSCall(key));
36614
36634
  }
36615
- return ZaloJavaScriptInterface.jsCall(this._jsAccessTk, action, this._accessTk, options, `window.onMultiJSCall('${key}')`);
36635
+ return ZaloJavaScriptInterface.jsCall(this._jsAccessTk, actionName, this._accessTk, options, `window.onMultiJSCall('${key}')`);
36616
36636
  }
36617
36637
  if (this._device.isIOS) {
36618
- return ZaloJavaScriptInterface.jsCall(this._jsAccessTk, action, this._accessTk, options, window.onJSCall(key));
36638
+ return ZaloJavaScriptInterface.jsCall(this._jsAccessTk, actionName, this._accessTk, options, window.onJSCall(key));
36619
36639
  }
36620
- return ZaloJavaScriptInterface.jsCall(this._jsAccessTk, action, this._accessTk, options, `window.onJSCall('${key}')`);
36640
+ return ZaloJavaScriptInterface.jsCall(this._jsAccessTk, actionName, this._accessTk, options, `window.onJSCall('${key}')`);
36621
36641
  }
36622
36642
  catch (error) {
36623
36643
  if (nRetry-- > 0) {
@@ -36635,7 +36655,7 @@ class ZaloJSBridge extends eventemitter3 {
36635
36655
  jsToken: this._jsAccessTk,
36636
36656
  access_token: this._accessTk
36637
36657
  },
36638
- action: action,
36658
+ action: actionName,
36639
36659
  js_error: error
36640
36660
  };
36641
36661
  this.onJSCall(key, errorCallback);
@@ -36666,7 +36686,7 @@ class ZJSBridgeProvider {
36666
36686
  __classPrivateFieldGet(this, _ZJSBridgeProvider_bridge).jsAccessTk = value;
36667
36687
  }
36668
36688
  callNative(action, data, option) {
36669
- this.debug(action, data);
36689
+ this.debug(action.name, data);
36670
36690
  return new Promise((resolve, reject) => {
36671
36691
  const fn = (cb) => __awaiter(this, void 0, void 0, function* () {
36672
36692
  try {
@@ -36682,7 +36702,7 @@ class ZJSBridgeProvider {
36682
36702
  else if (cb && cb.error_code < 0) {
36683
36703
  try {
36684
36704
  window.zmpSentry &&
36685
- window.zmpSentry.captureMessage(`${action}: call native fail`, {
36705
+ window.zmpSentry.captureMessage(`${action.name}: call native fail`, {
36686
36706
  extra: {
36687
36707
  data: data,
36688
36708
  rs: cb
@@ -36704,6 +36724,11 @@ class ZJSBridgeProvider {
36704
36724
  const error = new NativeError(-5, `${action}: Client isn't support this action`);
36705
36725
  return reject(error);
36706
36726
  }
36727
+ else if (option === null || option === void 0 ? void 0 : option.delay) {
36728
+ setTimeout(() => {
36729
+ __classPrivateFieldGet(this, _ZJSBridgeProvider_bridge).jsCall(action, data, fn, option === null || option === void 0 ? void 0 : option.isMultiCallback, option === null || option === void 0 ? void 0 : option.nRetry, option === null || option === void 0 ? void 0 : option.haveTimeout);
36730
+ }, option.delay);
36731
+ }
36707
36732
  else {
36708
36733
  __classPrivateFieldGet(this, _ZJSBridgeProvider_bridge).jsCall(action, data, fn, option === null || option === void 0 ? void 0 : option.isMultiCallback, option === null || option === void 0 ? void 0 : option.nRetry, option === null || option === void 0 ? void 0 : option.haveTimeout);
36709
36734
  }
@@ -36712,7 +36737,7 @@ class ZJSBridgeProvider {
36712
36737
  }
36713
36738
  _ZJSBridgeProvider_bridge = new WeakMap();
36714
36739
 
36715
- var version = "2.16.1";
36740
+ var version = "2.16.4";
36716
36741
 
36717
36742
  class Basics {
36718
36743
  /**
@@ -36754,31 +36779,9 @@ class Basics {
36754
36779
  */
36755
36780
  static getAppInfo() {
36756
36781
  return __awaiter(this, void 0, void 0, function* () {
36757
- let info = {};
36758
36782
  const appId = this.getAppId();
36759
36783
  const systemInfo = this.getSystemInfo();
36760
- const api = QueryString.appendToUrl(`${API_DOMAIN}${H5_API.GET_APP_INFO}`, {
36761
- appId,
36762
- versionStatus: 0,
36763
- currentVersion: systemInfo.version
36764
- });
36765
- const msgApi = yield fetch(api, {
36766
- credentials: 'include'
36767
- });
36768
- if (msgApi.ok) {
36769
- const appInfo = yield msgApi.json();
36770
- if (appInfo.err < 0 || !appInfo.data) {
36771
- throw new Error(appInfo);
36772
- }
36773
- info = {
36774
- name: appInfo.data.name,
36775
- version: appInfo.data.version,
36776
- description: appInfo.data.description,
36777
- appUrl: appInfo.data.appUrl,
36778
- qrCodeUrl: appInfo.data.qrCodeUrl
36779
- };
36780
- }
36781
- return info;
36784
+ return yield getAppInfo(appId, 0, systemInfo.version);
36782
36785
  });
36783
36786
  }
36784
36787
  }
@@ -36817,7 +36820,7 @@ class NavigationBar {
36817
36820
  */
36818
36821
  static setNavigationBarTitle(object) {
36819
36822
  return __awaiter(this, void 0, void 0, function* () {
36820
- yield this.callNative(ACTION.CHANGE_TITLE_HEADER.name, {
36823
+ yield this.callNative(ACTION.CHANGE_TITLE_HEADER, {
36821
36824
  title: object.title
36822
36825
  }, {
36823
36826
  haveTimeout: false
@@ -36865,7 +36868,7 @@ class NavigationBar {
36865
36868
  actionBarType = HIDE_ACTION_BAR;
36866
36869
  }
36867
36870
  this.setActionBarConfig((state) => (Object.assign(Object.assign({}, state), { actionbarType: actionBarType, dataConfig: Object.assign(Object.assign({}, state.dataConfig), dataConfig) })));
36868
- yield this.callNative(ACTION.CHANGE_ACTIONBAR.name, Object.assign({}, this.getActionBarConfig()), {
36871
+ yield this.callNative(ACTION.CHANGE_ACTIONBAR, Object.assign({}, this.getActionBarConfig()), {
36869
36872
  haveTimeout: false
36870
36873
  });
36871
36874
  });
@@ -36909,7 +36912,7 @@ class NavigationBar {
36909
36912
  ? ACTION_LEFT_BUTTON_TYPE.SHOW_HOME
36910
36913
  : ACTION_LEFT_BUTTON_TYPE.HIDE_HOME;
36911
36914
  this.setActionBarConfig((state) => (Object.assign(Object.assign({}, state), { buttonType: leftButtonType, dataConfig: Object.assign(Object.assign({}, state.dataConfig), { viewInLeftType: leftButtonType }), homeConfig: Object.assign(Object.assign({}, state.homeConfig), { enable: showHomeButton }) })));
36912
- yield this.callNative(ACTION.CHANGE_ACTIONBAR_LEFTBUTTON_TYPE.name, Object.assign({}, this.getActionBarConfig()), {
36915
+ yield this.callNative(ACTION.CHANGE_ACTIONBAR_LEFTBUTTON_TYPE, Object.assign({}, this.getActionBarConfig()), {
36913
36916
  haveTimeout: false
36914
36917
  });
36915
36918
  });
@@ -36951,7 +36954,7 @@ class NavigationBar {
36951
36954
  */
36952
36955
  static setNavigationBarRightButton(object) {
36953
36956
  return __awaiter(this, void 0, void 0, function* () {
36954
- yield this.callNative(ACTION.CREATE_OPTIONS_MENU.name, {
36957
+ yield this.callNative(ACTION.CREATE_OPTIONS_MENU, {
36955
36958
  supportToolBar: object.supportToolBar,
36956
36959
  reset: object.reset,
36957
36960
  menuListItems: object.menuListItems,
@@ -36987,7 +36990,7 @@ class Background {
36987
36990
  return __awaiter(this, void 0, void 0, function* () {
36988
36991
  if (lodash.isString(object.backgroundColor) &&
36989
36992
  object.backgroundColor.length > 0) {
36990
- yield this.callNative(ACTION.CHANGE_ACTIONBAR.name, {
36993
+ yield this.callNative(ACTION.CHANGE_ACTIONBAR, {
36991
36994
  actionbarType: this.isShowNavBar ? 5 : 6,
36992
36995
  dataConfig: {
36993
36996
  backgroundColor: object.backgroundColor,
@@ -37099,7 +37102,7 @@ class Device {
37099
37102
  */
37100
37103
  static setDeviceOrientation(object) {
37101
37104
  return __awaiter(this, void 0, void 0, function* () {
37102
- yield this.callNative(ACTION.CHANGE_AUTOROTATE.name, {
37105
+ yield this.callNative(ACTION.CHANGE_AUTOROTATE, {
37103
37106
  autoRotate: OrientationType[object.rotate]
37104
37107
  });
37105
37108
  });
@@ -37123,26 +37126,27 @@ class Device {
37123
37126
  */
37124
37127
  static getNetworkType(object) {
37125
37128
  return __awaiter(this, void 0, void 0, function* () {
37126
- const resData = yield this.callNative(ACTION.WEBVIEW_NETWORKTYPE.name, {
37129
+ const resData = yield this.callNative(ACTION.WEBVIEW_NETWORKTYPE, {
37127
37130
  url: window.location.href,
37128
37131
  featureId: ''
37129
37132
  }).then((data) => {
37130
37133
  const network = data.network;
37131
37134
  let networkType;
37135
+ const isAndroid = checkPlatform().isAndroid;
37132
37136
  switch (network) {
37133
- case CONFIG.NETWORK_TYPE.NONE:
37137
+ case NETWORK_TYPE(isAndroid).NONE:
37134
37138
  networkType = NetworkType.none;
37135
37139
  break;
37136
- case CONFIG.NETWORK_TYPE.WIFI:
37140
+ case NETWORK_TYPE(isAndroid).WIFI:
37137
37141
  networkType = NetworkType.wifi;
37138
37142
  break;
37139
- case CONFIG.NETWORK_TYPE['2G']:
37143
+ case NETWORK_TYPE(isAndroid)['2G']:
37140
37144
  networkType = NetworkType.cellular;
37141
37145
  break;
37142
- case CONFIG.NETWORK_TYPE['3G']:
37146
+ case NETWORK_TYPE(isAndroid)['3G']:
37143
37147
  networkType = NetworkType.cellular;
37144
37148
  break;
37145
- case CONFIG.NETWORK_TYPE['4G']:
37149
+ case NETWORK_TYPE(isAndroid)['4G']:
37146
37150
  networkType = NetworkType.cellular;
37147
37151
  break;
37148
37152
  default:
@@ -37236,7 +37240,7 @@ class Device {
37236
37240
  items: Array.isArray(object === null || object === void 0 ? void 0 : object.items) ? object === null || object === void 0 ? void 0 : object.items : []
37237
37241
  }
37238
37242
  };
37239
- yield this.callNative(ACTION.SCAN_IBEACON.name, Object.assign({}, data));
37243
+ yield this.callNative(ACTION.SCAN_IBEACON, Object.assign({}, data));
37240
37244
  return true;
37241
37245
  });
37242
37246
  }
@@ -37255,7 +37259,7 @@ class Device {
37255
37259
  const data = {
37256
37260
  subaction: 2
37257
37261
  };
37258
- yield this.callNative(ACTION.SCAN_IBEACON.name, Object.assign({}, data));
37262
+ yield this.callNative(ACTION.SCAN_IBEACON, Object.assign({}, data));
37259
37263
  return true;
37260
37264
  });
37261
37265
  }
@@ -37276,7 +37280,7 @@ class Device {
37276
37280
  const data = {
37277
37281
  subaction: 1
37278
37282
  };
37279
- const resData = yield this.callNative(ACTION.SCAN_IBEACON.name, Object.assign({}, data), {
37283
+ const resData = yield this.callNative(ACTION.SCAN_IBEACON, Object.assign({}, data), {
37280
37284
  isMultiCallback: true
37281
37285
  }).then((resData) => {
37282
37286
  const res = {
@@ -37318,7 +37322,9 @@ class Device {
37318
37322
  */
37319
37323
  static stopBluetoothDevicesDiscovery() {
37320
37324
  return __awaiter(this, void 0, void 0, function* () {
37321
- return this.callNative('', {});
37325
+ return this.callNative({
37326
+ name: ''
37327
+ }, {});
37322
37328
  });
37323
37329
  }
37324
37330
  /**
@@ -37343,7 +37349,9 @@ class Device {
37343
37349
  */
37344
37350
  static startBluetoothDevicesDiscovery(object) {
37345
37351
  return __awaiter(this, void 0, void 0, function* () {
37346
- return this.callNative('', Object.assign({}, object));
37352
+ return this.callNative({
37353
+ name: ''
37354
+ }, Object.assign({}, object));
37347
37355
  });
37348
37356
  }
37349
37357
  /**
@@ -37365,7 +37373,9 @@ class Device {
37365
37373
  */
37366
37374
  static openBluetoothAdapter() {
37367
37375
  return __awaiter(this, void 0, void 0, function* () {
37368
- return this.callNative('', {});
37376
+ return this.callNative({
37377
+ name: ''
37378
+ }, {});
37369
37379
  });
37370
37380
  }
37371
37381
  /**
@@ -37383,7 +37393,9 @@ class Device {
37383
37393
  */
37384
37394
  static onBluetoothDeviceFound() {
37385
37395
  return __awaiter(this, void 0, void 0, function* () {
37386
- return this.callNative('', {});
37396
+ return this.callNative({
37397
+ name: ''
37398
+ }, {});
37387
37399
  });
37388
37400
  }
37389
37401
  /**
@@ -37429,7 +37441,9 @@ class Device {
37429
37441
  const data = {
37430
37442
  services: object.services || []
37431
37443
  };
37432
- return this.callNative('', data);
37444
+ return this.callNative({
37445
+ name: ''
37446
+ }, data);
37433
37447
  });
37434
37448
  }
37435
37449
  /**
@@ -37448,7 +37462,9 @@ class Device {
37448
37462
  */
37449
37463
  static getBluetoothDevices() {
37450
37464
  return __awaiter(this, void 0, void 0, function* () {
37451
- return this.callNative('', {});
37465
+ return this.callNative({
37466
+ name: ''
37467
+ }, {});
37452
37468
  });
37453
37469
  }
37454
37470
  /**
@@ -37467,7 +37483,9 @@ class Device {
37467
37483
  */
37468
37484
  static getBluetoothAdapterState() {
37469
37485
  return __awaiter(this, void 0, void 0, function* () {
37470
- return this.callNative('', {});
37486
+ return this.callNative({
37487
+ name: ''
37488
+ }, {});
37471
37489
  });
37472
37490
  }
37473
37491
  /**
@@ -37486,7 +37504,9 @@ class Device {
37486
37504
  */
37487
37505
  static closeBluetoothAdapter() {
37488
37506
  return __awaiter(this, void 0, void 0, function* () {
37489
- return this.callNative('', {});
37507
+ return this.callNative({
37508
+ name: ''
37509
+ }, {});
37490
37510
  });
37491
37511
  }
37492
37512
  /**
@@ -37498,7 +37518,7 @@ class Device {
37498
37518
  */
37499
37519
  static scanQRCode(object) {
37500
37520
  return __awaiter(this, void 0, void 0, function* () {
37501
- return yield this.callNative(ACTION.OPEN_QR.name, {
37521
+ return yield this.callNative(ACTION.OPEN_QR, {
37502
37522
  skipOpenLink: true
37503
37523
  });
37504
37524
  });
@@ -37512,7 +37532,7 @@ class Device {
37512
37532
  */
37513
37533
  static showToast(object) {
37514
37534
  return __awaiter(this, void 0, void 0, function* () {
37515
- yield this.callNative(ACTION.SHOW_TOAST.name, {
37535
+ yield this.callNative(ACTION.SHOW_TOAST, {
37516
37536
  toast: object.message
37517
37537
  });
37518
37538
  });
@@ -37526,7 +37546,7 @@ class Device {
37526
37546
  */
37527
37547
  static hideKeyboard(object) {
37528
37548
  return __awaiter(this, void 0, void 0, function* () {
37529
- yield this.callNative(ACTION.HIDE_KEYBOARD.name, {});
37549
+ yield this.callNative(ACTION.HIDE_KEYBOARD, {});
37530
37550
  });
37531
37551
  }
37532
37552
  /**
@@ -37538,7 +37558,7 @@ class Device {
37538
37558
  */
37539
37559
  static openPhone(object) {
37540
37560
  return __awaiter(this, void 0, void 0, function* () {
37541
- yield this.callNative(ACTION.OPEN_PHONE.name, {
37561
+ yield this.callNative(ACTION.OPEN_PHONE, {
37542
37562
  phoneNum: object.phoneNumber,
37543
37563
  phoneCode: object.phoneNumber
37544
37564
  });
@@ -37553,7 +37573,7 @@ class Device {
37553
37573
  */
37554
37574
  static openSMS(object) {
37555
37575
  return __awaiter(this, void 0, void 0, function* () {
37556
- yield this.callNative(ACTION.OPEN_SMS.name, {
37576
+ yield this.callNative(ACTION.OPEN_SMS, {
37557
37577
  content: object.content,
37558
37578
  phoneCode: object.phoneNumber
37559
37579
  });
@@ -37568,7 +37588,7 @@ class Device {
37568
37588
  */
37569
37589
  static keepScreen(object) {
37570
37590
  return __awaiter(this, void 0, void 0, function* () {
37571
- return yield this.callNative(ACTION.KEEP_SCREEN.name, {
37591
+ return yield this.callNative(ACTION.KEEP_SCREEN, {
37572
37592
  data: {
37573
37593
  keep_screen_on: object.keepScreenOn ? 1 : 0
37574
37594
  }
@@ -37584,7 +37604,7 @@ class Device {
37584
37604
  */
37585
37605
  static openBioAuthentication(object) {
37586
37606
  return __awaiter(this, void 0, void 0, function* () {
37587
- return yield this.callNative(ACTION.PROMPT_AUTHENTICATION.name, {
37607
+ return yield this.callNative(ACTION.PROMPT_AUTHENTICATION, {
37588
37608
  secret_data: object.secretData,
37589
37609
  app_id: this.getZAppId(),
37590
37610
  ui: {
@@ -37623,7 +37643,7 @@ class Device {
37623
37643
  */
37624
37644
  static checkStateBioAuthentication(object) {
37625
37645
  return __awaiter(this, void 0, void 0, function* () {
37626
- return yield this.callNative(ACTION.PROMPT_AUTHENTICATION_CHECK_STATE.name, {}).then((data) => {
37646
+ return yield this.callNative(ACTION.PROMPT_AUTHENTICATION_CHECK_STATE, {}).then((data) => {
37627
37647
  return {
37628
37648
  bioState: data === null || data === void 0 ? void 0 : data.bio_state
37629
37649
  };
@@ -37639,7 +37659,7 @@ class Device {
37639
37659
  */
37640
37660
  static vibrate(object) {
37641
37661
  return __awaiter(this, void 0, void 0, function* () {
37642
- return yield this.callNative(ACTION.INTERACTIVE_VIBRATION.name, {
37662
+ return yield this.callNative(ACTION.INTERACTIVE_VIBRATION, {
37643
37663
  type: VibrateType[object.type],
37644
37664
  vibrate_time: object.milliseconds
37645
37665
  });
@@ -37658,7 +37678,7 @@ class Device {
37658
37678
  if (lodash.isString(object.password) && object.password.length > 0) {
37659
37679
  securityType = 'wpa_wpa2';
37660
37680
  }
37661
- return yield this.callNative(ACTION.MP_JOIN_WIFI.name, {
37681
+ return yield this.callNative(ACTION.MP_JOIN_WIFI, {
37662
37682
  ssid: object.SSID,
37663
37683
  securityType: securityType,
37664
37684
  password: object.password,
@@ -37686,7 +37706,7 @@ class LocalResourceStorage {
37686
37706
  __classPrivateFieldSet(this, _LocalResourceStorage_resourceInfo, {
37687
37707
  keys: new Set(),
37688
37708
  currentSize: 0,
37689
- limitSize: CONFIG.STORAGE_LIMIT
37709
+ limitSize: STORAGE_LIMIT
37690
37710
  });
37691
37711
  __classPrivateFieldSet(this, _LocalResourceStorage_prefix, prefix);
37692
37712
  this.findAllCurrentDataByApp(prefix);
@@ -37749,7 +37769,7 @@ class LocalResourceStorage {
37749
37769
  currentSize: lodash.isNumber(currentSize)
37750
37770
  ? Number((currentSize / 1024).toFixed(2))
37751
37771
  : 0,
37752
- limitSize: Number((CONFIG.STORAGE_LIMIT / 1024).toFixed(2))
37772
+ limitSize: Number((STORAGE_LIMIT / 1024).toFixed(2))
37753
37773
  };
37754
37774
  }
37755
37775
  remove(keys) {
@@ -37795,13 +37815,13 @@ class NativeResourceStorage extends ZJSBridgeProvider {
37795
37815
  __classPrivateFieldSet(this, _NativeResourceStorage_resourceInfo, {
37796
37816
  keys: new Set(),
37797
37817
  currentSize: 0,
37798
- limitSize: CONFIG.STORAGE_LIMIT
37818
+ limitSize: STORAGE_LIMIT
37799
37819
  });
37800
37820
  __classPrivateFieldSet(this, _NativeResourceStorage_appId, appId);
37801
37821
  }
37802
37822
  get(keys) {
37803
37823
  return __awaiter(this, void 0, void 0, function* () {
37804
- return yield this.callNative(ACTION.ZBROWSER_MPDS.name, {
37824
+ return yield this.callNative(ACTION.ZBROWSER_MPDS, {
37805
37825
  mpds_action: 'mpds.get',
37806
37826
  mpds_data: {
37807
37827
  keys
@@ -37820,7 +37840,7 @@ class NativeResourceStorage extends ZJSBridgeProvider {
37820
37840
  }
37821
37841
  set(data) {
37822
37842
  return __awaiter(this, void 0, void 0, function* () {
37823
- const errorKeys = yield this.callNative(ACTION.ZBROWSER_MPDS.name, {
37843
+ const errorKeys = yield this.callNative(ACTION.ZBROWSER_MPDS, {
37824
37844
  mpds_action: 'mpds.set',
37825
37845
  mpds_data: {
37826
37846
  map: data
@@ -37840,7 +37860,7 @@ class NativeResourceStorage extends ZJSBridgeProvider {
37840
37860
  }
37841
37861
  getInfo() {
37842
37862
  return __awaiter(this, void 0, void 0, function* () {
37843
- const currentSize = yield this.callNative(ACTION.ZBROWSER_MPDS.name, {
37863
+ const currentSize = yield this.callNative(ACTION.ZBROWSER_MPDS, {
37844
37864
  mpds_action: 'mpds.get.size',
37845
37865
  mpds_data: {},
37846
37866
  appId: __classPrivateFieldGet(this, _NativeResourceStorage_appId)
@@ -37855,13 +37875,13 @@ class NativeResourceStorage extends ZJSBridgeProvider {
37855
37875
  });
37856
37876
  return {
37857
37877
  currentSize: lodash.isNumber(currentSize) ? Number(currentSize / 1024) : 0,
37858
- limitSize: Number(CONFIG.STORAGE_LIMIT / 1024)
37878
+ limitSize: Number(STORAGE_LIMIT / 1024)
37859
37879
  };
37860
37880
  });
37861
37881
  }
37862
37882
  remove(keys) {
37863
37883
  return __awaiter(this, void 0, void 0, function* () {
37864
- const errorKeys = yield this.callNative(ACTION.ZBROWSER_MPDS.name, {
37884
+ const errorKeys = yield this.callNative(ACTION.ZBROWSER_MPDS, {
37865
37885
  mpds_action: 'mpds.remove.key',
37866
37886
  mpds_data: {
37867
37887
  keys: keys
@@ -37881,7 +37901,7 @@ class NativeResourceStorage extends ZJSBridgeProvider {
37881
37901
  }
37882
37902
  clear() {
37883
37903
  return __awaiter(this, void 0, void 0, function* () {
37884
- yield this.callNative(ACTION.ZBROWSER_MPDS.name, {
37904
+ yield this.callNative(ACTION.ZBROWSER_MPDS, {
37885
37905
  mpds_action: 'mpds.clear.appData',
37886
37906
  mpds_data: {},
37887
37907
  appId: __classPrivateFieldGet(this, _NativeResourceStorage_appId)
@@ -38111,7 +38131,7 @@ class OpenApi {
38111
38131
  fields = `${fields}.type(${object === null || object === void 0 ? void 0 : object.avatarType})`;
38112
38132
  }
38113
38133
  const userInfo = yield axios
38114
- .get(CONFIG.APIS.GET_USER_INFO, {
38134
+ .get(APIS.GET_USER_INFO, {
38115
38135
  params: {
38116
38136
  fields: fields,
38117
38137
  access_token: accessToken
@@ -38144,7 +38164,7 @@ class OpenApi {
38144
38164
  */
38145
38165
  static getPhoneNumber(object) {
38146
38166
  return __awaiter(this, void 0, void 0, function* () {
38147
- return yield this.callNative(ACTION.MP_GET_NUMBER.name, {}, {
38167
+ return yield this.callNative(ACTION.MP_GET_NUMBER, {}, {
38148
38168
  isMultiCallback: true,
38149
38169
  callback: (nativeData, error) => {
38150
38170
  if (nativeData.error_code === 0) {
@@ -38156,7 +38176,8 @@ class OpenApi {
38156
38176
  else {
38157
38177
  return Promise.reject(error);
38158
38178
  }
38159
- }
38179
+ },
38180
+ delay: this.isIOS ? 200 : 0
38160
38181
  });
38161
38182
  });
38162
38183
  }
@@ -38173,7 +38194,7 @@ class Window {
38173
38194
  */
38174
38195
  static closeApp(object) {
38175
38196
  return __awaiter(this, void 0, void 0, function* () {
38176
- yield this.callNative(ACTION.WINDOW_CLOSE.name, {});
38197
+ yield this.callNative(ACTION.WINDOW_CLOSE, {});
38177
38198
  });
38178
38199
  }
38179
38200
  /**
@@ -38193,10 +38214,12 @@ class Window {
38193
38214
  return [key, value].join('=');
38194
38215
  })
38195
38216
  .join('&');
38196
- yield this.callNative(ACTION.OPEN_MP.name, {
38197
- mpUrl: `${CONFIG.MINI_APP_INTERNAL_LINK}/${appId}/${queryParamString.length > 0 ? '?' + queryParamString : ''}`,
38217
+ const appInfo = yield getAppInfo(appId, 0);
38218
+ yield this.callNative(ACTION.OPEN_MP, {
38219
+ mpUrl: `${MINI_APP_INTERNAL_LINK}/${appId}/${queryParamString.length > 0 ? '?' + queryParamString : ''}`,
38198
38220
  mpInfo: {
38199
- appId: appId
38221
+ appId: appId,
38222
+ appAvtUrl: appInfo.logoUrl || ''
38200
38223
  }
38201
38224
  });
38202
38225
  });
@@ -38211,7 +38234,7 @@ class Window {
38211
38234
  */
38212
38235
  static openWebview(object) {
38213
38236
  return __awaiter(this, void 0, void 0, function* () {
38214
- yield this.callNative(ACTION.OPEN_INAPP.name, {
38237
+ yield this.callNative(ACTION.OPEN_INAPP, {
38215
38238
  url: object.url
38216
38239
  });
38217
38240
  });
@@ -38236,7 +38259,7 @@ class Location {
38236
38259
  */
38237
38260
  static getLocation(object) {
38238
38261
  return __awaiter(this, void 0, void 0, function* () {
38239
- return yield this.callNative(ACTION.GET_LOCATION.name, {
38262
+ return yield this.callNative(ACTION.GET_LOCATION, {
38240
38263
  silent_request: false,
38241
38264
  permission_description: 'Cho phép Zalo truy cập vào vị trí của thiết bị này?'
38242
38265
  }, {
@@ -38260,7 +38283,8 @@ class Location {
38260
38283
  else {
38261
38284
  return Promise.reject(error);
38262
38285
  }
38263
- }
38286
+ },
38287
+ delay: this.isIOS ? 200 : 0
38264
38288
  });
38265
38289
  });
38266
38290
  }
@@ -38274,7 +38298,7 @@ class Location {
38274
38298
  */
38275
38299
  static sendLocation(object) {
38276
38300
  return __awaiter(this, void 0, void 0, function* () {
38277
- yield this.callNative(ACTION.QUERY_LOCATION_HIDE.name, {
38301
+ yield this.callNative(ACTION.QUERY_LOCATION_HIDE, {
38278
38302
  title: object.title,
38279
38303
  touserid: object.toUserId,
38280
38304
  zapp: this.getZAppId()
@@ -38294,7 +38318,7 @@ class Media {
38294
38318
  */
38295
38319
  static requestCameraPermission(object) {
38296
38320
  return __awaiter(this, void 0, void 0, function* () {
38297
- return yield this.callNative(ACTION.REQUEST_PERMISSION_CAMERA.name, {}, {
38321
+ return yield this.callNative(ACTION.REQUEST_PERMISSION_CAMERA, {}, {
38298
38322
  callback: (nativeData, error) => {
38299
38323
  if (nativeData.error_code === -2 || nativeData.error_code >= 0) {
38300
38324
  return Promise.resolve({
@@ -38330,7 +38354,7 @@ class Media {
38330
38354
  imageUrl: object.imageUrl
38331
38355
  };
38332
38356
  }
38333
- return yield this.callNative(ACTION.SAVE_IMAGE_GALLERY.name, Object.assign({}, data));
38357
+ return yield this.callNative(ACTION.SAVE_IMAGE_GALLERY, Object.assign({}, data));
38334
38358
  });
38335
38359
  }
38336
38360
  }
@@ -38345,7 +38369,7 @@ class Zalo {
38345
38369
  */
38346
38370
  static viewOAQr(object) {
38347
38371
  return __awaiter(this, void 0, void 0, function* () {
38348
- yield this.callNative(ACTION.VIEW_MYQR.name, {
38372
+ yield this.callNative(ACTION.VIEW_MYQR, {
38349
38373
  dpn: object.displayName,
38350
38374
  uid: object.id,
38351
38375
  zapp: this.getZAppId()
@@ -38364,7 +38388,7 @@ class Zalo {
38364
38388
  */
38365
38389
  static openProfile(object) {
38366
38390
  return __awaiter(this, void 0, void 0, function* () {
38367
- return yield this.callNative(ACTION.OPEN_PROFILE.name, {
38391
+ return yield this.callNative(ACTION.OPEN_PROFILE, {
38368
38392
  uId: object.id,
38369
38393
  type: ProfileType[object.type],
38370
38394
  zapp: this.getZAppId(),
@@ -38382,7 +38406,7 @@ class Zalo {
38382
38406
  */
38383
38407
  static openChat(object) {
38384
38408
  return __awaiter(this, void 0, void 0, function* () {
38385
- return yield this.callNative(ACTION.OPEN_CHAT.name, {
38409
+ return yield this.callNative(ACTION.OPEN_CHAT, {
38386
38410
  uId: object.id,
38387
38411
  type: ChatType[object.type],
38388
38412
  zapp: this.getZAppId(),
@@ -38423,7 +38447,7 @@ class Zalo {
38423
38447
  };
38424
38448
  break;
38425
38449
  }
38426
- return yield this.callNative(ACTION.OPEN_POSTFEED.name, Object.assign(Object.assign({ type: PostFeedType[object.type] }, reqData), { zapp: this.getZAppId() })).then((res) => {
38450
+ return yield this.callNative(ACTION.OPEN_POSTFEED, Object.assign(Object.assign({ type: PostFeedType[object.type] }, reqData), { zapp: this.getZAppId() })).then((res) => {
38427
38451
  return {
38428
38452
  status: res.status,
38429
38453
  shareType: res.share_type,
@@ -38442,7 +38466,7 @@ class Zalo {
38442
38466
  */
38443
38467
  static followOA(object) {
38444
38468
  return __awaiter(this, void 0, void 0, function* () {
38445
- yield this.callNative(ACTION.FOLLOW_OA.name, {
38469
+ yield this.callNative(ACTION.FOLLOW_OA, {
38446
38470
  uid: object.id,
38447
38471
  showDialogConfirm: true,
38448
38472
  zapp: this.getZAppId()
@@ -38461,7 +38485,7 @@ class Zalo {
38461
38485
  */
38462
38486
  static unfollowOA(object) {
38463
38487
  return __awaiter(this, void 0, void 0, function* () {
38464
- yield this.callNative(ACTION.UNFOLLOW_OA.name, {
38488
+ yield this.callNative(ACTION.UNFOLLOW_OA, {
38465
38489
  uid: object.id,
38466
38490
  zapp: this.getZAppId()
38467
38491
  }, {
@@ -38541,7 +38565,7 @@ class Zalo {
38541
38565
  object.type = 'link';
38542
38566
  }
38543
38567
  }
38544
- return yield this.callNative(ACTION.OPEN_SHARESHEET.name, Object.assign(Object.assign({ type: ShareSheetType[object.type] }, reqData), { zapp: this.getZAppId() }), {
38568
+ return yield this.callNative(ACTION.OPEN_SHARESHEET, Object.assign(Object.assign({ type: ShareSheetType[object.type] }, reqData), { zapp: this.getZAppId() }), {
38545
38569
  haveTimeout: false
38546
38570
  }).then((res) => {
38547
38571
  return {
@@ -38560,25 +38584,13 @@ class Zalo {
38560
38584
  * @category Zalo
38561
38585
  *
38562
38586
  */
38563
- static createShortcut(object) {
38587
+ static createShortcut(url, title, icon) {
38564
38588
  return __awaiter(this, void 0, void 0, function* () {
38565
- const isIOS = checkPlatform().isIOS;
38566
- let iconURL = getMetaValue('og:image:url');
38567
- if (!(iconURL === null || iconURL === void 0 ? void 0 : iconURL.includes('https'))) {
38568
- iconURL = `https:${iconURL}`;
38569
- }
38570
- if (isIOS) {
38571
- const iosShortcutURL = `https://mini.zalo.me/shortcut.html?appId=${this.getAppId()}&appName=${document.title}&appIcon=${iconURL}`;
38572
- return yield this.callNative(ACTION.OPEN_OUTAPP.name, {
38573
- url: encodeURI(iosShortcutURL)
38574
- });
38575
- }
38576
- else
38577
- return yield this.callNative(ACTION.CREATE_SHORTCUT.name, {
38578
- url: `${CONFIG.MINI_APP_LINK}/${this.getAppId()}/`,
38579
- title: document.title,
38580
- iconUrl: iconURL
38581
- });
38589
+ return yield this.callNative(ACTION.CREATE_SHORTCUT, {
38590
+ url: url,
38591
+ title: title,
38592
+ iconUrl: icon
38593
+ });
38582
38594
  });
38583
38595
  }
38584
38596
  /**
@@ -38591,7 +38603,7 @@ class Zalo {
38591
38603
  */
38592
38604
  static openProfilePicker(object) {
38593
38605
  return __awaiter(this, void 0, void 0, function* () {
38594
- return yield this.callNative(ACTION.MP_OPEN_PROFILE_PICKER.name, {
38606
+ return yield this.callNative(ACTION.MP_OPEN_PROFILE_PICKER, {
38595
38607
  maxProfile: object === null || object === void 0 ? void 0 : object.maxProfile
38596
38608
  }, {
38597
38609
  isMultiCallback: true,
@@ -38617,7 +38629,7 @@ class Zalo {
38617
38629
  */
38618
38630
  static getActionsSupported(object) {
38619
38631
  return __awaiter(this, void 0, void 0, function* () {
38620
- return yield this.callNative(ACTION.GET_SUPPORTED_ACTIONS.name, {}, {
38632
+ return yield this.callNative(ACTION.GET_SUPPORTED_ACTIONS, {}, {
38621
38633
  isMultiCallback: false,
38622
38634
  callback: (nativeData, error) => {
38623
38635
  const platform = getPlatform();
@@ -38652,14 +38664,14 @@ class Zalo {
38652
38664
  return __awaiter(this, void 0, void 0, function* () {
38653
38665
  const uploadSetting = {
38654
38666
  type: 0,
38655
- url: CONFIG.MEDIA_PICKER_UPLOAD_SERVER,
38656
- maxSize: CONFIG.MEDIA_PICKER_LIMIT
38667
+ url: MEDIA_PICKER_UPLOAD_SERVER,
38668
+ maxSize: MEDIA_PICKER_LIMIT
38657
38669
  };
38658
38670
  const defaultEditView = {
38659
38671
  enable: 1,
38660
38672
  aspect_ratio: '1:1'
38661
38673
  };
38662
- return yield this.callNative(ACTION.PICK_MEDIA.name, {
38674
+ return yield this.callNative(ACTION.PICK_MEDIA, {
38663
38675
  media_type: MediaPickerType[type],
38664
38676
  edit_view: Object.assign(Object.assign({}, defaultEditView), editView),
38665
38677
  silent_request: silentRequest,
@@ -38681,6 +38693,21 @@ class Zalo {
38681
38693
  });
38682
38694
  });
38683
38695
  }
38696
+ /**
38697
+ * Mở url out app zalo
38698
+ *
38699
+ * @async
38700
+ * @function openOutApp
38701
+ * @category Zalo
38702
+ *
38703
+ */
38704
+ static openOutApp(url) {
38705
+ return __awaiter(this, void 0, void 0, function* () {
38706
+ return yield this.callNative(ACTION.OPEN_OUTAPP, {
38707
+ url: url
38708
+ });
38709
+ });
38710
+ }
38684
38711
  }
38685
38712
 
38686
38713
  class Routing {
@@ -38715,7 +38742,7 @@ class Routing {
38715
38742
  */
38716
38743
  static sendDataToPreviousMiniApp(object) {
38717
38744
  return __awaiter(this, void 0, void 0, function* () {
38718
- return yield this.callNative(ACTION.WEBVIEW_SET_RESULT.name, {
38745
+ return yield this.callNative(ACTION.WEBVIEW_SET_RESULT, {
38719
38746
  result: stringifyData(object.data)
38720
38747
  });
38721
38748
  });
@@ -38761,6 +38788,7 @@ class ZaloMiniProgramSDK extends ZJSBridgeProvider {
38761
38788
  _ZaloMiniProgramSDK_tokenExpiresIn.set(this, void 0);
38762
38789
  _ZaloMiniProgramSDK_cookies.set(this, null);
38763
38790
  this.events = ZMPEEmitter.getInstance();
38791
+ this.isIOS = checkPlatform().isIOS;
38764
38792
  _ZaloMiniProgramSDK_actionBarConfig.set(this, void 0);
38765
38793
  this.getActionBarConfig = () => {
38766
38794
  return __classPrivateFieldGet(this, _ZaloMiniProgramSDK_actionBarConfig);
@@ -38774,10 +38802,10 @@ class ZaloMiniProgramSDK extends ZJSBridgeProvider {
38774
38802
  resolve(__classPrivateFieldGet(this, _ZaloMiniProgramSDK_cookies));
38775
38803
  }
38776
38804
  else {
38777
- this.callNative('action.jump.login', {})
38805
+ this.callNative(ACTION.JUMP_LOGIN, {})
38778
38806
  .then((data) => {
38779
38807
  const cookies = (data && data.cookiesOAuthLogins) || [];
38780
- const jsToken = cookies.find((cookie) => cookie.name === CONFIG.COOKIE_NAME.JS_TOKEN);
38808
+ const jsToken = cookies.find((cookie) => cookie.name === COOKIE_NAME.JS_TOKEN);
38781
38809
  if (jsToken) {
38782
38810
  this.setJSToken(jsToken.value);
38783
38811
  window.ZJSBridge.setJSToken &&
@@ -38853,6 +38881,7 @@ class ZaloMiniProgramSDK extends ZJSBridgeProvider {
38853
38881
  _ZaloMiniProgramSDK_getActionsSupported.set(this, Zalo.getActionsSupported);
38854
38882
  this.connectWifi = Device.connectWifi;
38855
38883
  this.openMediaPicker = Zalo.openMediaPicker;
38884
+ this.openOutApp = Zalo.openOutApp;
38856
38885
  __classPrivateFieldSet(this, _ZaloMiniProgramSDK_zOAuth, null);
38857
38886
  __classPrivateFieldSet(this, _ZaloMiniProgramSDK_zOAuthVrf, null);
38858
38887
  __classPrivateFieldSet(this, _ZaloMiniProgramSDK_accessToken, null);
@@ -38883,7 +38912,7 @@ class ZaloMiniProgramSDK extends ZJSBridgeProvider {
38883
38912
  },
38884
38913
  homeConfig: {
38885
38914
  enable: showHomeButton,
38886
- url: `${CONFIG.MINI_APP_INTERNAL_LINK}/${this.getAppId()}/${currentUrl.search}`
38915
+ url: `${MINI_APP_INTERNAL_LINK}/${this.getAppId()}/${currentUrl.search}`
38887
38916
  }
38888
38917
  });
38889
38918
  }
@@ -38905,8 +38934,8 @@ class ZaloMiniProgramSDK extends ZJSBridgeProvider {
38905
38934
  login(object) {
38906
38935
  return __awaiter(this, void 0, void 0, function* () {
38907
38936
  const cookies = yield __classPrivateFieldGet(this, _ZaloMiniProgramSDK_callJump).call(this);
38908
- const zOAuthCookie = cookies.find((cookie) => cookie.name === CONFIG.COOKIE_NAME.ZOAUTH);
38909
- const zOAuthVrfCookie = cookies.find((cookie) => cookie.name === CONFIG.COOKIE_NAME.ZOAUTH_VRF);
38937
+ const zOAuthCookie = cookies.find((cookie) => cookie.name === COOKIE_NAME.ZOAUTH);
38938
+ const zOAuthVrfCookie = cookies.find((cookie) => cookie.name === COOKIE_NAME.ZOAUTH_VRF);
38910
38939
  if (!lodash.isUndefined(zOAuthCookie) &&
38911
38940
  !lodash.isNull(zOAuthCookie) &&
38912
38941
  lodash.isString(zOAuthCookie.value)) {
@@ -38931,10 +38960,10 @@ class ZaloMiniProgramSDK extends ZJSBridgeProvider {
38931
38960
  loginZaloV3() {
38932
38961
  return __awaiter(this, void 0, void 0, function* () {
38933
38962
  return yield axios
38934
- .get(CONFIG.APIS.GET_ACCESS_TOKEN_V3, {
38963
+ .get(APIS.GET_ACCESS_TOKEN_V3, {
38935
38964
  params: {
38936
38965
  app_id: __classPrivateFieldGet(this, _ZaloMiniProgramSDK_zAppId),
38937
- redirect_uri: `${CONFIG.MINI_APP_INTERNAL_LINK}/${__classPrivateFieldGet(this, _ZaloMiniProgramSDK_appId)}/`,
38966
+ redirect_uri: `${MINI_APP_INTERNAL_LINK}/${__classPrivateFieldGet(this, _ZaloMiniProgramSDK_appId)}/`,
38938
38967
  code: __classPrivateFieldGet(this, _ZaloMiniProgramSDK_zOAuth),
38939
38968
  isSDK: true
38940
38969
  }
@@ -38974,7 +39003,7 @@ class ZaloMiniProgramSDK extends ZJSBridgeProvider {
38974
39003
  }
38975
39004
  };
38976
39005
  return yield axios
38977
- .post(CONFIG.APIS.GET_ACCESS_TOKEN, inputData, config)
39006
+ .post(APIS.GET_ACCESS_TOKEN, inputData, config)
38978
39007
  .then((response) => {
38979
39008
  const resData = response.data;
38980
39009
  if (resData.refresh_token) {
@@ -39319,6 +39348,10 @@ class MockSDK {
39319
39348
  console.warn('This api only works on zalo app');
39320
39349
  return Promise.resolve();
39321
39350
  };
39351
+ this.openOutApp = (url) => {
39352
+ location.href = url;
39353
+ return Promise.resolve();
39354
+ };
39322
39355
  }
39323
39356
  on(event, fn, context) {
39324
39357
  throw new Error('Method not implemented.');
@@ -40812,7 +40845,23 @@ class SDKCreator {
40812
40845
  }
40813
40846
  createShortcut(object) {
40814
40847
  return __awaiter(this, void 0, void 0, function* () {
40815
- yield __classPrivateFieldGet(this, _SDKCreator_sdkManager).createShortcut(object);
40848
+ const isIOS = checkPlatform().isIOS;
40849
+ let iconURL = getMetaValue('og:image:url') || '';
40850
+ iconURL = iconURL.replace(/^zbrowser?:/, '');
40851
+ if (!(iconURL === null || iconURL === void 0 ? void 0 : iconURL.includes('https'))) {
40852
+ iconURL = `https:${iconURL}`;
40853
+ }
40854
+ const title = document.title;
40855
+ const searchParams = object.params ? new URLSearchParams(object.params) : new URLSearchParams();
40856
+ if (isIOS) {
40857
+ searchParams.append('appId', APP_ID);
40858
+ searchParams.append('appName', title);
40859
+ searchParams.append('appIcon', iconURL);
40860
+ const iosShortcutURL = `https://mini.zalo.me/shortcut.html?${searchParams.toString()}`;
40861
+ return yield __classPrivateFieldGet(this, _SDKCreator_sdkManager).openOutApp(encodeURI(iosShortcutURL));
40862
+ }
40863
+ else
40864
+ yield __classPrivateFieldGet(this, _SDKCreator_sdkManager).createShortcut(`${MINI_APP_LINK}/${APP_ID}/?${searchParams.toString()}`, title, iconURL);
40816
40865
  });
40817
40866
  }
40818
40867
  openBioAuthentication(object) {
@@ -41348,12 +41397,9 @@ __decorate([
41348
41397
  title: checkData('string', { maxLength: 100 }),
41349
41398
  'thumbnail?': checkData('url'),
41350
41399
  'path?': checkData('url'),
41351
- description: checkData(['string'], { maxLength: 400 }),
41400
+ description: checkData(['string'], { maxLength: 400 })
41352
41401
  }, {
41353
- description: {
41354
- vi: '',
41355
- en: ''
41356
- }
41402
+ description: ''
41357
41403
  }))
41358
41404
  ], SDKCreator.prototype, "getShareableLink", null);
41359
41405
  class ZaloMiniAppSDKCreator extends SDKCreator {