@subiz/widget-v4 4.1.152 → 4.1.155

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 (104) hide show
  1. package/assets/less/message.less +0 -1
  2. package/cloudflare_worker.js +4 -2
  3. package/compiled_src/chatbox/main.js +18 -6
  4. package/compiled_src/store/api.js +53 -2
  5. package/dist/127.js +273 -0
  6. package/dist/132.js +2802 -0
  7. package/dist/185.js +1827 -0
  8. package/dist/19816b2e8ca.127.js +1 -0
  9. package/dist/19816b2e8ca.132.js +1 -0
  10. package/dist/19816b2e8ca.185.js +1 -0
  11. package/dist/19816b2e8ca.27.js +1 -0
  12. package/dist/19816b2e8ca.278.js +1 -0
  13. package/dist/19816b2e8ca.339.js +1 -0
  14. package/dist/19816b2e8ca.459.js +1 -0
  15. package/dist/19816b2e8ca.490.js +1 -0
  16. package/dist/19816b2e8ca.74.js +1 -0
  17. package/dist/19816b2e8ca.997.js +1 -0
  18. package/dist/19816b2e8ca.app.js +1 -0
  19. package/dist/19816b2e8ca.chat.html +1 -0
  20. package/dist/19816b2e8ca.chat.js +1 -0
  21. package/dist/19816b2e8ca.form.html +1 -0
  22. package/dist/19816b2e8ca.form.js +1 -0
  23. package/dist/19816b2e8ca.index.html +71 -0
  24. package/dist/19816b2e8ca.library.html +71 -0
  25. package/dist/19816b2e8ca.library.js +1 -0
  26. package/dist/19816b2e8ca.preview.html +759 -0
  27. package/dist/19816b2e8ca.preview.js +1 -0
  28. package/dist/19816b2e8ca.webview.js +1 -0
  29. package/dist/27.js +107 -0
  30. package/dist/278.js +417 -0
  31. package/dist/459.js +107 -0
  32. package/dist/490.js +305 -0
  33. package/dist/74.js +372 -0
  34. package/dist/997.js +107 -0
  35. package/dist/HASH +1 -0
  36. package/dist/assets/img/Facebook.64607ec.png +0 -0
  37. package/dist/assets/img/Zalo.6845707.png +0 -0
  38. package/dist/assets/img/award1a.1a58e10.png +0 -0
  39. package/dist/assets/img/award3a.3b74423.png +0 -0
  40. package/dist/assets/img/award4a.ed6ccd4.png +0 -0
  41. package/dist/assets/img/award5.39eb7ae.png +0 -0
  42. package/dist/assets/img/bubble_default.7d5e4ab.svg +20 -0
  43. package/dist/assets/img/caret.998eb8f.svg +1 -0
  44. package/dist/assets/img/convos_empty.2353007.svg +72 -0
  45. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  46. package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
  47. package/dist/assets/img/done_gray.d7e8203.svg +4 -0
  48. package/dist/assets/img/done_green.b817fd4.svg +4 -0
  49. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  50. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  51. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  52. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  53. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  54. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  55. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  56. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  57. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  58. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  59. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  60. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  61. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  62. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  63. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  64. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  65. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  66. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  67. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  68. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  69. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  70. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  71. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  72. package/dist/assets/img/empty.29bed2d.svg +23 -0
  73. package/dist/assets/img/empty_1.0b98af0.svg +11 -0
  74. package/dist/assets/img/examplte_logo.f86535f.svg +1 -0
  75. package/dist/assets/img/external-link.90577cc.svg +1 -0
  76. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  77. package/dist/assets/img/ghn.070f8e3.svg +17 -0
  78. package/dist/assets/img/ghtk.326eac1.svg +18 -0
  79. package/dist/assets/img/image_default.be0698b.png +0 -0
  80. package/dist/assets/img/info.ebce7ea.svg +1 -0
  81. package/dist/assets/img/loader.37000a7.svg +1 -0
  82. package/dist/assets/img/loading_static.a27f0ac.svg +10 -0
  83. package/dist/assets/img/main-service1.d536cc2.png +0 -0
  84. package/dist/assets/img/main-service2.9b99549.png +0 -0
  85. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  86. package/dist/assets/img/package.8d37d0f.svg +5 -0
  87. package/dist/assets/img/package_fade.763c001.svg +1 -0
  88. package/dist/assets/img/rating--average.1ea492c.svg +12 -0
  89. package/dist/assets/img/rating--great.e3d712e.svg +16 -0
  90. package/dist/assets/img/rating--poor.2938a25.svg +12 -0
  91. package/dist/assets/img/search.f9705ff.svg +1 -0
  92. package/dist/assets/img/send.6db52a9.svg +3 -0
  93. package/dist/assets/img/shop.f7dc7d8.svg +1 -0
  94. package/dist/assets/img/shop_faded.df7845a.svg +1 -0
  95. package/dist/assets/img/stars_v2.79cf728.png +0 -0
  96. package/dist/assets/img/subiz-mono.8fbc067.svg +3 -0
  97. package/dist/assets/img/x.26fdfa3.svg +5 -0
  98. package/dist/malicious-app.js +17 -0
  99. package/dist/screenshoot.html +7 -0
  100. package/dist/screenshoot.js +11657 -0
  101. package/malicious-app.js +15 -13
  102. package/package.json +8 -8
  103. package/src/chatbox/main.js +19 -6
  104. package/src/store/api.js +51 -2
