@ethlete/cli 3.0.0-next.24 → 3.0.0-next.26

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 (194) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/design/define-call.ts +69 -0
  3. package/design/define-part.ts +43 -9
  4. package/design/embed-page.ts +37 -4
  5. package/design/icon-sheet.ts +151 -0
  6. package/design/logo-sheet.ts +52 -0
  7. package/design/mark-part.ts +79 -2
  8. package/design/motion-drive.ts +215 -0
  9. package/design/motion-runtime.ts +224 -5
  10. package/design/motion-tokens.ts +177 -0
  11. package/design/spring.ts +53 -0
  12. package/design/token-sheet.ts +87 -0
  13. package/design/web/frame-fill.ts +4 -0
  14. package/design/web/frame-scheme.ts +44 -0
  15. package/design/web/frame.ts +239 -31
  16. package/package.json +1 -1
  17. package/src/lib/design/calls-tsconfig.d.ts +2 -0
  18. package/src/lib/design/calls-tsconfig.js +11 -5
  19. package/src/lib/design/calls-tsconfig.js.map +1 -1
  20. package/src/lib/design/check.d.ts +1 -0
  21. package/src/lib/design/check.js +62 -6
  22. package/src/lib/design/check.js.map +1 -1
  23. package/src/lib/design/contact-sheet.d.ts +9 -0
  24. package/src/lib/design/contact-sheet.js +38 -4
  25. package/src/lib/design/contact-sheet.js.map +1 -1
  26. package/src/lib/design/design-command.js +56 -7
  27. package/src/lib/design/design-command.js.map +1 -1
  28. package/src/lib/design/draw-ledger.d.ts +36 -0
  29. package/src/lib/design/draw-ledger.js +52 -0
  30. package/src/lib/design/draw-ledger.js.map +1 -0
  31. package/src/lib/design/force-interactions.d.ts +2 -1
  32. package/src/lib/design/force-interactions.js +7 -4
  33. package/src/lib/design/force-interactions.js.map +1 -1
  34. package/src/lib/design/mcp-command.d.ts +81 -0
  35. package/src/lib/design/mcp-command.js +422 -0
  36. package/src/lib/design/mcp-command.js.map +1 -0
  37. package/src/lib/design/motion-command.d.ts +71 -0
  38. package/src/lib/design/motion-command.js +308 -0
  39. package/src/lib/design/motion-command.js.map +1 -0
  40. package/src/lib/design/motion-endpoint.d.ts +61 -0
  41. package/src/lib/design/motion-endpoint.js +133 -0
  42. package/src/lib/design/motion-endpoint.js.map +1 -0
  43. package/src/lib/design/motion-flow.d.ts +5 -0
  44. package/src/lib/design/motion-flow.js +29 -0
  45. package/src/lib/design/motion-flow.js.map +1 -0
  46. package/src/lib/design/motion-shot.d.ts +43 -0
  47. package/src/lib/design/motion-shot.js +97 -0
  48. package/src/lib/design/motion-shot.js.map +1 -0
  49. package/src/lib/design/paths.d.ts +14 -0
  50. package/src/lib/design/paths.js +50 -1
  51. package/src/lib/design/paths.js.map +1 -1
  52. package/src/lib/design/ready-shots.d.ts +7 -0
  53. package/src/lib/design/ready-shots.js +22 -1
  54. package/src/lib/design/ready-shots.js.map +1 -1
  55. package/src/lib/design/render-packages.d.ts +14 -0
  56. package/src/lib/design/render-packages.js +18 -3
  57. package/src/lib/design/render-packages.js.map +1 -1
  58. package/src/lib/design/render-worker.js +1 -0
  59. package/src/lib/design/render-worker.js.map +1 -1
  60. package/src/lib/design/render.js +3 -3
  61. package/src/lib/design/render.js.map +1 -1
  62. package/src/lib/design/serve.d.ts +2 -2
  63. package/src/lib/design/serve.js +191 -21
  64. package/src/lib/design/serve.js.map +1 -1
  65. package/src/lib/design/shot-command.d.ts +13 -4
  66. package/src/lib/design/shot-command.js +30 -24
  67. package/src/lib/design/shot-command.js.map +1 -1
  68. package/src/lib/design/shot-store.d.ts +24 -0
  69. package/src/lib/design/shot-store.js +120 -0
  70. package/src/lib/design/shot-store.js.map +1 -0
  71. package/src/lib/design/shot.d.ts +37 -1
  72. package/src/lib/design/shot.js +185 -34
  73. package/src/lib/design/shot.js.map +1 -1
  74. package/src/lib/design/sketch-command.js +197 -51
  75. package/src/lib/design/sketch-command.js.map +1 -1
  76. package/src/lib/design/ssr-shims.d.ts +2 -0
  77. package/src/lib/design/ssr-shims.js +12 -1
  78. package/src/lib/design/ssr-shims.js.map +1 -1
  79. package/src/lib/design/studio-api.d.ts +31 -0
  80. package/src/lib/design/studio-api.js +118 -1
  81. package/src/lib/design/studio-api.js.map +1 -1
  82. package/src/lib/design/system/check-system.d.ts +6 -2
  83. package/src/lib/design/system/check-system.js +102 -20
  84. package/src/lib/design/system/check-system.js.map +1 -1
  85. package/src/lib/design/system/colour.d.ts +4 -1
  86. package/src/lib/design/system/colour.js +54 -2
  87. package/src/lib/design/system/colour.js.map +1 -1
  88. package/src/lib/design/system/complete-command.d.ts +1 -1
  89. package/src/lib/design/system/complete-command.js +80 -6
  90. package/src/lib/design/system/complete-command.js.map +1 -1
  91. package/src/lib/design/system/complete.d.ts +172 -9
  92. package/src/lib/design/system/complete.js +792 -167
  93. package/src/lib/design/system/complete.js.map +1 -1
  94. package/src/lib/design/system/contrast-check.d.ts +6 -1
  95. package/src/lib/design/system/contrast-check.js +167 -12
  96. package/src/lib/design/system/contrast-check.js.map +1 -1
  97. package/src/lib/design/system/drawn-open-points.d.ts +16 -0
  98. package/src/lib/design/system/drawn-open-points.js +43 -0
  99. package/src/lib/design/system/drawn-open-points.js.map +1 -0
  100. package/src/lib/design/system/exceptions.d.ts +59 -0
  101. package/src/lib/design/system/exceptions.js +132 -0
  102. package/src/lib/design/system/exceptions.js.map +1 -0
  103. package/src/lib/design/system/flows/flow.d.ts +3 -0
  104. package/src/lib/design/system/flows/flow.js +5 -3
  105. package/src/lib/design/system/flows/flow.js.map +1 -1
  106. package/src/lib/design/system/handoff.d.ts +11 -0
  107. package/src/lib/design/system/handoff.js +30 -0
  108. package/src/lib/design/system/handoff.js.map +1 -0
  109. package/src/lib/design/system/inventory-approval.d.ts +41 -0
  110. package/src/lib/design/system/inventory-approval.js +71 -0
  111. package/src/lib/design/system/inventory-approval.js.map +1 -0
  112. package/src/lib/design/system/inventory.d.ts +65 -0
  113. package/src/lib/design/system/inventory.js +168 -0
  114. package/src/lib/design/system/inventory.js.map +1 -0
  115. package/src/lib/design/system/list-system.d.ts +4 -1
  116. package/src/lib/design/system/list-system.js +11 -3
  117. package/src/lib/design/system/list-system.js.map +1 -1
  118. package/src/lib/design/system/open-points.d.ts +101 -0
  119. package/src/lib/design/system/open-points.js +156 -0
  120. package/src/lib/design/system/open-points.js.map +1 -0
  121. package/src/lib/design/system/part-ready.d.ts +52 -0
  122. package/src/lib/design/system/part-ready.js +101 -0
  123. package/src/lib/design/system/part-ready.js.map +1 -0
  124. package/src/lib/design/system/read-open-points.d.ts +27 -0
  125. package/src/lib/design/system/read-open-points.js +81 -0
  126. package/src/lib/design/system/read-open-points.js.map +1 -0
  127. package/src/lib/design/system/ready-command.d.ts +7 -0
  128. package/src/lib/design/system/ready-command.js +65 -0
  129. package/src/lib/design/system/ready-command.js.map +1 -0
  130. package/src/lib/design/system/render-check.d.ts +2 -0
  131. package/src/lib/design/system/render-check.js +216 -32
  132. package/src/lib/design/system/render-check.js.map +1 -1
  133. package/src/lib/design/system/resolve-product.d.ts +4 -4
  134. package/src/lib/design/system/resolve-product.js +22 -7
  135. package/src/lib/design/system/resolve-product.js.map +1 -1
  136. package/src/lib/design/system/rules/implements.d.ts +7 -0
  137. package/src/lib/design/system/rules/implements.js +43 -0
  138. package/src/lib/design/system/rules/implements.js.map +1 -0
  139. package/src/lib/design/system/rules/motion.d.ts +2 -0
  140. package/src/lib/design/system/rules/motion.js +26 -1
  141. package/src/lib/design/system/rules/motion.js.map +1 -1
  142. package/src/lib/design/system/rules/option-values.d.ts +15 -0
  143. package/src/lib/design/system/rules/option-values.js +145 -0
  144. package/src/lib/design/system/rules/option-values.js.map +1 -0
  145. package/src/lib/design/system/rules/stale-replace.js +80 -3
  146. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  147. package/src/lib/design/system/rules/token-selectors.js +1 -1
  148. package/src/lib/design/system/rules/token-selectors.js.map +1 -1
  149. package/src/lib/design/system/sketch/baseline.d.ts +11 -2
  150. package/src/lib/design/system/sketch/baseline.js +4 -2
  151. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  152. package/src/lib/design/system/sketch/check-sketches.d.ts +1 -0
  153. package/src/lib/design/system/sketch/check-sketches.js +4 -2
  154. package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
  155. package/src/lib/design/system/sketch/host-edit.d.ts +4 -0
  156. package/src/lib/design/system/sketch/host-edit.js +68 -0
  157. package/src/lib/design/system/sketch/host-edit.js.map +1 -0
  158. package/src/lib/design/system/sketch/merge.d.ts +3 -2
  159. package/src/lib/design/system/sketch/merge.js +79 -12
  160. package/src/lib/design/system/sketch/merge.js.map +1 -1
  161. package/src/lib/design/system/sketch/merged-parts.d.ts +11 -1
  162. package/src/lib/design/system/sketch/merged-parts.js +24 -3
  163. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  164. package/src/lib/design/system/sketch/no-visible-change.d.ts +6 -0
  165. package/src/lib/design/system/sketch/no-visible-change.js +25 -1
  166. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  167. package/src/lib/design/system/sketch/overlay.js +11 -3
  168. package/src/lib/design/system/sketch/overlay.js.map +1 -1
  169. package/src/lib/design/system/sketch/part-definition.d.ts +36 -0
  170. package/src/lib/design/system/sketch/part-definition.js +56 -2
  171. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  172. package/src/lib/design/system/sketch/sketch.d.ts +47 -0
  173. package/src/lib/design/system/sketch/sketch.js +137 -44
  174. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  175. package/src/lib/design/system/sketch/unchanged-states.d.ts +4 -1
  176. package/src/lib/design/system/sketch/unchanged-states.js +9 -5
  177. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  178. package/src/lib/design/system/sketch/unused-closure.d.ts +12 -0
  179. package/src/lib/design/system/sketch/unused-closure.js +195 -0
  180. package/src/lib/design/system/sketch/unused-closure.js.map +1 -0
  181. package/src/lib/design/system/sketch/unused-files.d.ts +1 -1
  182. package/src/lib/design/system/sketch/unused-files.js +6 -3
  183. package/src/lib/design/system/sketch/unused-files.js.map +1 -1
  184. package/src/lib/design/system/system-modules.js +6 -9
  185. package/src/lib/design/system/system-modules.js.map +1 -1
  186. package/src/lib/design/system/system-tsconfig.d.ts +2 -1
  187. package/src/lib/design/system/system-tsconfig.js +10 -6
  188. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  189. package/src/lib/design/system/ts-source.d.ts +3 -0
  190. package/src/lib/design/system/ts-source.js +21 -4
  191. package/src/lib/design/system/ts-source.js.map +1 -1
  192. package/src/lib/design/thumb.d.ts +31 -4
  193. package/src/lib/design/thumb.js +105 -40
  194. package/src/lib/design/thumb.js.map +1 -1
