zephyr-webpack-plugin 0.0.0-canary-20241116123955

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 (88) hide show
  1. package/LICENSE +39 -0
  2. package/README.md +26 -0
  3. package/dist/delegate-module/zephyr-delegate.d.ts +11 -0
  4. package/dist/delegate-module/zephyr-delegate.js +150 -0
  5. package/dist/delegate-module/zephyr-delegate.js.map +1 -0
  6. package/dist/federation-dashboard-legacy/get-build-stats.d.ts +8 -0
  7. package/dist/federation-dashboard-legacy/get-build-stats.js +50 -0
  8. package/dist/federation-dashboard-legacy/get-build-stats.js.map +1 -0
  9. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.d.ts +12 -0
  10. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.js +31 -0
  11. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.js.map +1 -0
  12. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.d.ts +28 -0
  13. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.js +56 -0
  14. package/dist/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.js.map +1 -0
  15. package/dist/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.d.ts +2 -0
  16. package/dist/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.js +25 -0
  17. package/dist/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.js.map +1 -0
  18. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.d.ts +16 -0
  19. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.js +113 -0
  20. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.js.map +1 -0
  21. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.d.ts +27 -0
  22. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.js +123 -0
  23. package/dist/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.js.map +1 -0
  24. package/dist/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.d.ts +6 -0
  25. package/dist/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.js +20 -0
  26. package/dist/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.js.map +1 -0
  27. package/dist/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.d.ts +9 -0
  28. package/dist/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.js +36 -0
  29. package/dist/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.js.map +1 -0
  30. package/dist/federation-dashboard-legacy/utils/convert-to-graph/validate-params.d.ts +34 -0
  31. package/dist/federation-dashboard-legacy/utils/convert-to-graph/validate-params.js +52 -0
  32. package/dist/federation-dashboard-legacy/utils/convert-to-graph/validate-params.js.map +1 -0
  33. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.d.ts +33 -0
  34. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.js +417 -0
  35. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.js.map +1 -0
  36. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.d.ts +4 -0
  37. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.js +19 -0
  38. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.js.map +1 -0
  39. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.d.ts +4 -0
  40. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.js +22 -0
  41. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.js.map +1 -0
  42. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.d.ts +31 -0
  43. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.js +3 -0
  44. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.js.map +1 -0
  45. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.d.ts +23 -0
  46. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.js +3 -0
  47. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.js.map +1 -0
  48. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.d.ts +1 -0
  49. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.js +23 -0
  50. package/dist/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.js.map +1 -0
  51. package/dist/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.d.ts +20 -0
  52. package/dist/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.js +85 -0
  53. package/dist/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.js.map +1 -0
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.js +11 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/lib/dependency-resolution/replace-remotes-with-delegates.d.ts +6 -0
  58. package/dist/lib/dependency-resolution/replace-remotes-with-delegates.js +17 -0
  59. package/dist/lib/dependency-resolution/replace-remotes-with-delegates.js.map +1 -0
  60. package/dist/lib/utils/get-copy-of-mf-options.d.ts +5 -0
  61. package/dist/lib/utils/get-copy-of-mf-options.js +17 -0
  62. package/dist/lib/utils/get-copy-of-mf-options.js.map +1 -0
  63. package/dist/lib/utils/is-mf-plugin.d.ts +4 -0
  64. package/dist/lib/utils/is-mf-plugin.js +10 -0
  65. package/dist/lib/utils/is-mf-plugin.js.map +1 -0
  66. package/dist/lib/with-zephyr.d.ts +3 -0
  67. package/dist/lib/with-zephyr.js +41 -0
  68. package/dist/lib/with-zephyr.js.map +1 -0
  69. package/dist/lib/ze-agent/index.d.ts +9 -0
  70. package/dist/lib/ze-agent/index.js +54 -0
  71. package/dist/lib/ze-agent/index.js.map +1 -0
  72. package/dist/lib/ze-agent/lifecycle-events.d.ts +2 -0
  73. package/dist/lib/ze-agent/lifecycle-events.js +20 -0
  74. package/dist/lib/ze-agent/lifecycle-events.js.map +1 -0
  75. package/dist/lib/ze-setup-build-id.d.ts +3 -0
  76. package/dist/lib/ze-setup-build-id.js +43 -0
  77. package/dist/lib/ze-setup-build-id.js.map +1 -0
  78. package/dist/lib/ze-setup-build-steps-logging.d.ts +5 -0
  79. package/dist/lib/ze-setup-build-steps-logging.js +26 -0
  80. package/dist/lib/ze-setup-build-steps-logging.js.map +1 -0
  81. package/dist/lib/ze-setup-ze-deploy.d.ts +3 -0
  82. package/dist/lib/ze-setup-ze-deploy.js +33 -0
  83. package/dist/lib/ze-setup-ze-deploy.js.map +1 -0
  84. package/dist/lib/ze-webpack-plugin.d.ts +7 -0
  85. package/dist/lib/ze-webpack-plugin.js +30 -0
  86. package/dist/lib/ze-webpack-plugin.js.map +1 -0
  87. package/dist/package.json +24 -0
  88. 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,11 @@
