modelstage 0.5.28 → 0.6.1

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 (78) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/README.md +2 -63
  3. package/config/models/live2d.assetbundls.json +1 -1
  4. package/config/models/live2d.azurlane.json +1 -1
  5. package/config/models/live2d.azurlane_bundle.json +1 -1
  6. package/config/models/live2d.azurlane_bundle.jsonl +2 -0
  7. package/config/models/live2d.azurlane_spine.json +1 -1
  8. package/config/models/live2d.bd2.json +1 -1
  9. package/config/models/live2d.bd2.jsonl +2 -0
  10. package/config/models/live2d.bluearchive.json +1 -1
  11. package/config/models/live2d.nikke.json +1 -1
  12. package/config/models/live2d.nikke.jsonl +2 -0
  13. package/config/models/live2d.nikke_2.json +1 -1
  14. package/config/models/live2d.npc.json +1 -1
  15. package/config/models/spine.assetbundls.json +1 -1
  16. package/config/models/spine.azurlane.json +1 -1
  17. package/config/models/spine.azurlane_bundle.json +1 -1
  18. package/config/models/spine.azurlane_bundle.jsonl +2 -0
  19. package/config/models/spine.azurlane_spine.json +1 -1
  20. package/config/models/spine.bd2.json +1 -1
  21. package/config/models/spine.bd2.jsonl +433 -0
  22. package/config/models/spine.bluearchive.json +1 -1
  23. package/config/models/spine.nikke.json +1 -1
  24. package/config/models/spine.nikke_2.json +1 -1
  25. package/config/models/spine.npc.json +1 -1
  26. package/package.json +2 -1
  27. package/src/server/assets/probe.mjs +1 -1
  28. package/src/server/core/config.mjs +2 -2
  29. package/src/server/core/log.mjs +1 -1
  30. package/src/server/data/catalog.mjs +11 -14
  31. package/src/server/data/live2d.mjs +139 -40
  32. package/src/server/data/manifest-cache.mjs +53 -10
  33. package/src/server/data/manifest-jsonl.mjs +264 -0
  34. package/src/server/data/manifest-stamp.mjs +52 -2
  35. package/src/server/data/scan-progress.mjs +305 -0
  36. package/src/server/data/scan-queue.mjs +99 -0
  37. package/src/server/data/spine.mjs +324 -106
  38. package/src/server/plugins/registry.mjs +1 -1
  39. package/src/server/routes/data.mjs +76 -17
  40. package/src/server/serve.mjs +9 -4
  41. package/src/server/unpack/plugin-store.mjs +1 -1
  42. package/src/server/unpack/runtime/exec.mjs +37 -8
  43. package/src/server/unpack/worker-client.mjs +23 -8
  44. package/src/shared/scan-limits.mjs +23 -0
  45. package/src/web/app/anim-list.js +1 -1
  46. package/src/web/app/backgrounds.js +4 -8
  47. package/src/web/app/dir-picker.js +3 -5
  48. package/src/web/app/memory-budget.js +0 -1
  49. package/src/web/app/memory-guard.js +0 -1
  50. package/src/web/app/model-actions.js +18 -15
  51. package/src/web/app/root-manager.js +2 -4
  52. package/src/web/app/transport-actions.js +1 -1
  53. package/src/web/app/ui-state.js +1 -1
  54. package/src/web/components.css +90 -0
  55. package/src/web/debug/race-probe.js +36 -13
  56. package/src/web/engine/textures.js +1 -2
  57. package/src/web/infra/api.js +10 -19
  58. package/src/web/infra/document.js +3 -3
  59. package/src/web/infra/plugin-host-unpack.mjs +81 -9
  60. package/src/web/infra/ready.js +177 -39
  61. package/src/web/live2d/bridge.js +1 -1
  62. package/src/web/live2d/runtime-adapter.js +2 -4
  63. package/src/web/panel/panel-settings.js +88 -3
  64. package/src/web/roster/events.js +159 -0
  65. package/src/web/roster/filter.js +4 -4
  66. package/src/web/roster/list.js +3 -3
  67. package/src/web/roster/load.js +440 -0
  68. package/src/web/roster/persist.js +46 -37
  69. package/src/web/roster/render.js +284 -0
  70. package/src/web/roster/reveal.js +4 -9
  71. package/src/web/roster/rows.js +35 -13
  72. package/src/web/roster/scan-stream.js +346 -0
  73. package/src/web/roster/snapshot.js +14 -8
  74. package/src/web/roster/store.js +292 -0
  75. package/src/web/roster/type-filter.js +5 -5
  76. package/src/web/roster/view.js +147 -634
  77. package/src/web/spine/canvas-runtime.js +4 -5
  78. package/src/web/spine/runtimes.js +1 -1
@@ -99,15 +99,14 @@ export async function ensureRuntimeSource(ver) {
99
99
  if (window.__SPINE_RUNTIME_SOURCES__[ver]) return;
100
100
  let text = runtimeSourceCache.get(ver);
101
101
  if (!text) {
102
- // 20s:运行时脚本实测 439KB(spine-webgl 4.1.0),CIFS/NAS 上读大文件可能数秒。
103
- // 不给超时会让"装载模型"永久卡在"加载运行时"(用户看不出是卡住还是慢)。
102
+ // 不设时限:运行时脚本几百 KB,慢就等;失败要能分清"没这个版本"和"磁盘慢"。
104
103
  let r;
105
104
  try {
106
- r = await fetch(`${RUNTIME_BASE}${ver}.js`, { cache: 'no-store', signal: AbortSignal.timeout(20000) });
105
+ r = await fetch(`${RUNTIME_BASE}${ver}.js`, { cache: 'no-store' });
107
106
  } catch (e) {
108
- // 超时/中断必须翻译成人话:裸的 "The operation was aborted." 分不清是
107
+ // 请求被中断要翻译成人话:裸的 "The operation was aborted." 分不清是
109
108
  // "这台机器没装这个版本"(要补文件)还是"服务端/磁盘慢"(等或换机器)—— 两者的处置完全不同。
110
- throw new Error(`运行时 ${ver} 加载超时或中断(上限 20s):${(e && e.message) || e}`);
109
+ throw new Error(`运行时 ${ver} 加载被中断:${(e && e.message) || e}`);
111
110
  }
112
111
  if (!r.ok) {
113
112
  // 404 最常见的原因是"这台机器上没放这个版本" ⇒ 附上服务端给的可复制补齐方案,
@@ -130,7 +130,7 @@ export class SpineRuntimeManager {
130
130
  // 20s:与 canvas-runtime 同口径(运行时脚本实测 439KB),别让"加载运行时"无限挂着
131
131
  let r;
132
132
  try {
133
- r = await fetch(`${RUNTIME_BASE}${version}.js`, { cache: 'no-store', signal: AbortSignal.timeout(20000) }); // dsh-skip-quality 本地同源运行时脚本读取,既有代码
133
+ r = await fetch(`${RUNTIME_BASE}${version}.js`, { cache: 'no-store' }); // dsh-skip-quality 本地同源运行时脚本读取,既有代码
134
134
  } catch (e) {
135
135
  // 同 canvas-runtime:把裸的 abort 翻成"超时/中断",否则与"没装这个版本"混为一谈
136
136
  throw new Error(`运行时 ${version} 加载超时或中断(上限 20s):${(e && e.message) || e}`);