@@ -8,8 +8,9 @@ export type MergeRefusal = {
8
8
  };
9
9
  /**
10
10
  * Merges the variant the user picked in a ready sketch into the product: copies each part it holds
11
- * over the product's, sets `note` (when given) and `madeBy` (the file's own plus the variant's authors) on the target, runs the check
12
- * records each merged part's hash in `merged.json` and deletes the sketch. A target the product only takes from its base is copied into the product first. When the check fails, the
11
+ * over the product's - a part the product takes from its base over the base's, unless the sketch was opened with
12
+ * `override`; `into-base` also removes the product copy and its `merged.json` entry - sets `note` (when given) and `madeBy` (the file's own plus the variant's authors) on the target, runs the check
13
+ * records each merged part's hash in `merged.json` and deletes the sketch. With `override`, a target the product only takes from its base is copied into the product first. When the check fails, the
13
14
  * product's old files come back and the sketch stays. Each file in the variant's `assets/` goes into the product's `assets/`. A file of the sketch's `shared/` folder whose path the product's `shared/` holds
14
15
  * replaces it there; the rest goes into the target's folder when the target imports it, with its `@shared/` imports made relative; any other part that imports it stops the merge. Otherwise the addressed comments on its variants, and those on the merged parts that have no sketch, are resolved, and the open ones on its variants are addressed, by `author` or the user. Refuses without a
15
16
  * pick, and when a part the variant replaces changed in the product since the sketch's baseline. Answers with the merged part keys, or with why nothing was merged - and, when a rebase
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.discardSketch = exports.mergeSketch = void 0;
4
+ const child_process_1 = require("child_process");
4
5
  const fs_1 = require("fs");
6
+ const module_1 = require("module");
5
7
  const os_1 = require("os");
6
8
  const path_1 = require("path");
7
9
  const check_system_1 = require("../check-system");
8
10
  const comment_1 = require("../comments/comment");
9
11
  const assets_1 = require("../assets");
10
12
  const product_1 = require("../product");
13
+ const base_1 = require("../base");
11
14
  const resolve_product_1 = require("../resolve-product");
12
15
  const baseline_1 = require("./baseline");
13
16
  const merge_shared_1 = require("./merge-shared");
@@ -24,6 +27,8 @@ const swap = (entries) => {
24
27
  });
25
28
  for (const { from, to } of entries) {
26
29
  (0, fs_1.rmSync)(to, { recursive: true, force: true });
30
+ if (from === null)
31
+ continue;
27
32
  (0, fs_1.mkdirSync)((0, path_1.dirname)(to), { recursive: true });
28
33
  (0, fs_1.cpSync)(from, to, { recursive: true });
29
34
  }
@@ -49,9 +54,9 @@ const pickOf = (sketch) => {
49
54
  };
50
55
  const notedTargetOf = (options) => {
51
56
  var _a, _b, _c, _d, _e;
52
- const { sketch, variant, parts, product, key, note } = options;
57
+ const { sketch, variant, parts, product, root, key, note } = options;
53
58
  const name = (_a = key.split('/')[1]) !== null && _a !== void 0 ? _a : '';
54
- const targetDir = (0, path_1.resolve)(product.dir, key);
59
+ const targetDir = (0, path_1.resolve)(root, key);
55
60
  const noteFile = (0, path_1.resolve)(targetDir, `${name}.ts`);
56
61
  const carried = (_b = parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === key)) === null || _b === void 0 ? void 0 : _b.file;
57
62
  const inherited = carried || (0, fs_1.existsSync)(noteFile) ? null : ((_c = product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === key)) !== null && _c !== void 0 ? _c : null);
@@ -68,7 +73,42 @@ const notedTargetOf = (options) => {
68
73
  return `${held} holds no definePart({ note: '…' }) to set the note on`;
69
74
  return { key, targetDir, noteFile, inherited, noted };
70
75
  };
76
+ /** The parts of `keys` the merge writes into the product's base instead of the product. */
77
+ const baseKeysOf = (options) => {
78
+ const { product, sketch, keys } = options;
79
+ return keys.filter((key) => {
80
+ var _a;
81
+ const origin = (_a = product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === key)) === null || _a === void 0 ? void 0 : _a.origin;
82
+ return sketch.merge === 'into-base'
83
+ ? origin === 'base' || origin === 'overridden'
84
+ : sketch.merge !== 'override' && origin === 'base';
85
+ });
86
+ };
87
+ const prettierBinOf = (target) => {
88
+ const from = [(0, path_1.join)(target, 'package.json'), __filename].find((file) => {
89
+ try {
90
+ return !!(0, module_1.createRequire)(file).resolve('prettier/package.json');
91
+ }
92
+ catch (_a) {
93
+ return false;
94
+ }
95
+ });
96
+ return from ? (0, path_1.resolve)((0, path_1.dirname)((0, module_1.createRequire)(from).resolve('prettier/package.json')), 'bin/prettier.cjs') : null;
97
+ };
98
+ const formatFiles = (target, files) => {
99
+ var _a;
100
+ const bin = prettierBinOf(target);
101
+ if (!bin || files.length === 0)
102
+ return;
103
+ const formatted = (0, child_process_1.spawnSync)(process.execPath, [bin, '--write', '--ignore-unknown', '--log-level', 'warn', ...files], {
104
+ cwd: target,
105
+ encoding: 'utf8',
106
+ });
107
+ if (formatted.error || formatted.status !== 0)
108
+ console.warn(`Could not format the merged files: ${(formatted.stderr || ((_a = formatted.error) === null || _a === void 0 ? void 0 : _a.message) || '').trim()}`);
109
+ };
71
110
  const mergeOrReason = (options) => {
111
+ var _a, _b;
72
112
  const { target, config, product, sketch, note, author } = options;
73
113
  if (sketch.status !== 'ready')
74
114
  return `${sketch.target} is ${sketch.status} - mark it ready before a merge`;
@@ -98,22 +138,32 @@ const mergeOrReason = (options) => {
98
138
  reason: `${conflicts.join(', ')} changed in the product since the sketch on ${sketch.target} was created - bring variant "${variant}" up to date, then run sketch rebase ${sketch.target}`,
99
139
  changed: conflicts,
100
140
  };
141
+ const mergedKeys = [...new Set([...sketch.targets, ...parts.map(resolve_product_1.partKeyOf)])];
142
+ const baseKeys = baseKeysOf({ product, sketch, keys: mergedKeys });
143
+ const base = product.base;
144
+ if (baseKeys.length > 0 && (!base || (0, base_1.isBuiltInBase)((_a = product.config.base) !== null && _a !== void 0 ? _a : '')))
145
+ return `${baseKeys.join(', ')} comes from the built-in base ${product.config.base} - only a sketch opened with --override merges it, as a product copy`;
146
+ const rootOf = (key) => (base && baseKeys.includes(key) ? base.dir : product.dir);
147
+ const removedKeys = baseKeys.filter((key) => { var _a; return ((_a = product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === key)) === null || _a === void 0 ? void 0 : _a.origin) === 'overridden'; });
101
148
  const notedTargets = [];
