@subiz/widget-v4 4.1.31 → 4.1.33

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.
Files changed (79) hide show
  1. package/compiled_src/plugin.js +1 -0
  2. package/compiled_src/store/api.js +2 -2
  3. package/compiled_src/store/store.js +26 -1
  4. package/compiled_src/util/campaign.js +2 -6
  5. package/compiled_src/util/common.js +5 -7
  6. package/compiled_src/util/order.js +2 -4
  7. package/compiled_src/util/pubsub.js +3 -6
  8. package/dist/132.js +6661 -0
  9. package/dist/178.js +406 -0
  10. package/dist/213.js +2780 -0
  11. package/dist/335.js +372 -0
  12. package/dist/362.js +107 -0
  13. package/dist/441.js +2983 -0
  14. package/dist/605.js +305 -0
  15. package/dist/678.js +107 -0
  16. package/dist/782.js +107 -0
  17. package/dist/HASH +1 -0
  18. package/dist/assets/img/Facebook.64607ec.png +0 -0
  19. package/dist/assets/img/Zalo.6845707.png +0 -0
  20. package/dist/assets/img/bubble_default.7d5e4ab.svg +20 -0
  21. package/dist/assets/img/caret.998eb8f.svg +1 -0
  22. package/dist/assets/img/convos_empty.2353007.svg +72 -0
  23. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  24. package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
  25. package/dist/assets/img/done_gray.d7e8203.svg +4 -0
  26. package/dist/assets/img/done_green.b817fd4.svg +4 -0
  27. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  28. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  29. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  30. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  31. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  32. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  33. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  34. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  35. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  36. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  37. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  38. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  39. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  40. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  41. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  42. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  43. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  44. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  45. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  46. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  47. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  48. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  49. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  50. package/dist/assets/img/empty.29bed2d.svg +23 -0
  51. package/dist/assets/img/empty_1.0b98af0.svg +11 -0
  52. package/dist/assets/img/external-link.90577cc.svg +1 -0
  53. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  54. package/dist/assets/img/ghn.070f8e3.svg +17 -0
  55. package/dist/assets/img/ghtk.326eac1.svg +18 -0
  56. package/dist/assets/img/image_default.be0698b.png +0 -0
  57. package/dist/assets/img/info.ebce7ea.svg +1 -0
  58. package/dist/assets/img/loader.37000a7.svg +1 -0
  59. package/dist/assets/img/loading_static.a27f0ac.svg +10 -0
  60. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  61. package/dist/assets/img/package.8d37d0f.svg +5 -0
  62. package/dist/assets/img/package_fade.763c001.svg +1 -0
  63. package/dist/assets/img/rating--average.1ea492c.svg +12 -0
  64. package/dist/assets/img/rating--great.e3d712e.svg +16 -0
  65. package/dist/assets/img/rating--poor.2938a25.svg +12 -0
  66. package/dist/assets/img/search.f9705ff.svg +1 -0
  67. package/dist/assets/img/send.6db52a9.svg +3 -0
  68. package/dist/assets/img/shop.f7dc7d8.svg +1 -0
  69. package/dist/assets/img/shop_faded.df7845a.svg +1 -0
  70. package/dist/assets/img/subiz-mono.877e9f5.svg +3 -0
  71. package/dist/assets/img/x.26fdfa3.svg +5 -0
  72. package/dist/malicious-app.js +13 -0
  73. package/dist/screenshoot.html +7 -0
  74. package/dist/screenshoot.js +6365 -0
  75. package/package.json +18 -18
  76. package/src/plugin.js +1 -1
  77. package/src/store/api.js +3 -2
  78. package/src/store/store.js +31 -2
  79. package/src/util/common.js +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subiz/widget-v4",
3
- "version": "4.1.31",
3
+ "version": "4.1.33",
4
4
  "main": "./compiled_src/lib.js",
5
5
  "scripts": {
6
6
  "dev": "npx webpack serve --config webpack.dev.js",
@@ -10,32 +10,32 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@subiz/ajax": "^3.0.12",
13
- "@subiz/flow": "^1.0.9",
13
+ "@subiz/flow": "^1.1.0",
14
14
  "@subiz/storage": "0.0.8",
15
- "@subiz/wsclient": "^4.0.14",
15
+ "@subiz/wsclient": "^4.0.16",
16
16
  "cookie_js": "1.4.2",
17
- "core-js": "^3.30.0",
17
+ "core-js": "^3.31.0",
18
18
  "css-loader": "5.2.7",
19
19
  "file-loader": "^6.2.0",
20
20
  "less": "^4.1.3",
21
- "less-loader": "^11.1.0",
22
- "marked": "^4.3.0",
23
- "preact": "^10.13.2"
21
+ "less-loader": "^11.1.3",
22
+ "marked": "^5.1.0",
23
+ "preact": "^10.15.1"
24
24
  },
