zephyr-xpack-internal 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/LICENSE +39 -0
- package/README.md +26 -0
- package/dist/federation-dashboard-legacy/get-build-stats.d.ts +18 -0
- package/dist/federation-dashboard-legacy/get-build-stats.js +51 -0
- package/dist/federation-dashboard-legacy/get-build-stats.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.d.ts +12 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.js +31 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.d.ts +28 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.js +60 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.d.ts +2 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.js +25 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.d.ts +16 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.js +110 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.d.ts +27 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.js +123 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.d.ts +8 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.js +22 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.d.ts +9 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.js +35 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/validate-params.d.ts +34 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/validate-params.js +49 -0
- package/dist/federation-dashboard-legacy/utils/convert-to-graph/validate-params.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.d.ts +32 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.js +418 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.d.ts +4 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.js +19 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.d.ts +4 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.js +22 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.d.ts +31 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.js +3 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.d.ts +17 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.js +3 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.d.ts +1 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.js +23 -0
- package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.js.map +1 -0
- package/dist/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.d.ts +20 -0
- package/dist/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.js +84 -0
- package/dist/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle-events/index.d.ts +2 -0
- package/dist/lifecycle-events/index.js +20 -0
- package/dist/lifecycle-events/index.js.map +1 -0
- package/dist/package.json +24 -0
- package/dist/xpack-extract/build-webpack-assets-map.d.ts +4 -0
- package/dist/xpack-extract/build-webpack-assets-map.js +40 -0
- package/dist/xpack-extract/build-webpack-assets-map.js.map +1 -0
- package/dist/xpack-extract/create-mf-runtime-code.d.ts +2 -0
- package/dist/xpack-extract/create-mf-runtime-code.js +67 -0
- package/dist/xpack-extract/create-mf-runtime-code.js.map +1 -0
- package/dist/xpack-extract/extract-federated-dependency-pairs.d.ts +3 -0
- package/dist/xpack-extract/extract-federated-dependency-pairs.js +22 -0
- package/dist/xpack-extract/extract-federated-dependency-pairs.js.map +1 -0
- package/dist/xpack-extract/index.d.ts +6 -0
- package/dist/xpack-extract/index.js +16 -0
- package/dist/xpack-extract/index.js.map +1 -0
- package/dist/xpack-extract/is-module-federation-plugin.d.ts +5 -0
- package/dist/xpack-extract/is-module-federation-plugin.js +14 -0
- package/dist/xpack-extract/is-module-federation-plugin.js.map +1 -0
- package/dist/xpack-extract/iterate-federation-config.d.ts +2 -0
- package/dist/xpack-extract/iterate-federation-config.js +18 -0
- package/dist/xpack-extract/iterate-federation-config.js.map +1 -0
- package/dist/xpack-extract/make-copy-of-module-federation-options.d.ts +2 -0
- package/dist/xpack-extract/make-copy-of-module-federation-options.js +11 -0
- package/dist/xpack-extract/make-copy-of-module-federation-options.js.map +1 -0
- package/dist/xpack-extract/mut-webpack-federated-remotes-config.d.ts +3 -0
- package/dist/xpack-extract/mut-webpack-federated-remotes-config.js +36 -0
- package/dist/xpack-extract/mut-webpack-federated-remotes-config.js.map +1 -0
- package/dist/xpack.types.d.ts +99 -0
- package/dist/xpack.types.js +3 -0
- package/dist/xpack.types.js.map +1 -0
- package/package.json +24 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
...
|
|
13
|
+
|
|
14
|
+
END OF TERMS AND CONDITIONS
|
|
15
|
+
|
|
16
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
17
|
+
|
|
18
|
+
To apply the Apache License to your work, attach the following
|
|
19
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
20
|
+
replaced with your own identifying information. (Don't include
|
|
21
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
22
|
+
comment syntax for the file format. We also recommend that a
|
|
23
|
+
file or class name and description of purpose be included on the
|
|
24
|
+
same line as the copyright notice for each file. The "copyright"
|
|
25
|
+
word should be left as is (without quotes).
|
|
26
|
+
|
|
27
|
+
Copyright [2023] [Zephyr Cloud]
|
|
28
|
+
|
|
29
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
30
|
+
you may not use this file except in compliance with the License.
|
|
31
|
+
You may obtain a copy of the License at
|
|
32
|
+
|
|
33
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
34
|
+
|
|
35
|
+
Unless required by applicable law or agreed to in writing, software
|
|
36
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
37
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
38
|
+
See the License for the specific language governing permissions and
|
|
39
|
+
limitations under the License.
|
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
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ConvertedGraph } from 'zephyr-edge-contract';
|
|
2
|
+
import { ZephyrEngine } from 'zephyr-agent';
|
|
3
|
+
import { ModuleFederationPlugin, XStats, XStatsCompilation } from '../xpack.types';
|
|
4
|
+
interface KnownAgentProps {
|
|
5
|
+
stats: XStats;
|
|
6
|
+
stats_json: XStatsCompilation;
|
|
7
|
+
pluginOptions: {
|
|
8
|
+
zephyr_engine: ZephyrEngine;
|
|
9
|
+
mfConfig: ModuleFederationPlugin[] | ModuleFederationPlugin | undefined;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export declare function getBuildStats<ZephyrAgentProps extends KnownAgentProps>({ stats, stats_json, pluginOptions, EDGE_URL, DOMAIN, PLATFORM, TYPE, }: ZephyrAgentProps & {
|
|
13
|
+
EDGE_URL: string;
|
|
14
|
+
DOMAIN?: string;
|
|
15
|
+
PLATFORM?: string;
|
|
16
|
+
TYPE?: string;
|
|
17
|
+
}): Promise<ConvertedGraph>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBuildStats = void 0;
|
|
4
|
+
const FederationDashboardPlugin_1 = require("./utils/federation-dashboard-plugin/FederationDashboardPlugin");
|
|
5
|
+
const zephyr_agent_1 = require("zephyr-agent");
|
|
6
|
+
async function getBuildStats({ stats, stats_json, pluginOptions, EDGE_URL, DOMAIN, PLATFORM, TYPE, }) {
|
|
7
|
+
(0, zephyr_agent_1.ze_log)('get build stats started. create federation dashboard plugin');
|
|
8
|
+
const app = pluginOptions.zephyr_engine.applicationProperties;
|
|
9
|
+
const { git } = pluginOptions.zephyr_engine.gitProperties;
|
|
10
|
+
const { isCI } = pluginOptions.zephyr_engine.env;
|
|
11
|
+
const dashboardPlugin = new FederationDashboardPlugin_1.FederationDashboardPlugin({
|
|
12
|
+
app,
|
|
13
|
+
git,
|
|
14
|
+
context: {
|
|
15
|
+
isCI,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
(0, zephyr_agent_1.ze_log)('process webpack graph');
|
|
19
|
+
const convertedGraph = dashboardPlugin.processWebpackGraph({ stats, stats_json });
|
|
20
|
+
if (!convertedGraph) {
|
|
21
|
+
throw new zephyr_agent_1.ZephyrError(zephyr_agent_1.ZeErrors.ERR_CONVERT_GRAPH_TO_DASHBOARD);
|
|
22
|
+
}
|
|
23
|
+
const version = await pluginOptions.zephyr_engine.snapshotId;
|
|
24
|
+
const application_uid = pluginOptions.zephyr_engine.application_uid;
|
|
25
|
+
const buildId = await pluginOptions.zephyr_engine.build_id;
|
|
26
|
+
// todo: add support for multiple fedeation configs
|
|
27
|
+
const mfConfig = Array.isArray(pluginOptions.mfConfig)
|
|
28
|
+
? pluginOptions.mfConfig[0]
|
|
29
|
+
: pluginOptions.mfConfig;
|
|
30
|
+
const { name, filename, remotes } = (mfConfig || {});
|
|
31
|
+
const data_overrides = {
|
|
32
|
+
id: application_uid,
|
|
33
|
+
name: name,
|
|
34
|
+
edge: { url: EDGE_URL },
|
|
35
|
+
domain: DOMAIN,
|
|
36
|
+
platform: PLATFORM,
|
|
37
|
+
type: TYPE,
|
|
38
|
+
app: Object.assign({}, app, { buildId }),
|
|
39
|
+
version,
|
|
40
|
+
git,
|
|
41
|
+
remote: filename,
|
|
42
|
+
remotes: Object.keys(remotes || {}),
|
|
43
|
+
context: { isCI },
|
|
44
|
+
};
|
|
45
|
+
// todo: extend data
|
|
46
|
+
const res = Object.assign({}, convertedGraph, data_overrides);
|
|
47
|
+
(0, zephyr_agent_1.ze_log)('get build stats done.', res);
|
|
48
|
+
return res;
|
|
49
|
+
}
|
|
50
|
+
exports.getBuildStats = getBuildStats;
|
|
51
|
+
//# sourceMappingURL=get-build-stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-build-stats.js","sourceRoot":"","sources":["../../src/federation-dashboard-legacy/get-build-stats.ts"],"names":[],"mappings":";;;AACA,6GAA0G;AAC1G,+CAA2E;AAapE,KAAK,UAAU,aAAa,CAA2C,EAC5E,KAAK,EACL,UAAU,EACV,aAAa,EACb,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,IAAI,GAML;IACC,IAAA,qBAAM,EAAC,6DAA6D,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC,qBAAqB,CAAC;IAC9D,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC;IAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC;IACjD,MAAM,eAAe,GAAG,IAAI,qDAAyB,CAAC;QACpD,GAAG;QACH,GAAG;QACH,OAAO,EAAE;YACP,IAAI;SACL;KACF,CAAC,CAAC;IAEH,IAAA,qBAAM,EAAC,uBAAuB,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,eAAe,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAElF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,0BAAW,CAAC,uBAAQ,CAAC,8BAA8B,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC;IAC7D,MAAM,eAAe,GAAG,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC;IACpE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC;IAE3D,mDAAmD;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;QACpD,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC;IAE3B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAA2B,CAAC;IAE/E,MAAM,cAAc,GAAG;QACrB,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE;QACvB,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC;QACxC,OAAO;QACP,GAAG;QACH,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACnC,OAAO,EAAE,EAAE,IAAI,EAAE;KAClB,CAAC;IAEF,oBAAoB;IACpB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;IAC9D,IAAA,qBAAM,EAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC;AACb,CAAC;AA/DD,sCA+DC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TopLevelPackage } from './validate-params';
|
|
2
|
+
import { LocalPackageJson } from 'zephyr-edge-contract';
|
|
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":["../../../../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,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;QAC/E,oBAAoB,EAAE,WAAW,CAC/B,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,CAAC,oBAAoB,CACpC;KACF,CAAC;AACJ,CAAC;AAZD,kDAYC;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,28 @@
|
|
|
1
|
+
/** Eslint-disable */
|
|
2
|
+
import { TopLevelPackage } from './validate-params';
|
|
3
|
+
import { XStatsChunk, XStatsModule } from '../../../xpack.types';
|
|
4
|
+
import { ConvertedGraph } from 'zephyr-edge-contract';
|
|
5
|
+
export interface ConvertToGraphParams {
|
|
6
|
+
name?: string;
|
|
7
|
+
remotes?: unknown;
|
|
8
|
+
federationRemoteEntry: XStatsChunk | undefined;
|
|
9
|
+
modules?: XStatsModule[];
|
|
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 declare function convertToGraph(params: ConvertToGraphParams): ConvertedGraph;
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
|
9
|
+
// standalone?: boolean
|
|
10
|
+
) {
|
|
11
|
+
const { name,
|
|
12
|
+
// federationRemoteEntry,
|
|
13
|
+
modules, topLevelPackage, metadata, versionData, environment, version, posted, group, functionRemotes, sha, buildHash, } = params;
|
|
14
|
+
// validateParams(
|
|
15
|
+
// { federationRemoteEntry, modules, topLevelPackage /*, metadata*/ },
|
|
16
|
+
// standalone
|
|
17
|
+
// );
|
|
18
|
+
const { consumes, modulesObj, npmModules } = (0, module_part_one_1.modulePartOne)(modules);
|
|
19
|
+
const convertedDeps = (0, convert_dependencies_1.convertDependencies)({
|
|
20
|
+
package: topLevelPackage,
|
|
21
|
+
npmModules,
|
|
22
|
+
});
|
|
23
|
+
const { overrides } = (0, module_part_two_1.modulePartTwo)({
|
|
24
|
+
name,
|
|
25
|
+
modules,
|
|
26
|
+
modulesObj,
|
|
27
|
+
convertedDeps,
|
|
28
|
+
});
|
|
29
|
+
(0, process_function_remotes_1.processFunctionRemotes)({ functionRemotes, consumes });
|
|
30
|
+
const sourceUrl = metadata?.source?.url ?? '';
|
|
31
|
+
const remote = metadata?.remote ?? '';
|
|
32
|
+
return {
|
|
33
|
+
...convertedDeps,
|
|
34
|
+
id: name,
|
|
35
|
+
name,
|
|
36
|
+
remote,
|
|
37
|
+
metadata,
|
|
38
|
+
versionData,
|
|
39
|
+
overrides: Object.values(overrides),
|
|
40
|
+
consumes: consumes.map((con) => ({
|
|
41
|
+
...con,
|
|
42
|
+
usedIn: Array.from(con.usedIn.values()).map((file) => ({
|
|
43
|
+
file,
|
|
44
|
+
url: `${sourceUrl}/${file}`,
|
|
45
|
+
})),
|
|
46
|
+
})),
|
|
47
|
+
modules: Object.values(modulesObj).map((mod) => ({
|
|
48
|
+
...mod,
|
|
49
|
+
requires: Array.from(mod.requires.values()).filter((value) => typeof value === 'string'),
|
|
50
|
+
})),
|
|
51
|
+
environment,
|
|
52
|
+
version,
|
|
53
|
+
posted,
|
|
54
|
+
group,
|
|
55
|
+
sha,
|
|
56
|
+
buildHash,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
exports.convertToGraph = convertToGraph;
|
|
60
|
+
//# sourceMappingURL=convert-to-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-to-graph.js","sourceRoot":"","sources":["../../../../src/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.ts"],"names":[],"mappings":";;;AAEA,uDAAkD;AAClD,iEAA6D;AAC7D,uDAAkD;AAClD,yEAAoE;AAgCpE,SAAgB,cAAc,CAC5B,MAA4B;AAC5B,uBAAuB;;IAEvB,MAAM,EACJ,IAAI;IACJ,yBAAyB;IACzB,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,CAAC,MAAM,CAChD,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACrC;SACF,CAAC,CAAC;QACH,WAAW;QACX,OAAO;QACP,MAAM;QACN,KAAK;QACL,GAAG;QACH,SAAS;KACV,CAAC;AACJ,CAAC;AAxED,wCAwEC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLicenses = void 0;
|
|
4
|
+
function getLicenses(packageJson) {
|
|
5
|
+
if (Array.isArray(packageJson.licenses)) {
|
|
6
|
+
return packageJson.licenses
|
|
7
|
+
.map((license) => license.type)
|
|
8
|
+
.join(', ');
|
|
9
|
+
}
|
|
10
|
+
if (typeof packageJson.licenses !== 'string' && packageJson.licenses?.type) {
|
|
11
|
+
return packageJson.licenses.type;
|
|
12
|
+
}
|
|
13
|
+
if (typeof packageJson.license !== 'string' && packageJson.license?.type) {
|
|
14
|
+
return packageJson.license.type;
|
|
15
|
+
}
|
|
16
|
+
if (typeof packageJson.licenses === 'string') {
|
|
17
|
+
return packageJson.licenses;
|
|
18
|
+
}
|
|
19
|
+
if (typeof packageJson.license === 'string') {
|
|
20
|
+
return packageJson.license;
|
|
21
|
+
}
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
exports.getLicenses = getLicenses;
|
|
25
|
+
//# sourceMappingURL=get-licenses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-licenses.js","sourceRoot":"","sources":["../../../../src/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.ts"],"names":[],"mappings":";;;AAEA,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 { NpmModules } from './convert-dependencies';
|
|
2
|
+
import { ModuleObject } from './module-part-two';
|
|
3
|
+
import { XStatsModule } from '../../../xpack.types';
|
|
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: XStatsModule[] | undefined): ModulePartOneReturn;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
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 && data[0] === 'container' && data[1] === 'entry' && data[3]) {
|
|
46
|
+
JSON.parse(data[3]).forEach(([prefixedName, file]) => {
|
|
47
|
+
const name = prefixedName.replace('./', '');
|
|
48
|
+
modulesObj[file.import[0]] = {
|
|
49
|
+
id: `${name}:${name}`,
|
|
50
|
+
name,
|
|
51
|
+
applicationID: name,
|
|
52
|
+
requires: [],
|
|
53
|
+
file: file.import[0],
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
else if (nameForCondition && nameForCondition.includes('node_modules')) {
|
|
58
|
+
const contextArray = nameForCondition.split(node_path_1.sep);
|
|
59
|
+
const afterModule = nameForCondition.split('node_modules' + node_path_1.sep);
|
|
60
|
+
const search = afterModule[1] && afterModule[1].startsWith('@') ? 3 : 2;
|
|
61
|
+
contextArray.splice(contextArray.indexOf('node_modules') + search);
|
|
62
|
+
const context = contextArray.join(node_path_1.sep);
|
|
63
|
+
const packageJsonFile = (0, node_path_1.join)(context, 'package.json');
|
|
64
|
+
const packageJson = safe_read_package_json_sync(packageJsonFile);
|
|
65
|
+
if (packageJson) {
|
|
66
|
+
const existingPackage = npmModules.get(packageJson.name);
|
|
67
|
+
if (existingPackage) {
|
|
68
|
+
const existingReference = existingPackage[packageJson.version];
|
|
69
|
+
const data = {
|
|
70
|
+
name: packageJson.name,
|
|
71
|
+
version: packageJson.version,
|
|
72
|
+
homepage: packageJson.homepage,
|
|
73
|
+
license: (0, get_licenses_1.getLicenses)(packageJson),
|
|
74
|
+
size: (Number(existingReference.size) || 0) + (size ?? 0),
|
|
75
|
+
};
|
|
76
|
+
if (existingReference) {
|
|
77
|
+
Object.assign(existingReference, data);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
existingPackage[packageJson.version] = data;
|
|
81
|
+
}
|
|
82
|
+
npmModules.set(packageJson.name, existingPackage);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const newDep = {
|
|
86
|
+
[packageJson.version]: {
|
|
87
|
+
name: packageJson.name,
|
|
88
|
+
version: packageJson.version,
|
|
89
|
+
homepage: packageJson.homepage,
|
|
90
|
+
license: (0, get_licenses_1.getLicenses)(packageJson),
|
|
91
|
+
size,
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
npmModules.set(packageJson.name, newDep);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
return { consumes, modulesObj, npmModules };
|
|
100
|
+
}
|
|
101
|
+
exports.modulePartOne = modulePartOne;
|
|
102
|
+
function safe_read_package_json_sync(file_path) {
|
|
103
|
+
try {
|
|
104
|
+
return JSON.parse((0, node_fs_1.readFileSync)(file_path, { encoding: 'utf-8' }));
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=module-part-one.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-part-one.js","sourceRoot":"","sources":["../../../../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 { XStatsModule } from '../../../xpack.types';
|
|
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: XStatsModule[] | 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 {};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.modulePartTwo = void 0;
|
|
4
|
+
function modulePartTwo(params) {
|
|
5
|
+
const { name, modules, modulesObj, convertedDeps } = params;
|
|
6
|
+
const overrides = {};
|
|
7
|
+
modules?.forEach((mod) => {
|
|
8
|
+
const { identifier, issuerName, reasons, moduleType } = mod;
|
|
9
|
+
let data = identifier?.split(' ');
|
|
10
|
+
if (moduleType === 'provide-module' && data) {
|
|
11
|
+
if (issuerName) {
|
|
12
|
+
// This is a hack
|
|
13
|
+
const issuerNameMinusExtension = issuerName.replace('.js', '');
|
|
14
|
+
if (modulesObj[issuerNameMinusExtension] &&
|
|
15
|
+
modulesObj[issuerNameMinusExtension].requires.indexOf(data[2]) === -1) {
|
|
16
|
+
modulesObj[issuerNameMinusExtension].requires.push(data[2]);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (reasons) {
|
|
20
|
+
reasons.forEach(({ module }) => {
|
|
21
|
+
// filters out entrypoints
|
|
22
|
+
if (module) {
|
|
23
|
+
const moduleMinusExtension = module.replace('.js', '');
|
|
24
|
+
if (modulesObj[moduleMinusExtension] &&
|
|
25
|
+
data &&
|
|
26
|
+
modulesObj[moduleMinusExtension].requires.indexOf(data[2]) === -1) {
|
|
27
|
+
modulesObj[moduleMinusExtension].requires.push(data[2]);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
let name;
|
|
33
|
+
let version;
|
|
34
|
+
if (data[3].startsWith('@')) {
|
|
35
|
+
const splitInfo = data[3].split('@');
|
|
36
|
+
splitInfo[0] = '@';
|
|
37
|
+
name = splitInfo[0] + splitInfo[1];
|
|
38
|
+
version = splitInfo[2];
|
|
39
|
+
}
|
|
40
|
+
else if (data[3].includes('@')) {
|
|
41
|
+
[name, version] = data[3].split('@');
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
[
|
|
45
|
+
convertedDeps.dependencies,
|
|
46
|
+
convertedDeps.devDependencies,
|
|
47
|
+
convertedDeps.optionalDependencies,
|
|
48
|
+
].forEach((deps) => {
|
|
49
|
+
if (!deps)
|
|
50
|
+
return;
|
|
51
|
+
const dep = deps.find(({ name }) => data && name === data[2]);
|
|
52
|
+
if (!dep)
|
|
53
|
+
return;
|
|
54
|
+
version = dep.version;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (name && version) {
|
|
58
|
+
overrides[name] = {
|
|
59
|
+
id: name,
|
|
60
|
+
name,
|
|
61
|
+
version,
|
|
62
|
+
location: name,
|
|
63
|
+
applicationID: name,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (moduleType !== 'consume-shared-module') {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
data = identifier?.split('|');
|
|
71
|
+
if (issuerName && data) {
|
|
72
|
+
// This is a hack
|
|
73
|
+
const issuerNameMinusExtension = issuerName.replace('.js', '');
|
|
74
|
+
if (modulesObj[issuerNameMinusExtension] &&
|
|
75
|
+
modulesObj[issuerNameMinusExtension].requires.indexOf(data[2]) === -1) {
|
|
76
|
+
modulesObj[issuerNameMinusExtension].requires.push(data[2]);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (reasons) {
|
|
80
|
+
reasons.forEach(({ module }) => {
|
|
81
|
+
// filters out entrypoints
|
|
82
|
+
if (module) {
|
|
83
|
+
const moduleMinusExtension = module.replace('.js', '');
|
|
84
|
+
if (modulesObj[moduleMinusExtension] &&
|
|
85
|
+
data &&
|
|
86
|
+
modulesObj[moduleMinusExtension].requires.indexOf(data[2]) === -1) {
|
|
87
|
+
modulesObj[moduleMinusExtension].requires.push(data[2]);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
let version = '';
|
|
93
|
+
if (data && data[3] && data[3]?.startsWith('=')) {
|
|
94
|
+
version = data[3].replace('=', '');
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
[
|
|
98
|
+
convertedDeps.dependencies,
|
|
99
|
+
convertedDeps.devDependencies,
|
|
100
|
+
convertedDeps.optionalDependencies,
|
|
101
|
+
].forEach((deps) => {
|
|
102
|
+
if (!deps)
|
|
103
|
+
return;
|
|
104
|
+
const dep = deps.find(({ name }) => data && name === data[2]);
|
|
105
|
+
if (!dep)
|
|
106
|
+
return;
|
|
107
|
+
version = dep.version;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (data && name) {
|
|
111
|
+
overrides[data[2]] = {
|
|
112
|
+
id: data[2],
|
|
113
|
+
name: data[2],
|
|
114
|
+
version,
|
|
115
|
+
location: data[2],
|
|
116
|
+
applicationID: name,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
return { overrides };
|
|
121
|
+
}
|
|
122
|
+
exports.modulePartTwo = modulePartTwo;
|
|
123
|
+
//# sourceMappingURL=module-part-two.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-part-two.js","sourceRoot":"","sources":["../../../../src/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks that obj has a deeply nested property with value usage:
|
|
3
|
+
* `objHasKeys(federationRemoteEntry, ["origins", "0", "loc"])`
|
|
4
|
+
*
|
|
5
|
+
* @param obj
|
|
6
|
+
* @param pathArr
|
|
7
|
+
*/
|
|
8
|
+
export declare function objHasKeys<T extends Record<string, T[keyof T] | T>>(obj: T, pathArr: string[]): boolean;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.objHasKeys = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Checks that obj has a deeply nested property with value usage:
|
|
6
|
+
* `objHasKeys(federationRemoteEntry, ["origins", "0", "loc"])`
|
|
7
|
+
*
|
|
8
|
+
* @param obj
|
|
9
|
+
* @param pathArr
|
|
10
|
+
*/
|
|
11
|
+
function objHasKeys(obj, pathArr) {
|
|
12
|
+
let _obj = obj;
|
|
13
|
+
for (let i = 0; i < pathArr.length; i++) {
|
|
14
|
+
if (!_obj || !Object.prototype.hasOwnProperty.call(_obj, pathArr[i])) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
_obj = _obj[pathArr[i]];
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
exports.objHasKeys = objHasKeys;
|
|
22
|
+
//# sourceMappingURL=object-has-keys.js.map
|