102
149
  for (const key of sketch.targets) {
103
- const noted = notedTargetOf({ sketch, variant, parts, product, key, note });
150
+ const noted = notedTargetOf({ sketch, variant, parts, product, root: rootOf(key), key, note });
104
151
  if (typeof noted === 'string')
105
152
  return noted;
106
153
  notedTargets.push(noted);
107
154
  }
108
155
  const inheritedKeys = notedTargets.flatMap((entry) => (entry.inherited ? [entry.key] : []));
109
- const mergedKeys = [...new Set([...sketch.targets, ...parts.map(resolve_product_1.partKeyOf)])];
110
156
  const assetFiles = (0, assets_1.filesBelow)((0, path_1.resolve)(dir, assets_1.ASSETS_FOLDER));
111
157
  const sharedChanges = (0, merge_shared_1.productSharedChangesOf)({ sketch, variant, product });
112
158
  const untouched = assetFiles.length > 0 || sharedChanges.length > 0 ? (0, merged_parts_1.unchangedMergedOf)({ product, except: mergedKeys }) : [];
113
- const known = (0, check_system_1.ruleLinesOf)(target, product);
159
+ const baseProduct = base && baseKeys.length > 0 && base.configFile === product.configFile && ((_b = config.products) === null || _b === void 0 ? void 0 : _b[base.name])
160
+ ? (0, resolve_product_1.resolveProduct)({ target, name: base.name, config: base.config })
161
+ : null;
162
+ const known = [...(0, check_system_1.ruleLinesOf)(target, product), ...(baseProduct ? (0, check_system_1.ruleLinesOf)(target, baseProduct) : [])];
114
163
  const swapped = swap([
115
164
  ...notedTargets.flatMap(({ inherited, targetDir }) => inherited ? [{ from: (0, path_1.dirname)(inherited.file), to: targetDir }] : []),
116
- ...parts.map((part) => ({ from: (0, path_1.dirname)(part.file), to: (0, path_1.resolve)(product.dir, part.layer, part.name) })),
165
+ ...parts.map((part) => ({ from: (0, path_1.dirname)(part.file), to: (0, path_1.resolve)(rootOf((0, resolve_product_1.partKeyOf)(part)), part.layer, part.name) })),
166
+ ...removedKeys.map((key) => ({ from: null, to: (0, path_1.resolve)(product.dir, key) })),
117
167
  ...(fixtures ? [{ from: fixtures, to: (0, path_1.resolve)(product.dir, 'fixtures.ts') }] : []),
118
168
  ...assetFiles.map((file) => ({
119
169
  from: file,
@@ -123,14 +173,30 @@ const mergeOrReason = (options) => {
123
173
  ]);
124
174
  for (const { noteFile, noted } of notedTargets)
125
175
  (0, fs_1.writeFileSync)(noteFile, noted);
126
- for (const { targetDir, paths } of shared.carry)
127
- (0, merge_shared_1.carryShared)({ sketch, variant, targetDir, paths, product });
128
- if ((0, check_system_1.checkSystem)({ target, config, products: [product.name], known }) !== 0) {
176
+ for (const { targetDir, paths } of shared.carry) {
177
+ const key = (0, path_1.relative)(product.dir, targetDir);
178
+ (0, merge_shared_1.carryShared)({ sketch, variant, targetDir: (0, path_1.resolve)(rootOf(key), key), paths, product });
179
+ }
180
+ const checked = [product.name, ...(baseProduct ? [baseProduct.name] : [])];
181
+ if ((0, check_system_1.checkSystem)({ target, config, products: checked, known }) !== 0) {
129
182
  swapped.restore();
130
183
  return `the check failed after the merge of ${sketch.target} variant "${variant}" - the product's old files are back, the sketch stays`;
131
184
  }
185
+ const written = [
186
+ ...mergedKeys.flatMap((key) => (0, assets_1.filesBelow)((0, path_1.resolve)(rootOf(key), key))),
187
+ ...sharedChanges.map(({ to }) => to),
188
+ ...(fixtures ? [(0, path_1.resolve)(product.dir, 'fixtures.ts')] : []),
189
+ ...assetFiles.map((file) => (0, path_1.resolve)(product.dir, assets_1.ASSETS_FOLDER, (0, path_1.relative)((0, path_1.resolve)(dir, assets_1.ASSETS_FOLDER), file))),
190
+ ];
191
+ formatFiles(target, [...new Set(written)]);
132
192
  swapped.drop();
133
- (0, merged_parts_1.recordMerged)({ product, parts: mergedKeys });
193
+ const productKeys = mergedKeys.filter((key) => !baseKeys.includes(key));
194
+ if (productKeys.length > 0)
195
+ (0, merged_parts_1.recordMerged)({ product, parts: productKeys });
196
+ if (base && baseKeys.length > 0) {
197
+ (0, merged_parts_1.recordMerged)({ product: { dir: base.dir, base: null }, parts: baseKeys });
198
+ (0, merged_parts_1.forgetMerged)({ productDir: product.dir, parts: removedKeys });
199
+ }
134
200
  const alsoChanged = (0, merged_parts_1.rerecordChangedMerged)({ product, before: untouched });
135
201
  if (alsoChanged.length > 0)
136
202
  console.log(`Asset or shared/ change also updates: ${alsoChanged.join(', ')}`);
@@ -146,8 +212,9 @@ const mergeOrReason = (options) => {
146
212
  };
147
213
  /**
148
214
  * Merges the variant the user picked in a ready sketch into the product: copies each part it holds
149
- * over the product's, sets `note` (when given) and `madeBy` (the file's own plus the variant's authors) on the target, runs the check
150
- * records each merged part's hash in `merged.json` and deletes the sketch. A target the product only takes from its base is copied into the product first. When the check fails, the
215
+ * over the product's - a part the product takes from its base over the base's, unless the sketch was opened with
216
+ * `override`; `into-base` also removes the product copy and its `merged.json` entry - sets `note` (when given) and `madeBy` (the file's own plus the variant's authors) on the target, runs the check
217
+ * records each merged part's hash in `merged.json` and deletes the sketch. With `override`, a target the product only takes from its base is copied into the product first. When the check fails, the
151
218
  * product's old files come back and the sketch stays. Each file in the variant's `assets/` goes into the product's `assets/`. A file of the sketch's `shared/` folder whose path the product's `shared/` holds
152
219
  * replaces it there; the rest goes into the target's folder when the target imports it, with its `@shared/` imports made relative; any other part that imports it stops the merge. Otherwise the addressed comments on its variants, and those on the merged parts that have no sketch, are resolved, and the open ones on its variants are addressed, by `author` or the user. Refuses without a
153
220
  * pick, and when a part the variant replaces changed in the product since the sketch's baseline. Answers with the merged part keys, or with why nothing was merged - and, when a rebase
@@ -1 +1 @@
1
- {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merge.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,22 @@ import { ResolvedProduct } from '../resolve-product';
2
2
  export declare const MERGED_FILE = "merged.json";
3
3
  /** The content hash of each part, its folder and the assets it imports, as its last sketch merge left it, under the part key. */
4
4
  export declare const readMerged: (productDir: string) => Record<string, string>;
5
- type HashedProduct = Pick<ResolvedProduct, 'dir' | 'base'>;
5
+ type HashedProduct = Pick<ResolvedProduct, 'dir' | 'base'> & Partial<Pick<ResolvedProduct, 'config'>>;
6
6
  /** Records the current content hash of each named part of the product as merged. */
7
7
  export declare const recordMerged: (options: {
8
8
  product: HashedProduct;
9
9
  parts: string[];
10
10
  }) => void;
11
+ /** Drops the named parts from the product's `merged.json`. */
12
+ export declare const forgetMerged: (options: {
13
+ productDir: string;
14
+ parts: string[];
15
+ }) => void;
16
+ /** The product folder that holds the part now: the product's own, else its base's. */
17
+ export declare const holderOf: (options: {
18
+ product: HashedProduct;
19
+ part: string;
20
+ }) => HashedProduct;
11
21
  /** The recorded parts of the product, outside `except`, whose files still match their recorded hash, with that hash. */
12
22
  export declare const unchangedMergedOf: (options: {
13
23
  product: ResolvedProduct;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.acceptPart = exports.recordAllowedMerge = exports.recordAutoMerge = exports.readAccepted = exports.ACCEPTED_FILE = exports.changedOutsideSketchOf = exports.sketchedPartsOf = exports.rerecordChangedMerged = exports.unchangedMergedOf = exports.recordMerged = exports.readMerged = exports.MERGED_FILE = void 0;
3
+ exports.acceptPart = exports.recordAllowedMerge = exports.recordAutoMerge = exports.readAccepted = exports.ACCEPTED_FILE = exports.changedOutsideSketchOf = exports.sketchedPartsOf = exports.rerecordChangedMerged = exports.unchangedMergedOf = exports.holderOf = exports.forgetMerged = exports.recordMerged = exports.readMerged = exports.MERGED_FILE = void 0;
4
4
  const fs_1 = require("fs");
5
5
  const path_1 = require("path");
6
6
  const product_1 = require("../product");
@@ -36,6 +36,25 @@ const recordMerged = (options) => {
36
36
  (0, fs_1.writeFileSync)(mergedFileOf(productDir), `${JSON.stringify(sorted, null, 2)}\n`);
37
37
  };
38
38
  exports.recordMerged = recordMerged;
39
+ /** Drops the named parts from the product's `merged.json`. */
40
+ const forgetMerged = (options) => {
41
+ const { productDir, parts } = options;
42
+ const merged = (0, exports.readMerged)(productDir);
43
+ if (!parts.some((part) => part in merged))
44
+ return;
45
+ for (const part of parts)
46
+ delete merged[part];
47
+ (0, fs_1.writeFileSync)(mergedFileOf(productDir), `${JSON.stringify(merged, null, 2)}\n`);
48
+ };
49
+ exports.forgetMerged = forgetMerged;
50
+ /** The product folder that holds the part now: the product's own, else its base's. */
51
+ const holderOf = (options) => {
52
+ const { product, part } = options;
53
+ return !(0, fs_1.existsSync)((0, path_1.resolve)(product.dir, part)) && product.base && (0, fs_1.existsSync)((0, path_1.resolve)(product.base.dir, part))
54
+ ? { dir: product.base.dir, config: product.base.config, base: null }
55
+ : product;
56
+ };
57
+ exports.holderOf = holderOf;
39
58
  /** The recorded parts of the product, outside `except`, whose files still match their recorded hash, with that hash. */
40
59
  const unchangedMergedOf = (options) => {
41
60
  const { product, except } = options;
@@ -100,7 +119,8 @@ exports.readAccepted = readAccepted;
100
119
  const logAcceptance = (productDir, entry) => (0, fs_1.writeFileSync)((0, path_1.resolve)(productDir, exports.ACCEPTED_FILE), `${JSON.stringify([...(0, exports.readAccepted)(productDir), entry], null, 2)}\n`);
101
120
  /** Logs a sketch merged by itself because no state showed a visible change, as an `auto` entry in `accepted.json`. */
102
121
  const recordAutoMerge = (options) => {
103
- const { product, part, by } = options;
122
+ const { part, by } = options;
123
+ const product = (0, exports.holderOf)(options);
104
124
  logAcceptance(product.dir, {
105
125
  part,
106
126
  by,
@@ -113,7 +133,8 @@ const recordAutoMerge = (options) => {
113
133
  exports.recordAutoMerge = recordAutoMerge;
114
134
  /** Logs a sketch merged without a pick in Studio because a plan entry allows it, in `accepted.json`. */
115
135
  const recordAllowedMerge = (options) => {
116
- const { product, part, by, planRef } = options;
136
+ const { part, by, planRef } = options;
137
+ const product = (0, exports.holderOf)(options);
117
138
  logAcceptance(product.dir, {
118
139
  part,
119
140
  by,
@@ -1 +1 @@
1
- {"version":3,"file":"merged-parts.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merged-parts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merged-parts.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merged-parts.ts"],"names":[],"mappings":"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"}
@@ -14,3 +14,9 @@ export declare const sketchShowsNoChange: (options: {
14
14
  load: SketchPartLoader;
15
15
  pictureOf: PictureOf;
16
16
  }) => Promise<true | string>;
17
+ /** Why each target of each live variant of the sketch fails to load, one line each; `[]` when all of them load. */
18
+ export declare const variantLoadProblemsOf: (options: {
19
+ product: ResolvedProduct;
20
+ sketch: Sketch;
21
+ load: SketchPartLoader;
22
+ }) => Promise<string[]>;
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.sketchShowsNoChange = void 0;
12
+ exports.variantLoadProblemsOf = exports.sketchShowsNoChange = void 0;
13
13
  const merge_compare_1 = require("../../merge-compare");
14
14
  const list_system_1 = require("../list-system");
15
15
  const product_1 = require("../product");
@@ -98,4 +98,28 @@ const sketchShowsNoChange = (options) => __awaiter(void 0, void 0, void 0, funct
98
98
  return found.length === 0 ? true : found.join('; ');
99
99
  });
100
100
  exports.sketchShowsNoChange = sketchShowsNoChange;
101
+ /** Why each target of each live variant of the sketch fails to load, one line each; `[]` when all of them load. */
102
+ const variantLoadProblemsOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
103
+ var _a;
104
+ const { product, sketch, load } = options;
105
+ const live = sketch.variants.filter((variant) => !(0, sketch_1.rejectionOf)(sketch, variant));
106
+ const problems = [];
107
+ for (const variant of live) {
108
+ const parts = (0, overlay_1.overlaySketch)({ product, sketch, variant }).parts;
109
+ for (const target of sketch.targets) {
110
+ const file = (_a = parts.find((entry) => (0, resolve_product_1.partKeyOf)(entry) === target)) === null || _a === void 0 ? void 0 : _a.file;
111
+ if (!file)
112
+ continue;
113
+ const read = yield (0, list_system_1.readPartModule)({
114
+ part: { file },
115
+ product: product.name,
116
+ load: () => load({ file, product: product.name, sketch: { target: sketch.target, variant } }),
117
+ });
118
+ if (read.problem)
119
+ problems.push(`variant ${variant} ${target} does not load: ${read.problem}`);
120
+ }
121
+ }
122
+ return problems;
123
+ });
124
+ exports.variantLoadProblemsOf = variantLoadProblemsOf;
101
125
  //# sourceMappingURL=no-visible-change.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-visible-change.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/no-visible-change.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-visible-change.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/no-visible-change.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ const assets_1 = require("../assets");
7
7
  const layers_1 = require("../layers");
8
8
  const product_1 = require("../product");
9
9
  const resolve_product_1 = require("../resolve-product");
10
+ const host_edit_1 = require("./host-edit");
10
11
  const sketch_1 = require("./sketch");
11
12
  const mayChange = (sketch, part) => sketch.targets.some((key) => {
12
13
  const layer = key.split('/')[0];
@@ -28,14 +29,21 @@ const overlaySketch = (options) => {
28
29
  const sketched = own.parts.map((file) => (Object.assign(Object.assign({}, file), { origin: baseKeys.has((0, resolve_product_1.partKeyOf)(file)) ? 'overridden' : 'product', source: (0, fs_1.readFileSync)(file.file, 'utf8'), cssSource: file.css && (0, fs_1.existsSync)(file.css) ? (0, fs_1.readFileSync)(file.css, 'utf8') : null })));
29
30
  const keys = new Set(sketched.map(resolve_product_1.partKeyOf));
30
31
  const parts = [...product.parts.filter((part) => !keys.has((0, resolve_product_1.partKeyOf)(part))), ...sketched].sort((a, b) => layers_1.LAYERS.indexOf(a.layer) - layers_1.LAYERS.indexOf(b.layer) || a.name.localeCompare(b.name));
32
+ const isImportOnlyHostEdit = (part) => {
33
+ const before = product.parts.find((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === (0, resolve_product_1.partKeyOf)(part));
34
+ return (before !== undefined &&
35
+ before.cssSource === part.cssSource &&
36
+ (0, host_edit_1.importsAnyOf)(before.source, sketch.targets) &&
37
+ (0, host_edit_1.changesOnlyImports)(before.source, part.source));
38
+ };
31
39
  const outside = sketched
32
- .filter((part) => !mayChange(sketch, part))
40
+ .filter((part) => !mayChange(sketch, part) && !isImportOnlyHostEdit(part))
33
41
  .map((part) => ({
34
42
  rule: 'SKETCH',
35
43
  file: part.file,
36
- message: sketch.targets.length > 1
44
+ message: `${sketch.targets.length > 1
37
45
  ? `a sketch on ${sketch.targets.join(', ')} may change their layers and the layers below them, not ${(0, resolve_product_1.partKeyOf)(part)}`
38
- : `a sketch on ${sketch.target} may change ${sketch.layer} and the layers below it, not ${(0, resolve_product_1.partKeyOf)(part)}`,
46
+ : `a sketch on ${sketch.target} may change ${sketch.layer} and the layers below it, not ${(0, resolve_product_1.partKeyOf)(part)}`}${(0, host_edit_1.importsAnyOf)(part.source, sketch.targets) ? ' - a host of it may change only its imports' : ''}`,
39
47
  }));
40
48
  return Object.assign(Object.assign({}, product), { parts, fixtures: (_a = (0, product_1.fixturesOf)(dir)) !== null && _a !== void 0 ? _a : product.fixtures, problems: [...product.problems, ...own.problems, ...outside], sketched: [...keys], sharedDir: (0, sketch_1.sharedDirOf)(sketch), variantSharedDir: (0, sketch_1.variantSharedDirOf)(sketch, variant), assetsDir: (0, path_1.resolve)(dir, assets_1.ASSETS_FOLDER) });
41
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/overlay.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAA+B;AAC/B,sCAA0C;AAC1C,sCAAsD;AACtD,wCAAqD;AAErD,wDAA8E;AAC9E,qCAAiF;AASjF,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,IAAsD,EAAE,EAAE,CAC3F,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;IAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAU,CAAC;IAEzC,OAAO,GAAG,KAAK,IAAA,2BAAS,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,mBAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC;AAEL;;;;;;GAMG;AACI,MAAM,aAAa,GAAG,CAAC,OAI7B,EAAmB,EAAE;;IACpB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,2BAAS,CAAC,CAAC,CAAC;IACnG,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAgB,EAAE,CAAC,iCAClD,IAAI,KACP,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAA,2BAAS,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAChE,MAAM,EAAE,IAAA,iBAAY,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EACvC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAY,EAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IACnF,CAAC,CAAC;IACJ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,2BAAS,CAAC,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAA,2BAAS,EAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAC7F,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,eAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5F,CAAC;IACF,MAAM,OAAO,GAAc,QAAQ;SAChC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EACL,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,2DAA2D,IAAA,2BAAS,EAAC,IAAI,CAAC,EAAE;YACtH,CAAC,CAAC,eAAe,MAAM,CAAC,MAAM,eAAe,MAAM,CAAC,KAAK,iCAAiC,IAAA,2BAAS,EAAC,IAAI,CAAC,EAAE;KAChH,CAAC,CAAC,CAAC;IAEN,uCACK,OAAO,KACV,KAAK,EACL,QAAQ,EAAE,MAAA,IAAA,oBAAU,EAAC,GAAG,CAAC,mCAAI,OAAO,CAAC,QAAQ,EAC7C,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,EAC5D,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,EACnB,SAAS,EAAE,IAAA,oBAAW,EAAC,MAAM,CAAC,EAC9B,gBAAgB,EAAE,IAAA,2BAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,EACrD,SAAS,EAAE,IAAA,cAAO,EAAC,GAAG,EAAE,sBAAa,CAAC,IACtC;AACJ,CAAC,CAAC;AAxCW,QAAA,aAAa,iBAwCxB"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/overlay.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,11 @@ export declare const widthsOf: (source: string) => number[] | null;
29
29
  * without running it. An empty list when it has none or they are not written as a literal list.
30
30
  */
31
31
  export declare const interactionNamesOf: (source: string) => string[];
32
+ /**
33
+ * Whether a part file declares a control in `definePart({ controls: { … } })`, read without running it. A
34
+ * `controls` value that is not an object literal counts as declared, since it cannot be known.
35
+ */
36
+ export declare const declaresControlsOf: (source: string) => boolean;
32
37
  /**
33
38
  * The motions a part file writes in `definePart({ motions: { … } })` with the `from` and `to` it gives as string
34
39
  * literals, and the `motion` each literal rule in `rules` names, read without running it.
@@ -41,3 +46,34 @@ export declare const motionRefsOf: (source: string) => {
41
46
  }[];
42
47
  ruleMotions: string[];
43
48
  };
49
+ /**
50
+ * A pair a part file writes in `definePart({ unreachable: [ … ] })`. `literal` is false when the entry or one of its
51
+ * fields is written as something else than a literal; a field that is missing or not a string literal is null.
52
+ */
53
+ export type UnreachableSource = {
54
+ from: string | null;
55
+ to: string | null;
56
+ reason: string | null;
57
+ literal: boolean;
58
+ };
59
+ /**
60
+ * The pairs a part file marks unreachable, read without running it: none without `unreachable`, null when it is not
61
+ * an array literal.
62
+ */
63
+ export declare const unreachableOf: (source: string) => UnreachableSource[] | null;
64
+ /**
65
+ * What a part file writes in `definePart({ implements })`, read without running it: `none` without one, `unreadable`
66
+ * when it is not a string literal or a `{ route: '…' }` literal.
67
+ */
68
+ export type PartLinkSource = {
69
+ kind: 'none';
70
+ } | {
71
+ kind: 'component';
72
+ path: string;
73
+ } | {
74
+ kind: 'route';
75
+ route: string;
76
+ } | {
77
+ kind: 'unreadable';
78
+ };
79
+ export declare const partLinkOf: (source: string) => PartLinkSource;
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.motionRefsOf = exports.interactionNamesOf = exports.widthsOf = exports.hasBadWidths = exports.withMadeBy = exports.withNote = exports.noteOf = exports.madeByOf = exports.stateNamesOf = void 0;
6
+ exports.partLinkOf = exports.unreachableOf = exports.motionRefsOf = exports.declaresControlsOf = exports.interactionNamesOf = exports.widthsOf = exports.hasBadWidths = exports.withMadeBy = exports.withNote = exports.noteOf = exports.madeByOf = exports.stateNamesOf = void 0;
7
7
  const typescript_1 = __importDefault(require("typescript"));
8
+ const ts_source_1 = require("../ts-source");
8
9
  const definitionOf = (source) => {
9
- const file = typescript_1.default.createSourceFile('part.ts', source, typescript_1.default.ScriptTarget.Latest, true);
10
+ const file = (0, ts_source_1.sourceFileOf)(source);
10
11
  let found = null;
11
12
  const visit = (node) => {
12
13
  if (found)
@@ -154,6 +155,20 @@ const interactionNamesOf = (source) => {
154
155
  return interactions.elements.flatMap((element) => typescript_1.default.isStringLiteral(element) || typescript_1.default.isNoSubstitutionTemplateLiteral(element) ? [element.text] : []);
155
156
  };
156
157
  exports.interactionNamesOf = interactionNamesOf;
158
+ /**
159
+ * Whether a part file declares a control in `definePart({ controls: { … } })`, read without running it. A
160
+ * `controls` value that is not an object literal counts as declared, since it cannot be known.
161
+ */
162
+ const declaresControlsOf = (source) => {
163
+ const { definition } = definitionOf(source);
164
+ const property = definition === null || definition === void 0 ? void 0 : definition.properties.find((candidate) => candidate.name && nameOf(candidate.name) === 'controls');
165
+ if (!property)
166
+ return false;
167
+ return (!typescript_1.default.isPropertyAssignment(property) ||
168
+ !typescript_1.default.isObjectLiteralExpression(property.initializer) ||
169
+ property.initializer.properties.length > 0);
170
+ };
171
+ exports.declaresControlsOf = declaresControlsOf;
157
172
  const literalOf = (node) => node && (typescript_1.default.isStringLiteral(node) || typescript_1.default.isNoSubstitutionTemplateLiteral(node)) ? node.text : null;
158
173
  /**
159
174
  * The motions a part file writes in `definePart({ motions: { … } })` with the `from` and `to` it gives as string
@@ -193,4 +208,43 @@ const motionRefsOf = (source) => {
193
208
  };
194
209
  };
195
210
  exports.motionRefsOf = motionRefsOf;
211
+ const isStringLiteral = (node) => typescript_1.default.isStringLiteral(node) || typescript_1.default.isNoSubstitutionTemplateLiteral(node);
212
+ /**
213
+ * The pairs a part file marks unreachable, read without running it: none without `unreachable`, null when it is not
214
+ * an array literal.
215
+ */
216
+ const unreachableOf = (source) => {
217
+ const { definition } = definitionOf(source);
218
+ const property = definition === null || definition === void 0 ? void 0 : definition.properties.find((candidate) => candidate.name && nameOf(candidate.name) === 'unreachable');
219
+ if (!property)
220
+ return [];
221
+ if (!typescript_1.default.isPropertyAssignment(property) || !typescript_1.default.isArrayLiteralExpression(property.initializer))
222
+ return null;
223
+ return property.initializer.elements.map((element) => {
224
+ if (!typescript_1.default.isObjectLiteralExpression(element))
225
+ return { from: null, to: null, reason: null, literal: false };
226
+ const fields = ['from', 'to', 'reason'].map((name) => { var _a; return (_a = propertyOf(element, name)) === null || _a === void 0 ? void 0 : _a.initializer; });
227
+ return {
228
+ from: literalOf(fields[0]),
229
+ to: literalOf(fields[1]),
230
+ reason: literalOf(fields[2]),
231
+ literal: element.properties.every(typescript_1.default.isPropertyAssignment) &&
232
+ fields.every((field) => field === undefined || isStringLiteral(field)),
233
+ };
234
+ });
235
+ };
236
+ exports.unreachableOf = unreachableOf;
237
+ const partLinkOf = (source) => {
238
+ var _a, _b;
239
+ const { definition } = definitionOf(source);
240
+ const link = definition ? (_a = propertyOf(definition, 'implements')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
241
+ if (!link)
242
+ return { kind: 'none' };
243
+ const path = literalOf(link);
244
+ if (path !== null)
245
+ return { kind: 'component', path };
246
+ const route = typescript_1.default.isObjectLiteralExpression(link) ? literalOf((_b = propertyOf(link, 'route')) === null || _b === void 0 ? void 0 : _b.initializer) : null;
247
+ return route === null ? { kind: 'unreadable' } : { kind: 'route', route };
248
+ };
249
+ exports.partLinkOf = partLinkOf;
196
250
  //# sourceMappingURL=part-definition.js.map