@jigx/sdk-tools 1.2.0-next.2 → 1.2.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/README.md +35 -44
  2. package/dist/cli.js +83 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/migrator/converters/app-index.d.ts +53 -0
  9. package/dist/migrator/converters/app-index.d.ts.map +1 -0
  10. package/dist/migrator/converters/app-index.js +206 -0
  11. package/dist/migrator/converters/app-index.js.map +1 -0
  12. package/dist/migrator/converters/assets.d.ts +7 -0
  13. package/dist/migrator/converters/assets.d.ts.map +1 -0
  14. package/dist/migrator/converters/assets.js +58 -0
  15. package/dist/migrator/converters/assets.js.map +1 -0
  16. package/dist/migrator/converters/components.d.ts +4 -0
  17. package/dist/migrator/converters/components.d.ts.map +1 -0
  18. package/dist/migrator/converters/components.js +7 -0
  19. package/dist/migrator/converters/components.js.map +1 -0
  20. package/dist/migrator/converters/databases.d.ts +9 -0
  21. package/dist/migrator/converters/databases.d.ts.map +1 -0
  22. package/dist/migrator/converters/databases.js +45 -0
  23. package/dist/migrator/converters/databases.js.map +1 -0
  24. package/dist/migrator/converters/datasources.d.ts +46 -0
  25. package/dist/migrator/converters/datasources.d.ts.map +1 -0
  26. package/dist/migrator/converters/datasources.js +445 -0
  27. package/dist/migrator/converters/datasources.js.map +1 -0
  28. package/dist/migrator/converters/functions.d.ts +13 -0
  29. package/dist/migrator/converters/functions.d.ts.map +1 -0
  30. package/dist/migrator/converters/functions.js +444 -0
  31. package/dist/migrator/converters/functions.js.map +1 -0
  32. package/dist/migrator/converters/index.d.ts +11 -0
  33. package/dist/migrator/converters/index.d.ts.map +1 -0
  34. package/dist/migrator/converters/index.js +9 -0
  35. package/dist/migrator/converters/index.js.map +1 -0
  36. package/dist/migrator/converters/scripts.d.ts +10 -0
  37. package/dist/migrator/converters/scripts.d.ts.map +1 -0
  38. package/dist/migrator/converters/scripts.js +28 -0
  39. package/dist/migrator/converters/scripts.js.map +1 -0
  40. package/dist/migrator/converters/translations.d.ts +5 -0
  41. package/dist/migrator/converters/translations.d.ts.map +1 -0
  42. package/dist/migrator/converters/translations.js +25 -0
  43. package/dist/migrator/converters/translations.js.map +1 -0
  44. package/dist/migrator/converters/types.d.ts +35 -0
  45. package/dist/migrator/converters/types.d.ts.map +1 -0
  46. package/dist/migrator/converters/types.js +2 -0
  47. package/dist/migrator/converters/types.js.map +1 -0
  48. package/dist/migrator/errors.d.ts +5 -0
  49. package/dist/migrator/errors.d.ts.map +1 -0
  50. package/dist/migrator/errors.js +8 -0
  51. package/dist/migrator/errors.js.map +1 -0
  52. package/dist/migrator/index.d.ts +6 -0
  53. package/dist/migrator/index.d.ts.map +1 -0
  54. package/dist/migrator/index.js +4 -0
  55. package/dist/migrator/index.js.map +1 -0
  56. package/dist/migrator/migrate.d.ts +75 -0
  57. package/dist/migrator/migrate.d.ts.map +1 -0
  58. package/dist/migrator/migrate.js +439 -0
  59. package/dist/migrator/migrate.js.map +1 -0
  60. package/dist/migrator/module-writer.d.ts +26 -0
  61. package/dist/migrator/module-writer.d.ts.map +1 -0
  62. package/dist/migrator/module-writer.js +26 -0
  63. package/dist/migrator/module-writer.js.map +1 -0
  64. package/dist/migrator/nodes/action-definition.d.ts +11 -0
  65. package/dist/migrator/nodes/action-definition.d.ts.map +1 -0
  66. package/dist/migrator/nodes/action-definition.js +75 -0
  67. package/dist/migrator/nodes/action-definition.js.map +1 -0
  68. package/dist/migrator/nodes/app-events.d.ts +29 -0
  69. package/dist/migrator/nodes/app-events.d.ts.map +1 -0
  70. package/dist/migrator/nodes/app-events.js +40 -0
  71. package/dist/migrator/nodes/app-events.js.map +1 -0
  72. package/dist/migrator/nodes/attach.d.ts +61 -0
  73. package/dist/migrator/nodes/attach.d.ts.map +1 -0
  74. package/dist/migrator/nodes/attach.js +174 -0
  75. package/dist/migrator/nodes/attach.js.map +1 -0
  76. package/dist/migrator/nodes/builder-access.d.ts +16 -0
  77. package/dist/migrator/nodes/builder-access.d.ts.map +1 -0
  78. package/dist/migrator/nodes/builder-access.js +81 -0
  79. package/dist/migrator/nodes/builder-access.js.map +1 -0
  80. package/dist/migrator/nodes/codegen.d.ts +33 -0
  81. package/dist/migrator/nodes/codegen.d.ts.map +1 -0
  82. package/dist/migrator/nodes/codegen.js +77 -0
  83. package/dist/migrator/nodes/codegen.js.map +1 -0
  84. package/dist/migrator/nodes/index.d.ts +6 -0
  85. package/dist/migrator/nodes/index.d.ts.map +1 -0
  86. package/dist/migrator/nodes/index.js +6 -0
  87. package/dist/migrator/nodes/index.js.map +1 -0
  88. package/dist/migrator/nodes/node-shape.d.ts +39 -0
  89. package/dist/migrator/nodes/node-shape.d.ts.map +1 -0
  90. package/dist/migrator/nodes/node-shape.js +65 -0
  91. package/dist/migrator/nodes/node-shape.js.map +1 -0
  92. package/dist/migrator/nodes/probe.d.ts +66 -0
  93. package/dist/migrator/nodes/probe.d.ts.map +1 -0
  94. package/dist/migrator/nodes/probe.js +46 -0
  95. package/dist/migrator/nodes/probe.js.map +1 -0
  96. package/dist/migrator/nodes/rules/action-list.d.ts +4 -0
  97. package/dist/migrator/nodes/rules/action-list.d.ts.map +1 -0
  98. package/dist/migrator/nodes/rules/action-list.js +14 -0
  99. package/dist/migrator/nodes/rules/action-list.js.map +1 -0
  100. package/dist/migrator/nodes/rules/action-slots.d.ts +13 -0
  101. package/dist/migrator/nodes/rules/action-slots.d.ts.map +1 -0
  102. package/dist/migrator/nodes/rules/action-slots.js +34 -0
  103. package/dist/migrator/nodes/rules/action-slots.js.map +1 -0
  104. package/dist/migrator/nodes/rules/custom-component.d.ts +7 -0
  105. package/dist/migrator/nodes/rules/custom-component.d.ts.map +1 -0
  106. package/dist/migrator/nodes/rules/custom-component.js +8 -0
  107. package/dist/migrator/nodes/rules/custom-component.js.map +1 -0
  108. package/dist/migrator/nodes/rules/dropdown.d.ts +4 -0
  109. package/dist/migrator/nodes/rules/dropdown.d.ts.map +1 -0
  110. package/dist/migrator/nodes/rules/dropdown.js +3 -0
  111. package/dist/migrator/nodes/rules/dropdown.js.map +1 -0
  112. package/dist/migrator/nodes/rules/execute-entity.d.ts +7 -0
  113. package/dist/migrator/nodes/rules/execute-entity.d.ts.map +1 -0
  114. package/dist/migrator/nodes/rules/execute-entity.js +40 -0
  115. package/dist/migrator/nodes/rules/execute-entity.js.map +1 -0
  116. package/dist/migrator/nodes/rules/field-row.d.ts +4 -0
  117. package/dist/migrator/nodes/rules/field-row.d.ts.map +1 -0
  118. package/dist/migrator/nodes/rules/field-row.js +3 -0
  119. package/dist/migrator/nodes/rules/field-row.js.map +1 -0
  120. package/dist/migrator/nodes/rules/index.d.ts +16 -0
  121. package/dist/migrator/nodes/rules/index.d.ts.map +1 -0
  122. package/dist/migrator/nodes/rules/index.js +42 -0
  123. package/dist/migrator/nodes/rules/index.js.map +1 -0
  124. package/dist/migrator/nodes/rules/list-item.d.ts +7 -0
  125. package/dist/migrator/nodes/rules/list-item.d.ts.map +1 -0
  126. package/dist/migrator/nodes/rules/list-item.js +40 -0
  127. package/dist/migrator/nodes/rules/list-item.js.map +1 -0
  128. package/dist/migrator/nodes/rules/list.d.ts +4 -0
  129. package/dist/migrator/nodes/rules/list.d.ts.map +1 -0
  130. package/dist/migrator/nodes/rules/list.js +7 -0
  131. package/dist/migrator/nodes/rules/list.js.map +1 -0
  132. package/dist/migrator/nodes/rules/method-names.d.ts +10 -0
  133. package/dist/migrator/nodes/rules/method-names.d.ts.map +1 -0
  134. package/dist/migrator/nodes/rules/method-names.js +33 -0
  135. package/dist/migrator/nodes/rules/method-names.js.map +1 -0
  136. package/dist/migrator/nodes/rules/screen-slots.d.ts +10 -0
  137. package/dist/migrator/nodes/rules/screen-slots.d.ts.map +1 -0
  138. package/dist/migrator/nodes/rules/screen-slots.js +9 -0
  139. package/dist/migrator/nodes/rules/screen-slots.js.map +1 -0
  140. package/dist/migrator/nodes/rules/set-jig-state.d.ts +4 -0
  141. package/dist/migrator/nodes/rules/set-jig-state.d.ts.map +1 -0
  142. package/dist/migrator/nodes/rules/set-jig-state.js +9 -0
  143. package/dist/migrator/nodes/rules/set-jig-state.js.map +1 -0
  144. package/dist/migrator/nodes/rules/state-key.d.ts +7 -0
  145. package/dist/migrator/nodes/rules/state-key.d.ts.map +1 -0
  146. package/dist/migrator/nodes/rules/state-key.js +16 -0
  147. package/dist/migrator/nodes/rules/state-key.js.map +1 -0
  148. package/dist/migrator/nodes/rules/summary.d.ts +7 -0
  149. package/dist/migrator/nodes/rules/summary.d.ts.map +1 -0
  150. package/dist/migrator/nodes/rules/summary.js +16 -0
  151. package/dist/migrator/nodes/rules/summary.js.map +1 -0
  152. package/dist/migrator/nodes/rules/sync-entities.d.ts +7 -0
  153. package/dist/migrator/nodes/rules/sync-entities.d.ts.map +1 -0
  154. package/dist/migrator/nodes/rules/sync-entities.js +17 -0
  155. package/dist/migrator/nodes/rules/sync-entities.js.map +1 -0
  156. package/dist/migrator/nodes/rules/types.d.ts +35 -0
  157. package/dist/migrator/nodes/rules/types.d.ts.map +1 -0
  158. package/dist/migrator/nodes/rules/types.js +7 -0
  159. package/dist/migrator/nodes/rules/types.js.map +1 -0
  160. package/dist/migrator/nodes/screen.d.ts +13 -0
  161. package/dist/migrator/nodes/screen.d.ts.map +1 -0
  162. package/dist/migrator/nodes/screen.js +403 -0
  163. package/dist/migrator/nodes/screen.js.map +1 -0
  164. package/dist/migrator/normalize.d.ts +42 -0
  165. package/dist/migrator/normalize.d.ts.map +1 -0
  166. package/dist/migrator/normalize.js +167 -0
  167. package/dist/migrator/normalize.js.map +1 -0
  168. package/dist/migrator/project-writer.d.ts +34 -0
  169. package/dist/migrator/project-writer.d.ts.map +1 -0
  170. package/dist/migrator/project-writer.js +65 -0
  171. package/dist/migrator/project-writer.js.map +1 -0
  172. package/dist/migrator/prune.d.ts +58 -0
  173. package/dist/migrator/prune.d.ts.map +1 -0
  174. package/dist/migrator/prune.js +171 -0
  175. package/dist/migrator/prune.js.map +1 -0
  176. package/dist/migrator/read-solution.d.ts +38 -0
  177. package/dist/migrator/read-solution.d.ts.map +1 -0
  178. package/dist/migrator/read-solution.js +144 -0
  179. package/dist/migrator/read-solution.js.map +1 -0
  180. package/dist/migrator/report.d.ts +76 -0
  181. package/dist/migrator/report.d.ts.map +1 -0
  182. package/dist/migrator/report.js +53 -0
  183. package/dist/migrator/report.js.map +1 -0
  184. package/dist/migrator/ts-printer.d.ts +19 -0
  185. package/dist/migrator/ts-printer.d.ts.map +1 -0
  186. package/dist/migrator/ts-printer.js +70 -0
  187. package/dist/migrator/ts-printer.js.map +1 -0
  188. package/dist/migrator/verify-entity.d.ts +21 -0
  189. package/dist/migrator/verify-entity.d.ts.map +1 -0
  190. package/dist/migrator/verify-entity.js +22 -0
  191. package/dist/migrator/verify-entity.js.map +1 -0
  192. package/dist/scaffolder/index.d.ts +1 -0
  193. package/dist/scaffolder/index.d.ts.map +1 -1
  194. package/dist/scaffolder/index.js +1 -0
  195. package/dist/scaffolder/index.js.map +1 -1
  196. package/dist/scaffolder/templates.d.ts +11 -2
  197. package/dist/scaffolder/templates.d.ts.map +1 -1
  198. package/dist/scaffolder/templates.js +7 -3
  199. package/dist/scaffolder/templates.js.map +1 -1
  200. package/package.json +2 -1
