@aistrike-dev/ui-shell-dev 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -53,7 +53,9 @@ Read from the Vite root when present (or from the plugin's `devFile` option).
53
53
 
54
54
  `profile` defaults to `local`, `overrides` point other domains at their own dev servers (bare origins, no path; your
55
55
  own domain is overridden automatically), `idleTimeoutMs` defaults to `0` (idle timeout off), and `claims` is merged
56
- over the default dev claims. The plugin's `claims`, `ttlMs` and `noToken` options win over the file.
56
+ over the default dev claims. The plugin's `claims`, `ttlMs` and `noToken` options win over the file. `"lab": true`
57
+ shows the shell's Design Lab (its live controls for the open design questions) over your pages, so you can judge them
58
+ on your own screens; its **Lock in** needs the lab MFE's dev server and says so otherwise.
57
59
 
58
60
  ## Commands
59
61
 
package/dist/devfile.d.ts CHANGED
@@ -10,6 +10,8 @@ export interface DevFile {
10
10
  domains?: DevDomain[];
11
11
  idleTimeoutMs?: number;
12
12
  landing?: string;
13
+ /** Shows the shell's Design Lab over this MFE's pages, to judge open design questions on them. */
14
+ lab?: boolean;
13
15
  claims?: DevClaimsInput;
14
16
  }
15
17
  /** Dev claims must be a plain object of known keys; `iss`/`exp`/`iat` and friends cannot be smuggled into the token. */
package/dist/devfile.js CHANGED
@@ -41,7 +41,7 @@ function normalizeOverrides(overrides) {
41
41
  }
42
42
  return result;
43
43
  }
44
- const FILE_KEYS = ['profile', 'overrides', 'domains', 'idleTimeoutMs', 'landing', 'claims'];
44
+ const FILE_KEYS = ['profile', 'overrides', 'domains', 'idleTimeoutMs', 'landing', 'lab', 'claims'];
45
45
  const DOMAIN_KEYS = ['id', 'route', 'nav', 'devPort'];
46
46
  const NAV_KEYS = ['label', 'icon'];
47
47
  const ROUTE = /^\/[a-z0-9-]+$/;
@@ -118,6 +118,12 @@ function readExtras(parsed, result) {
118
118
  if (parsed.landing !== undefined) {
119
119
  result.landing = validateLanding(parsed.landing);
120
120
  }
121
+ if (parsed.lab !== undefined) {
122
+ if (typeof parsed.lab !== 'boolean') {
123
+ throw new Error('lab must be true or false');
124
+ }
125
+ result.lab = parsed.lab;
126
+ }
121
127
  if (parsed.claims !== undefined) {
122
128
  result.claims = assertClaimsInput(parsed.claims, 'claims');
123
129
  }
@@ -169,6 +175,10 @@ export function loadDevFile(path, cwd = process.cwd()) {
169
175
  function landingOf(file, args) {
170
176
  return args.landing ?? file?.landing;
171
177
  }
178
+ /** The lab flag, only when the file sets it: a config without one is the same config it always was. */
179
+ function labOf(file) {
180
+ return file?.lab === undefined ? {} : { lab: file.lab };
181
+ }
172
182
  /** Explicit overrides win over the file; the profile defaults to `local`; the idle timeout defaults to off for local work. */
173
183
  export function buildDevConfig(file, args, session) {
174
184
  return {
@@ -177,6 +187,7 @@ export function buildDevConfig(file, args, session) {
177
187
  domains: file?.domains ?? [],
178
188
  idleTimeoutMs: file?.idleTimeoutMs ?? 0,
179
189
  landing: landingOf(file, args),
190
+ ...labOf(file),
180
191
  session,
181
192
  };
182
193
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aistrike-dev/ui-shell-dev",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "A Vite plugin that serves the AiStrike UI shell from your micro front-end's dev server, plus a dev-token CLI.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {