@playcraft/common 0.0.33 → 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 (76) 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 +1 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -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/types.d.ts +36 -1
  47. package/dist/prefab/types.d.ts.map +1 -1
  48. package/dist/recommend/atom-graph/basic-atom-graph.d.ts.map +1 -1
  49. package/dist/recommend/atom-graph/basic-atom-graph.js +771 -266
  50. package/dist/recommend/atom-graph/basic-atom-graph.js.map +1 -1
  51. package/dist/recommend/atom-graph/basic-atom-skill-graph.d.ts +11 -0
  52. package/dist/recommend/atom-graph/basic-atom-skill-graph.d.ts.map +1 -1
  53. package/dist/recommend/atom-graph/basic-atom-skill-graph.js +74 -9
  54. package/dist/recommend/atom-graph/basic-atom-skill-graph.js.map +1 -1
  55. package/dist/recommend/atom-graph/graph-generator.d.ts +63 -0
  56. package/dist/recommend/atom-graph/graph-generator.d.ts.map +1 -0
  57. package/dist/recommend/atom-graph/graph-generator.js +284 -0
  58. package/dist/recommend/atom-graph/graph-generator.js.map +1 -0
  59. package/dist/recommend/atom-graph/index.js +3 -0
  60. package/dist/recommend/atom-graph/index.js.map +1 -1
  61. package/dist/recommend/atom-graph/types.d.ts +39 -9
  62. package/dist/recommend/atom-graph/types.d.ts.map +1 -1
  63. package/dist/recommend/atom-graph/validate.js +2 -2
  64. package/dist/recommend/atom-graph/validate.js.map +1 -1
  65. package/dist/storage/cos-url.d.ts +18 -0
  66. package/dist/storage/cos-url.d.ts.map +1 -0
  67. package/dist/storage/cos-url.js +24 -0
  68. package/dist/storage/cos-url.js.map +1 -0
  69. package/dist/storage/cos.d.ts.map +1 -1
  70. package/dist/storage/cos.js +8 -13
  71. package/dist/storage/cos.js.map +1 -1
  72. package/dist/storage/index.d.ts +1 -0
  73. package/dist/storage/index.d.ts.map +1 -1
  74. package/dist/storage/index.js +1 -0
  75. package/dist/storage/index.js.map +1 -1
  76. 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
@@ -16,4 +16,5 @@ export * from './recommend/index.js';
16
16
  export * from './queue/email-queue.js';
17
17
  export * from './queue/remix-cover-queue.js';
18
18
  export * from './preview/phone-preview-dimensions.js';
19
+ export * from './image-studio/index.js';
19
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;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,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
@@ -16,4 +16,5 @@ export * from './recommend/index.js';
16
16
  export * from './queue/email-queue.js';
17
17
  export * from './queue/remix-cover-queue.js';
18
18
  export * from './preview/phone-preview-dimensions.js';
19
+ export * from './image-studio/index.js';
19
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;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,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":"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"}
@@ -23,7 +23,14 @@ export type PrefabInfo = {
23
23
  /** File path that holds the actual data for read/write */
24
24
  dataFilePath?: string;
25
25
  };
26
- /** JSON Schema node (External Theme) */
26
+ /** 条件操作符 */
27
+ export type ConditionOp = 'eq' | 'neq' | 'in' | 'notIn' | 'gt' | 'gte' | 'lt' | 'lte';
28
+ /** 单条显示条件:field 为相对同级 object 的路径,如 'fontId' 或 'color.mode' */
29
+ export type Condition = {
30
+ field: string;
31
+ op: ConditionOp;
32
+ value: unknown;
33
+ };
27
34
  export type JsonSchemaNode = {
28
35
  /** JSON Schema allows a single type or a union (e.g. `["string","number"]`) */
29
36
  type?: string | string[];
@@ -39,6 +46,34 @@ export type JsonSchemaNode = {
39
46
  xplatform?: {
40
47
  value_type?: string;
41
48
  mime_type?: string;
49
+ fit_mode?: 'contain' | 'cover' | 'fill';
50
+ /** AI 生图后处理扩展协议(唯一真相源) */
51
+ ext?: {
52
+ /** 目标像素尺寸,如 "1920x1080" */
53
+ resolution?: string;
54
+ /** 目标宽高比,如 "16:9" / "1:1" / "9:16" / "4:3" / "3:4" / "2:3" / "3:2" / "21:9" */
55
+ ratio?: '16:9' | '1:1' | '9:16' | '4:3' | '3:4' | '2:3' | '3:2' | '21:9';
56
+ /** 推荐参考图:项目内路径或绝对 URL */
57
+ reference_image: string[];
58
+ /** 默认生成提示词(打开对话框时预填) */
59
+ prompt?: string;
60
+ remove_background?: boolean;
61
+ /** contain 留边填充色:transparent | #RRGGBB | #RRGGBBAA | #RGB */
62
+ padding_color?: string;
63
+ fit_mode?: 'contain' | 'cover' | 'fill';
64
+ };
65
+ /** 显示条件:不满足时隐藏该字段(数组 = AND 组合) */
66
+ showIf?: Condition | Condition[];
67
+ /** 显示条件:满足任意项时显示(OR 组合) */
68
+ showIfAny?: Condition[];
69
+ /** 枚举动态切换:根据某个字段值,显示不同的 enum/enumLabels */
70
+ switchEnum?: {
71
+ field: string;
72
+ cases: Record<string, {
73
+ enum?: unknown[];
74
+ enumLabels?: Record<string, string>;
75
+ }>;
76
+ };
42
77
  };
43
78
  };
44
79
  /** LiteCreator ConfigSchema field definition */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/prefab/types.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAEjE,yEAAyE;AACzE,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC3B,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,kDAAkD;AAClD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAwB;AACxB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/prefab/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"basic-atom-graph.d.ts","sourceRoot":"","sources":["../../../src/recommend/atom-graph/basic-atom-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAY,MAAM,YAAY,CAAC;AA2BhE,eAAO,MAAM,cAAc,EAAE,SA+R5B,CAAC"}
1
+ {"version":3,"file":"basic-atom-graph.d.ts","sourceRoot":"","sources":["../../../src/recommend/atom-graph/basic-atom-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAY,MAAM,YAAY,CAAC;AA2BhE,eAAO,MAAM,cAAc,EAAE,SA2wB5B,CAAC"}