@playcraft/common 0.0.32 → 0.0.34

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 (88) hide show
  1. package/dist/agent/context-usage.d.ts +41 -0
  2. package/dist/agent/context-usage.d.ts.map +1 -0
  3. package/dist/agent/context-usage.js +68 -0
  4. package/dist/agent/context-usage.js.map +1 -0
  5. package/dist/agent/index.d.ts +1 -0
  6. package/dist/agent/index.d.ts.map +1 -1
  7. package/dist/agent/index.js +1 -0
  8. package/dist/agent/index.js.map +1 -1
  9. package/dist/agent/model-context-window.d.ts.map +1 -1
  10. package/dist/agent/model-context-window.js +2 -0
  11. package/dist/agent/model-context-window.js.map +1 -1
  12. package/dist/agent-tools/types.d.ts +75 -0
  13. package/dist/agent-tools/types.d.ts.map +1 -1
  14. package/dist/image-studio/alpha-strategy.d.ts +75 -0
  15. package/dist/image-studio/alpha-strategy.d.ts.map +1 -0
  16. package/dist/image-studio/alpha-strategy.js +184 -0
  17. package/dist/image-studio/alpha-strategy.js.map +1 -0
  18. package/dist/image-studio/index.d.ts +3 -0
  19. package/dist/image-studio/index.d.ts.map +1 -0
  20. package/dist/image-studio/index.js +3 -0
  21. package/dist/image-studio/index.js.map +1 -0
  22. package/dist/image-studio/keyframe-sheet.d.ts +16 -0
  23. package/dist/image-studio/keyframe-sheet.d.ts.map +1 -0
  24. package/dist/image-studio/keyframe-sheet.js +45 -0
  25. package/dist/image-studio/keyframe-sheet.js.map +1 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +3 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/prefab/constants.d.ts +8 -0
  31. package/dist/prefab/constants.d.ts.map +1 -1
  32. package/dist/prefab/constants.js +10 -0
  33. package/dist/prefab/constants.js.map +1 -1
  34. package/dist/prefab/image-padding-color.d.ts +17 -0
  35. package/dist/prefab/image-padding-color.d.ts.map +1 -0
  36. package/dist/prefab/image-padding-color.js +49 -0
  37. package/dist/prefab/image-padding-color.js.map +1 -0
  38. package/dist/prefab/index.d.ts +2 -0
  39. package/dist/prefab/index.d.ts.map +1 -1
  40. package/dist/prefab/index.js +2 -0
  41. package/dist/prefab/index.js.map +1 -1
  42. package/dist/prefab/mime-type-list.d.ts +37 -0
  43. package/dist/prefab/mime-type-list.d.ts.map +1 -0
  44. package/dist/prefab/mime-type-list.js +135 -0
  45. package/dist/prefab/mime-type-list.js.map +1 -0
  46. package/dist/prefab/schema-walker.d.ts +6 -1
  47. package/dist/prefab/schema-walker.d.ts.map +1 -1
  48. package/dist/prefab/schema-walker.js +72 -1
  49. package/dist/prefab/schema-walker.js.map +1 -1
  50. package/dist/prefab/types.d.ts +36 -1
  51. package/dist/prefab/types.d.ts.map +1 -1
  52. package/dist/preview/phone-preview-dimensions.d.ts +48 -0
  53. package/dist/preview/phone-preview-dimensions.d.ts.map +1 -0
  54. package/dist/preview/phone-preview-dimensions.js +34 -0
  55. package/dist/preview/phone-preview-dimensions.js.map +1 -0
  56. package/dist/queue/remix-cover-queue.d.ts +5 -0
  57. package/dist/queue/remix-cover-queue.d.ts.map +1 -0
  58. package/dist/queue/remix-cover-queue.js +14 -0
  59. package/dist/queue/remix-cover-queue.js.map +1 -0
  60. package/dist/recommend/atom-graph/basic-atom-graph.d.ts.map +1 -1
  61. package/dist/recommend/atom-graph/basic-atom-graph.js +771 -266
  62. package/dist/recommend/atom-graph/basic-atom-graph.js.map +1 -1
  63. package/dist/recommend/atom-graph/basic-atom-skill-graph.d.ts +11 -0
  64. package/dist/recommend/atom-graph/basic-atom-skill-graph.d.ts.map +1 -1
  65. package/dist/recommend/atom-graph/basic-atom-skill-graph.js +74 -9
  66. package/dist/recommend/atom-graph/basic-atom-skill-graph.js.map +1 -1
  67. package/dist/recommend/atom-graph/graph-generator.d.ts +63 -0
  68. package/dist/recommend/atom-graph/graph-generator.d.ts.map +1 -0
  69. package/dist/recommend/atom-graph/graph-generator.js +284 -0
  70. package/dist/recommend/atom-graph/graph-generator.js.map +1 -0
  71. package/dist/recommend/atom-graph/index.js +3 -0
  72. package/dist/recommend/atom-graph/index.js.map +1 -1
  73. package/dist/recommend/atom-graph/types.d.ts +39 -9
  74. package/dist/recommend/atom-graph/types.d.ts.map +1 -1
  75. package/dist/recommend/atom-graph/validate.js +2 -2
  76. package/dist/recommend/atom-graph/validate.js.map +1 -1
  77. package/dist/storage/cos-url.d.ts +18 -0
  78. package/dist/storage/cos-url.d.ts.map +1 -0
  79. package/dist/storage/cos-url.js +24 -0
  80. package/dist/storage/cos-url.js.map +1 -0
  81. package/dist/storage/cos.d.ts.map +1 -1
  82. package/dist/storage/cos.js +8 -13
  83. package/dist/storage/cos.js.map +1 -1
  84. package/dist/storage/index.d.ts +1 -0
  85. package/dist/storage/index.d.ts.map +1 -1
  86. package/dist/storage/index.js +1 -0
  87. package/dist/storage/index.js.map +1 -1
  88. package/package.json +16 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyframe-sheet.d.ts","sourceRoot":"","sources":["../../src/image-studio/keyframe-sheet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAW9F,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,sBAAsB,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAGhF;AAED,wBAAgB,kCAAkC,CAAC,eAAe,EAAE,MAAM,GAAG,2BAA2B,CAUvG;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAQtD;AAED,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,+BAA+B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAM/E;AAED,wBAAgB,8BAA8B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAM9E"}
