@ttmg/cli 0.4.3 → 0.4.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.
Files changed (83) hide show
  1. package/dist/index.js +56 -11
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +5 -3
  4. package/dist/public/assets/Detail-CTD5OeB0.js +1 -0
  5. package/dist/public/assets/Detail-CTD5OeB0.js.br +0 -0
  6. package/dist/public/assets/{MonetizationMode-hwWN5zUT.js → MonetizationMode-DZmggvdZ.js} +1 -1
  7. package/dist/public/assets/{MonetizationModeSummary-BmvxAKbI.js → MonetizationModeSummary-7jDe4Q_6.js} +1 -1
  8. package/dist/public/assets/{SectionHeader-BL_bJf61.js → SectionHeader-Caf8qPRH.js} +1 -1
  9. package/dist/public/assets/{Tag-B4bSl-_E.js → Tag-DSB9Uput.js} +1 -1
  10. package/dist/public/assets/{baseForm-zW5Gb1OH.js → baseForm-DbKDw3IN.js} +1 -1
  11. package/dist/public/assets/baseForm-DbKDw3IN.js.br +0 -0
  12. package/dist/public/assets/{col-vAurEPaC.js → col-DlUD2IyX.js} +1 -1
  13. package/dist/public/assets/{compass-DEadzu-v.js → compass-D8bLLLSR.js} +1 -1
  14. package/dist/public/assets/{index-BCdOYP-_.js → index-B0fmVxbN.js} +1 -1
  15. package/dist/public/assets/index-B1gECabp.js +1 -0
  16. package/dist/public/assets/index-B1gECabp.js.br +0 -0
  17. package/dist/public/assets/{index-DyHfBQPm.js → index-B3TFdXWD.js} +1 -1
  18. package/dist/public/assets/{index-DhK1XTMu.js → index-BLmfGH4o.js} +1 -1
  19. package/dist/public/assets/{index-Bpx0cjfq.js → index-BR6l0C9y.js} +1 -1
  20. package/dist/public/assets/index-BV532pMK.js +1 -0
  21. package/dist/public/assets/index-BV532pMK.js.br +0 -0
  22. package/dist/public/assets/{index-DVDX92Zz.js → index-BeG7a_8l.js} +1 -1
  23. package/dist/public/assets/{index-QtH0wQu1.js → index-BlupVk90.js} +1 -1
  24. package/dist/public/assets/{index-Db3F1FgQ.js → index-BvRI6rq9.js} +1 -1
  25. package/dist/public/assets/index-BzbUu6Wd.js +1 -0
  26. package/dist/public/assets/{index-Dd2Oev0p.js → index-COLHKvH0.js} +1 -1
  27. package/dist/public/assets/{index-Do7tPKef.js → index-CPfhNCcU.js} +1 -1
  28. package/dist/public/assets/{index-BJmPZor5.js → index-CTkNRReQ.js} +1 -1
  29. package/dist/public/assets/{index-C2jjb4tf.js → index-Cf7bng8i.js} +1 -1
  30. package/dist/public/assets/index-ClU1uQYs.css +1 -0
  31. package/dist/public/assets/{index-DM7Cg9s9.css → index-CoYWdJV1.css} +1 -1
  32. package/dist/public/assets/{index-vuGJOmRn.js → index-D0iKOimx.js} +1 -1
  33. package/dist/public/assets/index-D2zLbzBh.css +1 -0
  34. package/dist/public/assets/index-D2zLbzBh.css.br +0 -0
  35. package/dist/public/assets/{index-CHODjAYV.js → index-D9-bb2oL.js} +1 -1
  36. package/dist/public/assets/{index-Dj0vBPuW.js → index-DF6WNroB.js} +1 -1
  37. package/dist/public/assets/index-DXXBlk9b.js +1 -0
  38. package/dist/public/assets/{index-P3QtE2VP.js → index-DenoanNX.js} +1 -1
  39. package/dist/public/assets/index-DenoanNX.js.br +0 -0
  40. package/dist/public/assets/{index-qycdeV7S.js → index-DnsrxgPV.js} +1 -1
  41. package/dist/public/assets/index-DnsrxgPV.js.br +0 -0
  42. package/dist/public/assets/index-Do3D3DDt.js +1 -0
  43. package/dist/public/assets/index-Do3D3DDt.js.br +0 -0
  44. package/dist/public/assets/{index-DpnThngH.js → index-DyR-YyZt.js} +1 -1
  45. package/dist/public/assets/index-Ggo1rV6S.js +1 -0
  46. package/dist/public/assets/index-OPQyWrBC.js +21 -0
  47. package/dist/public/assets/index-OPQyWrBC.js.br +0 -0
  48. package/dist/public/assets/index-eoDMPIdb.js +1 -0
  49. package/dist/public/assets/index-eoDMPIdb.js.br +0 -0
  50. package/dist/public/assets/index-y9pNuDMs.js +1 -0
  51. package/dist/public/assets/index-y9pNuDMs.js.br +0 -0
  52. package/dist/public/assets/{index-BRJFt3oz.css → index-yR_bPMcB.css} +1 -1
  53. package/dist/public/assets/index-yR_bPMcB.css.br +0 -0
  54. package/dist/public/assets/{layers-DDrUeTNf.js → layers-BQ_Tw855.js} +1 -1
  55. package/dist/public/assets/{list-checks-C4ci4EKo.js → list-checks-9HC7bocq.js} +1 -1
  56. package/dist/public/assets/{sparkles-PwlPP_sT.js → sparkles-BLHMCsIj.js} +1 -1
  57. package/dist/public/assets/{triangle-alert-BAadCxAv.js → triangle-alert-BprMFvuT.js} +1 -1
  58. package/dist/public/assets/{zap-CgIIDLY4.js → zap-Bj4LJ903.js} +1 -1
  59. package/dist/public/index.html +2 -2
  60. package/dist/scripts/docs/render.js +8 -8
  61. package/package.json +5 -3
  62. package/dist/public/assets/Detail-1nSjYvRw.js +0 -1
  63. package/dist/public/assets/Detail-1nSjYvRw.js.br +0 -0
  64. package/dist/public/assets/baseForm-zW5Gb1OH.js.br +0 -0
  65. package/dist/public/assets/index-BRJFt3oz.css.br +0 -0
  66. package/dist/public/assets/index-BXllV1mP.js +0 -1
  67. package/dist/public/assets/index-BXllV1mP.js.br +0 -0
  68. package/dist/public/assets/index-BuiCnshQ.js +0 -1
  69. package/dist/public/assets/index-C5k1IRcX.js +0 -1
  70. package/dist/public/assets/index-C5k1IRcX.js.br +0 -0
  71. package/dist/public/assets/index-CaArjQkD.js +0 -1
  72. package/dist/public/assets/index-CaArjQkD.js.br +0 -0
  73. package/dist/public/assets/index-ChtjciM4.js +0 -1
  74. package/dist/public/assets/index-ChtjciM4.js.br +0 -0
  75. package/dist/public/assets/index-CozQgXOx.js +0 -1
  76. package/dist/public/assets/index-CozQgXOx.js.br +0 -0
  77. package/dist/public/assets/index-Cw4SLGVh.js +0 -1
  78. package/dist/public/assets/index-DBDUeSB8.css +0 -1
  79. package/dist/public/assets/index-DBDUeSB8.css.br +0 -0
  80. package/dist/public/assets/index-P3QtE2VP.js.br +0 -0
  81. package/dist/public/assets/index-qycdeV7S.js.br +0 -0
  82. package/dist/public/assets/index-wqj8y8SZ.js +0 -21
  83. package/dist/public/assets/index-wqj8y8SZ.js.br +0 -0
