@playcraft/common 0.0.55 → 0.0.57

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 (114) hide show
  1. package/dist/agent/competitor-report.d.ts +165 -0
  2. package/dist/agent/competitor-report.d.ts.map +1 -0
  3. package/dist/agent/competitor-report.js +261 -0
  4. package/dist/agent/competitor-report.js.map +1 -0
  5. package/dist/agent/context-usage.d.ts +8 -1
  6. package/dist/agent/context-usage.d.ts.map +1 -1
  7. package/dist/agent/context-usage.js +6 -1
  8. package/dist/agent/context-usage.js.map +1 -1
  9. package/dist/agent/index.d.ts +6 -0
  10. package/dist/agent/index.d.ts.map +1 -1
  11. package/dist/agent/index.js +6 -0
  12. package/dist/agent/index.js.map +1 -1
  13. package/dist/agent/model-context-window.d.ts.map +1 -1
  14. package/dist/agent/model-context-window.js +40 -4
  15. package/dist/agent/model-context-window.js.map +1 -1
  16. package/dist/agent/openai-responses-api.d.ts +18 -0
  17. package/dist/agent/openai-responses-api.d.ts.map +1 -0
  18. package/dist/agent/openai-responses-api.js +28 -0
  19. package/dist/agent/openai-responses-api.js.map +1 -0
  20. package/dist/agent/reference-images.d.ts +66 -0
  21. package/dist/agent/reference-images.d.ts.map +1 -0
  22. package/dist/agent/reference-images.js +181 -0
  23. package/dist/agent/reference-images.js.map +1 -0
  24. package/dist/agent/runtime-failure.d.ts +31 -0
  25. package/dist/agent/runtime-failure.d.ts.map +1 -0
  26. package/dist/agent/runtime-failure.js +83 -0
  27. package/dist/agent/runtime-failure.js.map +1 -0
  28. package/dist/agent/session-title.d.ts +8 -0
  29. package/dist/agent/session-title.d.ts.map +1 -0
  30. package/dist/agent/session-title.js +16 -0
  31. package/dist/agent/session-title.js.map +1 -0
  32. package/dist/agent/turn.d.ts +8 -0
  33. package/dist/agent/turn.d.ts.map +1 -0
  34. package/dist/agent/turn.js +7 -0
  35. package/dist/agent/turn.js.map +1 -0
  36. package/dist/agent-jobs/identity.d.ts +8 -0
  37. package/dist/agent-jobs/identity.d.ts.map +1 -0
  38. package/dist/agent-jobs/identity.js +32 -0
  39. package/dist/agent-jobs/identity.js.map +1 -0
  40. package/dist/agent-jobs/index.d.ts +34 -0
  41. package/dist/agent-jobs/index.d.ts.map +1 -0
  42. package/dist/agent-jobs/index.js +39 -0
  43. package/dist/agent-jobs/index.js.map +1 -0
  44. package/dist/agent-jobs/legacy-http-gone.d.ts +13 -0
  45. package/dist/agent-jobs/legacy-http-gone.d.ts.map +1 -0
  46. package/dist/agent-jobs/legacy-http-gone.js +15 -0
  47. package/dist/agent-jobs/legacy-http-gone.js.map +1 -0
  48. package/dist/agent-jobs/legacy-run-task.d.ts +12 -0
  49. package/dist/agent-jobs/legacy-run-task.d.ts.map +1 -0
  50. package/dist/agent-jobs/legacy-run-task.js +14 -0
  51. package/dist/agent-jobs/legacy-run-task.js.map +1 -0
  52. package/dist/agent-jobs/portal-sandbox-team-mount.d.ts +8 -0
  53. package/dist/agent-jobs/portal-sandbox-team-mount.d.ts.map +1 -0
  54. package/dist/agent-jobs/portal-sandbox-team-mount.js +10 -0
  55. package/dist/agent-jobs/portal-sandbox-team-mount.js.map +1 -0
  56. package/dist/agent-jobs/runtime-metrics.d.ts +12 -0
  57. package/dist/agent-jobs/runtime-metrics.d.ts.map +1 -0
  58. package/dist/agent-jobs/runtime-metrics.js +19 -0
  59. package/dist/agent-jobs/runtime-metrics.js.map +1 -0
  60. package/dist/agent-jobs/runtime-timing.d.ts +21 -0
  61. package/dist/agent-jobs/runtime-timing.d.ts.map +1 -0
  62. package/dist/agent-jobs/runtime-timing.js +20 -0
  63. package/dist/agent-jobs/runtime-timing.js.map +1 -0
  64. package/dist/agent-jobs/runtime-v2.d.ts +8 -0
  65. package/dist/agent-jobs/runtime-v2.d.ts.map +1 -0
  66. package/dist/agent-jobs/runtime-v2.js +10 -0
  67. package/dist/agent-jobs/runtime-v2.js.map +1 -0
  68. package/dist/agent-messages/db-message-converter.d.ts +61 -0
  69. package/dist/agent-messages/db-message-converter.d.ts.map +1 -0
  70. package/dist/agent-messages/db-message-converter.js +478 -0
  71. package/dist/agent-messages/db-message-converter.js.map +1 -0
  72. package/dist/agent-messages/index.d.ts +4 -0
  73. package/dist/agent-messages/index.d.ts.map +1 -0
  74. package/dist/agent-messages/index.js +4 -0
  75. package/dist/agent-messages/index.js.map +1 -0
  76. package/dist/agent-messages/message-merge.d.ts +31 -0
  77. package/dist/agent-messages/message-merge.d.ts.map +1 -0
  78. package/dist/agent-messages/message-merge.js +221 -0
  79. package/dist/agent-messages/message-merge.js.map +1 -0
  80. package/dist/agent-messages/runtime-user-messages.d.ts +51 -0
  81. package/dist/agent-messages/runtime-user-messages.d.ts.map +1 -0
  82. package/dist/agent-messages/runtime-user-messages.js +296 -0
  83. package/dist/agent-messages/runtime-user-messages.js.map +1 -0
  84. package/dist/index.d.ts +2 -0
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +2 -0
  87. package/dist/index.js.map +1 -1
  88. package/dist/prefab/index.d.ts +1 -0
  89. package/dist/prefab/index.d.ts.map +1 -1
  90. package/dist/prefab/index.js +1 -0
  91. package/dist/prefab/index.js.map +1 -1
  92. package/dist/prefab/schema-condition.d.ts +27 -0
  93. package/dist/prefab/schema-condition.d.ts.map +1 -0
  94. package/dist/prefab/schema-condition.js +107 -0
  95. package/dist/prefab/schema-condition.js.map +1 -0
  96. package/dist/prefab/schema-walker.d.ts +46 -4
  97. package/dist/prefab/schema-walker.d.ts.map +1 -1
  98. package/dist/prefab/schema-walker.js +155 -11
  99. package/dist/prefab/schema-walker.js.map +1 -1
  100. package/dist/prefab/types.d.ts +21 -2
  101. package/dist/prefab/types.d.ts.map +1 -1
  102. package/dist/recommend/atom-graph/basic-atom-graph.d.ts.map +1 -1
  103. package/dist/recommend/atom-graph/basic-atom-graph.js +80 -63
  104. package/dist/recommend/atom-graph/basic-atom-graph.js.map +1 -1
  105. package/dist/recommend/atom-graph/basic-atom-skill-graph.d.ts.map +1 -1
  106. package/dist/recommend/atom-graph/basic-atom-skill-graph.js +8 -0
  107. package/dist/recommend/atom-graph/basic-atom-skill-graph.js.map +1 -1
  108. package/dist/storage/cos.d.ts +4 -4
  109. package/dist/storage/cos.d.ts.map +1 -1
  110. package/dist/storage/cos.js +19 -1
  111. package/dist/storage/cos.js.map +1 -1
  112. package/dist/storage/interface.d.ts +5 -1
  113. package/dist/storage/interface.d.ts.map +1 -1
  114. package/package.json +32 -2