25
25
  "devDependencies": {
26
- "@babel/cli": "^7.21.0",
27
- "@babel/core": "^7.21.4",
26
+ "@babel/cli": "^7.22.5",
27
+ "@babel/core": "^7.22.5",
28
28
  "@babel/plugin-proposal-class-properties": "^7.18.6",
29
- "@babel/plugin-transform-react-jsx": "^7.21.0",
30
- "@babel/preset-env": "^7.21.4",
29
+ "@babel/plugin-transform-react-jsx": "^7.22.5",
30
+ "@babel/preset-env": "^7.22.5",
31
31
  "babel-loader": "^9.1.2",
32
32
  "babel-plugin-syntax-jsx": "^6.18.0",
33
- "html-webpack-plugin": "^5.5.0",
34
- "prettier": "^2.8.7",
35
- "puppeteer": "^19.7.3",
36
- "webpack": "^5.78.0",
37
- "webpack-bundle-analyzer": "^4.8.0",
38
- "webpack-cli": "^5.0.1",
39
- "webpack-dev-server": "^4.13.2"
33
+ "html-webpack-plugin": "^5.5.3",
34
+ "prettier": "^2.8.8",
35
+ "puppeteer": "^20.7.3",
36
+ "webpack": "^5.88.0",
37
+ "webpack-bundle-analyzer": "^4.9.0",
38
+ "webpack-cli": "^5.1.4",
39
+ "webpack-dev-server": "^4.15.1"
40
40
  }
41
41
  }
package/src/plugin.js CHANGED
@@ -34,7 +34,7 @@ function Plugin(plugin, store, $container, lib) {
34
34
 
35
35
  let lastrun = store.matchLastPluginRun(plugin.id)
36
36
  if (plugin.type === 'chatbox' || plugin.type === 'notification') lastrun = undefined
37
-
37
+ if (!plugin.enabled) return
38
38
  let match = sb.checkRunConditions(plugin.initiative_frequency, plugin.conditions, lastrun, store)
39
39
  if (!match) return
40
40
  state = 'running'
package/src/store/api.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import sb from '../util/index.js'
2
2
  const ajax = require('@subiz/ajax/src/ajax.js')
3
- ajax.env.XMLHttpRequest = window.XMLHttpRequest
3
+ ajax.env.XMLHttpRequest = sb.XMLHttpRequest
4
4
 
5
5
  function jsonifyTextPlain(param, done) {
6
6
  let req = param.request
@@ -216,7 +216,8 @@ export default class {
216
216
 
217
217
  getConversation = (cid) => this.apireq.get(`/accounts/${this.accid}/conversations/${cid}`)
218
218
  getLocaleContent = (locale) => this.apireq.get(`/accounts/${this.accid}/locales/${locale}`)
219
- sendEvent = (data) => this.apireq.post(`/accounts/${this.accid}/users/${this.uid}/events`, data)
219
+ sendEvent = (data) =>
220
+ this.apireq.addQuery('shorten', true).post(`/accounts/${this.accid}/users/${this.uid}/events`, data)
220
221
  sendTyping = (cid) => this.apireq.post(`/accounts/${this.accid}/conversations/${cid}/typing`)
221
222
 
222
223
  sendLostFocus = (device, productid, source_id, sku) =>
@@ -420,7 +420,8 @@ export default class Store {
420
420
 
421
421
  if (this.realtime) this.realtime.stop()
422
422
  if (this.fake) this.realtime = new RealtimeFake()
423
- else this.realtime = new Realtime(this.RealtimeURL, {account_id: accid, user_ref: userRef, user_mask: mask})
423
+ else
424
+ this.realtime = new Realtime(this.RealtimeURL, {account_id: accid, user_ref: userRef, user_mask: mask}, xhrsend)
424
425
 
425
426
  this.realtime.onEvent(this.onWs.bind(this))
426
427
  this.realtime.onInterrupted(() => this.reconnectWs(accid, user.id))
@@ -654,7 +655,7 @@ export default class Store {
654
655
 
655
656
  // send the content view, the first presence and record domain
656
657
  async track() {
657
- let out = await this.api.sendContentView(
658
+ let out = await this.api.sendContentView(
658
659
  this.device,
659
660
  location.href,
660
661
  document.title,
@@ -1302,3 +1303,31 @@ let cleanMyLocalStorage = () => {
1302
1303
  }
1303
1304
  })
1304
1305
  }
1306
+
1307
+ function dofetch(method, url, body, cb) {
1308
+ let headers = {}
1309
+ if (body) headers['content-type'] = 'text/plain'
1310
+ fetch(url, {method: method, headers: headers, body: body})
1311
+ .then((res) => res.text().then((text) => cb && cb(text, res.status)))
1312
+ .catch((err) => cb && cb(err, -1))
1313
+ }
1314
+
1315
+ // xhrsend sends an HTTP request
1316
+ var xhrsend = function (method, url, body, cb) {
1317
+ if (typeof sb.XMLHttpRequest === 'undefined') return dofetch(method, url, body, cb)
1318
+ var request = new sb.XMLHttpRequest()
1319
+ request.onreadystatechange = function (e) {
1320
+ if (request.readyState !== 4) return
1321
+ cb && cb(request.responseText, request.status)
1322
+ cb = undefined // dont call cb anymore
1323
+ }
1324
+
1325
+ request.onerror = function () {
1326
+ cb && cb(request.responseText, -1) // network error
1327
+ cb = undefined // dont call cb anymore
1328
+ }
1329
+
1330
+ request.open(method, url)
1331
+ if (body) request.setRequestHeader('content-type', 'text/plain')
1332
+ request.send(body)
1333
+ }
@@ -18,6 +18,7 @@ export var setTimeout = f.contentWindow.setTimeout.bind(f.contentWindow)
18
18
  export var setInterval = f.contentWindow.setInterval.bind(f.contentWindow)
19
19
  export var clearInterval = f.contentWindow.clearInterval.bind(f.contentWindow)
20
20
  export var clearTimeout = f.contentWindow.clearTimeout.bind(f.contentWindow)
21
+ export var XMLHttpRequest = f.contentWindow.XMLHttpRequest
21
22
 
22
23
  // convoOfEv extracts the ID of the conversation
23
24
  // that event is sent to