@_linked/cli 1.12.0 → 1.14.0

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 (68) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +81 -38
  3. package/defaults/app-react-native/README.md +62 -22
  4. package/defaults/app-react-native/apps/mobile/App.tsx +6 -3
  5. package/defaults/app-react-native/apps/mobile/__tests__/env.test.ts +39 -0
  6. package/defaults/app-react-native/apps/mobile/__tests__/integration/apiEnv.ts +49 -0
  7. package/defaults/app-react-native/apps/mobile/__tests__/integration/globalSetup.ts +156 -0
  8. package/defaults/app-react-native/apps/mobile/__tests__/integration/globalTeardown.ts +20 -0
  9. package/defaults/app-react-native/apps/mobile/__tests__/integration/nodeFetchEnvironment.js +13 -0
  10. package/defaults/app-react-native/apps/mobile/__tests__/integration/personOverview.test.tsx +51 -0
  11. package/defaults/app-react-native/apps/mobile/__tests__/integration/restoreNodeFetch.ts +8 -0
  12. package/defaults/app-react-native/apps/mobile/__tests__/{linkedDefaults.test.tsx → nativeDefaults.test.tsx} +5 -7
  13. package/defaults/app-react-native/apps/mobile/__tests__/storage.test.ts +24 -0
  14. package/defaults/app-react-native/apps/mobile/__tests__/stripJsonImportAttributes.test.ts +45 -0
  15. package/defaults/app-react-native/apps/mobile/app.config.ts +21 -0
  16. package/defaults/app-react-native/apps/mobile/babel/stripJsonImportAttributes.js +41 -0
  17. package/defaults/app-react-native/apps/mobile/babel.config.js +13 -0
  18. package/defaults/app-react-native/apps/mobile/jest.integration.config.js +16 -0
  19. package/defaults/app-react-native/apps/mobile/package.json +11 -3
  20. package/defaults/app-react-native/apps/mobile/src/components/PersonOverview.tsx +123 -0
  21. package/defaults/app-react-native/apps/mobile/src/components/PersonOverviewContext.tsx +12 -0
  22. package/defaults/app-react-native/apps/mobile/src/components/PersonPreview.tsx +135 -0
  23. package/defaults/app-react-native/apps/mobile/src/shell/apiPort.json +1 -0
  24. package/defaults/app-react-native/apps/mobile/src/shell/env.ts +30 -0
  25. package/defaults/app-react-native/apps/mobile/src/shell/storage.ts +9 -0
  26. package/defaults/app-react-native/docker-compose.yml +22 -0
  27. package/defaults/app-react-native/eslint.config.js +47 -0
  28. package/defaults/app-react-native/gitignore.template +5 -0
  29. package/defaults/app-react-native/package.json +14 -4
  30. package/defaults/app-react-native/packages/app-shapes/package.json +20 -3
  31. package/defaults/app-react-native/packages/app-shapes/tsconfig-esm.json +12 -0
  32. package/defaults/app-react-native/scripts/check-react.mjs +55 -0
  33. package/defaults/app-react-native/services/api/README.md +50 -2
  34. package/defaults/app-react-native/services/api/env.example.template +11 -0
  35. package/defaults/app-react-native/services/api/linked.backend.datasets.json +15 -0
  36. package/defaults/app-react-native/services/api/linked.backend.storage.ts +35 -0
  37. package/defaults/app-react-native/services/api/package.json +27 -1
  38. package/defaults/app-react-native/services/api/scripts/wait-for-fuseki.mjs +26 -0
  39. package/defaults/app-react-native/services/api/src/backend.ts +9 -0
  40. package/defaults/app-react-native/services/api/src/fileStoreEnv.ts +14 -0
  41. package/defaults/app-react-native/services/api/test/hasS3Env.test.mjs +28 -0
  42. package/defaults/app-react-native/services/api/test/waitForFuseki.test.mjs +27 -0
  43. package/defaults/app-react-native/services/api/tsconfig.json +15 -0
  44. package/lib/esm/cli-methods.d.ts +11 -1
  45. package/lib/esm/cli-methods.d.ts.map +1 -1
  46. package/lib/esm/cli-methods.js +122 -58
  47. package/lib/esm/cli-methods.js.map +1 -1
  48. package/lib/esm/cli.js +10 -6
  49. package/lib/esm/cli.js.map +1 -1
  50. package/lib/esm/commands/start.d.ts +33 -0
  51. package/lib/esm/commands/start.d.ts.map +1 -1
  52. package/lib/esm/commands/start.js +96 -54
  53. package/lib/esm/commands/start.js.map +1 -1
  54. package/lib/esm/interfaces.d.ts +7 -0
  55. package/lib/esm/interfaces.d.ts.map +1 -1
  56. package/lib/esm/utils/esmSpecifiers.d.ts +9 -0
  57. package/lib/esm/utils/esmSpecifiers.d.ts.map +1 -0
  58. package/lib/esm/utils/esmSpecifiers.js +104 -0
  59. package/lib/esm/utils/esmSpecifiers.js.map +1 -0
  60. package/lib/esm/utils/shippedDotfiles.d.ts.map +1 -1
  61. package/lib/esm/utils/shippedDotfiles.js +3 -1
  62. package/lib/esm/utils/shippedDotfiles.js.map +1 -1
  63. package/lib/esm/vite-config.d.ts +42 -0
  64. package/lib/esm/vite-config.d.ts.map +1 -1
  65. package/lib/esm/vite-config.js +185 -38
  66. package/lib/esm/vite-config.js.map +1 -1
  67. package/package.json +1 -1
  68. package/defaults/app-react-native/apps/mobile/src/shell/linkedDefaults.tsx +0 -10
