@forward-widget/danmu-universe 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1016,8 +1016,8 @@ var __webpack_modules__ = {
1016
1016
  var n = t + r, i = e[n];
1017
1017
  e[n] = (i << 8 | i >>> 24) & 0x00ff00ff | (i << 24 | i >>> 8) & 0xff00ff00;
1018
1018
  }
1019
- var o = this._hash.words, s = e[t + 0], l = e[t + 1], p = e[t + 2], h = e[t + 3], m = e[t + 4], g = e[t + 5], v = e[t + 6], y = e[t + 7], b = e[t + 8], _ = e[t + 9], w = e[t + 10], x = e[t + 11], k = e[t + 12], S = e[t + 13], z = e[t + 14], E = e[t + 15], O = o[0], I = o[1], P = o[2], A = o[3];
1020
- O = u(O, I, P, A, s, 7, a[0]), A = u(A, O, I, P, l, 12, a[1]), P = u(P, A, O, I, p, 17, a[2]), I = u(I, P, A, O, h, 22, a[3]), O = u(O, I, P, A, m, 7, a[4]), A = u(A, O, I, P, g, 12, a[5]), P = u(P, A, O, I, v, 17, a[6]), I = u(I, P, A, O, y, 22, a[7]), O = u(O, I, P, A, b, 7, a[8]), A = u(A, O, I, P, _, 12, a[9]), P = u(P, A, O, I, w, 17, a[10]), I = u(I, P, A, O, x, 22, a[11]), O = u(O, I, P, A, k, 7, a[12]), A = u(A, O, I, P, S, 12, a[13]), P = u(P, A, O, I, z, 17, a[14]), I = u(I, P, A, O, E, 22, a[15]), O = c(O, I, P, A, l, 5, a[16]), A = c(A, O, I, P, v, 9, a[17]), P = c(P, A, O, I, x, 14, a[18]), I = c(I, P, A, O, s, 20, a[19]), O = c(O, I, P, A, g, 5, a[20]), A = c(A, O, I, P, w, 9, a[21]), P = c(P, A, O, I, E, 14, a[22]), I = c(I, P, A, O, m, 20, a[23]), O = c(O, I, P, A, _, 5, a[24]), A = c(A, O, I, P, z, 9, a[25]), P = c(P, A, O, I, h, 14, a[26]), I = c(I, P, A, O, b, 20, a[27]), O = c(O, I, P, A, S, 5, a[28]), A = c(A, O, I, P, p, 9, a[29]), P = c(P, A, O, I, y, 14, a[30]), I = c(I, P, A, O, k, 20, a[31]), O = d(O, I, P, A, g, 4, a[32]), A = d(A, O, I, P, b, 11, a[33]), P = d(P, A, O, I, x, 16, a[34]), I = d(I, P, A, O, z, 23, a[35]), O = d(O, I, P, A, l, 4, a[36]), A = d(A, O, I, P, m, 11, a[37]), P = d(P, A, O, I, y, 16, a[38]), I = d(I, P, A, O, w, 23, a[39]), O = d(O, I, P, A, S, 4, a[40]), A = d(A, O, I, P, s, 11, a[41]), P = d(P, A, O, I, h, 16, a[42]), I = d(I, P, A, O, v, 23, a[43]), O = d(O, I, P, A, _, 4, a[44]), A = d(A, O, I, P, k, 11, a[45]), P = d(P, A, O, I, E, 16, a[46]), I = d(I, P, A, O, p, 23, a[47]), O = f(O, I, P, A, s, 6, a[48]), A = f(A, O, I, P, y, 10, a[49]), P = f(P, A, O, I, z, 15, a[50]), I = f(I, P, A, O, g, 21, a[51]), O = f(O, I, P, A, k, 6, a[52]), A = f(A, O, I, P, h, 10, a[53]), P = f(P, A, O, I, w, 15, a[54]), I = f(I, P, A, O, l, 21, a[55]), O = f(O, I, P, A, b, 6, a[56]), A = f(A, O, I, P, E, 10, a[57]), P = f(P, A, O, I, v, 15, a[58]), I = f(I, P, A, O, S, 21, a[59]), O = f(O, I, P, A, m, 6, a[60]), A = f(A, O, I, P, x, 10, a[61]), P = f(P, A, O, I, p, 15, a[62]), I = f(I, P, A, O, _, 21, a[63]), o[0] = o[0] + O | 0, o[1] = o[1] + I | 0, o[2] = o[2] + P | 0, o[3] = o[3] + A | 0;
1019
+ var o = this._hash.words, s = e[t + 0], l = e[t + 1], p = e[t + 2], h = e[t + 3], m = e[t + 4], g = e[t + 5], v = e[t + 6], y = e[t + 7], b = e[t + 8], _ = e[t + 9], w = e[t + 10], x = e[t + 11], k = e[t + 12], S = e[t + 13], z = e[t + 14], O = e[t + 15], E = o[0], I = o[1], P = o[2], A = o[3];
1020
+ E = u(E, I, P, A, s, 7, a[0]), A = u(A, E, I, P, l, 12, a[1]), P = u(P, A, E, I, p, 17, a[2]), I = u(I, P, A, E, h, 22, a[3]), E = u(E, I, P, A, m, 7, a[4]), A = u(A, E, I, P, g, 12, a[5]), P = u(P, A, E, I, v, 17, a[6]), I = u(I, P, A, E, y, 22, a[7]), E = u(E, I, P, A, b, 7, a[8]), A = u(A, E, I, P, _, 12, a[9]), P = u(P, A, E, I, w, 17, a[10]), I = u(I, P, A, E, x, 22, a[11]), E = u(E, I, P, A, k, 7, a[12]), A = u(A, E, I, P, S, 12, a[13]), P = u(P, A, E, I, z, 17, a[14]), I = u(I, P, A, E, O, 22, a[15]), E = c(E, I, P, A, l, 5, a[16]), A = c(A, E, I, P, v, 9, a[17]), P = c(P, A, E, I, x, 14, a[18]), I = c(I, P, A, E, s, 20, a[19]), E = c(E, I, P, A, g, 5, a[20]), A = c(A, E, I, P, w, 9, a[21]), P = c(P, A, E, I, O, 14, a[22]), I = c(I, P, A, E, m, 20, a[23]), E = c(E, I, P, A, _, 5, a[24]), A = c(A, E, I, P, z, 9, a[25]), P = c(P, A, E, I, h, 14, a[26]), I = c(I, P, A, E, b, 20, a[27]), E = c(E, I, P, A, S, 5, a[28]), A = c(A, E, I, P, p, 9, a[29]), P = c(P, A, E, I, y, 14, a[30]), I = c(I, P, A, E, k, 20, a[31]), E = d(E, I, P, A, g, 4, a[32]), A = d(A, E, I, P, b, 11, a[33]), P = d(P, A, E, I, x, 16, a[34]), I = d(I, P, A, E, z, 23, a[35]), E = d(E, I, P, A, l, 4, a[36]), A = d(A, E, I, P, m, 11, a[37]), P = d(P, A, E, I, y, 16, a[38]), I = d(I, P, A, E, w, 23, a[39]), E = d(E, I, P, A, S, 4, a[40]), A = d(A, E, I, P, s, 11, a[41]), P = d(P, A, E, I, h, 16, a[42]), I = d(I, P, A, E, v, 23, a[43]), E = d(E, I, P, A, _, 4, a[44]), A = d(A, E, I, P, k, 11, a[45]), P = d(P, A, E, I, O, 16, a[46]), I = d(I, P, A, E, p, 23, a[47]), E = f(E, I, P, A, s, 6, a[48]), A = f(A, E, I, P, y, 10, a[49]), P = f(P, A, E, I, z, 15, a[50]), I = f(I, P, A, E, g, 21, a[51]), E = f(E, I, P, A, k, 6, a[52]), A = f(A, E, I, P, h, 10, a[53]), P = f(P, A, E, I, w, 15, a[54]), I = f(I, P, A, E, l, 21, a[55]), E = f(E, I, P, A, b, 6, a[56]), A = f(A, E, I, P, O, 10, a[57]), P = f(P, A, E, I, v, 15, a[58]), I = f(I, P, A, E, S, 21, a[59]), E = f(E, I, P, A, m, 6, a[60]), A = f(A, E, I, P, x, 10, a[61]), P = f(P, A, E, I, p, 15, a[62]), I = f(I, P, A, E, _, 21, a[63]), o[0] = o[0] + E | 0, o[1] = o[1] + I | 0, o[2] = o[2] + P | 0, o[3] = o[3] + A | 0;
1021
1021
  },