@@ -0,0 +1,40 @@
1
+ import { take } from './types.js';
2
+ /** Legacy data provider → `executeEntity` provider method. */
3
+ const PROVIDER_METHOD = {
4
+ DATA_PROVIDER_LOCAL: 'local',
5
+ DATA_PROVIDER_DYNAMIC: 'dynamicData',
6
+ DATA_PROVIDER_REST: 'rest',
7
+ DATA_PROVIDER_SOAP: 'soap',
8
+ DATA_PROVIDER_SQL: 'sql',
9
+ };
10
+ /** `provider` + `entity` + `method` → `.<provider>(entity, method)`, then `data`, `parameters`, `file`. */
11
+ function executeEntityCalls(input) {
12
+ const calls = [];
13
+ const { provider } = input;
14
+ const providerMethod = typeof provider === 'string' ? PROVIDER_METHOD[provider] : undefined;
15
+ if (providerMethod && input.entity !== undefined && input.method !== undefined) {
16
+ delete input.provider;
17
+ calls.push({
18
+ method: providerMethod,
19
+ args: [take(input, 'entity'), take(input, 'method')],
20
+ chain: true,
21
+ });
22
+ }
23
+ for (const key of ['data', 'parameters', 'file']) {
24
+ if (input[key] !== undefined)
25
+ calls.push({ method: key, args: [take(input, key)], chain: true });
26
+ }
27
+ return calls;
28
+ }
29
+ /**
30
+ * `action.execute-entity` and `action.execute-entities`: legacy `goBack` → SDK `_goBack`;
31
+ * provider, data and parameters via calls.
32
+ */
33
+ export const executeEntityRule = {
34
+ input: (input) => {
35
+ if ('goBack' in input)
36
+ input._goBack = take(input, 'goBack');
37
+ },
38
+ calls: executeEntityCalls,
39
+ };
40
+ //# sourceMappingURL=execute-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-entity.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/execute-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAwB,MAAM,YAAY,CAAA;AAEvD,8DAA8D;AAC9D,MAAM,eAAe,GAAqC;IACxD,mBAAmB,EAAE,OAAO;IAC5B,qBAAqB,EAAE,aAAa;IACpC,kBAAkB,EAAE,MAAM;IAC1B,kBAAkB,EAAE,MAAM;IAC1B,iBAAiB,EAAE,KAAK;CACzB,CAAA;AAED,2GAA2G;AAC3G,SAAS,kBAAkB,CAAC,KAA8B;IACxD,MAAM,KAAK,GAAW,EAAE,CAAA;IACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC1B,MAAM,cAAc,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3F,IAAI,cAAc,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAC,QAAQ,CAAA;QACrB,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACpD,KAAK,EAAE,IAAI;SACZ,CAAC,CAAA;IACJ,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAClG,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAS;IACrC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,QAAQ,IAAI,KAAK;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC9D,CAAC;IACD,KAAK,EAAE,kBAAkB;CAC1B,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { type Rule } from './types.js';
2
+ /** `component.field-row`: children go through `addField` when the builder has it. */
3
+ export declare const fieldRowRule: Rule;
4
+ //# sourceMappingURL=field-row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-row.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/field-row.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtC,qFAAqF;AACrF,eAAO,MAAM,YAAY,EAAE,IAA4C,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** `component.field-row`: children go through `addField` when the builder has it. */
2
+ export const fieldRowRule = { holders: { children: 'addField' } };
3
+ //# sourceMappingURL=field-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-row.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/field-row.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,MAAM,CAAC,MAAM,YAAY,GAAS,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { type Obj, type Rule } from './types.js';
2
+ /** Rules for node and parent types with a non-default mapping, keyed by type. */
3
+ export declare const RULES: Readonly<Partial<Record<string, Rule>>>;
4
+ /**
5
+ * Whether the SDK builds this node but its types refuse it: the node type's
6
+ * `Rule.reject`, or an action input its slot's factory type does not take.
7
+ */
8
+ export declare function rejects(options: {
9
+ readonly type: string;
10
+ readonly input: Obj;
11
+ readonly parentType: string;
12
+ readonly slot: string;
13
+ }): boolean;
14
+ export { methodCandidates } from './method-names.js';
15
+ export type { Call, Obj, Rule } from './types.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAEhD,iFAAiF;AACjF,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAkBzD,CAAA;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,GAAG,OAAO,CAEV;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { rejectsActionInSlot } from './action-slots.js';
2
+ import { actionListRule } from './action-list.js';
3
+ import { customComponentRule } from './custom-component.js';
4
+ import { dropdownRule } from './dropdown.js';
5
+ import { executeEntityRule } from './execute-entity.js';
6
+ import { fieldRowRule } from './field-row.js';
7
+ import { listItemRule } from './list-item.js';
8
+ import { listRule } from './list.js';
9
+ import { calendarScreenRule, fullScreenRule, jigActionsRule, listScreenRule, } from './screen-slots.js';
10
+ import { setJigStateRule } from './set-jig-state.js';
11
+ import { stateKeyRule } from './state-key.js';
12
+ import { summaryRule } from './summary.js';
13
+ import { syncEntitiesRule } from './sync-entities.js';
14
+ /** Rules for node and parent types with a non-default mapping, keyed by type. */
15
+ export const RULES = {
16
+ 'action.action-list': actionListRule,
17
+ 'action.execute-entities': executeEntityRule,
18
+ 'action.execute-entity': executeEntityRule,
19
+ 'action.reset-state': stateKeyRule,
20
+ 'action.set-jig-state': setJigStateRule,
21
+ 'action.set-state': stateKeyRule,
22
+ 'action.sync-entities': syncEntitiesRule,
23
+ 'component.custom-component': customComponentRule,
24
+ 'component.dropdown': dropdownRule,
25
+ 'component.field-row': fieldRowRule,
26
+ 'component.list': listRule,
27
+ 'component.list-item': listItemRule,
28
+ 'component.summary': summaryRule,
29
+ 'jig-actions': jigActionsRule,
30
+ 'jig.calendar': calendarScreenRule,
31
+ 'jig.full-screen': fullScreenRule,
32
+ 'jig.list': listScreenRule,
33
+ };
34
+ /**
35
+ * Whether the SDK builds this node but its types refuse it: the node type's
36
+ * `Rule.reject`, or an action input its slot's factory type does not take.
37
+ */
38
+ export function rejects(options) {
39
+ return (RULES[options.type]?.reject?.(options.input) ?? false) || rejectsActionInSlot(options);
40
+ }
41
+ export { methodCandidates } from './method-names.js';
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,iFAAiF;AACjF,MAAM,CAAC,MAAM,KAAK,GAA4C;IAC5D,oBAAoB,EAAE,cAAc;IACpC,yBAAyB,EAAE,iBAAiB;IAC5C,uBAAuB,EAAE,iBAAiB;IAC1C,oBAAoB,EAAE,YAAY;IAClC,sBAAsB,EAAE,eAAe;IACvC,kBAAkB,EAAE,YAAY;IAChC,sBAAsB,EAAE,gBAAgB;IACxC,4BAA4B,EAAE,mBAAmB;IACjD,oBAAoB,EAAE,YAAY;IAClC,qBAAqB,EAAE,YAAY;IACnC,gBAAgB,EAAE,QAAQ;IAC1B,qBAAqB,EAAE,YAAY;IACnC,mBAAmB,EAAE,WAAW;IAChC,aAAa,EAAE,cAAc;IAC7B,cAAc,EAAE,kBAAkB;IAClC,iBAAiB,EAAE,cAAc;IACjC,UAAU,EAAE,cAAc;CAC3B,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,OAKvB;IACC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAChG,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { type Rule } from './types.js';
2
+ /**
3
+ * `component.list-item`: `leftElement`/`rightElement` → `leftElement.<element>(…)`,
4
+ * tag badges → `.addTag(…)`, a tags expression → `.tags(…)`.
5
+ */
6
+ export declare const listItemRule: Rule;
7
+ //# sourceMappingURL=list-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-item.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/list-item.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAKjD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,IA2B1B,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { isPlainObject } from '../../normalize.js';
2
+ /** Elements whose name option is the first positional parameter of their factory. */
3
+ const ELEMENT_WITH_NAME = ['icon'];
4
+ /**
5
+ * `component.list-item`: `leftElement`/`rightElement` → `leftElement.<element>(…)`,
6
+ * tag badges → `.addTag(…)`, a tags expression → `.tags(…)`.
7
+ */
8
+ export const listItemRule = {
9
+ calls: (input) => {
10
+ const calls = [];
11
+ for (const side of ['leftElement', 'rightElement']) {
12
+ const element = input[side];
13
+ if (!isPlainObject(element) || typeof element.element !== 'string')
14
+ continue;
15
+ const { element: name, ...rest } = element;
16
+ Reflect.deleteProperty(input, side);
17
+ if (ELEMENT_WITH_NAME.includes(name)) {
18
+ const { [name]: value, ...options } = rest;
19
+ const args = Object.keys(options).length > 0 ? [value, options] : [value];
20
+ calls.push({ method: `${side}.${name}`, args, chain: false });
21
+ }
22
+ else {
23
+ const args = Object.keys(rest).length > 0 ? [rest] : [];
24
+ calls.push({ method: `${side}.${name}`, args, chain: false });
25
+ }
26
+ }
27
+ const { tags } = input;
28
+ if (Array.isArray(tags) && tags.every((tag) => isPlainObject(tag))) {
29
+ delete input.tags;
30
+ for (const tag of tags)
31
+ calls.push({ method: 'addTag', args: [tag], chain: true });
32
+ }
33
+ else if (typeof tags === 'string') {
34
+ delete input.tags;
35
+ calls.push({ method: 'tags', args: [tags], chain: true });
36
+ }
37
+ return calls;
38
+ },
39
+ };
40
+ //# sourceMappingURL=list-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-item.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/list-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,qFAAqF;AACrF,MAAM,iBAAiB,GAAsB,CAAC,MAAM,CAAC,CAAA;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,KAAK,GAAW,EAAE,CAAA;QACxB,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAAE,SAAQ;YAC5E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;YAC1C,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACnC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAA;gBAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBACzE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YAC/D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBACvD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YAC/D,CAAC;QACH,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC,IAAI,CAAA;YACjB,KAAK,MAAM,GAAG,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACpF,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC,IAAI,CAAA;YACjB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { type Rule } from './types.js';
2
+ /** `component.list`: `data` goes through `.data(…)`; the `item` slot is filled via `setItem`. */
3
+ export declare const listRule: Rule;
4
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAE5C,iGAAiG;AACjG,eAAO,MAAM,QAAQ,EAAE,IAItB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { take } from './types.js';
2
+ /** `component.list`: `data` goes through `.data(…)`; the `item` slot is filled via `setItem`. */
3
+ export const listRule = {
4
+ calls: (input) => input.data === undefined ? [] : [{ method: 'data', args: [take(input, 'data')], chain: true }],
5
+ holders: { item: 'setItem' },
6
+ };
7
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,YAAY,CAAA;AAE5C,iGAAiG;AACjG,MAAM,CAAC,MAAM,QAAQ,GAAS;IAC5B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChG,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;CAC7B,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Factory method names to try, in order, for a node type.
3
+ *
4
+ * `component.summary` picks its method from the `layout` option (`default`, `card`, …).
5
+ */
6
+ export declare function methodCandidates(options: {
7
+ readonly type: string;
8
+ readonly layout?: unknown;
9
+ }): readonly string[];
10
+ //# sourceMappingURL=method-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method-names.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/method-names.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B,GAAG,SAAS,MAAM,EAAE,CAOpB"}
@@ -0,0 +1,33 @@
1
+ /** Action types whose factory method is not the camel-cased type suffix. */
2
+ const ACTION_METHOD = {
3
+ 'action.action-list': 'list',
4
+ 'action.go-to': 'goto',
5
+ 'action.set-jig-state': 'setScreenState',
6
+ };
7
+ /** Component types with parent-specific factory methods, tried before the camel-cased suffix. */
8
+ const COMPONENT_METHOD = {
9
+ 'component.card': ['card', 'cardOnDefault'],
10
+ 'component.image': ['image', 'imageOnDefault'],
11
+ 'component.web-view': ['webView', 'webViewOnDefault'],
12
+ 'component.video-player': ['videoPlayer', 'videoPlayerOnJig'],
13
+ 'component.dropdown-item': ['item', 'dropdownItem'],
14
+ };
15
+ function camel(value) {
16
+ return value.replace(/-([a-z])/g, (_match, char) => char.toUpperCase());
17
+ }
18
+ /**
19
+ * Factory method names to try, in order, for a node type.
20
+ *
21
+ * `component.summary` picks its method from the `layout` option (`default`, `card`, …).
22
+ */
23
+ export function methodCandidates(options) {
24
+ const { type, layout } = options;
25
+ const action = ACTION_METHOD[type];
26
+ if (action)
27
+ return [action];
28
+ if (type === 'component.summary')
29
+ return [typeof layout === 'string' ? layout : 'default'];
30
+ const suffix = camel(type.replace(/^(?:component|action)\./, ''));
31
+ return [...(COMPONENT_METHOD[type] ?? []), suffix];
32
+ }
33
+ //# sourceMappingURL=method-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method-names.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/method-names.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,aAAa,GAA8C;IAC/D,oBAAoB,EAAE,MAAM;IAC5B,cAAc,EAAE,MAAM;IACtB,sBAAsB,EAAE,gBAAgB;CACzC,CAAA;AAED,iGAAiG;AACjG,MAAM,gBAAgB,GAAyD;IAC7E,gBAAgB,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAC3C,iBAAiB,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAC9C,oBAAoB,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACrD,wBAAwB,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC7D,yBAAyB,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;CACpD,CAAA;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAGhC;IACC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAChC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC1F,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;AACpD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type Rule } from './types.js';
2
+ /** Bottom panel (`screen.bottomPanel()`): its actions go through `add`. */
3
+ export declare const jigActionsRule: Rule;
4
+ /** `jig.list`: the `item` slot is filled via `addControl`. */
5
+ export declare const listScreenRule: Rule;
6
+ /** `jig.calendar`: the `item` slot is filled via `addControl`. */
7
+ export declare const calendarScreenRule: Rule;
8
+ /** `jig.full-screen`: the `component` slot is filled via `addControl`. */
9
+ export declare const fullScreenRule: Rule;
10
+ //# sourceMappingURL=screen-slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-slots.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/screen-slots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtC,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,IAAuC,CAAA;AAEpE,8DAA8D;AAC9D,eAAO,MAAM,cAAc,EAAE,IAA0C,CAAA;AAEvE,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,EAAE,IAA0C,CAAA;AAE3E,0EAA0E;AAC1E,eAAO,MAAM,cAAc,EAAE,IAA+C,CAAA"}
@@ -0,0 +1,9 @@
1
+ /** Bottom panel (`screen.bottomPanel()`): its actions go through `add`. */
2
+ export const jigActionsRule = { holders: { children: 'add' } };
3
+ /** `jig.list`: the `item` slot is filled via `addControl`. */
4
+ export const listScreenRule = { holders: { item: 'addControl' } };
5
+ /** `jig.calendar`: the `item` slot is filled via `addControl`. */
6
+ export const calendarScreenRule = { holders: { item: 'addControl' } };
7
+ /** `jig.full-screen`: the `component` slot is filled via `addControl`. */
8
+ export const fullScreenRule = { holders: { component: 'addControl' } };
9
+ //# sourceMappingURL=screen-slots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-slots.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/screen-slots.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAS,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAA;AAEpE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAA;AAEvE,kEAAkE;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAA;AAE3E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { type Rule } from './types.js';
2
+ /** `action.set-jig-state`: legacy `changes` → SDK `keys`. */
3
+ export declare const setJigStateRule: Rule;
4
+ //# sourceMappingURL=set-jig-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-jig-state.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/set-jig-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAE5C,6DAA6D;AAC7D,eAAO,MAAM,eAAe,EAAE,IAI7B,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { take } from './types.js';
2
+ /** `action.set-jig-state`: legacy `changes` → SDK `keys`. */
3
+ export const setJigStateRule = {
4
+ input: (input) => {
5
+ if ('changes' in input)
6
+ input.keys = take(input, 'changes');
7
+ },
8
+ };
9
+ //# sourceMappingURL=set-jig-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-jig-state.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/set-jig-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,YAAY,CAAA;AAE5C,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAS;IACnC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,SAAS,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC7D,CAAC;CACF,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { type Rule } from './types.js';
2
+ /**
3
+ * `action.reset-state` and `action.set-state`: legacy `state` → SDK `stateKey`,
4
+ * kept in place so the generated call reads key first.
5
+ */
6
+ export declare const stateKeyRule: Rule;
7
+ //# sourceMappingURL=state-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-key.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/state-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtC;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,IAO1B,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `action.reset-state` and `action.set-state`: legacy `state` → SDK `stateKey`,
3
+ * kept in place so the generated call reads key first.
4
+ */
5
+ export const stateKeyRule = {
6
+ input: (input) => {
7
+ if (!('state' in input))
8
+ return;
9
+ const entries = Object.entries(input);
10
+ for (const [key] of entries)
11
+ Reflect.deleteProperty(input, key);
12
+ for (const [key, value] of entries)
13
+ input[key === 'state' ? 'stateKey' : key] = value;
14
+ },
15
+ };
16
+ //# sourceMappingURL=state-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-key.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/state-key.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC;YAAE,OAAM;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO;YAAE,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC/D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO;YAAE,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACvF,CAAC;CACF,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { type Rule } from './types.js';
2
+ /**
3
+ * `component.summary`: the `layout` option picks the factory method (see
4
+ * `methodCandidates`), so it leaves the input.
5
+ */
6
+ export declare const summaryRule: Rule;
7
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/summary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtC;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,IAUzB,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { isPlainObject } from '../../normalize.js';
2
+ /**
3
+ * `component.summary`: the `layout` option picks the factory method (see
4
+ * `methodCandidates`), so it leaves the input.
5
+ */
6
+ export const summaryRule = {
7
+ input: (input) => {
8
+ delete input.layout;
9
+ },
10
+ // Built correctly, but the SDK types refuse element objects as summary icons.
11
+ reject: (input) => ['leftIcon', 'rightIcon'].some((key) => {
12
+ const icon = input[key];
13
+ return isPlainObject(icon) && 'element' in icon;
14
+ }),
15
+ };
16
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,KAAK,CAAC,MAAM,CAAA;IACrB,CAAC;IACD,8EAA8E;IAC9E,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;QACvB,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,SAAS,IAAI,IAAI,CAAA;IACjD,CAAC,CAAC;CACL,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { type Rule } from './types.js';
2
+ /**
3
+ * `action.sync-entities`: `entities` goes through `.entities([...])`. Only names and
4
+ * entity objects with SDK-typed keys qualify; legacy `functionParameters` stays a gap.
5
+ */
6
+ export declare const syncEntitiesRule: Rule;
7
+ //# sourceMappingURL=sync-entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-entities.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/sync-entities.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAI5C;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,IAY9B,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { isPlainObject } from '../../normalize.js';
2
+ import { take } from './types.js';
3
+ const ENTITY_KEYS = ['entity', 'function', 'parameters', 'force'];
4
+ /**
5
+ * `action.sync-entities`: `entities` goes through `.entities([...])`. Only names and
6
+ * entity objects with SDK-typed keys qualify; legacy `functionParameters` stays a gap.
7
+ */
8
+ export const syncEntitiesRule = {
9
+ calls: (input) => {
10
+ const { entities } = input;
11
+ const typed = Array.isArray(entities) &&
12
+ entities.every((entity) => typeof entity === 'string' ||
13
+ (isPlainObject(entity) && Object.keys(entity).every((key) => ENTITY_KEYS.includes(key))));
14
+ return typed ? [{ method: 'entities', args: [take(input, 'entities')], chain: true }] : [];
15
+ },
16
+ };
17
+ //# sourceMappingURL=sync-entities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-entities.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/sync-entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAa,MAAM,YAAY,CAAA;AAE5C,MAAM,WAAW,GAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;AAEpF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;QAC1B,MAAM,KAAK,GACT,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACvB,QAAQ,CAAC,KAAK,CACZ,CAAC,MAAM,EAAE,EAAE,CACT,OAAO,MAAM,KAAK,QAAQ;gBAC1B,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAC3F,CAAA;QACH,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5F,CAAC;CACF,CAAA"}
@@ -0,0 +1,35 @@
1
+ /** Mutable working copy of a node's factory input. */
2
+ export type Obj = Record<string, unknown>;
3
+ /**
4
+ * One builder call after the factory call.
5
+ *
6
+ * `method` may be a dotted path (`leftElement.icon`). A chained call returns the
7
+ * builder and is printed as `.method(…)` after the factory call; an unchained call
8
+ * is printed as its own statement on the node's variable.
9
+ */
10
+ export interface Call {
11
+ readonly method: string;
12
+ readonly args: readonly unknown[];
13
+ readonly chain: boolean;
14
+ }
15
+ /**
16
+ * Per-type mapping from legacy options to the SDK API.
17
+ *
18
+ * - `input`: renames or reshapes options in the factory input (mutates it)
19
+ * - `reject`: shapes the SDK builds correctly but its types refuse; found by `tsc`
20
+ * on migrated output, never guessed
21
+ * - `calls`: pulls options out of the input and sets them via builder methods
22
+ * - `holders`: child slot key → builder member holding that slot's factory
23
+ * - `whole`: the factory takes the whole legacy node, reshaped, as its input; no
24
+ * option lifting, no builder calls, no child slots (`input` and `calls` are not run)
25
+ */
26
+ export interface Rule {
27
+ readonly whole?: (node: Readonly<Record<string, unknown>>) => Obj;
28
+ readonly input?: (input: Obj) => void;
29
+ readonly reject?: (input: Obj) => boolean;
30
+ readonly calls?: (input: Obj) => Call[];
31
+ readonly holders?: Readonly<Record<string, string>>;
32
+ }
33
+ /** Removes a key from the input and returns its value. */
34
+ export declare function take(input: Obj, key: string): unknown;
35
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/types.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzC;;;;;;GAMG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAA;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAA;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,EAAE,CAAA;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACpD;AAED,0DAA0D;AAC1D,wBAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAIrD"}
@@ -0,0 +1,7 @@
1
+ /** Removes a key from the input and returns its value. */
2
+ export function take(input, key) {
3
+ const value = input[key];
4
+ Reflect.deleteProperty(input, key);
5
+ return value;
6
+ }
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/migrator/nodes/rules/types.ts"],"names":[],"mappings":"AAmCA,0DAA0D;AAC1D,MAAM,UAAU,IAAI,CAAC,KAAU,EAAE,GAAW;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAClC,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type EntityConversion } from '../converters/index.js';
2
+ import { type LegacyEntry } from '../read-solution.js';
3
+ /**
4
+ * `jigs/<id>.jigx` → `app.addScreen.<type>({ screenId, title, … })` plus one typed call per
5
+ * screen key, verified on a scratch screen.
6
+ *
7
+ * Node slots (`children`, `item`, `header`, `onFocus`, …), the bottom panel and the
8
+ * summary go through the node engine, which skips unsupported nodes one by one. A
9
+ * plain key that does not verify is skipped as `jig.<type>:key-<key>`; an icon outside
10
+ * the SDK icon set as `jig:icon-<name>`.
11
+ */
12
+ export declare function convertJig(entry: LegacyEntry): EntityConversion;
13
+ //# sourceMappingURL=screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../../src/migrator/nodes/screen.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAG3F,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AA0MtD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CA+O/D"}