@@ -25,8 +25,94 @@ import path from 'node:path';
25
25
  import fs from 'node:fs/promises';
26
26
  import { spawn } from 'node:child_process';
27
27
  import fsExtra from 'fs-extra';
28
+ export const VITE_CONFIG_FILES = ['vite.config.ts', 'vite.config.js', 'vite.config.mjs'];
28
29
  /**
29
- * Plan-011 phase 3b — discover workspace packages from the app's
30
+ * API-only mode is explicit: `linked start --api-only`, or `server.apiOnly: true`
31
+ * in `linked.config.js`. It is never inferred from missing frontend files, so a
32
+ * web app that lost its `vite.config.ts` still fails loudly instead of silently
33
+ * serving no pages.
34
+ */
35
+ export function isApiOnly(opts, linkedConfig) {
36
+ var _a;
37
+ return opts.apiOnly === true || ((_a = linkedConfig === null || linkedConfig === void 0 ? void 0 : linkedConfig.server) === null || _a === void 0 ? void 0 : _a.apiOnly) === true;
38
+ }
39
+ /**
40
+ * The Vite dev-server config for `linked start`.
41
+ *
42
+ * With a `vite.config.*` in `cwd`, Vite loads it itself. Without one, API-only
43
+ * mode uses `createViteConfig()`'s defaults inline — Vite is still needed on the
44
+ * backend to transform TypeScript, decorators and extensionless imports of
45
+ * source-only shape packages. Without one in page mode, it is an error.
46
+ */
47
+ export function resolveViteServerConfig(cwd, apiOnly) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ const base = {
50
+ root: cwd,
51
+ server: { middlewareMode: true },
52
+ appType: 'custom',
53
+ };
54
+ if (VITE_CONFIG_FILES.some((c) => fsExtra.existsSync(path.join(cwd, c)))) {
55
+ return base;
56
+ }
57
+ if (!apiOnly) {
58
+ throw new Error(`[linked start] no vite.config.{ts,js,mjs} found in ${cwd}. Add one:\n\n import {createViteConfig} from '@_linked/cli/vite-config';\n export default createViteConfig({port: 4040, cssMode: 'tailwind'});\n\nFor a backend without a web frontend, run \`linked start --api-only\` instead.\n`);
59
+ }
60
+ const { createViteConfig } = yield import('../vite-config.js');
61
+ const exported = createViteConfig();
62
+ const defaults = typeof exported === 'function'
63
+ ? yield exported({ command: 'serve', mode: 'development' })
64
+ : yield exported;
65
+ return Object.assign(Object.assign(Object.assign({}, defaults), base), { configFile: false, server: Object.assign(Object.assign({}, defaults.server), base.server),
66
+ // No browser client: skip the client dependency scan, whose entry
67
+ // (`src/index.tsx`) does not exist in a backend.
68
+ optimizeDeps: Object.assign(Object.assign({}, defaults.optimizeDeps), { noDiscovery: true }) });
69
+ });
70
+ }
71
+ /**
72
+ * Inject Vite into LinkedServer's config:
73
+ * - vite: handle for ssrLoadModule (used to load app's backend.ts via self-reference)
74
+ * and, unless API-only (where `apiOnly` makes LinkedServer skip page rendering):
75
+ * - viteMiddleware: mounted instead of webpack-dev-middleware
76
+ * - loadAppComponent / loadRoutes: route through vite.ssrLoadModule for SSR transform
77
+ * - viteSsrPreload: page modules to preload for SSR CSS collection
78
+ */
79
+ export function configureLinkedServer(serverConfig, vite, cwd, apiOnly) {
80
+ serverConfig.vite = vite;
81
+ if (apiOnly) {
82
+ serverConfig.apiOnly = true;
83
+ return;
84
+ }
85
+ serverConfig.viteMiddleware = vite.middlewares;
86
+ serverConfig.loadAppComponent = () => __awaiter(this, void 0, void 0, function* () {
87
+ const mod = yield vite.ssrLoadModule('/src/App.tsx');
88
+ return mod.default;
89
+ });
90
+ serverConfig.loadRoutes = () => __awaiter(this, void 0, void 0, function* () {
91
+ return yield vite.ssrLoadModule('/src/routes.tsx');
92
+ });
93
+ // Vite SSR CSS collection support:
94
+ // List all `src/pages/*.{ts,tsx}` files so LinkedServer can ssrLoadModule
95
+ // each into Vite's moduleGraph BEFORE the first render of a session.
96
+ // React.lazy() doesn't auto-fire — without this, only App's eager
97
+ // imports' CSS is collected; lazy pages' CSS arrives after hydration
98
+ // causing an unstyled flash. After the first preload sweep, all
99
+ // subsequent renders have full CSS available.
100
+ serverConfig.viteSsrPreload = () => __awaiter(this, void 0, void 0, function* () {
101
+ const pagesDir = path.join(cwd, 'src', 'pages');
102
+ if (!fsExtra.existsSync(pagesDir))
103
+ return [];
104
+ const files = fsExtra.readdirSync(pagesDir, { withFileTypes: true });
105
+ const paths = [];
106
+ for (const file of files) {
107
+ if (file.isFile() && /\.(tsx|ts)$/.test(file.name)) {
108
+ paths.push(`/src/pages/${file.name}`);
109
+ }
110
+ }
111
+ return paths;
112
+ });
113
+ }
114
+ /**
115
+ * Discover workspace packages from the app's
30
116
  * `package.json` `workspaces` field. No hand-maintained list anywhere;
31
117
  * adding a new linked package = appearing in the right glob.
32
118
  *
@@ -182,15 +268,6 @@ export function startWithVite() {
182
268
  // `--env` still loads env-cmd (`.env-cmdrc.json`) for CN's own start:local flow.
183
269
  const { ensureEnvironmentLoaded } = yield import('../lifecycle.js');
184
270
  yield ensureEnvironmentLoaded();
185
- // Apps must have a vite.config.{ts,js} at CWD that exports the result of
186
- // `createViteConfig({...})`. We don't load it ourselves — Vite picks it
187
- // up automatically from `cwd`.
188
- const viteConfigCandidates = ['vite.config.ts', 'vite.config.js', 'vite.config.mjs'];
189
- const viteConfigFound = viteConfigCandidates.find((c) => fsExtra.existsSync(path.join(cwd, c)));
190
- if (!viteConfigFound) {
191
- throw new Error(`[linked start --vite] no vite.config.{ts,js,mjs} found in ${cwd}. Add one:\n\n import {createViteConfig} from '@_linked/cli/vite-config';\n export default createViteConfig({port: 4040, cssMode: 'tailwind'});\n`);
192
- }
193
- const { createServer: createViteServer } = yield import('vite');
194
271
  // Load user's linked.config.js (legacy hook). It still drives things
195
272
  // like server.cachePaths and the rest of LinkedServer's options.
196
273
  const linkedConfigPath = path.join(cwd, 'linked.config.js');
@@ -199,51 +276,16 @@ export function startWithVite() {
199
276
  linkedConfig = (_a = (yield import(linkedConfigPath)).default) !== null && _a !== void 0 ? _a : {};
200
277
  }
201
278
  linkedConfig.server = linkedConfig.server || {};
202
- const vite = yield createViteServer({
203
- root: cwd,
204
- server: { middlewareMode: true },
205
- appType: 'custom',
206
- });
207
- // Inject Vite into LinkedServer's config:
208
- // - vite: handle for ssrLoadModule (used to load app's backend.ts via self-reference)
209
- // - viteMiddleware: mounted instead of webpack-dev-middleware
210
- // - loadAppComponent: route through vite.ssrLoadModule for SSR transform
211
- // - loadRoutes: same
212
- linkedConfig.server.vite = vite;
213
- linkedConfig.server.viteMiddleware = vite.middlewares;
214
- linkedConfig.server.loadAppComponent = () => __awaiter(this, void 0, void 0, function* () {
215
- const mod = yield vite.ssrLoadModule('/src/App.tsx');
216
- return mod.default;
217
- });
218
- linkedConfig.server.loadRoutes = () => __awaiter(this, void 0, void 0, function* () {
219
- return yield vite.ssrLoadModule('/src/routes.tsx');
220
- });
221
- // Vite SSR CSS collection support (plan-010 iter1 gap A):
222
- // List all `src/pages/*.{ts,tsx}` files so LinkedServer can ssrLoadModule
223
- // each into Vite's moduleGraph BEFORE the first render of a session.
224
- // React.lazy() doesn't auto-fire — without this, only App's eager
225
- // imports' CSS is collected; lazy pages' CSS arrives after hydration
226
- // causing an unstyled flash. After the first preload sweep, all
227
- // subsequent renders have full CSS available.
228
- linkedConfig.server.viteSsrPreload = () => __awaiter(this, void 0, void 0, function* () {
229
- const pagesDir = path.join(cwd, 'src', 'pages');
230
- if (!fsExtra.existsSync(pagesDir))
231
- return [];
232
- const files = fsExtra.readdirSync(pagesDir, { withFileTypes: true });
233
- const paths = [];
234
- for (const file of files) {
235
- if (file.isFile() && /\.(tsx|ts)$/.test(file.name)) {
236
- paths.push(`/src/pages/${file.name}`);
237
- }
238
- }
239
- return paths;
240
- });
241
- // plan-011 §P5 (2A) — load the storage config through Vite SSR so it
279
+ const apiOnly = isApiOnly(opts, linkedConfig);
280
+ const { createServer: createViteServer } = yield import('vite');
281
+ const vite = yield createViteServer(yield resolveViteServerConfig(cwd, apiOnly));
282
+ configureLinkedServer(linkedConfig.server, vite, cwd, apiOnly);
283
+ // Load the storage config through Vite SSR so it
242
284
  // configures the SAME LinkedStorage instance the rest of the SSR graph
243
285
  // (LinkedServer, CN providers) uses. Replaces the former Node-direct
244
286
  // `loadBackendStorageConfig()` (which resolved @_linked/core via the
245
287
  // `default`→lib condition, a SEPARATE instance). Safe now that core's lib
246
- // `initTree` is idempotent (§P1). `loadBackendStorageConfig` stays in
288
+ // `initTree` is idempotent. `loadBackendStorageConfig` stays in
247
289
  // lifecycle.ts for the Node-only CLI commands (`script`/`call`) that have no
248
290
  // Vite server (contract C5).
249
291
  for (const rel of ['/linked.backend.storage.ts', '/linked.backend.storage.js']) {
@@ -252,7 +294,7 @@ export function startWithVite() {
252
294
  break;
253
295
  }
254
296
  }
255
- // Plan-011 — load LinkedServer through Vite SSR so it shares the SAME
297
+ // Load LinkedServer through Vite SSR so it shares the SAME
256
298
  // module instances as everything else in the SSR call graph. Without
257
299
  // this, LinkedServer is loaded by Node (→ lib/esm) while CN's App.tsx +
258
300
  // its transitive imports are loaded by Vite (→ src/). React contexts
@@ -274,7 +316,7 @@ export function startWithVite() {
274
316
  console.error(err);
275
317
  });
276
318
  yield server.start();
277
- // Plan-011 phase 3b — watcher → onSourceChange wiring.
319
+ // Watcher → onSourceChange wiring.
278
320
  //
279
321
  // Discover workspace packages once at boot. On each change, look up
280
322
  // which workspace package the file belongs to and call onSourceChange
@@ -300,7 +342,7 @@ export function startWithVite() {
300
342
  console.warn(`[linked] reload of ${pkg} failed: ${(_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : err}`);
301
343
  });
302
344
  });
303
- // Plan-011 phase 3c — r/o keyboard shortcuts.
345
+ // r/o keyboard shortcuts.
304
346
  const port = (_c = (_b = linkedConfig.server.port) !== null && _b !== void 0 ? _b : opts.port) !== null && _c !== void 0 ? _c : 4040;
305
347
  installShortcuts({
306
348
  url: `http://localhost:${port}/`,
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/start.ts"],"names":[],"mappings":"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"}
@@ -107,6 +107,13 @@ export interface LinkedServerConfig {
107
107
  * Should return a RoutesModule from 'lincd-server'
108
108
  */