@@ -0,0 +1,45 @@
1
+ import { normalizeAspectRatioForApi } from './alpha-strategy.js';
2
+ /** 左右分栏关键帧 sheet 的生成尺寸(每半张对应用户选择的宽高比) */
3
+ const KEYFRAME_PANEL_SIZES = {
4
+ '1:1': { width: 1024, height: 1024 },
5
+ '16:9': { width: 1920, height: 1080 },
6
+ '9:16': { width: 768, height: 1536 },
7
+ '4:3': { width: 1024, height: 768 },
8
+ '3:4': { width: 768, height: 1024 },
9
+ };
10
+ export function shouldUseKeyframeSheetStrategy(_strategy) {
11
+ // 宽图分栏对 gemini / 多数生图模型不稳定(多主体、黑边、接缝错位),统一走顺序 + 参考图。
12
+ return false;
13
+ }
14
+ export function resolveKeyframeSheetGenerationSize(userAspectRatio) {
15
+ const aspectRatio = normalizeAspectRatioForApi(userAspectRatio);
16
+ const panel = KEYFRAME_PANEL_SIZES[aspectRatio];
17
+ return {
18
+ aspectRatio,
19
+ panelWidth: panel.width,
20
+ panelHeight: panel.height,
21
+ width: panel.width * 2,
22
+ height: panel.height,
23
+ };
24
+ }
25
+ export function buildKeyframeSheetInstruction() {
26
+ return ('Output ONE wide image with exactly two equal square panels side by side, with NO gap, gutter, black bars, or letterboxing. ' +
27
+ 'Each panel must be a full-bleed solid chroma background edge-to-edge. ' +
28
+ 'LEFT panel ONLY: first/starting keyframe — subject perfectly centered in that left panel. ' +
29
+ 'RIGHT panel ONLY: last/ending keyframe — same subject, style, scale, and camera, subject perfectly centered in that right panel. ' +
30
+ 'Do NOT place both subjects near the center seam. Static poses only.');
31
+ }
32
+ export function buildKeyframeSheetPrompt(effectivePrompt) {
33
+ return `${effectivePrompt.trim()} ${buildKeyframeSheetInstruction()}`;
34
+ }
35
+ export function buildSequentialFirstFramePrompt(effectivePrompt) {
36
+ return (`${effectivePrompt.trim()} ` +
37
+ 'Generate ONLY the first/starting keyframe of a 2D animation. ' +
38
+ 'Exactly ONE subject instance, centered, static starting pose. No duplicates, no grid, no sheet layout.');
39
+ }
40
+ export function buildSequentialLastFramePrompt(effectivePrompt) {
41
+ return (`${effectivePrompt.trim()} ` +
42
+ 'Generate ONLY the last/ending keyframe. Use the reference image: keep the SAME single subject, style, scale, camera, and background. ' +
43
+ 'Change ONLY pose/state to the ending keyframe. Exactly ONE subject instance, centered. No duplicates, no grid.');
44
+ }
45
+ //# sourceMappingURL=keyframe-sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyframe-sheet.js","sourceRoot":"","sources":["../../src/image-studio/keyframe-sheet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAA+B,MAAM,qBAAqB,CAAC;AAE9F,yCAAyC;AACzC,MAAM,oBAAoB,GAAsE;IAC9F,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACpC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACrC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACpC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IACnC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;CACpC,CAAC;AAUF,MAAM,UAAU,8BAA8B,CAAC,SAAwB;IACrE,qDAAqD;IACrD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,eAAuB;IACxE,MAAM,WAAW,GAAG,0BAA0B,CAAC,eAAe,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,OAAO;QACL,WAAW;QACX,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CACL,6HAA6H;QAC7H,wEAAwE;QACxE,4FAA4F;QAC5F,mIAAmI;QACnI,qEAAqE,CACtE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,eAAuB;IAC9D,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,6BAA6B,EAAE,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,eAAuB;IACrE,OAAO,CACL,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG;QAC5B,+DAA+D;QAC/D,wGAAwG,CACzG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,eAAuB;IACpE,OAAO,CACL,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG;QAC5B,uIAAuI;QACvI,gHAAgH,CACjH,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -14,4 +14,7 @@ export * from './prefab/index.js';
14
14
  export * from './search/index.js';
