@_linked/cli 1.8.1 → 1.8.2

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 (98) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/defaults/app-with-backend/.env.example +20 -0
  3. package/defaults/app-with-backend/gitignore.template +3 -1
  4. package/defaults/app-with-backend/linked.config.js +2 -0
  5. package/defaults/app-with-backend/package.json +12 -7
  6. package/defaults/app-with-backend/vite.config.ts +13 -0
  7. package/defaults/setup-publish/dual-branch/github/workflows/publish.yml +3 -0
  8. package/defaults/setup-publish/github/workflows/publish.yml +3 -0
  9. package/defaults/shape.ts +8 -2
  10. package/lib/cjs/cli-methods.d.ts +11 -3
  11. package/lib/cjs/cli-methods.d.ts.map +1 -1
  12. package/lib/cjs/cli-methods.js +55 -118
  13. package/lib/cjs/cli-methods.js.map +1 -1
  14. package/lib/cjs/cli.js +30 -6
  15. package/lib/cjs/cli.js.map +1 -1
  16. package/lib/cjs/commands/start.d.ts +6 -0
  17. package/lib/cjs/commands/start.d.ts.map +1 -0
  18. package/lib/cjs/commands/start.js +337 -0
  19. package/lib/cjs/commands/start.js.map +1 -0
  20. package/lib/cjs/config-webpack-app.d.ts +1 -1
  21. package/lib/cjs/config-webpack-app.d.ts.map +1 -1
  22. package/lib/cjs/config-webpack-app.js +1 -1
  23. package/lib/cjs/config-webpack-app.js.map +1 -1
  24. package/lib/cjs/config-webpack.d.ts +1 -1
  25. package/lib/cjs/config-webpack.d.ts.map +1 -1
  26. package/lib/cjs/config-webpack.js +10 -10
  27. package/lib/cjs/config-webpack.js.map +1 -1
  28. package/lib/cjs/defineConfig.d.ts +1 -1
  29. package/lib/cjs/defineConfig.d.ts.map +1 -1
  30. package/lib/cjs/index.d.ts +1 -1
  31. package/lib/cjs/index.d.ts.map +1 -1
  32. package/lib/cjs/index.js +2 -2
  33. package/lib/cjs/index.js.map +1 -1
  34. package/lib/cjs/interfaces.d.ts +9 -0
  35. package/lib/cjs/interfaces.d.ts.map +1 -1
  36. package/lib/cjs/lifecycle.d.ts +24 -0
  37. package/lib/cjs/lifecycle.d.ts.map +1 -0
  38. package/lib/cjs/lifecycle.js +187 -0
  39. package/lib/cjs/lifecycle.js.map +1 -0
  40. package/lib/cjs/loaders/ts-loader.d.mts.map +1 -1
  41. package/lib/cjs/loaders/ts-loader.mjs +11 -2
  42. package/lib/cjs/loaders/ts-loader.mjs.map +1 -1
  43. package/lib/cjs/package.json +6 -1
  44. package/lib/cjs/utils.d.ts +1 -1
  45. package/lib/cjs/utils.d.ts.map +1 -1
  46. package/lib/cjs/utils.js +9 -3
  47. package/lib/cjs/utils.js.map +1 -1
  48. package/lib/cjs/vite-config.d.ts +20 -0
  49. package/lib/cjs/vite-config.d.ts.map +1 -0
  50. package/lib/cjs/vite-config.js +401 -0
  51. package/lib/cjs/vite-config.js.map +1 -0
  52. package/lib/esm/cli-methods.d.ts +11 -3
  53. package/lib/esm/cli-methods.d.ts.map +1 -1
  54. package/lib/esm/cli-methods.js +36 -102
  55. package/lib/esm/cli-methods.js.map +1 -1
  56. package/lib/esm/cli.js +32 -8
  57. package/lib/esm/cli.js.map +1 -1
  58. package/lib/esm/commands/start.d.ts +6 -0
  59. package/lib/esm/commands/start.d.ts.map +1 -0
  60. package/lib/esm/commands/start.js +311 -0
  61. package/lib/esm/commands/start.js.map +1 -0
  62. package/lib/esm/config-webpack-app.d.ts +1 -1
  63. package/lib/esm/config-webpack-app.d.ts.map +1 -1
  64. package/lib/esm/config-webpack-app.js +1 -1
  65. package/lib/esm/config-webpack-app.js.map +1 -1
  66. package/lib/esm/config-webpack.d.ts +1 -1
  67. package/lib/esm/config-webpack.d.ts.map +1 -1
  68. package/lib/esm/config-webpack.js +4 -4
  69. package/lib/esm/config-webpack.js.map +1 -1
  70. package/lib/esm/defineConfig.d.ts +1 -1
  71. package/lib/esm/defineConfig.d.ts.map +1 -1
  72. package/lib/esm/index.d.ts +1 -1
  73. package/lib/esm/index.d.ts.map +1 -1
  74. package/lib/esm/index.js +1 -1
  75. package/lib/esm/index.js.map +1 -1
  76. package/lib/esm/interfaces.d.ts +9 -0
  77. package/lib/esm/interfaces.d.ts.map +1 -1
  78. package/lib/esm/lifecycle.d.ts +24 -0
  79. package/lib/esm/lifecycle.d.ts.map +1 -0
  80. package/lib/esm/lifecycle.js +156 -0
  81. package/lib/esm/lifecycle.js.map +1 -0
  82. package/lib/esm/loaders/ts-loader.d.mts.map +1 -1
  83. package/lib/esm/loaders/ts-loader.mjs +11 -2
  84. package/lib/esm/loaders/ts-loader.mjs.map +1 -1
  85. package/lib/esm/package.json +6 -1
  86. package/lib/esm/utils.d.ts +1 -1
  87. package/lib/esm/utils.d.ts.map +1 -1
  88. package/lib/esm/utils.js +9 -3
  89. package/lib/esm/utils.js.map +1 -1
  90. package/lib/esm/vite-config.d.ts +20 -0
  91. package/lib/esm/vite-config.d.ts.map +1 -0
  92. package/lib/esm/vite-config.js +377 -0
  93. package/lib/esm/vite-config.js.map +1 -0
  94. package/package.json +6 -1
  95. package/test-results/.last-run.json +6 -0
  96. package/test-results/create-app-Person-fixture-add-/342/206/222-edit-/342/206/222-delete-round-trip/error-context.md +16 -0
  97. package/test-results/create-app-Person-fixture-add-/342/206/222-edit-/342/206/222-delete-round-trip/trace.zip +0 -0
  98. package/tsconfig-esm.json +1 -1