109
109
  loadRoutes?: () => Promise<any>;
110
+ /**
111
+ * Serve only the backend API (`/call/...`, `/api/...` and provider routes):
112
+ * no server-side page rendering, so page requests get a 404.
113
+ * `linked start --api-only` sets this.
114
+ * @default false
115
+ */
116
+ apiOnly?: boolean;
110
117
  }
111
118
  /**
112
119
  * Complete Linked configuration
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type RewriteResult = {
2
+ /** Number of files rewritten. */
3
+ changed: number;
4
+ /** Specifiers left as written because no file matched, as `'<spec>' in <file>`. */
5
+ unresolved: string[];
6
+ };
7
+ /** Appends `.js` (or `/index.js`) to extensionless relative specifiers in emitted ESM. */
8
+ export declare function rewriteExtensionlessImports(libEsmDir: string): Promise<RewriteResult>;
9
+ //# sourceMappingURL=esmSpecifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esmSpecifiers.d.ts","sourceRoot":"","sources":["../../../src/utils/esmSpecifiers.ts"],"names":[],"mappings":"AAmEA,MAAM,MAAM,aAAa,GAAG;IAC1B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,0FAA0F;AAC1F,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAsCxB"}
@@ -0,0 +1,104 @@
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
+ import fs from 'fs-extra';
11
+ import { glob } from 'glob';
12
+ import path from 'path';
13
+ import ts from 'typescript';
14
+ // Specifiers Node already resolves as written.
15
+ const RESOLVED_EXTENSIONS = new Set(['.js', '.mjs', '.cjs', '.json']);
16
+ const isRelative = (spec) => spec === '.' ||
17
+ spec === '..' ||
18
+ spec.startsWith('./') ||
19
+ spec.startsWith('../');
20
+ const isFile = (file) => {
21
+ try {
22
+ return fs.statSync(file).isFile();
23
+ }
24
+ catch (_a) {
25
+ return false;
26
+ }
27
+ };
28
+ // Returns the rewritten specifier, the same specifier when it needs no change,
29
+ // or null when an extensionless specifier cannot be resolved.
30
+ const resolveSpecifier = (spec, fromDir) => {
31
+ if (!isRelative(spec) || RESOLVED_EXTENSIONS.has(path.extname(spec))) {
32
+ return spec;
33
+ }
34
+ // './dir/' -> './dir'; '.' and '..' name a directory, never '<spec>.js'.
35
+ const base = spec.replace(/\/+$/, '');
36
+ const target = path.resolve(fromDir, base);
37
+ const namesDirectory = /(^|\/)\.\.?$/.test(base);
38
+ if (!namesDirectory && isFile(target + '.js')) {
39
+ return base + '.js';
40
+ }
41
+ if (isFile(path.join(target, 'index.js'))) {
42
+ return base + '/index.js';
43
+ }
44
+ // Another existing file (e.g. './styles.css') is left as written.
45
+ return isFile(target) ? spec : null;
46
+ };
47
+ // The string literals of static imports/exports (including side-effect
48
+ // imports) and of `import()` calls with a literal argument.
49
+ const collectSpecifiers = (source) => {
50
+ const found = [];
51
+ const visit = (node) => {
52
+ if ((ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) &&
53
+ node.moduleSpecifier &&
54
+ ts.isStringLiteral(node.moduleSpecifier)) {
55
+ found.push(node.moduleSpecifier);
56
+ }
57
+ else if (ts.isCallExpression(node) &&
58
+ node.expression.kind === ts.SyntaxKind.ImportKeyword &&
59
+ node.arguments.length === 1 &&
60
+ ts.isStringLiteralLike(node.arguments[0])) {
61
+ found.push(node.arguments[0]);
62
+ }
63
+ ts.forEachChild(node, visit);
64
+ };
65
+ visit(source);
66
+ return found;
67
+ };
68
+ /** Appends `.js` (or `/index.js`) to extensionless relative specifiers in emitted ESM. */
69
+ export function rewriteExtensionlessImports(libEsmDir) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ const files = (yield glob('**/*.js', { cwd: libEsmDir, absolute: true })).sort();
72
+ let changed = 0;
73
+ const unresolved = [];
74
+ for (const file of files) {
75
+ const text = yield fs.readFile(file, 'utf8');
76
+ const source = ts.createSourceFile(file, text, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
77
+ let output = text;
78
+ // Apply edits back to front so earlier offsets stay valid.
79
+ const literals = collectSpecifiers(source).reverse();
80
+ const fileUnresolved = [];
81
+ for (const literal of literals) {
82
+ const spec = literal.text;
83
+ const rewritten = resolveSpecifier(spec, path.dirname(file));
84
+ if (rewritten === null) {
85
+ fileUnresolved.unshift(`'${spec}' in ${path.relative(libEsmDir, file)}`);
86
+ continue;
87
+ }
88
+ if (rewritten !== spec) {
89
+ // Keep the original quotes; replace only the text between them.
90
+ const start = literal.getStart(source) + 1;
91
+ const end = literal.getEnd() - 1;
92
+ output = output.slice(0, start) + rewritten + output.slice(end);
93
+ }
94
+ }
95
+ if (output !== text) {
96
+ yield fs.writeFile(file, output);
97
+ changed++;
98
+ }
99
+ unresolved.push(...fileUnresolved);
100
+ }
101
+ return { changed, unresolved };
102
+ });
103
+ }
104
+ //# sourceMappingURL=esmSpecifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esmSpecifiers.js","sourceRoot":"","sources":["../../../src/utils/esmSpecifiers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shippedDotfiles.d.ts","sourceRoot":"","sources":["../../../src/utils/shippedDotfiles.ts"],"names":[],"mappings":"AAUA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAS1D"}
1
+ {"version":3,"file":"shippedDotfiles.d.ts","sourceRoot":"","sources":["../../../src/utils/shippedDotfiles.ts"],"names":[],"mappings":"AAYA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAS1D"}
@@ -3,9 +3,11 @@ import path from 'path';
3
3
  const SHIPPED_DOTFILES = {
4
4
  'gitignore.template': '.gitignore',
5
5
  'npmignore.template': '.npmignore',
6
+ 'env.example.template': '.env.example',
6
7
  };
