@ethlete/cli 3.0.0-next.17 → 3.0.0-next.19

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 (145) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/design/css-inline.d.ts +4 -0
  3. package/design/define-call.ts +228 -3
  4. package/design/web/env.d.ts +2 -1
  5. package/design/web/frame.ts +51 -6
  6. package/package.json +27 -3
  7. package/src/index.js +26 -4
  8. package/src/index.js.map +1 -1
  9. package/src/lib/api/api-context.d.ts +15 -0
  10. package/src/lib/api/api-context.js +23 -0
  11. package/src/lib/api/api-context.js.map +1 -0
  12. package/src/lib/api/api-state.d.ts +31 -0
  13. package/src/lib/api/api-state.js +80 -0
  14. package/src/lib/api/api-state.js.map +1 -0
  15. package/src/lib/api/clear.js +10 -2
  16. package/src/lib/api/clear.js.map +1 -1
  17. package/src/lib/api/definition.d.ts +37 -1
  18. package/src/lib/api/definition.js +6 -0
  19. package/src/lib/api/definition.js.map +1 -1
  20. package/src/lib/api/doctor.d.ts +16 -0
  21. package/src/lib/api/doctor.js +71 -0
  22. package/src/lib/api/doctor.js.map +1 -0
  23. package/src/lib/api/fingerprint.d.ts +18 -0
  24. package/src/lib/api/fingerprint.js +63 -0
  25. package/src/lib/api/fingerprint.js.map +1 -0
  26. package/src/lib/api/git.d.ts +2 -0
  27. package/src/lib/api/git.js +7 -1
  28. package/src/lib/api/git.js.map +1 -1
  29. package/src/lib/api/help.js +13 -0
  30. package/src/lib/api/help.js.map +1 -1
  31. package/src/lib/api/index.d.ts +3 -0
  32. package/src/lib/api/index.js +33 -17
  33. package/src/lib/api/index.js.map +1 -1
  34. package/src/lib/api/load-definitions.js +3 -0
  35. package/src/lib/api/load-definitions.js.map +1 -1
  36. package/src/lib/api/lock.d.ts +46 -0
  37. package/src/lib/api/lock.js +152 -0
  38. package/src/lib/api/lock.js.map +1 -0
  39. package/src/lib/api/parse-argv.d.ts +12 -0
  40. package/src/lib/api/parse-argv.js +31 -0
  41. package/src/lib/api/parse-argv.js.map +1 -0
  42. package/src/lib/api/ports.js +12 -4
  43. package/src/lib/api/ports.js.map +1 -1
  44. package/src/lib/api/run-locked.d.ts +14 -0
  45. package/src/lib/api/run-locked.js +70 -0
  46. package/src/lib/api/run-locked.js.map +1 -0
  47. package/src/lib/api/run-ready.d.ts +60 -0
  48. package/src/lib/api/run-ready.js +220 -0
  49. package/src/lib/api/run-ready.js.map +1 -0
  50. package/src/lib/api/run-snapshot.d.ts +33 -0
  51. package/src/lib/api/run-snapshot.js +132 -0
  52. package/src/lib/api/run-snapshot.js.map +1 -0
  53. package/src/lib/api/run-status.d.ts +9 -0
  54. package/src/lib/api/run-status.js +55 -0
  55. package/src/lib/api/run-status.js.map +1 -0
  56. package/src/lib/api/run.d.ts +1 -1
  57. package/src/lib/api/run.js +134 -12
  58. package/src/lib/api/run.js.map +1 -1
  59. package/src/lib/api/snapshot.d.ts +63 -0
  60. package/src/lib/api/snapshot.js +140 -0
  61. package/src/lib/api/snapshot.js.map +1 -0
  62. package/src/lib/api/validate-definition.d.ts +7 -0
  63. package/src/lib/api/validate-definition.js +79 -0
  64. package/src/lib/api/validate-definition.js.map +1 -0
  65. package/src/lib/auth/auth-command.js +10 -2
  66. package/src/lib/auth/auth-command.js.map +1 -1
  67. package/src/lib/auth/gitlab-token.js +12 -4
  68. package/src/lib/auth/gitlab-token.js.map +1 -1
  69. package/src/lib/auth/index.js +18 -5
  70. package/src/lib/auth/index.js.map +1 -1
  71. package/src/lib/config/index.js +16 -3
  72. package/src/lib/config/index.js.map +1 -1
  73. package/src/lib/design/browser.d.ts +9 -0
  74. package/src/lib/design/browser.js +37 -0
  75. package/src/lib/design/browser.js.map +1 -0
  76. package/src/lib/design/calls-tsconfig.js +6 -2
  77. package/src/lib/design/calls-tsconfig.js.map +1 -1
  78. package/src/lib/design/check.d.ts +2 -1
  79. package/src/lib/design/check.js +151 -69
  80. package/src/lib/design/check.js.map +1 -1
  81. package/src/lib/design/design-command.d.ts +1 -1
  82. package/src/lib/design/design-command.js +58 -3
  83. package/src/lib/design/design-command.js.map +1 -1
  84. package/src/lib/design/index.js +19 -6
  85. package/src/lib/design/index.js.map +1 -1
  86. package/src/lib/design/legacy.d.ts +9 -0
  87. package/src/lib/design/legacy.js +52 -0
  88. package/src/lib/design/legacy.js.map +1 -0
  89. package/src/lib/design/missing-package.d.ts +2 -0
  90. package/src/lib/design/missing-package.js +15 -0
  91. package/src/lib/design/missing-package.js.map +1 -0
  92. package/src/lib/design/new-call.d.ts +11 -0
  93. package/src/lib/design/new-call.js +124 -0
  94. package/src/lib/design/new-call.js.map +1 -0
  95. package/src/lib/design/paths.d.ts +23 -2
  96. package/src/lib/design/paths.js +1 -1
  97. package/src/lib/design/paths.js.map +1 -1
  98. package/src/lib/design/render-fields.d.ts +29 -0
  99. package/src/lib/design/render-fields.js +31 -0
  100. package/src/lib/design/render-fields.js.map +1 -0
  101. package/src/lib/design/render-packages.d.ts +69 -0
  102. package/src/lib/design/render-packages.js +168 -0
  103. package/src/lib/design/render-packages.js.map +1 -0
  104. package/src/lib/design/render-worker.d.ts +1 -0
  105. package/src/lib/design/render-worker.js +149 -0
  106. package/src/lib/design/render-worker.js.map +1 -0
  107. package/src/lib/design/render.d.ts +23 -0
  108. package/src/lib/design/render.js +119 -0
  109. package/src/lib/design/render.js.map +1 -0
  110. package/src/lib/design/serve.d.ts +1 -1
  111. package/src/lib/design/serve.js +49 -12
  112. package/src/lib/design/serve.js.map +1 -1
  113. package/src/lib/design/ssr-shims.d.ts +10 -0
  114. package/src/lib/design/ssr-shims.js +128 -0
  115. package/src/lib/design/ssr-shims.js.map +1 -0
  116. package/src/lib/design/stamp.d.ts +16 -0
  117. package/src/lib/design/stamp.js +77 -0
  118. package/src/lib/design/stamp.js.map +1 -0
  119. package/src/lib/design/status.d.ts +33 -0
  120. package/src/lib/design/status.js +58 -0
  121. package/src/lib/design/status.js.map +1 -0
  122. package/src/lib/design/system-use.d.ts +23 -0
  123. package/src/lib/design/system-use.js +61 -0
  124. package/src/lib/design/system-use.js.map +1 -0
  125. package/src/lib/doctor/index.js +15 -2
  126. package/src/lib/doctor/index.js.map +1 -1
  127. package/src/lib/index.js +22 -9
  128. package/src/lib/index.js.map +1 -1
  129. package/src/lib/release.js +10 -2
  130. package/src/lib/release.js.map +1 -1
  131. package/src/lib/update/agent-setup.js +11 -3
  132. package/src/lib/update/agent-setup.js.map +1 -1
  133. package/src/lib/update/ai.js +13 -5
  134. package/src/lib/update/ai.js.map +1 -1
  135. package/src/lib/update/index.js +32 -19
  136. package/src/lib/update/index.js.map +1 -1
  137. package/src/lib/update/registry.js +10 -2
  138. package/src/lib/update/registry.js.map +1 -1
  139. package/src/lib/update/update-command.js +16 -8
  140. package/src/lib/update/update-command.js.map +1 -1
  141. package/src/lib/utils.js +11 -3
  142. package/src/lib/utils.js.map +1 -1
  143. package/design/web/host.css +0 -494
  144. package/design/web/host.ts +0 -445
  145. package/design/web/index.html +0 -11