@@ -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;AAC1B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,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,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,27 @@
1
+ import type { Condition, JsonSchemaNode } from './types.js';
2
+ export interface ResolvedConditionField {
3
+ path: string[];
4
+ data: Record<string, unknown>;
5
+ schema: JsonSchemaNode | undefined;
6
+ }
7
+ /**
8
+ * 解析 field 中的 `^` 前缀,返回实际路径、对应数据、以及沿 path 在 schema 树中
9
+ * 走到底后得到的字段 schema。
10
+ *
11
+ * field 语法:
12
+ * 'enable' → 同级兄弟字段,从 parentData 取值
13
+ * '^.color' → 上溯一级,从 parentDataChain[0] 取值
14
+ * '^^.theme' → 上溯两级,从 parentDataChain[1] 取值
15
+ *
16
+ * @param rawField 原始 field 字符串(可能含 `^` 前缀)
17
+ * @param parentData 直接父级数据
18
+ * @param parentSchema 直接父级 schema
19
+ * @param parentDataChain 父级数据栈 [直接父级, 上溯一级, 上溯两级, ...]
20
+ * @param parentSchemaChain 父级 schema 栈(与 dataChain 一一对应)
21
+ */
22
+ export declare function resolveConditionField(rawField: string, parentData: Record<string, unknown>, parentSchema: JsonSchemaNode | undefined, parentDataChain?: Record<string, unknown>[], parentSchemaChain?: JsonSchemaNode[]): ResolvedConditionField;
23
+ /** 计算单条条件是否满足。 */
24
+ export declare function evaluateCondition(cond: Condition, parentData: Record<string, unknown>, parentSchema: JsonSchemaNode | undefined, parentDataChain?: Record<string, unknown>[], parentSchemaChain?: JsonSchemaNode[]): boolean;
25
+ /** 判断字段是否可见(showIf / showIfAny) */
26
+ export declare function isFieldVisible(schema: JsonSchemaNode, parentData: Record<string, unknown>, parentSchema: JsonSchemaNode | undefined, parentDataChain?: Record<string, unknown>[], parentSchemaChain?: JsonSchemaNode[]): boolean;
27
+ //# sourceMappingURL=schema-condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-condition.d.ts","sourceRoot":"","sources":["../../src/prefab/schema-condition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAO5D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;CACpC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,YAAY,EAAE,cAAc,GAAG,SAAS,EACxC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,iBAAiB,CAAC,EAAE,cAAc,EAAE,GACnC,sBAAsB,CA0CxB;AAED,kBAAkB;AAClB,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,YAAY,EAAE,cAAc,GAAG,SAAS,EACxC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,iBAAiB,CAAC,EAAE,cAAc,EAAE,GACnC,OAAO,CAkCT;AAED,mCAAmC;AACnC,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,YAAY,EAAE,cAAc,GAAG,SAAS,EACxC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,iBAAiB,CAAC,EAAE,cAAc,EAAE,GACnC,OAAO,CAgCT"}
@@ -0,0 +1,107 @@
1
+ import { getByPath } from './schema-walker.js';
2
+ /**
3
+ * 解析 field 中的 `^` 前缀,返回实际路径、对应数据、以及沿 path 在 schema 树中
4
+ * 走到底后得到的字段 schema。
5
+ *
6
+ * field 语法:
7
+ * 'enable' → 同级兄弟字段,从 parentData 取值
8
+ * '^.color' → 上溯一级,从 parentDataChain[0] 取值
9
+ * '^^.theme' → 上溯两级,从 parentDataChain[1] 取值
10
+ *
11
+ * @param rawField 原始 field 字符串(可能含 `^` 前缀)
12
+ * @param parentData 直接父级数据
13
+ * @param parentSchema 直接父级 schema
14
+ * @param parentDataChain 父级数据栈 [直接父级, 上溯一级, 上溯两级, ...]
15
+ * @param parentSchemaChain 父级 schema 栈(与 dataChain 一一对应)
16
+ */
17
+ export function resolveConditionField(rawField, parentData, parentSchema, parentDataChain, parentSchemaChain) {
18
+ // 计算上溯层数:数 `^` 前缀
19
+ let upLevel = 0;
20
+ let field = rawField;
21
+ while (field.startsWith('^')) {
22
+ upLevel++;
23
+ field = field.slice(1);
24
+ }
25
+ // `^.` 或 `^` 紧接字段名 → 跳过开头的 `.`
26
+ if (field.startsWith('.'))
27
+ field = field.slice(1);
28
+ const segs = field.split('.');
29
+ const data = upLevel === 0
30
+ ? parentData
31
+ : (parentDataChain?.[upLevel - 1] ?? parentData);
32
+ let schema = upLevel === 0
33
+ ? parentSchema
34
+ : (parentSchemaChain?.[upLevel - 1] ?? parentSchema);
35
+ // 沿 path 段在 schema 树中走,逐层定位到字段对应 schema
36
+ const walkSchema = (root, path) => {
37
+ let cur = root;
38
+ for (const seg of path) {
39
+ if (!cur)
40
+ return undefined;
41
+ const props = cur.properties;
42
+ if (props && typeof props === 'object' && !Array.isArray(props) && seg in props) {
43
+ cur = props[seg];
44
+ }
45
+ else {
46
+ return undefined;
47
+ }
48
+ }
49
+ return cur;
50
+ };
51
+ schema = walkSchema(schema, segs);
52
+ return { path: segs, data, schema };
53
+ }
54
+ /** 计算单条条件是否满足。 */
55
+ export function evaluateCondition(cond, parentData, parentSchema, parentDataChain, parentSchemaChain) {
56
+ const { path, data, schema } = resolveConditionField(cond.field, parentData, parentSchema, parentDataChain, parentSchemaChain);
57
+ // 数据优先:themeData 里实际写入的值
58
+ let v = getByPath(data, path);
59
+ // 数据缺失时回退到 schema.default,避免默认值未落盘时错误隐藏字段
60
+ if (v === undefined) {
61
+ v = schema?.default;
62
+ }
63
+ switch (cond.op) {
64
+ case 'eq':
65
+ return v === cond.value;
66
+ case 'neq':
67
+ return v !== cond.value;
68
+ case 'in':
69
+ return Array.isArray(cond.value) && cond.value.includes(v);
70
+ case 'notIn':
71
+ return !(Array.isArray(cond.value) && cond.value.includes(v));
72
+ case 'gt':
73
+ return Number(v) > Number(cond.value);
74
+ case 'gte':
75
+ return Number(v) >= Number(cond.value);
76
+ case 'lt':
77
+ return Number(v) < Number(cond.value);
78
+ case 'lte':
79
+ return Number(v) <= Number(cond.value);
80
+ default:
81
+ return true;
82
+ }
83
+ }
84
+ /** 判断字段是否可见(showIf / showIfAny) */
85
+ export function isFieldVisible(schema, parentData, parentSchema, parentDataChain, parentSchemaChain) {
86
+ const xp = schema.xplatform;
87
+ if (!xp || typeof xp !== 'object')
88
+ return true;
89
+ const showIf = xp.showIf;
90
+ const showIfAny = xp.showIfAny;
91
+ // showIf 缺失 = 无条件显示
92
+ if (!showIf && !showIfAny)
93
+ return true;
94
+ // showIf:单个条件或 AND 组合
95
+ if (showIf) {
96
+ const conds = Array.isArray(showIf) ? showIf : [showIf];
97
+ if (!conds.every((c) => evaluateCondition(c, parentData, parentSchema, parentDataChain, parentSchemaChain)))
98
+ return false;
99
+ }
100
+ // showIfAny:OR 组合(至少有一个满足)
101
+ if (showIfAny && showIfAny.length > 0) {
102
+ if (!showIfAny.some((c) => evaluateCondition(c, parentData, parentSchema, parentDataChain, parentSchemaChain)))
103
+ return false;
104
+ }
105
+ return true;
106
+ }
107
+ //# sourceMappingURL=schema-condition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-condition.js","sourceRoot":"","sources":["../../src/prefab/schema-condition.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@
13
13
  */
