@bleedingdev/modern-js-app-tools 3.2.0-ultramodern.12 → 3.2.0-ultramodern.121
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/bin/modern.js +0 -0
- package/dist/cjs/baseline.js +12 -50
- package/dist/cjs/builder/builder-rspack/index.js +9 -5
- package/dist/cjs/builder/generator/adapterCopy.js +9 -5
- package/dist/cjs/builder/generator/createBuilderProviderConfig.js +9 -5
- package/dist/cjs/builder/generator/createCopyPattern.js +9 -5
- package/dist/cjs/builder/generator/getBuilderEnvironments.js +199 -12
- package/dist/cjs/builder/generator/index.js +9 -5
- package/dist/cjs/builder/index.js +9 -5
- package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +50 -10
- package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +10 -6
- package/dist/cjs/builder/shared/builderPlugins/adapterPrecompress.js +9 -5
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +12 -6
- package/dist/cjs/builder/shared/builderPlugins/builderHooks.js +12 -8
- package/dist/cjs/builder/shared/builderPlugins/index.js +9 -5
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +9 -5
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +12 -8
- package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +9 -5
- package/dist/cjs/builder/shared/bundlerPlugins/index.js +9 -5
- package/dist/cjs/builder/shared/createCopyInfo.js +9 -5
- package/dist/cjs/builder/shared/index.js +9 -5
- package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +12 -8
- package/dist/cjs/commands/build.js +9 -5
- package/dist/cjs/commands/deploy.js +9 -5
- package/dist/cjs/commands/dev.js +9 -5
- package/dist/cjs/commands/index.js +12 -11
- package/dist/cjs/commands/info.js +9 -5
- package/dist/cjs/commands/inspect.js +12 -8
- package/dist/cjs/commands/runtime.js +50 -13
- package/dist/cjs/commands/serve.js +9 -5
- package/dist/cjs/compat/hooks.js +9 -5
- package/dist/cjs/compat/index.js +9 -5
- package/dist/cjs/compat/utils.js +9 -5
- package/dist/cjs/config/default.js +9 -5
- package/dist/cjs/config/index.js +9 -5
- package/dist/cjs/config/initialize/index.js +9 -5
- package/dist/cjs/config/initialize/inits.js +9 -5
- package/dist/cjs/constants.js +13 -9
- package/dist/cjs/defineConfig.js +12 -8
- package/dist/cjs/esm/register-esm.js +12 -8
- package/dist/cjs/esm/ts-paths-loader.js +9 -5
- package/dist/cjs/index.js +22 -17
- package/dist/cjs/locale/en.js +12 -8
- package/dist/cjs/locale/index.js +9 -5
- package/dist/cjs/locale/zh.js +12 -8
- package/dist/cjs/plugins/analyze/constants.js +14 -10
- package/dist/cjs/plugins/analyze/getBundleEntry.js +9 -5
- package/dist/cjs/plugins/analyze/getFileSystemEntry.js +9 -5
- package/dist/cjs/plugins/analyze/getHtmlTemplate.js +9 -5
- package/dist/cjs/plugins/analyze/getServerRoutes.js +9 -5
- package/dist/cjs/plugins/analyze/index.js +9 -5
- package/dist/cjs/plugins/analyze/isDefaultExportFunction.js +9 -5
- package/dist/cjs/plugins/analyze/templates.js +12 -8
- package/dist/cjs/plugins/analyze/utils.js +9 -5
- package/dist/cjs/plugins/deploy/index.js +26 -11
- package/dist/cjs/plugins/deploy/platforms/cloudflare.js +400 -0
- package/dist/cjs/plugins/deploy/platforms/gh-pages.js +9 -5
- package/dist/cjs/plugins/deploy/platforms/netlify.js +9 -5
- package/dist/cjs/plugins/deploy/platforms/node.js +9 -5
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.mjs +563 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +7 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +185 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +59 -0
- package/dist/cjs/plugins/deploy/platforms/vercel.js +9 -5
- package/dist/cjs/plugins/deploy/utils/generator.js +9 -5
- package/dist/cjs/plugins/deploy/utils/index.js +19 -40
- package/dist/cjs/plugins/initialize/index.js +9 -5
- package/dist/cjs/plugins/serverBuild.js +9 -5
- package/dist/cjs/plugins/serverRuntime.js +12 -8
- package/dist/cjs/presetUltramodern.js +95 -7
- package/dist/cjs/rsbuild.js +55 -64
- package/dist/cjs/run/index.js +9 -5
- package/dist/cjs/types/config/cloudflareDeploy.js +18 -0
- package/dist/cjs/types/config/index.js +9 -5
- package/dist/cjs/types/config/precompress.js +18 -0
- package/dist/cjs/types/index.js +9 -5
- package/dist/cjs/ultramodern/designSystem.js +16 -12
- package/dist/cjs/utils/config.js +9 -5
- package/dist/cjs/utils/createServer.js +14 -10
- package/dist/cjs/utils/env.js +9 -5
- package/dist/cjs/utils/generateWatchFiles.js +9 -5
- package/dist/cjs/utils/getConfigFile.js +9 -5
- package/dist/cjs/utils/getSelectedEntries.js +9 -5
- package/dist/cjs/utils/initAppContext.js +9 -5
- package/dist/cjs/utils/loadPlugins.js +9 -5
- package/dist/cjs/utils/printInstructions.js +9 -5
- package/dist/cjs/utils/register.js +9 -5
- package/dist/cjs/utils/restart.js +9 -5
- package/dist/cjs/utils/routes.js +9 -5
- package/dist/esm/baseline.mjs +3 -45
- package/dist/esm/builder/generator/getBuilderEnvironments.mjs +180 -8
- package/dist/esm/builder/shared/builderPlugins/adapterBasic.mjs +41 -5
- package/dist/esm/builder/shared/builderPlugins/adapterHtml.mjs +1 -1
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.mjs +3 -1
- package/dist/esm/commands/index.mjs +2 -5
- package/dist/esm/commands/runtime.mjs +33 -3
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/plugins/deploy/index.mjs +10 -4
- package/dist/esm/plugins/deploy/platforms/cloudflare.mjs +352 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.mjs +563 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +7 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +185 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +59 -0
- package/dist/esm/plugins/deploy/utils/index.mjs +11 -36
- package/dist/esm/presetUltramodern.mjs +77 -3
- package/dist/esm/rsbuild.mjs +4 -8
- package/dist/esm/types/config/cloudflareDeploy.mjs +0 -0
- package/dist/esm/types/config/precompress.mjs +0 -0
- package/dist/esm-node/baseline.mjs +3 -45
- package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +185 -9
- package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.mjs +41 -5
- package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.mjs +1 -1
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.mjs +3 -1
- package/dist/esm-node/commands/index.mjs +2 -5
- package/dist/esm-node/commands/runtime.mjs +33 -3
- package/dist/esm-node/index.mjs +2 -2
- package/dist/esm-node/plugins/deploy/index.mjs +10 -4
- package/dist/esm-node/plugins/deploy/platforms/cloudflare.mjs +353 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.mjs +563 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +7 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +185 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +59 -0
- package/dist/esm-node/plugins/deploy/utils/index.mjs +12 -36
- package/dist/esm-node/presetUltramodern.mjs +77 -3
- package/dist/esm-node/rsbuild.mjs +4 -8
- package/dist/esm-node/types/config/cloudflareDeploy.mjs +1 -0
- package/dist/esm-node/types/config/precompress.mjs +1 -0
- package/dist/types/baseline.d.ts +16 -46
- package/dist/types/builder/builder-rspack/index.d.ts +1 -1
- package/dist/types/builder/generator/index.d.ts +1 -1
- package/dist/types/builder/shared/createCopyInfo.d.ts +1 -1
- package/dist/types/commands/index.d.ts +1 -1
- package/dist/types/commands/inspect.d.ts +1 -1
- package/dist/types/commands/runtime.d.ts +1 -0
- package/dist/types/locale/en.d.ts +1 -1
- package/dist/types/locale/index.d.ts +89 -2
- package/dist/types/locale/zh.d.ts +1 -1
- package/dist/types/plugins/analyze/getFileSystemEntry.d.ts +2 -2
- package/dist/types/plugins/analyze/utils.d.ts +1 -1
- package/dist/types/plugins/deploy/index.d.ts +4 -1
- package/dist/types/plugins/deploy/platforms/cloudflare.d.ts +2 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.d.mts +4 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.d.mts +5 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.d.mts +48 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-path.d.mts +21 -0
- package/dist/types/plugins/deploy/utils/generator.d.ts +2 -2
- package/dist/types/plugins/deploy/utils/index.d.ts +1 -1
- package/dist/types/presetUltramodern.d.ts +52 -2
- package/dist/types/rsbuild.d.ts +1 -1
- package/dist/types/run/index.d.ts +1 -1
- package/dist/types/types/config/cloudflareDeploy.d.ts +79 -0
- package/dist/types/types/config/deploy.d.ts +16 -14
- package/dist/types/types/config/output.d.ts +4 -20
- package/dist/types/types/config/precompress.d.ts +20 -0
- package/dist/types/utils/getConfigFile.d.ts +1 -1
- package/dist/types/utils/loadPlugins.d.ts +2 -2
- package/package.json +21 -22
- package/dist/esm/rslib-runtime.mjs +0 -18
- package/dist/esm-node/rslib-runtime.mjs +0 -19
package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import loadableComponent from '@loadable/component';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
const internals = loadableComponent?.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED || {};
|
|
4
|
+
const LoadableContext = internals.Context || React.createContext(null);
|
|
5
|
+
const getRequiredChunkKey = internals.getRequiredChunkKey || ((namespace)=>`${namespace}__LOADABLE_REQUIRED_CHUNKS__`);
|
|
6
|
+
const scriptExtensions = new Set([
|
|
7
|
+
'.js',
|
|
8
|
+
'.mjs'
|
|
9
|
+
]);
|
|
10
|
+
const styleExtensions = new Set([
|
|
11
|
+
'.css'
|
|
12
|
+
]);
|
|
13
|
+
function uniqByUrl(assets) {
|
|
14
|
+
const seen = new Set();
|
|
15
|
+
return assets.filter((asset)=>{
|
|
16
|
+
if (seen.has(asset.url)) return false;
|
|
17
|
+
seen.add(asset.url);
|
|
18
|
+
return true;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function extname(filePath) {
|
|
22
|
+
const basename = String(filePath).split('/').pop() || '';
|
|
23
|
+
const index = basename.lastIndexOf('.');
|
|
24
|
+
return index > 0 ? basename.slice(index) : '';
|
|
25
|
+
}
|
|
26
|
+
function joinUrl(publicPath, filename) {
|
|
27
|
+
const base = publicPath || '/';
|
|
28
|
+
return `${base.replace(/\/+$/u, '')}/${String(filename).replace(/^\/+/u, '')}`;
|
|
29
|
+
}
|
|
30
|
+
function extraPropsToString(extraProps = {}) {
|
|
31
|
+
return Object.entries(extraProps).filter(([, value])=>void 0 !== value && false !== value).map(([key, value])=>true === value ? ` ${key}` : ` ${key}="${value}"`).join('');
|
|
32
|
+
}
|
|
33
|
+
function assetScriptType(filename) {
|
|
34
|
+
const extension = extname(filename);
|
|
35
|
+
if (scriptExtensions.has(extension)) return "script";
|
|
36
|
+
if (styleExtensions.has(extension)) return 'style';
|
|
37
|
+
}
|
|
38
|
+
function getAssetName(asset) {
|
|
39
|
+
return 'object' == typeof asset && asset?.name ? asset.name : asset;
|
|
40
|
+
}
|
|
41
|
+
function getAssetIntegrity(asset) {
|
|
42
|
+
return 'object' == typeof asset && asset?.integrity ? asset.integrity : null;
|
|
43
|
+
}
|
|
44
|
+
function getChunkGroupAssets(chunkGroup) {
|
|
45
|
+
const assets = chunkGroup?.assets;
|
|
46
|
+
if (Array.isArray(assets)) return assets;
|
|
47
|
+
if (assets && 'object' == typeof assets) return [
|
|
48
|
+
...assets.js || [],
|
|
49
|
+
...assets.css || []
|
|
50
|
+
];
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
function getChunkGroupChildAssets(chunkGroup, type) {
|
|
54
|
+
const childAssets = chunkGroup?.childAssets?.[type];
|
|
55
|
+
return Array.isArray(childAssets) ? childAssets : [];
|
|
56
|
+
}
|
|
57
|
+
function chunkIncludesJs(chunkInfo) {
|
|
58
|
+
return (chunkInfo?.files || []).some((file)=>scriptExtensions.has(extname(file)));
|
|
59
|
+
}
|
|
60
|
+
export function ChunkExtractorManager({ extractor, children }) {
|
|
61
|
+
return React.createElement(LoadableContext.Provider, {
|
|
62
|
+
value: extractor
|
|
63
|
+
}, children);
|
|
64
|
+
}
|
|
65
|
+
export class ChunkExtractor {
|
|
66
|
+
constructor({ stats, entrypoints = [
|
|
67
|
+
'main'
|
|
68
|
+
], namespace = '', outputPath = '/', publicPath } = {}){
|
|
69
|
+
this.namespace = namespace;
|
|
70
|
+
this.stats = stats || {};
|
|
71
|
+
this.publicPath = publicPath || this.stats.publicPath || '/';
|
|
72
|
+
this.outputPath = outputPath || this.stats.outputPath || '/';
|
|
73
|
+
this.entrypoints = Array.isArray(entrypoints) ? entrypoints : [
|
|
74
|
+
entrypoints
|
|
75
|
+
];
|
|
76
|
+
this.chunks = [];
|
|
77
|
+
}
|
|
78
|
+
addChunk(chunk) {
|
|
79
|
+
if (!this.chunks.includes(chunk)) this.chunks.push(chunk);
|
|
80
|
+
}
|
|
81
|
+
collectChunks(app) {
|
|
82
|
+
return React.createElement(ChunkExtractorManager, {
|
|
83
|
+
extractor: this
|
|
84
|
+
}, app);
|
|
85
|
+
}
|
|
86
|
+
getChunkGroup(chunk) {
|
|
87
|
+
return this.stats.namedChunkGroups?.[chunk] || {
|
|
88
|
+
assets: [],
|
|
89
|
+
childAssets: {},
|
|
90
|
+
chunks: []
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
getChunkInfo(chunkId) {
|
|
94
|
+
return (this.stats.chunks || []).find((chunk)=>chunk.id === chunkId);
|
|
95
|
+
}
|
|
96
|
+
resolvePublicUrl(filename) {
|
|
97
|
+
return joinUrl(this.publicPath, filename);
|
|
98
|
+
}
|
|
99
|
+
createChunkAsset({ filename, chunk, type, linkType }) {
|
|
100
|
+
const resolvedFilename = getAssetName(filename);
|
|
101
|
+
const scriptType = assetScriptType(resolvedFilename);
|
|
102
|
+
if (!scriptType) return;
|
|
103
|
+
return {
|
|
104
|
+
filename: resolvedFilename,
|
|
105
|
+
integrity: getAssetIntegrity(filename),
|
|
106
|
+
scriptType,
|
|
107
|
+
chunk,
|
|
108
|
+
url: this.resolvePublicUrl(resolvedFilename),
|
|
109
|
+
path: String(resolvedFilename).replace(/^\/+/u, ''),
|
|
110
|
+
type,
|
|
111
|
+
linkType
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
getChunkAssets(chunks) {
|
|
115
|
+
const one = (chunk)=>getChunkGroupAssets(this.getChunkGroup(chunk)).map((filename)=>this.createChunkAsset({
|
|
116
|
+
filename,
|
|
117
|
+
chunk,
|
|
118
|
+
type: 'mainAsset',
|
|
119
|
+
linkType: 'preload'
|
|
120
|
+
})).filter(Boolean);
|
|
121
|
+
return Array.isArray(chunks) ? uniqByUrl(chunks.flatMap(one)) : one(chunks);
|
|
122
|
+
}
|
|
123
|
+
getChunkChildAssets(chunks, type) {
|
|
124
|
+
const one = (chunk)=>getChunkGroupChildAssets(this.getChunkGroup(chunk), type).map((filename)=>this.createChunkAsset({
|
|
125
|
+
filename,
|
|
126
|
+
chunk,
|
|
127
|
+
type: 'childAsset',
|
|
128
|
+
linkType: type
|
|
129
|
+
})).filter(Boolean);
|
|
130
|
+
return Array.isArray(chunks) ? uniqByUrl(chunks.flatMap(one)) : one(chunks);
|
|
131
|
+
}
|
|
132
|
+
getChunkDependencies(chunks) {
|
|
133
|
+
const one = (chunk)=>(this.getChunkGroup(chunk).chunks || []).filter((chunkId)=>chunkIncludesJs(this.getChunkInfo(chunkId)));
|
|
134
|
+
return Array.isArray(chunks) ? [
|
|
135
|
+
...new Set(chunks.flatMap(one))
|
|
136
|
+
] : one(chunks);
|
|
137
|
+
}
|
|
138
|
+
getRequiredChunksScriptContent() {
|
|
139
|
+
return JSON.stringify(this.getChunkDependencies(this.chunks));
|
|
140
|
+
}
|
|
141
|
+
getRequiredChunksNamesScriptContent() {
|
|
142
|
+
return JSON.stringify({
|
|
143
|
+
namedChunks: this.chunks
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
getRequiredChunksScriptTag(extraProps = {}) {
|
|
147
|
+
const id = getRequiredChunkKey(this.namespace);
|
|
148
|
+
const props = `type="application/json"${extraPropsToString(extraProps)}`;
|
|
149
|
+
return [
|
|
150
|
+
`<script id="${id}" ${props}>${this.getRequiredChunksScriptContent()}</script>`,
|
|
151
|
+
`<script id="${id}_ext" ${props}>${this.getRequiredChunksNamesScriptContent()}</script>`
|
|
152
|
+
].join('');
|
|
153
|
+
}
|
|
154
|
+
getMainAssets(scriptType) {
|
|
155
|
+
const assets = this.getChunkAssets([
|
|
156
|
+
...this.entrypoints,
|
|
157
|
+
...this.chunks
|
|
158
|
+
]);
|
|
159
|
+
return scriptType ? assets.filter((asset)=>asset.scriptType === scriptType) : assets;
|
|
160
|
+
}
|
|
161
|
+
getScriptTags(extraProps = {}) {
|
|
162
|
+
const scripts = this.getMainAssets("script").map((asset)=>`<script async data-chunk="${asset.chunk}" src="${asset.url}"${extraPropsToString(extraProps)}></script>`);
|
|
163
|
+
return [
|
|
164
|
+
this.getRequiredChunksScriptTag(extraProps),
|
|
165
|
+
...scripts
|
|
166
|
+
].join('');
|
|
167
|
+
}
|
|
168
|
+
getStyleTags(extraProps = {}) {
|
|
169
|
+
return this.getMainAssets('style').map((asset)=>`<link data-chunk="${asset.chunk}" rel="stylesheet" href="${asset.url}"${extraPropsToString(extraProps)}>`).join('');
|
|
170
|
+
}
|
|
171
|
+
getLinkTags(extraProps = {}) {
|
|
172
|
+
const assets = [
|
|
173
|
+
...this.getMainAssets(),
|
|
174
|
+
...this.getChunkChildAssets([
|
|
175
|
+
...this.entrypoints,
|
|
176
|
+
...this.chunks
|
|
177
|
+
], 'preload'),
|
|
178
|
+
...this.getChunkChildAssets([
|
|
179
|
+
...this.entrypoints,
|
|
180
|
+
...this.chunks
|
|
181
|
+
], 'prefetch')
|
|
182
|
+
];
|
|
183
|
+
return uniqByUrl(assets).map((asset)=>`<link data-chunk="${asset.chunk}" rel="${asset.linkType}" as="${asset.scriptType}" href="${asset.url}"${extraPropsToString(extraProps)}>`).join('');
|
|
184
|
+
}
|
|
185
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const trimSlashes = (value)=>String(value).replace(/^\/+|\/+$/gu, '');
|
|
2
|
+
const normalizeSeparators = (value)=>String(value).replace(/\\+/gu, '/');
|
|
3
|
+
export const sep = '/';
|
|
4
|
+
export const delimiter = ':';
|
|
5
|
+
export function isAbsolute(filePath) {
|
|
6
|
+
return normalizeSeparators(filePath).startsWith('/');
|
|
7
|
+
}
|
|
8
|
+
export function normalize(filePath) {
|
|
9
|
+
const normalized = normalizeSeparators(filePath);
|
|
10
|
+
const absolute = isAbsolute(normalized);
|
|
11
|
+
const parts = [];
|
|
12
|
+
for (const part of normalized.split('/'))if (part && '.' !== part) {
|
|
13
|
+
if ('..' === part) {
|
|
14
|
+
if (parts.length > 0 && '..' !== parts[parts.length - 1]) parts.pop();
|
|
15
|
+
else if (!absolute) parts.push(part);
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
parts.push(part);
|
|
19
|
+
}
|
|
20
|
+
const joined = parts.join('/');
|
|
21
|
+
if (absolute) return joined ? `/${joined}` : '/';
|
|
22
|
+
return joined || '.';
|
|
23
|
+
}
|
|
24
|
+
export function join(...segments) {
|
|
25
|
+
const joined = segments.map(normalizeSeparators).filter(Boolean).map((segment, index)=>0 === index ? segment : trimSlashes(segment)).filter(Boolean).join('/');
|
|
26
|
+
return joined ? normalize(joined) : '.';
|
|
27
|
+
}
|
|
28
|
+
export function resolve(...segments) {
|
|
29
|
+
const joined = join(...segments);
|
|
30
|
+
return joined.startsWith('/') ? joined : `/${joined}`;
|
|
31
|
+
}
|
|
32
|
+
export function dirname(filePath) {
|
|
33
|
+
const normalized = normalizeSeparators(filePath).replace(/\/+$/u, '');
|
|
34
|
+
const index = normalized.lastIndexOf('/');
|
|
35
|
+
if (index <= 0) return '/';
|
|
36
|
+
return normalized.slice(0, index);
|
|
37
|
+
}
|
|
38
|
+
export function basename(filePath, suffix = '') {
|
|
39
|
+
const normalized = normalizeSeparators(filePath).replace(/\/+$/u, '');
|
|
40
|
+
const base = normalized.slice(normalized.lastIndexOf('/') + 1);
|
|
41
|
+
return suffix && base.endsWith(suffix) ? base.slice(0, -suffix.length) : base;
|
|
42
|
+
}
|
|
43
|
+
export function extname(filePath) {
|
|
44
|
+
const base = basename(filePath);
|
|
45
|
+
const index = base.lastIndexOf('.');
|
|
46
|
+
if (index <= 0) return '';
|
|
47
|
+
return base.slice(index);
|
|
48
|
+
}
|
|
49
|
+
export default {
|
|
50
|
+
basename,
|
|
51
|
+
delimiter,
|
|
52
|
+
dirname,
|
|
53
|
+
extname,
|
|
54
|
+
isAbsolute,
|
|
55
|
+
join,
|
|
56
|
+
normalize,
|
|
57
|
+
resolve,
|
|
58
|
+
sep
|
|
59
|
+
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import "node:module";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
|
-
import {
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
4
|
+
import { ROUTE_SPEC_FILE, SERVER_DIR, dynamicImport, fs, getMeta } from "@modern-js/utils";
|
|
4
5
|
import path from "path";
|
|
5
6
|
import { fileURLToPath as __rspack_fileURLToPath } from "node:url";
|
|
6
7
|
import { dirname as __rspack_dirname } from "node:path";
|
|
7
8
|
var utils_dirname = __rspack_dirname(__rspack_fileURLToPath(import.meta.url));
|
|
9
|
+
var utils_filename = __rspack_fileURLToPath(import.meta.url);
|
|
8
10
|
const normalizePath = (filePath)=>filePath.replace(/\\/g, '/');
|
|
9
11
|
const getProjectUsage = (appDirectory, distDirectory, metaName)=>{
|
|
10
12
|
const routeJSON = path.join(distDirectory, ROUTE_SPEC_FILE);
|
|
@@ -29,43 +31,17 @@ const getProjectUsage = (appDirectory, distDirectory, metaName)=>{
|
|
|
29
31
|
};
|
|
30
32
|
const getTemplatePath = (file)=>path.join(utils_dirname, '../platforms/templates', file);
|
|
31
33
|
const readTemplate = async (file)=>(await fs.readFile(getTemplatePath(file))).toString();
|
|
32
|
-
const localRequire = createRequire(path.join(utils_dirname, 'package.json'));
|
|
33
|
-
const findNearestPackageJson = (resolvedEntry)=>{
|
|
34
|
-
let currentDir = path.dirname(resolvedEntry);
|
|
35
|
-
while(currentDir !== path.dirname(currentDir)){
|
|
36
|
-
const manifestPath = path.join(currentDir, 'package.json');
|
|
37
|
-
if (fs.existsSync(manifestPath)) return manifestPath;
|
|
38
|
-
currentDir = path.dirname(currentDir);
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
const splitPackageSpecifier = (entry)=>{
|
|
42
|
-
const segments = entry.split('/');
|
|
43
|
-
if (entry.startsWith('@')) {
|
|
44
|
-
const [scope, name, ...rest] = segments;
|
|
45
|
-
return {
|
|
46
|
-
packageName: `${scope}/${name}`,
|
|
47
|
-
exportKey: rest.length > 0 ? `./${rest.join('/')}` : '.'
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
const [name, ...rest] = segments;
|
|
51
|
-
return {
|
|
52
|
-
packageName: name,
|
|
53
|
-
exportKey: rest.length > 0 ? `./${rest.join('/')}` : '.'
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
34
|
const resolveESMDependency = async (entry)=>{
|
|
35
|
+
const conditions = new Set([
|
|
36
|
+
'node',
|
|
37
|
+
'import',
|
|
38
|
+
'module',
|
|
39
|
+
'default'
|
|
40
|
+
]);
|
|
57
41
|
try {
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
if (!packageJsonPath) return normalizePath(resolvedEntry);
|
|
62
|
-
const packageDir = path.dirname(packageJsonPath);
|
|
63
|
-
const packageJson = fs.readJSONSync(packageJsonPath);
|
|
64
|
-
const exportConfig = packageJson.exports?.[exportKey];
|
|
65
|
-
if ('string' == typeof exportConfig) return normalizePath(path.join(packageDir, exportConfig));
|
|
66
|
-
const esmExportPath = exportConfig?.node?.import || exportConfig?.import || exportConfig?.default;
|
|
67
|
-
if ('string' == typeof esmExportPath) return normalizePath(path.join(packageDir, esmExportPath));
|
|
68
|
-
return normalizePath(resolvedEntry);
|
|
42
|
+
const resolverPath = pathToFileURL(createRequire(utils_filename).resolve('import-meta-resolve')).href;
|
|
43
|
+
const { moduleResolve } = await dynamicImport(resolverPath);
|
|
44
|
+
return normalizePath(moduleResolve(entry, pathToFileURL(`${utils_dirname}/`), conditions, false).pathname.replace(/^\/(\w):/, '$1:'));
|
|
69
45
|
} catch (err) {}
|
|
70
46
|
};
|
|
71
47
|
export { getProjectUsage, getTemplatePath, normalizePath, readTemplate, resolveESMDependency };
|
|
@@ -1,5 +1,79 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
import node_path from "node:path";
|
|
4
|
+
import { mergeConfig } from "@modern-js/plugin/cli";
|
|
5
|
+
const DEFAULT_OTLP_ENDPOINT = 'http://127.0.0.1:4318/v1/logs';
|
|
6
|
+
const DEFAULT_VICTORIA_METRICS_ENDPOINT = 'http://127.0.0.1:8428/api/v1/import/prometheus';
|
|
7
|
+
const resolveReactRouterPackageDir = (appDirectory)=>{
|
|
8
|
+
const localRequire = createRequire(node_path.join(appDirectory, 'package.json'));
|
|
9
|
+
try {
|
|
10
|
+
const reactRouterDomPackageJson = localRequire.resolve('react-router-dom/package.json', {
|
|
11
|
+
paths: [
|
|
12
|
+
appDirectory
|
|
13
|
+
]
|
|
14
|
+
});
|
|
15
|
+
const reactRouterPackageJson = localRequire.resolve('react-router/package.json', {
|
|
16
|
+
paths: [
|
|
17
|
+
node_path.dirname(reactRouterDomPackageJson)
|
|
18
|
+
]
|
|
19
|
+
});
|
|
20
|
+
return node_path.dirname(reactRouterPackageJson);
|
|
21
|
+
} catch {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const setReactRouterBridgeSafeAliases = (chain, { isProd })=>{
|
|
26
|
+
const chainContext = chain.get('context');
|
|
27
|
+
const appDirectory = 'string' == typeof chainContext && chainContext.length > 0 ? chainContext : process.cwd();
|
|
28
|
+
const reactRouterPackageDir = resolveReactRouterPackageDir(appDirectory);
|
|
29
|
+
if (!reactRouterPackageDir) return;
|
|
30
|
+
const productionEntry = node_path.join(reactRouterPackageDir, 'dist/production/index.mjs');
|
|
31
|
+
const developmentEntry = node_path.join(reactRouterPackageDir, 'dist/development/index.mjs');
|
|
32
|
+
chain.resolve.alias.set('react-router$', isProd ? productionEntry : developmentEntry);
|
|
33
|
+
chain.resolve.alias.set('react-router/dist/production/index.js', productionEntry);
|
|
34
|
+
chain.resolve.alias.set('react-router/dist/development/index.js', developmentEntry);
|
|
35
|
+
};
|
|
36
|
+
const createPresetUltramodernConfig = (options = {})=>{
|
|
37
|
+
const { appId = 'app', enableBffRequestId = true, enableTelemetry = true, enableTelemetryExporters, otlpEndpoint = process.env.MODERN_TELEMETRY_OTLP_ENDPOINT, victoriaMetricsEndpoint = process.env.MODERN_TELEMETRY_VICTORIA_ENDPOINT, telemetryFailLoudStartup = true, enableModuleFederationSSR = true } = options;
|
|
38
|
+
const server = {};
|
|
39
|
+
if (enableTelemetry) {
|
|
40
|
+
server.telemetry = {
|
|
41
|
+
enabled: true,
|
|
42
|
+
failLoudStartup: telemetryFailLoudStartup
|
|
43
|
+
};
|
|
44
|
+
if (false !== enableTelemetryExporters) {
|
|
45
|
+
const exporters = {};
|
|
46
|
+
if (true === enableTelemetryExporters || otlpEndpoint) exporters.otlp = {
|
|
47
|
+
enabled: true,
|
|
48
|
+
endpoint: otlpEndpoint || DEFAULT_OTLP_ENDPOINT
|
|
49
|
+
};
|
|
50
|
+
if (true === enableTelemetryExporters || victoriaMetricsEndpoint) exporters.victoriaMetrics = {
|
|
51
|
+
enabled: true,
|
|
52
|
+
endpoint: victoriaMetricsEndpoint || DEFAULT_VICTORIA_METRICS_ENDPOINT
|
|
53
|
+
};
|
|
54
|
+
if (Object.keys(exporters).length > 0) server.telemetry.exporters = exporters;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (enableModuleFederationSSR) server.ssr = {
|
|
58
|
+
mode: 'stream',
|
|
59
|
+
moduleFederationAppSSR: true
|
|
60
|
+
};
|
|
61
|
+
const presetConfig = {
|
|
62
|
+
output: {
|
|
63
|
+
precompress: true
|
|
64
|
+
},
|
|
65
|
+
server,
|
|
66
|
+
tools: {
|
|
67
|
+
bundlerChain: setReactRouterBridgeSafeAliases
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
if (enableBffRequestId) presetConfig.bff = {
|
|
71
|
+
requestId: appId
|
|
72
|
+
};
|
|
73
|
+
return presetConfig;
|
|
74
|
+
};
|
|
75
|
+
const presetUltramodern = (config, options = {})=>mergeConfig([
|
|
76
|
+
createPresetUltramodernConfig(options),
|
|
77
|
+
config
|
|
78
|
+
]);
|
|
5
79
|
export { createPresetUltramodernConfig, presetUltramodern };
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import "node:module";
|
|
2
2
|
import { parseRspackConfig } from "@modern-js/builder";
|
|
3
|
+
import { createConfigOptions } from "@modern-js/plugin/cli";
|
|
4
|
+
import { INTERNAL_RUNTIME_PLUGINS } from "@modern-js/utils";
|
|
3
5
|
import { builderPluginAdapterBasic, builderPluginAdapterHooks } from "./builder/shared/builderPlugins/index.mjs";
|
|
4
6
|
import { DEFAULT_CONFIG_FILE } from "./constants.mjs";
|
|
5
7
|
import { getConfigFile } from "./utils/getConfigFile.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import * as __rspack_external__modern_js_plugin_cli_caa09fa2 from "@modern-js/plugin/cli";
|
|
8
|
-
__webpack_require__.add({
|
|
9
|
-
"@modern-js/plugin/cli?f956" (module) {
|
|
10
|
-
module.exports = __rspack_external__modern_js_plugin_cli_caa09fa2;
|
|
11
|
-
}
|
|
12
|
-
});
|
|
8
|
+
import { loadInternalPlugins } from "./utils/loadPlugins.mjs";
|
|
13
9
|
const MODERN_META_NAME = 'modern-js';
|
|
14
|
-
const { createConfigOptions: createConfigOptions } = __webpack_require__("@modern-js/plugin/cli?f956");
|
|
15
10
|
async function resolveModernRsbuildConfig(options) {
|
|
16
11
|
const { cwd = process.cwd(), metaName = MODERN_META_NAME } = options;
|
|
17
12
|
const configFile = options.configPath || getConfigFile(void 0, cwd);
|
|
@@ -20,6 +15,7 @@ async function resolveModernRsbuildConfig(options) {
|
|
|
20
15
|
command: options.command,
|
|
21
16
|
cwd,
|
|
22
17
|
configFile,
|
|
18
|
+
internalPlugins: await loadInternalPlugins(cwd, INTERNAL_RUNTIME_PLUGINS),
|
|
23
19
|
metaName,
|
|
24
20
|
modifyModernConfig: options.modifyModernConfig
|
|
25
21
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "node:module";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "node:module";
|
package/dist/types/baseline.d.ts
CHANGED
|
@@ -1,46 +1,16 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*/
|
|
18
|
-
enableTelemetry?: boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Enable telemetry exporters by default.
|
|
21
|
-
* @default true
|
|
22
|
-
*/
|
|
23
|
-
enableTelemetryExporters?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* OTLP exporter endpoint.
|
|
26
|
-
* @default process.env.MODERN_TELEMETRY_OTLP_ENDPOINT || 'http://127.0.0.1:4318/v1/logs'
|
|
27
|
-
*/
|
|
28
|
-
otlpEndpoint?: string;
|
|
29
|
-
/**
|
|
30
|
-
* VictoriaMetrics exporter endpoint.
|
|
31
|
-
* @default process.env.MODERN_TELEMETRY_VICTORIA_ENDPOINT || 'http://127.0.0.1:8428/api/v1/import/prometheus'
|
|
32
|
-
*/
|
|
33
|
-
victoriaMetricsEndpoint?: string;
|
|
34
|
-
/**
|
|
35
|
-
* Enable fail-loud startup probing for telemetry exporters.
|
|
36
|
-
* @default true
|
|
37
|
-
*/
|
|
38
|
-
telemetryFailLoudStartup?: boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Enable app-level Module Federation SSR handshake by default.
|
|
41
|
-
* @default true
|
|
42
|
-
*/
|
|
43
|
-
enableModuleFederationSSR?: boolean;
|
|
44
|
-
}
|
|
45
|
-
export declare const createAppBaselineConfig: (options?: AppBaselineOptions) => AppUserConfig;
|
|
46
|
-
export declare const withAppBaseline: (config: AppUserConfig, options?: AppBaselineOptions) => AppUserConfig;
|
|
1
|
+
import { type PresetUltramodernOptions } from './presetUltramodern';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use `PresetUltramodernOptions` from `@modern-js/app-tools`
|
|
4
|
+
* instead. This alias will be removed in a future release.
|
|
5
|
+
*/
|
|
6
|
+
export type AppBaselineOptions = PresetUltramodernOptions;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use `createPresetUltramodernConfig` from `@modern-js/app-tools`
|
|
9
|
+
* instead. This alias will be removed in a future release.
|
|
10
|
+
*/
|
|
11
|
+
export declare const createAppBaselineConfig: (options?: PresetUltramodernOptions) => import("./types").AppUserConfig;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use `presetUltramodern` from `@modern-js/app-tools` instead.
|
|
14
|
+
* This alias will be removed in a future release.
|
|
15
|
+
*/
|
|
16
|
+
export declare const withAppBaseline: (config: import("./types").AppUserConfig, options?: PresetUltramodernOptions) => import("./types").AppUserConfig;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { BuilderOptions } from '../shared';
|
|
2
|
-
export declare function createRspackBuilderForModern(options: BuilderOptions): Promise<
|
|
2
|
+
export declare function createRspackBuilderForModern(options: BuilderOptions): Promise<import("@rsbuild/core").RsbuildInstance>;
|
|
@@ -5,4 +5,4 @@ import type { BuilderOptions } from '../shared';
|
|
|
5
5
|
* @param bundlerType BundlerType
|
|
6
6
|
* @returns BuilderInstance
|
|
7
7
|
*/
|
|
8
|
-
export declare function generateBuilder(options: BuilderOptions, bundlerType: BundlerType): Promise<
|
|
8
|
+
export declare function generateBuilder(options: BuilderOptions, bundlerType: BundlerType): Promise<import("@rsbuild/core").RsbuildInstance>;
|
|
@@ -7,4 +7,4 @@ export declare const serverCommand: (program: Command, api: CLIPluginAPI<AppTool
|
|
|
7
7
|
export declare const deployCommand: (program: Command, api: CLIPluginAPI<AppTools>) => void;
|
|
8
8
|
export declare const inspectCommand: (program: Command, api: CLIPluginAPI<AppTools>) => void;
|
|
9
9
|
export declare const infoCommand: (program: Command, api: CLIPluginAPI<AppTools>) => void;
|
|
10
|
-
export
|
|
10
|
+
export { runtimeCommand } from './runtime';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { CLIPluginAPI } from '@modern-js/plugin';
|
|
2
2
|
import type { AppTools } from '../types';
|
|
3
3
|
import type { InspectOptions } from '../utils/types';
|
|
4
|
-
export declare const inspect: (api: CLIPluginAPI<AppTools>, options: InspectOptions) => Promise<
|
|
4
|
+
export declare const inspect: (api: CLIPluginAPI<AppTools>, options: InspectOptions) => Promise<import("@rsbuild/core").InspectConfigResult>;
|
|
@@ -7,5 +7,6 @@ export declare const resolveToken: ({ token, tokenEnv, }: {
|
|
|
7
7
|
token?: string;
|
|
8
8
|
tokenEnv?: string;
|
|
9
9
|
}) => string | undefined;
|
|
10
|
+
export declare const formatRuntimeOutput: (payload: unknown, jsonOnly?: boolean) => string;
|
|
10
11
|
export declare const createRuntimeFallbackSignalPayload: (options: RuntimeFallbackSignalOptions) => Record<string, unknown>;
|
|
11
12
|
export declare const runtimeCommand: (program: Command, _api: CLIPluginAPI<AppTools>) => Promise<void>;
|
|
@@ -1,3 +1,90 @@
|
|
|
1
|
-
|
|
2
|
-
declare const
|
|
1
|
+
import { I18n } from '@modern-js/i18n-utils';
|
|
2
|
+
declare const i18n: I18n;
|
|
3
|
+
declare const localeKeys: {
|
|
4
|
+
command: {
|
|
5
|
+
shared: {
|
|
6
|
+
analyze: string;
|
|
7
|
+
config: string;
|
|
8
|
+
skipBuild: string;
|
|
9
|
+
noNeedInstall: string;
|
|
10
|
+
};
|
|
11
|
+
dev: {
|
|
12
|
+
describe: string;
|
|
13
|
+
entry: string;
|
|
14
|
+
apiOnly: string;
|
|
15
|
+
webOnly: string;
|
|
16
|
+
selectEntry: string;
|
|
17
|
+
requireEntry: string;
|
|
18
|
+
};
|
|
19
|
+
build: {
|
|
20
|
+
describe: string;
|
|
21
|
+
watch: string;
|
|
22
|
+
};
|
|
23
|
+
serve: {
|
|
24
|
+
describe: string;
|
|
25
|
+
};
|
|
26
|
+
deploy: {
|
|
27
|
+
describe: string;
|
|
28
|
+
};
|
|
29
|
+
new: {
|
|
30
|
+
describe: string;
|
|
31
|
+
debug: string;
|
|
32
|
+
config: string;
|
|
33
|
+
distTag: string;
|
|
34
|
+
registry: string;
|
|
35
|
+
lang: string;
|
|
36
|
+
};
|
|
37
|
+
inspect: {
|
|
38
|
+
env: string;
|
|
39
|
+
output: string;
|
|
40
|
+
verbose: string;
|
|
41
|
+
};
|
|
42
|
+
info: {
|
|
43
|
+
describe: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
} | {
|
|
47
|
+
command: {
|
|
48
|
+
shared: {
|
|
49
|
+
analyze: string;
|
|
50
|
+
config: string;
|
|
51
|
+
skipBuild: string;
|
|
52
|
+
noNeedInstall: string;
|
|
53
|
+
};
|
|
54
|
+
dev: {
|
|
55
|
+
describe: string;
|
|
56
|
+
entry: string;
|
|
57
|
+
apiOnly: string;
|
|
58
|
+
webOnly: string;
|
|
59
|
+
selectEntry: string;
|
|
60
|
+
requireEntry: string;
|
|
61
|
+
};
|
|
62
|
+
build: {
|
|
63
|
+
describe: string;
|
|
64
|
+
watch: string;
|
|
65
|
+
};
|
|
66
|
+
serve: {
|
|
67
|
+
describe: string;
|
|
68
|
+
};
|
|
69
|
+
deploy: {
|
|
70
|
+
describe: string;
|
|
71
|
+
};
|
|
72
|
+
new: {
|
|
73
|
+
describe: string;
|
|
74
|
+
debug: string;
|
|
75
|
+
config: string;
|
|
76
|
+
distTag: string;
|
|
77
|
+
registry: string;
|
|
78
|
+
lang: string;
|
|
79
|
+
};
|
|
80
|
+
inspect: {
|
|
81
|
+
env: string;
|
|
82
|
+
output: string;
|
|
83
|
+
verbose: string;
|
|
84
|
+
};
|
|
85
|
+
info: {
|
|
86
|
+
describe: string;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
};
|
|
3
90
|
export { i18n, localeKeys };
|
|
@@ -2,6 +2,6 @@ import type { Entrypoint } from '@modern-js/types';
|
|
|
2
2
|
import type { AppNormalizedConfig } from '../../types';
|
|
3
3
|
import type { AppToolsContext, AppToolsHooks } from '../../types/plugin';
|
|
4
4
|
export type { Entrypoint };
|
|
5
|
-
export declare const hasEntry: (dir: string) =>
|
|
6
|
-
export declare const hasServerEntry: (dir: string) =>
|
|
5
|
+
export declare const hasEntry: (dir: string) => string | false;
|
|
6
|
+
export declare const hasServerEntry: (dir: string) => string | false;
|
|
7
7
|
export declare const getFileSystemEntry: (hooks: AppToolsHooks, appContext: AppToolsContext, config: AppNormalizedConfig) => Promise<Entrypoint[]>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const walkDirectory: (dir: string) => string[];
|
|
2
|
-
export declare const replaceWithAlias: (base: string, filePath: string, alias: string) =>
|
|
2
|
+
export declare const replaceWithAlias: (base: string, filePath: string, alias: string) => string;
|
|
3
3
|
export declare const parseModule: ({ source, filename, }: {
|
|
4
4
|
source: string;
|
|
5
5
|
filename: string;
|