almostnode 0.2.6 → 0.2.7
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/dist/frameworks/code-transforms.d.ts +53 -0
- package/dist/frameworks/code-transforms.d.ts.map +1 -0
- package/dist/frameworks/next-dev-server.d.ts +27 -16
- package/dist/frameworks/next-dev-server.d.ts.map +1 -1
- package/dist/frameworks/vite-dev-server.d.ts +0 -4
- package/dist/frameworks/vite-dev-server.d.ts.map +1 -1
- package/dist/index.cjs +20963 -535
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +19156 -1083
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -1
- package/src/convex-app-demo-entry.ts +2 -0
- package/src/frameworks/code-transforms.ts +577 -0
- package/src/frameworks/next-dev-server.ts +748 -229
- package/src/frameworks/vite-dev-server.ts +2 -61
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared code transformation utilities.
|
|
3
|
+
* Extracted from next-dev-server.ts and vite-dev-server.ts to avoid duplication
|
|
4
|
+
* and enable AST-based replacements.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Interface for file system operations needed by CSS module transforms.
|
|
8
|
+
*/
|
|
9
|
+
export interface CssModuleContext {
|
|
10
|
+
readFile: (path: string) => string;
|
|
11
|
+
exists: (path: string) => boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Resolve a relative path from a directory.
|
|
15
|
+
* Pure function — no dependencies.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveRelativePath(dir: string, relativePath: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Resolve a CSS module path relative to the current file context.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveCssModulePath(cssPath: string, currentFile: string | undefined, ctx: CssModuleContext): string | null;
|
|
22
|
+
/**
|
|
23
|
+
* Generate replacement code for a CSS Module import.
|
|
24
|
+
* Parses the CSS file, extracts class names, generates scoped names,
|
|
25
|
+
* and injects the scoped CSS via a style tag.
|
|
26
|
+
*/
|
|
27
|
+
export declare function generateCssModuleReplacement(varName: string, cssPath: string, currentFile: string | undefined, ctx: CssModuleContext): string;
|
|
28
|
+
/**
|
|
29
|
+
* Strip CSS imports from code (they are loaded via <link> tags instead).
|
|
30
|
+
* CSS Module imports (*.module.css) are converted to inline objects with class name mappings.
|
|
31
|
+
* Regular CSS imports are stripped entirely.
|
|
32
|
+
*/
|
|
33
|
+
export declare function stripCssImports(code: string, currentFile: string | undefined, ctx: CssModuleContext): string;
|
|
34
|
+
/**
|
|
35
|
+
* Redirect bare npm package imports to esm.sh CDN.
|
|
36
|
+
* Uses acorn AST to precisely target import/export source strings,
|
|
37
|
+
* avoiding false matches inside comments or string literals.
|
|
38
|
+
* Falls back to regex if acorn fails.
|
|
39
|
+
*/
|
|
40
|
+
export declare function redirectNpmImports(code: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* ESM to CJS transform using acorn AST parsing.
|
|
43
|
+
* Used in non-browser (test) environments where esbuild is unavailable.
|
|
44
|
+
* Falls back to regex if acorn fails to parse.
|
|
45
|
+
*/
|
|
46
|
+
export declare function transformEsmToCjsSimple(code: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Add React Refresh registration to transformed code.
|
|
49
|
+
* This enables true HMR (state-preserving) for React components.
|
|
50
|
+
* Shared between NextDevServer and ViteDevServer.
|
|
51
|
+
*/
|
|
52
|
+
export declare function addReactRefresh(code: string, filename: string): string;
|
|
53
|
+
//# sourceMappingURL=code-transforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-transforms.d.ts","sourceRoot":"","sources":["../../src/frameworks/code-transforms.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAa7E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,GAAG,EAAE,gBAAgB,GACpB,MAAM,GAAG,IAAI,CAgBf;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,GAAG,EAAE,gBAAgB,GACpB,MAAM,CA+DR;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,GAAG,EAAE,gBAAgB,GACpB,MAAM,CA4BR;AA0CD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvD;AAgDD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5D;AA0JD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmCtE"}
|
|
@@ -18,6 +18,8 @@ export interface NextDevServerOptions extends DevServerOptions {
|
|
|
18
18
|
env?: Record<string, string>;
|
|
19
19
|
/** Asset prefix for static files (e.g., '/marketing'). Auto-detected from next.config if not specified. */
|
|
20
20
|
assetPrefix?: string;
|
|
21
|
+
/** Base path for the app (e.g., '/docs'). Auto-detected from next.config if not specified. */
|
|
22
|
+
basePath?: string;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* NextDevServer - A lightweight Next.js-compatible development server
|
|
@@ -67,6 +69,8 @@ export declare class NextDevServer extends DevServer {
|
|
|
67
69
|
private tailwindConfigLoaded;
|
|
68
70
|
/** Asset prefix for static files (e.g., '/marketing') */
|
|
69
71
|
private assetPrefix;
|
|
72
|
+
/** Base path for the app (e.g., '/docs') */
|
|
73
|
+
private basePath;
|
|
70
74
|
constructor(vfs: VirtualFS, options: NextDevServerOptions);
|
|
71
75
|
/**
|
|
72
76
|
* Load path aliases from tsconfig.json
|
|
@@ -78,6 +82,11 @@ export declare class NextDevServer extends DevServer {
|
|
|
78
82
|
* The assetPrefix is used to prefix static asset URLs (e.g., '/marketing')
|
|
79
83
|
*/
|
|
80
84
|
private loadAssetPrefix;
|
|
85
|
+
/**
|
|
86
|
+
* Load basePath from options or auto-detect from next.config.ts/js
|
|
87
|
+
* The basePath is used to prefix all routes (e.g., '/docs' means / -> /docs)
|
|
88
|
+
*/
|
|
89
|
+
private loadBasePath;
|
|
81
90
|
/**
|
|
82
91
|
* Resolve path aliases in transformed code
|
|
83
92
|
* Converts imports like "@/components/foo" to "/__virtual__/PORT/components/foo"
|
|
@@ -144,6 +153,20 @@ export declare class NextDevServer extends DevServer {
|
|
|
144
153
|
* Handle API route requests
|
|
145
154
|
*/
|
|
146
155
|
private handleApiRoute;
|
|
156
|
+
/**
|
|
157
|
+
* Resolve an App Router route handler (route.ts/route.js)
|
|
158
|
+
* Returns the file path if found, null otherwise
|
|
159
|
+
*/
|
|
160
|
+
private resolveAppRouteHandler;
|
|
161
|
+
/**
|
|
162
|
+
* Resolve dynamic App Router route handlers with route group support
|
|
163
|
+
*/
|
|
164
|
+
private resolveAppRouteHandlerDynamic;
|
|
165
|
+
/**
|
|
166
|
+
* Handle App Router route handler (route.ts) requests
|
|
167
|
+
* These use the Web Request/Response API pattern
|
|
168
|
+
*/
|
|
169
|
+
private handleAppRouteHandler;
|
|
147
170
|
/**
|
|
148
171
|
* Handle streaming API route requests
|
|
149
172
|
* This is called by the server bridge for requests that need streaming support
|
|
@@ -186,8 +209,9 @@ export declare class NextDevServer extends DevServer {
|
|
|
186
209
|
*/
|
|
187
210
|
private resolveAppRoute;
|
|
188
211
|
/**
|
|
189
|
-
* Resolve
|
|
190
|
-
*
|
|
212
|
+
* Resolve App Router routes including static, dynamic, and route groups.
|
|
213
|
+
* Route groups are folders wrapped in parentheses like (marketing) that
|
|
214
|
+
* don't affect the URL path but can have their own layouts.
|
|
191
215
|
*/
|
|
192
216
|
private resolveAppDynamicRoute;
|
|
193
217
|
/**
|
|
@@ -228,26 +252,13 @@ export declare class NextDevServer extends DevServer {
|
|
|
228
252
|
* Transform JSX/TS code to browser-compatible JavaScript (ESM for browser)
|
|
229
253
|
*/
|
|
230
254
|
private transformCode;
|
|
231
|
-
/**
|
|
232
|
-
* Redirect bare npm package imports to esm.sh CDN
|
|
233
|
-
* e.g., import { Crisp } from "crisp-sdk-web" -> import { Crisp } from "https://esm.sh/crisp-sdk-web?external=react"
|
|
234
|
-
*
|
|
235
|
-
* IMPORTANT: We redirect ALL npm packages to esm.sh URLs (including React)
|
|
236
|
-
* because import maps don't work reliably for dynamically imported modules.
|
|
237
|
-
*/
|
|
238
255
|
private redirectNpmImports;
|
|
239
|
-
/**
|
|
240
|
-
* Strip CSS imports from code (they are loaded via <link> tags instead)
|
|
241
|
-
* Handles: import './styles.css', import '../globals.css', etc.
|
|
242
|
-
*/
|
|
243
256
|
private stripCssImports;
|
|
257
|
+
private getCssModuleContext;
|
|
244
258
|
/**
|
|
245
259
|
* Transform API handler code to CommonJS for eval execution
|
|
246
260
|
*/
|
|
247
261
|
private transformApiHandler;
|
|
248
|
-
/**
|
|
249
|
-
* Add React Refresh registration to transformed code
|
|
250
|
-
*/
|
|
251
262
|
private addReactRefresh;
|
|
252
263
|
/**
|
|
253
264
|
* Start file watching for HMR
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-dev-server.d.ts","sourceRoot":"","sources":["../../src/frameworks/next-dev-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAa,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"next-dev-server.d.ts","sourceRoot":"","sources":["../../src/frameworks/next-dev-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,10 +62,6 @@ export declare class ViteDevServer extends DevServer {
|
|
|
62
62
|
* Transform JSX/TS code to browser-compatible JavaScript
|
|
63
63
|
*/
|
|
64
64
|
private transformCode;
|
|
65
|
-
/**
|
|
66
|
-
* Add React Refresh registration to transformed code
|
|
67
|
-
* This enables true HMR (state-preserving) for React components
|
|
68
|
-
*/
|
|
69
65
|
private addReactRefresh;
|
|
70
66
|
/**
|
|
71
67
|
* Serve CSS file as a JavaScript module that injects styles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-dev-server.d.ts","sourceRoot":"","sources":["../../src/frameworks/vite-dev-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAa,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"vite-dev-server.d.ts","sourceRoot":"","sources":["../../src/frameworks/vite-dev-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAa,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAuEzC,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAqLD,qBAAa,aAAc,SAAQ,SAAS;IAC1C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,cAAc,CAA0D;gBAEpE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB;IAWzD;;;OAGG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC;IA0ExB;;OAEG;IACH,aAAa,IAAI,IAAI;IAqCrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,IAAI,IAAI,IAAI;IAWZ;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;YACW,iBAAiB;IAwD/B;;OAEG;YACW,aAAa;IAsC3B,OAAO,CAAC,eAAe;IAIvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;CAyCzB;AAED,eAAe,aAAa,CAAC"}
|