@@ -1,12 +1,24 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.checkDesign = void 0;
4
- const tslib_1 = require("tslib");
5
13
  const child_process_1 = require("child_process");
6
14
  const fs_1 = require("fs");
7
15
  const path_1 = require("path");
16
+ const browser_1 = require("./browser");
8
17
  const calls_tsconfig_1 = require("./calls-tsconfig");
9
18
  const paths_1 = require("./paths");
19
+ const stamp_1 = require("./stamp");
20
+ const status_1 = require("./status");
21
+ const system_use_1 = require("./system-use");
10
22
  /**
11
23
  * A tool the checker shells out to, taken from the checkout first and from this package second, so
12
24
  * a checkout that keeps design calls need not install anything of its own. The path comes out of
@@ -46,74 +58,100 @@ const parse = (argv, names) => {
46
58
  }
47
59
  return flags;
48
60
  };
49
- const runBrowser = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
50
- const { base, slug, wanted } = options;
51
- const playwright = yield import('playwright').catch(() => null);
52
- if (!playwright) {
53
- console.error('NO BROWSER - neither the checkout nor this package resolves playwright, so the render stage cannot run.');
61
+ const NO_BROWSER = 'NO BROWSER - neither the checkout nor this package resolves playwright or playwright-core, so the ' +
62
+ 'render stage cannot run. Install one in the checkout: `npm i -D playwright-core && npx playwright-core install chromium`.';
63
+ const runBrowser = (options) => __awaiter(void 0, void 0, void 0, function* () {
64
+ const { target, base, slug, wanted, fails } = options;
65
+ const serverProblem = yield (0, stamp_1.serverProblemOf)({ base, own: (0, stamp_1.buildStampOf)() });
66
+ if (serverProblem)
67
+ return fails.unavailable(serverProblem);
68
+ const resolved = yield (0, browser_1.chromiumOf)(target);
69
+ if (!resolved)
70
+ return fails.unavailable(NO_BROWSER);
71
+ const browser = yield resolved.chromium.launch().catch((error) => {
72
+ fails.unavailable(`NO BROWSER - ${resolved.from} resolved, but its Chromium did not start. Install the browser that ` +
73
+ `version expects in the checkout: \`npx playwright install chromium\`.\n` +
74
+ trim(error instanceof Error ? error.message : String(error)));
75
+ return null;
76
+ });
77
+ if (!browser)
54
78
  return 1;
55
- }
56
- const browser = yield playwright.chromium.launch();
57
79
  try {
58
80
  return yield checkPage({
59
81
  page: yield browser.newPage({ viewport: { width: 1600, height: 1000 } }),
82
+ target,
60
83
  base,
61
84
  slug,
62
85
  wanted,
86
+ fail: fails.fail,
63
87
  });
64
88
  }
65
89
  finally {
66
90
  yield browser.close();
67
91
  }
68
92
  });
69
- const checkPage = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
70
- const { page, base, slug, wanted } = options;
93
+ /**
94
+ * Reads a call's declaration through the frame server's registry. A string, not a function: the
95
+ * build would turn a function's dynamic `import()` into a `require()`, which no browser has.
96
+ */
97
+ const declaredOf = (slug) => `(async (slug) => {
98
+ const { calls } = await import('/@id/__x00__virtual:design-explore');
99
+ if (!calls[slug]) return null;
100
+ try {
101
+ const call = (await calls[slug]()).default;
102
+ return {
103
+ stage: call.stage ?? null,
104
+ legacy: call.legacy === true,
105
+ rounds: (call.rounds ?? []).map((round) => round.key),
106
+ variants: call.variants.map((variant) => ({ key: variant.key, round: variant.round ?? '' })),
107
+ hasInventory: Boolean(call.inventory),
108
+ };
109
+ } catch (error) {
110
+ return { error: error instanceof Error ? error.message : String(error) };
111
+ }
112
+ })(${JSON.stringify(slug)})`;
113
+ /** Prose that no variant claims is stale prose, and it is the one thing the variants cannot show. */
114
+ const problemsOf = (declared) => {
115
+ const { rounds } = declared;
116
+ const drawn = new Set(declared.variants.map((variant) => variant.round));
117
+ return [
118
+ ...[...new Set(rounds.filter((key, index) => rounds.indexOf(key) !== index))].map((key) => `design-explore: two rounds share the key "${key}"`),
119
+ ...rounds.filter((key) => !drawn.has(key)).map((key) => `design-explore: round "${key}" has no variants`),
120
+ ];
121
+ };
122
+ const checkPage = (options) => __awaiter(void 0, void 0, void 0, function* () {
123
+ const { page, target, base, slug, wanted, fail } = options;
71
124
  /** Angular throws at render time, and the overlay never shows those, so read the console too. */
72
125
  const consoleErrors = [];
73
126
  page.on('console', (message) => message.type() === 'error' && consoleErrors.push(message.text()));
74
127
  page.on('pageerror', (error) => consoleErrors.push(error.message));
75
- const fail = (message) => {
76
- console.error(message);
77
- return 1;
78
- };
79
- /** The rounds view folds a settled round away, so only the contact sheet holds every variant. */
80
- yield page.goto(`${base}/?call=${encodeURIComponent(slug)}&view=sheet`, { waitUntil: 'domcontentloaded' });
81
- const onPage = yield page
82
- .locator('nav a[aria-current]')
83
- .first()
84
- .waitFor({ timeout: 15000 })
85
- .then(() => true, () => false);
86
- if (!onPage)
87
- return fail(`NO CALL "${slug}" - the host drew no page for it. Check the folder under .ethlete/design/calls.`);
88
- /** An unknown slug falls back to the first call, so read back which one the host actually drew. */
89
- const drawn = yield page
90
- .locator('nav a[aria-current="page"]')
91
- .first()
92
- .getAttribute('href')
93
- .then((href) => new URL(href !== null && href !== void 0 ? href : '', base).searchParams.get('call'));
94
- if (drawn !== slug) {
95
- return fail(`NO CALL "${slug}" - the host fell back to "${drawn}". Pass the whole slug, which is the call ` +
96
- `folder's path under .ethlete/design/calls.`);
97
- }
98
- const problems = yield page.locator('.problem').allInnerTexts();
128
+ yield page.goto(`${base}/frame.html`, { waitUntil: 'domcontentloaded' });
129
+ const declared = (yield page.evaluate(declaredOf(slug)));
130
+ if (declared === null)
131
+ return fail(`NO CALL "${slug}" - pass the folder's path under .ethlete/design/calls.`);
132
+ if ('error' in declared)
133
+ return fail(`COMPILE ERROR on ${slug}\n${trim(declared.error)}`);
134
+ const stageProblem = (0, system_use_1.stageProblemOf)({ slug, stage: declared.stage, legacy: declared.legacy });
135
+ if (stageProblem)
136
+ return fail(stageProblem);
137
+ const problems = problemsOf(declared);
99
138
  if (problems.length > 0)
100
139
  return fail(`BAD CALL ${slug}\n${problems.join('\n')}`);
101
- const keys = yield page
102
- .locator('iframe[data-variant]')
103
- .evaluateAll((frames) => frames.map((frame) => { var _a; return (_a = frame.dataset['variant']) !== null && _a !== void 0 ? _a : ''; }));
140
+ const keys = declared.variants.map((variant) => variant.key);
104
141
  const checked = wanted ? keys.filter((key) => key === wanted) : keys;
105
142
  if (checked.length === 0) {
106
143
  return fail(`NO VARIANT "${wanted}" on ${slug} - it declares ${keys.length > 0 ? keys.join(', ') : 'none'}.`);
107
144
  }
108
145
  for (const key of checked) {
109
- /** A frame reloads on every edit, which detaches a `page.frames()` handle, so locate it each time. */
110
- const frame = page.frameLocator(`iframe[data-variant="${key}"]`);
111
- const drew = yield frame
112
- .locator('#root > *')
146
+ yield page.goto(`${base}/frame.html?call=${encodeURIComponent(slug)}&variant=${encodeURIComponent(key)}`, {
147
+ waitUntil: 'domcontentloaded',
148
+ });
149
+ const drew = yield page
150
+ .locator('#root > :not(style)')
113
151
  .first()
114
152
  .waitFor({ timeout: 15000 })
115
153
  .then(() => true, () => false);
116
- const overlay = frame.locator('vite-error-overlay');
154
+ const overlay = page.locator('vite-error-overlay');
117
155
  if ((yield overlay.count()) > 0) {
118
156
  const text = yield overlay
119
157
  .locator('.message-body')
@@ -126,27 +164,26 @@ const checkPage = (options) => tslib_1.__awaiter(void 0, void 0, void 0, functio
126
164
  `An empty module with a 200 response means the tsconfig turned emit off.\n` +
127
165
  (consoleErrors.length > 0 ? trim(consoleErrors.join('\n')) : ''));
128
166
  }
129
- const text = yield frame.locator('#root').innerText();
167
+ const text = yield page.locator('#root').innerText();
130
168
  if (text.startsWith('design-explore:'))
131
169
  return fail(`FRAME REFUSED on ${slug} variant ${key}\n${text}`);
132
170
  }
133
- if (consoleErrors.length > 0) {
134
- console.error(`RENDERED WITH ERRORS on ${slug}\n${trim(consoleErrors.join('\n'))}`);
135
- return 1;
136
- }
171
+ if (consoleErrors.length > 0)
172
+ return fail(`RENDERED WITH ERRORS on ${slug}\n${trim(consoleErrors.join('\n'))}`);
173
+ const warnings = [
174
+ (0, system_use_1.systemWarningOf)({ target, slug, stage: declared.stage }),
175
+ (0, system_use_1.inventoryWarningOf)({ slug, stage: declared.stage, hasInventory: declared.hasInventory }),
176
+ ];
177
+ for (const warning of warnings)
178
+ if (warning)
179
+ console.warn(warning);
137
180
  console.log(`ok ${slug} (${checked.join(', ')})`);
138
181
  return 0;
139
182
  });