1022
1022
  _doFinalize: function() {
1023
1023
  var e = this._data, r = e.words, n = 8 * this._nDataBytes, i = 8 * e.sigBytes;
@@ -4343,7 +4343,9 @@ const DEFAULT_COLOR_HEX = "ffffff", DEFAULT_COLOR_INT = parseInt(DEFAULT_COLOR_H
4343
4343
  "never",
4344
4344
  "auto"
4345
4345
  ]).catch("auto").optional().default("auto")
4346
- });
4346
+ }), EMPTY_ANIME_CONFIG = {
4347
+ ID: "__empty__"
4348
+ };
4347
4349
  var enc_base64 = __webpack_require__(716), enc_base64_default = __webpack_require__.n(enc_base64);
4348
4350
  function safeJsonParse(e) {
4349
4351
  try {
@@ -4977,6 +4979,66 @@ function noop() {}
4977
4979
  function isEqual(e, t) {
4978
4980
  return isEqualWith(e, t, noop);
4979
4981
  }
4982
+ function isDeepKey(e) {
4983
+ switch(typeof e){
4984
+ case 'number':
4985
+ case 'symbol':
4986
+ return !1;
4987
+ case 'string':
4988
+ return e.includes('.') || e.includes('[') || e.includes(']');
4989
+ }
4990
+ }
4991
+ function toKey(e) {
4992
+ return 'string' == typeof e || 'symbol' == typeof e ? e : Object.is(e?.valueOf?.(), -0) ? '-0' : String(e);
4993
+ }
4994
+ function toPath(e) {
4995
+ let t = [], r = e.length;
4996
+ if (0 === r) return t;
4997
+ let n = 0, i = '', o = '', s = !1;
4998
+ for(46 === e.charCodeAt(0) && (t.push(''), n++); n < r;){
4999
+ let a = e[n];
5000
+ o ? '\\' === a && n + 1 < r ? i += e[++n] : a === o ? o = '' : i += a : s ? '"' === a || "'" === a ? o = a : ']' === a ? (s = !1, t.push(i), i = '') : i += a : '[' === a ? (s = !0, i && (t.push(i), i = '')) : '.' === a ? i && (t.push(i), i = '') : i += a, n++;
5001
+ }
5002
+ return i && t.push(i), t;
5003
+ }
5004
+ function get(e, t, r) {
5005
+ if (null == e) return r;
5006
+ switch(typeof t){
5007
+ case 'string':
5008
+ {
5009
+ if (isUnsafeProperty(t)) return r;
5010
+ let n = e[t];
5011
+ if (void 0 === n) if (isDeepKey(t)) return get(e, toPath(t), r);
5012
+ else return r;
5013
+ return n;
5014
+ }
5015
+ case 'number':
5016
+ case 'symbol':
5017
+ {
5018
+ 'number' == typeof t && (t = toKey(t));
5019
+ let n = e[t];
5020
+ if (void 0 === n) return r;
5021
+ return n;
5022
+ }
5023
+ default:
5024
+ {
5025
+ if (Array.isArray(t)) return getWithPath(e, t, r);
5026
+ if (isUnsafeProperty(t = Object.is(t?.valueOf(), -0) ? '-0' : String(t))) return r;
5027
+ let n = e[t];
5028
+ if (void 0 === n) return r;
5029
+ return n;
5030
+ }
5031
+ }
5032
+ }
5033
+ function getWithPath(e, t, r) {
5034
+ if (0 === t.length) return r;
5035
+ let n = e;
5036
+ for(let e = 0; e < t.length; e++){
5037
+ if (null == n || isUnsafeProperty(t[e])) return r;
5038
+ n = n[t[e]];
5039
+ }
5040
+ return void 0 === n ? r : n;
5041
+ }
4980
5042
  function base_define_property(e, t, r) {
4981
5043
  return t in e ? Object.defineProperty(e, t, {
4982
5044
  value: r,
@@ -4996,6 +5058,13 @@ const providerCommentItemSchema = schemas_object({
4996
5058
  content: schemas_string()
4997
5059
  });
4998
5060
  class BaseScraper {
5061
+ get providerConfig() {
5062
+ return this._providerConfig;
5063
+ }
5064
+ set providerConfig(e) {
5065
+ let t = get(e, this.providerName);
5066
+ t && (this.logger.debug("\u8BBE\u7F6E Provider \u914D\u7F6E", t), this._providerConfig = e);
5067
+ }
4999
5068
  parseIdString(e) {
5000
5069
  var t, r;
5001
5070
  let n = safeJsonParse(decodeURIComponent(e)), i = null == (t = this.idSchema) ? void 0 : t.safeParse(n);
@@ -5030,7 +5099,7 @@ class BaseScraper {
5030
5099
  }
5031
5100
  constructor(){
5032
5101
  var e = this;
5033
- base_define_property(this, "idSchema", void 0), base_define_property(this, "fetch", new Fetch()), base_define_property(this, "GLOBAL_EPISODE_BLACKLIST_DEFAULT", "^(.*?)((.+?\u7248)|(\u7279(\u522B|\u5178))|((\u5BFC|\u6F14)\u5458|\u5609\u5BBE|\u89D2\u8272)\u8BBF\u8C08|\u798F\u5229|\u5148\u5BFC|\u5F69\u86CB|\u82B1\u7D6E|\u9884\u544A|\u7279\u8F91|\u4E13\u8BBF|\u8BBF\u8C08|\u5E55\u540E|\u5468\u8FB9|\u8D44\u8BAF|\u770B\u70B9|\u901F\u770B|\u56DE\u987E|\u76D8\u70B9|\u5408\u96C6|PV|MV|CM|OST|ED|OP|BD|\u7279\u5178|SP|NCOP|NCED|MENU|Web-DL|rip|x264|x265|aac|flac)(.*?)$"), base_define_property(this, "PROVIDER_SPECIFIC_BLACKLIST_DEFAULT", ""), base_define_property(this, "logger", {
5102
+ base_define_property(this, "_providerConfig", {}), base_define_property(this, "idSchema", void 0), base_define_property(this, "fetch", new Fetch()), base_define_property(this, "GLOBAL_EPISODE_BLACKLIST_DEFAULT", "^(.*?)((.+?\u7248)|(\u7279(\u522B|\u5178))|((\u5BFC|\u6F14)\u5458|\u5609\u5BBE|\u89D2\u8272)\u8BBF\u8C08|\u798F\u5229|\u5148\u5BFC|\u5F69\u86CB|\u82B1\u7D6E|\u9884\u544A|\u7279\u8F91|\u4E13\u8BBF|\u8BBF\u8C08|\u5E55\u540E|\u5468\u8FB9|\u8D44\u8BAF|\u770B\u70B9|\u901F\u770B|\u56DE\u987E|\u76D8\u70B9|\u5408\u96C6|PV|MV|CM|OST|ED|OP|BD|\u7279\u5178|SP|NCOP|NCED|MENU|Web-DL|rip|x264|x265|aac|flac)(.*?)$"), base_define_property(this, "PROVIDER_SPECIFIC_BLACKLIST_DEFAULT", ""), base_define_property(this, "logger", {
5034
5103
  log: function(t) {
5035
5104
  for(var r = arguments.length, n = Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++)n[i - 1] = arguments[i];
5036
5105
  console[t](`[${e.providerName}]`, ...n);
@@ -6208,6 +6277,65 @@ class IqiyiScraper extends BaseScraper {
6208
6277
  });
6209
6278
  }
6210
6279
  }
6280
+ const assignValue = (e, t, r)=>{
6281
+ let n = e[t];
6282
+ Object.hasOwn(e, t) && eq(n, r) && (void 0 !== r || t in e) || (e[t] = r);
6283
+ }, IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\d*)$/;
6284
+ function isIndex(e, t = Number.MAX_SAFE_INTEGER) {
6285
+ switch(typeof e){
6286
+ case 'number':
6287
+ return Number.isInteger(e) && e >= 0 && e < t;
6288
+ case 'symbol':
6289
+ return !1;
6290
+ case 'string':
6291
+ return IS_UNSIGNED_INTEGER.test(e);
6292
+ }
6293
+ }
6294
+ function isSymbol(e) {
6295
+ return 'symbol' == typeof e || e instanceof Symbol;
6296
+ }
6297
+ const regexIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, regexIsPlainProp = /^\w*$/;
6298
+ function isKey(e, t) {
6299
+ return !Array.isArray(e) && (!!('number' == typeof e || 'boolean' == typeof e || null == e || isSymbol(e)) || 'string' == typeof e && (regexIsPlainProp.test(e) || !regexIsDeepProp.test(e)) || null != t && Object.hasOwn(t, e));
6300
+ }
6301
+ function isObject_isObject(e) {
6302
+ return null !== e && ('object' == typeof e || 'function' == typeof e);
6303
+ }
6304
+ function updateWith(e, t, r, n) {
6305
+ if (null == e && !isObject_isObject(e)) return e;
6306
+ let i = isKey(t, e) ? [
6307
+ t
6308
+ ] : Array.isArray(t) ? t : 'string' == typeof t ? toPath(t) : [
6309
+ t
6310
+ ], o = e;
6311
+ for(let t = 0; t < i.length && null != o; t++){
6312
+ let s, a = toKey(i[t]);
6313
+ if (!isUnsafeProperty(a)) {
6314
+ if (t === i.length - 1) s = r(o[a]);
6315
+ else {
6316
+ let r = o[a], l = n?.(r, a, e);
6317
+ s = void 0 !== l ? l : isObject_isObject(r) ? r : isIndex(i[t + 1]) ? [] : {};
6318
+ }
6319
+ assignValue(o, a, s), o = o[a];
6320
+ }
6321
+ }
6322
+ return e;
6323
+ }
6324
+ function set_set(e, t, r) {
6325
+ return updateWith(e, t, ()=>r, ()=>void 0);
6326
+ }
6327
+ const providerConfigSchema = schemas_object({
6328
+ "provider.renren.mode": schemas_enum([
6329
+ "default",
6330
+ "choice"
6331
+ ]).catch("default")
6332
+ }).transform((e)=>{
6333
+ let t = {};
6334
+ return Object.entries(e).forEach((e)=>{
6335
+ let [r, n] = e;
6336
+ set_set(t, r, n);
6337
+ }), t.provider;
6338
+ });
6211
6339
  var aes = __webpack_require__(129), aes_default = __webpack_require__.n(aes), enc_utf8 = __webpack_require__(60), enc_utf8_default = __webpack_require__.n(enc_utf8), hmac_sha256 = __webpack_require__(939), hmac_sha256_default = __webpack_require__.n(hmac_sha256), mode_ecb = __webpack_require__(760), mode_ecb_default = __webpack_require__.n(mode_ecb), pad_pkcs7 = __webpack_require__(186), pad_pkcs7_default = __webpack_require__.n(pad_pkcs7);
6212
6340
  function isNil(e) {
6213
6341
  return null == e;
@@ -6398,7 +6526,8 @@ class RenRenScraper extends BaseScraper {
6398
6526
  })).data;
6399
6527
  }
6400
6528
  async fetchEpisodeDanmu(e) {
6401
- return (await this.fetch.get(`https://static-dm.rrmj.plus/v1/produce/danmu/EPISODE/${e}`, {
6529
+ let t = `https://static-dm.rrmj.plus/v1/produce/danmu/EPISODE/${e}`;
6530
+ return "choice" === this.providerConfig.renren.mode && (t = `https://static-dm.rrmj.plus/v1/produce/danmu/choice/EPISODE/${e}`), (await this.fetch.get(t, {
6402
6531
  headers: {
6403
6532
  Accept: "application/json"
6404
6533
  },
@@ -7085,13 +7214,19 @@ class scrapers_Scraper {
7085
7214
  }
7086
7215
  return this.getEpisodes(...uniqWith(i, isEqual));
7087
7216
  }
7217
+ setProviderConfig(e) {
7218
+ let { success: t, data: r } = providerConfigSchema.safeParse(e);
7219
+ t && this.scrapers.forEach((e)=>{
7220
+ e.providerConfig = r;
7221
+ });
7222
+ }
7088
7223
  constructor(){
7089
7224
  scrapers_define_property(this, "scrapers", []), scrapers.forEach((e)=>{
7090
7225
  this.scrapers.push(new e());
7091
7226
  });
7092
7227
  }
7093
7228
  }
7094
- const widgetVersion = "0.2.1";
7229
+ const widgetVersion = "0.3.0";
7095
7230
  WidgetMetadata = {
7096
7231
  id: "baranwang.danmu.universe",
7097
7232
  title: "\u901A\u7528\u5F39\u5E55",
@@ -7121,6 +7256,23 @@ WidgetMetadata = {
7121
7256
  value: "never"
7122
7257
  }
7123
7258
  ]
7259
+ },
7260
+ {
7261
+ title: `[${PROVIDER_NAMES.renren}] \u{5F39}\u{5E55}\u{6A21}\u{5F0F}`,
7262
+ name: "provider.renren.mode",
7263
+ description: "\u5F39\u5E55\u6A21\u5F0F\uFF0C\u7CBE\u9009\u5F39\u5E55\u76F8\u6BD4\u9ED8\u8BA4\u5F39\u5E55\u8D28\u91CF\u66F4\u9AD8",
7264
+ value: "default",
7265
+ type: "enumeration",
7266
+ enumOptions: [
7267
+ {
7268
+ title: "\u9ED8\u8BA4",
7269
+ value: "default"
7270
+ },
7271
+ {
7272
+ title: "\u7CBE\u9009",
7273
+ value: "choice"
7274
+ }
7275
+ ]
7124
7276
  }
7125
7277
  ],
7126
7278
  modules: [
@@ -7156,6 +7308,7 @@ WidgetMetadata = {
7156
7308
  };
7157
7309
  const src_scraper = new scrapers_Scraper();
7158
7310
  searchDanmu = async (e)=>{
7311
+ src_scraper.setProviderConfig(e);
7159
7312
  let { type: t, episode: r, fuzzyMatch: n = "auto" } = e, i = [], o = await getDoubanIds(e);
7160
7313
  if (o.length && (i = await src_scraper.getDetailWithDoubanIds(o, t, r)), !(null == i ? void 0 : i.length) && "auto" === n || "always" === n) {
7161
7314
  let t = await src_scraper.getDetailWithSearchParams(e);
@@ -7172,16 +7325,19 @@ searchDanmu = async (e)=>{
7172
7325
  } : {
7173
7326
  animes: [
7174
7327
  {
7175
- animeId: "empty",
7176
- animeTitle: "\uD83D\uDE2D \u672A\u5339\u914D\u5230\u8D44\u6E90"
7328
+ animeId: EMPTY_ANIME_CONFIG.ID,
7329
+ animeTitle: EMPTY_ANIME_CONFIG.ID
7177
7330
  }
7178
7331
  ]
7179
7332
  };
7180
7333
  }, getDetail = async (e)=>{
7334
+ src_scraper.setProviderConfig(e);
7181
7335
  let { animeId: t, type: r, episode: n } = e;
7182
- return t ? src_scraper.getDetailWithAnimeId(t.toString(), r, n) : null;
7336
+ return t && t !== EMPTY_ANIME_CONFIG.ID ? src_scraper.getDetailWithAnimeId(t.toString(), r, n) : null;
7183
7337
  }, getComments = async (e)=>{
7338
+ src_scraper.setProviderConfig(e);
7184
7339
  let { animeId: t, commentId: r, segmentTime: n, tmdbId: i, type: o, episode: s } = e, a = null != r ? r : t;
7340
+ if (a === EMPTY_ANIME_CONFIG.ID) return null;
7185
7341
  if (!a) {
7186
7342
  if (!i) return null;
7187
7343
  let t = await getDoubanIds(e);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forward-widget/danmu-universe",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "./dist/danmu-universe.js",
6
6
  "exports": {
@@ -13,22 +13,21 @@
13
13
  "crypto-js": "^4.2.0",
14
14
  "es-toolkit": "^1.39.9",
15
15
  "fast-xml-parser": "^5.2.5",
16
- "p-limit": "^6.2.0",
17
16
  "protobufjs": "^7.5.4",
18
17
  "url-parse": "^1.5.10",
19
18
  "zod": "4.0.17"
20
19
  },
21
20
  "devDependencies": {
22
- "@forward-widget/libs": "^1.8.4",
23
- "@forward-widget/rslib-plugin": "^1.8.4",
21
+ "@forward-widget/libs": "1.8.5",
22
+ "@forward-widget/rslib-plugin": "1.8.5",
24
23
  "@rsdoctor/rspack-plugin": "^1.2.3",
25
24
  "@rslib/core": "^0.12.4",
26
25
  "@rstest/core": "^0.3.1",
27
26
  "@types/crypto-js": "^4.2.2",
28
27
  "@types/node": "^22.16.0",
29
28
  "@types/url-parse": "^1.4.11",
30
- "protobufjs-cli": "^1.1.3",
31
29
  "rsbuild-plugin-protobufjs": "^0.0.0",
30
+ "type-fest": "^4.41.0",
32
31
  "typescript": "^5.8.3"
33
32
  },
34
33
  "repository": {