@@ -0,0 +1,377 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ // Vite config helper for linked apps. Replaces webpack-based dev + build.
11
+ //
12
+ // Apps use this from their own vite.config.ts:
13
+ //
14
+ // import {createViteConfig} from '@_linked/cli/vite';
15
+ // export default createViteConfig({port: 4040, cssMode: 'tailwind'});
16
+ //
17
+ // The helper preserves the dev-mode `generateScopedName` (readable
18
+ // `_packageName_filename_className`) so CSS module class names match
19
+ // what the previous webpack chain produced for trace/debug. Production
20
+ // uses Vite's default scoping (content-hash, equivalent uniqueness).
21
+ import { defineConfig } from 'vite';
22
+ import react from '@vitejs/plugin-react';
23
+ import fsExtra from 'fs-extra';
24
+ import path from 'node:path';
25
+ import { generateScopedName } from './utils.js';
26
+ /**
27
+ * Walk the app's package.json `workspaces` field to build a lookup table
28
+ * from npm name → absolute src/ directory. Used by the resolver plugin
29
+ * to map bare specifiers like `@_linked/foo/bar` directly to source.
30
+ * No glob library: workspaces only support trailing `/*` patterns.
31
+ */
32
+ function discoverWorkspaces() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ var _a, _b;
35
+ const fs = yield import('node:fs/promises');
36
+ const cwd = process.cwd();
37
+ const out = [];
38
+ const seen = new Set();
39
+ // Register a package root iff it ships a `src/` dir (source install). Published
40
+ // packages have only `lib/` and are skipped — they resolve via their exports.
41
+ const addFromRoot = (root) => __awaiter(this, void 0, void 0, function* () {
42
+ const subPkgPath = path.join(root, 'package.json');
43
+ if (!(yield fsExtra.pathExists(subPkgPath)))
44
+ return;
45
+ const srcDir = path.join(root, 'src');
46
+ if (!(yield fsExtra.pathExists(srcDir)))
47
+ return;
48
+ try {
49
+ const sub = yield fsExtra.readJson(subPkgPath);
50
+ if (sub.name && !seen.has(sub.name)) {
51
+ seen.add(sub.name);
52
+ out.push({ name: sub.name, srcDir });
53
+ }
54
+ }
55
+ catch (_a) { }
56
+ });
57
+ // 1. The app's own `workspaces` globs — the monorepo-root case (CN, or any app
58
+ // that is itself a workspace root). Only trailing `/*` patterns.
59
+ const pkgPath = path.join(cwd, 'package.json');
60
+ if (yield fsExtra.pathExists(pkgPath)) {
61
+ const pkg = yield fsExtra.readJson(pkgPath);
62
+ const patterns = Array.isArray(pkg.workspaces)
63
+ ? pkg.workspaces
64
+ : (_b = (_a = pkg.workspaces) === null || _a === void 0 ? void 0 : _a.packages) !== null && _b !== void 0 ? _b : [];
65
+ for (const pattern of patterns) {
66
+ const m = pattern.match(/^(.+?)\/\*$/);
67
+ if (m) {
68
+ const parent = path.join(cwd, m[1]);
69
+ if (yield fsExtra.pathExists(parent)) {
70
+ for (const ent of yield fs.readdir(parent, { withFileTypes: true })) {
71
+ if (ent.isDirectory() || ent.isSymbolicLink()) {
72
+ yield addFromRoot(path.join(parent, ent.name));
73
+ }
74
+ }
75
+ }
76
+ }
77
+ else {
78
+ yield addFromRoot(path.join(cwd, pattern));
79
+ }
80
+ }
81
+ }
82
+ // 2. Dependency-graph traversal from the app's package.json. Starting from the
83
+ // app's own `dependencies` (+ `devDependencies`), keep the deps whose
84
+ // resolved package.json is marked `"linkedPackage": true` — the same marker
85
+ // the CLI keys on (see cli-methods.ts) — and recurse into THOSE packages'
86
+ // `dependencies`, with a visited-set to avoid cycles/rework.
87
+ //
88
+ // A dep is REGISTERED only if it ships `src/` (a symlinked workspace clone,
89
+ // or a `link:`/`portal:` dev install) — that's what lets a STANDALONE app
90
+ // (not itself a workspace root — e.g. a per-branch clone under /apps) resolve
91
+ // a linked package's `.tsx` sources with extension probing, instead of
92
+ // falling through to the package's `development → ./src/*.ts` export (which
93
+ // misses `.tsx` like LinkedServer). A prod/ejected app installs PUBLISHED
94
+ // packages (no `src/`) → not registered, resolved via each package's `lib`.
95
+ //
96
+ // The marker — NOT the npm scope — drives discovery, so a user's own
97
+ // custom-scope published linked package (e.g. `@acme/foo` with
98
+ // `linkedPackage:true`) is picked up too, and linked packages present in
99
+ // node_modules but not depended upon are ignored.
100
+ const nm = path.join(cwd, 'node_modules');
101
+ // Resolve a dependency name to its installed package.json path. A symlinked
102
+ // workspace clone resolves under the app's node_modules just like a normal
103
+ // install. Returns null when the package isn't installed (e.g. an optional
104
+ // or unhoisted dep) — we skip rather than throw.
105
+ const readInstalledPkg = (name) => __awaiter(this, void 0, void 0, function* () {
106
+ const root = path.join(nm, name);
107
+ const pkgJson = path.join(root, 'package.json');
108
+ if (!(yield fsExtra.pathExists(pkgJson)))
109
+ return null;
110
+ try {
111
+ return { root, json: yield fsExtra.readJson(pkgJson) };
112
+ }
113
+ catch (_a) {
114
+ return null;
115
+ }
116
+ });
117
+ const visited = new Set();
118
+ const walk = (deps) => __awaiter(this, void 0, void 0, function* () {
119
+ for (const name of Object.keys(deps !== null && deps !== void 0 ? deps : {})) {
120
+ if (visited.has(name))
121
+ continue;
122
+ visited.add(name);
123
+ const resolved = yield readInstalledPkg(name);
124
+ if (!resolved)
125
+ continue;
126
+ if (resolved.json.linkedPackage !== true)
127
+ continue;
128
+ // Register if it ships source (addFromRoot gates on src/ existing).
129
+ yield addFromRoot(resolved.root);
130
+ // Recurse into this linked package's own dependencies.
131
+ yield walk(resolved.json.dependencies);
132
+ }
133
+ });
134
+ if (yield fsExtra.pathExists(pkgPath)) {
135
+ const appPkg = yield fsExtra.readJson(pkgPath);
136
+ yield walk(appPkg.dependencies);
137
+ yield walk(appPkg.devDependencies);
138
+ }
139
+ return out;
140
+ });
141
+ }
142
+ /**
143
+ * Resolve a bare specifier like `@_linked/foo/bar`, `lincd-rdfs/Foo`, or
144
+ * `pkg/utils/Bar.js` against the workspace lookup. Tries extensions in
145
+ * order: .ts, .tsx, then the literal id (for files that already include
146
+ * an extension or for non-TS assets). Returns null when the specifier
147
+ * doesn't match any workspace package or no candidate exists on disk.
148
+ */
149
+ function resolveWorkspaceSpecifier(specifier, workspaces) {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ for (const ws of workspaces) {
152
+ if (specifier === ws.name) {
153
+ for (const ext of ['index.ts', 'index.tsx']) {
154
+ const p = path.join(ws.srcDir, ext);
155
+ if (yield fsExtra.pathExists(p))
156
+ return p;
157
+ }
158
+ return null;
159
+ }
160
+ if (specifier.startsWith(ws.name + '/')) {
161
+ const subpath = specifier.slice(ws.name.length + 1);
162
+ // Strip .js/.jsx suffix — workspace src uses TS published-output
163
+ // convention (./Sibling.js) but we want the TS source.
164
+ const base = subpath.replace(/\.jsx?$/, '');
165
+ for (const ext of ['.tsx', '.ts']) {
166
+ const p = path.join(ws.srcDir, base + ext);
167
+ if (yield fsExtra.pathExists(p))
168
+ return p;
169
+ }
170
+ // Files that already include an extension Vite handles (.css, .json,
171
+ // .svg, etc.) — return the literal path under src.
172
+ const literal = path.join(ws.srcDir, subpath);
173
+ if (yield fsExtra.pathExists(literal))
174
+ return literal;
175
+ return null;
176
+ }
177
+ }
178
+ return null;
179
+ });
180
+ }
181
+ export function createViteConfig(opts = {}) {
182
+ return defineConfig((_a) => __awaiter(this, [_a], void 0, function* ({ mode }) {
183
+ var _b, _c, _d, _e, _f, _g;
184
+ const isDev = mode === 'development';
185
+ const workspaces = isDev ? yield discoverWorkspaces() : [];
186
+ const config = {
187
+ server: {
188
+ port: (_b = opts.port) !== null && _b !== void 0 ? _b : 4040,
189
+ middlewareMode: true,
190
+ },
191
+ build: {
192
+ outDir: (_c = opts.outDir) !== null && _c !== void 0 ? _c : 'public/bundles',
193
+ manifest: true,
194
+ // Bump chunk-size warning so it doesn't fire on every build for
195
+ // the linked vendor bundle. Real chunking happens via
196
+ // manualChunks below.
197
+ chunkSizeWarningLimit: 1000,
198
+ rollupOptions: {
199
+ input: (_d = opts.entry) !== null && _d !== void 0 ? _d : 'src/index.tsx',
200
+ output: {
201
+ entryFileNames: 'assets/[name]-[hash].js',
202
+ chunkFileNames: 'assets/[name]-[hash].js',
203
+ assetFileNames: 'assets/[name]-[hash][extname]',
204
+ // Split large/common deps so route chunks don't all carry
205
+ // their own copy AND the main entry doesn't end up at 5MB+.
206
+ // Each manualChunk becomes its own assets/<name>-<hash>.js
207
+ // file the browser caches independently — incremental dev
208
+ // builds + cache wins on prod deploys both improve.
209
+ manualChunks: (id) => {
210
+ if (!id.includes('node_modules')) {
211
+ // Linked workspaces ship as @_linked/* / lincd-* —
212
+ // group all linked-framework code into a single chunk.
213
+ if (id.includes('/packages/core/') ||
214
+ id.includes('/packages/react/') ||
215
+ id.includes('/packages/server-utils/') ||
216
+ id.includes('/packages/primitives/') ||
217
+ id.includes('/packages/css/') ||
218
+ /\/packages\/(auth|org|schema|fuseki|owl|xsd|dcat|dcmi|s3|sentry|ui)\//.test(id)) {
219
+ return 'linked';
220
+ }
221
+ return undefined;
222
+ }
223
+ // React + React-DOM in their own chunk — every route uses them
224
+ if (/[\\/]node_modules[\\/](react|react-dom|react-router-dom|scheduler)[\\/]/.test(id)) {
225
+ return 'react-vendor';
226
+ }
227
+ // Heavy editor deps — only loaded on pages that need them,
228
+ // but worth isolating so they don't get pulled into main.
229
+ if (/[\\/]node_modules[\\/]@monaco-editor[\\/]/.test(id)) {
230
+ return 'monaco';
231
+ }
232
+ // Charting/visualization
233
+ if (/[\\/]node_modules[\\/](recharts|react-flow|@xyflow|d3-)[\\/]/.test(id)) {
234
+ return 'viz';
235
+ }
236
+ // Animation
237
+ if (/[\\/]node_modules[\\/]framer-motion[\\/]/.test(id)) {
238
+ return 'motion';
239
+ }
240
+ // Catch-all for other node_modules in a vendor chunk
241
+ return 'vendor';
242
+ },
243
+ },
244
+ },
245
+ sourcemap: true,
246
+ },
247
+ plugins: [
248
+ // Plan-011 phase 3a — Direct workspace specifier resolver.
249
+ //
250
+ // The package.json `"./*": { "development": "./src/*.ts" }` wildcard
251
+ // can't express "try .ts, fall back to .tsx" (Node's exports spec
252
+ // resolves to a single literal path). For React-heavy packages like
253
+ // @_linked/primitives, @_linked/server-utils, and @_linked/auth,
254
+ // most files are .tsx — the wildcard fails before any Vite plugin
255
+ // gets a chance to fix it up.
256
+ //
257
+ // This plugin intercepts BARE workspace specifiers like
258
+ // `@_linked/foo/bar` and `pkg-name/utils/Baz.js` BEFORE Vite's
259
+ // package.json resolver runs, mapping them straight to source with
260
+ // proper extension fallback (.tsx → .ts → literal). It also covers
261
+ // the `./Sibling.js` published-output convention for imports made
262
+ // from within workspace `src/` trees.
263
+ isDev
264
+ ? {
265
+ name: 'linked:resolve-workspace-ts',
266
+ enforce: 'pre',
267
+ resolveId(id, importer) {
268
+ return __awaiter(this, void 0, void 0, function* () {
269
+ if (id.startsWith('\0'))
270
+ return null;
271
+ // Workspace-internal `./Sibling.js` → `.tsx` / `.ts` rewrite.
272
+ if (importer &&
273
+ importer.includes(`${path.sep}packages${path.sep}`) &&
274
+ /\.(jsx?)$/.test(id) &&
275
+ (id.startsWith('.') || id.startsWith('/'))) {
276
+ const importerDir = path.dirname(importer);
277
+ const base = path.resolve(importerDir, id);
278
+ for (const ext of ['.tsx', '.ts']) {
279
+ const candidate = base.replace(/\.jsx?$/, ext);
280
+ if (yield fsExtra.pathExists(candidate))
281
+ return candidate;
282
+ }
283
+ }
284
+ // Bare workspace specifier — resolve directly to src/.
285
+ if (!id.startsWith('.') &&
286
+ !id.startsWith('/') &&
287
+ workspaces.length > 0) {
288
+ const resolved = yield resolveWorkspaceSpecifier(id, workspaces);
289
+ if (resolved)
290
+ return resolved;
291
+ }
292
+ return null;
293
+ });
294
+ },
295
+ }
296
+ : null,
297
+ react({
298
+ babel: {
299
+ parserOpts: {
300
+ plugins: ['decorators-legacy', 'classProperties'],
301
+ },
302
+ },
303
+ }),
304
+ // Dev-only: log every file the watcher sees change. Without this,
305
+ // backend edits look silent (no JS rebuild step, no Node restart —
306
+ // see plan-010 §"Rebuild chain") and it's hard to tell whether
307
+ // Vite picked up the change at all.
308
+ isDev
309
+ ? {
310
+ name: 'linked:reload-log',
311
+ configureServer(server) {
312
+ server.watcher.on('change', (file) => {
313
+ const rel = file.replace(process.cwd() + '/', '');
314
+ console.log(`[linked] reloaded ${rel}`);
315
+ });
316
+ },
317
+ }
318
+ : null,
319
+ ...((_e = opts.plugins) !== null && _e !== void 0 ? _e : []),
320
+ ].filter(Boolean),
321
+ css: {
322
+ modules: {
323
+ generateScopedName: isDev ? generateScopedName : undefined,
324
+ },
325
+ postcss: opts.postcssPlugins
326
+ ? { plugins: opts.postcssPlugins }
327
+ : undefined,
328
+ },
329
+ esbuild: {
330
+ tsconfigRaw: {
331
+ compilerOptions: {
332
+ experimentalDecorators: true,
333
+ },
334
+ },
335
+ jsx: 'automatic',
336
+ },
337
+ // Plan-011 phase 3a — `ssr.external` is now a minimal allowlist of
338
+ // npm deps that genuinely can't (or shouldn't) go through Vite's
339
+ // SSR transform. Workspace packages (`@_linked/*`, `lincd-*`) are
340
+ // DELIBERATELY removed so Vite resolves them via each package's
341
+ // `development → ./src/*.ts` conditional export and HMR works on
342
+ // source changes (see plan-011 §I1).
343
+ //
344
+ // "Multiple LINCD" warnings may resurface during the interim until
345
+ // LINCD eradication completes (plan-011 §I2 — accepted).
346
+ ssr: {
347
+ external: [
348
+ 'react',
349
+ 'react-dom',
350
+ 'react-dom/server',
351
+ 'react-router-dom',
352
+ 'scheduler',
353
+ 'express',
354
+ ],
355
+ },
356
+ define: (_f = opts.define) !== null && _f !== void 0 ? _f : {},
357
+ };
358
+ // Tailwind plugin (only if explicitly enabled — adds a heavy plugin).
359
+ if (opts.cssMode === 'tailwind') {
360
+ // Try ESM dynamic import first (works when @tailwindcss/vite is
361
+ // installed in the app or hoisted). Surface a CLEAR warning when
362
+ // it's not — the app needs the dep for theme variables to load.
363
+ try {
364
+ const tailwind = yield import('@tailwindcss/vite');
365
+ const tailwindPlugin = (_g = tailwind.default) !== null && _g !== void 0 ? _g : tailwind;
366
+ config.plugins.push(tailwindPlugin());
367
+ }
368
+ catch (err) {
369
+ console.warn('[createViteConfig] cssMode=tailwind but @tailwindcss/vite ' +
370
+ 'could not be loaded. Theme variables won\'t apply at runtime. ' +
371
+ 'Add `@tailwindcss/vite` to your app\'s package.json.');
372
+ }
373
+ }
374
+ return config;
375
+ }));
376
+ }
377
+ //# sourceMappingURL=vite-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../../src/vite-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@_linked/cli",
3
- "version": "1.8.1",
3
+ "version": "1.8.2",
4
4
  "description": "Command line tools for the @_linked/* packages and apps",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/esm/index.js",