package/dist/index.js CHANGED
@@ -8792,12 +8792,21 @@ function getLocalIPs() {
8792
8792
  ip.startsWith('192.168.') ||
8793
8793
  /^172\.(1[6-9]|2\d|3[01])\./.test(ip));
8794
8794
  }
8795
+ function isUsableFallbackIPv4(ip) {
8796
+ const parts = ip.split('.').map(Number);
8797
+ if (parts.length !== 4 || parts.some(part => !Number.isInteger(part) || part < 0 || part > 255)) {
8798
+ return false;
8799
+ }
8800
+ const [first, second] = parts;
8801
+ return first !== 0 && first !== 127 && first < 224 && !(first === 169 && second === 254);
8802
+ }
8795
8803
  // 兼容不同 Node 版本中 family 的类型('IPv4' | 4)
8796
8804
  function isIPv4Family(f) {
8797
8805
  return f === 4 || f === 'IPv4';
8798
8806
  }
8799
8807
  const nets = os.networkInterfaces();
8800
- const results = [];
8808
+ const privateResults = [];
8809
+ const physicalFallbacks = [];
8801
8810
  for (const name of Object.keys(nets)) {
8802
8811
  const addrs = nets[name] || [];
8803
8812
  // 先粗略排除明显虚拟接口
@@ -8811,15 +8820,23 @@ function getLocalIPs() {
8811
8820
  continue;
8812
8821
  if (net.internal)
8813
8822
  continue;
8814
- if (!net.address || !isPrivateIPv4(net.address))
8823
+ if (!net.address)
8815
8824
  continue;
8816
- // 若名称判断不通过,但地址是私有网段、且非回环/非内网,考虑接纳
8817
- // 但排除明显虚拟(已经在上面过滤 name)
8818
- if (matchedPhysicalName || shouldAcceptByHeuristic(name, net.address)) {
8819
- results.push({ name, address: net.address });
8825
+ if (isPrivateIPv4(net.address)) {
8826
+ // 若名称判断不通过,但地址是私有网段、且非回环/非内网,考虑接纳
8827
+ // 但排除明显虚拟(已经在上面过滤 name
8828
+ if (matchedPhysicalName || shouldAcceptByHeuristic(name)) {
8829
+ privateResults.push({ name, address: net.address });
8830
+ }
8831
+ }
8832
+ else if (matchedPhysicalName && isUsableFallbackIPv4(net.address)) {
8833
+ // 部分企业网络会给物理网卡分配非 RFC1918 地址。仅在没有私网地址时兜底,
8834
+ // 避免把真实 Wi-Fi / 有线网卡误判为“没有可供手机访问的地址”。
8835
+ physicalFallbacks.push({ name, address: net.address });
8820
8836
  }
8821
8837
  }
8822
8838
  }
8839
+ const results = privateResults.length > 0 ? privateResults : physicalFallbacks;
8823
8840
  // 去重(同名+同地址)
8824
8841
  const unique = dedupe(results);
8825
8842
  // 稳定排序:优先无线,再有线,再其他。
@@ -8843,7 +8860,7 @@ function getLocalIPs() {
8843
8860
  });
