@granite-js/mpack 0.1.34 → 1.0.1
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/CHANGELOG.md +9 -356
- package/dist/bundler/internal/presets.d.ts +4 -1
- package/dist/bundler/internal/presets.js +16 -11
- package/dist/bundler/plugins/transformPlugin/steps/createFlowStripStep.d.ts +2 -0
- package/dist/{vendors/@react-native-community/cli-server-api/createWebSocketEndpoints.js → bundler/plugins/transformPlugin/steps/createFlowStripStep.js} +28 -13
- package/dist/bundler/plugins/transformPlugin/steps/createFullyTransformStep.js +0 -1
- package/dist/bundler/plugins/transformPlugin/steps/createTransformCodegenStep.d.ts +2 -0
- package/dist/bundler/plugins/transformPlugin/steps/createTransformCodegenStep.js +70 -0
- package/dist/bundler/plugins/transformPlugin/steps/createTransformToHermesSyntaxStep.d.ts +1 -2
- package/dist/bundler/plugins/transformPlugin/steps/createTransformToHermesSyntaxStep.js +5 -19
- package/dist/bundler/plugins/transformPlugin/transformPlugin.js +11 -5
- package/dist/experimental/index.d.ts +2 -0
- package/dist/{server/debugger/parseDomain.js → experimental/index.js} +9 -8
- package/dist/{operations/experimental → experimental/operations}/serve.js +19 -67
- package/dist/{server → experimental/server}/DevServer.d.ts +3 -3
- package/dist/{server → experimental/server}/DevServer.js +58 -41
- package/dist/{server → experimental/server}/debugger/DebuggerEventHandler.d.ts +1 -0
- package/dist/{server → experimental/server}/debugger/DebuggerEventHandler.js +8 -4
- package/dist/{vendors/@react-native/dev-middleware → experimental/server/debugger}/types.d.ts +1 -1
- package/dist/{server → experimental/server}/helpers/createBundlerForDevServer.d.ts +1 -1
- package/dist/{server → experimental/server}/helpers/createBundlerForDevServer.js +2 -2
- package/dist/{server → experimental/server}/helpers/mergeBundles.js +3 -3
- package/dist/{server → experimental/server}/middlewares/createLiveReloadMiddleware.js +1 -1
- package/dist/{server → experimental/server}/plugins/index.d.ts +0 -1
- package/dist/{server → experimental/server}/plugins/index.js +0 -2
- package/dist/{server → experimental/server}/plugins/indexPagePlugin.js +1 -1
- package/dist/{server → experimental/server}/plugins/reply.js +1 -1
- package/dist/{server → experimental/server}/plugins/serveBundlePlugin.js +2 -2
- package/dist/{server → experimental/server}/plugins/symbolicatePlugin/symbolicatePlugin.js +2 -2
- package/dist/{server → experimental/server}/types.d.ts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/dist/logger/clientLogger.d.ts +3 -2
- package/dist/metro/getMetroConfig.js +5 -5
- package/dist/operations/OpenDebuggerKeyboardHandler.d.ts +17 -0
- package/dist/operations/OpenDebuggerKeyboardHandler.js +129 -0
- package/dist/operations/attachKeyHandlers.d.ts +15 -0
- package/dist/operations/attachKeyHandlers.js +132 -0
- package/dist/operations/index.d.ts +0 -1
- package/dist/operations/index.js +1 -3
- package/dist/operations/keyReporter.d.ts +6 -0
- package/dist/operations/keyReporter.js +57 -0
- package/dist/operations/serve.d.ts +1 -2
- package/dist/operations/serve.js +38 -36
- package/dist/transformer/AsyncTransformPipeline.js +24 -7
- package/dist/transformer/TransformPipeline.d.ts +17 -12
- package/dist/transformer/TransformPipeline.js +6 -2
- package/dist/utils/getDefaultReactNativePath.d.ts +1 -0
- package/dist/utils/getDefaultReactNativePath.js +45 -0
- package/dist/utils/getId.js +3 -1
- package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +2 -1
- package/dist/vendors/metro/src/DeltaBundler/Serializers/sourceMapGenerator.js +3 -1
- package/dist/vendors/metro/src/Server.js +119 -11
- package/package.json +19 -16
- package/src/lib.d.ts +90 -0
- package/dist/bundler/plugins/transformPlugin/steps/createStripFlowStep.d.ts +0 -6
- package/dist/bundler/plugins/transformPlugin/steps/createStripFlowStep.js +0 -91
- package/dist/operations/constants.d.ts +0 -3
- package/dist/operations/constants.js +0 -34
- package/dist/operations/createDebuggerMiddleware.d.ts +0 -10
- package/dist/operations/createDebuggerMiddleware.js +0 -128
- package/dist/operations/experimental/StartMenuHandler.d.ts +0 -13
- package/dist/operations/experimental/StartMenuHandler.js +0 -86
- package/dist/operations/openDebugger.d.ts +0 -1
- package/dist/operations/openDebugger.js +0 -74
- package/dist/server/debugger/parseDomain.d.ts +0 -1
- package/dist/server/plugins/debuggerPlugin.d.ts +0 -7
- package/dist/server/plugins/debuggerPlugin.js +0 -68
- package/dist/vendors/@react-native/dev-middleware/Device.d.ts +0 -5
- package/dist/vendors/@react-native/dev-middleware/Device.js +0 -33
- package/dist/vendors/@react-native/dev-middleware/InspectorProxy.d.ts +0 -31
- package/dist/vendors/@react-native/dev-middleware/InspectorProxy.js +0 -169
- package/dist/vendors/@react-native/dev-middleware/index.d.ts +0 -3
- package/dist/vendors/@react-native/dev-middleware/index.js +0 -26
- package/dist/vendors/@react-native-community/cli-server-api/createWebSocketEndpoints.d.ts +0 -23
- package/dist/vendors/@react-native-community/cli-server-api/index.d.ts +0 -1
- package/dist/vendors/@react-native-community/cli-server-api/index.js +0 -22
- /package/dist/{operations/experimental → experimental/operations}/serve.d.ts +0 -0
- /package/dist/{server → experimental/server}/constants.d.ts +0 -0
- /package/dist/{server → experimental/server}/constants.js +0 -0
- /package/dist/{server → experimental/server/debugger}/types.js +0 -0
- /package/dist/{server → experimental/server}/helpers/mergeBundles.d.ts +0 -0
- /package/dist/{server → experimental/server}/index.d.ts +0 -0
- /package/dist/{server → experimental/server}/index.js +0 -0
- /package/dist/{server → experimental/server}/middlewares/createLiveReloadMiddleware.d.ts +0 -0
- /package/dist/{server → experimental/server}/middlewares/index.d.ts +0 -0
- /package/dist/{server → experimental/server}/middlewares/index.js +0 -0
- /package/dist/{server → experimental/server}/plugins/indexPagePlugin.d.ts +0 -0
- /package/dist/{server → experimental/server}/plugins/reply.d.ts +0 -0
- /package/dist/{server → experimental/server}/plugins/serveBundlePlugin.d.ts +0 -0
- /package/dist/{server → experimental/server}/plugins/statusPlugin.d.ts +0 -0
- /package/dist/{server → experimental/server}/plugins/statusPlugin.js +0 -0
- /package/dist/{server → experimental/server}/plugins/symbolicatePlugin/index.d.ts +0 -0
- /package/dist/{server → experimental/server}/plugins/symbolicatePlugin/index.js +0 -0
- /package/dist/{server → experimental/server}/plugins/symbolicatePlugin/parseStackFrame.d.ts +0 -0
- /package/dist/{server → experimental/server}/plugins/symbolicatePlugin/parseStackFrame.js +0 -0
- /package/dist/{server → experimental/server}/plugins/symbolicatePlugin/symbolicate.d.ts +0 -0
- /package/dist/{server → experimental/server}/plugins/symbolicatePlugin/symbolicate.js +0 -0
- /package/dist/{server → experimental/server}/plugins/symbolicatePlugin/symbolicatePlugin.d.ts +0 -0
- /package/dist/{vendors/@react-native/dev-middleware → experimental/server}/types.js +0 -0
- /package/dist/{server → experimental/server}/wss/WebSocketServerDelegate.d.ts +0 -0
- /package/dist/{server → experimental/server}/wss/WebSocketServerDelegate.js +0 -0
- /package/dist/{server → experimental/server}/wss/WebSocketServerRouter.d.ts +0 -0
- /package/dist/{server → experimental/server}/wss/WebSocketServerRouter.js +0 -0
- /package/dist/{server → experimental/server}/wss/index.d.ts +0 -0
- /package/dist/{server → experimental/server}/wss/index.js +0 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var OpenDebuggerKeyboardHandler_exports = {};
|
|
20
|
+
__export(OpenDebuggerKeyboardHandler_exports, {
|
|
21
|
+
default: () => OpenDebuggerKeyboardHandler
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(OpenDebuggerKeyboardHandler_exports);
|
|
24
|
+
var import_util = require("util");
|
|
25
|
+
class OpenDebuggerKeyboardHandler {
|
|
26
|
+
#devServerUrl;
|
|
27
|
+
#reporter;
|
|
28
|
+
#targetsShownForSelection = null;
|
|
29
|
+
constructor({ devServerUrl, reporter }) {
|
|
30
|
+
this.#devServerUrl = devServerUrl;
|
|
31
|
+
this.#reporter = reporter;
|
|
32
|
+
}
|
|
33
|
+
async #tryOpenDebuggerForTarget(target) {
|
|
34
|
+
this.#targetsShownForSelection = null;
|
|
35
|
+
this.#clearTerminalMenu();
|
|
36
|
+
try {
|
|
37
|
+
const fetchFn = globalThis.fetch;
|
|
38
|
+
if (fetchFn == null) {
|
|
39
|
+
throw new Error("Global fetch is not available");
|
|
40
|
+
}
|
|
41
|
+
await fetchFn(new URL(`/open-debugger?target=${encodeURIComponent(target.id)}`, this.#devServerUrl).href, {
|
|
42
|
+
method: "POST"
|
|
43
|
+
});
|
|
44
|
+
} catch (error) {
|
|
45
|
+
this.#log("error", "Failed to open debugger for %s (%s): %s", target.title, target.description, "Network error");
|
|
46
|
+
if (error instanceof Error && error.cause != null) {
|
|
47
|
+
this.#log("error", "Cause: %s", error.cause);
|
|
48
|
+
}
|
|
49
|
+
this.#clearTerminalMenu();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async handleOpenDebugger() {
|
|
53
|
+
this.#setTerminalMenu("Fetching available debugging targets...");
|
|
54
|
+
this.#targetsShownForSelection = null;
|
|
55
|
+
try {
|
|
56
|
+
const fetchFn = globalThis.fetch;
|
|
57
|
+
if (fetchFn == null) {
|
|
58
|
+
throw new Error("Global fetch is not available");
|
|
59
|
+
}
|
|
60
|
+
const response = await fetchFn(new URL("/json/list", this.#devServerUrl).href, { method: "POST" });
|
|
61
|
+
if (response.status !== 200) {
|
|
62
|
+
throw new Error(`Unexpected status code: ${response.status}`);
|
|
63
|
+
}
|
|
64
|
+
const targets = await response.json();
|
|
65
|
+
if (!Array.isArray(targets)) {
|
|
66
|
+
throw new Error("Expected array.");
|
|
67
|
+
}
|
|
68
|
+
if (targets.length === 0) {
|
|
69
|
+
this.#log("warn", "No connected targets");
|
|
70
|
+
this.#clearTerminalMenu();
|
|
71
|
+
} else if (targets.length === 1) {
|
|
72
|
+
const target = targets[0];
|
|
73
|
+
if (target) {
|
|
74
|
+
void this.#tryOpenDebuggerForTarget(target);
|
|
75
|
+
} else {
|
|
76
|
+
this.#clearTerminalMenu();
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
this.#targetsShownForSelection = targets;
|
|
80
|
+
if (targets.length > 9) {
|
|
81
|
+
this.#log("warn", "10 or more debug targets available, showing the first 9.");
|
|
82
|
+
}
|
|
83
|
+
this.#setTerminalMenu(
|
|
84
|
+
`Multiple debug targets available, please select:
|
|
85
|
+
${targets.slice(0, 9).map(({ title }, index) => `${(0, import_util.styleText)(["white", "inverse"], ` ${index + 1} `)} - "${title}"`).join("\n ")}`
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
} catch (error) {
|
|
89
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
90
|
+
this.#log("error", `Failed to fetch debug targets: ${message}`);
|
|
91
|
+
this.#clearTerminalMenu();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
maybeHandleTargetSelection(keyName) {
|
|
95
|
+
if (keyName >= "1" && keyName <= "9") {
|
|
96
|
+
const targetIndex = Number(keyName) - 1;
|
|
97
|
+
if (this.#targetsShownForSelection != null && targetIndex < this.#targetsShownForSelection.length) {
|
|
98
|
+
const target = this.#targetsShownForSelection[targetIndex];
|
|
99
|
+
if (target) {
|
|
100
|
+
void this.#tryOpenDebuggerForTarget(target);
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
dismiss() {
|
|
108
|
+
this.#clearTerminalMenu();
|
|
109
|
+
this.#targetsShownForSelection = null;
|
|
110
|
+
}
|
|
111
|
+
#log(level, ...data) {
|
|
112
|
+
this.#reporter.update({
|
|
113
|
+
type: "unstable_server_log",
|
|
114
|
+
level,
|
|
115
|
+
data
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
#setTerminalMenu(message) {
|
|
119
|
+
this.#reporter.update({
|
|
120
|
+
type: "unstable_server_menu_updated",
|
|
121
|
+
message
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
#clearTerminalMenu() {
|
|
125
|
+
this.#reporter.update({
|
|
126
|
+
type: "unstable_server_menu_cleared"
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type MessageSocketEndpoint = {
|
|
2
|
+
broadcast: (type: string, params?: Record<string, unknown> | null) => void;
|
|
3
|
+
};
|
|
4
|
+
type Reporter = {
|
|
5
|
+
update: (event: {
|
|
6
|
+
type: string;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}) => void;
|
|
9
|
+
};
|
|
10
|
+
export default function attachKeyHandlers({ devServerUrl, messageSocket, reporter, }: {
|
|
11
|
+
devServerUrl: string;
|
|
12
|
+
messageSocket: MessageSocketEndpoint;
|
|
13
|
+
reporter: Reporter;
|
|
14
|
+
}): void;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var attachKeyHandlers_exports = {};
|
|
30
|
+
__export(attachKeyHandlers_exports, {
|
|
31
|
+
default: () => attachKeyHandlers
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(attachKeyHandlers_exports);
|
|
34
|
+
var import_readline = __toESM(require("readline"));
|
|
35
|
+
var import_tty = require("tty");
|
|
36
|
+
var import_util = require("util");
|
|
37
|
+
var import_OpenDebuggerKeyboardHandler = __toESM(require("./OpenDebuggerKeyboardHandler"));
|
|
38
|
+
const CTRL_C = "";
|
|
39
|
+
const CTRL_D = "";
|
|
40
|
+
const RELOAD_TIMEOUT = 500;
|
|
41
|
+
const throttle = (callback, timeout) => {
|
|
42
|
+
let previousCallTimestamp = 0;
|
|
43
|
+
return () => {
|
|
44
|
+
const currentCallTimestamp = Date.now();
|
|
45
|
+
if (currentCallTimestamp - previousCallTimestamp > timeout) {
|
|
46
|
+
previousCallTimestamp = currentCallTimestamp;
|
|
47
|
+
callback();
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
function attachKeyHandlers({
|
|
52
|
+
devServerUrl,
|
|
53
|
+
messageSocket,
|
|
54
|
+
reporter
|
|
55
|
+
}) {
|
|
56
|
+
if (process.stdin.isTTY !== true) {
|
|
57
|
+
reporter.update({
|
|
58
|
+
type: "unstable_server_log",
|
|
59
|
+
level: "info",
|
|
60
|
+
data: "Interactive mode is not supported in this environment"
|
|
61
|
+
});
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
import_readline.default.emitKeypressEvents(process.stdin);
|
|
65
|
+
setRawMode(true);
|
|
66
|
+
const reload = throttle(() => {
|
|
67
|
+
reporter.update({
|
|
68
|
+
type: "unstable_server_log",
|
|
69
|
+
level: "info",
|
|
70
|
+
data: "Reloading connected app(s)..."
|
|
71
|
+
});
|
|
72
|
+
messageSocket.broadcast("reload", null);
|
|
73
|
+
}, RELOAD_TIMEOUT);
|
|
74
|
+
const openDebuggerKeyboardHandler = new import_OpenDebuggerKeyboardHandler.default({
|
|
75
|
+
reporter,
|
|
76
|
+
devServerUrl
|
|
77
|
+
});
|
|
78
|
+
process.stdin.on("keypress", (_str, key) => {
|
|
79
|
+
void _str;
|
|
80
|
+
const keyName = key?.name;
|
|
81
|
+
if (keyName && openDebuggerKeyboardHandler.maybeHandleTargetSelection(keyName)) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
switch (key?.sequence) {
|
|
85
|
+
case "r":
|
|
86
|
+
reload();
|
|
87
|
+
break;
|
|
88
|
+
case "d":
|
|
89
|
+
reporter.update({
|
|
90
|
+
type: "unstable_server_log",
|
|
91
|
+
level: "info",
|
|
92
|
+
data: "Opening Dev Menu..."
|
|
93
|
+
});
|
|
94
|
+
messageSocket.broadcast("devMenu", null);
|
|
95
|
+
break;
|
|
96
|
+
case "j":
|
|
97
|
+
void openDebuggerKeyboardHandler.handleOpenDebugger();
|
|
98
|
+
break;
|
|
99
|
+
case CTRL_C:
|
|
100
|
+
case CTRL_D:
|
|
101
|
+
openDebuggerKeyboardHandler.dismiss();
|
|
102
|
+
reporter.update({
|
|
103
|
+
type: "unstable_server_log",
|
|
104
|
+
level: "info",
|
|
105
|
+
data: "Stopping server"
|
|
106
|
+
});
|
|
107
|
+
setRawMode(false);
|
|
108
|
+
process.stdin.pause();
|
|
109
|
+
process.emit("SIGINT");
|
|
110
|
+
process.exit();
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
reporter.update({
|
|
114
|
+
type: "unstable_server_log",
|
|
115
|
+
level: "info",
|
|
116
|
+
data: `Key commands available:
|
|
117
|
+
|
|
118
|
+
${(0, import_util.styleText)(["bold", "inverse"], " r ")} - reload app(s)
|
|
119
|
+
${(0, import_util.styleText)(
|
|
120
|
+
["bold", "inverse"],
|
|
121
|
+
" d "
|
|
122
|
+
)} - open Dev Menu
|
|
123
|
+
${(0, import_util.styleText)(["bold", "inverse"], " j ")} - open DevTools
|
|
124
|
+
`
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
function setRawMode(enable) {
|
|
128
|
+
if (!(process.stdin instanceof import_tty.ReadStream)) {
|
|
129
|
+
throw new Error("process.stdin must be a readable stream to modify raw mode");
|
|
130
|
+
}
|
|
131
|
+
process.stdin.setRawMode(enable);
|
|
132
|
+
}
|
package/dist/operations/index.js
CHANGED
|
@@ -34,10 +34,8 @@ __export(operations_exports, {
|
|
|
34
34
|
module.exports = __toCommonJS(operations_exports);
|
|
35
35
|
var BuildUtils = __toESM(require("./build"));
|
|
36
36
|
__reExport(operations_exports, require("./serve"), module.exports);
|
|
37
|
-
__reExport(operations_exports, require("./experimental/serve"), module.exports);
|
|
38
37
|
// Annotate the CommonJS export names for ESM import in node:
|
|
39
38
|
0 && (module.exports = {
|
|
40
39
|
BuildUtils,
|
|
41
|
-
...require("./serve")
|
|
42
|
-
...require("./experimental/serve")
|
|
40
|
+
...require("./serve")
|
|
43
41
|
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var keyReporter_exports = {};
|
|
20
|
+
__export(keyReporter_exports, {
|
|
21
|
+
keyReporter: () => keyReporter
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(keyReporter_exports);
|
|
24
|
+
const keyReporter = {
|
|
25
|
+
update(event) {
|
|
26
|
+
switch (event.type) {
|
|
27
|
+
case "unstable_server_log": {
|
|
28
|
+
const level = typeof event.level === "string" ? event.level : "info";
|
|
29
|
+
const data = event.data;
|
|
30
|
+
const output = typeof data === "string" ? data : Array.isArray(data) ? data.map(String).join(" ") : String(data);
|
|
31
|
+
if (level === "error") {
|
|
32
|
+
console.error(output);
|
|
33
|
+
} else if (level === "warn") {
|
|
34
|
+
console.warn(output);
|
|
35
|
+
} else {
|
|
36
|
+
console.log(output);
|
|
37
|
+
}
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
case "unstable_server_menu_updated": {
|
|
41
|
+
const message = event.message;
|
|
42
|
+
if (typeof message === "string") {
|
|
43
|
+
console.log(message);
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case "unstable_server_menu_cleared":
|
|
48
|
+
break;
|
|
49
|
+
default:
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
55
|
+
0 && (module.exports = {
|
|
56
|
+
keyReporter
|
|
57
|
+
});
|
|
@@ -3,8 +3,7 @@ interface RunServerConfig {
|
|
|
3
3
|
config: CompleteGraniteConfig;
|
|
4
4
|
host?: string;
|
|
5
5
|
port?: number;
|
|
6
|
-
enableEmbeddedReactDevTools?: boolean;
|
|
7
6
|
onServerReady?: () => Promise<void> | void;
|
|
8
7
|
}
|
|
9
|
-
export declare function runServer({ config, host, port,
|
|
8
|
+
export declare function runServer({ config, host, port, onServerReady, }: RunServerConfig): Promise<void>;
|
|
10
9
|
export {};
|
package/dist/operations/serve.js
CHANGED
|
@@ -32,11 +32,12 @@ __export(serve_exports, {
|
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(serve_exports);
|
|
34
34
|
var import_plugin_core = require("@granite-js/plugin-core");
|
|
35
|
+
var import_dev_middleware = require("@react-native/dev-middleware");
|
|
35
36
|
var import_cli_server_api = require("@react-native-community/cli-server-api");
|
|
36
37
|
var import_debug = __toESM(require("debug"));
|
|
37
|
-
var
|
|
38
|
-
var import_createDebuggerMiddleware = require("./createDebuggerMiddleware");
|
|
38
|
+
var import_attachKeyHandlers = __toESM(require("./attachKeyHandlers"));
|
|
39
39
|
var import_constants = require("../constants");
|
|
40
|
+
var import_keyReporter = require("./keyReporter");
|
|
40
41
|
var import_getMetroConfig = require("../metro/getMetroConfig");
|
|
41
42
|
var import_printLogo = require("../utils/printLogo");
|
|
42
43
|
var import_printServerUrl = require("../utils/printServerUrl");
|
|
@@ -49,13 +50,32 @@ async function runServer({
|
|
|
49
50
|
config,
|
|
50
51
|
host = import_constants.DEV_SERVER_DEFAULT_HOST,
|
|
51
52
|
port = import_constants.DEV_SERVER_DEFAULT_PORT,
|
|
52
|
-
enableEmbeddedReactDevTools = true,
|
|
53
53
|
onServerReady
|
|
54
54
|
}) {
|
|
55
|
+
const devServerHostname = host === "0.0.0.0" ? "localhost" : host;
|
|
56
|
+
const devServerUrl = new URL(`http://${devServerHostname}:${port}`).origin;
|
|
57
|
+
let keyHandlersAttached = false;
|
|
55
58
|
const ref = {};
|
|
56
59
|
const driver = (0, import_plugin_core.createPluginHooksDriver)(config);
|
|
57
60
|
const terminal = new Terminal(process.stdout);
|
|
58
61
|
const terminalReporter = new TerminalReporter(terminal);
|
|
62
|
+
const resolvedConfig = await (0, import_plugin_core.resolveConfig)(config);
|
|
63
|
+
const { middlewares = [], inspectorProxy, ...additionalMetroConfig } = resolvedConfig?.metro ?? {};
|
|
64
|
+
const baseConfig = await (0, import_getMetroConfig.getMetroConfig)({ rootPath: config.cwd }, additionalMetroConfig);
|
|
65
|
+
const metroConfig = mergeConfig(baseConfig, {
|
|
66
|
+
server: { port }
|
|
67
|
+
});
|
|
68
|
+
metroConfig.server.runInspectorProxy = false;
|
|
69
|
+
const {
|
|
70
|
+
middleware,
|
|
71
|
+
websocketEndpoints: communityWebsocketEndpoints,
|
|
72
|
+
eventsSocketEndpoint,
|
|
73
|
+
messageSocketEndpoint
|
|
74
|
+
} = (0, import_cli_server_api.createDevServerMiddleware)({
|
|
75
|
+
host,
|
|
76
|
+
port,
|
|
77
|
+
watchFolders: metroConfig.watchFolders
|
|
78
|
+
});
|
|
59
79
|
const reporter = {
|
|
60
80
|
async update(event) {
|
|
61
81
|
debug("Reporter event", event);
|
|
@@ -69,9 +89,16 @@ async function runServer({
|
|
|
69
89
|
(0, import_printLogo.printLogo)();
|
|
70
90
|
break;
|
|
71
91
|
case "initialize_done":
|
|
72
|
-
enableStdinWatchMode();
|
|
73
92
|
await driver.devServer.post({ host, port });
|
|
74
93
|
(0, import_printServerUrl.printServerUrl)({ host, port });
|
|
94
|
+
if (!keyHandlersAttached) {
|
|
95
|
+
keyHandlersAttached = true;
|
|
96
|
+
(0, import_attachKeyHandlers.default)({
|
|
97
|
+
devServerUrl,
|
|
98
|
+
messageSocket: messageSocketEndpoint,
|
|
99
|
+
reporter: import_keyReporter.keyReporter
|
|
100
|
+
});
|
|
101
|
+
}
|
|
75
102
|
await onServerReady?.();
|
|
76
103
|
break;
|
|
77
104
|
default:
|
|
@@ -79,24 +106,11 @@ async function runServer({
|
|
|
79
106
|
}
|
|
80
107
|
}
|
|
81
108
|
};
|
|
82
|
-
|
|
83
|
-
const {
|
|
84
|
-
|
|
85
|
-
const metroConfig = mergeConfig(baseConfig, {
|
|
86
|
-
server: { port },
|
|
87
|
-
reporter
|
|
88
|
-
});
|
|
89
|
-
const { middleware, websocketEndpoints, messageSocketEndpoint, eventsSocketEndpoint } = (0, import_cli_server_api.createDevServerMiddleware)({
|
|
90
|
-
host,
|
|
91
|
-
port,
|
|
92
|
-
watchFolders: metroConfig.watchFolders
|
|
93
|
-
});
|
|
94
|
-
const { middleware: debuggerMiddleware, enableStdinWatchMode } = (0, import_createDebuggerMiddleware.createDebuggerMiddleware)({
|
|
95
|
-
port,
|
|
96
|
-
broadcastMessage: messageSocketEndpoint.broadcast
|
|
109
|
+
metroConfig.reporter = reporter;
|
|
110
|
+
const { middleware: debuggerMiddleware, websocketEndpoints: debuggerWebSocketEndpoints } = (0, import_dev_middleware.createDevMiddleware)({
|
|
111
|
+
serverBaseUrl: devServerUrl
|
|
97
112
|
});
|
|
98
113
|
middleware.use(debuggerMiddleware);
|
|
99
|
-
middleware.use(import_cli_server_api.indexPageMiddleware);
|
|
100
114
|
const customEnhanceMiddleware = metroConfig.server.enhanceMiddleware;
|
|
101
115
|
metroConfig.server.enhanceMiddleware = (metroMiddleware, server) => {
|
|
102
116
|
if (customEnhanceMiddleware) {
|
|
@@ -107,26 +121,14 @@ async function runServer({
|
|
|
107
121
|
}
|
|
108
122
|
return middleware.use(metroMiddleware);
|
|
109
123
|
};
|
|
110
|
-
if (enableEmbeddedReactDevTools) {
|
|
111
|
-
await (0, import_backend.setupDevToolsProxy)({
|
|
112
|
-
client: {
|
|
113
|
-
delegate: {
|
|
114
|
-
onError: (error) => console.error("React DevTools client error", error)
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
devtools: {
|
|
118
|
-
delegate: {
|
|
119
|
-
onError: (error) => console.error("React DevTools frontend error", error)
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
124
|
ref.reportEvent = eventsSocketEndpoint.reportEvent;
|
|
125
|
-
ref.enableStdinWatchMode = enableStdinWatchMode;
|
|
126
125
|
await driver.devServer.pre({ host, port });
|
|
127
126
|
const serverInstance = await Metro.runServer(metroConfig, {
|
|
128
127
|
host,
|
|
129
|
-
websocketEndpoints
|
|
128
|
+
websocketEndpoints: {
|
|
129
|
+
...communityWebsocketEndpoints,
|
|
130
|
+
...debuggerWebSocketEndpoints
|
|
131
|
+
},
|
|
130
132
|
inspectorProxyDelegate: inspectorProxy?.delegate
|
|
131
133
|
});
|
|
132
134
|
serverInstance.keepAliveTimeout = 3e4;
|
|
@@ -33,19 +33,36 @@ class AsyncTransformPipeline extends import_TransformPipeline.TransformPipeline
|
|
|
33
33
|
return this._afterStep ? this._afterStep(code2, args2, context2) : Promise.resolve({ code: code2, done: true });
|
|
34
34
|
};
|
|
35
35
|
let result = await before(code, args, context);
|
|
36
|
-
for await (const
|
|
36
|
+
for await (const entry of this.steps) {
|
|
37
37
|
if (result.done) {
|
|
38
38
|
break;
|
|
39
39
|
}
|
|
40
|
-
if (
|
|
40
|
+
if (entry.type === "normal" && entry.step) {
|
|
41
41
|
let trace;
|
|
42
|
-
if (typeof step.name === "string") {
|
|
43
|
-
trace = import_performance.Performance.trace(`step-${step.name}`, { detail: { file: args.path } });
|
|
42
|
+
if (typeof entry.step.name === "string") {
|
|
43
|
+
trace = import_performance.Performance.trace(`step-${entry.step.name}`, { detail: { file: args.path } });
|
|
44
44
|
}
|
|
45
|
-
result = await step(result.code, args, context);
|
|
45
|
+
result = await entry.step(result.code, args, context);
|
|
46
46
|
trace?.stop();
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
} else if (entry.type === "conditional" && entry.condition) {
|
|
48
|
+
const condition = entry.condition;
|
|
49
|
+
if (condition.if({ path: args.path, code: result.code })) {
|
|
50
|
+
let trace;
|
|
51
|
+
if (typeof condition.then.name === "string") {
|
|
52
|
+
trace = import_performance.Performance.trace(`step-${condition.then.name}`, { detail: { file: args.path } });
|
|
53
|
+
}
|
|
54
|
+
result = await condition.then(result.code, args, context);
|
|
55
|
+
trace?.stop();
|
|
56
|
+
if (condition.stopAfter) {
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
} else if (condition.else) {
|
|
60
|
+
let trace;
|
|
61
|
+
if (typeof condition.else.name === "string") {
|
|
62
|
+
trace = import_performance.Performance.trace(`step-${condition.else.name}`, { detail: { file: args.path } });
|
|
63
|
+
}
|
|
64
|
+
result = await condition.else(result.code, args, context);
|
|
65
|
+
trace?.stop();
|
|
49
66
|
}
|
|
50
67
|
}
|
|
51
68
|
}
|
|
@@ -13,24 +13,29 @@ interface TransformStep<TransformResult> {
|
|
|
13
13
|
(code: string, args: TransformStepArgs, context: TransformStepContext): TransformResult;
|
|
14
14
|
name?: string;
|
|
15
15
|
}
|
|
16
|
-
interface TransformStepConfig {
|
|
17
|
-
/**
|
|
18
|
-
* step 을 실행하기 위한 조건 (기본값: 항상 실행)
|
|
19
|
-
*/
|
|
20
|
-
conditions?: Array<(code: string, path: string) => boolean>;
|
|
21
|
-
/**
|
|
22
|
-
* 현재 step 이 실행된 경우 done 처리 여부 (기본값: false)
|
|
23
|
-
*/
|
|
24
|
-
skipOtherSteps?: boolean;
|
|
25
|
-
}
|
|
26
16
|
export type AsyncTransformStep = TransformStep<Promise<TransformStepResult>>;
|
|
17
|
+
export interface ConditionalStep {
|
|
18
|
+
if: (args: {
|
|
19
|
+
path: string;
|
|
20
|
+
code: string;
|
|
21
|
+
}) => boolean;
|
|
22
|
+
then: AsyncTransformStep;
|
|
23
|
+
else?: AsyncTransformStep;
|
|
24
|
+
stopAfter?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export type StepInput = AsyncTransformStep | ConditionalStep;
|
|
27
|
+
interface StepEntry {
|
|
28
|
+
type: 'normal' | 'conditional';
|
|
29
|
+
step?: AsyncTransformStep;
|
|
30
|
+
condition?: ConditionalStep;
|
|
31
|
+
}
|
|
27
32
|
export declare abstract class TransformPipeline<Step extends TransformStep<unknown>> {
|
|
28
33
|
protected _beforeStep?: Step;
|
|
29
34
|
protected _afterStep?: Step;
|
|
30
|
-
protected steps:
|
|
35
|
+
protected steps: StepEntry[];
|
|
31
36
|
beforeStep(step: Step): this;
|
|
32
37
|
afterStep(step: Step): this;
|
|
33
|
-
addStep(step:
|
|
38
|
+
addStep(step: StepInput): this;
|
|
34
39
|
getStepContext(args: TransformStepArgs): Promise<TransformStepContext>;
|
|
35
40
|
abstract transform(code: string, args: TransformStepArgs): ReturnType<Step>;
|
|
36
41
|
}
|
|
@@ -46,8 +46,12 @@ class TransformPipeline {
|
|
|
46
46
|
this._afterStep = step;
|
|
47
47
|
return this;
|
|
48
48
|
}
|
|
49
|
-
addStep(step
|
|
50
|
-
|
|
49
|
+
addStep(step) {
|
|
50
|
+
if (typeof step === "function") {
|
|
51
|
+
this.steps.push({ type: "normal", step });
|
|
52
|
+
} else {
|
|
53
|
+
this.steps.push({ type: "conditional", condition: step });
|
|
54
|
+
}
|
|
51
55
|
return this;
|
|
52
56
|
}
|
|
53
57
|
async getStepContext(args) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getDefaultReactNativePath(rootDir: string): string;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var getDefaultReactNativePath_exports = {};
|
|
30
|
+
__export(getDefaultReactNativePath_exports, {
|
|
31
|
+
getDefaultReactNativePath: () => getDefaultReactNativePath
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(getDefaultReactNativePath_exports);
|
|
34
|
+
var import_path = __toESM(require("path"));
|
|
35
|
+
function getDefaultReactNativePath(rootDir) {
|
|
36
|
+
return import_path.default.dirname(
|
|
37
|
+
require.resolve("react-native/package.json", {
|
|
38
|
+
paths: [rootDir]
|
|
39
|
+
})
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
getDefaultReactNativePath
|
|
45
|
+
});
|
package/dist/utils/getId.js
CHANGED
|
@@ -37,7 +37,9 @@ function getId(bundleConfig) {
|
|
|
37
37
|
bundleConfig.buildConfig.esbuild?.loader,
|
|
38
38
|
bundleConfig.buildConfig.esbuild?.resolveExtensions,
|
|
39
39
|
bundleConfig.buildConfig.esbuild?.mainFields,
|
|
40
|
-
bundleConfig.buildConfig.esbuild?.conditions
|
|
40
|
+
bundleConfig.buildConfig.esbuild?.conditions,
|
|
41
|
+
bundleConfig.buildConfig.extra?.skipReactNativePolyfills,
|
|
42
|
+
bundleConfig.buildConfig.extra?.skipReactNativeInitializeCore
|
|
41
43
|
])
|
|
42
44
|
);
|
|
43
45
|
}
|
|
@@ -3,7 +3,8 @@ const { getJsOutput } = require("./js");
|
|
|
3
3
|
function getSourceMapInfo(module2, options) {
|
|
4
4
|
return {
|
|
5
5
|
...getJsOutput(module2).data,
|
|
6
|
-
|
|
6
|
+
// MARK: - 0.81
|
|
7
|
+
path: options.getSourceUrl(module2) ?? module2.path,
|
|
7
8
|
source: options.excludeSource ? "" : getModuleSource(module2)
|
|
8
9
|
};
|
|
9
10
|
}
|