@@ -84,12 +84,15 @@
84
84
  "@babel/register": "^7.23.7",
85
85
  "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
86
86
  "@tailwindcss/postcss": "^4.1.4",
87
+ "@tailwindcss/vite": "^4.1.4",
87
88
  "@types/node": "^20.12.7",
88
89
  "@types/react": "^18.0.17",
89
90
  "@types/react-dom": "^18.0.6",
91
+ "@vitejs/plugin-react": "^4.3.0",
90
92
  "babel-loader": "^9.1.3",
91
93
  "chalk": "^4.1.2",
92
94
  "child-process-promise": "^2.2.1",
95
+ "chokidar": "^4.0.0",
93
96
  "colors": "^1.4.0",
94
97
  "commander": "^11.0.0",
95
98
  "copy-webpack-plugin": "^12.0.2",
@@ -101,6 +104,7 @@
101
104
  "depcheck": "^1.4.7",
102
105
  "env-cmd": "^10.1.0",
103
106
  "esbuild": "^0.28.0",
107
+ "express": "^4.19.2",
104
108
  "find-nearest-package-json": "^2.0.1",
105
109
  "fs-extra": "^11.2.0",
106
110
  "glob": "^10.3.12",
@@ -135,6 +139,7 @@
135
139
  "tsx": "^4.19.3",