8844
8861
  return unique.map(item => item.address);
8845
8862
  // 兜底启发式:如果名字不明显,但常见物理命名模式且 IP 为私网,接受
8846
- function shouldAcceptByHeuristic(name, ip) {
8863
+ function shouldAcceptByHeuristic(name) {
8847
8864
  name.toLowerCase();
8848
8865
  // macOS: en0/en1
8849
8866
  if (/^en\d+$/i.test(name))
@@ -9466,10 +9483,38 @@ const gameCheckRoute = {
9466
9483
 
9467
9484
  const changelog = [
9468
9485
  {
9469
- title: '0.4.3',
9486
+ title: '0.4.4',
9470
9487
  target: {
9471
- iOS: '>=43.1',
9472
- Android: '>=43.1',
9488
+ iOS: '>=46.0',
9489
+ Android: '>=45.9',
9490
+ },
9491
+ changes: {
9492
+ feature: [
9493
+ {
9494
+ desc: {
9495
+ 'zh-CN': '正式开放子包收集能力:通过真机预览记录启动阶段实际预下载的子包,并生成预加载配置,帮助减少后续资源加载等待。当前仅支持非 Unity 小游戏。',
9496
+ 'en-US': 'Open Subpackage Collection: use real-device preview to record subpackages downloaded during startup and generate preload configuration, helping reduce subsequent resource loading waits. Currently available for non-Unity mini games only.',
9497
+ },
9498
+ module: 'new',
9499
+ link: 'https://bytedance.my.larkoffice.com/docx/MIyMdmzb0oOQAKxNHGNmR5hDyAh',
9500
+ },
9501
+ ],
9502
+ bugfix: [
9503
+ {
9504
+ desc: {
9505
+ 'zh-CN': '修复部分企业网络使用非标准局域网网段时,可扫码地址被误判为不可用的问题。',
9506
+ 'en-US': 'Fix an issue where scannable addresses could be incorrectly reported as unavailable on enterprise networks using non-standard local subnets.',
9507
+ },
9508
+ module: 'scanQrcode',
9509
+ },
9510
+ ],
9511
+ },
9512
+ },
9513
+ {
9514
+ title: '0.4.4-beta.1',
9515
+ target: {
9516
+ iOS: '>=46.0',
9517
+ Android: '>=45.9',
9473
9518
  },
9474
9519
  changes: {
9475
9520
  feature: [
@@ -13989,7 +14034,7 @@ async function upload({ clientKey, note = '--', dir, }) {
13989
14034
  }
13990
14035
  }
13991
14036
 
13992
- var version = "0.4.3";
14037
+ var version = "0.4.4-beta.1";
13993
14038
  var pkg = {
13994
14039
  version: version};
13995
14040