140
- /**
141
- * Finds out why a call does not render, in the cheapest order: eslint on the named files, then
142
- * `tsc --noEmit` over the checkout's calls, then the live page in a headless browser. A compile
143
- * error draws an overlay on top of the drawing, so a screenshot of one looks like a design -
144
- * never screenshot before this says `ok`.
145
- */
146
- const checkDesign = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
183
+ const runChecks = (options) => __awaiter(void 0, void 0, void 0, function* () {
147
184
  var _a, _b, _c, _d, _e, _f;
148
- const { target, argv, invocation } = options;
149
- const flags = parse(argv, ['--lint', '--tsconfig', '--call', '--variant']);
185
+ const { target, flags, invocation, fails } = options;
186
+ const { fail, unavailable } = fails;
150
187
  const lintFiles = (_a = flags['--lint']) !== null && _a !== void 0 ? _a : [];
151
188
  const slug = (_b = flags['--call']) === null || _b === void 0 ? void 0 : _b[0];
152
189
  const wanted = (_c = flags['--variant']) === null || _c === void 0 ? void 0 : _c[0];
@@ -157,16 +194,13 @@ const checkDesign = (options) => tslib_1.__awaiter(void 0, void 0, void 0, funct
157
194
  }
158
195
  if (lintFiles.length > 0) {
159
196
  const eslint = binaryOf({ target, pkg: 'eslint', bin: 'eslint' });
160
- if (!eslint) {
161
- console.error(`NO LINTER - ${target} installs no eslint, so --lint has nothing to run.`);
162
- return 1;
163
- }
197
+ if (!eslint)
198
+ return unavailable(`NO LINTER - ${target} installs no eslint, so --lint has nothing to run.`);
164
199
  try {
165
200
  (0, child_process_1.execFileSync)(process.execPath, [eslint, ...lintFiles], { cwd: target, encoding: 'utf8', stdio: 'pipe' });
166
201
  }
167
202
  catch (error) {
168
- console.error(`LINT\n${outputOf(error)}`);
169
- return 1;
203
+ return fail(`LINT\n${outputOf(error)}`);
170
204
  }
171
205
  }
172
206
  if (tsconfig) {
@@ -176,10 +210,8 @@ const checkDesign = (options) => tslib_1.__awaiter(void 0, void 0, void 0, funct
176
210
  */
177
211
  const native = process.env['TSC'];
178
212
  const tsc = native ? null : binaryOf({ target, pkg: 'typescript', bin: 'tsc' });
179
- if (!native && !tsc) {
180
- console.error('NO TYPE CHECKER - neither the checkout nor this package resolves typescript.');
181
- return 1;
182
- }
213
+ if (!native && !tsc)
214
+ return unavailable('NO TYPE CHECKER - neither the checkout nor this package resolves typescript.');
183
215
  const command = native
184
216
  ? { file: 'npx', args: ['-y', native, '--noEmit', '-p', tsconfig] }
185
217
  : { file: process.execPath, args: [tsc, '--noEmit', '-p', tsconfig] };
@@ -187,8 +219,7 @@ const checkDesign = (options) => tslib_1.__awaiter(void 0, void 0, void 0, funct
187
219
  (0, child_process_1.execFileSync)(command.file, command.args, { cwd: target, encoding: 'utf8', stdio: 'pipe' });
188
220
  }
189
221
  catch (error) {
190
- console.error(`TYPE ERROR\n${outputOf(error)}`);
191
- return 1;
222
+ return fail(`TYPE ERROR\n${outputOf(error)}`);
192
223
  }
193
224
  }
194
225
  if (!slug) {
@@ -197,7 +228,58 @@ const checkDesign = (options) => tslib_1.__awaiter(void 0, void 0, void 0, funct
197
228
  }
198
229
  const config = (0, paths_1.readConfig)(target);
199
230
  const base = (_f = process.env['DE_URL']) !== null && _f !== void 0 ? _f : `http://localhost:${config ? (0, paths_1.portOf)(config) : paths_1.DEFAULT_PORT}`;
200
- return runBrowser({ base, slug, wanted });
231
+ return runBrowser({ target, base, slug, wanted, fails });
232
+ });
233
+ /**
234
+ * Finds out why a call does not render, in the cheapest order: eslint on the named files, then
235
+ * `tsc --noEmit` over the checkout's calls, then the live page in a headless browser. A compile
236
+ * error draws an overlay on top of the drawing, so a screenshot of one looks like a design -
237
+ * never screenshot before this says `ok`. With `--call`, the call's status follows the check, but
238
+ * a check that cannot run (no browser, no server, a stale server) leaves the status it found.
239
+ */
240
+ const checkDesign = (options) => __awaiter(void 0, void 0, void 0, function* () {
241
+ var _a;
242
+ const { target, argv, invocation } = options;
243
+ const flags = parse(argv, ['--lint', '--tsconfig', '--call', '--variant']);
244
+ const slug = (_a = flags['--call']) === null || _a === void 0 ? void 0 : _a[0];
245
+ let failure = '';
246
+ let blocked = false;
247
+ const fails = {
248
+ fail: (message) => {
249
+ console.error(message);
250
+ failure || (failure = message);
251
+ return 1;
252
+ },
253
+ unavailable: (message) => {
254
+ console.error(message);
255
+ blocked = true;
256
+ return 1;
257
+ },
258
+ };
259
+ if (!slug)
260
+ return runChecks({ target, flags, invocation, fails });
261
+ const restore = (0, status_1.holdStatus)({ checkout: target, slug });
262
+ (0, status_1.writeStatus)({ checkout: target, slug, state: 'checking' });
263
+ try {
264
+ const code = yield runChecks({ target, flags, invocation, fails });
265
+ if (blocked) {
266
+ restore();
267
+ }
268
+ else {
269
+ (0, status_1.writeStatus)(Object.assign({ checkout: target, slug }, (code === 0 ? { state: 'ready' } : { state: 'failed', message: failure })));
270
+ }
271
+ return code;
272
+ }
273
+ catch (error) {
274
+ const message = error instanceof Error ? error.message : String(error);
275
+ if (/net::ERR_/.test(message)) {
276
+ restore();
277
+ console.error(`NO SERVER - the page stopped answering: ${trim(message)}`);
278
+ return 1;
279
+ }
280
+ (0, status_1.writeStatus)({ checkout: target, slug, state: 'failed', message });
281
+ throw error;
282
+ }
201
283
  });
202
284
  exports.checkDesign = checkDesign;
203
285
  //# sourceMappingURL=check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/check.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `et design [checkout]` serves the design page of a checkout, and `et design check …` says why
2
+ * `et design [checkout]` serves the variant frames of a checkout, and `et design check …` says why
3
3
  * a call does not render. Both work on any checkout that keeps a `.ethlete/design` folder, so a
4
4
  * repository needs no design tooling of its own.
5
5
  */
@@ -1,10 +1,22 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.designCommand = void 0;
4
- const tslib_1 = require("tslib");
5
13
  const path_1 = require("path");
6
14
  const check_1 = require("./check");
15
+ const legacy_1 = require("./legacy");
16
+ const new_call_1 = require("./new-call");
7
17
  const serve_1 = require("./serve");
18
+ const stamp_1 = require("./stamp");
19
+ const status_1 = require("./status");
8
20
  /** Reads `--checkout <path>` out of an argument list, and answers with the path and the rest. */
9
21
  const splitCheckout = (argv, root) => {
10
22
  var _a;
@@ -13,17 +25,60 @@ const splitCheckout = (argv, root) => {
13
25
  return { target: root, rest: argv };
14
26
  return { target: (0, path_1.resolve)(root, (_a = argv[index + 1]) !== null && _a !== void 0 ? _a : '.'), rest: [...argv.slice(0, index), ...argv.slice(index + 2)] };
15
27
  };
28
+ const helpOf = (invocation) => [
29
+ `${invocation} [checkout]`,
30
+ ' Serve the variant frames of a checkout. The checkout defaults to the working directory.',
31
+ '',
32
+ `${invocation} check [--lint <file>…] [--tsconfig [path]] [--call <slug> [--variant <key>]]`,
33
+ ' Find out why a call does not render: eslint, then tsc, then the live frames.',
34
+ '',
35
+ `${invocation} new <project>/<group>/<name> --stage <stage> [--variants a,b]`,
36
+ ' Write a call that renders at once: call.ts, fixture.ts and one variant file per key.',
37
+ ' A quick exploration of an idea takes --stage sketch.',
38
+ '',
39
+ `${invocation} legacy <project>`,
40
+ ' Mark every call of a project without a stage as legacy, so check accepts it.',
41
+ '',
42
+ `${invocation} status <slug> <${status_1.CALL_STATES.join('|')}>`,
43
+ ' Record the state of a call for Ethlete Studio. new and check --call record theirs on their own.',
44
+ '',
45
+ `${invocation} stamp`,
46
+ ' Print the version and build of this cli as JSON, which a running server answers with too.',
47
+ '',
48
+ 'Every command takes --checkout <path>. DE_PORT overrules the port in .ethlete/design/config.json.',
49
+ '',
50
+ ].join('\n');
16
51
  /**
17
- * `et design [checkout]` serves the design page of a checkout, and `et design check …` says why
52
+ * `et design [checkout]` serves the variant frames of a checkout, and `et design check …` says why
18
53
  * a call does not render. Both work on any checkout that keeps a `.ethlete/design` folder, so a
19
54
  * repository needs no design tooling of its own.
20
55
  */
21
- const designCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
56
+ const designCommand = (options) => __awaiter(void 0, void 0, void 0, function* () {
22
57
  const { root, argv, invocation } = options;
58
+ if (argv[0] === '--help' || argv[0] === '-h' || argv[0] === 'help') {
59
+ console.log(helpOf(invocation));
60
+ return 0;
61
+ }
62
+ if (argv[0] === 'stamp') {
63
+ console.log(JSON.stringify((0, stamp_1.buildStampOf)()));
64
+ return 0;
65
+ }
23
66
  if (argv[0] === 'check') {
24
67
  const { target, rest } = splitCheckout(argv.slice(1), root);
25
68
  return (0, check_1.checkDesign)({ target, argv: rest, invocation });
26
69
  }
70
+ if (argv[0] === 'new') {
71
+ const { target, rest } = splitCheckout(argv.slice(1), root);
72
+ return (0, new_call_1.newCall)({ target, argv: rest, invocation });
73
+ }
74
+ if (argv[0] === 'legacy') {
75
+ const { target, rest } = splitCheckout(argv.slice(1), root);
76
+ return (0, legacy_1.markLegacy)({ target, argv: rest, invocation });
77
+ }
78
+ if (argv[0] === 'status') {
79
+ const { target, rest } = splitCheckout(argv.slice(1), root);
80
+ return (0, status_1.designStatus)({ target, argv: rest, invocation });
81
+ }
27
82
  const { target, rest } = splitCheckout(argv, root);
28
83
  const positional = rest[0];
29
84
  return (0, serve_1.serveDesign)({ target: positional ? (0, path_1.resolve)(root, positional) : target });
@@ -1 +1 @@
1
- {"version":3,"file":"design-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/design-command.ts"],"names":[],"mappings":";;;;AAAA,+BAA+B;AAC/B,mCAAsC;AACtC,mCAAsC;AAEtC,iGAAiG;AACjG,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,IAAY,EAAE,EAAE;;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEtD,OAAO,EAAE,MAAM,EAAE,IAAA,cAAO,EAAC,IAAI,EAAE,MAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,mCAAI,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACtH,CAAC,CAAC;AAEF;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAO,OAA6D,EAAmB,EAAE;IACpH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAE3C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAE5D,OAAO,IAAA,mBAAW,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,OAAO,IAAA,mBAAW,EAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAClF,CAAC,CAAA,CAAC;AAbW,QAAA,aAAa,iBAaxB"}
1
+ {"version":3,"file":"design-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/design-command.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,22 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./calls-tsconfig"), exports);
5
- tslib_1.__exportStar(require("./check"), exports);
6
- tslib_1.__exportStar(require("./design-command"), exports);
7
- tslib_1.__exportStar(require("./paths"), exports);
8
- tslib_1.__exportStar(require("./serve"), exports);
17
+ __exportStar(require("./calls-tsconfig"), exports);
18
+ __exportStar(require("./check"), exports);
19
+ __exportStar(require("./design-command"), exports);
20
+ __exportStar(require("./paths"), exports);
21
+ __exportStar(require("./serve"), exports);
9
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,kDAAwB;AACxB,2DAAiC;AACjC,kDAAwB;AACxB,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,0CAAwB;AACxB,mDAAiC;AACjC,0CAAwB;AACxB,0CAAwB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Writes `legacy: true` into every call of a project that declares no stage, so `et design check`
3
+ * accepts the calls made before the stage was required. A call that declares one stays untouched.
4
+ */
5
+ export declare const markLegacy: (options: {
6
+ target: string;
7
+ argv: string[];
8
+ invocation: string;
9
+ }) => 0 | 1 | 2;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.markLegacy = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const paths_1 = require("./paths");
7
+ const OPENING = /defineCall\(\{\n/;
8
+ const DECLARES = /^\s*(stage|legacy)\s*:/m;
9
+ const callFilesOf = (folder) => (0, fs_1.readdirSync)(folder).flatMap((name) => {
10
+ const path = (0, path_1.join)(folder, name);
11
+ if ((0, fs_1.statSync)(path).isDirectory())
12
+ return callFilesOf(path);
13
+ return name === 'call.ts' ? [path] : [];
14
+ });
15
+ /**
16
+ * Writes `legacy: true` into every call of a project that declares no stage, so `et design check`
17
+ * accepts the calls made before the stage was required. A call that declares one stays untouched.
18
+ */
19
+ const markLegacy = (options) => {
20
+ const { target, argv, invocation } = options;
21
+ const project = argv.find((argument) => !argument.startsWith('--'));
22
+ if (!project) {
23
+ console.error(`usage: ${invocation} legacy <project>`);
24
+ return 2;
25
+ }
26
+ const folder = (0, path_1.join)((0, paths_1.callsRootOf)(target), project);
27
+ if (!(0, fs_1.existsSync)(folder)) {
28
+ console.error(`NO PROJECT "${project}" - ${(0, path_1.relative)(target, folder)} does not exist.`);
29
+ return 1;
30
+ }
31
+ const unreadable = [];
32
+ let marked = 0;
33
+ for (const path of callFilesOf(folder)) {
34
+ const text = (0, fs_1.readFileSync)(path, 'utf8');
35
+ if (DECLARES.test(text))
36
+ continue;
37
+ if (!OPENING.test(text)) {
38
+ unreadable.push((0, path_1.relative)(target, path));
39
+ continue;
40
+ }
41
+ (0, fs_1.writeFileSync)(path, text.replace(OPENING, (opening) => `${opening} legacy: true,\n`));
42
+ console.log(`legacy ${(0, path_1.relative)(target, path)}`);
43
+ marked++;
44
+ }
45
+ for (const path of unreadable) {
46
+ console.error(`SKIPPED ${path} - no "defineCall({" line. Add legacy: true by hand.`);
47
+ }
48
+ console.log(`ok ${marked} call${marked === 1 ? '' : 's'} marked legacy in ${project}`);
49
+ return unreadable.length > 0 ? 1 : 0;
50
+ };
51
+ exports.markLegacy = markLegacy;
52
+ //# sourceMappingURL=legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/legacy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** Turns a failed Angular import into a message that names the missing package, or returns null for any other error. */
2
+ export declare const missingPackageMessage: (error: unknown, checkout: string) => string | null;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.missingPackageMessage = void 0;
4
+ const MISSING_PACKAGE = /Cannot find package '([^']+)'/;
5
+ /** Turns a failed Angular import into a message that names the missing package, or returns null for any other error. */
6
+ const missingPackageMessage = (error, checkout) => {
7
+ var _a;
8
+ const text = error instanceof Error ? error.message : String(error);
9
+ const name = (_a = MISSING_PACKAGE.exec(text)) === null || _a === void 0 ? void 0 : _a[1];
10
+ if (!name || !name.startsWith('@angular/'))
11
+ return null;
12
+ return `ng() needs ${name} in ${checkout}; install it as a dev dependency.`;
13
+ };
14
+ exports.missingPackageMessage = missingPackageMessage;
15
+ //# sourceMappingURL=missing-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"missing-package.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/missing-package.ts"],"names":[],"mappings":";;;AAAA,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAExD,wHAAwH;AACjH,MAAM,qBAAqB,GAAG,CAAC,KAAc,EAAE,QAAgB,EAAiB,EAAE;;IACvF,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,MAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,0CAAG,CAAC,CAAC,CAAC;IAE7C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAExD,OAAO,cAAc,IAAI,OAAO,QAAQ,mCAAmC,CAAC;AAC9E,CAAC,CAAC;AAPW,QAAA,qBAAqB,yBAOhC"}
@@ -0,0 +1,11 @@
1
+ /** The values of `CallStage` in `design/define-call.ts`; a spec keeps the two lists equal. */
2
+ export declare const CALL_STAGES: string[];
3
+ /**
4
+ * Writes a call that renders at once: `call.ts`, a shared `fixture.ts` and one drawing per variant
5
+ * key. Refuses a slug whose folder exists, so it never overwrites a drawing.
6
+ */
7
+ export declare const newCall: (options: {
8
+ target: string;
9
+ argv: string[];
10
+ invocation: string;
11
+ }) => 0 | 1 | 2;