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.
Files changed (85) hide show
  1. package/LICENSE +39 -0
  2. package/README.md +26 -0
  3. package/dist/federation-dashboard-legacy/get-build-stats.d.ts +18 -0
  4. package/dist/federation-dashboard-legacy/get-build-stats.js +51 -0
  5. package/dist/federation-dashboard-legacy/get-build-stats.js.map +1 -0
  6. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.d.ts +12 -0
  7. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.js +31 -0
  8. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.js.map +1 -0
  9. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.d.ts +28 -0
  10. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.js +60 -0
  11. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.js.map +1 -0
  12. package/dist/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.d.ts +2 -0
  13. package/dist/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.js +25 -0
  14. package/dist/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.js.map +1 -0
  15. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.d.ts +16 -0
  16. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.js +110 -0
  17. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.js.map +1 -0
  18. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.d.ts +27 -0
  19. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.js +123 -0
  20. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.js.map +1 -0
  21. package/dist/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.d.ts +8 -0
  22. package/dist/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.js +22 -0
  23. package/dist/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.js.map +1 -0
  24. package/dist/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.d.ts +9 -0
  25. package/dist/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.js +35 -0
  26. package/dist/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.js.map +1 -0
  27. package/dist/federation-dashboard-legacy/utils/convert-to-graph/validate-params.d.ts +34 -0
  28. package/dist/federation-dashboard-legacy/utils/convert-to-graph/validate-params.js +49 -0
  29. package/dist/federation-dashboard-legacy/utils/convert-to-graph/validate-params.js.map +1 -0
  30. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.d.ts +32 -0
  31. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.js +418 -0
  32. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.js.map +1 -0
  33. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.d.ts +4 -0
  34. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.js +19 -0
  35. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.js.map +1 -0
  36. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.d.ts +4 -0
  37. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.js +22 -0
  38. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.js.map +1 -0
  39. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.d.ts +31 -0
  40. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.js +3 -0
  41. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.js.map +1 -0
  42. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.d.ts +17 -0
  43. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.js +3 -0
  44. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.js.map +1 -0
  45. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.d.ts +1 -0
  46. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.js +23 -0
  47. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.js.map +1 -0
  48. package/dist/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.d.ts +20 -0
  49. package/dist/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.js +84 -0
  50. package/dist/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.js.map +1 -0
  51. package/dist/index.d.ts +6 -0
  52. package/dist/index.js +17 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/lifecycle-events/index.d.ts +2 -0
  55. package/dist/lifecycle-events/index.js +20 -0
  56. package/dist/lifecycle-events/index.js.map +1 -0
  57. package/dist/package.json +24 -0
  58. package/dist/xpack-extract/build-webpack-assets-map.d.ts +4 -0
  59. package/dist/xpack-extract/build-webpack-assets-map.js +40 -0
  60. package/dist/xpack-extract/build-webpack-assets-map.js.map +1 -0
  61. package/dist/xpack-extract/create-mf-runtime-code.d.ts +2 -0
  62. package/dist/xpack-extract/create-mf-runtime-code.js +67 -0
  63. package/dist/xpack-extract/create-mf-runtime-code.js.map +1 -0
  64. package/dist/xpack-extract/extract-federated-dependency-pairs.d.ts +3 -0
  65. package/dist/xpack-extract/extract-federated-dependency-pairs.js +22 -0
  66. package/dist/xpack-extract/extract-federated-dependency-pairs.js.map +1 -0
  67. package/dist/xpack-extract/index.d.ts +6 -0
  68. package/dist/xpack-extract/index.js +16 -0
  69. package/dist/xpack-extract/index.js.map +1 -0
  70. package/dist/xpack-extract/is-module-federation-plugin.d.ts +5 -0
  71. package/dist/xpack-extract/is-module-federation-plugin.js +14 -0
  72. package/dist/xpack-extract/is-module-federation-plugin.js.map +1 -0
  73. package/dist/xpack-extract/iterate-federation-config.d.ts +2 -0
  74. package/dist/xpack-extract/iterate-federation-config.js +18 -0
  75. package/dist/xpack-extract/iterate-federation-config.js.map +1 -0
  76. package/dist/xpack-extract/make-copy-of-module-federation-options.d.ts +2 -0
  77. package/dist/xpack-extract/make-copy-of-module-federation-options.js +11 -0
  78. package/dist/xpack-extract/make-copy-of-module-federation-options.js.map +1 -0
  79. package/dist/xpack-extract/mut-webpack-federated-remotes-config.d.ts +3 -0
  80. package/dist/xpack-extract/mut-webpack-federated-remotes-config.js +36 -0
  81. package/dist/xpack-extract/mut-webpack-federated-remotes-config.js.map +1 -0
  82. package/dist/xpack.types.d.ts +99 -0
  83. package/dist/xpack.types.js +3 -0
  84. package/dist/xpack.types.js.map +1 -0
  85. 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,2 @@
1
+ import { LocalPackageJson } from 'zephyr-edge-contract';
2
+ export declare function getLicenses(packageJson: LocalPackageJson): string | undefined;
@@ -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