14
14
  import type { JsonSchemaNode } from './types.js';
15
15
  /** 美术资源类型分类 */
16
- export type MediaKind = 'image' | 'audio' | 'video' | 'text' | 'other';
16
+ export type MediaKind = 'image' | 'audio' | 'video' | 'text' | 'sprite' | 'other';
17
17
  /** 一个被识别为"美术资源"的 schema 字段 */
18
18
  export interface AssetFieldInfo {
19
19
  /** 字段在 themeData 中的访问路径(不含根对象本身) */
@@ -39,13 +39,19 @@ export interface AssetItem {
39
39
  schema?: JsonSchemaNode;
40
40
  /** 是否未配置(value 为空,仅占位显示) */
41
41
  empty?: boolean;
42
+ /** 序列帧:帧图片路径数组(mediaKind === 'sprite' 时有效) */
43
+ frames?: string[];
42
44
  }
43
45
  /**
44
46
  * 按路径读取嵌套对象的值;任一环节缺失则返回 undefined。
45
47
  *
48
+ * 支持路径中间穿过数组(如 `['levels', '0', 'title']` 对应 `levels[0].title`),
49
+ * 数字字符串下标会走 JS 的字符串索引访问数组元素。
50
+ *
46
51
  * @example
47
52
  * getByPath({ a: { b: 1 } }, ['a', 'b']) // → 1
48
53
  * getByPath({}, ['a', 'b']) // → undefined
54
+ * getByPath({ a: [{ b: 1 }] }, ['a', '0', 'b']) // → 1
49
55
  */
50
56
  export declare function getByPath(obj: unknown, path: ReadonlyArray<string>): unknown;
51
57
  /**
@@ -65,11 +71,14 @@ export declare function isPathField(schema: JsonSchemaNode | null | undefined, p
65
71
  /**
66
72
  * 按路径不可变地设置嵌套值,返回新对象。空路径会用 value 替换根。
67
73
  *
68
- * - 路径上不存在或非对象的中间节点会被替换为新对象
74
+ * - 路径上不存在或非容器(非对象/非数组)的中间节点会被替换为新对象
75
+ * - 路径上已是数组的中间节点会被浅拷贝保留(而非被替换为 `{}`),
76
+ * 以支持形如 `['levels', '0', 'title']` 的数组元素写入而不破坏原数组
69
77
  * - 不修改入参 obj
70
78
  *
71
79
  * @example
72
80
  * setByPath({ a: 1 }, ['b', 'c'], 2) // → { a: 1, b: { c: 2 } }
81
+ * setByPath({ a: [{ b: 1 }] }, ['a', '0', 'b'], 9) // → { a: [{ b: 9 }] }
73
82
  */
74
83
  export declare function setByPath<T>(obj: T, path: ReadonlyArray<string>, value: unknown): T;
75
84
  /**
@@ -99,15 +108,47 @@ export declare function walkSchemaFields(root: JsonSchemaNode | undefined): Arra
99
108
  path: string[];
100
109
  schema: JsonSchemaNode;
101
110
  }>;
111
+ /**
112
+ * 深度优先遍历 schema,产出每个叶子字段的 path + schema;与 `walkSchemaFields` 的区别:
113
+ * 结合 themeData 实际值,对 `type: 'array'` 且元素为 object 的字段(如标记了
114
+ * `xplatform.ext.subMenu` 的"关卡/子项"列表)按**实际数组长度**展开为具体索引路径
115
+ * (如 `['levels', '0', 'frames']`),使产出的 path 可直接配合 `getByPath`/`setByPath`
116
+ * 读写真实数据,从而让数组子项内部嵌套的资源字段(图片/文本/序列帧等)也能被收集到。
117
+ *
118
+ * 规则:
119
+ * - array 的元素若非 object(如 `xplatform.ext.frames === true` 的帧图片路径数组),
120
+ * 该 array 本身作为叶子产出,不展开(与 `walkSchemaFields` 行为一致)
121
+ * - array 的元素若为 object:按 `data` 中实际数组长度展开;`data` 缺失该字段时
122
+ * 回退到 `schema.default`(同为数组)的长度;两者都没有则不产出该数组的任何子项
123
+ */
124
+ export declare function walkSchemaFieldsWithData(root: JsonSchemaNode | undefined, data: unknown): Array<{
125
+ path: string[];
126
+ schema: JsonSchemaNode;
127
+ }>;
102
128
  /**
103
129
  * 抽取所有 `xplatform.value_type === 'path'` 的字段。
130
+ *
131
+ * @param data 可选;传入后按实际数据展开数组子项(如 `xplatform.ext.subMenu` 关卡列表),
132
+ * 使数组元素内嵌的资源字段也能被收集,产出的 path 带真实数组下标
104
133
  */
105
- export declare function extractAssetFields(root: JsonSchemaNode | undefined): AssetFieldInfo[];
134
+ export declare function extractAssetFields(root: JsonSchemaNode | undefined, data?: unknown): AssetFieldInfo[];
106
135
  /**
107
136
  * 抽取所有文本类型字段(string / i18n)。
108
137
  * 排除:path 字段、颜色字段、非 string 类型。
138
+ *
139
+ * @param data 可选;传入后按实际数据展开数组子项(如 `xplatform.ext.subMenu` 关卡列表)
140
+ */
141
+ export declare function extractTextFields(root: JsonSchemaNode | undefined, data?: unknown): AssetFieldInfo[];
142
+ /**
143
+ * 抽取所有序列帧字段(`xplatform.ext.frames === true` 的 array 字段)。
144
+ *
145
+ * 序列帧字段本身是 array(元素为图片路径字符串),不同于单个 path 字段,
146
+ * 因此单独识别,归类为 mediaKind='sprite'。
147
+ *
148
+ * @param data 可选;传入后按实际数据展开数组子项(如 `xplatform.ext.subMenu` 关卡列表),
149
+ * 使嵌套在关卡等数组子项内部的序列帧字段也能被收集
109
150
  */
110
- export declare function extractTextFields(root: JsonSchemaNode | undefined): AssetFieldInfo[];
151
+ export declare function extractSpriteFields(root: JsonSchemaNode | undefined, data?: unknown): AssetFieldInfo[];
111
152
  /**
112
153
  * 合并 themeData.assets 块 + schema 内联字段,按路径值去重。
113
154
  *
@@ -117,6 +158,7 @@ export declare function extractTextFields(root: JsonSchemaNode | undefined): Ass
117
158
  * Step C: 对每个字段,从 themeData 按 path 取实际值
118
159
  * Step D: 与 A 按 value 去重;A 中已有的不被 inline 覆盖
119
160
  * Step E: mime_type 分组(已在 mediaKind 里完成)
161
+ * @param themeData 解析后的 theme.data.json5 内容
120
162
  *
121
163
  * @param schema 解析后的 theme.schema.json5 根节点
122
164
  * @param themeData 解析后的 theme.data.json5 内容
@@ -1 +1 @@
1
- {"version":3,"file":"schema-walker.d.ts","sourceRoot":"","sources":["../../src/prefab/schema-walker.ts"],"names":[],"mappings":"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"}
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,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElF,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;IAChB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAiDD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAO5E;AAgBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACvC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAC1B,cAAc,GAAG,SAAS,CAqB5B;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAC1B,OAAO,CAET;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,KAAK,EAAE,OAAO,GACb,CAAC,CAiBH;AAID;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBzB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB;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;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,cAAc,GAAG,SAAS,EAChC,IAAI,EAAE,OAAO,GACZ,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC,CAyDnD;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,cAAc,GAAG,SAAS,EAChC,IAAI,CAAC,EAAE,OAAO,GACb,cAAc,EAAE,CAclB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,cAAc,GAAG,SAAS,EAChC,IAAI,CAAC,EAAE,OAAO,GACb,cAAc,EAAE,CAoBlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,cAAc,GAAG,SAAS,EAChC,IAAI,CAAC,EAAE,OAAO,GACb,cAAc,EAAE,CAelB;AAED;;;;;;;;;;;;;GAaG;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,CAkJb;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"}
@@ -17,6 +17,10 @@ const I18N_RUNTIME_PREFIX = 'i18n.runtime.';
17
17
  function isPlainObject(v) {
18
18
  return typeof v === 'object' && v !== null && !Array.isArray(v);
19
19
  }
20
+ /** 判断是否可用字符串 key / 数字下标继续深入取值(对象或数组皆可) */
21
+ function isIndexable(v) {
22
+ return typeof v === 'object' && v !== null;
23
+ }
20
24
  function getXplatform(schema) {
21
25
  return schema.xplatform;
22
26
  }
@@ -57,14 +61,18 @@ function isColorField(name, schema) {
57
61
  /**
58
62
  * 按路径读取嵌套对象的值;任一环节缺失则返回 undefined。
59
63
  *
64
+ * 支持路径中间穿过数组(如 `['levels', '0', 'title']` 对应 `levels[0].title`),
65
+ * 数字字符串下标会走 JS 的字符串索引访问数组元素。
66
+ *
60
67
  * @example
61
68
  * getByPath({ a: { b: 1 } }, ['a', 'b']) // → 1
62
69
  * getByPath({}, ['a', 'b']) // → undefined
70
+ * getByPath({ a: [{ b: 1 }] }, ['a', '0', 'b']) // → 1
63
71
  */
64
72
  export function getByPath(obj, path) {
65
73
  let cur = obj;
66
74
  for (const seg of path) {
67
- if (!isPlainObject(cur))
75
+ if (!isIndexable(cur))
68
76
  return undefined;
69
77
  cur = cur[seg];
70
78
  }
@@ -118,21 +126,28 @@ export function isPathField(schema, path) {
118
126
  /**
119
127
  * 按路径不可变地设置嵌套值,返回新对象。空路径会用 value 替换根。
120
128
  *
121
- * - 路径上不存在或非对象的中间节点会被替换为新对象
129
+ * - 路径上不存在或非容器(非对象/非数组)的中间节点会被替换为新对象
130
+ * - 路径上已是数组的中间节点会被浅拷贝保留(而非被替换为 `{}`),
131
+ * 以支持形如 `['levels', '0', 'title']` 的数组元素写入而不破坏原数组
122
132
  * - 不修改入参 obj
123
133
  *
124
134
  * @example
125
135
  * setByPath({ a: 1 }, ['b', 'c'], 2) // → { a: 1, b: { c: 2 } }
136
+ * setByPath({ a: [{ b: 1 }] }, ['a', '0', 'b'], 9) // → { a: [{ b: 9 }] }
126
137
  */
127
138
  export function setByPath(obj, path, value) {
128
139
  if (path.length === 0)
129
140
  return value;
130
- const root = isPlainObject(obj) ? { ...obj } : {};
141
+ const cloneContainer = (v) => Array.isArray(v)
142
+ ? [...v]
143
+ : isPlainObject(v)
144
+ ? { ...v }
145
+ : {};
146
+ const root = cloneContainer(obj);
131
147
  let cur = root;
132
148
  for (let i = 0; i < path.length - 1; i++) {
133
149
  const seg = path[i];
134
- const next = cur[seg];
135
- cur[seg] = isPlainObject(next) ? { ...next } : {};
150
+ cur[seg] = cloneContainer(cur[seg]);
136
151
  cur = cur[seg];
137
152
  }
138
153
  cur[path[path.length - 1]] = value;
@@ -222,12 +237,84 @@ export function walkSchemaFields(root) {
222
237
  }
223
238
  return out;
224
239
  }
240
+ /**
241
+ * 深度优先遍历 schema,产出每个叶子字段的 path + schema;与 `walkSchemaFields` 的区别:
242
+ * 结合 themeData 实际值,对 `type: 'array'` 且元素为 object 的字段(如标记了
243
+ * `xplatform.ext.subMenu` 的"关卡/子项"列表)按**实际数组长度**展开为具体索引路径
244
+ * (如 `['levels', '0', 'frames']`),使产出的 path 可直接配合 `getByPath`/`setByPath`
245
+ * 读写真实数据,从而让数组子项内部嵌套的资源字段(图片/文本/序列帧等)也能被收集到。
246
+ *
247
+ * 规则:
248
+ * - array 的元素若非 object(如 `xplatform.ext.frames === true` 的帧图片路径数组),
249
+ * 该 array 本身作为叶子产出,不展开(与 `walkSchemaFields` 行为一致)
250
+ * - array 的元素若为 object:按 `data` 中实际数组长度展开;`data` 缺失该字段时
251
+ * 回退到 `schema.default`(同为数组)的长度;两者都没有则不产出该数组的任何子项
252
+ */
253
+ export function walkSchemaFieldsWithData(root, data) {
254
+ const out = [];
255
+ if (!root)
256
+ return out;
257
+ const stack = [
258
+ { node: root, path: [], data },
259
+ ];
260
+ while (stack.length > 0) {
261
+ const { node, path, data: curData } = stack.pop();
262
+ if (!node || typeof node !== 'object')
263
+ continue;
264
+ const t = Array.isArray(node.type) ? node.type[0] : node.type;
265
+ const props = node.properties;
266
+ const isObjectWithProps = t === 'object' && isPlainObject(props);
267
+ const itemsNode = node.items;
268
+ const itemsType = itemsNode
269
+ ? Array.isArray(itemsNode.type)
270
+ ? itemsNode.type[0]
271
+ : itemsNode.type
272
+ : undefined;
273
+ const isArrayOfObjects = t === 'array' &&
274
+ node.xplatform?.ext?.frames !== true &&
275
+ itemsType === 'object' &&
276
+ isPlainObject(itemsNode?.properties);
277
+ if (isObjectWithProps) {
278
+ // 进入子节点;倒序压栈以保证遍历输出顺序与 properties 顺序一致
279
+ const entries = Object.entries(props);
280
+ const childContainer = isIndexable(curData) ? curData : undefined;
281
+ for (let i = entries.length - 1; i >= 0; i--) {
282
+ const [k, sub] = entries[i];
283
+ stack.push({
284
+ node: sub,
285
+ path: [...path, k],
286
+ data: childContainer ? childContainer[k] : undefined,
287
+ });
288
+ }
289
+ }
290
+ else if (isArrayOfObjects) {
291
+ const defaultArr = Array.isArray(node.default) ? node.default : undefined;
292
+ const itemDataArr = Array.isArray(curData) ? curData : defaultArr;
293
+ const length = itemDataArr?.length ?? 0;
294
+ // 倒序压栈以保证遍历输出顺序与实际数组下标顺序一致
295
+ for (let idx = length - 1; idx >= 0; idx--) {
296
+ stack.push({
297
+ node: itemsNode,
298
+ path: [...path, String(idx)],
299
+ data: itemDataArr ? itemDataArr[idx] : undefined,
300
+ });
301
+ }
302
+ }
303
+ else if (path.length > 0) {
304
+ out.push({ path, schema: node });
305
+ }
306
+ }
307
+ return out;
308
+ }
225
309
  // ─── 美术资源字段抽取 ─────────────────────────────────────────────────────────
226
310
  /**
227
311
  * 抽取所有 `xplatform.value_type === 'path'` 的字段。
312
+ *
313
+ * @param data 可选;传入后按实际数据展开数组子项(如 `xplatform.ext.subMenu` 关卡列表),
314
+ * 使数组元素内嵌的资源字段也能被收集,产出的 path 带真实数组下标
228
315
  */
229
- export function extractAssetFields(root) {
230
- const fields = walkSchemaFields(root);
316
+ export function extractAssetFields(root, data) {
317
+ const fields = data !== undefined ? walkSchemaFieldsWithData(root, data) : walkSchemaFields(root);
231
318
  const out = [];
232
319
  for (const { path, schema } of fields) {
233
320
  const xp = getXplatform(schema);
@@ -245,9 +332,11 @@ export function extractAssetFields(root) {
245
332
  /**
246
333
  * 抽取所有文本类型字段(string / i18n)。
247
334
  * 排除:path 字段、颜色字段、非 string 类型。
335
+ *
336
+ * @param data 可选;传入后按实际数据展开数组子项(如 `xplatform.ext.subMenu` 关卡列表)
248
337
  */
249
- export function extractTextFields(root) {
250
- const fields = walkSchemaFields(root);
338
+ export function extractTextFields(root, data) {
339
+ const fields = data !== undefined ? walkSchemaFieldsWithData(root, data) : walkSchemaFields(root);
251
340
  const out = [];
252
341
  for (const { path, schema } of fields) {
253
342
  const t = Array.isArray(schema.type) ? schema.type[0] : schema.type;
@@ -271,6 +360,33 @@ export function extractTextFields(root) {
271
360
  }
272
361
  return out;
273
362
  }
363
+ /**
364
+ * 抽取所有序列帧字段(`xplatform.ext.frames === true` 的 array 字段)。
365
+ *
366
+ * 序列帧字段本身是 array(元素为图片路径字符串),不同于单个 path 字段,
367
+ * 因此单独识别,归类为 mediaKind='sprite'。
368
+ *
369
+ * @param data 可选;传入后按实际数据展开数组子项(如 `xplatform.ext.subMenu` 关卡列表),
370
+ * 使嵌套在关卡等数组子项内部的序列帧字段也能被收集
371
+ */
372
+ export function extractSpriteFields(root, data) {
373
+ const fields = data !== undefined ? walkSchemaFieldsWithData(root, data) : walkSchemaFields(root);
374
+ const out = [];
375
+ for (const { path, schema } of fields) {
376
+ const t = Array.isArray(schema.type) ? schema.type[0] : schema.type;
377
+ if (t !== 'array')
378
+ continue;
379
+ if (schema.xplatform?.ext?.frames !== true)
380
+ continue;
381
+ out.push({
382
+ path,
383
+ schema,
384
+ mimeType: schema.items?.xplatform?.mime_type,
385
+ mediaKind: 'sprite',
386
+ });
387
+ }
388
+ return out;
389
+ }
274
390
  /**
275
391
  * 合并 themeData.assets 块 + schema 内联字段,按路径值去重。
276
392
  *
@@ -280,6 +396,7 @@ export function extractTextFields(root) {
280
396
  * Step C: 对每个字段,从 themeData 按 path 取实际值
281
397
  * Step D: 与 A 按 value 去重;A 中已有的不被 inline 覆盖
282
398
  * Step E: mime_type 分组(已在 mediaKind 里完成)
399
+ * @param themeData 解析后的 theme.data.json5 内容
283
400
  *
284
401
  * @param schema 解析后的 theme.schema.json5 根节点
285
402
  * @param themeData 解析后的 theme.data.json5 内容
@@ -348,7 +465,7 @@ export function collectThemeAssets(schema, themeData) {
348
465
  // 从 schema 中扫描所有 xplatform.value_type === 'path' 的字段,
349
466
  // 然后从 themeData 中取对应路径的值;取不到时 fallback 到 schema.default
350
467
  // 空值(未配置)的字段也收集,标记 empty=true,供面板显示占位项
351
- const fields = extractAssetFields(schema);
468
+ const fields = extractAssetFields(schema, data);
352
469
  for (const f of fields) {
353
470
  const raw = getThemeValueBySchemaPath(data, f.path);
354
471
  const value = typeof raw === 'string' && raw
@@ -385,7 +502,7 @@ export function collectThemeAssets(schema, themeData) {
385
502
  }
386
503
  // ─── Step F: 文本字段(string / i18n),空值也收以显示占位 ──────────
387
504
  // schema.default 作为 fallback:themeData 未配置时使用 schema 默认值
388
- const textFields = extractTextFields(schema);
505
+ const textFields = extractTextFields(schema, data);
389
506
  for (const f of textFields) {
390
507
  const raw = getThemeValueBySchemaPath(data, f.path);
391
508
  const fallback = typeof f.schema.default === 'string' && f.schema.default ? f.schema.default : null;
@@ -403,6 +520,33 @@ export function collectThemeAssets(schema, themeData) {
403
520
  empty: !value,
404
521
  });
405
522
  }
523
+ // ─── Step G: 序列帧字段(ext.frames === true 的 array) ─────────────
524
+ // 一个序列帧字段 = 一组帧图片,作为独立大类(mediaKind='sprite')展示;
525
+ // 每个字段一条目,value 取第一帧(缩略图),frames 保存完整帧数组供预览动画。
526
+ const spriteFields = extractSpriteFields(schema, data);
527
+ for (const f of spriteFields) {
528
+ const raw = getThemeValueBySchemaPath(data, f.path);
529
+ const rawFrames = Array.isArray(raw)
530
+ ? raw.filter((x) => typeof x === 'string' && x !== '')
531
+ : [];
532
+ const fallbackFrames = Array.isArray(f.schema.default)
533
+ ? f.schema.default.filter((x) => typeof x === 'string' && x !== '')
534
+ : [];
535
+ const frames = rawFrames.length > 0 ? rawFrames : fallbackFrames;
536
+ const pathKey = `__sprite__${f.path.join('.')}`;
537
+ if (seen.has(pathKey))
538
+ continue;
539
+ seen.add(pathKey);
540
+ out.push({
541
+ value: frames[0] ?? '',
542
+ mediaKind: 'sprite',
543
+ source: 'inline',
544
+ fieldPath: f.path,
545
+ schema: f.schema,
546
+ frames,
547
+ empty: frames.length === 0,
548
+ });
549
+ }
406
550
  return out;
407
551
  }
408
552
  /**
@@ -1 +1 @@
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;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAuC,EACvC,IAA2B;IAE3B,MAAM,IAAI,GAAG,CACX,IAAgC,EAChC,IAA2B,EACC,EAAE;QAC9B,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC7D,GAAG,GAAI,GAAG,CAAC,UAA6C,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,IAAI,SAAS,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE7D,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC;IAChE,MAAM,cAAc,GAAG,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACtE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CACzB,MAAyC,EACzC,IAA2B;IAE3B,OAAO,YAAY,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,KAAK,MAAM,CAAC;AACtF,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,2EAA2E;AAE3E;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAyC;IAEzC,IAAI,CAAC,MAAM,EAAE,UAAU;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAsB,CAAC;QACxC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC7D,MAAM,MAAM,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAA6B,EAC7B,QAAiC;IAEjC,MAAM,MAAM,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IACpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,SAAS,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YAClF,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,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"}
1
+ {"version":3,"file":"schema-walker.js","sourceRoot":"","sources":["../../src/prefab/schema-walker.ts"],"names":[],"mappings":"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"}