@seanhogg/builderforce-webcontainers-core 2026.10.1 → 2026.10.3
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/build.d.ts +42 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +65 -0
- package/dist/build.js.map +1 -0
- package/dist/buildHost.d.ts +31 -0
- package/dist/buildHost.d.ts.map +1 -0
- package/dist/buildHost.js +125 -0
- package/dist/buildHost.js.map +1 -0
- package/dist/buildHtml.d.ts +28 -0
- package/dist/buildHtml.d.ts.map +1 -0
- package/dist/buildHtml.js +74 -0
- package/dist/buildHtml.js.map +1 -0
- package/dist/bundler.d.ts +129 -0
- package/dist/bundler.d.ts.map +1 -0
- package/dist/bundler.js +79 -0
- package/dist/bundler.js.map +1 -0
- package/dist/check/acquire.d.ts +46 -0
- package/dist/check/acquire.d.ts.map +1 -0
- package/dist/check/acquire.js +179 -0
- package/dist/check/acquire.js.map +1 -0
- package/dist/check/compilerHost.d.ts +22 -0
- package/dist/check/compilerHost.d.ts.map +1 -0
- package/dist/check/compilerHost.js +128 -0
- package/dist/check/compilerHost.js.map +1 -0
- package/dist/check/diagnostics.d.ts +23 -0
- package/dist/check/diagnostics.d.ts.map +1 -0
- package/dist/check/diagnostics.js +28 -0
- package/dist/check/diagnostics.js.map +1 -0
- package/dist/check/index.d.ts +19 -0
- package/dist/check/index.d.ts.map +1 -0
- package/dist/check/index.js +13 -0
- package/dist/check/index.js.map +1 -0
- package/dist/check/projects.d.ts +26 -0
- package/dist/check/projects.d.ts.map +1 -0
- package/dist/check/projects.js +124 -0
- package/dist/check/projects.js.map +1 -0
- package/dist/check/shims.d.ts +29 -0
- package/dist/check/shims.d.ts.map +1 -0
- package/dist/check/shims.js +76 -0
- package/dist/check/shims.js.map +1 -0
- package/dist/check/typeStore.d.ts +57 -0
- package/dist/check/typeStore.d.ts.map +1 -0
- package/dist/check/typeStore.js +89 -0
- package/dist/check/typeStore.js.map +1 -0
- package/dist/check/typecheck.d.ts +29 -0
- package/dist/check/typecheck.d.ts.map +1 -0
- package/dist/check/typecheck.js +91 -0
- package/dist/check/typecheck.js.map +1 -0
- package/dist/compileComponent.d.ts +8 -0
- package/dist/compileComponent.d.ts.map +1 -0
- package/dist/compileComponent.js +22 -0
- package/dist/compileComponent.js.map +1 -0
- package/dist/compileScript.d.ts +19 -4
- package/dist/compileScript.d.ts.map +1 -1
- package/dist/compileScript.js +37 -12
- package/dist/compileScript.js.map +1 -1
- package/dist/components.d.ts +41 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +14 -0
- package/dist/components.js.map +1 -0
- package/dist/detectProject.d.ts +3 -0
- package/dist/detectProject.d.ts.map +1 -1
- package/dist/detectProject.js +16 -6
- package/dist/detectProject.js.map +1 -1
- package/dist/devServer.d.ts +5 -2
- package/dist/devServer.d.ts.map +1 -1
- package/dist/devServer.js +16 -8
- package/dist/devServer.js.map +1 -1
- package/dist/hash.d.ts +2 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +22 -0
- package/dist/hash.js.map +1 -0
- package/dist/html.d.ts +8 -0
- package/dist/html.d.ts.map +1 -1
- package/dist/html.js +17 -1
- package/dist/html.js.map +1 -1
- package/dist/index.d.ts +25 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -4
- package/dist/index.js.map +1 -1
- package/dist/installer/bins.d.ts +24 -0
- package/dist/installer/bins.d.ts.map +1 -0
- package/dist/installer/bins.js +56 -0
- package/dist/installer/bins.js.map +1 -0
- package/dist/installer/index.d.ts +14 -0
- package/dist/installer/index.d.ts.map +1 -0
- package/dist/installer/index.js +9 -0
- package/dist/installer/index.js.map +1 -0
- package/dist/installer/install.d.ts +46 -0
- package/dist/installer/install.d.ts.map +1 -0
- package/dist/installer/install.js +245 -0
- package/dist/installer/install.js.map +1 -0
- package/dist/installer/lockfile.d.ts +49 -0
- package/dist/installer/lockfile.d.ts.map +1 -0
- package/dist/installer/lockfile.js +110 -0
- package/dist/installer/lockfile.js.map +1 -0
- package/dist/installer/registry.d.ts +84 -0
- package/dist/installer/registry.d.ts.map +1 -0
- package/dist/installer/registry.js +130 -0
- package/dist/installer/registry.js.map +1 -0
- package/dist/installer/semver.d.ts +38 -0
- package/dist/installer/semver.d.ts.map +1 -0
- package/dist/installer/semver.js +187 -0
- package/dist/installer/semver.js.map +1 -0
- package/dist/installer/spec.d.ts +30 -0
- package/dist/installer/spec.d.ts.map +1 -0
- package/dist/installer/spec.js +30 -0
- package/dist/installer/spec.js.map +1 -0
- package/dist/installer/tar.d.ts +17 -0
- package/dist/installer/tar.d.ts.map +1 -0
- package/dist/installer/tar.js +150 -0
- package/dist/installer/tar.js.map +1 -0
- package/dist/installer/tree.d.ts +48 -0
- package/dist/installer/tree.d.ts.map +1 -0
- package/dist/installer/tree.js +179 -0
- package/dist/installer/tree.js.map +1 -0
- package/dist/node/assert.d.ts +15 -0
- package/dist/node/assert.d.ts.map +1 -0
- package/dist/node/assert.js +137 -0
- package/dist/node/assert.js.map +1 -0
- package/dist/node/buffer.d.ts +84 -0
- package/dist/node/buffer.d.ts.map +1 -0
- package/dist/node/buffer.js +304 -0
- package/dist/node/buffer.js.map +1 -0
- package/dist/node/builtins.d.ts +25 -0
- package/dist/node/builtins.d.ts.map +1 -0
- package/dist/node/builtins.js +101 -0
- package/dist/node/builtins.js.map +1 -0
- package/dist/node/callable.d.ts +13 -0
- package/dist/node/callable.d.ts.map +1 -0
- package/dist/node/callable.js +26 -0
- package/dist/node/callable.js.map +1 -0
- package/dist/node/childProcess.d.ts +13 -0
- package/dist/node/childProcess.d.ts.map +1 -0
- package/dist/node/childProcess.js +143 -0
- package/dist/node/childProcess.js.map +1 -0
- package/dist/node/crypto.d.ts +3 -0
- package/dist/node/crypto.d.ts.map +1 -0
- package/dist/node/crypto.js +180 -0
- package/dist/node/crypto.js.map +1 -0
- package/dist/node/esm.d.ts +9 -0
- package/dist/node/esm.d.ts.map +1 -0
- package/dist/node/esm.js +202 -0
- package/dist/node/esm.js.map +1 -0
- package/dist/node/events.d.ts +40 -0
- package/dist/node/events.d.ts.map +1 -0
- package/dist/node/events.js +160 -0
- package/dist/node/events.js.map +1 -0
- package/dist/node/fs/index.d.ts +7 -0
- package/dist/node/fs/index.d.ts.map +1 -0
- package/dist/node/fs/index.js +270 -0
- package/dist/node/fs/index.js.map +1 -0
- package/dist/node/fs/stats.d.ts +93 -0
- package/dist/node/fs/stats.d.ts.map +1 -0
- package/dist/node/fs/stats.js +104 -0
- package/dist/node/fs/stats.js.map +1 -0
- package/dist/node/fs/sync.d.ts +98 -0
- package/dist/node/fs/sync.d.ts.map +1 -0
- package/dist/node/fs/sync.js +348 -0
- package/dist/node/fs/sync.js.map +1 -0
- package/dist/node/hashes.d.ts +15 -0
- package/dist/node/hashes.d.ts.map +1 -0
- package/dist/node/hashes.js +195 -0
- package/dist/node/hashes.js.map +1 -0
- package/dist/node/http/client.d.ts +35 -0
- package/dist/node/http/client.d.ts.map +1 -0
- package/dist/node/http/client.js +161 -0
- package/dist/node/http/client.js.map +1 -0
- package/dist/node/http/index.d.ts +5 -0
- package/dist/node/http/index.d.ts.map +1 -0
- package/dist/node/http/index.js +125 -0
- package/dist/node/http/index.js.map +1 -0
- package/dist/node/http/server.d.ts +135 -0
- package/dist/node/http/server.d.ts.map +1 -0
- package/dist/node/http/server.js +308 -0
- package/dist/node/http/server.js.map +1 -0
- package/dist/node/http/status.d.ts +3 -0
- package/dist/node/http/status.d.ts.map +1 -0
- package/dist/node/http/status.js +13 -0
- package/dist/node/http/status.js.map +1 -0
- package/dist/node/inspect.d.ts +22 -0
- package/dist/node/inspect.d.ts.map +1 -0
- package/dist/node/inspect.js +172 -0
- package/dist/node/inspect.js.map +1 -0
- package/dist/node/loader.d.ts +91 -0
- package/dist/node/loader.d.ts.map +1 -0
- package/dist/node/loader.js +265 -0
- package/dist/node/loader.js.map +1 -0
- package/dist/node/loop.d.ts +71 -0
- package/dist/node/loop.d.ts.map +1 -0
- package/dist/node/loop.js +189 -0
- package/dist/node/loop.js.map +1 -0
- package/dist/node/misc.d.ts +10 -0
- package/dist/node/misc.d.ts.map +1 -0
- package/dist/node/misc.js +256 -0
- package/dist/node/misc.js.map +1 -0
- package/dist/node/path.d.ts +14 -0
- package/dist/node/path.d.ts.map +1 -0
- package/dist/node/path.js +128 -0
- package/dist/node/path.js.map +1 -0
- package/dist/node/process.d.ts +31 -0
- package/dist/node/process.d.ts.map +1 -0
- package/dist/node/process.js +309 -0
- package/dist/node/process.js.map +1 -0
- package/dist/node/program.d.ts +19 -0
- package/dist/node/program.d.ts.map +1 -0
- package/dist/node/program.js +165 -0
- package/dist/node/program.js.map +1 -0
- package/dist/node/readline.d.ts +2 -0
- package/dist/node/readline.d.ts.map +1 -0
- package/dist/node/readline.js +155 -0
- package/dist/node/readline.js.map +1 -0
- package/dist/node/resolve.d.ts +45 -0
- package/dist/node/resolve.d.ts.map +1 -0
- package/dist/node/resolve.js +206 -0
- package/dist/node/resolve.js.map +1 -0
- package/dist/node/runtime.d.ts +40 -0
- package/dist/node/runtime.d.ts.map +1 -0
- package/dist/node/runtime.js +149 -0
- package/dist/node/runtime.js.map +1 -0
- package/dist/node/stream/index.d.ts +52 -0
- package/dist/node/stream/index.d.ts.map +1 -0
- package/dist/node/stream/index.js +184 -0
- package/dist/node/stream/index.js.map +1 -0
- package/dist/node/stream/readable.d.ts +83 -0
- package/dist/node/stream/readable.d.ts.map +1 -0
- package/dist/node/stream/readable.js +325 -0
- package/dist/node/stream/readable.js.map +1 -0
- package/dist/node/stream/writable.d.ts +80 -0
- package/dist/node/stream/writable.d.ts.map +1 -0
- package/dist/node/stream/writable.js +224 -0
- package/dist/node/stream/writable.js.map +1 -0
- package/dist/node/urlqs.d.ts +22 -0
- package/dist/node/urlqs.d.ts.map +1 -0
- package/dist/node/urlqs.js +165 -0
- package/dist/node/urlqs.js.map +1 -0
- package/dist/node/util.d.ts +37 -0
- package/dist/node/util.d.ts.map +1 -0
- package/dist/node/util.js +160 -0
- package/dist/node/util.js.map +1 -0
- package/dist/node/zlib.d.ts +2 -0
- package/dist/node/zlib.d.ts.map +1 -0
- package/dist/node/zlib.js +133 -0
- package/dist/node/zlib.js.map +1 -0
- package/dist/packageCdn.d.ts +12 -0
- package/dist/packageCdn.d.ts.map +1 -1
- package/dist/packageCdn.js +3 -1
- package/dist/packageCdn.js.map +1 -1
- package/dist/projectConfig.d.ts +6 -2
- package/dist/projectConfig.d.ts.map +1 -1
- package/dist/projectConfig.js +32 -8
- package/dist/projectConfig.js.map +1 -1
- package/dist/shell/builtins.d.ts +23 -0
- package/dist/shell/builtins.d.ts.map +1 -0
- package/dist/shell/builtins.js +131 -0
- package/dist/shell/builtins.js.map +1 -0
- package/dist/shell/context.d.ts +41 -0
- package/dist/shell/context.d.ts.map +1 -0
- package/dist/shell/context.js +65 -0
- package/dist/shell/context.js.map +1 -0
- package/dist/shell/devHandoff.d.ts +18 -0
- package/dist/shell/devHandoff.d.ts.map +1 -0
- package/dist/shell/devHandoff.js +36 -0
- package/dist/shell/devHandoff.js.map +1 -0
- package/dist/shell/exec.d.ts +67 -0
- package/dist/shell/exec.d.ts.map +1 -0
- package/dist/shell/exec.js +247 -0
- package/dist/shell/exec.js.map +1 -0
- package/dist/shell/expand.d.ts +28 -0
- package/dist/shell/expand.d.ts.map +1 -0
- package/dist/shell/expand.js +149 -0
- package/dist/shell/expand.js.map +1 -0
- package/dist/shell/fileCommands.d.ts +10 -0
- package/dist/shell/fileCommands.d.ts.map +1 -0
- package/dist/shell/fileCommands.js +208 -0
- package/dist/shell/fileCommands.js.map +1 -0
- package/dist/shell/lineEditor.d.ts +43 -0
- package/dist/shell/lineEditor.d.ts.map +1 -0
- package/dist/shell/lineEditor.js +234 -0
- package/dist/shell/lineEditor.js.map +1 -0
- package/dist/shell/npm.d.ts +6 -0
- package/dist/shell/npm.d.ts.map +1 -0
- package/dist/shell/npm.js +234 -0
- package/dist/shell/npm.js.map +1 -0
- package/dist/shell/parse.d.ts +73 -0
- package/dist/shell/parse.d.ts.map +1 -0
- package/dist/shell/parse.js +300 -0
- package/dist/shell/parse.js.map +1 -0
- package/dist/shell/program.d.ts +12 -0
- package/dist/shell/program.d.ts.map +1 -0
- package/dist/shell/program.js +219 -0
- package/dist/shell/program.js.map +1 -0
- package/dist/shell/textCommands.d.ts +15 -0
- package/dist/shell/textCommands.d.ts.map +1 -0
- package/dist/shell/textCommands.js +185 -0
- package/dist/shell/textCommands.js.map +1 -0
- package/dist/styleModules.d.ts +6 -0
- package/dist/styleModules.d.ts.map +1 -1
- package/dist/styleModules.js +14 -4
- package/dist/styleModules.js.map +1 -1
- package/dist/svelteCompiler.d.ts +28 -0
- package/dist/svelteCompiler.d.ts.map +1 -0
- package/dist/svelteCompiler.js +13 -0
- package/dist/svelteCompiler.js.map +1 -0
- package/dist/system/commands.d.ts +26 -0
- package/dist/system/commands.d.ts.map +1 -0
- package/dist/system/commands.js +53 -0
- package/dist/system/commands.js.map +1 -0
- package/dist/system/index.d.ts +23 -0
- package/dist/system/index.d.ts.map +1 -0
- package/dist/system/index.js +16 -0
- package/dist/system/index.js.map +1 -0
- package/dist/system/kernel.d.ts +54 -0
- package/dist/system/kernel.d.ts.map +1 -0
- package/dist/system/kernel.js +81 -0
- package/dist/system/kernel.js.map +1 -0
- package/dist/system/ports.d.ts +32 -0
- package/dist/system/ports.d.ts.map +1 -0
- package/dist/system/ports.js +57 -0
- package/dist/system/ports.js.map +1 -0
- package/dist/system/process.d.ts +32 -0
- package/dist/system/process.d.ts.map +1 -0
- package/dist/system/process.js +130 -0
- package/dist/system/process.js.map +1 -0
- package/dist/system/programs.d.ts +10 -0
- package/dist/system/programs.d.ts.map +1 -0
- package/dist/system/programs.js +22 -0
- package/dist/system/programs.js.map +1 -0
- package/dist/system/terminal.d.ts +45 -0
- package/dist/system/terminal.d.ts.map +1 -0
- package/dist/system/terminal.js +127 -0
- package/dist/system/terminal.js.map +1 -0
- package/dist/system/types.d.ts +100 -0
- package/dist/system/types.d.ts.map +1 -0
- package/dist/system/types.js +2 -0
- package/dist/system/types.js.map +1 -0
- package/dist/vfs.d.ts +28 -4
- package/dist/vfs.d.ts.map +1 -1
- package/dist/vfs.js +95 -32
- package/dist/vfs.js.map +1 -1
- package/dist/vueCompiler.d.ts +75 -0
- package/dist/vueCompiler.d.ts.map +1 -0
- package/dist/vueCompiler.js +67 -0
- package/dist/vueCompiler.js.map +1 -0
- package/package.json +18 -2
- package/src/build.ts +105 -0
- package/src/buildHost.ts +154 -0
- package/src/buildHtml.ts +101 -0
- package/src/bundler.ts +190 -0
- package/src/check/acquire.ts +212 -0
- package/src/check/compilerHost.ts +138 -0
- package/src/check/diagnostics.ts +48 -0
- package/src/check/index.ts +28 -0
- package/src/check/projects.ts +149 -0
- package/src/check/shims.ts +88 -0
- package/src/check/typeStore.ts +103 -0
- package/src/check/typecheck.ts +134 -0
- package/src/compileComponent.ts +21 -0
- package/src/compileScript.ts +42 -13
- package/src/components.ts +59 -0
- package/src/detectProject.ts +18 -6
- package/src/devServer.ts +19 -10
- package/src/hash.ts +22 -0
- package/src/html.ts +19 -1
- package/src/index.ts +36 -7
- package/src/installer/bins.ts +64 -0
- package/src/installer/index.ts +13 -0
- package/src/installer/install.ts +275 -0
- package/src/installer/lockfile.ts +146 -0
- package/src/installer/registry.ts +175 -0
- package/src/installer/semver.ts +190 -0
- package/src/installer/spec.ts +53 -0
- package/src/installer/tar.ts +155 -0
- package/src/installer/tree.ts +236 -0
- package/src/node/assert.ts +127 -0
- package/src/node/buffer.ts +304 -0
- package/src/node/builtins.ts +123 -0
- package/src/node/callable.ts +25 -0
- package/src/node/childProcess.ts +164 -0
- package/src/node/crypto.ts +187 -0
- package/src/node/esm.ts +196 -0
- package/src/node/events.ts +176 -0
- package/src/node/fs/index.ts +277 -0
- package/src/node/fs/stats.ts +110 -0
- package/src/node/fs/sync.ts +335 -0
- package/src/node/hashes.ts +171 -0
- package/src/node/http/client.ts +173 -0
- package/src/node/http/index.ts +122 -0
- package/src/node/http/server.ts +308 -0
- package/src/node/http/status.ts +13 -0
- package/src/node/inspect.ts +166 -0
- package/src/node/loader.ts +293 -0
- package/src/node/loop.ts +193 -0
- package/src/node/misc.ts +250 -0
- package/src/node/path.ts +135 -0
- package/src/node/process.ts +324 -0
- package/src/node/program.ts +170 -0
- package/src/node/readline.ts +157 -0
- package/src/node/resolve.ts +216 -0
- package/src/node/runtime.ts +184 -0
- package/src/node/stream/index.ts +196 -0
- package/src/node/stream/readable.ts +345 -0
- package/src/node/stream/writable.ts +244 -0
- package/src/node/urlqs.ts +162 -0
- package/src/node/util.ts +145 -0
- package/src/node/zlib.ts +145 -0
- package/src/packageCdn.ts +11 -1
- package/src/projectConfig.ts +34 -7
- package/src/shell/builtins.ts +141 -0
- package/src/shell/context.ts +89 -0
- package/src/shell/devHandoff.ts +49 -0
- package/src/shell/exec.ts +268 -0
- package/src/shell/expand.ts +145 -0
- package/src/shell/fileCommands.ts +206 -0
- package/src/shell/lineEditor.ts +233 -0
- package/src/shell/npm.ts +229 -0
- package/src/shell/parse.ts +295 -0
- package/src/shell/program.ts +223 -0
- package/src/shell/textCommands.ts +177 -0
- package/src/styleModules.ts +15 -4
- package/src/svelteCompiler.ts +31 -0
- package/src/system/commands.ts +72 -0
- package/src/system/index.ts +22 -0
- package/src/system/kernel.ts +106 -0
- package/src/system/ports.ts +73 -0
- package/src/system/process.ts +158 -0
- package/src/system/programs.ts +31 -0
- package/src/system/terminal.ts +135 -0
- package/src/system/types.ts +103 -0
- package/src/vfs.ts +92 -28
- package/src/vueCompiler.ts +121 -0
package/dist/compileScript.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { VirtualFileSystem } from './vfs.js';
|
|
2
|
-
import type { ProjectConfig } from './projectConfig.js';
|
|
2
|
+
import type { BuildMode, ProjectConfig } from './projectConfig.js';
|
|
3
3
|
import type { PackageCdn } from './packageCdn.js';
|
|
4
|
-
import type { Transformer } from './transformer.js';
|
|
4
|
+
import type { Loader, Transformer } from './transformer.js';
|
|
5
|
+
import type { ComponentCompilers } from './components.js';
|
|
5
6
|
export interface CompileContext {
|
|
6
7
|
fs: VirtualFileSystem;
|
|
7
8
|
config: ProjectConfig;
|
|
@@ -9,23 +10,37 @@ export interface CompileContext {
|
|
|
9
10
|
transformer: Transformer;
|
|
10
11
|
/** Preview base URL, ending in `/`. */
|
|
11
12
|
base: string;
|
|
13
|
+
/** `.vue` / `.svelte` compilers. */
|
|
14
|
+
components: ComponentCompilers;
|
|
12
15
|
}
|
|
13
16
|
/** Vite-style import queries this runtime honours. */
|
|
14
17
|
export type ImportQuery = 'import' | 'raw' | 'url';
|
|
18
|
+
/** A file served as a script module: TS/JS, or a component compiled to one. */
|
|
19
|
+
export declare function isScriptPath(path: string): boolean;
|
|
15
20
|
/**
|
|
16
21
|
* The URL a resolved VFS file is imported by. Scripts are served as-is; CSS and
|
|
17
22
|
* JSON need the `?import` JS wrapper; anything else imported from JS (images,
|
|
18
23
|
* fonts) exports its URL, as in Vite.
|
|
19
24
|
*/
|
|
20
25
|
export declare function moduleUrl(base: string, path: string, query?: ImportQuery): string;
|
|
26
|
+
/** Split `./notes.md?raw` into the path and the query this runtime honours (if any). */
|
|
27
|
+
export declare function splitQuery(specifier: string): {
|
|
28
|
+
path: string;
|
|
29
|
+
query?: ImportQuery;
|
|
30
|
+
};
|
|
21
31
|
/**
|
|
22
32
|
* Map one import specifier to the URL the browser should fetch. Undefined leaves
|
|
23
33
|
* it unchanged: URLs, `node:` builtins, and local paths that do not resolve (the
|
|
24
34
|
* browser's 404 then surfaces through the error bridge).
|
|
25
35
|
*/
|
|
26
36
|
export declare function mapSpecifier(ctx: CompileContext, fromDir: string, specifier: string): string | undefined;
|
|
27
|
-
/**
|
|
28
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Compile-time constants: Vite's `import.meta.env`, CRA's `process.env.REACT_APP_*`
|
|
39
|
+
* and `PUBLIC_URL`. `base` is the URL the app is served under.
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildDefine(config: ProjectConfig, base: string, mode?: BuildMode): Record<string, string>;
|
|
42
|
+
/** Compile module source (TS/JSX or plain JS) and point its imports at preview and CDN URLs. */
|
|
43
|
+
export declare function compileModule(ctx: CompileContext, path: string, source: string, loader: Loader): Promise<string>;
|
|
29
44
|
/** TS/JSX → an ES module whose imports point at preview and CDN URLs. */
|
|
30
45
|
export declare function compileScript(ctx: CompileContext, path: string): Promise<string>;
|
|
31
46
|
//# sourceMappingURL=compileScript.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compileScript.d.ts","sourceRoot":"","sources":["../src/compileScript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"compileScript.d.ts","sourceRoot":"","sources":["../src/compileScript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAO1D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,UAAU,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,sDAAsD;AACtD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AAEnD,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,CAOjF;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,CAKnF;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYxG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,SAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBxH;AAED,gGAAgG;AAChG,wBAAsB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAStH;AAED,yEAAyE;AACzE,wBAAsB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAItF"}
|
package/dist/compileScript.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
import { componentExtension } from './components.js';
|
|
1
2
|
import { loaderFor } from './transformer.js';
|
|
2
3
|
import { dirname, extname } from './paths.js';
|
|
3
4
|
import { isBareSpecifier, resolveAlias, resolveLocal, splitPackageSpecifier } from './resolve.js';
|
|
4
5
|
import { rewriteImports } from './rewriteImports.js';
|
|
6
|
+
/** A file served as a script module: TS/JS, or a component compiled to one. */
|
|
7
|
+
export function isScriptPath(path) {
|
|
8
|
+
const ext = extname(path);
|
|
9
|
+
return loaderFor(ext) !== undefined || componentExtension(ext) !== undefined;
|
|
10
|
+
}
|
|
5
11
|
/**
|
|
6
12
|
* The URL a resolved VFS file is imported by. Scripts are served as-is; CSS and
|
|
7
13
|
* JSON need the `?import` JS wrapper; anything else imported from JS (images,
|
|
@@ -12,13 +18,14 @@ export function moduleUrl(base, path, query) {
|
|
|
12
18
|
if (query === 'raw' || query === 'url')
|
|
13
19
|
return `${url}?${query}`;
|
|
14
20
|
const ext = extname(path);
|
|
15
|
-
if (
|
|
21
|
+
if (isScriptPath(path))
|
|
16
22
|
return url;
|
|
17
23
|
if (ext === '.css' || ext === '.json')
|
|
18
24
|
return `${url}?import`;
|
|
19
25
|
return `${url}?url`;
|
|
20
26
|
}
|
|
21
|
-
|
|
27
|
+
/** Split `./notes.md?raw` into the path and the query this runtime honours (if any). */
|
|
28
|
+
export function splitQuery(specifier) {
|
|
22
29
|
const at = specifier.indexOf('?');
|
|
23
30
|
if (at < 0)
|
|
24
31
|
return { path: specifier };
|
|
@@ -44,25 +51,36 @@ export function mapSpecifier(ctx, fromDir, specifier) {
|
|
|
44
51
|
const resolved = resolveLocal(ctx.fs, fromDir, path);
|
|
45
52
|
return resolved ? moduleUrl(ctx.base, resolved, query) : undefined;
|
|
46
53
|
}
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Compile-time constants: Vite's `import.meta.env`, CRA's `process.env.REACT_APP_*`
|
|
56
|
+
* and `PUBLIC_URL`. `base` is the URL the app is served under.
|
|
57
|
+
*/
|
|
58
|
+
export function buildDefine(config, base, mode = 'development') {
|
|
59
|
+
const production = mode === 'production';
|
|
60
|
+
const env = { MODE: mode, DEV: !production, PROD: production, SSR: false, BASE_URL: base };
|
|
61
|
+
const define = {
|
|
62
|
+
'process.env.NODE_ENV': JSON.stringify(mode),
|
|
63
|
+
// CRA's convention: the base without its trailing slash ('' at the root).
|
|
64
|
+
'process.env.PUBLIC_URL': JSON.stringify(base.replace(/\/$/, '')),
|
|
65
|
+
};
|
|
51
66
|
for (const [key, value] of Object.entries(config.env)) {
|
|
52
67
|
if (key.startsWith('VITE_'))
|
|
53
68
|
env[key] = value;
|
|
54
69
|
if (key.startsWith('VITE_') || key.startsWith('REACT_APP_'))
|
|
55
70
|
define[`process.env.${key}`] = JSON.stringify(value);
|
|
56
71
|
}
|
|
72
|
+
// Each key on its own, so `import.meta.env.VITE_X` becomes a literal in place; the
|
|
73
|
+
// whole object only where code reads `import.meta.env` itself. (Defining just the
|
|
74
|
+
// object makes a bundler hoist it into a shared variable.)
|
|
75
|
+
for (const [key, value] of Object.entries(env)) {
|
|
76
|
+
if (/^[A-Za-z_$][\w$]*$/.test(key))
|
|
77
|
+
define[`import.meta.env.${key}`] = JSON.stringify(value);
|
|
78
|
+
}
|
|
57
79
|
define['import.meta.env'] = JSON.stringify(env);
|
|
58
80
|
return define;
|
|
59
81
|
}
|
|
60
|
-
/** TS/JSX
|
|
61
|
-
export async function
|
|
62
|
-
const loader = loaderFor(extname(path));
|
|
63
|
-
if (!loader)
|
|
64
|
-
throw new Error(`Not a script: ${path}`);
|
|
65
|
-
const source = ctx.fs.readText(path) ?? '';
|
|
82
|
+
/** Compile module source (TS/JSX or plain JS) and point its imports at preview and CDN URLs. */
|
|
83
|
+
export async function compileModule(ctx, path, source, loader) {
|
|
66
84
|
const { code } = await ctx.transformer.transform(source, {
|
|
67
85
|
loader,
|
|
68
86
|
sourcefile: path,
|
|
@@ -72,4 +90,11 @@ export async function compileScript(ctx, path) {
|
|
|
72
90
|
const fromDir = dirname(path);
|
|
73
91
|
return rewriteImports(code, (specifier) => mapSpecifier(ctx, fromDir, specifier));
|
|
74
92
|
}
|
|
93
|
+
/** TS/JSX → an ES module whose imports point at preview and CDN URLs. */
|
|
94
|
+
export async function compileScript(ctx, path) {
|
|
95
|
+
const loader = loaderFor(extname(path));
|
|
96
|
+
if (!loader)
|
|
97
|
+
throw new Error(`Not a script: ${path}`);
|
|
98
|
+
return compileModule(ctx, path, ctx.fs.readText(path) ?? '', loader);
|
|
99
|
+
}
|
|
75
100
|
//# sourceMappingURL=compileScript.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compileScript.js","sourceRoot":"","sources":["../src/compileScript.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compileScript.js","sourceRoot":"","sources":["../src/compileScript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Loader } from './transformer.js';
|
|
2
|
+
/**
|
|
3
|
+
* Single-file components (`.vue`, `.svelte`) as a PORT, like the Transformer. A
|
|
4
|
+
* component compiler turns one file into a script module plus the CSS it owns;
|
|
5
|
+
* the dev server injects that CSS with a <style> tag and the build extracts it
|
|
6
|
+
* into the CSS bundle, so the compilers themselves never touch the DOM.
|
|
7
|
+
*
|
|
8
|
+
* The core never imports a framework compiler. The browser runtime loads the
|
|
9
|
+
* official ones from a CDN on first use, pinned to the project's own framework
|
|
10
|
+
* version (a Svelte compiler must match its runtime exactly); Node tests pass the
|
|
11
|
+
* npm packages in.
|
|
12
|
+
*/
|
|
13
|
+
export type ComponentExtension = '.vue' | '.svelte';
|
|
14
|
+
export declare const COMPONENT_EXTENSIONS: readonly ComponentExtension[];
|
|
15
|
+
export declare function componentExtension(ext: string): ComponentExtension | undefined;
|
|
16
|
+
export interface ComponentRequest {
|
|
17
|
+
/** The VFS path — names the component in errors and seeds its style scope id. */
|
|
18
|
+
path: string;
|
|
19
|
+
/** Development output (dev warnings, readable names) vs production. */
|
|
20
|
+
dev: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface CompiledComponent {
|
|
23
|
+
/** An ES module (still TS when `loader` says so) whose default export is the component. */
|
|
24
|
+
code: string;
|
|
25
|
+
loader: Loader;
|
|
26
|
+
/** The component's styles, already scoped. Empty when it has none. */
|
|
27
|
+
css: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ComponentCompiler {
|
|
30
|
+
compile(source: string, request: ComponentRequest): Promise<CompiledComponent> | CompiledComponent;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Supplies the compiler for an extension. Given the project's dependency ranges
|
|
34
|
+
* so a loader can fetch the compiler version that matches the project's runtime.
|
|
35
|
+
*/
|
|
36
|
+
export type ComponentCompilers = (extension: ComponentExtension, dependencies: Readonly<Record<string, string>>) => Promise<ComponentCompiler>;
|
|
37
|
+
/** Compilers already in hand (tests, a host that bundles them), keyed by extension. */
|
|
38
|
+
export declare function staticComponentCompilers(compilers: Partial<Record<ComponentExtension, ComponentCompiler>>): ComponentCompilers;
|
|
39
|
+
/** The default when a host configures none: a clear error instead of serving source. */
|
|
40
|
+
export declare const noComponentCompilers: ComponentCompilers;
|
|
41
|
+
//# sourceMappingURL=components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAAC;AAEpD,eAAO,MAAM,oBAAoB,EAAE,SAAS,kBAAkB,EAAwB,CAAC;AAEvF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAE9E;AAED,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;CACpG;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,SAAS,EAAE,kBAAkB,EAC7B,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAC3C,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEhC,uFAAuF;AACvF,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,GAAG,kBAAkB,CAK9H;AAED,wFAAwF;AACxF,eAAO,MAAM,oBAAoB,EAAE,kBAAiD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const COMPONENT_EXTENSIONS = ['.vue', '.svelte'];
|
|
2
|
+
export function componentExtension(ext) {
|
|
3
|
+
return COMPONENT_EXTENSIONS.includes(ext) ? ext : undefined;
|
|
4
|
+
}
|
|
5
|
+
/** Compilers already in hand (tests, a host that bundles them), keyed by extension. */
|
|
6
|
+
export function staticComponentCompilers(compilers) {
|
|
7
|
+
return (extension) => {
|
|
8
|
+
const compiler = compilers[extension];
|
|
9
|
+
return compiler ? Promise.resolve(compiler) : Promise.reject(new Error(`No compiler for ${extension} files is configured.`));
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
/** The default when a host configures none: a clear error instead of serving source. */
|
|
13
|
+
export const noComponentCompilers = staticComponentCompilers({});
|
|
14
|
+
//# sourceMappingURL=components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,oBAAoB,GAAkC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEvF,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAQ,oBAA0C,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7G,CAAC;AA8BD,uFAAuF;AACvF,MAAM,UAAU,wBAAwB,CAAC,SAAiE;IACxG,OAAO,CAAC,SAAS,EAAE,EAAE;QACnB,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,SAAS,uBAAuB,CAAC,CAAC,CAAC;IAC/H,CAAC,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,oBAAoB,GAAuB,wBAAwB,CAAC,EAAE,CAAC,CAAC"}
|
package/dist/detectProject.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { VirtualFileSystem } from './vfs.js';
|
|
2
2
|
export type ProjectKind = 'vite' | 'cra' | 'static';
|
|
3
|
+
/** The UI framework, when the project uses one this runtime compiles. */
|
|
4
|
+
export type ProjectFramework = 'react' | 'vue' | 'svelte';
|
|
3
5
|
export interface ProjectProfile {
|
|
4
6
|
supported: boolean;
|
|
5
7
|
kind?: ProjectKind;
|
|
8
|
+
framework?: ProjectFramework;
|
|
6
9
|
/** The HTML document served at `/`. */
|
|
7
10
|
htmlPath?: string;
|
|
8
11
|
/** Script injected when the HTML has no module entry of its own (CRA). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detectProject.d.ts","sourceRoot":"","sources":["../src/detectProject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGlD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"detectProject.d.ts","sourceRoot":"","sources":["../src/detectProject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGlD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpD,yEAAyE;AACzE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyCD,wBAAgB,aAAa,CAAC,EAAE,EAAE,iBAAiB,GAAG,cAAc,CAgBnE"}
|
package/dist/detectProject.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { RESOLVE_EXTENSIONS } from './resolve.js';
|
|
2
2
|
/**
|
|
3
|
-
* Frameworks that need a server or a
|
|
4
|
-
* Data, not branches: supporting one later means deleting its row.
|
|
3
|
+
* Frameworks that need a server or a build pipeline this runtime does not have.
|
|
4
|
+
* Data, not branches: supporting one later means deleting its row. Checked before
|
|
5
|
+
* the plain-framework rules below, so SvelteKit and Nuxt (which depend on svelte
|
|
6
|
+
* and vue) are declined rather than mistaken for a Vite + Svelte/Vue app.
|
|
5
7
|
*/
|
|
6
8
|
const NEEDS_NODE = [
|
|
7
9
|
{ dependency: 'next', reason: 'Next.js needs its Node server.' },
|
|
@@ -9,8 +11,6 @@ const NEEDS_NODE = [
|
|
|
9
11
|
{ dependency: '@remix-run/dev', reason: 'Remix needs its Node server.' },
|
|
10
12
|
{ dependency: '@sveltejs/kit', reason: 'SvelteKit needs its Node server.' },
|
|
11
13
|
{ dependency: 'astro', reason: 'Astro needs its build pipeline.' },
|
|
12
|
-
{ dependency: 'svelte', reason: 'Svelte components need the Svelte compiler.' },
|
|
13
|
-
{ dependency: 'vue', reason: 'Vue single-file components need the Vue compiler.' },
|
|
14
14
|
];
|
|
15
15
|
const SERVER_ONLY = ['express', 'fastify', 'koa', '@nestjs/core', '@hapi/hapi'];
|
|
16
16
|
function readDependencyNames(fs) {
|
|
@@ -22,6 +22,15 @@ function readDependencyNames(fs) {
|
|
|
22
22
|
return new Set();
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
+
function detectFramework(deps) {
|
|
26
|
+
if (deps.has('vue'))
|
|
27
|
+
return 'vue';
|
|
28
|
+
if (deps.has('svelte'))
|
|
29
|
+
return 'svelte';
|
|
30
|
+
if (deps.has('react'))
|
|
31
|
+
return 'react';
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
25
34
|
function findEntry(fs) {
|
|
26
35
|
for (const stem of ['/src/index', '/src/main']) {
|
|
27
36
|
for (const ext of RESOLVE_EXTENSIONS)
|
|
@@ -35,11 +44,12 @@ export function detectProject(fs) {
|
|
|
35
44
|
const blocker = NEEDS_NODE.find((row) => deps.has(row.dependency));
|
|
36
45
|
if (blocker)
|
|
37
46
|
return { supported: false, publicDir: '/public', reason: blocker.reason };
|
|
47
|
+
const framework = detectFramework(deps);
|
|
38
48
|
if (fs.isFile('/index.html')) {
|
|
39
|
-
return { supported: true, kind: deps.has('vite') ? 'vite' : 'static', htmlPath: '/index.html', publicDir: '/public' };
|
|
49
|
+
return { supported: true, kind: deps.has('vite') ? 'vite' : 'static', framework, htmlPath: '/index.html', publicDir: '/public' };
|
|
40
50
|
}
|
|
41
51
|
if (fs.isFile('/public/index.html')) {
|
|
42
|
-
return { supported: true, kind: 'cra', htmlPath: '/public/index.html', entry: findEntry(fs), publicDir: '/public' };
|
|
52
|
+
return { supported: true, kind: 'cra', framework, htmlPath: '/public/index.html', entry: findEntry(fs), publicDir: '/public' };
|
|
43
53
|
}
|
|
44
54
|
if (SERVER_ONLY.some((name) => deps.has(name))) {
|
|
45
55
|
return { supported: false, publicDir: '/public', reason: 'This is a Node server app with no browser entry page.' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detectProject.js","sourceRoot":"","sources":["../src/detectProject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"detectProject.js","sourceRoot":"","sources":["../src/detectProject.ts"],"names":[],"mappings":"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"}
|
package/dist/devServer.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { VirtualFileSystem } from './vfs.js';
|
|
2
2
|
import type { Transformer } from './transformer.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { PackageCdnFactory } from './packageCdn.js';
|
|
4
|
+
import { type ComponentCompilers } from './components.js';
|
|
4
5
|
import { type ProjectProfile } from './detectProject.js';
|
|
5
6
|
export interface ServedFile {
|
|
6
7
|
status: number;
|
|
@@ -13,7 +14,9 @@ export interface DevServerOptions {
|
|
|
13
14
|
/** The URL the preview is served under, ending in `/` (`/__bfwc/<id>/`). */
|
|
14
15
|
base: string;
|
|
15
16
|
/** Package CDN factory, given the project's dependency ranges. Default: esm.sh. */
|
|
16
|
-
cdn?:
|
|
17
|
+
cdn?: PackageCdnFactory;
|
|
18
|
+
/** `.vue` / `.svelte` compilers. Without them, requesting a component is an error. */
|
|
19
|
+
components?: ComponentCompilers;
|
|
17
20
|
/** The "Built with Builderforce.ai" badge in served pages. Default true. */
|
|
18
21
|
attribution?: boolean;
|
|
19
22
|
}
|
package/dist/devServer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devServer.d.ts","sourceRoot":"","sources":["../src/devServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"devServer.d.ts","sourceRoot":"","sources":["../src/devServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASxE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,iBAAiB,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,sFAAsF;IACtF,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAmCD;;;;;;;;;GASG;AACH,qBAAa,SAAS;IAOR,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAa;IACzB,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4D;IAClF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;gBAER,OAAO,EAAE,gBAAgB;IAKtD,OAAO,IAAI,IAAI;IAKf,OAAO,IAAI,cAAc;IAInB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,OAAO,CAAC,UAAU,CAAC;YA0BrD,OAAO;IAuBrB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,QAAQ;CAWjB"}
|
package/dist/devServer.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { esmShCdnFactory } from './packageCdn.js';
|
|
2
|
+
import { noComponentCompilers } from './components.js';
|
|
2
3
|
import { isConfigFile, readProjectConfig } from './projectConfig.js';
|
|
3
4
|
import { detectProject } from './detectProject.js';
|
|
4
|
-
import { compileScript } from './compileScript.js';
|
|
5
|
+
import { compileScript, isScriptPath } from './compileScript.js';
|
|
6
|
+
import { compileComponent } from './compileComponent.js';
|
|
5
7
|
import { transformHtml } from './html.js';
|
|
6
8
|
import { cssToModule, jsonToModule, rawToModule, rewriteCssUrls, urlToModule } from './styleModules.js';
|
|
7
9
|
import { loaderFor } from './transformer.js';
|
|
@@ -13,9 +15,13 @@ const NO_STORE = { 'cache-control': 'no-store' };
|
|
|
13
15
|
* host (one running WebGPU, WASM threads or WebContainers): an isolated page
|
|
14
16
|
* refuses any nested document that does not. `credentialless` is harmless when the
|
|
15
17
|
* host is not isolated — package modules are CORS fetches anyway, and cross-origin
|
|
16
|
-
* images still load, just without cookies.
|
|
18
|
+
* images still load, just without cookies. CORP `cross-origin` lets such a host
|
|
19
|
+
* frame the preview when it is served from a separate origin (relay mode).
|
|
17
20
|
*/
|
|
18
|
-
const DOCUMENT_HEADERS = {
|
|
21
|
+
const DOCUMENT_HEADERS = {
|
|
22
|
+
'cross-origin-embedder-policy': 'credentialless',
|
|
23
|
+
'cross-origin-resource-policy': 'cross-origin',
|
|
24
|
+
};
|
|
19
25
|
function reply(status, contentType, body) {
|
|
20
26
|
const document = contentType.startsWith('text/html') ? DOCUMENT_HEADERS : undefined;
|
|
21
27
|
return { status, headers: { 'content-type': contentType, ...NO_STORE, ...document }, body };
|
|
@@ -77,7 +83,7 @@ export class DevServer {
|
|
|
77
83
|
// An extension-less path is a client-side route: serve the app (SPA fallback).
|
|
78
84
|
if (!extname(path) && !query)
|
|
79
85
|
return this.serveDocument(profile);
|
|
80
|
-
return query ||
|
|
86
|
+
return query || isScriptPath(path) ? errorModule(`Cannot find module ${path}`) : reply(404, 'text/plain; charset=utf-8', `Not found: ${path}`);
|
|
81
87
|
}
|
|
82
88
|
const key = `${file}?${query ?? ''}`;
|
|
83
89
|
const version = fs.version(file) ?? 0;
|
|
@@ -104,6 +110,8 @@ export class DevServer {
|
|
|
104
110
|
return reply(200, JS_MIME, jsonToModule(fs.readText(file) ?? ''));
|
|
105
111
|
if (loaderFor(ext))
|
|
106
112
|
return reply(200, JS_MIME, await compileScript(this.context(), file));
|
|
113
|
+
if (isScriptPath(file))
|
|
114
|
+
return reply(200, JS_MIME, await compileComponent(this.context(), file));
|
|
107
115
|
if (ext === '.html' || ext === '.htm') {
|
|
108
116
|
return reply(200, mimeFor(ext), transformHtml(fs.readText(file) ?? '', { base, attribution: this.options.attribution }));
|
|
109
117
|
}
|
|
@@ -111,7 +119,7 @@ export class DevServer {
|
|
|
111
119
|
}
|
|
112
120
|
catch (error) {
|
|
113
121
|
const message = error instanceof Error ? error.message : String(error);
|
|
114
|
-
return query ||
|
|
122
|
+
return query || isScriptPath(file) ? errorModule(`${file}: ${message}`) : reply(500, 'text/plain; charset=utf-8', message);
|
|
115
123
|
}
|
|
116
124
|
}
|
|
117
125
|
serveDocument(profile) {
|
|
@@ -125,8 +133,8 @@ export class DevServer {
|
|
|
125
133
|
context() {
|
|
126
134
|
const { fs, transformer, base } = this.options;
|
|
127
135
|
this.config ??= readProjectConfig(fs);
|
|
128
|
-
this.cdn ??= (this.options.cdn ?? (
|
|
129
|
-
return { fs, config: this.config, cdn: this.cdn, transformer, base };
|
|
136
|
+
this.cdn ??= (this.options.cdn ?? esmShCdnFactory)(this.config.dependencies, { dev: true });
|
|
137
|
+
return { fs, config: this.config, cdn: this.cdn, transformer, base, components: this.options.components ?? noComponentCompilers };
|
|
130
138
|
}
|
|
131
139
|
onChange(change) {
|
|
132
140
|
const structural = change.type === 'remove' || change.created === true || isConfigFile(change.path) || extname(change.path) === '.html';
|
package/dist/devServer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devServer.js","sourceRoot":"","sources":["../src/devServer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"devServer.js","sourceRoot":"","sources":["../src/devServer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAA2B,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAsB,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAuB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAyC,MAAM,oBAAoB,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqB7C,MAAM,QAAQ,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG;IACvB,8BAA8B,EAAE,gBAAgB;IAChD,8BAA8B,EAAE,cAAc;CAC/C,CAAC;AAEF,SAAS,KAAK,CAAC,MAAc,EAAE,WAAmB,EAAE,IAAyB;IAC3E,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;AAC9F,CAAC;AAED,oFAAoF;AACpF,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,mBAAmB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,SAAS;IAOS;IANrB,MAAM,CAAiB;IACvB,GAAG,CAAc;IACjB,YAAY,CAAkB;IACrB,KAAK,GAAG,IAAI,GAAG,EAAiD,CAAC;IACjE,OAAO,CAAa;IAErC,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,MAAM,GAAG,EAAE;QAC3C,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,IAAI,GAAG,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE/B,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,OAAO,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5G,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,+EAA+E;YAC/E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACjE,OAAO,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,2BAA2B,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;QACjJ,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC;QAEpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,KAA8B;QAChE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtF,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;gBACpE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1G,CAAC;YACD,IAAI,GAAG,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7G,IAAI,SAAS,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1F,IAAI,YAAY,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YACjG,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACtC,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC3H,CAAC;YACD,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,2BAA2B,EAAE,OAAO,CAAC,CAAC;QAC7H,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAuB;QAC3C,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC,GAAG,EAAE,0BAA0B,EAAE,2CAA2C,OAAO,CAAC,MAAM,IAAI,sBAAsB,MAAM,CAAC,CAAC;QAC3I,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,OAAO,KAAK,CAAC,GAAG,EAAE,0BAA0B,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IAEO,OAAO;QACb,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAC/C,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5F,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,oBAAoB,EAAE,CAAC;IACpI,CAAC;IAEO,QAAQ,CAAC,MAAgB;QAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC;QACxI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAAE,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;oBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxG,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;CACF"}
|
package/dist/hash.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AASA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM,SAAI,GAAG,MAAM,CAYzE"}
|
package/dist/hash.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A short, deterministic content hash: cache-busting file names in a build and
|
|
3
|
+
* stable scope ids for component styles. Not cryptographic, and does not need to
|
|
4
|
+
* be — it only has to change when the bytes change. Synchronous (two FNV-1a
|
|
5
|
+
* variants mixed), so it works inside a bundler's resolve hook without
|
|
6
|
+
* `crypto.subtle`, which is async and missing outside secure contexts.
|
|
7
|
+
*/
|
|
8
|
+
const encoder = new TextEncoder();
|
|
9
|
+
export function contentHash(data, length = 8) {
|
|
10
|
+
const bytes = typeof data === 'string' ? encoder.encode(data) : data;
|
|
11
|
+
let h1 = 0x811c9dc5;
|
|
12
|
+
let h2 = 0x5bd1e995;
|
|
13
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
14
|
+
const byte = bytes[i];
|
|
15
|
+
h1 = Math.imul(h1 ^ byte, 0x01000193);
|
|
16
|
+
h2 = Math.imul(h2 ^ byte, 0x5bd1e995);
|
|
17
|
+
h2 ^= h2 >>> 15;
|
|
18
|
+
}
|
|
19
|
+
const hex = (h1 >>> 0).toString(16).padStart(8, '0') + (h2 >>> 0).toString(16).padStart(8, '0');
|
|
20
|
+
return hex.slice(0, length);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=hash.js.map
|
package/dist/hash.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,MAAM,UAAU,WAAW,CAAC,IAAyB,EAAE,MAAM,GAAG,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,IAAI,EAAE,GAAG,UAAU,CAAC;IACpB,IAAI,EAAE,GAAG,UAAU,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC;QACtC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC;QACtC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAClB,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChG,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC"}
|
package/dist/html.d.ts
CHANGED
|
@@ -5,6 +5,14 @@ export declare const ERROR_MESSAGE_TYPE = "bfwc:error";
|
|
|
5
5
|
* crashed without scraping the iframe.
|
|
6
6
|
*/
|
|
7
7
|
export declare function errorBridgeScript(): string;
|
|
8
|
+
/**
|
|
9
|
+
* The channel a preview listens on for "files changed, reload". Keyed by the
|
|
10
|
+
* preview base, so two runtimes on one origin never reload each other's frames.
|
|
11
|
+
* A BroadcastChannel rather than `postMessage` because the host does not hold a
|
|
12
|
+
* reference to the frame — any number of frames (or tabs) may show one preview.
|
|
13
|
+
*/
|
|
14
|
+
export declare function reloadChannelName(base: string): string;
|
|
15
|
+
export declare function liveReloadScript(base: string): string;
|
|
8
16
|
export interface HtmlOptions {
|
|
9
17
|
/** Preview base URL, ending in `/`. */
|
|
10
18
|
base: string;
|
package/dist/html.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../src/html.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../src/html.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAS1C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrD;AAKD,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAgBxE"}
|
package/dist/html.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* • CRA's `%PUBLIC_URL%` placeholder is filled;
|
|
6
6
|
* • a page with no module script (CRA) gets its entry injected;
|
|
7
7
|
* • the error bridge is prepended, so runtime errors reach the host;
|
|
8
|
+
* • the live-reload listener is prepended, so an edit re-renders the preview;
|
|
8
9
|
* • the attribution badge is appended unless the host turned it off.
|
|
9
10
|
*/
|
|
10
11
|
import { injectAttribution } from './attribution.js';
|
|
@@ -24,6 +25,21 @@ export function errorBridgeScript() {
|
|
|
24
25
|
window.process = window.process || { env: { NODE_ENV: 'development' } };
|
|
25
26
|
})();</script>`;
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* The channel a preview listens on for "files changed, reload". Keyed by the
|
|
30
|
+
* preview base, so two runtimes on one origin never reload each other's frames.
|
|
31
|
+
* A BroadcastChannel rather than `postMessage` because the host does not hold a
|
|
32
|
+
* reference to the frame — any number of frames (or tabs) may show one preview.
|
|
33
|
+
*/
|
|
34
|
+
export function reloadChannelName(base) {
|
|
35
|
+
return `bfwc:reload:${base}`;
|
|
36
|
+
}
|
|
37
|
+
export function liveReloadScript(base) {
|
|
38
|
+
return `<script>(function(){
|
|
39
|
+
if (typeof BroadcastChannel === 'undefined') return;
|
|
40
|
+
new BroadcastChannel(${JSON.stringify(reloadChannelName(base))}).onmessage = function () { location.reload(); };
|
|
41
|
+
})();</script>`;
|
|
42
|
+
}
|
|
27
43
|
const ABSOLUTE_ATTR = /(\s(?:src|href)\s*=\s*)(["'])\/(?!\/)([^"']*)\2/gi;
|
|
28
44
|
const MODULE_SCRIPT = /<script\b[^>]*type\s*=\s*["']module["'][^>]*>/i;
|
|
29
45
|
export function transformHtml(html, options) {
|
|
@@ -38,7 +54,7 @@ export function transformHtml(html, options) {
|
|
|
38
54
|
}
|
|
39
55
|
if (options.attribution !== false)
|
|
40
56
|
out = injectAttribution(out);
|
|
41
|
-
const bridge = errorBridgeScript()
|
|
57
|
+
const bridge = `${errorBridgeScript()}\n${liveReloadScript(base)}`;
|
|
42
58
|
if (/<head[^>]*>/i.test(out))
|
|
43
59
|
return out.replace(/<head[^>]*>/i, (head) => `${head}\n${bridge}`);
|
|
44
60
|
return bridge + out;
|
package/dist/html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../src/html.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../src/html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;;uCAE8B,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;;;;;eAK1D,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,eAAe,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO;;yBAEgB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;eACjD,CAAC;AAChB,CAAC;AAED,MAAM,aAAa,GAAG,mDAAmD,CAAC;AAC1E,MAAM,aAAa,GAAG,gDAAgD,CAAC;AAWvE,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAoB;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,kFAAkF;IAClF,iFAAiF;IACjF,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC5C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;IAE7H,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,8BAA8B,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;QACrF,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACxF,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK;QAAE,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,GAAG,iBAAiB,EAAE,KAAK,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;IACnE,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IACjG,OAAO,MAAM,GAAG,GAAG,CAAC;AACtB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,18 +4,36 @@ export { normalizePath, dirname, basename, join, extname } from './paths.js';
|
|
|
4
4
|
export { DevServer } from './devServer.js';
|
|
5
5
|
export type { DevServerOptions, ServedFile } from './devServer.js';
|
|
6
6
|
export { detectProject } from './detectProject.js';
|
|
7
|
-
export type { ProjectKind, ProjectProfile } from './detectProject.js';
|
|
8
|
-
export { readProjectConfig, parseLooseJson, parseDotenv } from './projectConfig.js';
|
|
9
|
-
export type { ProjectConfig, PathAlias } from './projectConfig.js';
|
|
10
|
-
export { createEsmShCdn } from './packageCdn.js';
|
|
11
|
-
export type { PackageCdn, EsmShOptions } from './packageCdn.js';
|
|
7
|
+
export type { ProjectKind, ProjectFramework, ProjectProfile } from './detectProject.js';
|
|
8
|
+
export { readProjectConfig, parseLooseJson, parseDotenv, envFiles } from './projectConfig.js';
|
|
9
|
+
export type { ProjectConfig, PathAlias, BuildMode } from './projectConfig.js';
|
|
10
|
+
export { createEsmShCdn, esmShCdnFactory, isRegistryRange } from './packageCdn.js';
|
|
11
|
+
export type { PackageCdn, PackageCdnFactory, EsmShOptions } from './packageCdn.js';
|
|
12
12
|
export { createEsbuildTransformer, loaderFor } from './transformer.js';
|
|
13
13
|
export type { Transformer, TransformRequest, Loader, EsbuildLike } from './transformer.js';
|
|
14
|
+
export { createEsbuildBundler } from './bundler.js';
|
|
15
|
+
export type { Bundler, BundleRequest, BundleOutput, BundleOutputFile, BundleHost, BundleLoad, BundleLoader, BundleResolution, ResolveKind, EsbuildBuildLike, } from './bundler.js';
|
|
16
|
+
export { buildProject, normalizeBase } from './build.js';
|
|
17
|
+
export type { BuildOptions, BuildResult, BuiltFile } from './build.js';
|
|
18
|
+
export { createBuildHost } from './buildHost.js';
|
|
19
|
+
export type { BuildHost, BuildHostOptions } from './buildHost.js';
|
|
20
|
+
export { findHtmlEntries, rewriteBuiltHtml } from './buildHtml.js';
|
|
21
|
+
export type { HtmlEntry, BuiltHtmlOptions } from './buildHtml.js';
|
|
22
|
+
export { COMPONENT_EXTENSIONS, componentExtension, staticComponentCompilers, noComponentCompilers } from './components.js';
|
|
23
|
+
export type { ComponentCompiler, ComponentCompilers, ComponentExtension, ComponentRequest, CompiledComponent } from './components.js';
|
|
24
|
+
export { createVueCompiler } from './vueCompiler.js';
|
|
25
|
+
export type { VueCompilerSfcLike, VueDescriptor } from './vueCompiler.js';
|
|
26
|
+
export { createSvelteCompiler } from './svelteCompiler.js';
|
|
27
|
+
export type { SvelteCompilerLike } from './svelteCompiler.js';
|
|
28
|
+
export { contentHash } from './hash.js';
|
|
14
29
|
export { rewriteImports } from './rewriteImports.js';
|
|
15
30
|
export { resolveLocal, resolveAlias, isBareSpecifier, splitPackageSpecifier, RESOLVE_EXTENSIONS } from './resolve.js';
|
|
16
|
-
export { compileScript, mapSpecifier, moduleUrl, buildDefine } from './compileScript.js';
|
|
17
|
-
export {
|
|
31
|
+
export { compileScript, compileModule, isScriptPath, mapSpecifier, moduleUrl, buildDefine } from './compileScript.js';
|
|
32
|
+
export { compileComponent } from './compileComponent.js';
|
|
33
|
+
export { transformHtml, errorBridgeScript, liveReloadScript, reloadChannelName, ERROR_MESSAGE_TYPE } from './html.js';
|
|
18
34
|
export { mimeFor } from './mime.js';
|
|
19
35
|
export { attributionScript, injectAttribution, ATTRIBUTION_URL, ATTRIBUTION_LABEL } from './attribution.js';
|
|
20
36
|
export type { AttributionOptions } from './attribution.js';
|
|
37
|
+
export * from './installer/index.js';
|
|
38
|
+
export * from './system/index.js';
|
|
21
39
|
//# sourceMappingURL=index.d.ts.map
|