package/malicious-app.js CHANGED
@@ -1,15 +1,17 @@
1
- let hash = 'XXXXXXXX' // do not change, will be replaced to real hash
1
+ if (!window._subiz_init_2094850928430) {
2
+ let hash = 'XXXXXXXX' // do not change, will be replaced to real hash
2
3
 
3
- window._subiz_init_2094850928430 = true
4
- window._subiz_init_2094850928430_keep_loading = true
5
- var tag = document.createElement('script')
6
- tag.async = 1
7
- tag.defer = true
8
- tag.src = 'https://public-gcs.subiz-cdn.com/widget-v4/public/' + hash + '.app.js'
9
- document.body.appendChild(tag)
4
+ window._subiz_init_2094850928430 = true
5
+ window._subiz_init_2094850928430_keep_loading = true
6
+ var tag = document.createElement('script')
7
+ tag.async = 1
8
+ tag.defer = true
9
+ tag.src = 'https://public-gcs.subiz-cdn.com/widget-v4/public/' + hash + '.app.js'
10
+ document.body.appendChild(tag)
10
11
 
11
- if (document.readyState === 'interactive' || document.readyState === 'complete') document.body.appendChild(tag)
12
- else
13
- document.addEventListener('DOMContentLoaded', function (event) {
14
- document.body.appendChild(tag)
15
- }) //
12
+ if (document.readyState === 'interactive' || document.readyState === 'complete') document.body.appendChild(tag)
13
+ else
14
+ document.addEventListener('DOMContentLoaded', function (event) {
15
+ document.body.appendChild(tag)
16
+ }) //
17
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subiz/widget-v4",
3
- "version": "4.1.152",
3
+ "version": "4.1.155",
4
4
  "main": "./compiled_src/lib.js",
5
5
  "scripts": {
6
6
  "dev": "npx webpack serve --config webpack.dev.js",
@@ -13,24 +13,24 @@
13
13
  "@subiz/flow": "^1.1.0",
14
14
  "@subiz/wsclient": "^4.0.34",
15
15
  "cookie_js": "1.4.2",
16
- "core-js": "^3.43.0",
16
+ "core-js": "^3.44.0",
17
17
  "css-loader": "5.2.7",
18
18
  "file-loader": "^6.2.0",
19
- "less": "^4.3.0",
19
+ "less": "^4.4.0",
20
20
  "less-loader": "^12.3.0",
21
21
  "preact": "10.19.3"
22
22
  },
23
23
  "devDependencies": {
24
- "@babel/cli": "^7.27.2",
25
- "@babel/core": "^7.27.7",
24
+ "@babel/cli": "^7.28.0",
25
+ "@babel/core": "^7.28.0",
26
26
  "@babel/plugin-proposal-class-properties": "^7.18.6",
27
27
  "@babel/plugin-transform-react-jsx": "^7.27.1",
28
- "@babel/preset-env": "^7.27.2",
28
+ "@babel/preset-env": "^7.28.0",
29
29
  "babel-loader": "^10.0.0",
30
30
  "babel-plugin-syntax-jsx": "^6.18.0",
31
31
  "html-webpack-plugin": "^5.6.3",
32
- "puppeteer": "^24.11.1",
33
- "webpack": "^5.99.9",
32
+ "puppeteer": "^24.15.0",
33
+ "webpack": "^5.101.0",
34
34
  "webpack-bundle-analyzer": "^4.10.2",
35
35
  "webpack-cli": "^6.0.1",
36
36
  "webpack-dev-server": "^5.2.2"
@@ -217,10 +217,23 @@ function modifyViewport() {
217
217
  if (document.body && document.body.classList) document.body.classList.add('sbz_no_scroll')
218
218
  if (document.documentElement && document.documentElement.classList)
219
219
  document.documentElement.classList.add('sbz_no_scroll')
220
- let metatag = document.createElement('meta')
221
- metatag.httpEquiv = 'X-UA-Compatible'
222
- metatag.name = 'viewport'
223
- metatag.id = 'subiz-meta-viewport'
224
- metatag.content = 'maximum-scale=1.0, user-scalable=no, width=device-width, initial-scale=1.0'
225
- document.getElementsByTagName('head')[0].appendChild(metatag)
220
+
221
+ let currentMetas = document.querySelectorAll('meta[name="viewport"]')
222
+ let shouldAddMetaTag = true
223
+ for (let i = 0; i < currentMetas.length; i++) {
224
+ let meta = currentMetas[i]
225
+ let content = meta.getAttribute('content') || ''
226
+ if (content.indexOf('maximum-scale') > -1) {
227
+ shouldAddMetaTag = false
228
+ break
229
+ }
230
+ }
231
+ if (shouldAddMetaTag) {
232
+ let metatag = document.createElement('meta')
233
+ metatag.httpEquiv = 'X-UA-Compatible'
234
+ metatag.name = 'viewport'
235
+ metatag.id = 'subiz-meta-viewport'
236
+ metatag.content = 'maximum-scale=1.0, user-scalable=no, width=device-width, initial-scale=1.0'
237
+ document.getElementsByTagName('head')[0].appendChild(metatag)
238
+ }
226
239
  }
package/src/store/api.js CHANGED
@@ -15,7 +15,7 @@ export default class {
15
15
  this.FileURL = FileURL
16
16
  this.ApiURL = ApiURL
17
17
  this.api41 = ajax
18
- .setBaseUrl('https://api5.subiz.com.vn/4.1')
18
+ .setBaseUrl('https://api.sbz.vn/4.1')
19
19
  .withCredentials(true)
20
20
  .setContentType('text/plain')
21
21
  .beforeHook(jsonifyTextPlain)
@@ -230,7 +230,7 @@ export default class {
230
230
  this.apireq.post(`/accounts/${this.accid}/conversations/${cid}/messages/${messageId}/seen`)
231
231
 
232
232
  getConversation = (cid) => this.apireq.get(`/accounts/${this.accid}/conversations/${cid}`)
233
- getLocaleContent = (locale) => this.apireq.get(`/accounts/${this.accid}/locales/${locale}`)
233
+ getLocaleContent = (locale) => this.apireq.get(`/accounts/${this.accid}/languages/${locale}`)
234
234
  sendEvent = (data) =>
235
235
  this.apireq
236
236
  .addQuery('shorten', true)
@@ -270,6 +270,55 @@ export default class {
270
270
  }
271
271
 
272
272
  uploadToS3 = async (file) => {
273
+ let name = file.name.replace(/\s+/g, '_')
274
+
275
+ var {body, error} = await this.apireq
276
+ .setBaseUrl('https://api5.subiz.com.vn/4.1')
277
+ .setQuery({
278
+ 'account-id': this.accid,
279
+ description: 'upload\n user-client: web-widget',
280
+ name: name,
281
+ presign: true,
282
+ size: file.size,
283
+ type: file.type,
284
+ })
285
+ .post('/files')
286
+ if (error) return {body, error}
287
+
288
+ let signedurl = body.signed_url
289
+ let fileid = body.id
290
+
291
+ // Step 2: Upload the file to the signed_url
292
+ let err = await new Promise((resolve) => {
293
+ const xhr = new sb.XMLHttpRequest()
294
+ xhr.open('PUT', signedurl, true)
295
+ xhr.setRequestHeader('Content-Type', file.mimetype)
296
+ xhr.onload = function () {
297
+ if (xhr.status === 200) {
298
+ resolve()
299
+ } else {
300
+ resolve(new Error(`Upload failed: ${xhr.statusText}`))
301
+ }
302
+ }
303
+
304
+ xhr.onerror = function () {
305
+ resolve(new Error('Network error during upload.'))
306
+ }
307
+
308
+ xhr.send(file)
309
+ })
310
+ if (err) return {error: err}
311
+
312
+ // Step 3: Notify server of upload completion
313
+ var {body, error} = await this.apireq
314
+ .setBaseUrl('https://api5.subiz.com.vn/4.1')
315
+ .setQuery({'account-id': this.accid})
316
+ .post(`/files/${fileid}/uploaded`)
317
+ if (error) return {error}
318
+ return {url: sb.get(body, 'file.url', '')}
319
+ }
320
+
321
+ uploadToS32 = async (file) => {
273
322
  var {body, error} = await ajax
274
323
  .setBaseUrl('https://api5.subiz.com.vn/4.1')
275
324
  .withCredentials(true)