@modern-js/devtools-kit 2.45.0 → 2.46.0
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/channel.d.ts +37 -0
- package/dist/channel.js +173 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/server.d.ts +5 -8
- package/package.json +22 -12
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ChannelOptions } from 'birpc';
|
|
2
|
+
export declare class WebSocketChannel implements ChannelOptions {
|
|
3
|
+
static link(ws: WebSocket): Promise<WebSocketChannel>;
|
|
4
|
+
protected ws: WebSocket;
|
|
5
|
+
constructor(ws: WebSocket);
|
|
6
|
+
get handlers(): {
|
|
7
|
+
on: (fn: (data: unknown, ...extras: unknown[]) => void) => void;
|
|
8
|
+
post: (data: string | ArrayBufferLike | Blob | ArrayBufferView, ...extras: unknown[]) => void;
|
|
9
|
+
deserialize: (e: MessageEvent<any>) => unknown;
|
|
10
|
+
serialize: (data: unknown) => string;
|
|
11
|
+
};
|
|
12
|
+
post(data: string | ArrayBufferLike | Blob | ArrayBufferView, ...extras: unknown[]): void;
|
|
13
|
+
on(fn: (data: unknown, ...extras: unknown[]) => void): void;
|
|
14
|
+
serialize(data: unknown): string;
|
|
15
|
+
deserialize(e: MessageEvent): unknown;
|
|
16
|
+
}
|
|
17
|
+
export declare class MessagePortTimeout extends Error {
|
|
18
|
+
constructor();
|
|
19
|
+
}
|
|
20
|
+
export type PostMessageListener = (ev: MessageEvent) => void;
|
|
21
|
+
export interface PostMessageTarget {
|
|
22
|
+
postMessage: (message: unknown, targetOrigin: string, transfer?: Transferable[]) => void;
|
|
23
|
+
addEventListener: (type: string, listener: PostMessageListener, options?: boolean | AddEventListenerOptions) => void;
|
|
24
|
+
removeEventListener: (type: string, listener: PostMessageListener, options?: boolean | EventListenerOptions) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare class MessagePortChannel implements ChannelOptions {
|
|
27
|
+
static link(target: PostMessageTarget, tag?: string): Promise<MessagePortChannel>;
|
|
28
|
+
static wait(target: PostMessageTarget, tag?: string): Promise<MessagePortChannel>;
|
|
29
|
+
port: MessagePort;
|
|
30
|
+
constructor(port: MessagePort);
|
|
31
|
+
get handlers(): {
|
|
32
|
+
on: (fn: (data: unknown, ...extras: unknown[]) => void) => void;
|
|
33
|
+
post: (data: unknown, ...extras: unknown[]) => void;
|
|
34
|
+
};
|
|
35
|
+
post(data: unknown, ...extras: unknown[]): void;
|
|
36
|
+
on(fn: (data: unknown, ...extras: unknown[]) => void): void;
|
|
37
|
+
}
|
package/dist/channel.js
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
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 channel_exports = {};
|
|
20
|
+
__export(channel_exports, {
|
|
21
|
+
MessagePortChannel: () => MessagePortChannel,
|
|
22
|
+
MessagePortTimeout: () => MessagePortTimeout,
|
|
23
|
+
WebSocketChannel: () => WebSocketChannel
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(channel_exports);
|
|
26
|
+
var import_nanoid = require("nanoid");
|
|
27
|
+
class WebSocketChannel {
|
|
28
|
+
static link(ws) {
|
|
29
|
+
return new Promise((resolve, reject) => {
|
|
30
|
+
const ret = new WebSocketChannel(ws);
|
|
31
|
+
if (ws.readyState === ws.OPEN) {
|
|
32
|
+
resolve(ret);
|
|
33
|
+
} else {
|
|
34
|
+
ws.addEventListener("open", () => resolve(ret), {
|
|
35
|
+
once: true
|
|
36
|
+
});
|
|
37
|
+
ws.addEventListener("error", reject, {
|
|
38
|
+
once: true
|
|
39
|
+
});
|
|
40
|
+
ws.addEventListener("close", reject, {
|
|
41
|
+
once: true
|
|
42
|
+
});
|
|
43
|
+
setTimeout(reject, 1e3);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
get handlers() {
|
|
48
|
+
return {
|
|
49
|
+
on: this.on.bind(this),
|
|
50
|
+
post: this.post.bind(this),
|
|
51
|
+
deserialize: this.deserialize.bind(this),
|
|
52
|
+
serialize: this.serialize.bind(this)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
post(data, ...extras) {
|
|
56
|
+
if (extras.length) {
|
|
57
|
+
throw new Error("Unexpected extra parameters.");
|
|
58
|
+
}
|
|
59
|
+
this.ws.send(data);
|
|
60
|
+
}
|
|
61
|
+
on(fn) {
|
|
62
|
+
this.ws.onmessage = fn;
|
|
63
|
+
}
|
|
64
|
+
serialize(data) {
|
|
65
|
+
return JSON.stringify(data);
|
|
66
|
+
}
|
|
67
|
+
deserialize(e) {
|
|
68
|
+
return JSON.parse(e.data.toString());
|
|
69
|
+
}
|
|
70
|
+
constructor(ws) {
|
|
71
|
+
this.ws = ws;
|
|
72
|
+
const binds = {
|
|
73
|
+
on: this.on.bind(this),
|
|
74
|
+
post: this.post.bind(this),
|
|
75
|
+
deserialize: this.deserialize.bind(this),
|
|
76
|
+
serialize: this.serialize.bind(this)
|
|
77
|
+
};
|
|
78
|
+
Object.assign(this, binds);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
class MessagePortTimeout extends Error {
|
|
82
|
+
constructor() {
|
|
83
|
+
super("Connection to target message channel port timed out");
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
class MessagePortChannel {
|
|
87
|
+
static link(target, tag = "channel:connect") {
|
|
88
|
+
return new Promise((resolve, reject) => {
|
|
89
|
+
const id = (0, import_nanoid.nanoid)();
|
|
90
|
+
const { port1, port2 } = new MessageChannel();
|
|
91
|
+
const handleMessage = (e) => {
|
|
92
|
+
if (e.data.tag !== tag)
|
|
93
|
+
return;
|
|
94
|
+
if (e.data.type !== "accepted")
|
|
95
|
+
return;
|
|
96
|
+
if (e.data.id !== id)
|
|
97
|
+
return;
|
|
98
|
+
port2.removeEventListener("message", handleMessage);
|
|
99
|
+
resolve(new MessagePortChannel(port2));
|
|
100
|
+
};
|
|
101
|
+
port2.addEventListener("messageerror", reject, {
|
|
102
|
+
once: true
|
|
103
|
+
});
|
|
104
|
+
port2.addEventListener("message", handleMessage);
|
|
105
|
+
port2.start();
|
|
106
|
+
target.postMessage({
|
|
107
|
+
tag,
|
|
108
|
+
type: "request",
|
|
109
|
+
id
|
|
110
|
+
}, "*", [
|
|
111
|
+
port1
|
|
112
|
+
]);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
static wait(target, tag = "channel:connect") {
|
|
116
|
+
return new Promise((resolve, reject) => {
|
|
117
|
+
const handleMessage = async (e) => {
|
|
118
|
+
const { data } = e;
|
|
119
|
+
if (!data)
|
|
120
|
+
return;
|
|
121
|
+
if (typeof data !== "object")
|
|
122
|
+
return;
|
|
123
|
+
if (data.tag !== tag)
|
|
124
|
+
return;
|
|
125
|
+
if (data.type !== "request")
|
|
126
|
+
return;
|
|
127
|
+
target.removeEventListener("message", handleMessage);
|
|
128
|
+
const port = e.ports[0];
|
|
129
|
+
if (port) {
|
|
130
|
+
port.postMessage({
|
|
131
|
+
type: "accepted",
|
|
132
|
+
id: data.id,
|
|
133
|
+
tag
|
|
134
|
+
});
|
|
135
|
+
resolve(new MessagePortChannel(port));
|
|
136
|
+
} else {
|
|
137
|
+
reject(new Error("Missing message channel port from remote."));
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
target.addEventListener("message", handleMessage);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
get handlers() {
|
|
144
|
+
return {
|
|
145
|
+
on: this.on.bind(this),
|
|
146
|
+
post: this.post.bind(this)
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
post(data, ...extras) {
|
|
150
|
+
if (extras.length) {
|
|
151
|
+
throw new Error("Unexpected extra parameters.");
|
|
152
|
+
}
|
|
153
|
+
this.port.postMessage(data);
|
|
154
|
+
}
|
|
155
|
+
on(fn) {
|
|
156
|
+
this.port.addEventListener("message", (e) => fn(e.data));
|
|
157
|
+
}
|
|
158
|
+
constructor(port) {
|
|
159
|
+
this.port = port;
|
|
160
|
+
this.port.start();
|
|
161
|
+
const binds = {
|
|
162
|
+
on: this.on.bind(this),
|
|
163
|
+
post: this.post.bind(this)
|
|
164
|
+
};
|
|
165
|
+
Object.assign(this, binds);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
169
|
+
0 && (module.exports = {
|
|
170
|
+
MessagePortChannel,
|
|
171
|
+
MessagePortTimeout,
|
|
172
|
+
WebSocketChannel
|
|
173
|
+
});
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -20,11 +20,13 @@ __reExport(src_exports, require("./client"), module.exports);
|
|
|
20
20
|
__reExport(src_exports, require("./mount-point"), module.exports);
|
|
21
21
|
__reExport(src_exports, require("./utils"), module.exports);
|
|
22
22
|
__reExport(src_exports, require("./constants"), module.exports);
|
|
23
|
+
__reExport(src_exports, require("./channel"), module.exports);
|
|
23
24
|
// Annotate the CommonJS export names for ESM import in node:
|
|
24
25
|
0 && (module.exports = {
|
|
25
26
|
...require("./server"),
|
|
26
27
|
...require("./client"),
|
|
27
28
|
...require("./mount-point"),
|
|
28
29
|
...require("./utils"),
|
|
29
|
-
...require("./constants")
|
|
30
|
+
...require("./constants"),
|
|
31
|
+
...require("./channel")
|
|
30
32
|
});
|
package/dist/server.d.ts
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import type { AppTools, IAppContext, UserConfig } from '@modern-js/app-tools';
|
|
2
|
-
import type {
|
|
3
|
-
import type { BuilderConfig as WebpackBuilderConfig, NormalizedConfig as NormalizedWebpackBuilderConfig, WebpackConfig, webpack } from '@modern-js/builder-webpack-provider';
|
|
4
|
-
import type { BuilderConfig as RspackBuilderConfig, NormalizedConfig as NormalizedRspackBuilderConfig, RspackConfig, Rspack } from '@modern-js/builder-rspack-provider';
|
|
2
|
+
import type { RsbuildContext, NormalizedConfig as NormalizedBuilderConfig, RsbuildConfig, webpack, Rspack, WebpackConfig, RspackConfig } from '@modern-js/uni-builder';
|
|
5
3
|
import { NormalizedConfig } from '@modern-js/core';
|
|
6
4
|
import { RouteLegacy, NestedRouteForCli, PageRoute } from '@modern-js/types/cli';
|
|
7
5
|
import type { ClientDefinition } from './client';
|
|
8
|
-
export type
|
|
6
|
+
export type BuilderContext = RsbuildContext;
|
|
9
7
|
export type FrameworkConfig = UserConfig<AppTools>;
|
|
10
8
|
export type TransformedFrameworkConfig = NormalizedConfig<AppTools>;
|
|
11
|
-
export type BuilderConfig =
|
|
12
|
-
export type { WebpackConfig, RspackConfig };
|
|
9
|
+
export type BuilderConfig = RsbuildConfig;
|
|
10
|
+
export type { NormalizedBuilderConfig, WebpackConfig, RspackConfig };
|
|
13
11
|
export type Aliases = NonNullable<NonNullable<WebpackConfig['resolve']>['alias']>;
|
|
14
12
|
export type BundlerConfig = WebpackConfig | RspackConfig;
|
|
15
13
|
export type Compiler = webpack.Compiler | Rspack.Compiler | webpack.MultiCompiler | Rspack.MultiCompiler;
|
|
16
|
-
export type NormalizedBuilderConfig = NormalizedWebpackBuilderConfig | NormalizedRspackBuilderConfig;
|
|
17
14
|
export type AppContext = Omit<IAppContext, 'builder' | 'serverInternalPlugins'>;
|
|
18
15
|
export type FileSystemRoutes = RouteLegacy[] | (NestedRouteForCli | PageRoute)[];
|
|
19
16
|
export interface ServerFunctions {
|
|
@@ -25,7 +22,7 @@ export interface ServerFunctions {
|
|
|
25
22
|
getTransformedBundlerConfigs: () => Promise<BundlerConfig[]>;
|
|
26
23
|
getAppContext: () => Promise<AppContext>;
|
|
27
24
|
getFileSystemRoutes: (entryName: string) => Promise<FileSystemRoutes>;
|
|
28
|
-
getBuilderContext: () => Promise<
|
|
25
|
+
getBuilderContext: () => Promise<RsbuildContext>;
|
|
29
26
|
getDependencies: () => Promise<Record<string, string>>;
|
|
30
27
|
getCompileTimeCost: () => Promise<number>;
|
|
31
28
|
getClientDefinition: () => Promise<ClientDefinition>;
|
package/package.json
CHANGED
|
@@ -12,13 +12,16 @@
|
|
|
12
12
|
"dist"
|
|
13
13
|
],
|
|
14
14
|
"license": "MIT",
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">14"
|
|
17
|
+
},
|
|
15
18
|
"keywords": [
|
|
16
19
|
"react",
|
|
17
20
|
"framework",
|
|
18
21
|
"modern",
|
|
19
22
|
"modern.js"
|
|
20
23
|
],
|
|
21
|
-
"version": "2.
|
|
24
|
+
"version": "2.46.0",
|
|
22
25
|
"jsnext:source": "./src/index.ts",
|
|
23
26
|
"types": "./dist/index.d.ts",
|
|
24
27
|
"main": "./dist/index.js",
|
|
@@ -45,26 +48,33 @@
|
|
|
45
48
|
}
|
|
46
49
|
},
|
|
47
50
|
"dependencies": {
|
|
51
|
+
"birpc": "0.2.13",
|
|
52
|
+
"hookable": "^5.5.3",
|
|
48
53
|
"ufo": "^1.3.0",
|
|
49
54
|
"ws": "^8.13.0",
|
|
50
|
-
"@modern-js/types": "2.
|
|
51
|
-
"@modern-js/utils": "2.
|
|
55
|
+
"@modern-js/types": "2.46.0",
|
|
56
|
+
"@modern-js/utils": "2.46.0"
|
|
52
57
|
},
|
|
53
58
|
"devDependencies": {
|
|
59
|
+
"@babel/core": "^7.23.2",
|
|
60
|
+
"@babel/preset-env": "^7.22.15",
|
|
61
|
+
"@babel/preset-typescript": "^7.22.15",
|
|
54
62
|
"@swc/helpers": "0.5.3",
|
|
63
|
+
"@types/jest": "^29",
|
|
55
64
|
"@types/node": "^14",
|
|
56
65
|
"@types/ws": "^8.5.5",
|
|
66
|
+
"jest": "^29",
|
|
67
|
+
"nanoid": "3.3.4",
|
|
57
68
|
"react": "~18.2.0",
|
|
58
69
|
"type-fest": "^4.1.0",
|
|
59
70
|
"typescript": "^5",
|
|
60
|
-
"@modern-js/app-tools": "2.
|
|
61
|
-
"@modern-js/
|
|
62
|
-
"@modern-js/
|
|
63
|
-
"@modern-js/
|
|
64
|
-
"@modern-js/
|
|
65
|
-
"@scripts/
|
|
66
|
-
"@
|
|
67
|
-
"@modern-js/module-tools": "2.45.0"
|
|
71
|
+
"@modern-js/app-tools": "2.46.0",
|
|
72
|
+
"@modern-js/core": "2.46.0",
|
|
73
|
+
"@modern-js/types": "2.46.0",
|
|
74
|
+
"@modern-js/uni-builder": "2.46.0",
|
|
75
|
+
"@modern-js/module-tools": "2.46.0",
|
|
76
|
+
"@scripts/jest-config": "2.46.0",
|
|
77
|
+
"@scripts/build": "2.46.0"
|
|
68
78
|
},
|
|
69
79
|
"peerDependencies": {
|
|
70
80
|
"react": "~18.2.0"
|
|
@@ -79,6 +89,6 @@
|
|
|
79
89
|
"new": "modern-lib new",
|
|
80
90
|
"dev": "modern-lib build --watch",
|
|
81
91
|
"build": "modern-lib build",
|
|
82
|
-
"test": "jest
|
|
92
|
+
"test": "jest"
|
|
83
93
|
}
|
|
84
94
|
}
|