7
8
  // npm strips .gitignore files and honours nested .npmignore files when packing
8
- // the CLI, so templates ship them under neutral names and scaffolding restores them.
9
+ // the CLI, so templates ship dotfiles under neutral names and scaffolding
10
+ // restores them, at any depth.
9
11
  export function renameShippedDotfiles(folder) {
10
12
  for (const entry of fs.readdirSync(folder, { withFileTypes: true })) {
11
13
  const full = path.join(folder, entry.name);
@@ -1 +1 @@
1
- {"version":3,"file":"shippedDotfiles.js","sourceRoot":"","sources":["../../../src/utils/shippedDotfiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,gBAAgB,GAA2B;IAC/C,oBAAoB,EAAE,YAAY;IAClC,oBAAoB,EAAE,YAAY;CACnC,CAAC;AAEF,+EAA+E;AAC/E,qFAAqF;AACrF,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"shippedDotfiles.js","sourceRoot":"","sources":["../../../src/utils/shippedDotfiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,gBAAgB,GAA2B;IAC/C,oBAAoB,EAAE,YAAY;IAClC,oBAAoB,EAAE,YAAY;IAClC,sBAAsB,EAAE,cAAc;CACvC,CAAC;AAEF,+EAA+E;AAC/E,0EAA0E;AAC1E,+BAA+B;AAC/B,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -30,5 +30,47 @@ export interface LinkedViteConfigOptions {
30
30
  */
31
31
  workspaceGlobs?: string[];
32
32
  }
33
+ interface WorkspaceEntry {
34
+ name: string;
35
+ srcDir: string;
36
+ }
37
+ /**
38
+ * Names of installed packages that depend, directly or transitively (via
39
+ * `dependencies` / `peerDependencies`), on a discovered source workspace. Such a
40
+ * package must also go through Vite SSR: if Node loaded it natively, it would
41
+ * import its own Node-loaded copy of the workspace (e.g. published
42
+ * `@_linked/fuseki` importing a workspace `@_linked/core`), splitting module
43
+ * state. Vite rewrites the dynamic `import()` in code it transforms, so bundling
44
+ * the dependents keeps one instance.
45
+ *
46
+ * Only the dependency closure of the app's `package.json` (dependencies +
47
+ * devDependencies) and of the workspaces themselves is scanned. Packages are
48
+ * resolved Node-style, keyed by real path, and unresolvable ones are ignored.
49
+ * Workspace names are not included in the result.
50
+ */
51
+ export declare function workspaceDependents(workspaces: {
52
+ name: string;
53
+ srcDir?: string;
54
+ }[], cwd?: string): Promise<string[]>;
55
+ /**
56
+ * Walk the app's package.json `workspaces` field to build a lookup table
57
+ * from npm name → absolute src/ directory. Used by the resolver plugin
58
+ * to map bare specifiers like `@_linked/foo/bar` directly to source.
59
+ * No glob library: workspaces only support trailing `/*` patterns.
60
+ */
61
+ export declare function discoverWorkspaces(extraGlobs?: string[], cwd?: string): Promise<WorkspaceEntry[]>;
62
+ /**
63
+ * `ssr.noExternal` for the dev SSR runner. With source workspaces, only those
64
+ * package names are bundled by Vite; everything else in node_modules (including
65
+ * published `@_linked/*`) is externalized to Node. Vite matches these entries
66
+ * against the bare package name, so subpath imports (`pkg/shapes/Foo`) match too.
67
+ * Installed packages that depend on a workspace (`dependents`, from
68
+ * `workspaceDependents`) are bundled too, so they share the Vite-loaded workspace.
69
+ * Standalone (no workspaces): the context-holding framework packages are bundled.
70
+ */
71
+ export declare function ssrNoExternal(workspaces: {
72
+ name: string;
73
+ }[], dependents?: string[]): (string | RegExp)[];
33
74
  export declare function createViteConfig(opts?: LinkedViteConfigOptions): ReturnType<typeof defineConfig>;
75
+ export {};
34
76
  //# sourceMappingURL=vite-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite-config.d.ts","sourceRoot":"","sources":["../../src/vite-config.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAKlC,OAAO,KAAK,EAAC,MAAM,EAAa,MAAM,MAAM,CAAC;AAe7C,MAAM,WAAW,uBAAuB;IACtC,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,OAAO,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;IAC1C,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAC3B,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAkKD,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,uBAA4B,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CA8WpG"}
1
+ {"version":3,"file":"vite-config.d.ts","sourceRoot":"","sources":["../../src/vite-config.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAKlC,OAAO,KAAK,EAAC,MAAM,EAAa,MAAM,MAAM,CAAC;AAgB7C,MAAM,WAAW,uBAAuB;IACtC,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,OAAO,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;IAC1C,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAC3B,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAwCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,EAAE,EAC7C,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC,CAsEnB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,GAAE,MAAM,EAAO,EACzB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,cAAc,EAAE,CAAC,CAiG3B;AAwCD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,EAAE,EAC5B,UAAU,GAAE,MAAM,EAAO,GACxB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAGrB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,uBAA4B,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAqXpG"}