zephyr-webpack-plugin 0.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/README.md +26 -0
- package/package.json +23 -0
- package/src/delegate-module/zephyr-delegate.d.ts +13 -0
- package/src/delegate-module/zephyr-delegate.js +121 -0
- package/src/delegate-module/zephyr-delegate.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.d.ts +12 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.js +31 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.d.ts +47 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.js +56 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.d.ts +22 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.js +31 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.d.ts +16 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.js +113 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.d.ts +27 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.js +123 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.d.ts +6 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.js +20 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.d.ts +9 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.js +36 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/validate-params.d.ts +34 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/validate-params.js +52 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/validate-params.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.d.ts +27 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.js +418 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.d.ts +4 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.js +19 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.d.ts +4 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.js +22 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.d.ts +34 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.js +3 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.d.ts +23 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.js +3 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.d.ts +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.js +23 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.d.ts +20 -0
- package/src/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.js +85 -0
- package/src/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.js.map +1 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +6 -0
- package/src/index.js.map +1 -0
- package/src/lib/actions/ze-enable-snapshot-on-edge.d.ts +3 -0
- package/src/lib/actions/ze-enable-snapshot-on-edge.js +41 -0
- package/src/lib/actions/ze-enable-snapshot-on-edge.js.map +1 -0
- package/src/lib/actions/ze-upload-assets.d.ts +3 -0
- package/src/lib/actions/ze-upload-assets.js +73 -0
- package/src/lib/actions/ze-upload-assets.js.map +1 -0
- package/src/lib/actions/ze-upload-build-stats.d.ts +1 -0
- package/src/lib/actions/ze-upload-build-stats.js +31 -0
- package/src/lib/actions/ze-upload-build-stats.js.map +1 -0
- package/src/lib/actions/ze-upload-snapshot.d.ts +3 -0
- package/src/lib/actions/ze-upload-snapshot.js +38 -0
- package/src/lib/actions/ze-upload-snapshot.js.map +1 -0
- package/src/lib/dependency-resolution/resolve-key-version-to-entry.d.ts +0 -0
- package/src/lib/dependency-resolution/resolve-key-version-to-entry.js +11 -0
- package/src/lib/dependency-resolution/resolve-key-version-to-entry.js.map +1 -0
- package/src/lib/payload-builders/ze-build-assets-map.d.ts +3 -0
- package/src/lib/payload-builders/ze-build-assets-map.js +53 -0
- package/src/lib/payload-builders/ze-build-assets-map.js.map +1 -0
- package/src/lib/payload-builders/ze-build-snapshot.d.ts +8 -0
- package/src/lib/payload-builders/ze-build-snapshot.js +38 -0
- package/src/lib/payload-builders/ze-build-snapshot.js.map +1 -0
- package/src/lib/upload/upload-envs.d.ts +5 -0
- package/src/lib/upload/upload-envs.js +24 -0
- package/src/lib/upload/upload-envs.js.map +1 -0
- package/src/lib/upload/upload-file.d.ts +6 -0
- package/src/lib/upload/upload-file.js +31 -0
- package/src/lib/upload/upload-file.js.map +1 -0
- package/src/lib/upload/upload-snapshot.d.ts +5 -0
- package/src/lib/upload/upload-snapshot.js +29 -0
- package/src/lib/upload/upload-snapshot.js.map +1 -0
- package/src/lib/utils/ze-http-request.d.ts +6 -0
- package/src/lib/utils/ze-http-request.js +31 -0
- package/src/lib/utils/ze-http-request.js.map +1 -0
- package/src/lib/utils/ze-log-event.d.ts +17 -0
- package/src/lib/utils/ze-log-event.js +48 -0
- package/src/lib/utils/ze-log-event.js.map +1 -0
- package/src/lib/utils/ze-util-find-app-name.d.ts +7 -0
- package/src/lib/utils/ze-util-find-app-name.js +35 -0
- package/src/lib/utils/ze-util-find-app-name.js.map +1 -0
- package/src/lib/utils/ze-util-get-git-info.d.ts +13 -0
- package/src/lib/utils/ze-util-get-git-info.js +53 -0
- package/src/lib/utils/ze-util-get-git-info.js.map +1 -0
- package/src/lib/with-zephyr.d.ts +3 -0
- package/src/lib/with-zephyr.js +90 -0
- package/src/lib/with-zephyr.js.map +1 -0
- package/src/lib/ze-setup-build-id.d.ts +4 -0
- package/src/lib/ze-setup-build-id.js +62 -0
- package/src/lib/ze-setup-build-id.js.map +1 -0
- package/src/lib/ze-setup-build-steps-logging.d.ts +5 -0
- package/src/lib/ze-setup-build-steps-logging.js +42 -0
- package/src/lib/ze-setup-build-steps-logging.js.map +1 -0
- package/src/lib/ze-setup-ze-deploy.d.ts +3 -0
- package/src/lib/ze-setup-ze-deploy.js +67 -0
- package/src/lib/ze-setup-ze-deploy.js.map +1 -0
- package/src/lib/ze-webpack-plugin.d.ts +33 -0
- package/src/lib/ze-webpack-plugin.js +73 -0
- package/src/lib/ze-webpack-plugin.js.map +1 -0
- package/src/types/ze-webpack-plugin-options.d.ts +32 -0
- package/src/types/ze-webpack-plugin-options.js +3 -0
- package/src/types/ze-webpack-plugin-options.js.map +1 -0
- package/src/types/zephyr-plugin-options.d.ts +7 -0
- package/src/types/zephyr-plugin-options.js +3 -0
- package/src/types/zephyr-plugin-options.js.map +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Zephyr: We made application federation easy
|
|
2
|
+
|
|
3
|
+
readme too be released
|
|
4
|
+
|
|
5
|
+
how to use?
|
|
6
|
+
|
|
7
|
+
with Nx, Webpack or Rspack
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
export default composePlugins(
|
|
11
|
+
withNx(),
|
|
12
|
+
withReact(),
|
|
13
|
+
withModuleFederation(mfConfig),
|
|
14
|
+
withZephyr(),
|
|
15
|
+
(config) => {
|
|
16
|
+
return config;
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
or
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
module.exports = withZephyr()(your_webpack_config);
|
|
25
|
+
|
|
26
|
+
```
|
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "zephyr-webpack-plugin",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"dependencies": {
|
|
6
|
+
"is-ci": "2.0.0",
|
|
7
|
+
"webpack": "5.91.0",
|
|
8
|
+
"tslib": "^2.3.0",
|
|
9
|
+
"@babel/parser": "7.23.6",
|
|
10
|
+
"@babel/types": "7.23.6",
|
|
11
|
+
"@babel/traverse": "7.23.7",
|
|
12
|
+
"@babel/generator": "7.23.6",
|
|
13
|
+
"@module-federation/automatic-vendor-federation": "1.2.1",
|
|
14
|
+
"nx": "18.2.0",
|
|
15
|
+
"zephyr-edge-contract": "0.0.1"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@types/is-ci": "3.0.4",
|
|
19
|
+
"@types/node-persist": "^3.1.8"
|
|
20
|
+
},
|
|
21
|
+
"main": "./src/index.js",
|
|
22
|
+
"type": "commonjs"
|
|
23
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface DelegateConfig {
|
|
2
|
+
org: string;
|
|
3
|
+
project: string;
|
|
4
|
+
application: string | undefined;
|
|
5
|
+
}
|
|
6
|
+
export declare function replace_remote_in_mf_config(mfPlugin: any, config: DelegateConfig): Promise<DelegateConfig>;
|
|
7
|
+
interface ResolvedDependency {
|
|
8
|
+
default_url: string;
|
|
9
|
+
application_uid: string;
|
|
10
|
+
remote_entry_url: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function replace_remote_with_delegate(deps: ResolvedDependency): string;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.replace_remote_with_delegate = exports.replace_remote_in_mf_config = void 0;
|
|
4
|
+
const zephyr_edge_contract_1 = require("zephyr-edge-contract");
|
|
5
|
+
// todo: in order to become federation impl agnostic, we should parse and provide
|
|
6
|
+
// already processed federation config instead of mfConfig
|
|
7
|
+
async function replace_remote_in_mf_config(
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
+
mfPlugin, config) {
|
|
10
|
+
if (!mfPlugin._options?.remotes)
|
|
11
|
+
return config;
|
|
12
|
+
// replace remotes with delegate function
|
|
13
|
+
const depsResolutionTask = Object.keys(mfPlugin._options?.remotes).map(async (key) => {
|
|
14
|
+
const [app_name, project_name, org_name] = key.split('.');
|
|
15
|
+
const application_uid = (0, zephyr_edge_contract_1.createFullAppName)({
|
|
16
|
+
org: org_name ?? config.org,
|
|
17
|
+
project: project_name ?? config.project,
|
|
18
|
+
name: app_name,
|
|
19
|
+
});
|
|
20
|
+
// if default url is url - set as default, if not use app remote_host as default
|
|
21
|
+
// if default url is not url - send it as a semver to deps resolution
|
|
22
|
+
const resolvedDependency = await resolve_remote_dependency({
|
|
23
|
+
name: application_uid,
|
|
24
|
+
version: mfPlugin._options?.remotes[key],
|
|
25
|
+
});
|
|
26
|
+
async function resolve_remote_dependency({ name, version, }) {
|
|
27
|
+
const dashboardURL = new URL(zephyr_edge_contract_1.v2_api_paths.dashboard_path, zephyr_edge_contract_1.ZEPHYR_API_ENDPOINT);
|
|
28
|
+
dashboardURL.searchParams.append('name', name);
|
|
29
|
+
dashboardURL.searchParams.append('version', version);
|
|
30
|
+
try {
|
|
31
|
+
const token = await (0, zephyr_edge_contract_1.getToken)();
|
|
32
|
+
const res = await fetch(dashboardURL, {
|
|
33
|
+
method: 'GET',
|
|
34
|
+
headers: {
|
|
35
|
+
'Content-Type': 'application/json',
|
|
36
|
+
Authorization: 'Bearer ' + token,
|
|
37
|
+
Accept: 'application/json',
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
if (!res.ok) {
|
|
41
|
+
throw new Error(res.statusText);
|
|
42
|
+
}
|
|
43
|
+
const response = (await res.json());
|
|
44
|
+
return response.value;
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
console.warn(`[zephyr] Could not resolve '${name}' with version '${version}'`);
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
default_url: version,
|
|
51
|
+
remote_entry_url: version,
|
|
52
|
+
application_uid: name,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (resolvedDependency) {
|
|
56
|
+
const _version = mfPlugin._options.remotes[key];
|
|
57
|
+
if (_version?.indexOf('@') !== -1) {
|
|
58
|
+
const [v_app] = _version.split('@');
|
|
59
|
+
resolvedDependency.remote_entry_url = [
|
|
60
|
+
v_app,
|
|
61
|
+
resolvedDependency.remote_entry_url,
|
|
62
|
+
].join('@');
|
|
63
|
+
}
|
|
64
|
+
mfPlugin._options.remotes[key] =
|
|
65
|
+
replace_remote_with_delegate(resolvedDependency);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
await Promise.all(depsResolutionTask);
|
|
69
|
+
return config;
|
|
70
|
+
}
|
|
71
|
+
exports.replace_remote_in_mf_config = replace_remote_in_mf_config;
|
|
72
|
+
function replace_remote_with_delegate(deps) {
|
|
73
|
+
// prepare delegate function string template
|
|
74
|
+
const fnReplace = delegate_module_template.toString();
|
|
75
|
+
const strStart = new RegExp(/^function[\W\S]+return new Promise/);
|
|
76
|
+
const strNewStart = `promise new Promise`;
|
|
77
|
+
const strEnd = new RegExp(/;[^)}]+}$/);
|
|
78
|
+
const promiseNewPromise = fnReplace
|
|
79
|
+
.replace(strStart, strNewStart)
|
|
80
|
+
.replace(strEnd, '');
|
|
81
|
+
const { application_uid, remote_entry_url, default_url } = deps;
|
|
82
|
+
return promiseNewPromise
|
|
83
|
+
.replace('__APPLICATION_UID__', application_uid)
|
|
84
|
+
.replace('__REMOTE_ENTRY_URL__', remote_entry_url)
|
|
85
|
+
.replace('__DEFAULT_URL__', default_url);
|
|
86
|
+
}
|
|
87
|
+
exports.replace_remote_with_delegate = replace_remote_with_delegate;
|
|
88
|
+
function delegate_module_template() {
|
|
89
|
+
return new Promise((resolve, reject) => {
|
|
90
|
+
const remote_entry_url = '__REMOTE_ENTRY_URL__';
|
|
91
|
+
const sessionEdgeURL = window.sessionStorage.getItem('__APPLICATION_UID__');
|
|
92
|
+
let edgeUrl = sessionEdgeURL ?? remote_entry_url;
|
|
93
|
+
let remote_name = '';
|
|
94
|
+
if (edgeUrl.indexOf('@') !== -1) {
|
|
95
|
+
[remote_name, edgeUrl] = edgeUrl.split('@');
|
|
96
|
+
}
|
|
97
|
+
const resolve_entry = [
|
|
98
|
+
fetch(edgeUrl, { method: 'HEAD' })
|
|
99
|
+
.then(() => edgeUrl)
|
|
100
|
+
.catch(() => false),
|
|
101
|
+
];
|
|
102
|
+
Promise.race(resolve_entry)
|
|
103
|
+
.then((remoteUrl) => {
|
|
104
|
+
if (typeof remoteUrl !== 'string')
|
|
105
|
+
return;
|
|
106
|
+
return new Function(`return import("${remoteUrl}")`)()
|
|
107
|
+
.then((mod) => {
|
|
108
|
+
const _win = window;
|
|
109
|
+
if (typeof _win[remote_name] !== 'undefined') {
|
|
110
|
+
return resolve(_win[remote_name]);
|
|
111
|
+
}
|
|
112
|
+
return resolve(mod);
|
|
113
|
+
})
|
|
114
|
+
.catch((err) => reject(err));
|
|
115
|
+
})
|
|
116
|
+
.catch((err) => {
|
|
117
|
+
console.error(`Zephyr: error loading remote entry ${remote_entry_url}`, err);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=zephyr-delegate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zephyr-delegate.js","sourceRoot":"","sources":["../../../../../packages/zephyr-webpack-plugin/src/delegate-module/zephyr-delegate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TopLevelPackage } from './validate-params';
|
|
2
|
+
import { LocalPackageJson } from './get-licenses';
|
|
3
|
+
export interface ConvertedDependencies {
|
|
4
|
+
dependencies?: LocalPackageJson[];
|
|
5
|
+
devDependencies?: LocalPackageJson[];
|
|
6
|
+
optionalDependencies?: LocalPackageJson[];
|
|
7
|
+
}
|
|
8
|
+
export type NpmModules = Map<string, Record<string, LocalPackageJson>>;
|
|
9
|
+
export declare function convertDependencies(params: {
|
|
10
|
+
package: TopLevelPackage;
|
|
11
|
+
npmModules: NpmModules;
|
|
12
|
+
}): ConvertedDependencies;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertDependencies = void 0;
|
|
4
|
+
function convertDependencies(params) {
|
|
5
|
+
return {
|
|
6
|
+
dependencies: convertDeps(params.npmModules, params.package.dependencies),
|
|
7
|
+
devDependencies: convertDeps(params.npmModules, params.package.devDependencies),
|
|
8
|
+
optionalDependencies: convertDeps(params.npmModules, params.package.optionalDependencies),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
exports.convertDependencies = convertDependencies;
|
|
12
|
+
function convertDeps(npmModules, deps) {
|
|
13
|
+
if (!deps)
|
|
14
|
+
return;
|
|
15
|
+
return Object.entries(deps).map(([version, name]) => {
|
|
16
|
+
const dataFromGraph = npmModules.get(name);
|
|
17
|
+
const versionVal = version.replace(`${name}-`, '');
|
|
18
|
+
if (dataFromGraph) {
|
|
19
|
+
const foundInGraph = Object.values(dataFromGraph).find((depData) => depData.version.startsWith(versionVal));
|
|
20
|
+
if (foundInGraph) {
|
|
21
|
+
const { name, version, license, size } = foundInGraph;
|
|
22
|
+
return { name, version, license, size };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
name,
|
|
27
|
+
version: versionVal,
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=convert-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-dependencies.js","sourceRoot":"","sources":["../../../../../../../packages/zephyr-webpack-plugin/src/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.ts"],"names":[],"mappings":";;;AAWA,SAAgB,mBAAmB,CAAC,MAGnC;IACC,OAAO;QACL,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;QACzE,eAAe,EAAE,WAAW,CAC1B,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,CAAC,eAAe,CAC/B;QACD,oBAAoB,EAAE,WAAW,CAC/B,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,CAAC,oBAAoB,CACpC;KACF,CAAC;AACJ,CAAC;AAfD,kDAeC;AAED,SAAS,WAAW,CAClB,UAAsB,EACtB,IAA6B;IAE7B,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;QAClD,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QAEnD,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACjE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CACvC,CAAC;YAEF,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC;gBACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,UAAU;SACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** eslint-disable */
|
|
2
|
+
import { TopLevelPackage } from './validate-params';
|
|
3
|
+
import { StatsModule, StatsChunk } from 'webpack';
|
|
4
|
+
import { LocalPackageJson } from './get-licenses';
|
|
5
|
+
export interface ConvertToGraphParams {
|
|
6
|
+
name?: string;
|
|
7
|
+
remotes?: unknown;
|
|
8
|
+
federationRemoteEntry: StatsChunk | undefined;
|
|
9
|
+
modules?: StatsModule[];
|
|
10
|
+
topLevelPackage: TopLevelPackage;
|
|
11
|
+
publicPath?: string;
|
|
12
|
+
metadata: {
|
|
13
|
+
remote?: string;
|
|
14
|
+
source?: {
|
|
15
|
+
url?: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
versionData?: never;
|
|
19
|
+
environment?: string;
|
|
20
|
+
version?: string;
|
|
21
|
+
posted?: Date;
|
|
22
|
+
group?: string;
|
|
23
|
+
functionRemotes: [file: string, applicationID: string, name: string][];
|
|
24
|
+
sha?: string;
|
|
25
|
+
buildHash?: string;
|
|
26
|
+
chunkDependencies: unknown;
|
|
27
|
+
}
|
|
28
|
+
export interface ConvertedGraph {
|
|
29
|
+
id?: string;
|
|
30
|
+
version?: string;
|
|
31
|
+
name?: string;
|
|
32
|
+
remote: unknown;
|
|
33
|
+
metadata: unknown;
|
|
34
|
+
versionData: unknown;
|
|
35
|
+
overrides: unknown[];
|
|
36
|
+
consumes: unknown[];
|
|
37
|
+
modules: unknown[];
|
|
38
|
+
environment: unknown;
|
|
39
|
+
posted: unknown;
|
|
40
|
+
group: unknown;
|
|
41
|
+
sha: unknown;
|
|
42
|
+
buildHash: unknown;
|
|
43
|
+
dependencies?: LocalPackageJson[];
|
|
44
|
+
devDependencies?: LocalPackageJson[];
|
|
45
|
+
optionalDependencies?: LocalPackageJson[];
|
|
46
|
+
}
|
|
47
|
+
export declare function convertToGraph(params: ConvertToGraphParams, standalone?: boolean): ConvertedGraph;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertToGraph = void 0;
|
|
4
|
+
const module_part_one_1 = require("./module-part-one");
|
|
5
|
+
const convert_dependencies_1 = require("./convert-dependencies");
|
|
6
|
+
const module_part_two_1 = require("./module-part-two");
|
|
7
|
+
const process_function_remotes_1 = require("./process-function-remotes");
|
|
8
|
+
function convertToGraph(params, standalone) {
|
|
9
|
+
const { name, federationRemoteEntry, modules, topLevelPackage, metadata, versionData, environment, version, posted, group, functionRemotes, sha, buildHash, } = params;
|
|
10
|
+
// validateParams(
|
|
11
|
+
// { federationRemoteEntry, modules, topLevelPackage /*, metadata*/ },
|
|
12
|
+
// standalone
|
|
13
|
+
// );
|
|
14
|
+
const { consumes, modulesObj, npmModules } = (0, module_part_one_1.modulePartOne)(modules);
|
|
15
|
+
const convertedDeps = (0, convert_dependencies_1.convertDependencies)({
|
|
16
|
+
package: topLevelPackage,
|
|
17
|
+
npmModules,
|
|
18
|
+
});
|
|
19
|
+
const { overrides } = (0, module_part_two_1.modulePartTwo)({
|
|
20
|
+
name,
|
|
21
|
+
modules,
|
|
22
|
+
modulesObj,
|
|
23
|
+
convertedDeps,
|
|
24
|
+
});
|
|
25
|
+
(0, process_function_remotes_1.processFunctionRemotes)({ functionRemotes, consumes });
|
|
26
|
+
const sourceUrl = metadata?.source?.url ?? '';
|
|
27
|
+
const remote = metadata?.remote ?? '';
|
|
28
|
+
return {
|
|
29
|
+
...convertedDeps,
|
|
30
|
+
id: name,
|
|
31
|
+
name,
|
|
32
|
+
remote,
|
|
33
|
+
metadata,
|
|
34
|
+
versionData,
|
|
35
|
+
overrides: Object.values(overrides),
|
|
36
|
+
consumes: consumes.map((con) => ({
|
|
37
|
+
...con,
|
|
38
|
+
usedIn: Array.from(con.usedIn.values()).map((file) => ({
|
|
39
|
+
file,
|
|
40
|
+
url: `${sourceUrl}/${file}`,
|
|
41
|
+
})),
|
|
42
|
+
})),
|
|
43
|
+
modules: Object.values(modulesObj).map((mod) => ({
|
|
44
|
+
...mod,
|
|
45
|
+
requires: Array.from(mod.requires.values()),
|
|
46
|
+
})),
|
|
47
|
+
environment,
|
|
48
|
+
version,
|
|
49
|
+
posted,
|
|
50
|
+
group,
|
|
51
|
+
sha,
|
|
52
|
+
buildHash,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
exports.convertToGraph = convertToGraph;
|
|
56
|
+
//# sourceMappingURL=convert-to-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-to-graph.js","sourceRoot":"","sources":["../../../../../../../packages/zephyr-webpack-plugin/src/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.ts"],"names":[],"mappings":";;;AAEA,uDAAkD;AAClD,iEAA6D;AAC7D,uDAAkD;AAClD,yEAAoE;AAmDpE,SAAgB,cAAc,CAC5B,MAA4B,EAC5B,UAAoB;IAEpB,MAAM,EACJ,IAAI,EACJ,qBAAqB,EACrB,OAAO,EACP,eAAe,EACf,QAAQ,EACR,WAAW,EACX,WAAW,EACX,OAAO,EACP,MAAM,EACN,KAAK,EACL,eAAe,EACf,GAAG,EACH,SAAS,GACV,GAAG,MAAM,CAAC;IAEX,kBAAkB;IAClB,wEAAwE;IACxE,eAAe;IACf,KAAK;IAEL,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAA,+BAAa,EAAC,OAAO,CAAC,CAAC;IAEpE,MAAM,aAAa,GAAG,IAAA,0CAAmB,EAAC;QACxC,OAAO,EAAE,eAAe;QACxB,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,+BAAa,EAAC;QAClC,IAAI;QACJ,OAAO;QACP,UAAU;QACV,aAAa;KACd,CAAC,CAAC;IAEH,IAAA,iDAAsB,EAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;IAEtC,OAAO;QACL,GAAG,aAAa;QAChB,EAAE,EAAE,IAAI;QACR,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,WAAW;QACX,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QACnC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,GAAG;YACN,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI;gBACJ,GAAG,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE;aAC5B,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/C,GAAG,GAAG;YACN,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC5C,CAAC,CAAC;QACH,WAAW;QACX,OAAO;QACP,MAAM;QACN,KAAK;QACL,GAAG;QACH,SAAS;KACV,CAAC;AACJ,CAAC;AAtED,wCAsEC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts and returns the license/licenses abbrevations
|
|
3
|
+
* from the respective fields.
|
|
4
|
+
* @param {Object} packageJson The package.json file content as object.
|
|
5
|
+
* @return {String}
|
|
6
|
+
*/
|
|
7
|
+
export interface LocalPackageJson {
|
|
8
|
+
name: string;
|
|
9
|
+
version: string;
|
|
10
|
+
homepage?: string;
|
|
11
|
+
size?: number;
|
|
12
|
+
license?: {
|
|
13
|
+
type: string;
|
|
14
|
+
} | string;
|
|
15
|
+
licenses?: Array<{
|
|
16
|
+
type: string;
|
|
17
|
+
}> | {
|
|
18
|
+
type: string;
|
|
19
|
+
} | string;
|
|
20
|
+
[key: string]: LocalPackageJson[keyof LocalPackageJson];
|
|
21
|
+
}
|
|
22
|
+
export declare function getLicenses(packageJson: LocalPackageJson): string | undefined;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Extracts and returns the license/licenses abbrevations
|
|
4
|
+
* from the respective fields.
|
|
5
|
+
* @param {Object} packageJson The package.json file content as object.
|
|
6
|
+
* @return {String}
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.getLicenses = void 0;
|
|
10
|
+
function getLicenses(packageJson) {
|
|
11
|
+
if (Array.isArray(packageJson.licenses)) {
|
|
12
|
+
return packageJson.licenses
|
|
13
|
+
.map((license) => license.type)
|
|
14
|
+
.join(', ');
|
|
15
|
+
}
|
|
16
|
+
if (typeof packageJson.licenses !== 'string' && packageJson.licenses?.type) {
|
|
17
|
+
return packageJson.licenses.type;
|
|
18
|
+
}
|
|
19
|
+
if (typeof packageJson.license !== 'string' && packageJson.license?.type) {
|
|
20
|
+
return packageJson.license.type;
|
|
21
|
+
}
|
|
22
|
+
if (typeof packageJson.licenses === 'string') {
|
|
23
|
+
return packageJson.licenses;
|
|
24
|
+
}
|
|
25
|
+
if (typeof packageJson.license === 'string') {
|
|
26
|
+
return packageJson.license;
|
|
27
|
+
}
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
exports.getLicenses = getLicenses;
|
|
31
|
+
//# sourceMappingURL=get-licenses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-licenses.js","sourceRoot":"","sources":["../../../../../../../packages/zephyr-webpack-plugin/src/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAaH,SAAgB,WAAW,CAAC,WAA6B;IACvD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO,WAAW,CAAC,QAAQ;aACxB,GAAG,CAAC,CAAC,OAAyB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,WAAW,CAAC,QAAQ,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3E,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACzE,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,WAAW,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,OAAO;AACT,CAAC;AAxBD,kCAwBC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { StatsModule } from 'webpack';
|
|
2
|
+
import { NpmModules } from './convert-dependencies';
|
|
3
|
+
import { ModuleObject } from './module-part-two';
|
|
4
|
+
export interface Consume {
|
|
5
|
+
consumingApplicationID: string;
|
|
6
|
+
applicationID: string | null;
|
|
7
|
+
name: string;
|
|
8
|
+
usedIn: Set<string>;
|
|
9
|
+
}
|
|
10
|
+
interface ModulePartOneReturn {
|
|
11
|
+
consumes: Consume[];
|
|
12
|
+
modulesObj: Record<string, ModuleObject>;
|
|
13
|
+
npmModules: NpmModules;
|
|
14
|
+
}
|
|
15
|
+
export declare function modulePartOne(modules: StatsModule[] | undefined): ModulePartOneReturn;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.modulePartOne = void 0;
|
|
4
|
+
const node_path_1 = require("node:path");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const get_licenses_1 = require("./get-licenses");
|
|
7
|
+
function isString(value) {
|
|
8
|
+
return typeof value === 'string';
|
|
9
|
+
}
|
|
10
|
+
function modulePartOne(modules) {
|
|
11
|
+
const consumes = [];
|
|
12
|
+
const consumesByName = {};
|
|
13
|
+
const modulesObj = {};
|
|
14
|
+
const npmModules = new Map();
|
|
15
|
+
modules?.forEach((mod) => {
|
|
16
|
+
const { identifier, reasons, moduleType, nameForCondition, size } = mod;
|
|
17
|
+
const data = identifier?.split(' ');
|
|
18
|
+
if (moduleType === 'remote-module') {
|
|
19
|
+
if (data?.length === 4 && isString(data[3]) && isString(data[2])) {
|
|
20
|
+
const name = data[3].replace('./', '');
|
|
21
|
+
let applicationID = data[2].replace('webpack/container/reference/', '');
|
|
22
|
+
if (applicationID.includes('?')) {
|
|
23
|
+
applicationID = new URLSearchParams(applicationID.split('?')[1]).get('remoteName');
|
|
24
|
+
}
|
|
25
|
+
const consume = {
|
|
26
|
+
consumingApplicationID: name,
|
|
27
|
+
applicationID,
|
|
28
|
+
name,
|
|
29
|
+
usedIn: new Set(),
|
|
30
|
+
};
|
|
31
|
+
consumes.push(consume);
|
|
32
|
+
if (nameForCondition) {
|
|
33
|
+
consumesByName[nameForCondition] = consume;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (reasons) {
|
|
37
|
+
reasons.forEach(({ userRequest, resolvedModule }) => {
|
|
38
|
+
if (!userRequest || !consumesByName[userRequest] || !resolvedModule)
|
|
39
|
+
return;
|
|
40
|
+
const module = resolvedModule.replace('./', '');
|
|
41
|
+
consumesByName[userRequest].usedIn.add(module);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else if (data &&
|
|
46
|
+
data[0] === 'container' &&
|
|
47
|
+
data[1] === 'entry' &&
|
|
48
|
+
data[3]) {
|
|
49
|
+
JSON.parse(data[3]).forEach(([prefixedName, file]) => {
|
|
50
|
+
const name = prefixedName.replace('./', '');
|
|
51
|
+
modulesObj[file.import[0]] = {
|
|
52
|
+
id: `${name}:${name}`,
|
|
53
|
+
name,
|
|
54
|
+
applicationID: name,
|
|
55
|
+
requires: [],
|
|
56
|
+
file: file.import[0],
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else if (nameForCondition && nameForCondition.includes('node_modules')) {
|
|
61
|
+
const contextArray = nameForCondition.split(node_path_1.sep);
|
|
62
|
+
const afterModule = nameForCondition.split('node_modules' + node_path_1.sep);
|
|
63
|
+
const search = afterModule[1] && afterModule[1].startsWith('@') ? 3 : 2;
|
|
64
|
+
contextArray.splice(contextArray.indexOf('node_modules') + search);
|
|
65
|
+
const context = contextArray.join(node_path_1.sep);
|
|
66
|
+
const packageJsonFile = (0, node_path_1.join)(context, 'package.json');
|
|
67
|
+
const packageJson = safe_read_package_json_sync(packageJsonFile);
|
|
68
|
+
if (packageJson) {
|
|
69
|
+
const existingPackage = npmModules.get(packageJson.name);
|
|
70
|
+
if (existingPackage) {
|
|
71
|
+
const existingReference = existingPackage[packageJson.version];
|
|
72
|
+
const data = {
|
|
73
|
+
name: packageJson.name,
|
|
74
|
+
version: packageJson.version,
|
|
75
|
+
homepage: packageJson.homepage,
|
|
76
|
+
license: (0, get_licenses_1.getLicenses)(packageJson),
|
|
77
|
+
size: (Number(existingReference.size) || 0) + (size ?? 0),
|
|
78
|
+
};
|
|
79
|
+
if (existingReference) {
|
|
80
|
+
Object.assign(existingReference, data);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
existingPackage[packageJson.version] = data;
|
|
84
|
+
}
|
|
85
|
+
npmModules.set(packageJson.name, existingPackage);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const newDep = {
|
|
89
|
+
[packageJson.version]: {
|
|
90
|
+
name: packageJson.name,
|
|
91
|
+
version: packageJson.version,
|
|
92
|
+
homepage: packageJson.homepage,
|
|
93
|
+
license: (0, get_licenses_1.getLicenses)(packageJson),
|
|
94
|
+
size,
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
npmModules.set(packageJson.name, newDep);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return { consumes, modulesObj, npmModules };
|
|
103
|
+
}
|
|
104
|
+
exports.modulePartOne = modulePartOne;
|
|
105
|
+
function safe_read_package_json_sync(file_path) {
|
|
106
|
+
try {
|
|
107
|
+
return JSON.parse((0, node_fs_1.readFileSync)(file_path, { encoding: 'utf-8' }));
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=module-part-one.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-part-one.js","sourceRoot":"","sources":["../../../../../../../packages/zephyr-webpack-plugin/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ConvertedDependencies } from './convert-dependencies';
|
|
2
|
+
import { StatsModule } from 'webpack';
|
|
3
|
+
export interface ModuleObject {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
applicationID: string;
|
|
7
|
+
requires: string[];
|
|
8
|
+
file: string;
|
|
9
|
+
}
|
|
10
|
+
interface ModulePartTwoParams {
|
|
11
|
+
readonly name: string | undefined;
|
|
12
|
+
readonly modules: StatsModule[] | undefined;
|
|
13
|
+
readonly modulesObj: Record<string, ModuleObject>;
|
|
14
|
+
readonly convertedDeps: ConvertedDependencies;
|
|
15
|
+
}
|
|
16
|
+
export interface Overrides {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
version: string;
|
|
20
|
+
location: string;
|
|
21
|
+
applicationID: string;
|
|
22
|
+
}
|
|
23
|
+
interface ModulePartTwoReturn {
|
|
24
|
+
overrides: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
export declare function modulePartTwo(params: ModulePartTwoParams): ModulePartTwoReturn;
|
|
27
|
+
export {};
|