1
+ import { DelegateConfig } from '../lib/dependency-resolution/replace-remotes-with-delegates';
2
+ export declare function replace_remote_in_mf_config(mfPlugin: any, config: DelegateConfig): Promise<void>;
3
+ interface ResolvedDependency {
4
+ remote_name: string;
5
+ default_url: string;
6
+ application_uid: string;
7
+ remote_entry_url: string;
8
+ library_type: string;
9
+ }
10
+ export declare function replace_remote_with_delegate(deps: ResolvedDependency): string;
11
+ export {};
@@ -0,0 +1,150 @@
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 resolve_remote_dependency({ application_uid, version, }) {
8
+ const resolveDependency = new URL(`${zephyr_edge_contract_1.ze_api_gateway.resolve}/${encodeURIComponent(application_uid)}/${encodeURIComponent(version)}`, (0, zephyr_edge_contract_1.ZE_API_ENDPOINT)());
9
+ const [appName, projectName, orgName] = application_uid.split('.');
10
+ try {
11
+ const token = await (0, zephyr_edge_contract_1.getToken)();
12
+ const res = await fetch(resolveDependency, {
13
+ method: 'GET',
14
+ headers: {
15
+ 'Content-Type': 'application/json',
16
+ Authorization: 'Bearer ' + token,
17
+ Accept: 'application/json',
18
+ },
19
+ });
20
+ if (!res.ok) {
21
+ throw new zephyr_edge_contract_1.ZephyrError(zephyr_edge_contract_1.ZeErrors.ERR_RESOLVE_REMOTES, {
22
+ appUid: application_uid,
23
+ appName,
24
+ projectName,
25
+ orgName,
26
+ data: {
27
+ url: resolveDependency.toString(),
28
+ version,
29
+ error: await res.json().catch(() => res.text()),
30
+ },
31
+ });
32
+ }
33
+ const response = await res.json();
34
+ if (response.value) {
35
+ return response.value;
36
+ }
37
+ throw new zephyr_edge_contract_1.ZephyrError(zephyr_edge_contract_1.ZeErrors.ERR_RESOLVE_REMOTES, {
38
+ appUid: application_uid,
39
+ appName,
40
+ projectName,
41
+ orgName,
42
+ data: { version, response },
43
+ });
44
+ }
45
+ catch (cause) {
46
+ throw new zephyr_edge_contract_1.ZephyrError(zephyr_edge_contract_1.ZeErrors.ERR_CANNOT_RESOLVE_APP_NAME_WITH_VERSION, {
47
+ data: { version },
48
+ cause,
49
+ });
50
+ }
51
+ }
52
+ async function replace_remote_in_mf_config(
53
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
+ mfPlugin, config) {
55
+ if (!mfPlugin._options?.remotes) {
56
+ return;
57
+ }
58
+ // Replace remotes with delegate function
59
+ await Promise.all(Object.keys(mfPlugin._options.remotes).map(async (key) => {
60
+ const [app_name, project_name, org_name] = key.split('.', 3);
61
+ // Key might be only the app name
62
+ const application_uid = (0, zephyr_edge_contract_1.createApplicationUID)({
63
+ org: org_name ?? config.org,
64
+ project: project_name ?? config.project,
65
+ name: app_name,
66
+ });
67
+ // if default url is url - set as default, if not use app remote_host as default
68
+ // if default url is not url - send it as a semver to deps resolution
69
+ const [ok, error, resolvedDependency] = await zephyr_edge_contract_1.ZeUtils.PromiseTuple(resolve_remote_dependency({
70
+ application_uid: application_uid,
71
+ version: mfPlugin._options?.remotes[key],
72
+ }));
73
+ // If couldn't resolve remote dependency, skip replacing it
74
+ if (!ok || error) {
75
+ return;
76
+ }
77
+ resolvedDependency.library_type = mfPlugin._options?.library?.type ?? 'var';
78
+ const [v_app] = mfPlugin._options.remotes[key]?.split('@') ?? [];
79
+ if (v_app) {
80
+ resolvedDependency.remote_entry_url = [v_app, resolvedDependency.remote_entry_url].join('@');
81
+ }
82
+ resolvedDependency.remote_name = key;
83
+ mfPlugin._options.remotes[key] = replace_remote_with_delegate(resolvedDependency);
84
+ }));
85
+ }
86
+ exports.replace_remote_in_mf_config = replace_remote_in_mf_config;
87
+ function replace_remote_with_delegate(deps) {
88
+ // prepare delegate function string template
89
+ const fnReplace = delegate_module_template.toString();
90
+ const strStart = new RegExp(/^function[\W\S]+return new Promise/);
91
+ const strNewStart = `promise new Promise`;
92
+ const strEnd = new RegExp(/;[^)}]+}$/);
93
+ const promiseNewPromise = fnReplace.replace(strStart, strNewStart).replace(strEnd, '');
94
+ const { application_uid, remote_entry_url, default_url, remote_name, library_type } = deps;
95
+ return promiseNewPromise
96
+ .replace('__APPLICATION_UID__', application_uid)
97
+ .replace('__REMOTE_ENTRY_URL__', remote_entry_url)
98
+ .replace('__REMOTE_NAME__', remote_name)
99
+ .replace('__DEFAULT_URL__', default_url)
100
+ .replace('__LIBRARY_TYPE__', library_type);
101
+ }
102
+ exports.replace_remote_with_delegate = replace_remote_with_delegate;
103
+ function delegate_module_template() {
104
+ return new Promise((resolve, reject) => {
105
+ const remote_entry_url = '__REMOTE_ENTRY_URL__';
106
+ const library_type = '__LIBRARY_TYPE__';
107
+ const _window = typeof window !== 'undefined' ? window : globalThis;
108
+ const sessionEdgeURL = _window.sessionStorage?.getItem('__APPLICATION_UID__');
109
+ let edgeUrl = sessionEdgeURL ?? remote_entry_url;
110
+ let remote_name = '__REMOTE_NAME__';
111
+ if (edgeUrl.indexOf('@') !== -1) {
112
+ [remote_name, edgeUrl] = edgeUrl.split('@');
113
+ }
114
+ const resolve_entry = [
115
+ fetch(edgeUrl, { method: 'HEAD' })
116
+ .then(() => edgeUrl)
117
+ .catch(() => false),
118
+ ];
119
+ Promise.race(resolve_entry)
120
+ .then((remoteUrl) => {
121
+ if (typeof remoteUrl !== 'string')
122
+ return;
123
+ const _win = _window;
124
+ if (typeof _win[remote_name] !== 'undefined') {
125
+ return resolve(_win[remote_name]);
126
+ }
127
+ if (typeof __webpack_require__ !== 'undefined' &&
128
+ typeof __webpack_require__.l === 'function' &&
129
+ // @ts-expect-error - library_type is inherited enum type instead of string
130
+ library_type !== 'module') {
131
+ __webpack_require__.l(remoteUrl, () => {
132
+ resolve(_win[remote_name]);
133
+ }, remote_name, remote_name);
134
+ return;
135
+ }
136
+ return new Function(`return import("${remoteUrl}")`)()
137
+ .then((mod) => {
138
+ if (typeof _win[remote_name] !== 'undefined') {
139
+ return resolve(_win[remote_name]);
140
+ }
141
+ return resolve(mod);
142
+ })
143
+ .catch((err) => reject(err));
144
+ })
145
+ .catch((err) => {
146
+ console.error(`Zephyr: error loading remote entry ${remote_entry_url}`, err);
147
+ });
148
+ });
149
+ }
150
+ //# sourceMappingURL=zephyr-delegate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zephyr-delegate.js","sourceRoot":"","sources":["../../src/delegate-module/zephyr-delegate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type ConvertedGraph } from 'zephyr-edge-contract';
2
+ import type { ZephyrAgentProps } from '../lib/ze-agent';
3
+ export declare function getBuildStats({ stats, stats_json, pluginOptions, EDGE_URL, DOMAIN, PLATFORM, TYPE, }: ZephyrAgentProps & {
4
+ EDGE_URL: string;
5
+ DOMAIN?: string;
6
+ PLATFORM?: string;
7
+ TYPE?: string;
8
+ }): ConvertedGraph;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBuildStats = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const isCI = tslib_1.__importStar(require("is-ci"));
6
+ const zephyr_edge_contract_1 = require("zephyr-edge-contract");
7
+ const FederationDashboardPlugin_1 = require("./utils/federation-dashboard-plugin/FederationDashboardPlugin");
8
+ function getBuildStats({ stats, stats_json, pluginOptions, EDGE_URL, DOMAIN, PLATFORM, TYPE, }) {
9
+ (0, zephyr_edge_contract_1.ze_log)('get build stats started. create federation dashboard plugin');
10
+ const dashboardPlugin = new FederationDashboardPlugin_1.FederationDashboardPlugin({
11
+ app: pluginOptions.app,
12
+ git: pluginOptions.git,
13
+ context: {
14
+ isCI,
15
+ },
16
+ });
17
+ (0, zephyr_edge_contract_1.ze_log)('process webpack graph');
18
+ const convertedGraph = dashboardPlugin.processWebpackGraph({
19
+ stats,
20
+ stats_json,
21
+ pluginOptions,
22
+ });
23
+ if (!convertedGraph) {
24
+ throw new zephyr_edge_contract_1.ZephyrError(zephyr_edge_contract_1.ZeErrors.ERR_CONVERT_GRAPH_TO_DASHBOARD);
25
+ }
26
+ const version = (0, zephyr_edge_contract_1.createSnapshotId)(pluginOptions);
27
+ const { app, git } = pluginOptions;
28
+ const data_overrides = {
29
+ id: pluginOptions.application_uid,
30
+ name: pluginOptions.mfConfig?.name,
31
+ edge: { url: EDGE_URL },
32
+ domain: DOMAIN,
33
+ platform: PLATFORM,
34
+ type: TYPE,
35
+ app: Object.assign({}, app, { buildId: pluginOptions.zeConfig.buildId }),
36
+ version,
37
+ git,
38
+ remote: pluginOptions.mfConfig?.filename,
39
+ remotes: Object.keys(pluginOptions.mfConfig?.remotes || {}),
40
+ context: {
41
+ isCI: pluginOptions.isCI,
42
+ },
43
+ };
44
+ // todo: extend data
45
+ const res = Object.assign({}, convertedGraph, data_overrides);
46
+ (0, zephyr_edge_contract_1.ze_log)('get build stats done.', res);
47
+ return res;
48
+ }
49
+ exports.getBuildStats = getBuildStats;
50
+ //# 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":";;;;AAAA,oDAA8B;AAC9B,+DAA4G;AAE5G,6GAA0G;AAE1G,SAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,UAAU,EACV,aAAa,EACb,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,IAAI,GAML;IACC,IAAA,6BAAM,EAAC,6DAA6D,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,IAAI,qDAAyB,CAAC;QACpD,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,OAAO,EAAE;YACP,IAAI;SACL;KACF,CAAC,CAAC;IAEH,IAAA,6BAAM,EAAC,uBAAuB,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,eAAe,CAAC,mBAAmB,CAAC;QACzD,KAAK;QACL,UAAU;QACV,aAAa;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,kCAAW,CAAC,+BAAQ,CAAC,8BAA8B,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,uCAAgB,EAAC,aAAa,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;IACnC,MAAM,cAAc,GAAG;QACrB,EAAE,EAAE,aAAa,CAAC,eAAe;QACjC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI;QAClC,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,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxE,OAAO;QACP,GAAG;QACH,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ;QACxC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;QAC3D,OAAO,EAAE;YACP,IAAI,EAAE,aAAa,CAAC,IAAI;SACzB;KACF,CAAC;IAEF,oBAAoB;IACpB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;IAC9D,IAAA,6BAAM,EAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC;AACb,CAAC;AA1DD,sCA0DC"}
@@ -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,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,28 @@
1
+ /** eslint-disable */
2
+ import { TopLevelPackage } from './validate-params';
3
+ import { StatsChunk, StatsModule } from 'webpack';
4
+ import { ConvertedGraph } from 'zephyr-edge-contract';
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 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()).filter((value) => typeof value === 'string'),
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":["../../../../src/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.ts"],"names":[],"mappings":";;;AAEA,uDAAkD;AAClD,iEAA6D;AAC7D,uDAAkD;AAClD,yEAAoE;AA+BpE,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,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 { 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":["../../../../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 {};