@gridland/web 0.2.33 → 0.2.34
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/index.d.ts +3 -2
- package/dist/index.js +1750 -8254
- package/dist/index.js.map +4 -4
- package/dist/{next-Cwun29WQ.d.ts → next-Cdtr1evW.d.ts} +4 -90
- package/dist/next-plugin.cjs +12 -35
- package/dist/next-plugin.cjs.map +1 -1
- package/dist/next-plugin.d.cts +2 -7
- package/dist/next-plugin.d.ts +2 -7
- package/dist/next-plugin.js +12 -35
- package/dist/next-plugin.js.map +1 -1
- package/dist/next.d.ts +2 -1
- package/dist/next.js +654 -7623
- package/dist/next.js.map +4 -4
- package/dist/vite-plugin.d.ts +4 -9
- package/dist/vite-plugin.js +20 -74
- package/dist/vite-plugin.js.map +1 -1
- package/package.json +3 -5
- package/src/shims/native-stub.ts +6 -0
- package/src/shims/slider-deps.ts +2 -2
- package/dist/core-shims.js +0 -46163
- package/dist/core-shims.js.map +0 -7
- package/src/browser-buffer.ts +0 -715
- package/src/core-shims/index.ts +0 -269
- package/src/core-shims/renderable-types.ts +0 -4
- package/src/core-shims/rgba.ts +0 -195
- package/src/core-shims/types.ts +0 -132
- package/src/shims/console-stub.ts +0 -13
- package/src/shims/console.ts +0 -3
- package/src/shims/filters-stub.ts +0 -4
- package/src/shims/native-span-feed-stub.ts +0 -7
- package/src/shims/node-buffer.ts +0 -39
- package/src/shims/node-fs.ts +0 -20
- package/src/shims/node-os.ts +0 -6
- package/src/shims/node-path.ts +0 -35
- package/src/shims/node-stream.ts +0 -10
- package/src/shims/node-url.ts +0 -8
- package/src/shims/node-util.ts +0 -33
- package/src/shims/renderer-stub.ts +0 -21
- package/src/shims/timeline-stub.ts +0 -43
|
@@ -1,84 +1,8 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode, CSSProperties } from 'react';
|
|
3
|
+
import { RGBA, CursorStyle, CapturedLine, RenderContext, WidthMethod as WidthMethod$1, CursorStyleOptions, MousePointerStyle } from '@gridland/utils';
|
|
3
4
|
import { EventEmitter } from 'events';
|
|
4
5
|
|
|
5
|
-
declare class RGBA {
|
|
6
|
-
buffer: Float32Array;
|
|
7
|
-
constructor(buffer: Float32Array);
|
|
8
|
-
static fromArray(array: Float32Array): RGBA;
|
|
9
|
-
static fromValues(r: number, g: number, b: number, a?: number): RGBA;
|
|
10
|
-
static fromInts(r: number, g: number, b: number, a?: number): RGBA;
|
|
11
|
-
static fromHex(hex: string): RGBA;
|
|
12
|
-
get r(): number;
|
|
13
|
-
set r(v: number);
|
|
14
|
-
get g(): number;
|
|
15
|
-
set g(v: number);
|
|
16
|
-
get b(): number;
|
|
17
|
-
set b(v: number);
|
|
18
|
-
get a(): number;
|
|
19
|
-
set a(v: number);
|
|
20
|
-
toInts(): [number, number, number, number];
|
|
21
|
-
map<R>(fn: (value: number) => R): R[];
|
|
22
|
-
toString(): string;
|
|
23
|
-
equals(other?: RGBA): boolean;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
type CursorStyle = "block" | "line" | "underline";
|
|
27
|
-
type MousePointerStyle = "default" | "pointer" | "text" | "crosshair" | "move" | "not-allowed";
|
|
28
|
-
type WidthMethod$1 = "wcwidth" | "unicode";
|
|
29
|
-
interface CursorStyleOptions {
|
|
30
|
-
style?: CursorStyle;
|
|
31
|
-
blinking?: boolean;
|
|
32
|
-
color?: RGBA;
|
|
33
|
-
cursor?: MousePointerStyle;
|
|
34
|
-
}
|
|
35
|
-
interface RenderContext {
|
|
36
|
-
addToHitGrid: (x: number, y: number, width: number, height: number, id: number) => void;
|
|
37
|
-
pushHitGridScissorRect: (x: number, y: number, width: number, height: number) => void;
|
|
38
|
-
popHitGridScissorRect: () => void;
|
|
39
|
-
clearHitGridScissorRects: () => void;
|
|
40
|
-
width: number;
|
|
41
|
-
height: number;
|
|
42
|
-
requestRender: () => void;
|
|
43
|
-
setCursorPosition: (x: number, y: number, visible: boolean) => void;
|
|
44
|
-
setCursorStyle: (options: CursorStyleOptions) => void;
|
|
45
|
-
setCursorColor: (color: RGBA) => void;
|
|
46
|
-
setMousePointer: (shape: MousePointerStyle) => void;
|
|
47
|
-
widthMethod: WidthMethod$1;
|
|
48
|
-
capabilities: any | null;
|
|
49
|
-
requestLive: () => void;
|
|
50
|
-
dropLive: () => void;
|
|
51
|
-
hasSelection: boolean;
|
|
52
|
-
getSelection: () => any | null;
|
|
53
|
-
requestSelectionUpdate: () => void;
|
|
54
|
-
currentFocusedRenderable: any | null;
|
|
55
|
-
focusRenderable: (renderable: any) => void;
|
|
56
|
-
registerLifecyclePass: (renderable: any) => void;
|
|
57
|
-
unregisterLifecyclePass: (renderable: any) => void;
|
|
58
|
-
getLifecyclePasses: () => Set<any>;
|
|
59
|
-
keyInput: any;
|
|
60
|
-
_internalKeyInput: any;
|
|
61
|
-
clearSelection: () => void;
|
|
62
|
-
startSelection: (renderable: any, x: number, y: number) => void;
|
|
63
|
-
updateSelection: (currentRenderable: any | undefined, x: number, y: number, options?: {
|
|
64
|
-
finishDragging?: boolean;
|
|
65
|
-
}) => void;
|
|
66
|
-
on: (event: string, listener: (...args: any[]) => void) => any;
|
|
67
|
-
off: (event: string, listener: (...args: any[]) => void) => any;
|
|
68
|
-
emit: (event: string, ...args: any[]) => boolean;
|
|
69
|
-
removeAllListeners: (event?: string) => any;
|
|
70
|
-
}
|
|
71
|
-
interface CapturedSpan {
|
|
72
|
-
text: string;
|
|
73
|
-
fg: RGBA;
|
|
74
|
-
bg: RGBA;
|
|
75
|
-
attributes: number;
|
|
76
|
-
width: number;
|
|
77
|
-
}
|
|
78
|
-
interface CapturedLine {
|
|
79
|
-
spans: CapturedSpan[];
|
|
80
|
-
}
|
|
81
|
-
|
|
82
6
|
type WidthMethod = "wcwidth" | "unicode";
|
|
83
7
|
interface BorderDrawOptions {
|
|
84
8
|
x: number;
|
|
@@ -179,16 +103,6 @@ declare class BrowserBuffer {
|
|
|
179
103
|
destroy(): void;
|
|
180
104
|
}
|
|
181
105
|
|
|
182
|
-
declare class BrowserKeyHandler extends EventEmitter {
|
|
183
|
-
constructor();
|
|
184
|
-
processInput(_data: string): boolean;
|
|
185
|
-
}
|
|
186
|
-
declare class BrowserInternalKeyHandler extends BrowserKeyHandler {
|
|
187
|
-
private renderableHandlers;
|
|
188
|
-
onInternal(event: string, handler: Function): void;
|
|
189
|
-
offInternal(event: string, handler: Function): void;
|
|
190
|
-
emit(event: string, ...args: any[]): boolean;
|
|
191
|
-
}
|
|
192
106
|
declare class BrowserRenderContext extends EventEmitter implements RenderContext {
|
|
193
107
|
private _width;
|
|
194
108
|
private _height;
|
|
@@ -200,8 +114,8 @@ declare class BrowserRenderContext extends EventEmitter implements RenderContext
|
|
|
200
114
|
cursorColor: RGBA | null;
|
|
201
115
|
cursorStyleType: CursorStyle;
|
|
202
116
|
cursorBlinking: boolean;
|
|
203
|
-
keyInput:
|
|
204
|
-
_internalKeyInput:
|
|
117
|
+
keyInput: any;
|
|
118
|
+
_internalKeyInput: any;
|
|
205
119
|
constructor(width: number, height: number, widthMethod?: WidthMethod$1);
|
|
206
120
|
get width(): number;
|
|
207
121
|
get height(): number;
|
|
@@ -362,4 +276,4 @@ interface TUIProps {
|
|
|
362
276
|
*/
|
|
363
277
|
declare function TUI({ children, style, className, fontSize, fontFamily, autoFocus, backgroundColor, onReady, fallbackCols, fallbackRows, }: TUIProps): react_jsx_runtime.JSX.Element;
|
|
364
278
|
|
|
365
|
-
export { BrowserRenderer as B, CanvasPainter as C,
|
|
279
|
+
export { BrowserRenderer as B, CanvasPainter as C, SelectionManager as S, TUI as T, type WidthMethod as W, BrowserBuffer as a, BrowserRenderContext as b, type BorderDrawOptions as c, type CanvasPainterOptions as d, type TUIProps as e };
|
package/dist/next-plugin.cjs
CHANGED
|
@@ -45,20 +45,9 @@ function withGridland(nextConfig = {}) {
|
|
|
45
45
|
function shimPath(p) {
|
|
46
46
|
return import_path.default.resolve(pkgRoot, p);
|
|
47
47
|
}
|
|
48
|
-
const coreFileShims = {
|
|
49
|
-
buffer: "src/browser-buffer.ts",
|
|
50
|
-
"text-buffer": "src/shims/text-buffer-shim.ts",
|
|
51
|
-
"text-buffer-view": "src/shims/text-buffer-view-shim.ts",
|
|
52
|
-
"syntax-style": "src/shims/syntax-style-shim.ts",
|
|
53
|
-
"edit-buffer": "src/shims/edit-buffer-stub.ts",
|
|
54
|
-
"editor-view": "src/shims/editor-view-stub.ts",
|
|
55
|
-
"post/filters": "src/shims/filters-stub.ts",
|
|
56
|
-
"animation/Timeline": "src/shims/timeline-stub.ts"
|
|
57
|
-
};
|
|
58
48
|
const userWebpack = nextConfig.webpack;
|
|
59
49
|
return {
|
|
60
50
|
...nextConfig,
|
|
61
|
-
// Ensure Next.js compiles .ts shim files from @gridland/web with SWC
|
|
62
51
|
transpilePackages: [
|
|
63
52
|
...nextConfig.transpilePackages || [],
|
|
64
53
|
"@gridland/web"
|
|
@@ -69,15 +58,20 @@ function withGridland(nextConfig = {}) {
|
|
|
69
58
|
config = userWebpack(config, context);
|
|
70
59
|
}
|
|
71
60
|
const sharedAliases = {
|
|
72
|
-
//
|
|
73
|
-
// No alias needed.
|
|
74
|
-
// @opentui packages — source mode only (monorepo dev)
|
|
61
|
+
// Source mode: @opentui packages + file-level shims
|
|
75
62
|
...hasSource ? {
|
|
63
|
+
"@opentui/core/native": shimPath("src/shims/native-stub.ts"),
|
|
76
64
|
"@opentui/core": import_path.default.resolve(coreRoot, "src/index.ts"),
|
|
77
65
|
"@opentui/react": import_path.default.resolve(reactRoot, "src/index.ts"),
|
|
78
|
-
"@opentui/ui": import_path.default.resolve(uiRoot, "src/index.ts")
|
|
66
|
+
"@opentui/ui": import_path.default.resolve(uiRoot, "src/index.ts"),
|
|
67
|
+
// File-level shims for modules that call resolveRenderLib()
|
|
68
|
+
[import_path.default.resolve(coreRoot, "src/edit-buffer")]: shimPath("src/shims/edit-buffer-stub.ts"),
|
|
69
|
+
[import_path.default.resolve(coreRoot, "src/editor-view")]: shimPath("src/shims/editor-view-stub.ts"),
|
|
70
|
+
[import_path.default.resolve(coreRoot, "src/text-buffer")]: shimPath("src/shims/text-buffer-shim.ts"),
|
|
71
|
+
[import_path.default.resolve(coreRoot, "src/text-buffer-view")]: shimPath("src/shims/text-buffer-view-shim.ts"),
|
|
72
|
+
[import_path.default.resolve(coreRoot, "src/syntax-style")]: shimPath("src/shims/syntax-style-shim.ts")
|
|
79
73
|
} : {},
|
|
80
|
-
// FFI shims
|
|
74
|
+
// FFI shims
|
|
81
75
|
"bun:ffi": shimPath("src/shims/bun-ffi.ts"),
|
|
82
76
|
"bun-ffi-structs": shimPath("src/shims/bun-ffi-structs.ts"),
|
|
83
77
|
bun: shimPath("src/shims/bun-ffi.ts"),
|
|
@@ -85,7 +79,7 @@ function withGridland(nextConfig = {}) {
|
|
|
85
79
|
"tree-sitter-styled-text": shimPath("src/shims/tree-sitter-styled-text-stub.ts"),
|
|
86
80
|
"web-tree-sitter": shimPath("src/shims/tree-sitter-stub.ts"),
|
|
87
81
|
"hast-styled-text": shimPath("src/shims/hast-stub.ts"),
|
|
88
|
-
// Source-mode-only aliases
|
|
82
|
+
// Source-mode-only tree-sitter path aliases
|
|
89
83
|
...hasSource ? {
|
|
90
84
|
[import_path.default.resolve(coreRoot, "src/lib/tree-sitter-styled-text")]: shimPath("src/shims/tree-sitter-styled-text-stub.ts"),
|
|
91
85
|
[import_path.default.resolve(coreRoot, "src/lib/tree-sitter")]: shimPath("src/shims/tree-sitter-stub.ts"),
|
|
@@ -93,11 +87,6 @@ function withGridland(nextConfig = {}) {
|
|
|
93
87
|
[import_path.default.resolve(reactRoot, "src/reconciler/devtools-polyfill")]: shimPath("src/shims/devtools-polyfill-stub.ts")
|
|
94
88
|
} : {}
|
|
95
89
|
};
|
|
96
|
-
if (hasSource) {
|
|
97
|
-
for (const [key, shimFile] of Object.entries(coreFileShims)) {
|
|
98
|
-
sharedAliases[import_path.default.resolve(coreRoot, "src", key)] = shimPath(shimFile);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
90
|
config.resolve = config.resolve || {};
|
|
102
91
|
config.resolve.alias = {
|
|
103
92
|
...config.resolve.alias,
|
|
@@ -121,25 +110,13 @@ function withGridland(nextConfig = {}) {
|
|
|
121
110
|
}
|
|
122
111
|
if (!isServer) {
|
|
123
112
|
const clientAliases = {
|
|
124
|
-
"
|
|
125
|
-
"console$": shimPath("src/shims/console.ts"),
|
|
126
|
-
"events$": shimPath("src/shims/events-shim.ts"),
|
|
127
|
-
"fs/promises": shimPath("src/shims/node-fs.ts"),
|
|
128
|
-
"fs$": shimPath("src/shims/node-fs.ts"),
|
|
129
|
-
"path$": shimPath("src/shims/node-path.ts"),
|
|
130
|
-
"util$": shimPath("src/shims/node-util.ts"),
|
|
131
|
-
"os$": shimPath("src/shims/node-os.ts"),
|
|
132
|
-
"stream$": shimPath("src/shims/node-stream.ts"),
|
|
133
|
-
"url$": shimPath("src/shims/node-url.ts")
|
|
113
|
+
"events$": shimPath("src/shims/events-shim.ts")
|
|
134
114
|
};
|
|
135
115
|
config.resolve.alias = {
|
|
136
116
|
...config.resolve.alias,
|
|
137
117
|
...clientAliases
|
|
138
118
|
};
|
|
139
119
|
config.plugins.push(
|
|
140
|
-
new webpack.NormalModuleReplacementPlugin(/^node:/, (resource) => {
|
|
141
|
-
resource.request = resource.request.replace(/^node:/, "");
|
|
142
|
-
}),
|
|
143
120
|
new webpack.NormalModuleReplacementPlugin(/^bun:/, (resource) => {
|
|
144
121
|
resource.request = resource.request.replace(/^bun:/, "");
|
|
145
122
|
})
|
package/dist/next-plugin.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/next-plugin.ts"],"sourcesContent":["import path from \"path\"\nimport { existsSync } from \"fs\"\n\ntype WebpackConfig = any\ntype WebpackInstance = any\n\ninterface NextConfig {\n webpack?: (config: WebpackConfig, context: { isServer: boolean; webpack: WebpackInstance }) => WebpackConfig\n [key: string]: any\n}\n\n/**\n * Next.js plugin that configures webpack for Gridland.\n * Equivalent to `gridlandWebPlugin()` for Vite — handles module aliases,\n * FFI shims, tree-sitter stubs, Node.js built-in stubs, and circular\n * dependency fixes.\n *\n * In **npm mode**, @gridland/core resolves via package.json conditional exports\n * (\"import\" → dist/browser.js). No aliasing needed.\n *\n * In **source mode**, the plugin handles @opentui/* resolution and file-level\n * browser shims for native-backed classes.\n */\nexport function withGridland(nextConfig: NextConfig = {}): NextConfig {\n // __dirname works natively in CJS; tsup shims it for ESM via import.meta.url\n const pkgRoot = path.resolve(__dirname, \"..\")\n\n // Resolve opentui package roots from the git submodule\n const opentuiRoot = path.resolve(pkgRoot, \"../../opentui\")\n const coreRoot = path.resolve(opentuiRoot, \"packages/core\")\n const reactRoot = path.resolve(opentuiRoot, \"packages/react\")\n const uiRoot = path.resolve(opentuiRoot, \"packages/ui\")\n\n // Detect whether opentui source is available (monorepo/submodule)\n const hasSource = existsSync(path.resolve(reactRoot, \"src/index.ts\"))\n\n function shimPath(p: string) {\n return path.resolve(pkgRoot, p)\n }\n\n // File-level shims — browser replacements for native-backed classes.\n // NOT needed for: zig (zig-registry.ts is browser-safe), renderer, console,\n // NativeSpanFeed (no longer in browser barrel).\n const coreFileShims: Record<string, string> = {\n buffer: \"src/browser-buffer.ts\",\n \"text-buffer\": \"src/shims/text-buffer-shim.ts\",\n \"text-buffer-view\": \"src/shims/text-buffer-view-shim.ts\",\n \"syntax-style\": \"src/shims/syntax-style-shim.ts\",\n \"edit-buffer\": \"src/shims/edit-buffer-stub.ts\",\n \"editor-view\": \"src/shims/editor-view-stub.ts\",\n \"post/filters\": \"src/shims/filters-stub.ts\",\n \"animation/Timeline\": \"src/shims/timeline-stub.ts\",\n }\n\n const userWebpack = nextConfig.webpack\n\n return {\n ...nextConfig,\n // Ensure Next.js compiles .ts shim files from @gridland/web with SWC\n transpilePackages: [\n ...(nextConfig.transpilePackages || []),\n \"@gridland/web\",\n ],\n webpack: (config: WebpackConfig, context: { isServer: boolean; webpack: WebpackInstance }) => {\n const { isServer, webpack } = context\n\n // Chain user's webpack config first if provided\n if (userWebpack) {\n config = userWebpack(config, context)\n }\n\n const sharedAliases: Record<string, string> = {\n // npm mode: @gridland/core resolves via package.json conditional exports.\n // No alias needed.\n\n // @opentui packages — source mode only (monorepo dev)\n ...(hasSource ? {\n \"@opentui/core\": path.resolve(coreRoot, \"src/index.ts\"),\n \"@opentui/react\": path.resolve(reactRoot, \"src/index.ts\"),\n \"@opentui/ui\": path.resolve(uiRoot, \"src/index.ts\"),\n } : {}),\n\n // FFI shims (no Zig/Bun on server or client in browser context)\n \"bun:ffi\": shimPath(\"src/shims/bun-ffi.ts\"),\n \"bun-ffi-structs\": shimPath(\"src/shims/bun-ffi-structs.ts\"),\n bun: shimPath(\"src/shims/bun-ffi.ts\"),\n\n // Tree-sitter stubs\n \"tree-sitter-styled-text\": shimPath(\"src/shims/tree-sitter-styled-text-stub.ts\"),\n \"web-tree-sitter\": shimPath(\"src/shims/tree-sitter-stub.ts\"),\n \"hast-styled-text\": shimPath(\"src/shims/hast-stub.ts\"),\n\n // Source-mode-only aliases\n ...(hasSource ? {\n [path.resolve(coreRoot, \"src/lib/tree-sitter-styled-text\")]:\n shimPath(\"src/shims/tree-sitter-styled-text-stub.ts\"),\n [path.resolve(coreRoot, \"src/lib/tree-sitter\")]:\n shimPath(\"src/shims/tree-sitter-stub.ts\"),\n [path.resolve(coreRoot, \"src/lib/hast-styled-text\")]:\n shimPath(\"src/shims/hast-stub.ts\"),\n [path.resolve(reactRoot, \"src/reconciler/devtools-polyfill\")]:\n shimPath(\"src/shims/devtools-polyfill-stub.ts\"),\n } : {}),\n }\n\n // Core file shims (opentui source → browser shim) — source mode only\n if (hasSource) {\n for (const [key, shimFile] of Object.entries(coreFileShims)) {\n sharedAliases[path.resolve(coreRoot, \"src\", key)] = shimPath(shimFile)\n }\n }\n\n config.resolve = config.resolve || {}\n config.resolve.alias = {\n ...config.resolve.alias,\n ...sharedAliases,\n }\n\n // Allow webpack to resolve workspace packages\n config.resolve.modules = [\n ...(config.resolve.modules || []),\n path.resolve(process.cwd(), \"node_modules\"),\n path.resolve(pkgRoot, \"node_modules\"),\n path.resolve(pkgRoot, \"../../node_modules\"),\n ]\n\n // Slider circular dependency fix — source mode only\n if (hasSource) {\n const renderablesDir = path.resolve(coreRoot, \"src/renderables\")\n config.plugins.push(\n new webpack.NormalModuleReplacementPlugin(/^\\.\\.\\/index$/, (resource: any) => {\n if (resource.context === renderablesDir) {\n resource.request = shimPath(\"src/shims/slider-deps.ts\")\n }\n }),\n )\n }\n\n if (!isServer) {\n // Client-only: Node.js built-in stubs, events shim, console shim.\n // Both node:-prefixed and bare forms are needed because\n // NormalModuleReplacementPlugin strips the node: prefix.\n const clientAliases: Record<string, string> = {\n \"node:console\": shimPath(\"src/shims/console.ts\"),\n \"console$\": shimPath(\"src/shims/console.ts\"),\n \"events$\": shimPath(\"src/shims/events-shim.ts\"),\n \"fs/promises\": shimPath(\"src/shims/node-fs.ts\"),\n \"fs$\": shimPath(\"src/shims/node-fs.ts\"),\n \"path$\": shimPath(\"src/shims/node-path.ts\"),\n \"util$\": shimPath(\"src/shims/node-util.ts\"),\n \"os$\": shimPath(\"src/shims/node-os.ts\"),\n \"stream$\": shimPath(\"src/shims/node-stream.ts\"),\n \"url$\": shimPath(\"src/shims/node-url.ts\"),\n }\n\n config.resolve.alias = {\n ...config.resolve.alias,\n ...clientAliases,\n }\n\n // Strip `node:` and `bun:` prefixes from imports\n config.plugins.push(\n new webpack.NormalModuleReplacementPlugin(/^node:/, (resource: any) => {\n resource.request = resource.request.replace(/^node:/, \"\")\n }),\n new webpack.NormalModuleReplacementPlugin(/^bun:/, (resource: any) => {\n resource.request = resource.request.replace(/^bun:/, \"\")\n }),\n )\n }\n\n // Enable top-level await (used by yoga-layout WASM compilation).\n // All ESM-capable browsers support top-level await, so we declare\n // asyncFunction support to suppress webpack's false-positive warning.\n config.experiments = {\n ...config.experiments,\n topLevelAwait: true,\n }\n config.output = {\n ...config.output,\n environment: {\n ...config.output?.environment,\n asyncFunction: true,\n },\n }\n\n return config\n },\n }\n}\n"],"mappings":"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","names":["path"]}
|
|
1
|
+
{"version":3,"sources":["../src/next-plugin.ts"],"sourcesContent":["import path from \"path\"\nimport { existsSync } from \"fs\"\n\ntype WebpackConfig = any\ntype WebpackInstance = any\n\ninterface NextConfig {\n webpack?: (config: WebpackConfig, context: { isServer: boolean; webpack: WebpackInstance }) => WebpackConfig\n [key: string]: any\n}\n\n/**\n * Next.js plugin that configures webpack for Gridland.\n *\n * In **npm mode**, @gridland/utils resolves via package.json. Minimal config needed.\n *\n * In **source mode**, the plugin handles @opentui/* resolution and native stubs.\n */\nexport function withGridland(nextConfig: NextConfig = {}): NextConfig {\n const pkgRoot = path.resolve(__dirname, \"..\")\n const opentuiRoot = path.resolve(pkgRoot, \"../../opentui\")\n const coreRoot = path.resolve(opentuiRoot, \"packages/core\")\n const reactRoot = path.resolve(opentuiRoot, \"packages/react\")\n const uiRoot = path.resolve(opentuiRoot, \"packages/ui\")\n\n const hasSource = existsSync(path.resolve(reactRoot, \"src/index.ts\"))\n\n function shimPath(p: string) {\n return path.resolve(pkgRoot, p)\n }\n\n const userWebpack = nextConfig.webpack\n\n return {\n ...nextConfig,\n transpilePackages: [\n ...(nextConfig.transpilePackages || []),\n \"@gridland/web\",\n ],\n webpack: (config: WebpackConfig, context: { isServer: boolean; webpack: WebpackInstance }) => {\n const { isServer, webpack } = context\n\n if (userWebpack) {\n config = userWebpack(config, context)\n }\n\n const sharedAliases: Record<string, string> = {\n // Source mode: @opentui packages + file-level shims\n ...(hasSource ? {\n \"@opentui/core/native\": shimPath(\"src/shims/native-stub.ts\"),\n \"@opentui/core\": path.resolve(coreRoot, \"src/index.ts\"),\n \"@opentui/react\": path.resolve(reactRoot, \"src/index.ts\"),\n \"@opentui/ui\": path.resolve(uiRoot, \"src/index.ts\"),\n // File-level shims for modules that call resolveRenderLib()\n [path.resolve(coreRoot, \"src/edit-buffer\")]: shimPath(\"src/shims/edit-buffer-stub.ts\"),\n [path.resolve(coreRoot, \"src/editor-view\")]: shimPath(\"src/shims/editor-view-stub.ts\"),\n [path.resolve(coreRoot, \"src/text-buffer\")]: shimPath(\"src/shims/text-buffer-shim.ts\"),\n [path.resolve(coreRoot, \"src/text-buffer-view\")]: shimPath(\"src/shims/text-buffer-view-shim.ts\"),\n [path.resolve(coreRoot, \"src/syntax-style\")]: shimPath(\"src/shims/syntax-style-shim.ts\"),\n } : {}),\n\n // FFI shims\n \"bun:ffi\": shimPath(\"src/shims/bun-ffi.ts\"),\n \"bun-ffi-structs\": shimPath(\"src/shims/bun-ffi-structs.ts\"),\n bun: shimPath(\"src/shims/bun-ffi.ts\"),\n\n // Tree-sitter stubs\n \"tree-sitter-styled-text\": shimPath(\"src/shims/tree-sitter-styled-text-stub.ts\"),\n \"web-tree-sitter\": shimPath(\"src/shims/tree-sitter-stub.ts\"),\n \"hast-styled-text\": shimPath(\"src/shims/hast-stub.ts\"),\n\n // Source-mode-only tree-sitter path aliases\n ...(hasSource ? {\n [path.resolve(coreRoot, \"src/lib/tree-sitter-styled-text\")]:\n shimPath(\"src/shims/tree-sitter-styled-text-stub.ts\"),\n [path.resolve(coreRoot, \"src/lib/tree-sitter\")]:\n shimPath(\"src/shims/tree-sitter-stub.ts\"),\n [path.resolve(coreRoot, \"src/lib/hast-styled-text\")]:\n shimPath(\"src/shims/hast-stub.ts\"),\n [path.resolve(reactRoot, \"src/reconciler/devtools-polyfill\")]:\n shimPath(\"src/shims/devtools-polyfill-stub.ts\"),\n } : {}),\n }\n\n config.resolve = config.resolve || {}\n config.resolve.alias = {\n ...config.resolve.alias,\n ...sharedAliases,\n }\n\n config.resolve.modules = [\n ...(config.resolve.modules || []),\n path.resolve(process.cwd(), \"node_modules\"),\n path.resolve(pkgRoot, \"node_modules\"),\n path.resolve(pkgRoot, \"../../node_modules\"),\n ]\n\n // Slider circular dependency fix — source mode only\n if (hasSource) {\n const renderablesDir = path.resolve(coreRoot, \"src/renderables\")\n config.plugins.push(\n new webpack.NormalModuleReplacementPlugin(/^\\.\\.\\/index$/, (resource: any) => {\n if (resource.context === renderablesDir) {\n resource.request = shimPath(\"src/shims/slider-deps.ts\")\n }\n }),\n )\n }\n\n if (!isServer) {\n const clientAliases: Record<string, string> = {\n \"events$\": shimPath(\"src/shims/events-shim.ts\"),\n }\n\n config.resolve.alias = {\n ...config.resolve.alias,\n ...clientAliases,\n }\n\n config.plugins.push(\n new webpack.NormalModuleReplacementPlugin(/^bun:/, (resource: any) => {\n resource.request = resource.request.replace(/^bun:/, \"\")\n }),\n )\n }\n\n config.experiments = {\n ...config.experiments,\n topLevelAwait: true,\n }\n config.output = {\n ...config.output,\n environment: {\n ...config.output?.environment,\n asyncFunction: true,\n },\n }\n\n return config\n },\n }\n}\n"],"mappings":"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","names":["path"]}
|
package/dist/next-plugin.d.cts
CHANGED
|
@@ -9,15 +9,10 @@ interface NextConfig {
|
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Next.js plugin that configures webpack for Gridland.
|
|
12
|
-
* Equivalent to `gridlandWebPlugin()` for Vite — handles module aliases,
|
|
13
|
-
* FFI shims, tree-sitter stubs, Node.js built-in stubs, and circular
|
|
14
|
-
* dependency fixes.
|
|
15
12
|
*
|
|
16
|
-
* In **npm mode**, @gridland/
|
|
17
|
-
* ("import" → dist/browser.js). No aliasing needed.
|
|
13
|
+
* In **npm mode**, @gridland/utils resolves via package.json. Minimal config needed.
|
|
18
14
|
*
|
|
19
|
-
* In **source mode**, the plugin handles @opentui/* resolution and
|
|
20
|
-
* browser shims for native-backed classes.
|
|
15
|
+
* In **source mode**, the plugin handles @opentui/* resolution and native stubs.
|
|
21
16
|
*/
|
|
22
17
|
declare function withGridland(nextConfig?: NextConfig): NextConfig;
|
|
23
18
|
|
package/dist/next-plugin.d.ts
CHANGED
|
@@ -9,15 +9,10 @@ interface NextConfig {
|
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Next.js plugin that configures webpack for Gridland.
|
|
12
|
-
* Equivalent to `gridlandWebPlugin()` for Vite — handles module aliases,
|
|
13
|
-
* FFI shims, tree-sitter stubs, Node.js built-in stubs, and circular
|
|
14
|
-
* dependency fixes.
|
|
15
12
|
*
|
|
16
|
-
* In **npm mode**, @gridland/
|
|
17
|
-
* ("import" → dist/browser.js). No aliasing needed.
|
|
13
|
+
* In **npm mode**, @gridland/utils resolves via package.json. Minimal config needed.
|
|
18
14
|
*
|
|
19
|
-
* In **source mode**, the plugin handles @opentui/* resolution and
|
|
20
|
-
* browser shims for native-backed classes.
|
|
15
|
+
* In **source mode**, the plugin handles @opentui/* resolution and native stubs.
|
|
21
16
|
*/
|
|
22
17
|
declare function withGridland(nextConfig?: NextConfig): NextConfig;
|
|
23
18
|
|
package/dist/next-plugin.js
CHANGED
|
@@ -11,20 +11,9 @@ function withGridland(nextConfig = {}) {
|
|
|
11
11
|
function shimPath(p) {
|
|
12
12
|
return path.resolve(pkgRoot, p);
|
|
13
13
|
}
|
|
14
|
-
const coreFileShims = {
|
|
15
|
-
buffer: "src/browser-buffer.ts",
|
|
16
|
-
"text-buffer": "src/shims/text-buffer-shim.ts",
|
|
17
|
-
"text-buffer-view": "src/shims/text-buffer-view-shim.ts",
|
|
18
|
-
"syntax-style": "src/shims/syntax-style-shim.ts",
|
|
19
|
-
"edit-buffer": "src/shims/edit-buffer-stub.ts",
|
|
20
|
-
"editor-view": "src/shims/editor-view-stub.ts",
|
|
21
|
-
"post/filters": "src/shims/filters-stub.ts",
|
|
22
|
-
"animation/Timeline": "src/shims/timeline-stub.ts"
|
|
23
|
-
};
|
|
24
14
|
const userWebpack = nextConfig.webpack;
|
|
25
15
|
return {
|
|
26
16
|
...nextConfig,
|
|
27
|
-
// Ensure Next.js compiles .ts shim files from @gridland/web with SWC
|
|
28
17
|
transpilePackages: [
|
|
29
18
|
...nextConfig.transpilePackages || [],
|
|
30
19
|
"@gridland/web"
|
|
@@ -35,15 +24,20 @@ function withGridland(nextConfig = {}) {
|
|
|
35
24
|
config = userWebpack(config, context);
|
|
36
25
|
}
|
|
37
26
|
const sharedAliases = {
|
|
38
|
-
//
|
|
39
|
-
// No alias needed.
|
|
40
|
-
// @opentui packages — source mode only (monorepo dev)
|
|
27
|
+
// Source mode: @opentui packages + file-level shims
|
|
41
28
|
...hasSource ? {
|
|
29
|
+
"@opentui/core/native": shimPath("src/shims/native-stub.ts"),
|
|
42
30
|
"@opentui/core": path.resolve(coreRoot, "src/index.ts"),
|
|
43
31
|
"@opentui/react": path.resolve(reactRoot, "src/index.ts"),
|
|
44
|
-
"@opentui/ui": path.resolve(uiRoot, "src/index.ts")
|
|
32
|
+
"@opentui/ui": path.resolve(uiRoot, "src/index.ts"),
|
|
33
|
+
// File-level shims for modules that call resolveRenderLib()
|
|
34
|
+
[path.resolve(coreRoot, "src/edit-buffer")]: shimPath("src/shims/edit-buffer-stub.ts"),
|
|
35
|
+
[path.resolve(coreRoot, "src/editor-view")]: shimPath("src/shims/editor-view-stub.ts"),
|
|
36
|
+
[path.resolve(coreRoot, "src/text-buffer")]: shimPath("src/shims/text-buffer-shim.ts"),
|
|
37
|
+
[path.resolve(coreRoot, "src/text-buffer-view")]: shimPath("src/shims/text-buffer-view-shim.ts"),
|
|
38
|
+
[path.resolve(coreRoot, "src/syntax-style")]: shimPath("src/shims/syntax-style-shim.ts")
|
|
45
39
|
} : {},
|
|
46
|
-
// FFI shims
|
|
40
|
+
// FFI shims
|
|
47
41
|
"bun:ffi": shimPath("src/shims/bun-ffi.ts"),
|
|
48
42
|
"bun-ffi-structs": shimPath("src/shims/bun-ffi-structs.ts"),
|
|
49
43
|
bun: shimPath("src/shims/bun-ffi.ts"),
|
|
@@ -51,7 +45,7 @@ function withGridland(nextConfig = {}) {
|
|
|
51
45
|
"tree-sitter-styled-text": shimPath("src/shims/tree-sitter-styled-text-stub.ts"),
|
|
52
46
|
"web-tree-sitter": shimPath("src/shims/tree-sitter-stub.ts"),
|
|
53
47
|
"hast-styled-text": shimPath("src/shims/hast-stub.ts"),
|
|
54
|
-
// Source-mode-only aliases
|
|
48
|
+
// Source-mode-only tree-sitter path aliases
|
|
55
49
|
...hasSource ? {
|
|
56
50
|
[path.resolve(coreRoot, "src/lib/tree-sitter-styled-text")]: shimPath("src/shims/tree-sitter-styled-text-stub.ts"),
|
|
57
51
|
[path.resolve(coreRoot, "src/lib/tree-sitter")]: shimPath("src/shims/tree-sitter-stub.ts"),
|
|
@@ -59,11 +53,6 @@ function withGridland(nextConfig = {}) {
|
|
|
59
53
|
[path.resolve(reactRoot, "src/reconciler/devtools-polyfill")]: shimPath("src/shims/devtools-polyfill-stub.ts")
|
|
60
54
|
} : {}
|
|
61
55
|
};
|
|
62
|
-
if (hasSource) {
|
|
63
|
-
for (const [key, shimFile] of Object.entries(coreFileShims)) {
|
|
64
|
-
sharedAliases[path.resolve(coreRoot, "src", key)] = shimPath(shimFile);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
56
|
config.resolve = config.resolve || {};
|
|
68
57
|
config.resolve.alias = {
|
|
69
58
|
...config.resolve.alias,
|
|
@@ -87,25 +76,13 @@ function withGridland(nextConfig = {}) {
|
|
|
87
76
|
}
|
|
88
77
|
if (!isServer) {
|
|
89
78
|
const clientAliases = {
|
|
90
|
-
"
|
|
91
|
-
"console$": shimPath("src/shims/console.ts"),
|
|
92
|
-
"events$": shimPath("src/shims/events-shim.ts"),
|
|
93
|
-
"fs/promises": shimPath("src/shims/node-fs.ts"),
|
|
94
|
-
"fs$": shimPath("src/shims/node-fs.ts"),
|
|
95
|
-
"path$": shimPath("src/shims/node-path.ts"),
|
|
96
|
-
"util$": shimPath("src/shims/node-util.ts"),
|
|
97
|
-
"os$": shimPath("src/shims/node-os.ts"),
|
|
98
|
-
"stream$": shimPath("src/shims/node-stream.ts"),
|
|
99
|
-
"url$": shimPath("src/shims/node-url.ts")
|
|
79
|
+
"events$": shimPath("src/shims/events-shim.ts")
|
|
100
80
|
};
|
|
101
81
|
config.resolve.alias = {
|
|
102
82
|
...config.resolve.alias,
|
|
103
83
|
...clientAliases
|
|
104
84
|
};
|
|
105
85
|
config.plugins.push(
|
|
106
|
-
new webpack.NormalModuleReplacementPlugin(/^node:/, (resource) => {
|
|
107
|
-
resource.request = resource.request.replace(/^node:/, "");
|
|
108
|
-
}),
|
|
109
86
|
new webpack.NormalModuleReplacementPlugin(/^bun:/, (resource) => {
|
|
110
87
|
resource.request = resource.request.replace(/^bun:/, "");
|
|
111
88
|
})
|
package/dist/next-plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/next-plugin.ts"],"sourcesContent":["import path from \"path\"\nimport { existsSync } from \"fs\"\n\ntype WebpackConfig = any\ntype WebpackInstance = any\n\ninterface NextConfig {\n webpack?: (config: WebpackConfig, context: { isServer: boolean; webpack: WebpackInstance }) => WebpackConfig\n [key: string]: any\n}\n\n/**\n * Next.js plugin that configures webpack for Gridland.\n * Equivalent to `gridlandWebPlugin()` for Vite — handles module aliases,\n * FFI shims, tree-sitter stubs, Node.js built-in stubs, and circular\n * dependency fixes.\n *\n * In **npm mode**, @gridland/core resolves via package.json conditional exports\n * (\"import\" → dist/browser.js). No aliasing needed.\n *\n * In **source mode**, the plugin handles @opentui/* resolution and file-level\n * browser shims for native-backed classes.\n */\nexport function withGridland(nextConfig: NextConfig = {}): NextConfig {\n // __dirname works natively in CJS; tsup shims it for ESM via import.meta.url\n const pkgRoot = path.resolve(__dirname, \"..\")\n\n // Resolve opentui package roots from the git submodule\n const opentuiRoot = path.resolve(pkgRoot, \"../../opentui\")\n const coreRoot = path.resolve(opentuiRoot, \"packages/core\")\n const reactRoot = path.resolve(opentuiRoot, \"packages/react\")\n const uiRoot = path.resolve(opentuiRoot, \"packages/ui\")\n\n // Detect whether opentui source is available (monorepo/submodule)\n const hasSource = existsSync(path.resolve(reactRoot, \"src/index.ts\"))\n\n function shimPath(p: string) {\n return path.resolve(pkgRoot, p)\n }\n\n // File-level shims — browser replacements for native-backed classes.\n // NOT needed for: zig (zig-registry.ts is browser-safe), renderer, console,\n // NativeSpanFeed (no longer in browser barrel).\n const coreFileShims: Record<string, string> = {\n buffer: \"src/browser-buffer.ts\",\n \"text-buffer\": \"src/shims/text-buffer-shim.ts\",\n \"text-buffer-view\": \"src/shims/text-buffer-view-shim.ts\",\n \"syntax-style\": \"src/shims/syntax-style-shim.ts\",\n \"edit-buffer\": \"src/shims/edit-buffer-stub.ts\",\n \"editor-view\": \"src/shims/editor-view-stub.ts\",\n \"post/filters\": \"src/shims/filters-stub.ts\",\n \"animation/Timeline\": \"src/shims/timeline-stub.ts\",\n }\n\n const userWebpack = nextConfig.webpack\n\n return {\n ...nextConfig,\n // Ensure Next.js compiles .ts shim files from @gridland/web with SWC\n transpilePackages: [\n ...(nextConfig.transpilePackages || []),\n \"@gridland/web\",\n ],\n webpack: (config: WebpackConfig, context: { isServer: boolean; webpack: WebpackInstance }) => {\n const { isServer, webpack } = context\n\n // Chain user's webpack config first if provided\n if (userWebpack) {\n config = userWebpack(config, context)\n }\n\n const sharedAliases: Record<string, string> = {\n // npm mode: @gridland/core resolves via package.json conditional exports.\n // No alias needed.\n\n // @opentui packages — source mode only (monorepo dev)\n ...(hasSource ? {\n \"@opentui/core\": path.resolve(coreRoot, \"src/index.ts\"),\n \"@opentui/react\": path.resolve(reactRoot, \"src/index.ts\"),\n \"@opentui/ui\": path.resolve(uiRoot, \"src/index.ts\"),\n } : {}),\n\n // FFI shims (no Zig/Bun on server or client in browser context)\n \"bun:ffi\": shimPath(\"src/shims/bun-ffi.ts\"),\n \"bun-ffi-structs\": shimPath(\"src/shims/bun-ffi-structs.ts\"),\n bun: shimPath(\"src/shims/bun-ffi.ts\"),\n\n // Tree-sitter stubs\n \"tree-sitter-styled-text\": shimPath(\"src/shims/tree-sitter-styled-text-stub.ts\"),\n \"web-tree-sitter\": shimPath(\"src/shims/tree-sitter-stub.ts\"),\n \"hast-styled-text\": shimPath(\"src/shims/hast-stub.ts\"),\n\n // Source-mode-only aliases\n ...(hasSource ? {\n [path.resolve(coreRoot, \"src/lib/tree-sitter-styled-text\")]:\n shimPath(\"src/shims/tree-sitter-styled-text-stub.ts\"),\n [path.resolve(coreRoot, \"src/lib/tree-sitter\")]:\n shimPath(\"src/shims/tree-sitter-stub.ts\"),\n [path.resolve(coreRoot, \"src/lib/hast-styled-text\")]:\n shimPath(\"src/shims/hast-stub.ts\"),\n [path.resolve(reactRoot, \"src/reconciler/devtools-polyfill\")]:\n shimPath(\"src/shims/devtools-polyfill-stub.ts\"),\n } : {}),\n }\n\n // Core file shims (opentui source → browser shim) — source mode only\n if (hasSource) {\n for (const [key, shimFile] of Object.entries(coreFileShims)) {\n sharedAliases[path.resolve(coreRoot, \"src\", key)] = shimPath(shimFile)\n }\n }\n\n config.resolve = config.resolve || {}\n config.resolve.alias = {\n ...config.resolve.alias,\n ...sharedAliases,\n }\n\n // Allow webpack to resolve workspace packages\n config.resolve.modules = [\n ...(config.resolve.modules || []),\n path.resolve(process.cwd(), \"node_modules\"),\n path.resolve(pkgRoot, \"node_modules\"),\n path.resolve(pkgRoot, \"../../node_modules\"),\n ]\n\n // Slider circular dependency fix — source mode only\n if (hasSource) {\n const renderablesDir = path.resolve(coreRoot, \"src/renderables\")\n config.plugins.push(\n new webpack.NormalModuleReplacementPlugin(/^\\.\\.\\/index$/, (resource: any) => {\n if (resource.context === renderablesDir) {\n resource.request = shimPath(\"src/shims/slider-deps.ts\")\n }\n }),\n )\n }\n\n if (!isServer) {\n // Client-only: Node.js built-in stubs, events shim, console shim.\n // Both node:-prefixed and bare forms are needed because\n // NormalModuleReplacementPlugin strips the node: prefix.\n const clientAliases: Record<string, string> = {\n \"node:console\": shimPath(\"src/shims/console.ts\"),\n \"console$\": shimPath(\"src/shims/console.ts\"),\n \"events$\": shimPath(\"src/shims/events-shim.ts\"),\n \"fs/promises\": shimPath(\"src/shims/node-fs.ts\"),\n \"fs$\": shimPath(\"src/shims/node-fs.ts\"),\n \"path$\": shimPath(\"src/shims/node-path.ts\"),\n \"util$\": shimPath(\"src/shims/node-util.ts\"),\n \"os$\": shimPath(\"src/shims/node-os.ts\"),\n \"stream$\": shimPath(\"src/shims/node-stream.ts\"),\n \"url$\": shimPath(\"src/shims/node-url.ts\"),\n }\n\n config.resolve.alias = {\n ...config.resolve.alias,\n ...clientAliases,\n }\n\n // Strip `node:` and `bun:` prefixes from imports\n config.plugins.push(\n new webpack.NormalModuleReplacementPlugin(/^node:/, (resource: any) => {\n resource.request = resource.request.replace(/^node:/, \"\")\n }),\n new webpack.NormalModuleReplacementPlugin(/^bun:/, (resource: any) => {\n resource.request = resource.request.replace(/^bun:/, \"\")\n }),\n )\n }\n\n // Enable top-level await (used by yoga-layout WASM compilation).\n // All ESM-capable browsers support top-level await, so we declare\n // asyncFunction support to suppress webpack's false-positive warning.\n config.experiments = {\n ...config.experiments,\n topLevelAwait: true,\n }\n config.output = {\n ...config.output,\n environment: {\n ...config.output?.environment,\n asyncFunction: true,\n },\n }\n\n return config\n },\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/next-plugin.ts"],"sourcesContent":["import path from \"path\"\nimport { existsSync } from \"fs\"\n\ntype WebpackConfig = any\ntype WebpackInstance = any\n\ninterface NextConfig {\n webpack?: (config: WebpackConfig, context: { isServer: boolean; webpack: WebpackInstance }) => WebpackConfig\n [key: string]: any\n}\n\n/**\n * Next.js plugin that configures webpack for Gridland.\n *\n * In **npm mode**, @gridland/utils resolves via package.json. Minimal config needed.\n *\n * In **source mode**, the plugin handles @opentui/* resolution and native stubs.\n */\nexport function withGridland(nextConfig: NextConfig = {}): NextConfig {\n const pkgRoot = path.resolve(__dirname, \"..\")\n const opentuiRoot = path.resolve(pkgRoot, \"../../opentui\")\n const coreRoot = path.resolve(opentuiRoot, \"packages/core\")\n const reactRoot = path.resolve(opentuiRoot, \"packages/react\")\n const uiRoot = path.resolve(opentuiRoot, \"packages/ui\")\n\n const hasSource = existsSync(path.resolve(reactRoot, \"src/index.ts\"))\n\n function shimPath(p: string) {\n return path.resolve(pkgRoot, p)\n }\n\n const userWebpack = nextConfig.webpack\n\n return {\n ...nextConfig,\n transpilePackages: [\n ...(nextConfig.transpilePackages || []),\n \"@gridland/web\",\n ],\n webpack: (config: WebpackConfig, context: { isServer: boolean; webpack: WebpackInstance }) => {\n const { isServer, webpack } = context\n\n if (userWebpack) {\n config = userWebpack(config, context)\n }\n\n const sharedAliases: Record<string, string> = {\n // Source mode: @opentui packages + file-level shims\n ...(hasSource ? {\n \"@opentui/core/native\": shimPath(\"src/shims/native-stub.ts\"),\n \"@opentui/core\": path.resolve(coreRoot, \"src/index.ts\"),\n \"@opentui/react\": path.resolve(reactRoot, \"src/index.ts\"),\n \"@opentui/ui\": path.resolve(uiRoot, \"src/index.ts\"),\n // File-level shims for modules that call resolveRenderLib()\n [path.resolve(coreRoot, \"src/edit-buffer\")]: shimPath(\"src/shims/edit-buffer-stub.ts\"),\n [path.resolve(coreRoot, \"src/editor-view\")]: shimPath(\"src/shims/editor-view-stub.ts\"),\n [path.resolve(coreRoot, \"src/text-buffer\")]: shimPath(\"src/shims/text-buffer-shim.ts\"),\n [path.resolve(coreRoot, \"src/text-buffer-view\")]: shimPath(\"src/shims/text-buffer-view-shim.ts\"),\n [path.resolve(coreRoot, \"src/syntax-style\")]: shimPath(\"src/shims/syntax-style-shim.ts\"),\n } : {}),\n\n // FFI shims\n \"bun:ffi\": shimPath(\"src/shims/bun-ffi.ts\"),\n \"bun-ffi-structs\": shimPath(\"src/shims/bun-ffi-structs.ts\"),\n bun: shimPath(\"src/shims/bun-ffi.ts\"),\n\n // Tree-sitter stubs\n \"tree-sitter-styled-text\": shimPath(\"src/shims/tree-sitter-styled-text-stub.ts\"),\n \"web-tree-sitter\": shimPath(\"src/shims/tree-sitter-stub.ts\"),\n \"hast-styled-text\": shimPath(\"src/shims/hast-stub.ts\"),\n\n // Source-mode-only tree-sitter path aliases\n ...(hasSource ? {\n [path.resolve(coreRoot, \"src/lib/tree-sitter-styled-text\")]:\n shimPath(\"src/shims/tree-sitter-styled-text-stub.ts\"),\n [path.resolve(coreRoot, \"src/lib/tree-sitter\")]:\n shimPath(\"src/shims/tree-sitter-stub.ts\"),\n [path.resolve(coreRoot, \"src/lib/hast-styled-text\")]:\n shimPath(\"src/shims/hast-stub.ts\"),\n [path.resolve(reactRoot, \"src/reconciler/devtools-polyfill\")]:\n shimPath(\"src/shims/devtools-polyfill-stub.ts\"),\n } : {}),\n }\n\n config.resolve = config.resolve || {}\n config.resolve.alias = {\n ...config.resolve.alias,\n ...sharedAliases,\n }\n\n config.resolve.modules = [\n ...(config.resolve.modules || []),\n path.resolve(process.cwd(), \"node_modules\"),\n path.resolve(pkgRoot, \"node_modules\"),\n path.resolve(pkgRoot, \"../../node_modules\"),\n ]\n\n // Slider circular dependency fix — source mode only\n if (hasSource) {\n const renderablesDir = path.resolve(coreRoot, \"src/renderables\")\n config.plugins.push(\n new webpack.NormalModuleReplacementPlugin(/^\\.\\.\\/index$/, (resource: any) => {\n if (resource.context === renderablesDir) {\n resource.request = shimPath(\"src/shims/slider-deps.ts\")\n }\n }),\n )\n }\n\n if (!isServer) {\n const clientAliases: Record<string, string> = {\n \"events$\": shimPath(\"src/shims/events-shim.ts\"),\n }\n\n config.resolve.alias = {\n ...config.resolve.alias,\n ...clientAliases,\n }\n\n config.plugins.push(\n new webpack.NormalModuleReplacementPlugin(/^bun:/, (resource: any) => {\n resource.request = resource.request.replace(/^bun:/, \"\")\n }),\n )\n }\n\n config.experiments = {\n ...config.experiments,\n topLevelAwait: true,\n }\n config.output = {\n ...config.output,\n environment: {\n ...config.output?.environment,\n asyncFunction: true,\n },\n }\n\n return config\n },\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/next.d.ts
CHANGED