136
140
  "typescript": "^5.4.0",
137
141
  "typescript-plugin-css-modules": "^5.1.0",
142
+ "vite": "^6.0.0",
138
143
  "webpack": "^5.90.3",
139
144
  "webpack-bundle-analyzer": "^4.10.1",
140
145
  "webpack-license-plugin": "^4.4.2",
@@ -0,0 +1,6 @@
1
+ {
2
+ "status": "failed",
3
+ "failedTests": [
4
+ "08b008892d366eb7d5e3-5956bfb1baadbc8122fc"
5
+ ]
6
+ }
@@ -0,0 +1,16 @@
1
+ # Instructions
2
+
3
+ - Following Playwright test failed.
4
+ - Explain why, be concise, respect Playwright best practices.
5
+ - Provide a snippet of code with the fix, if possible.
6
+
7
+ # Test info
8
+
9
+ - Name: create-app.spec.ts >> Person fixture: add → edit → delete round-trip
10
+ - Location: tests/e2e/create-app.spec.ts:113:1
11
+
12
+ # Error details
13
+
14
+ ```
15
+ Error: Log message "/Started.*Server/" not received after 60000ms
16
+ ```
package/tsconfig-esm.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "module": "esnext",
5
5
  "target": "es6",
6
6
  "outDir": "lib/esm",
7
- "moduleResolution": "node",
7
+ "moduleResolution": "bundler",
8
8
  "allowSyntheticDefaultImports": true,
9
9
  }
10
10
  }