15
15
  export * from './recommend/index.js';
16
16
  export * from './queue/email-queue.js';
17
+ export * from './queue/remix-cover-queue.js';
18
+ export * from './preview/phone-preview-dimensions.js';
19
+ export * from './image-studio/index.js';
17
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -14,4 +14,7 @@ export * from './prefab/index.js';
14
14
  export * from './search/index.js';
15
15
  export * from './recommend/index.js';
16
16
  export * from './queue/email-queue.js';
17
+ export * from './queue/remix-cover-queue.js';
18
+ export * from './preview/phone-preview-dimensions.js';
19
+ export * from './image-studio/index.js';
17
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,yBAAyB,CAAC"}
@@ -9,8 +9,16 @@ export declare const THEME_I18N_PLATFORM_PATH = "src/theme/i18n.platform.json5";
9
9
  /**
10
10
  * `i18n.runtime.json5`:SDK 运行时替换 `xplatform.value_type === 'i18n'`
11
11
  * 字段值的多语言文案数据源。前端可读可写。
12
+ *
13
+ * 主题级别的 theme.i18n.runtime.json5 会覆盖此文件的同 key 值。
14
+ * 写入操作统一写入主题级别文件。
12
15
  */
13
16
  export declare const THEME_I18N_RUNTIME_PATH = "src/theme/i18n.runtime.json5";
17
+ /**
18
+ * 主题级别的 i18n.runtime.json5(按主题覆盖全局 i18n)
19
+ * 读取时合并,修改时写入此文件。
20
+ */
21
+ export declare function themeI18nRuntimePath(themeId: string): string;
14
22
  export declare function themeDataPath(themeId: string): string;
15
23
  export declare const DEFAULT_GAME_PATH = "assets/DefaultGame.json";
16
24
  export declare const MANIFEST_PATH = "manifest.json";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/prefab/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,iBAAiB,iCAAiC,CAAC;AAChE,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AAEtE,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAID,eAAO,MAAM,iBAAiB,4BAA4B,CAAC;AAC3D,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AACrD,eAAO,MAAM,UAAU,WAAW,CAAC;AACnC,eAAO,MAAM,2BAA2B,0CAA0C,CAAC;AAEnF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/prefab/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,iBAAiB,iCAAiC,CAAC;AAChE,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAID,eAAO,MAAM,iBAAiB,4BAA4B,CAAC;AAC3D,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AACrD,eAAO,MAAM,UAAU,WAAW,CAAC;AACnC,eAAO,MAAM,2BAA2B,0CAA0C,CAAC;AAEnF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -10,8 +10,18 @@ export const THEME_I18N_PLATFORM_PATH = 'src/theme/i18n.platform.json5';
10
10
  /**
11
11
  * `i18n.runtime.json5`:SDK 运行时替换 `xplatform.value_type === 'i18n'`
12
12
  * 字段值的多语言文案数据源。前端可读可写。
13
+ *
14
+ * 主题级别的 theme.i18n.runtime.json5 会覆盖此文件的同 key 值。
15
+ * 写入操作统一写入主题级别文件。
13
16
  */
14
17
  export const THEME_I18N_RUNTIME_PATH = 'src/theme/i18n.runtime.json5';
