@utoo/pack 0.0.1-alpha.17 → 0.0.1-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/binding.d.ts +15 -11
- package/cjs/build.d.ts +2 -4
- package/cjs/build.js +11 -18
- package/cjs/{hmr.d.ts → hotReloader.d.ts} +11 -4
- package/cjs/{hmr.js → hotReloader.js} +61 -14
- package/cjs/index.d.ts +14 -13
- package/cjs/index.js +4 -6
- package/cjs/project.d.ts +4 -4
- package/cjs/project.js +2 -0
- package/cjs/sourceMap.d.ts +21 -0
- package/cjs/sourceMap.js +2 -0
- package/cjs/types.d.ts +9 -21
- package/cjs/util.d.ts +1 -1
- package/cjs/util.js +1 -1
- package/cjs/watch.d.ts +2 -0
- package/cjs/watch.js +14 -0
- package/esm/binding.d.ts +15 -11
- package/esm/build.d.ts +2 -4
- package/esm/build.js +11 -18
- package/esm/{hmr.d.ts → hotReloader.d.ts} +11 -4
- package/esm/{hmr.js → hotReloader.js} +60 -14
- package/esm/index.d.ts +14 -13
- package/esm/index.js +2 -6
- package/esm/project.d.ts +4 -4
- package/esm/project.js +2 -0
- package/esm/sourceMap.d.ts +21 -0
- package/esm/sourceMap.js +1 -0
- package/esm/types.d.ts +9 -21
- package/esm/util.d.ts +1 -1
- package/esm/util.js +1 -1
- package/esm/watch.d.ts +2 -0
- package/esm/watch.js +11 -0
- package/package.json +10 -15
- package/cjs/dev.d.ts +0 -44
- package/cjs/dev.js +0 -362
- package/cjs/mkcert.d.ts +0 -7
- package/cjs/mkcert.js +0 -183
- package/cjs/webpackCompat.d.ts +0 -6
- package/cjs/webpackCompat.js +0 -341
- package/esm/dev.d.ts +0 -44
- package/esm/dev.js +0 -346
- package/esm/mkcert.d.ts +0 -7
- package/esm/mkcert.js +0 -176
- package/esm/webpackCompat.d.ts +0 -6
- package/esm/webpackCompat.js +0 -338
package/cjs/binding.d.ts
CHANGED
|
@@ -9,6 +9,12 @@ export declare class ExternalObject<T> {
|
|
|
9
9
|
[K: symbol]: T
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
export interface TransformOutput {
|
|
13
|
+
code: string
|
|
14
|
+
map?: string
|
|
15
|
+
output?: string
|
|
16
|
+
diagnostics: Array<string>
|
|
17
|
+
}
|
|
12
18
|
export interface NapiEndpointConfig {
|
|
13
19
|
|
|
14
20
|
}
|
|
@@ -57,7 +63,7 @@ export interface NapiProjectOptions {
|
|
|
57
63
|
* A map of environment variables which should get injected at compile
|
|
58
64
|
* time.
|
|
59
65
|
*/
|
|
60
|
-
|
|
66
|
+
processDefineEnv: NapiDefineEnv
|
|
61
67
|
/** The mode in which Next.js is running. */
|
|
62
68
|
dev: boolean
|
|
63
69
|
/** The build id. */
|
|
@@ -82,7 +88,7 @@ export interface NapiPartialProjectOptions {
|
|
|
82
88
|
* A map of environment variables which should get injected at compile
|
|
83
89
|
* time.
|
|
84
90
|
*/
|
|
85
|
-
|
|
91
|
+
processDefineEnv?: NapiDefineEnv
|
|
86
92
|
/** The mode in which Next.js is running. */
|
|
87
93
|
dev?: boolean
|
|
88
94
|
/** The build id. */
|
|
@@ -130,7 +136,7 @@ export interface NapiEntrypoints {
|
|
|
130
136
|
}
|
|
131
137
|
export declare function projectWriteAllEntrypointsToDisk(project: { __napiType: "Project" }): Promise<TurbopackResult>
|
|
132
138
|
export declare function projectEntrypointsSubscribe(project: { __napiType: "Project" }, func: (...args: any[]) => any): { __napiType: "RootTask" }
|
|
133
|
-
export declare function projectHmrEvents(project: { __napiType: "Project" }, identifier:
|
|
139
|
+
export declare function projectHmrEvents(project: { __napiType: "Project" }, identifier: string, func: (...args: any[]) => any): { __napiType: "RootTask" }
|
|
134
140
|
export interface HmrIdentifiers {
|
|
135
141
|
identifiers: Array<string>
|
|
136
142
|
}
|
|
@@ -160,18 +166,16 @@ export declare function projectUpdateInfoSubscribe(project: { __napiType: "Proje
|
|
|
160
166
|
export interface StackFrame {
|
|
161
167
|
isServer: boolean
|
|
162
168
|
isInternal?: boolean
|
|
163
|
-
originalFile?:
|
|
164
|
-
file:
|
|
165
|
-
/** 1-indexed, unlike source map tokens */
|
|
169
|
+
originalFile?: string
|
|
170
|
+
file: string
|
|
166
171
|
line?: number
|
|
167
|
-
/** 1-indexed, unlike source map tokens */
|
|
168
172
|
column?: number
|
|
169
|
-
methodName?:
|
|
173
|
+
methodName?: string
|
|
170
174
|
}
|
|
171
175
|
export declare function projectTraceSource(project: { __napiType: "Project" }, frame: StackFrame, currentDirectoryFileUrl: string): Promise<StackFrame | null>
|
|
172
176
|
export declare function projectGetSourceForAsset(project: { __napiType: "Project" }, filePath: string): Promise<string | null>
|
|
173
|
-
export declare function projectGetSourceMap(project: { __napiType: "Project" }, filePath:
|
|
174
|
-
export declare function projectGetSourceMapSync(project: { __napiType: "Project" }, filePath:
|
|
177
|
+
export declare function projectGetSourceMap(project: { __napiType: "Project" }, filePath: string): Promise<string | null>
|
|
178
|
+
export declare function projectGetSourceMapSync(project: { __napiType: "Project" }, filePath: string): string | null
|
|
175
179
|
export declare function rootTaskDispose(rootTask: { __napiType: "RootTask" }): void
|
|
176
180
|
export interface NapiIssue {
|
|
177
181
|
severity: string
|
|
@@ -182,7 +186,7 @@ export interface NapiIssue {
|
|
|
182
186
|
detail?: any
|
|
183
187
|
source?: NapiIssueSource
|
|
184
188
|
documentationLink: string
|
|
185
|
-
|
|
189
|
+
subIssues: Array<NapiIssue>
|
|
186
190
|
}
|
|
187
191
|
export interface NapiIssueSource {
|
|
188
192
|
source: NapiSource
|
package/cjs/build.d.ts
CHANGED
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare function build(bundleOptions: BundleOptions, projectPath?: string, rootPath?: string): Promise<void>;
|
|
4
|
-
export declare function build(webpackConfig: WebpackConfig, projectPath?: string, rootPath?: string): Promise<void>;
|
|
1
|
+
import { BuildOptions } from "./types";
|
|
2
|
+
export declare function build(projectOptions: BuildOptions, projectPath?: string, rootPath?: string): Promise<void>;
|
package/cjs/build.js
CHANGED
|
@@ -4,34 +4,27 @@ exports.build = build;
|
|
|
4
4
|
const nanoid_1 = require("nanoid");
|
|
5
5
|
const project_1 = require("./project");
|
|
6
6
|
const util_1 = require("./util");
|
|
7
|
-
const webpackCompat_1 = require("./webpackCompat");
|
|
8
7
|
const xcodeProfile_1 = require("./xcodeProfile");
|
|
9
|
-
function build(
|
|
10
|
-
|
|
11
|
-
? (0, webpackCompat_1.compatOptionsFromWebpack)(options)
|
|
12
|
-
: options;
|
|
13
|
-
return buildInternal(bundleOptions, projectPath, rootPath);
|
|
14
|
-
}
|
|
15
|
-
async function buildInternal(bundleOptions, projectPath, rootPath) {
|
|
16
|
-
var _a, _b, _c;
|
|
8
|
+
async function build(projectOptions, projectPath, rootPath) {
|
|
9
|
+
var _a, _b, _c, _d;
|
|
17
10
|
(0, util_1.blockStdout)();
|
|
18
11
|
if (process.env.XCODE_PROFILE) {
|
|
19
12
|
await (0, xcodeProfile_1.xcodeProfilingReady)();
|
|
20
13
|
}
|
|
21
14
|
const createProject = (0, project_1.projectFactory)();
|
|
22
15
|
const project = await createProject({
|
|
23
|
-
processEnv: (_a =
|
|
24
|
-
|
|
25
|
-
config:
|
|
26
|
-
dev: (_b =
|
|
27
|
-
optionDefineEnv:
|
|
16
|
+
processEnv: (_a = projectOptions.processEnv) !== null && _a !== void 0 ? _a : {},
|
|
17
|
+
processDefineEnv: (0, util_1.createDefineEnv)({
|
|
18
|
+
config: projectOptions.config,
|
|
19
|
+
dev: (_b = projectOptions.dev) !== null && _b !== void 0 ? _b : false,
|
|
20
|
+
optionDefineEnv: projectOptions.processDefineEnv,
|
|
28
21
|
}),
|
|
29
|
-
watch: {
|
|
22
|
+
watch: (_c = projectOptions.watch) !== null && _c !== void 0 ? _c : {
|
|
30
23
|
enable: false,
|
|
31
24
|
},
|
|
32
|
-
dev: (
|
|
33
|
-
buildId:
|
|
34
|
-
config:
|
|
25
|
+
dev: (_d = projectOptions.dev) !== null && _d !== void 0 ? _d : false,
|
|
26
|
+
buildId: (0, nanoid_1.nanoid)(),
|
|
27
|
+
config: projectOptions.config,
|
|
35
28
|
projectPath: projectPath || process.cwd(),
|
|
36
29
|
rootPath: rootPath || projectPath || process.cwd(),
|
|
37
30
|
}, {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { ModernSourceMapPayload } from "./sourceMap";
|
|
2
|
+
import { Project, ProjectOptions, Update as TurbopackUpdate } from "./types";
|
|
3
|
+
import type webpack from "webpack";
|
|
1
4
|
import { IncomingMessage } from "http";
|
|
2
5
|
import { Duplex } from "stream";
|
|
3
|
-
import type webpack from "webpack";
|
|
4
|
-
import { BundleOptions, Project, Update as TurbopackUpdate } from "./types";
|
|
5
6
|
export declare const enum HMR_ACTIONS_SENT_TO_BROWSER {
|
|
6
7
|
RELOAD = "reload",
|
|
7
8
|
CLIENT_CHANGES = "clientChanges",
|
|
@@ -16,6 +17,10 @@ export interface TurbopackMessageAction {
|
|
|
16
17
|
action: HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE;
|
|
17
18
|
data: TurbopackUpdate | TurbopackUpdate[];
|
|
18
19
|
}
|
|
20
|
+
export interface TurbopackMessageAction {
|
|
21
|
+
action: HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE;
|
|
22
|
+
data: TurbopackUpdate | TurbopackUpdate[];
|
|
23
|
+
}
|
|
19
24
|
export interface TurbopackConnectedAction {
|
|
20
25
|
action: HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED;
|
|
21
26
|
data: {
|
|
@@ -60,12 +65,14 @@ export interface HotReloaderInterface {
|
|
|
60
65
|
clearHmrServerError(): void;
|
|
61
66
|
start(): Promise<void>;
|
|
62
67
|
send(action: HMR_ACTION_TYPES): void;
|
|
63
|
-
onHMR(req: IncomingMessage,
|
|
68
|
+
onHMR(req: IncomingMessage, _socket: Duplex, head: Buffer, onUpgrade: (client: {
|
|
64
69
|
send(data: string): void;
|
|
65
70
|
}) => void): void;
|
|
66
71
|
buildFallbackError(): Promise<void>;
|
|
67
72
|
close(): void;
|
|
68
73
|
}
|
|
74
|
+
type FindSourceMapPayload = (sourceURL: string) => ModernSourceMapPayload | undefined;
|
|
75
|
+
export declare function setBundlerFindSourceMapImplementation(findSourceMapImplementation: FindSourceMapPayload): void;
|
|
69
76
|
export type ChangeSubscriptions = Map<string, Promise<AsyncIterableIterator<TurbopackResult>>>;
|
|
70
77
|
export type ReadyIds = Set<string>;
|
|
71
78
|
export type StartBuilding = (id: string, forceRebuild: boolean) => () => void;
|
|
@@ -76,5 +83,5 @@ export type ClientState = {
|
|
|
76
83
|
};
|
|
77
84
|
export type SendHmr = (id: string, payload: HMR_ACTION_TYPES) => void;
|
|
78
85
|
export declare const FAST_REFRESH_RUNTIME_RELOAD = "Fast Refresh had to perform a full reload due to a runtime error.";
|
|
79
|
-
export declare function createHotReloader(
|
|
86
|
+
export declare function createHotReloader(projectOptions: ProjectOptions, projectPath?: string, rootPath?: string): Promise<HotReloaderInterface>;
|
|
80
87
|
export {};
|
|
@@ -4,34 +4,76 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.FAST_REFRESH_RUNTIME_RELOAD = void 0;
|
|
7
|
+
exports.setBundlerFindSourceMapImplementation = setBundlerFindSourceMapImplementation;
|
|
7
8
|
exports.createHotReloader = createHotReloader;
|
|
8
|
-
const nanoid_1 = require("nanoid");
|
|
9
9
|
const ws_1 = __importDefault(require("ws"));
|
|
10
|
+
const path_1 = require("path");
|
|
11
|
+
const url_1 = require("url");
|
|
10
12
|
const project_1 = require("./project");
|
|
11
13
|
const util_1 = require("./util");
|
|
14
|
+
const nanoid_1 = require("nanoid");
|
|
12
15
|
const wsServer = new ws_1.default.Server({ noServer: true });
|
|
13
16
|
const sessionId = Math.floor(Number.MAX_SAFE_INTEGER * Math.random());
|
|
17
|
+
/**
|
|
18
|
+
* Replaces turbopack:///[project] with the specified project in the `source` field.
|
|
19
|
+
*/
|
|
20
|
+
function rewriteTurbopackSources(projectRoot, sourceMap) {
|
|
21
|
+
if ("sections" in sourceMap) {
|
|
22
|
+
for (const section of sourceMap.sections) {
|
|
23
|
+
rewriteTurbopackSources(projectRoot, section.map);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
for (let i = 0; i < sourceMap.sources.length; i++) {
|
|
28
|
+
sourceMap.sources[i] = (0, url_1.pathToFileURL)((0, path_1.join)(projectRoot, sourceMap.sources[i].replace(/turbopack:\/\/\/\[project\]/, ""))).toString();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function getSourceMapFromTurbopack(project, projectRoot, sourceURL) {
|
|
33
|
+
let sourceMapJson = null;
|
|
34
|
+
try {
|
|
35
|
+
sourceMapJson = project.getSourceMapSync(sourceURL);
|
|
36
|
+
}
|
|
37
|
+
catch (err) { }
|
|
38
|
+
if (sourceMapJson === null) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const payload = JSON.parse(sourceMapJson);
|
|
43
|
+
// The sourcemap from Turbopack is not yet written to disk so its `sources`
|
|
44
|
+
// are not absolute paths yet. We need to rewrite them to be absolute paths.
|
|
45
|
+
rewriteTurbopackSources(projectRoot, payload);
|
|
46
|
+
return payload;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Find a source map using the bundler's API.
|
|
50
|
+
// This is only a fallback for when Node.js fails to due to bugs e.g. https://github.com/nodejs/node/issues/52102
|
|
51
|
+
// TODO: Remove once all supported Node.js versions are fixed.
|
|
52
|
+
// TODO(veil): Set from Webpack as well
|
|
53
|
+
let bundlerFindSourceMapPayload = () => undefined;
|
|
54
|
+
function setBundlerFindSourceMapImplementation(findSourceMapImplementation) {
|
|
55
|
+
bundlerFindSourceMapPayload = findSourceMapImplementation;
|
|
56
|
+
}
|
|
14
57
|
exports.FAST_REFRESH_RUNTIME_RELOAD = "Fast Refresh had to perform a full reload due to a runtime error.";
|
|
15
|
-
async function createHotReloader(
|
|
16
|
-
var _a;
|
|
58
|
+
async function createHotReloader(projectOptions, projectPath, rootPath) {
|
|
59
|
+
var _a, _b;
|
|
17
60
|
const createProject = (0, project_1.projectFactory)();
|
|
18
61
|
const project = await createProject({
|
|
19
|
-
processEnv: (_a =
|
|
20
|
-
|
|
21
|
-
config:
|
|
62
|
+
processEnv: (_a = projectOptions.processEnv) !== null && _a !== void 0 ? _a : {},
|
|
63
|
+
processDefineEnv: (0, util_1.createDefineEnv)({
|
|
64
|
+
config: projectOptions.config,
|
|
22
65
|
dev: true,
|
|
23
|
-
optionDefineEnv:
|
|
66
|
+
optionDefineEnv: projectOptions.processDefineEnv,
|
|
24
67
|
}),
|
|
25
|
-
watch: {
|
|
26
|
-
enable:
|
|
68
|
+
watch: (_b = projectOptions.watch) !== null && _b !== void 0 ? _b : {
|
|
69
|
+
enable: false,
|
|
27
70
|
},
|
|
28
71
|
dev: true,
|
|
29
|
-
buildId:
|
|
72
|
+
buildId: (0, nanoid_1.nanoid)(),
|
|
30
73
|
config: {
|
|
31
|
-
...
|
|
32
|
-
mode: "development",
|
|
74
|
+
...projectOptions.config,
|
|
33
75
|
optimization: {
|
|
34
|
-
...
|
|
76
|
+
...projectOptions.config.optimization,
|
|
35
77
|
minify: false,
|
|
36
78
|
moduleIds: "named",
|
|
37
79
|
},
|
|
@@ -41,6 +83,7 @@ async function createHotReloader(bundleOptions, projectPath, rootPath) {
|
|
|
41
83
|
}, {
|
|
42
84
|
persistentCaching: true,
|
|
43
85
|
});
|
|
86
|
+
setBundlerFindSourceMapImplementation(getSourceMapFromTurbopack.bind(null, project, projectOptions.projectPath));
|
|
44
87
|
const entrypointsSubscription = project.entrypointsSubscribe();
|
|
45
88
|
let currentEntriesHandlingResolve;
|
|
46
89
|
let currentEntriesHandling = new Promise((resolve) => (currentEntriesHandlingResolve = resolve));
|
|
@@ -73,6 +116,9 @@ async function createHotReloader(bundleOptions, projectPath, rootPath) {
|
|
|
73
116
|
const sendEnqueuedMessagesDebounce = (0, util_1.debounce)(sendEnqueuedMessages, 2);
|
|
74
117
|
function sendTurbopackMessage(payload) {
|
|
75
118
|
var _a;
|
|
119
|
+
// TODO(PACK-2049): For some reason we end up emitting hundreds of issues messages on bigger apps,
|
|
120
|
+
// a lot of which are duplicates.
|
|
121
|
+
// They are currently not handled on the client at all, so might as well not send them for now.
|
|
76
122
|
payload.diagnostics = [];
|
|
77
123
|
payload.issues = [];
|
|
78
124
|
for (const client of clients) {
|
|
@@ -136,9 +182,10 @@ async function createHotReloader(bundleOptions, projectPath, rootPath) {
|
|
|
136
182
|
const hotReloader = {
|
|
137
183
|
turbopackProject: project,
|
|
138
184
|
serverStats: null,
|
|
185
|
+
// TODO: Figure out if socket type can match the HotReloaderInterface
|
|
139
186
|
onHMR(req, socket, head, onUpgrade) {
|
|
140
187
|
wsServer.handleUpgrade(req, socket, head, (client) => {
|
|
141
|
-
onUpgrade
|
|
188
|
+
onUpgrade(client);
|
|
142
189
|
const subscriptions = new Map();
|
|
143
190
|
clients.add(client);
|
|
144
191
|
clientStates.set(client, {
|
package/cjs/index.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { NapiDiagnostic, NapiIssue } from "./binding";
|
|
2
|
+
export { build } from "./build";
|
|
3
|
+
export { watch } from "./watch";
|
|
4
|
+
declare global {
|
|
5
|
+
export type TurbopackResult<T = {}> = T & {
|
|
6
|
+
issues: NapiIssue[];
|
|
7
|
+
diagnostics: NapiDiagnostic[];
|
|
8
|
+
};
|
|
9
|
+
export type RefCell = {
|
|
10
|
+
readonly __tag: unique symbol;
|
|
11
|
+
};
|
|
12
|
+
export type ExternalEndpoint = {
|
|
13
|
+
readonly __tag: unique symbol;
|
|
14
|
+
};
|
|
14
15
|
}
|
package/cjs/index.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
3
|
+
exports.watch = exports.build = void 0;
|
|
4
|
+
var build_1 = require("./build");
|
|
5
5
|
Object.defineProperty(exports, "build", { enumerable: true, get: function () { return build_1.build; } });
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "
|
|
8
|
-
const utoopack = { build: build_1.build, serve: dev_1.serve };
|
|
9
|
-
exports.default = utoopack;
|
|
6
|
+
var watch_1 = require("./watch");
|
|
7
|
+
Object.defineProperty(exports, "watch", { enumerable: true, get: function () { return watch_1.watch; } });
|
package/cjs/project.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { HmrIdentifiers, NapiUpdateMessage, NapiWrittenEndpoint, StackFrame } from "./binding";
|
|
2
1
|
import * as binding from "./binding";
|
|
2
|
+
import type { NapiWrittenEndpoint, StackFrame } from "./binding";
|
|
3
3
|
import { ProjectOptions, RawEntrypoints, Update } from "./types";
|
|
4
4
|
export declare class TurbopackInternalError extends Error {
|
|
5
5
|
name: string;
|
|
6
6
|
constructor(cause: Error);
|
|
7
7
|
}
|
|
8
|
-
export declare function projectFactory(): (options:
|
|
8
|
+
export declare function projectFactory(): (options: ProjectOptions, turboEngineOptions: binding.NapiTurboEngineOptions) => Promise<{
|
|
9
9
|
readonly _nativeProject: {
|
|
10
10
|
__napiType: "Project";
|
|
11
11
|
};
|
|
@@ -32,12 +32,12 @@ export declare function projectFactory(): (options: Required<ProjectOptions>, tu
|
|
|
32
32
|
diagnostics: binding.NapiDiagnostic[];
|
|
33
33
|
}, void, unknown>;
|
|
34
34
|
hmrEvents(identifier: string): AsyncIterableIterator<TurbopackResult<Update>>;
|
|
35
|
-
hmrIdentifiersSubscribe(): AsyncIterableIterator<TurbopackResult<HmrIdentifiers>>;
|
|
35
|
+
hmrIdentifiersSubscribe(): AsyncIterableIterator<TurbopackResult<binding.HmrIdentifiers>>;
|
|
36
36
|
traceSource(stackFrame: StackFrame, currentDirectoryFileUrl: string): Promise<StackFrame | null>;
|
|
37
37
|
getSourceForAsset(filePath: string): Promise<string | null>;
|
|
38
38
|
getSourceMap(filePath: string): Promise<string | null>;
|
|
39
39
|
getSourceMapSync(filePath: string): string | null;
|
|
40
|
-
updateInfoSubscribe(aggregationMs: number): AsyncIterableIterator<TurbopackResult<NapiUpdateMessage>>;
|
|
40
|
+
updateInfoSubscribe(aggregationMs: number): AsyncIterableIterator<TurbopackResult<binding.NapiUpdateMessage>>;
|
|
41
41
|
shutdown(): Promise<void>;
|
|
42
42
|
onExit(): Promise<void>;
|
|
43
43
|
}>;
|
package/cjs/project.js
CHANGED
|
@@ -37,6 +37,7 @@ exports.TurbopackInternalError = void 0;
|
|
|
37
37
|
exports.projectFactory = projectFactory;
|
|
38
38
|
const util_1 = require("util");
|
|
39
39
|
const binding = __importStar(require("./binding"));
|
|
40
|
+
const nanoid_1 = require("nanoid");
|
|
40
41
|
const util_2 = require("./util");
|
|
41
42
|
class TurbopackInternalError extends Error {
|
|
42
43
|
constructor(cause) {
|
|
@@ -90,6 +91,7 @@ function ensureLoadersHaveSerializableOptions(turbopackRules) {
|
|
|
90
91
|
async function serializeConfig(config) {
|
|
91
92
|
var _a, _b;
|
|
92
93
|
let configSerializable = { ...config };
|
|
94
|
+
configSerializable.generateBuildId = () => (0, nanoid_1.nanoid)();
|
|
93
95
|
if ((_a = configSerializable.module) === null || _a === void 0 ? void 0 : _a.rules) {
|
|
94
96
|
ensureLoadersHaveSerializableOptions(configSerializable.module.rules);
|
|
95
97
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type SourceMapPayload } from "module";
|
|
2
|
+
/**
|
|
3
|
+
* https://tc39.es/source-map/#index-map
|
|
4
|
+
*/
|
|
5
|
+
interface IndexSourceMapSection {
|
|
6
|
+
offset: {
|
|
7
|
+
line: number;
|
|
8
|
+
column: number;
|
|
9
|
+
};
|
|
10
|
+
map: ModernRawSourceMap;
|
|
11
|
+
}
|
|
12
|
+
interface IndexSourceMap {
|
|
13
|
+
version: number;
|
|
14
|
+
file: string;
|
|
15
|
+
sections: IndexSourceMapSection[];
|
|
16
|
+
}
|
|
17
|
+
interface ModernRawSourceMap extends SourceMapPayload {
|
|
18
|
+
ignoreList?: number[];
|
|
19
|
+
}
|
|
20
|
+
export type ModernSourceMapPayload = ModernRawSourceMap | IndexSourceMap;
|
|
21
|
+
export {};
|
package/cjs/sourceMap.js
ADDED
package/cjs/types.d.ts
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
|
-
import { HmrIdentifiers,
|
|
2
|
-
declare global {
|
|
3
|
-
export type TurbopackResult<T = {}> = T & {
|
|
4
|
-
issues: NapiIssue[];
|
|
5
|
-
diagnostics: NapiDiagnostic[];
|
|
6
|
-
};
|
|
7
|
-
export type RefCell = {
|
|
8
|
-
readonly __tag: unique symbol;
|
|
9
|
-
};
|
|
10
|
-
export type ExternalEndpoint = {
|
|
11
|
-
readonly __tag: unique symbol;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
1
|
+
import { HmrIdentifiers, NapiIssue, NapiUpdateMessage, NapiWrittenEndpoint, StackFrame } from "./binding";
|
|
14
2
|
export interface BaseUpdate {
|
|
15
3
|
resource: {
|
|
16
4
|
headers: unknown;
|
|
@@ -65,6 +53,7 @@ export interface DefineEnv {
|
|
|
65
53
|
}
|
|
66
54
|
export interface ExperimentalConfig {
|
|
67
55
|
}
|
|
56
|
+
export type TurbopackRuleConfigItemOrShortcut = TurbopackRuleConfigItem;
|
|
68
57
|
export type TurbopackRuleConfigItem = TurbopackRuleConfigItemOptions | {
|
|
69
58
|
[condition: string]: TurbopackRuleConfigItem;
|
|
70
59
|
} | false;
|
|
@@ -80,7 +69,7 @@ export type TurbopackRuleConfigItemOptions = {
|
|
|
80
69
|
as?: string;
|
|
81
70
|
};
|
|
82
71
|
export interface ModuleOptions {
|
|
83
|
-
rules?: Record<string,
|
|
72
|
+
rules?: Record<string, TurbopackRuleConfigItemOrShortcut>;
|
|
84
73
|
}
|
|
85
74
|
export interface ResolveOptions {
|
|
86
75
|
alias?: Record<string, string | string[] | Record<string, string | string[]>>;
|
|
@@ -151,7 +140,6 @@ export interface ConfigComplete {
|
|
|
151
140
|
images?: {
|
|
152
141
|
inlineLimit?: number;
|
|
153
142
|
};
|
|
154
|
-
stats?: boolean;
|
|
155
143
|
experimental?: ExperimentalConfig;
|
|
156
144
|
persistentCaching?: boolean;
|
|
157
145
|
cacheHandler?: string;
|
|
@@ -205,25 +193,25 @@ export interface ProjectOptions {
|
|
|
205
193
|
/**
|
|
206
194
|
* A map of environment variables to use when compiling code.
|
|
207
195
|
*/
|
|
208
|
-
processEnv
|
|
209
|
-
|
|
196
|
+
processEnv: Record<string, string>;
|
|
197
|
+
processDefineEnv: DefineEnv;
|
|
210
198
|
/**
|
|
211
199
|
* Whether to watch the filesystem for file changes.
|
|
212
200
|
*/
|
|
213
|
-
watch
|
|
201
|
+
watch: {
|
|
214
202
|
enable: boolean;
|
|
215
203
|
pollIntervalMs?: number;
|
|
216
204
|
};
|
|
217
205
|
/**
|
|
218
206
|
* The mode of utoo-pack.
|
|
219
207
|
*/
|
|
220
|
-
dev
|
|
208
|
+
dev: boolean;
|
|
221
209
|
/**
|
|
222
210
|
* The build id.
|
|
223
211
|
*/
|
|
224
|
-
buildId
|
|
212
|
+
buildId: string;
|
|
225
213
|
}
|
|
226
|
-
export type
|
|
214
|
+
export type BuildOptions = Omit<ProjectOptions, "rootPath" | "projectPath">;
|
|
227
215
|
export interface Project {
|
|
228
216
|
update(options: Partial<ProjectOptions>): Promise<void>;
|
|
229
217
|
entrypointsSubscribe(): AsyncIterableIterator<TurbopackResult<RawEntrypoints>>;
|
package/cjs/util.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NapiIssue } from "./binding";
|
|
2
|
-
import {
|
|
2
|
+
import { DefineEnv, StyledString, RustifiedEnv, ConfigComplete } from "./types";
|
|
3
3
|
export declare class ModuleBuildError extends Error {
|
|
4
4
|
name: string;
|
|
5
5
|
}
|
package/cjs/util.js
CHANGED
|
@@ -10,8 +10,8 @@ exports.rustifyEnv = rustifyEnv;
|
|
|
10
10
|
exports.createDefineEnv = createDefineEnv;
|
|
11
11
|
exports.debounce = debounce;
|
|
12
12
|
exports.blockStdout = blockStdout;
|
|
13
|
-
const code_frame_1 = require("@babel/code-frame");
|
|
14
13
|
const picocolors_1 = require("picocolors");
|
|
14
|
+
const code_frame_1 = require("@babel/code-frame");
|
|
15
15
|
const magicIdentifier_1 = require("./magicIdentifier");
|
|
16
16
|
class ModuleBuildError extends Error {
|
|
17
17
|
constructor() {
|
package/cjs/watch.d.ts
ADDED
package/cjs/watch.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.watch = watch;
|
|
4
|
+
const hotReloader_1 = require("./hotReloader");
|
|
5
|
+
const util_1 = require("./util");
|
|
6
|
+
const xcodeProfile_1 = require("./xcodeProfile");
|
|
7
|
+
async function watch(options, projectPath, rootPath) {
|
|
8
|
+
(0, util_1.blockStdout)();
|
|
9
|
+
if (process.env.XCODE_PROFILE) {
|
|
10
|
+
await (0, xcodeProfile_1.xcodeProfilingReady)();
|
|
11
|
+
}
|
|
12
|
+
const hotReloader = await (0, hotReloader_1.createHotReloader)(options, projectPath, rootPath);
|
|
13
|
+
await hotReloader.start();
|
|
14
|
+
}
|
package/esm/binding.d.ts
CHANGED
|
@@ -9,6 +9,12 @@ export declare class ExternalObject<T> {
|
|
|
9
9
|
[K: symbol]: T
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
export interface TransformOutput {
|
|
13
|
+
code: string
|
|
14
|
+
map?: string
|
|
15
|
+
output?: string
|
|
16
|
+
diagnostics: Array<string>
|
|
17
|
+
}
|
|
12
18
|
export interface NapiEndpointConfig {
|
|
13
19
|
|
|
14
20
|
}
|
|
@@ -57,7 +63,7 @@ export interface NapiProjectOptions {
|
|
|
57
63
|
* A map of environment variables which should get injected at compile
|
|
58
64
|
* time.
|
|
59
65
|
*/
|
|
60
|
-
|
|
66
|
+
processDefineEnv: NapiDefineEnv
|
|
61
67
|
/** The mode in which Next.js is running. */
|
|
62
68
|
dev: boolean
|
|
63
69
|
/** The build id. */
|
|
@@ -82,7 +88,7 @@ export interface NapiPartialProjectOptions {
|
|
|
82
88
|
* A map of environment variables which should get injected at compile
|
|
83
89
|
* time.
|
|
84
90
|
*/
|
|
85
|
-
|
|
91
|
+
processDefineEnv?: NapiDefineEnv
|
|
86
92
|
/** The mode in which Next.js is running. */
|
|
87
93
|
dev?: boolean
|
|
88
94
|
/** The build id. */
|
|
@@ -130,7 +136,7 @@ export interface NapiEntrypoints {
|
|
|
130
136
|
}
|
|
131
137
|
export declare function projectWriteAllEntrypointsToDisk(project: { __napiType: "Project" }): Promise<TurbopackResult>
|
|
132
138
|
export declare function projectEntrypointsSubscribe(project: { __napiType: "Project" }, func: (...args: any[]) => any): { __napiType: "RootTask" }
|
|
133
|
-
export declare function projectHmrEvents(project: { __napiType: "Project" }, identifier:
|
|
139
|
+
export declare function projectHmrEvents(project: { __napiType: "Project" }, identifier: string, func: (...args: any[]) => any): { __napiType: "RootTask" }
|
|
134
140
|
export interface HmrIdentifiers {
|
|
135
141
|
identifiers: Array<string>
|
|
136
142
|
}
|
|
@@ -160,18 +166,16 @@ export declare function projectUpdateInfoSubscribe(project: { __napiType: "Proje
|
|
|
160
166
|
export interface StackFrame {
|
|
161
167
|
isServer: boolean
|
|
162
168
|
isInternal?: boolean
|
|
163
|
-
originalFile?:
|
|
164
|
-
file:
|
|
165
|
-
/** 1-indexed, unlike source map tokens */
|
|
169
|
+
originalFile?: string
|
|
170
|
+
file: string
|
|
166
171
|
line?: number
|
|
167
|
-
/** 1-indexed, unlike source map tokens */
|
|
168
172
|
column?: number
|
|
169
|
-
methodName?:
|
|
173
|
+
methodName?: string
|
|
170
174
|
}
|
|
171
175
|
export declare function projectTraceSource(project: { __napiType: "Project" }, frame: StackFrame, currentDirectoryFileUrl: string): Promise<StackFrame | null>
|
|
172
176
|
export declare function projectGetSourceForAsset(project: { __napiType: "Project" }, filePath: string): Promise<string | null>
|
|
173
|
-
export declare function projectGetSourceMap(project: { __napiType: "Project" }, filePath:
|
|
174
|
-
export declare function projectGetSourceMapSync(project: { __napiType: "Project" }, filePath:
|
|
177
|
+
export declare function projectGetSourceMap(project: { __napiType: "Project" }, filePath: string): Promise<string | null>
|
|
178
|
+
export declare function projectGetSourceMapSync(project: { __napiType: "Project" }, filePath: string): string | null
|
|
175
179
|
export declare function rootTaskDispose(rootTask: { __napiType: "RootTask" }): void
|
|
176
180
|
export interface NapiIssue {
|
|
177
181
|
severity: string
|
|
@@ -182,7 +186,7 @@ export interface NapiIssue {
|
|
|
182
186
|
detail?: any
|
|
183
187
|
source?: NapiIssueSource
|
|
184
188
|
documentationLink: string
|
|
185
|
-
|
|
189
|
+
subIssues: Array<NapiIssue>
|
|
186
190
|
}
|
|
187
191
|
export interface NapiIssueSource {
|
|
188
192
|
source: NapiSource
|
package/esm/build.d.ts
CHANGED
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare function build(bundleOptions: BundleOptions, projectPath?: string, rootPath?: string): Promise<void>;
|
|
4
|
-
export declare function build(webpackConfig: WebpackConfig, projectPath?: string, rootPath?: string): Promise<void>;
|
|
1
|
+
import { BuildOptions } from "./types";
|
|
2
|
+
export declare function build(projectOptions: BuildOptions, projectPath?: string, rootPath?: string): Promise<void>;
|
package/esm/build.js
CHANGED
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
import { nanoid } from "nanoid";
|
|
2
2
|
import { projectFactory } from "./project";
|
|
3
3
|
import { blockStdout, createDefineEnv, formatIssue, isRelevantWarning, } from "./util";
|
|
4
|
-
import { compatOptionsFromWebpack } from "./webpackCompat";
|
|
5
4
|
import { xcodeProfilingReady } from "./xcodeProfile";
|
|
6
|
-
export function build(
|
|
7
|
-
|
|
8
|
-
? compatOptionsFromWebpack(options)
|
|
9
|
-
: options;
|
|
10
|
-
return buildInternal(bundleOptions, projectPath, rootPath);
|
|
11
|
-
}
|
|
12
|
-
async function buildInternal(bundleOptions, projectPath, rootPath) {
|
|
13
|
-
var _a, _b, _c;
|
|
5
|
+
export async function build(projectOptions, projectPath, rootPath) {
|
|
6
|
+
var _a, _b, _c, _d;
|
|
14
7
|
blockStdout();
|
|
15
8
|
if (process.env.XCODE_PROFILE) {
|
|
16
9
|
await xcodeProfilingReady();
|
|
17
10
|
}
|
|
18
11
|
const createProject = projectFactory();
|
|
19
12
|
const project = await createProject({
|
|
20
|
-
processEnv: (_a =
|
|
21
|
-
|
|
22
|
-
config:
|
|
23
|
-
dev: (_b =
|
|
24
|
-
optionDefineEnv:
|
|
13
|
+
processEnv: (_a = projectOptions.processEnv) !== null && _a !== void 0 ? _a : {},
|
|
14
|
+
processDefineEnv: createDefineEnv({
|
|
15
|
+
config: projectOptions.config,
|
|
16
|
+
dev: (_b = projectOptions.dev) !== null && _b !== void 0 ? _b : false,
|
|
17
|
+
optionDefineEnv: projectOptions.processDefineEnv,
|
|
25
18
|
}),
|
|
26
|
-
watch: {
|
|
19
|
+
watch: (_c = projectOptions.watch) !== null && _c !== void 0 ? _c : {
|
|
27
20
|
enable: false,
|
|
28
21
|
},
|
|
29
|
-
dev: (
|
|
30
|
-
buildId:
|
|
31
|
-
config:
|
|
22
|
+
dev: (_d = projectOptions.dev) !== null && _d !== void 0 ? _d : false,
|
|
23
|
+
buildId: nanoid(),
|
|
24
|
+
config: projectOptions.config,
|
|
32
25
|
projectPath: projectPath || process.cwd(),
|
|
33
26
|
rootPath: rootPath || projectPath || process.cwd(),
|
|
34
27
|
}, {
|