create-atelier-ui-workspace 0.2.43 → 0.2.44
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 +17 -4
- package/bin/index.js +56 -1
- package/bin/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,27 @@
|
|
|
1
|
+
## 0.2.44 (2026-09-13)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **create-workspace:** the workspace knows which Figma file is the attendee's ([40a2eff2](https://github.com/DominikPieper/atelier-ui/commit/40a2eff2))
|
|
6
|
+
- **create-workspace:** a unit-test runner, without disturbing the browser one ([fa60042d](https://github.com/DominikPieper/atelier-ui/commit/fa60042d))
|
|
7
|
+
- **create-workspace:** the preset takes one framework, not a list ([d4b1cfb1](https://github.com/DominikPieper/atelier-ui/commit/d4b1cfb1))
|
|
8
|
+
|
|
9
|
+
### ❤️ Thank You
|
|
10
|
+
|
|
11
|
+
- Claude Opus 5 (1M context)
|
|
12
|
+
- Dominik Pieper @DominikPieper
|
|
13
|
+
|
|
1
14
|
## 0.2.43 (2026-09-12)
|
|
2
15
|
|
|
3
16
|
### 🚀 Features
|
|
4
17
|
|
|
5
|
-
- **create-workspace:** the scaffold ships the contract loop — ADR-0121 S4 ([
|
|
6
|
-
- **create-workspace:** Storybook and the skills ship together — ADR-0123 ([
|
|
18
|
+
- **create-workspace:** the scaffold ships the contract loop — ADR-0121 S4 ([74aa640](https://github.com/DominikPieper/atelier-ui/commit/74aa640))
|
|
19
|
+
- **create-workspace:** Storybook and the skills ship together — ADR-0123 ([79b60e9](https://github.com/DominikPieper/atelier-ui/commit/79b60e9))
|
|
7
20
|
|
|
8
21
|
### 🩹 Fixes
|
|
9
22
|
|
|
10
|
-
- **e2e:** the CLI e2e pinned a summary line's shape, not the facts it meant ([
|
|
11
|
-
- **gates:** check:contracts skips package-imported components before docgen ([
|
|
23
|
+
- **e2e:** the CLI e2e pinned a summary line's shape, not the facts it meant ([4a31702](https://github.com/DominikPieper/atelier-ui/commit/4a31702))
|
|
24
|
+
- **gates:** check:contracts skips package-imported components before docgen ([caa7633](https://github.com/DominikPieper/atelier-ui/commit/caa7633))
|
|
12
25
|
|
|
13
26
|
### ❤️ Thank You
|
|
14
27
|
|
package/bin/index.js
CHANGED
|
@@ -53,6 +53,33 @@ function parseBooleanFlag(args, name) {
|
|
|
53
53
|
return false;
|
|
54
54
|
throw new Error(`Invalid --${name} value: "${raw}". Must be "true" or "false".`);
|
|
55
55
|
}
|
|
56
|
+
// Figma file/design keys are opaque, Figma-generated identifiers — this
|
|
57
|
+
// repo's own key (QMnDD8uZQPldPrlCwZZ58T, see AGENTS.md) is 22 mixed-case
|
|
58
|
+
// alphanumeric characters. Nothing documents an exact length or charset, so
|
|
59
|
+
// this only requires letters/digits (a key never contains a hyphen, unlike a
|
|
60
|
+
// URL slug) and a length generous enough to admit a real key while still
|
|
61
|
+
// rejecting short garbage ("abc") that is obviously not one.
|
|
62
|
+
const FIGMA_FILE_KEY_PATTERN = /^[A-Za-z0-9]{10,40}$/;
|
|
63
|
+
// A pasted Figma URL names the file key right after `/design/`
|
|
64
|
+
// (figma.com/design/<key>/Some-File-Name, optionally with a query string,
|
|
65
|
+
// hash, or nothing at all following it).
|
|
66
|
+
const FIGMA_FILE_URL_PATTERN = /figma\.com\/design\/([A-Za-z0-9]{10,40})(?:[/?#]|$)/;
|
|
67
|
+
// Shared by both the --figma-file flag and the interactive prompt below, so
|
|
68
|
+
// a bad value is rejected the same way regardless of how it arrived. Accepts
|
|
69
|
+
// a bare key as-is, extracts the key out of a full Figma URL rather than
|
|
70
|
+
// writing the whole URL into the generated `figma:snapshot` script, and
|
|
71
|
+
// otherwise fails loudly — same posture as the --framework validation above.
|
|
72
|
+
function extractFigmaFileKey(raw) {
|
|
73
|
+
const trimmed = raw.trim();
|
|
74
|
+
if (FIGMA_FILE_KEY_PATTERN.test(trimmed))
|
|
75
|
+
return trimmed;
|
|
76
|
+
const urlMatch = trimmed.match(FIGMA_FILE_URL_PATTERN);
|
|
77
|
+
if (urlMatch)
|
|
78
|
+
return urlMatch[1];
|
|
79
|
+
throw new Error(`Invalid --figma-file value: "${raw}". Expected a Figma file key (the ` +
|
|
80
|
+
`segment in a Figma URL after /design/, e.g. ` +
|
|
81
|
+
`figma.com/design/<key>/Some-File) or a full Figma URL containing one.`);
|
|
82
|
+
}
|
|
56
83
|
function main() {
|
|
57
84
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
58
85
|
var _a, _b;
|
|
@@ -61,6 +88,14 @@ function main() {
|
|
|
61
88
|
let name = argv.find((arg) => !arg.startsWith('-'));
|
|
62
89
|
let framework = parseFlag(argv, 'framework');
|
|
63
90
|
let figmaMcp = parseBooleanFlag(argv, 'figma');
|
|
91
|
+
// S5a — the attendee's own Figma file key (never this repo's
|
|
92
|
+
// QMnDD8uZQPldPrlCwZZ58T, which the preset never defaults to either — see
|
|
93
|
+
// its schema.json). Validated up front, like --framework, so a bad value
|
|
94
|
+
// fails fast regardless of whether Figma was even accepted.
|
|
95
|
+
const figmaFileFlag = parseFlag(argv, 'figma-file');
|
|
96
|
+
let figmaFile = figmaFileFlag === undefined
|
|
97
|
+
? undefined
|
|
98
|
+
: extractFigmaFileKey(figmaFileFlag);
|
|
64
99
|
// Unlike figma (a personal preference worth asking about), skills installs
|
|
65
100
|
// a network-dependent, non-interactive default — no prompt, just a flag to
|
|
66
101
|
// opt out for CI/offline runs, matching the preset schema's own default.
|
|
@@ -113,6 +148,25 @@ function main() {
|
|
|
113
148
|
});
|
|
114
149
|
figmaMcp = res.figma;
|
|
115
150
|
}
|
|
151
|
+
// Only asked when Figma was accepted (flag or prompt) — declining Figma
|
|
152
|
+
// must not produce a question about a Figma file key at all. Skippable:
|
|
153
|
+
// an attendee who hasn't duplicated the file yet presses enter and gets
|
|
154
|
+
// today's <YOUR_FIGMA_FILE_KEY> placeholder behaviour, same as if this
|
|
155
|
+
// prompt didn't exist.
|
|
156
|
+
if (figmaMcp && figmaFile === undefined) {
|
|
157
|
+
const res = yield enquirer.prompt({
|
|
158
|
+
type: 'input',
|
|
159
|
+
name: 'figmaFile',
|
|
160
|
+
message: `Figma file key (optional) — the segment in a Figma URL after /design/,\n` +
|
|
161
|
+
` e.g. figma.com/design/<key>/Some-File. Paste a full URL and the key\n` +
|
|
162
|
+
` is extracted. Press enter to skip:`,
|
|
163
|
+
initial: '',
|
|
164
|
+
});
|
|
165
|
+
const rawFigmaFile = res.figmaFile.trim();
|
|
166
|
+
if (rawFigmaFile) {
|
|
167
|
+
figmaFile = extractFigmaFileKey(rawFigmaFile);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
116
170
|
console.log(`\n${c.cyan('◇')} Setting up "${c.bold(name)}" with ${c.bold(framework)}…\n`);
|
|
117
171
|
const presetVersion = require('../package.json').version;
|
|
118
172
|
// ATELIER_PRESET_SPEC overrides the published preset — used by the e2e test
|
|
@@ -122,8 +176,9 @@ function main() {
|
|
|
122
176
|
name,
|
|
123
177
|
nxCloud: 'skip',
|
|
124
178
|
packageManager: 'npm',
|
|
125
|
-
|
|
179
|
+
framework,
|
|
126
180
|
figmaMcp,
|
|
181
|
+
figmaFile,
|
|
127
182
|
skills: skillsEnabled,
|
|
128
183
|
});
|
|
129
184
|
const appName = `workshop-${framework}`;
|
package/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/create-atelier-ui-workspace/bin/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/create-atelier-ui-workspace/bin/index.ts"],"names":[],"mappings":"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"}
|