@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.
- package/CHANGELOG.md +41 -0
- package/design/css-inline.d.ts +4 -0
- package/design/define-call.ts +228 -3
- package/design/web/env.d.ts +2 -1
- package/design/web/frame.ts +51 -6
- package/package.json +27 -3
- package/src/index.js +26 -4
- package/src/index.js.map +1 -1
- package/src/lib/api/api-context.d.ts +15 -0
- package/src/lib/api/api-context.js +23 -0
- package/src/lib/api/api-context.js.map +1 -0
- package/src/lib/api/api-state.d.ts +31 -0
- package/src/lib/api/api-state.js +80 -0
- package/src/lib/api/api-state.js.map +1 -0
- package/src/lib/api/clear.js +10 -2
- package/src/lib/api/clear.js.map +1 -1
- package/src/lib/api/definition.d.ts +37 -1
- package/src/lib/api/definition.js +6 -0
- package/src/lib/api/definition.js.map +1 -1
- package/src/lib/api/doctor.d.ts +16 -0
- package/src/lib/api/doctor.js +71 -0
- package/src/lib/api/doctor.js.map +1 -0
- package/src/lib/api/fingerprint.d.ts +18 -0
- package/src/lib/api/fingerprint.js +63 -0
- package/src/lib/api/fingerprint.js.map +1 -0
- package/src/lib/api/git.d.ts +2 -0
- package/src/lib/api/git.js +7 -1
- package/src/lib/api/git.js.map +1 -1
- package/src/lib/api/help.js +13 -0
- package/src/lib/api/help.js.map +1 -1
- package/src/lib/api/index.d.ts +3 -0
- package/src/lib/api/index.js +33 -17
- package/src/lib/api/index.js.map +1 -1
- package/src/lib/api/load-definitions.js +3 -0
- package/src/lib/api/load-definitions.js.map +1 -1
- package/src/lib/api/lock.d.ts +46 -0
- package/src/lib/api/lock.js +152 -0
- package/src/lib/api/lock.js.map +1 -0
- package/src/lib/api/parse-argv.d.ts +12 -0
- package/src/lib/api/parse-argv.js +31 -0
- package/src/lib/api/parse-argv.js.map +1 -0
- package/src/lib/api/ports.js +12 -4
- package/src/lib/api/ports.js.map +1 -1
- package/src/lib/api/run-locked.d.ts +14 -0
- package/src/lib/api/run-locked.js +70 -0
- package/src/lib/api/run-locked.js.map +1 -0
- package/src/lib/api/run-ready.d.ts +60 -0
- package/src/lib/api/run-ready.js +220 -0
- package/src/lib/api/run-ready.js.map +1 -0
- package/src/lib/api/run-snapshot.d.ts +33 -0
- package/src/lib/api/run-snapshot.js +132 -0
- package/src/lib/api/run-snapshot.js.map +1 -0
- package/src/lib/api/run-status.d.ts +9 -0
- package/src/lib/api/run-status.js +55 -0
- package/src/lib/api/run-status.js.map +1 -0
- package/src/lib/api/run.d.ts +1 -1
- package/src/lib/api/run.js +134 -12
- package/src/lib/api/run.js.map +1 -1
- package/src/lib/api/snapshot.d.ts +63 -0
- package/src/lib/api/snapshot.js +140 -0
- package/src/lib/api/snapshot.js.map +1 -0
- package/src/lib/api/validate-definition.d.ts +7 -0
- package/src/lib/api/validate-definition.js +79 -0
- package/src/lib/api/validate-definition.js.map +1 -0
- package/src/lib/auth/auth-command.js +10 -2
- package/src/lib/auth/auth-command.js.map +1 -1
- package/src/lib/auth/gitlab-token.js +12 -4
- package/src/lib/auth/gitlab-token.js.map +1 -1
- package/src/lib/auth/index.js +18 -5
- package/src/lib/auth/index.js.map +1 -1
- package/src/lib/config/index.js +16 -3
- package/src/lib/config/index.js.map +1 -1
- package/src/lib/design/browser.d.ts +9 -0
- package/src/lib/design/browser.js +37 -0
- package/src/lib/design/browser.js.map +1 -0
- package/src/lib/design/calls-tsconfig.js +6 -2
- package/src/lib/design/calls-tsconfig.js.map +1 -1
- package/src/lib/design/check.d.ts +2 -1
- package/src/lib/design/check.js +151 -69
- package/src/lib/design/check.js.map +1 -1
- package/src/lib/design/design-command.d.ts +1 -1
- package/src/lib/design/design-command.js +58 -3
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/index.js +19 -6
- package/src/lib/design/index.js.map +1 -1
- package/src/lib/design/legacy.d.ts +9 -0
- package/src/lib/design/legacy.js +52 -0
- package/src/lib/design/legacy.js.map +1 -0
- package/src/lib/design/missing-package.d.ts +2 -0
- package/src/lib/design/missing-package.js +15 -0
- package/src/lib/design/missing-package.js.map +1 -0
- package/src/lib/design/new-call.d.ts +11 -0
- package/src/lib/design/new-call.js +124 -0
- package/src/lib/design/new-call.js.map +1 -0
- package/src/lib/design/paths.d.ts +23 -2
- package/src/lib/design/paths.js +1 -1
- package/src/lib/design/paths.js.map +1 -1
- package/src/lib/design/render-fields.d.ts +29 -0
- package/src/lib/design/render-fields.js +31 -0
- package/src/lib/design/render-fields.js.map +1 -0
- package/src/lib/design/render-packages.d.ts +69 -0
- package/src/lib/design/render-packages.js +168 -0
- package/src/lib/design/render-packages.js.map +1 -0
- package/src/lib/design/render-worker.d.ts +1 -0
- package/src/lib/design/render-worker.js +149 -0
- package/src/lib/design/render-worker.js.map +1 -0
- package/src/lib/design/render.d.ts +23 -0
- package/src/lib/design/render.js +119 -0
- package/src/lib/design/render.js.map +1 -0
- package/src/lib/design/serve.d.ts +1 -1
- package/src/lib/design/serve.js +49 -12
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/ssr-shims.d.ts +10 -0
- package/src/lib/design/ssr-shims.js +128 -0
- package/src/lib/design/ssr-shims.js.map +1 -0
- package/src/lib/design/stamp.d.ts +16 -0
- package/src/lib/design/stamp.js +77 -0
- package/src/lib/design/stamp.js.map +1 -0
- package/src/lib/design/status.d.ts +33 -0
- package/src/lib/design/status.js +58 -0
- package/src/lib/design/status.js.map +1 -0
- package/src/lib/design/system-use.d.ts +23 -0
- package/src/lib/design/system-use.js +61 -0
- package/src/lib/design/system-use.js.map +1 -0
- package/src/lib/doctor/index.js +15 -2
- package/src/lib/doctor/index.js.map +1 -1
- package/src/lib/index.js +22 -9
- package/src/lib/index.js.map +1 -1
- package/src/lib/release.js +10 -2
- package/src/lib/release.js.map +1 -1
- package/src/lib/update/agent-setup.js +11 -3
- package/src/lib/update/agent-setup.js.map +1 -1
- package/src/lib/update/ai.js +13 -5
- package/src/lib/update/ai.js.map +1 -1
- package/src/lib/update/index.js +32 -19
- package/src/lib/update/index.js.map +1 -1
- package/src/lib/update/registry.js +10 -2
- package/src/lib/update/registry.js.map +1 -1
- package/src/lib/update/update-command.js +16 -8
- package/src/lib/update/update-command.js.map +1 -1
- package/src/lib/utils.js +11 -3
- package/src/lib/utils.js.map +1 -1
- package/design/web/host.css +0 -494
- package/design/web/host.ts +0 -445
- package/design/web/index.html +0 -11
package/src/lib/design/check.js
CHANGED
|
@@ -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
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
70
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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 =
|
|
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
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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 =
|
|
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
|
|
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
|
-
|
|
135
|
-
|
|
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,
|
|
149
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":";;;;AAAA,iDAA6C;AAC7C,2BAAkC;AAClC,+BAAwC;AACxC,qDAAsD;AACtD,mCAA2D;AAE3D;;;;GAIG;AACH,MAAM,QAAQ,GAAG,CAAC,OAAqD,EAAE,EAAE;IACzE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACxF,MAAM,QAAQ,GAAI,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAA+C,CAAC,GAAG,CAAC;QAC/G,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,qFAAqF;AACrF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAC5B,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEvH,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,EAAE;;IAClC,MAAM,KAAK,GAAG,KAA6C,CAAC;IAE5D,OAAO,IAAI,CAAC,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,EAAE,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC;AAIF,MAAM,KAAK,GAAG,CAAC,IAAc,EAAE,KAAe,EAAS,EAAE;;IACvD,MAAM,KAAK,GAAU,EAAE,CAAC;IACxB,IAAI,OAAO,GAAkB,IAAI,CAAC;IAElC,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,QAAQ,CAAC;YACnB,MAAA,KAAK,CAAC,OAAO,qCAAb,KAAK,CAAC,OAAO,IAAM,EAAE,EAAC;QACxB,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,MAAA,KAAK,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAO,OAAwD,EAAmB,EAAE;IACrG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAEhE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CACX,yGAAyG,CAC1G,CAAC;QAEF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAEnD,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC;YACrB,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YACxE,IAAI;YACJ,IAAI;YACJ,MAAM;SACP,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC,CAAA,CAAC;AAEF,MAAM,SAAS,GAAG,CAAO,OAKxB,EAAmB,EAAE;IACpB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE7C,iGAAiG;IACjG,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnE,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE;QAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEvB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,iGAAiG;IACjG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,UAAU,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAE3G,MAAM,MAAM,GAAG,MAAM,IAAI;SACtB,OAAO,CAAC,qBAAqB,CAAC;SAC9B,KAAK,EAAE;SACP,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC3B,IAAI,CACH,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;IAEJ,IAAI,CAAC,MAAM;QACT,OAAO,IAAI,CAAC,YAAY,IAAI,iFAAiF,CAAC,CAAC;IAEjH,mGAAmG;IACnG,MAAM,KAAK,GAAG,MAAM,IAAI;SACrB,OAAO,CAAC,4BAA4B,CAAC;SACrC,KAAK,EAAE;SACP,YAAY,CAAC,MAAM,CAAC;SACpB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CACT,YAAY,IAAI,8BAA8B,KAAK,4CAA4C;YAC7F,4CAA4C,CAC/C,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;IAChE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,YAAY,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEjF,MAAM,IAAI,GAAG,MAAM,IAAI;SACpB,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAC,KAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAC,CAAC;IACnG,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,eAAe,MAAM,QAAQ,IAAI,kBAAkB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,sGAAsG;QACtG,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAG,MAAM,KAAK;aACrB,OAAO,CAAC,WAAW,CAAC;aACpB,KAAK,EAAE;aACP,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC3B,IAAI,CACH,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;QAEJ,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,MAAM,OAAO;iBACvB,OAAO,CAAC,eAAe,CAAC;iBACxB,SAAS,EAAE;iBACX,KAAK,CAAC,GAAG,EAAE,CAAC,oCAAoC,CAAC,CAAC;YAErD,OAAO,IAAI,CAAC,oBAAoB,IAAI,YAAY,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CACT,YAAY,IAAI,YAAY,GAAG,+BAA+B;gBAC5D,2EAA2E;gBAC3E,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACnE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;QACtD,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,OAAO,IAAI,CAAC,oBAAoB,IAAI,YAAY,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAEpF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAElD,OAAO,CAAC,CAAC;AACX,CAAC,CAAA,CAAC;AAEF;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CAAO,OAA+D,EAAmB,EAAE;;IACpH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE3E,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAC,0CAAG,CAAC,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,WAAW,CAAC,0CAAG,CAAC,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAA,MAAA,KAAK,CAAC,YAAY,CAAC,0CAAG,CAAC,CAAC,mCAAI,IAAA,mCAAkB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,UAAU,UAAU,+EAA+E,CAAC,CAAC;QAEnH,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,eAAe,MAAM,oDAAoD,CAAC,CAAC;YAEzF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,IAAA,4BAAY,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,SAAS,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE1C,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb;;;WAGG;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhF,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;YAE9F,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,OAAO,GAAG,MAAM;YACpB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;YACnE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAa,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAElF,IAAI,CAAC;YACH,IAAA,4BAAY,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,eAAe,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAEhD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAI,oBAAoB,MAAM,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAY,EAAE,CAAC;IAEnG,OAAO,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAtEW,QAAA,WAAW,eAsEtB"}
|
|
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
|
|
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
|
|
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) =>
|
|
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":"
|
|
1
|
+
{"version":3,"file":"design-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/design-command.ts"],"names":[],"mappings":"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"}
|
package/src/lib/design/index.js
CHANGED
|
@@ -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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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":"
|
|
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,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;
|