18
+ /**
19
+ * 主题级别的 i18n.runtime.json5(按主题覆盖全局 i18n)
20
+ * 读取时合并,修改时写入此文件。
21
+ */
22
+ export function themeI18nRuntimePath(themeId) {
23
+ return `src/theme/${themeId}/theme.i18n.runtime.json5`;
24
+ }
15
25
  export function themeDataPath(themeId) {
16
26
  return `src/theme/${themeId}/theme.data.json5`;
17
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/prefab/constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAEtE,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,aAAa,OAAO,mBAAmB,CAAC;AACjD,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AACnC,MAAM,CAAC,MAAM,2BAA2B,GAAG,uCAAuC,CAAC;AAEnF,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,GAAG,2BAA2B,IAAI,OAAO,gBAAgB,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,GAAG,UAAU,IAAI,OAAO,OAAO,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/prefab/constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO,aAAa,OAAO,2BAA2B,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,aAAa,OAAO,mBAAmB,CAAC;AACjD,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AACnC,MAAM,CAAC,MAAM,2BAA2B,GAAG,uCAAuC,CAAC;AAEnF,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,GAAG,2BAA2B,IAAI,OAAO,gBAAgB,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,GAAG,UAAU,IAAI,OAAO,OAAO,CAAC;AACzC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /** contain 留边默认填充色(schema 未配置 padding_color 时) */
2
+ export declare const DEFAULT_PADDING_COLOR = "transparent";
3
+ export type SharpRgbaBackground = {
4
+ r: number;
5
+ g: number;
6
+ b: number;
7
+ alpha: number;
8
+ };
9
+ /** 规范化 schema ext.padding_color:transparent | #RRGGBB | #RRGGBBAA | #RGB */
10
+ export declare function normalizePaddingColor(raw: string | undefined): string;
11
+ /** 从 schema ext.padding_color 解析留边色;未配置时透明留边。 */
12
+ export declare function resolvePaddingColorFromSchema(schemaPaddingColor?: string): string;
13
+ /** 转为 sharp resize / flatten 使用的 RGBA background。 */
14
+ export declare function paddingColorToSharpBackground(paddingColor: string, options?: {
15
+ forceOpaque?: boolean;
16
+ }): SharpRgbaBackground;
17
+ //# sourceMappingURL=image-padding-color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-padding-color.d.ts","sourceRoot":"","sources":["../../src/prefab/image-padding-color.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAIF,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAoBrE;AAED,iDAAiD;AACjD,wBAAgB,6BAA6B,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,qDAAqD;AACrD,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC,mBAAmB,CAoBrB"}
@@ -0,0 +1,49 @@
1
+ /** contain 留边默认填充色(schema 未配置 padding_color 时) */
2
+ export const DEFAULT_PADDING_COLOR = 'transparent';
3
+ const TRANSPARENT_PADDING_COLOR = 'transparent';
4
+ /** 规范化 schema ext.padding_color:transparent | #RRGGBB | #RRGGBBAA | #RGB */
5
+ export function normalizePaddingColor(raw) {
6
+ if (!raw?.trim())
7
+ return DEFAULT_PADDING_COLOR;
8
+ const v = raw.trim();
9
+ if (v.toLowerCase() === TRANSPARENT_PADDING_COLOR)
10
+ return TRANSPARENT_PADDING_COLOR;
11
+ const hex = v.startsWith('#') ? v.slice(1) : v;
12
+ if (/^[a-f\d]{3}$/i.test(hex)) {
13
+ const r = hex[0];
14
+ const g = hex[1];
15
+ const b = hex[2];
16
+ return `#${r}${r}${g}${g}${b}${b}`.toUpperCase();
17
+ }
18
+ if (/^[a-f\d]{6}$/i.test(hex)) {
19
+ return `#${hex}`.toUpperCase();
20
+ }
21
+ if (/^[a-f\d]{8}$/i.test(hex)) {
22
+ return `#${hex}`.toUpperCase();
23
+ }
24
+ return DEFAULT_PADDING_COLOR;
25
+ }
26
+ /** 从 schema ext.padding_color 解析留边色;未配置时透明留边。 */
27
+ export function resolvePaddingColorFromSchema(schemaPaddingColor) {
28
+ return normalizePaddingColor(schemaPaddingColor);
29
+ }
30
+ /** 转为 sharp resize / flatten 使用的 RGBA background。 */
31
+ export function paddingColorToSharpBackground(paddingColor, options) {
32
+ const normalized = normalizePaddingColor(paddingColor);
33
+ if (normalized === TRANSPARENT_PADDING_COLOR) {
34
+ if (options?.forceOpaque) {
35
+ return { r: 255, g: 255, b: 255, alpha: 1 };
36
+ }
37
+ return { r: 0, g: 0, b: 0, alpha: 0 };
38
+ }
39
+ const hex = normalized.slice(1);
40
+ const r = parseInt(hex.slice(0, 2), 16);
41
+ const g = parseInt(hex.slice(2, 4), 16);
42
+ const b = parseInt(hex.slice(4, 6), 16);
43
+ const alpha = hex.length >= 8 ? parseInt(hex.slice(6, 8), 16) / 255 : 1;
44
+ if (options?.forceOpaque || alpha >= 1) {
45
+ return { r, g, b, alpha: 1 };
46
+ }
47
+ return { r, g, b, alpha };
48
+ }
49
+ //# sourceMappingURL=image-padding-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-padding-color.js","sourceRoot":"","sources":["../../src/prefab/image-padding-color.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,6 @@ export * from './scene-resolver.js';
7
7
  export * from './validator.js';
8
8
  export * from './descriptor.js';
9
9
  export * from './diff.js';
10
+ export * from './image-padding-color.js';
11
+ export * from './mime-type-list.js';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prefab/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prefab/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC"}
@@ -7,4 +7,6 @@ export * from './scene-resolver.js';
7
7
  export * from './validator.js';
8
8
  export * from './descriptor.js';
9
9
  export * from './diff.js';
10
+ export * from './image-padding-color.js';
11
+ export * from './mime-type-list.js';
10
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prefab/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prefab/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * xplatform.mime_type 解析:支持单个 MIME 或逗号/分号分隔的多 MIME 列表。
3
+ * Remix 文件选择、AI 生图输出格式等共用。
4
+ */
5
+ export type AiImageOutputFormat = 'png' | 'webp' | 'jpeg';
6
+ /** 解析 mime_type 字段为 MIME 列表(去重、小写、trim)。 */
7
+ export declare function parseMimeTypeList(raw: string | undefined): string[];
8
+ /** 单个 MIME → 文件格式标识(png/webp/jpeg);无法识别时 undefined。 */
9
+ export declare function mimeTypeToImageFormat(mimeType: string | undefined): string | undefined;
10
+ /** 单个 MIME → 匹配扩展名(小写,含点)。 */
11
+ export declare function mimeToFileExtensions(mime: string): string[];
12
+ /** 多 MIME 字符串 → 并集扩展名列表。 */
13
+ export declare function mimeListToFileExtensions(mimeListRaw: string | undefined): string[];
14
+ /** HTML input accept 属性值(逗号分隔、无空格)。 */
15
+ export declare function mimeListToAcceptAttribute(mimeListRaw: string | undefined): string | undefined;
16
+ /**
17
+ * 从 schema mime_type(可多个)与上下文解析 AI 生图落盘格式。
18
+ *
19
+ * 优先级(schema 有允许列表时):
20
+ * 1. 当前资产路径扩展名(在允许列表内)
21
+ * 2. 参考图格式(在允许列表内)
22
+ * 3. remove_background → png(在允许列表内)
23
+ * 4. 列表第一项
24
+ *
25
+ * 无 schema mime 时:参考图格式 → defaultFormat(png)
26
+ */
27
+ export declare function resolveAiImageOutputFormat(input: {
28
+ schemaMimeType?: string;
29
+ assetPath?: string;
30
+ referenceFormat?: string;
31
+ removeBackground?: boolean;
32
+ defaultFormat?: AiImageOutputFormat;
33
+ }): {
34
+ format: AiImageOutputFormat;
35
+ fromSchema: boolean;
36
+ };
37
+ //# sourceMappingURL=mime-type-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime-type-list.d.ts","sourceRoot":"","sources":["../../src/prefab/mime-type-list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAmB1D,4CAA4C;AAC5C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAWnE;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGtF;AAED,8BAA8B;AAC9B,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW3D;AAED,4BAA4B;AAC5B,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAUlF;AAED,uCAAuC;AACvC,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAO7F;AAiBD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CA+BvD"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * xplatform.mime_type 解析:支持单个 MIME 或逗号/分号分隔的多 MIME 列表。
3
+ * Remix 文件选择、AI 生图输出格式等共用。
4
+ */
5
+ const MIME_TO_FORMAT = {
6
+ 'image/png': 'png',
7
+ 'image/webp': 'webp',
8
+ 'image/jpeg': 'jpeg',
9
+ 'image/jpg': 'jpeg',
10
+ 'image/gif': 'gif',
11
+ };
12
+ const EXT_TO_FORMAT = {
13
+ webp: 'webp',
14
+ jpg: 'jpeg',
15
+ jpeg: 'jpeg',
16
+ png: 'png',
17
+ };
18
+ const AI_OUTPUT_FORMATS = new Set(['png', 'webp', 'jpeg']);
19
+ /** 解析 mime_type 字段为 MIME 列表(去重、小写、trim)。 */
20
+ export function parseMimeTypeList(raw) {
21
+ if (!raw?.trim())
22
+ return [];
23
+ const seen = new Set();
24
+ const out = [];
25
+ for (const part of raw.split(/[,;|]/)) {
26
+ const mime = part.trim().toLowerCase();
27
+ if (!mime || seen.has(mime))
28
+ continue;
29
+ seen.add(mime);
30
+ out.push(mime);
31
+ }
32
+ return out;
33
+ }
34
+ /** 单个 MIME → 文件格式标识(png/webp/jpeg);无法识别时 undefined。 */
35
+ export function mimeTypeToImageFormat(mimeType) {
36
+ if (!mimeType?.trim())
37
+ return undefined;
38
+ return MIME_TO_FORMAT[mimeType.trim().toLowerCase()];
39
+ }
40
+ /** 单个 MIME → 匹配扩展名(小写,含点)。 */
41
+ export function mimeToFileExtensions(mime) {
42
+ const m = mime.trim().toLowerCase();
43
+ if (m === 'image/png')
44
+ return ['.png'];
45
+ if (m === 'image/jpeg' || m === 'image/jpg')
46
+ return ['.jpg', '.jpeg'];
47
+ if (m === 'image/webp')
48
+ return ['.webp'];
49
+ if (m === 'image/gif')
50
+ return ['.gif'];
51
+ if (m === 'image/svg+xml')
52
+ return ['.svg'];
53
+ if (m.startsWith('image/'))
54
+ return ['.png', '.jpg', '.jpeg', '.webp', '.gif', '.svg', '.bmp'];
55
+ if (m.startsWith('audio/'))
56
+ return ['.mp3', '.ogg', '.wav', '.m4a', '.aac'];
57
+ if (m.startsWith('video/'))
58
+ return ['.mp4', '.webm', '.mov'];
59
+ return [];
60
+ }
61
+ /** 多 MIME 字符串 → 并集扩展名列表。 */
62
+ export function mimeListToFileExtensions(mimeListRaw) {
63
+ const list = parseMimeTypeList(mimeListRaw);
64
+ if (list.length === 0)
65
+ return mimeToFileExtensions(mimeListRaw ?? '');
66
+ const exts = new Set();
67
+ for (const mime of list) {
68
+ for (const ext of mimeToFileExtensions(mime)) {
69
+ exts.add(ext);
70
+ }
71
+ }
72
+ return [...exts];
73
+ }
74
+ /** HTML input accept 属性值(逗号分隔、无空格)。 */
75
+ export function mimeListToAcceptAttribute(mimeListRaw) {
76
+ const list = parseMimeTypeList(mimeListRaw);
77
+ if (list.length === 0) {
78
+ const trimmed = mimeListRaw?.trim();
79
+ return trimmed || undefined;
80
+ }
81
+ return list.join(',');
82
+ }
83
+ function normalizeReferenceFormat(format) {
84
+ if (!format?.trim())
85
+ return undefined;
86
+ const normalized = format.trim().toLowerCase();
87
+ const mapped = normalized === 'jpg' ? 'jpeg' : normalized;
88
+ return AI_OUTPUT_FORMATS.has(mapped)
89
+ ? mapped
90
+ : undefined;
91
+ }
92
+ function formatFromAssetPath(assetPath) {
93
+ const ext = assetPath?.match(/\.([a-z0-9]+)$/i)?.[1]?.toLowerCase();
94
+ if (!ext)
95
+ return undefined;
96
+ return EXT_TO_FORMAT[ext];
97
+ }
98
+ /**
99
+ * 从 schema mime_type(可多个)与上下文解析 AI 生图落盘格式。
100
+ *
101
+ * 优先级(schema 有允许列表时):
102
+ * 1. 当前资产路径扩展名(在允许列表内)
103
+ * 2. 参考图格式(在允许列表内)
104
+ * 3. remove_background → png(在允许列表内)
105
+ * 4. 列表第一项
106
+ *
107
+ * 无 schema mime 时:参考图格式 → defaultFormat(png)
108
+ */
109
+ export function resolveAiImageOutputFormat(input) {
110
+ const defaultFormat = input.defaultFormat ?? 'png';
111
+ const hasSchemaMime = Boolean(input.schemaMimeType?.trim());
112
+ const allowedFromSchema = parseMimeTypeList(input.schemaMimeType)
113
+ .map((m) => mimeTypeToImageFormat(m))
114
+ .filter((f) => f != null && AI_OUTPUT_FORMATS.has(f));
115
+ if (allowedFromSchema.length > 0) {
116
+ const fromPath = formatFromAssetPath(input.assetPath);
117
+ if (fromPath && allowedFromSchema.includes(fromPath)) {
118
+ return { format: fromPath, fromSchema: hasSchemaMime };
119
+ }
120
+ const fromRef = normalizeReferenceFormat(input.referenceFormat);
121
+ if (fromRef && allowedFromSchema.includes(fromRef)) {
122
+ return { format: fromRef, fromSchema: hasSchemaMime };
123
+ }
124
+ if (input.removeBackground && allowedFromSchema.includes('png')) {
125
+ return { format: 'png', fromSchema: hasSchemaMime };
126
+ }
127
+ return { format: allowedFromSchema[0], fromSchema: hasSchemaMime };
128
+ }
129
+ const fromRef = normalizeReferenceFormat(input.referenceFormat);
130
+ if (fromRef) {
131
+ return { format: fromRef, fromSchema: false };
132
+ }
133
+ return { format: defaultFormat, fromSchema: false };
134
+ }
135
+ //# sourceMappingURL=mime-type-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime-type-list.js","sourceRoot":"","sources":["../../src/prefab/mime-type-list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,cAAc,GAAgD;IAClE,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,MAAM,aAAa,GAAwC;IACzD,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEhF,4CAA4C;AAC5C,MAAM,UAAU,iBAAiB,CAAC,GAAuB;IACvD,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,qBAAqB,CAAC,QAA4B;IAChE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK,YAAY;QAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,eAAe;QAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9F,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,wBAAwB,CAAC,WAA+B;IACtE,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,oBAAoB,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,yBAAyB,CAAC,WAA+B;IACvE,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC;QACpC,OAAO,OAAO,IAAI,SAAS,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,wBAAwB,CAAC,MAA0B;IAC1D,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1D,OAAO,iBAAiB,CAAC,GAAG,CAAC,MAA6B,CAAC;QACzD,CAAC,CAAE,MAA8B;QACjC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA6B;IACxD,MAAM,GAAG,GAAG,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACpE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAM1C;IACC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC;IACnD,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC;SAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAwB,CAAC,CAAC,CAAC;IAEzG,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAChE,IAAI,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,KAAK,CAAC,gBAAgB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;QACtD,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAChE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACtD,CAAC"}
@@ -13,7 +13,7 @@
13
13
  */
14
14
  import type { JsonSchemaNode } from './types.js';
15
15
  /** 美术资源类型分类 */
16
- export type MediaKind = 'image' | 'audio' | 'video' | 'other';
16
+ export type MediaKind = 'image' | 'audio' | 'video' | 'text' | 'other';
17
17
  /** 一个被识别为"美术资源"的 schema 字段 */
18
18
  export interface AssetFieldInfo {
19
19
  /** 字段在 themeData 中的访问路径(不含根对象本身) */
@@ -75,6 +75,11 @@ export declare function walkSchemaFields(root: JsonSchemaNode | undefined): Arra
75
75
  * 抽取所有 `xplatform.value_type === 'path'` 的字段。
76
76
  */
77
77
  export declare function extractAssetFields(root: JsonSchemaNode | undefined): AssetFieldInfo[];
78
+ /**
79
+ * 抽取所有文本类型字段(string / i18n)。
80
+ * 排除:path 字段、颜色字段、非 string 类型。
81
+ */
82
+ export declare function extractTextFields(root: JsonSchemaNode | undefined): AssetFieldInfo[];
78
83
  /**
79
84
  * 合并 themeData.assets 块 + schema 内联字段,按路径值去重。
80
85
  *
@@ -1 +1 @@
1
- {"version":3,"file":"schema-walker.d.ts","sourceRoot":"","sources":["../../src/prefab/schema-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,eAAe;AACf,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,sBAAsB;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS;IACT,MAAM,EAAE,cAAc,GAAG,QAAQ,CAAC;IAClC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,qDAAqD;IACrD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAiCD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAO5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,KAAK,EAAE,OAAO,GACb,CAAC,CAYH;AAID;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,cAAc,GAAG,SAAS,GAC/B,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC,CA6BnD;AAID;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,EAAE,CAcrF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACpD,SAAS,EAAE,CAmGb;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAChC,IAAI,EAAE,OAAO,GAAG,aAAa,EAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACxD,MAAM,EAAE,IAAI,GAAG,IAAI,GAClB,MAAM,GAAG,SAAS,CAuBpB;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKpE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACtD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAUpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACvD,MAAM,EAAE,IAAI,GAAG,IAAI,GAClB,MAAM,GAAG,SAAS,CAQpB"}
1
+ {"version":3,"file":"schema-walker.d.ts","sourceRoot":"","sources":["../../src/prefab/schema-walker.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,18 @@ function inferMediaKind(mimeType, value) {
41
41
  }
42
42
  return 'other';
43
43
  }
44
+ /**
45
+ * 判断字段是否为颜色字段(应被文本扫描排除)。
46
+ * 依据:字段名含 'color'(忽略大小写)或 schema.default 以 '#' 开头。
47
+ */
48
+ function isColorField(name, schema) {
49
+ if (/color/i.test(name))
50
+ return true;
51
+ const def = schema.default;
52
+ if (typeof def === 'string' && def.startsWith('#'))
53
+ return true;
54
+ return false;
55
+ }
44
56
  // ─── 路径取值/赋值(不可变) ───────────────────────────────────────────────────
45
57
  /**
46
58
  * 按路径读取嵌套对象的值;任一环节缺失则返回 undefined。
@@ -58,6 +70,16 @@ export function getByPath(obj, path) {
58
70
  }
59
71
  return cur;
60
72
  }
73
+ function getThemeValueBySchemaPath(obj, path) {
74
+ const exact = getByPath(obj, path);
75
+ if (exact !== undefined || path.length === 0)
76
+ return exact;
77
+ const [root, ...rest] = path;
78
+ if (root !== 'gameplay' && root !== 'gamePlay')
79
+ return exact;
80
+ const alternateRoot = root === 'gameplay' ? 'gamePlay' : 'gameplay';
81
+ return getByPath(obj, [alternateRoot, ...rest]);
82
+ }
61
83
  /**
62
84
  * 按路径不可变地设置嵌套值,返回新对象。空路径会用 value 替换根。
63
85
  *
@@ -140,6 +162,35 @@ export function extractAssetFields(root) {
140
162
  }
141
163
  return out;
142
164
  }
165
+ /**
166
+ * 抽取所有文本类型字段(string / i18n)。
167
+ * 排除:path 字段、颜色字段、非 string 类型。
168
+ */
169
+ export function extractTextFields(root) {
170
+ const fields = walkSchemaFields(root);
171
+ const out = [];
172
+ for (const { path, schema } of fields) {
173
+ const t = Array.isArray(schema.type) ? schema.type[0] : schema.type;
174
+ if (t !== 'string' && t !== 'i18n')
175
+ continue;
176
+ const xp = getXplatform(schema);
177
+ if (xp?.value_type === 'path')
178
+ continue;
179
+ // 排除 enum/enumLabels 下拉选择字段
180
+ if (schema.enum || schema.enumLabels)
181
+ continue;
182
+ const fieldName = path[path.length - 1] ?? '';
183
+ if (isColorField(fieldName, schema))
184
+ continue;
185
+ out.push({
186
+ path,
187
+ schema,
188
+ mimeType: undefined,
189
+ mediaKind: 'text',
190
+ });
191
+ }
192
+ return out;
193
+ }
143
194
  /**
144
195
  * 合并 themeData.assets 块 + schema 内联字段,按路径值去重。
145
196
  *
@@ -219,7 +270,7 @@ export function collectThemeAssets(schema, themeData) {
219
270
  // 空值(未配置)的字段也收集,标记 empty=true,供面板显示占位项
220
271
  const fields = extractAssetFields(schema);
221
272
  for (const f of fields) {
222
- const raw = getByPath(data, f.path);
273
+ const raw = getThemeValueBySchemaPath(data, f.path);
223
274
  const value = typeof raw === 'string' && raw
224
275
  ? raw
225
276
  : (typeof f.schema.default === 'string' && f.schema.default ? f.schema.default : null);
@@ -252,6 +303,26 @@ export function collectThemeAssets(schema, themeData) {
252
303
  });
253
304
  }
254
305
  }
306
+ // ─── Step F: 文本字段(string / i18n),空值也收以显示占位 ──────────
307
+ // schema.default 作为 fallback:themeData 未配置时使用 schema 默认值
308
+ const textFields = extractTextFields(schema);
309
+ for (const f of textFields) {
310
+ const raw = getThemeValueBySchemaPath(data, f.path);
311
+ const fallback = typeof f.schema.default === 'string' && f.schema.default ? f.schema.default : null;
312
+ const value = typeof raw === 'string' && raw ? raw : (fallback ?? '');
313
+ const textKey = `__text__${f.path.join('.')}`;
314
+ if (seen.has(textKey))
315
+ continue;
316
+ seen.add(textKey);
317
+ out.push({
318
+ value,
319
+ mediaKind: 'text',
320
+ source: 'inline',
321
+ fieldPath: f.path,
322
+ schema: f.schema,
323
+ empty: !value,
324
+ });
325
+ }
255
326
  return out;
256
327
  }
257
328
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"schema-walker.js","sourceRoot":"","sources":["../../src/prefab/schema-walker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-walker.js","sourceRoot":"","sources":["../../src/prefab/schema-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAqCH,8EAA8E;AAE9E,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAChD,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAE5C,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,YAAY,CAAC,MAAsB;IAC1C,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,QAA4B,EAAE,KAAc;IAClE,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,OAAO,CAAC;QAClD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,OAAO,CAAC;QAClD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,OAAO,CAAC;IACpD,CAAC;IACD,qCAAqC;IACrC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,yCAAyC,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAC1E,IAAI,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAChE,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;IAC9D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,MAAsB;IACxD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uEAAuE;AAEvE;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,GAAY,EAAE,IAA2B;IACjE,IAAI,GAAG,GAAY,GAAG,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,yBAAyB,CAChC,GAA4B,EAC5B,IAA2B;IAE3B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3D,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAE7D,MAAM,aAAa,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACpE,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACvB,GAAM,EACN,IAA2B,EAC3B,KAAc;IAEd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAU,CAAC;IACzC,MAAM,IAAI,GAA4B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,IAAI,GAAG,GAA4B,IAAI,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,GAAG,GAAG,CAAC,GAAG,CAA4B,CAAC;IAC5C,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACnC,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAgC;IAEhC,MAAM,GAAG,GAAsD,EAAE,CAAC;IAClE,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC;IAEtB,MAAM,KAAK,GAAoD;QAC7D,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;KACzB,CAAC;IAEF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QACpC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QAChD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9B,MAAM,iBAAiB,GAAG,CAAC,KAAK,QAAQ,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,iBAAiB,EAAE,CAAC;YACtB,uCAAuC;YACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAuC,CAAC,CAAC;YACxE,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,2BAA2B;YAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,yEAAyE;AAEzE;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAgC;IACjE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,EAAE,UAAU,KAAK,MAAM;YAAE,SAAS;QACxC,GAAG,CAAC,IAAI,CAAC;YACP,IAAI;YACJ,MAAM;YACN,QAAQ,EAAE,EAAE,CAAC,SAAS;YACtB,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC,SAAS,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAgC;IAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACpE,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,MAAM;YAAE,SAAS;QAC7C,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,EAAE,UAAU,KAAK,MAAM;YAAE,SAAS;QACxC,4BAA4B;QAC5B,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU;YAAE,SAAS;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;YAAE,SAAS;QAC9C,GAAG,CAAC,IAAI,CAAC;YACP,IAAI;YACJ,MAAM;YACN,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAkC,EAClC,SAAqD;IAErD,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAgB,EAAE,CAAC;IAE5B,wEAAwE;IACxE,+BAA+B;IAC/B,yEAAyE;IACzE,uEAAuE;IACvE,6EAA6E;IAC7E,qBAAqB;IACrB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;IAChC,MAAM,gBAAgB,GAAG,CAAC,GAAY,EAA2C,EAAE;QACjF,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,EAAE,CAAC;YACnC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC;YAC3C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3E,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,iCAAiC;IACjC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC,EAAQ,EAAE;QAC1D,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,CAAC,OAAO;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,EAAE,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;wBACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAClB,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;oBACnG,CAAC;gBACH,CAAC;qBAAM,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,EAAE,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;wBACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAClB,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;oBACnG,CAAC;gBACH,CAAC;qBAAM,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpD,eAAe,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACtD,eAAe,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,qEAAqE;IACrE,sDAAsD;IACtD,wDAAwD;IACxD,uCAAuC;IACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG;YAC1C,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEzF,IAAI,KAAK,EAAE,CAAC;YACV,UAAU;YACV,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK;gBACL,SAAS,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;gBACpF,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,CAAC,CAAC,IAAI;gBACjB,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,SAAS;YAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7E,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,CAAC,CAAC,IAAI;gBACjB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,yDAAyD;IACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACpG,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC;YACP,KAAK;YACL,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,CAAC,CAAC,IAAI;YACjB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAgC,EAChC,IAA6B,EAC7B,YAAwD,EACxD,MAAmB;IAEnB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3D,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;QAAE,OAAO,SAAS,CAAC;IAEnD,6DAA6D;IAC7D,IAAI,MAAM,GAAY,YAAY,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7C,MAAM,GAAI,MAAkC,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAE7C,MAAM,QAAQ,GAAI,MAAkC,CAAC,KAAK,CAAC;IAC3D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAE/C,MAAM,QAAQ,GAAI,QAAoC,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAE/C,MAAM,MAAM,GAAG,CAAC,EAAU,EAAsB,EAAE;QAChD,MAAM,CAAC,GAAI,QAAoC,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACxE,CAAC;AAED,0EAA0E;AAE1E;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAiB;IACnD,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAW,EACX,WAAuD;IAEvD,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAiB,EACjB,WAAuD,EACvD,MAAmB;IAEnB,MAAM,GAAG,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACnE,CAAC"}