zephyr-webpack-plugin 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/package.json +23 -0
- package/src/delegate-module/zephyr-delegate.d.ts +13 -0
- package/src/delegate-module/zephyr-delegate.js +121 -0
- package/src/delegate-module/zephyr-delegate.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.d.ts +12 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.js +31 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-dependencies.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.d.ts +47 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.js +56 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/convert-to-graph.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.d.ts +22 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.js +31 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/get-licenses.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.d.ts +16 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.js +113 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-one.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.d.ts +27 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.js +123 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/module-part-two.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.d.ts +6 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.js +20 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/object-has-keys.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.d.ts +9 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.js +36 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/process-function-remotes.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/validate-params.d.ts +34 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/validate-params.js +52 -0
- package/src/federation-dashboard-legacy/utils/convert-to-graph/validate-params.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.d.ts +27 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.js +418 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.d.ts +4 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.js +19 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/add-runtime-requirement-to-promise-external.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.d.ts +4 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.js +22 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/compute-version-strategy.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.d.ts +34 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.js +3 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-plugin-options.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.d.ts +23 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.js +3 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/federation-dashboard-types.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.d.ts +1 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.js +23 -0
- package/src/federation-dashboard-legacy/utils/federation-dashboard-plugin/find-package-json.js.map +1 -0
- package/src/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.d.ts +20 -0
- package/src/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.js +85 -0
- package/src/federation-dashboard-legacy/utils/merge-graphs/merge-graphs.js.map +1 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +6 -0
- package/src/index.js.map +1 -0
- package/src/lib/actions/ze-enable-snapshot-on-edge.d.ts +3 -0
- package/src/lib/actions/ze-enable-snapshot-on-edge.js +41 -0
- package/src/lib/actions/ze-enable-snapshot-on-edge.js.map +1 -0
- package/src/lib/actions/ze-upload-assets.d.ts +3 -0
- package/src/lib/actions/ze-upload-assets.js +73 -0
- package/src/lib/actions/ze-upload-assets.js.map +1 -0
- package/src/lib/actions/ze-upload-build-stats.d.ts +1 -0
- package/src/lib/actions/ze-upload-build-stats.js +31 -0
- package/src/lib/actions/ze-upload-build-stats.js.map +1 -0
- package/src/lib/actions/ze-upload-snapshot.d.ts +3 -0
- package/src/lib/actions/ze-upload-snapshot.js +38 -0
- package/src/lib/actions/ze-upload-snapshot.js.map +1 -0
- package/src/lib/dependency-resolution/resolve-key-version-to-entry.d.ts +0 -0
- package/src/lib/dependency-resolution/resolve-key-version-to-entry.js +11 -0
- package/src/lib/dependency-resolution/resolve-key-version-to-entry.js.map +1 -0
- package/src/lib/payload-builders/ze-build-assets-map.d.ts +3 -0
- package/src/lib/payload-builders/ze-build-assets-map.js +53 -0
- package/src/lib/payload-builders/ze-build-assets-map.js.map +1 -0
- package/src/lib/payload-builders/ze-build-snapshot.d.ts +8 -0
- package/src/lib/payload-builders/ze-build-snapshot.js +38 -0
- package/src/lib/payload-builders/ze-build-snapshot.js.map +1 -0
- package/src/lib/upload/upload-envs.d.ts +5 -0
- package/src/lib/upload/upload-envs.js +24 -0
- package/src/lib/upload/upload-envs.js.map +1 -0
- package/src/lib/upload/upload-file.d.ts +6 -0
- package/src/lib/upload/upload-file.js +31 -0
- package/src/lib/upload/upload-file.js.map +1 -0
- package/src/lib/upload/upload-snapshot.d.ts +5 -0
- package/src/lib/upload/upload-snapshot.js +29 -0
- package/src/lib/upload/upload-snapshot.js.map +1 -0
- package/src/lib/utils/ze-http-request.d.ts +6 -0
- package/src/lib/utils/ze-http-request.js +31 -0
- package/src/lib/utils/ze-http-request.js.map +1 -0
- package/src/lib/utils/ze-log-event.d.ts +17 -0
- package/src/lib/utils/ze-log-event.js +48 -0
- package/src/lib/utils/ze-log-event.js.map +1 -0
- package/src/lib/utils/ze-util-find-app-name.d.ts +7 -0
- package/src/lib/utils/ze-util-find-app-name.js +35 -0
- package/src/lib/utils/ze-util-find-app-name.js.map +1 -0
- package/src/lib/utils/ze-util-get-git-info.d.ts +13 -0
- package/src/lib/utils/ze-util-get-git-info.js +53 -0
- package/src/lib/utils/ze-util-get-git-info.js.map +1 -0
- package/src/lib/with-zephyr.d.ts +3 -0
- package/src/lib/with-zephyr.js +90 -0
- package/src/lib/with-zephyr.js.map +1 -0
- package/src/lib/ze-setup-build-id.d.ts +4 -0
- package/src/lib/ze-setup-build-id.js +62 -0
- package/src/lib/ze-setup-build-id.js.map +1 -0
- package/src/lib/ze-setup-build-steps-logging.d.ts +5 -0
- package/src/lib/ze-setup-build-steps-logging.js +42 -0
- package/src/lib/ze-setup-build-steps-logging.js.map +1 -0
- package/src/lib/ze-setup-ze-deploy.d.ts +3 -0
- package/src/lib/ze-setup-ze-deploy.js +67 -0
- package/src/lib/ze-setup-ze-deploy.js.map +1 -0
- package/src/lib/ze-webpack-plugin.d.ts +33 -0
- package/src/lib/ze-webpack-plugin.js +73 -0
- package/src/lib/ze-webpack-plugin.js.map +1 -0
- package/src/types/ze-webpack-plugin-options.d.ts +32 -0
- package/src/types/ze-webpack-plugin-options.js +3 -0
- package/src/types/ze-webpack-plugin-options.js.map +1 -0
- package/src/types/zephyr-plugin-options.d.ts +7 -0
- package/src/types/zephyr-plugin-options.js +3 -0
- package/src/types/zephyr-plugin-options.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ze-http-request.js","sourceRoot":"","sources":["../../../../../../packages/zephyr-webpack-plugin/src/lib/utils/ze-http-request.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,oCAAoC;AAQ7B,KAAK,UAAU,OAAO,CAC3B,IAAkB,EAClB,OAAuB,EACvB,IAAc;IAEd,MAAM,GAAG,GAAG,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,GAAyB,EAAE,EAAE;YACrE,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;gBACtD,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3C,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAED,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AA9BD,0BA8BC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface LogEventOptions {
|
|
2
|
+
level: string;
|
|
3
|
+
action: string;
|
|
4
|
+
message: string;
|
|
5
|
+
meta?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
export interface LoggerOptions {
|
|
8
|
+
application_uid: string;
|
|
9
|
+
zeConfig: {
|
|
10
|
+
buildId: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
isCI: boolean;
|
|
13
|
+
app: Record<string, unknown>;
|
|
14
|
+
git: Record<string, unknown>;
|
|
15
|
+
}
|
|
16
|
+
export declare function logger(options: LoggerOptions): ({ level, action, message, meta }: LogEventOptions) => void;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logger = void 0;
|
|
4
|
+
const ze_http_request_1 = require("./ze-http-request");
|
|
5
|
+
const zephyr_edge_contract_1 = require("zephyr-edge-contract");
|
|
6
|
+
const log = (v) => console.log(v);
|
|
7
|
+
function logger(options) {
|
|
8
|
+
return function logEvent({ level, action, message, meta }) {
|
|
9
|
+
const application_uid = options.application_uid;
|
|
10
|
+
(0, zephyr_edge_contract_1.getApplicationConfiguration)({ application_uid }).then(({ username, user_uuid, LOGS_ENDPOINT }) => {
|
|
11
|
+
const zeBuildId = options.zeConfig.buildId;
|
|
12
|
+
const git = options.git;
|
|
13
|
+
const createdAt = Date.now();
|
|
14
|
+
if (!level && !action) {
|
|
15
|
+
throw new Error('log level and action type must be provided');
|
|
16
|
+
}
|
|
17
|
+
message = `[${options.application_uid}](${username})[${zeBuildId}]: ${message}`;
|
|
18
|
+
meta = Object.assign({}, meta, {
|
|
19
|
+
isCI: options.isCI,
|
|
20
|
+
app: options.app,
|
|
21
|
+
git: options.git,
|
|
22
|
+
});
|
|
23
|
+
const data = JSON.stringify({
|
|
24
|
+
appId: application_uid,
|
|
25
|
+
zeUserId: user_uuid,
|
|
26
|
+
username,
|
|
27
|
+
zeBuildId,
|
|
28
|
+
logLevel: level,
|
|
29
|
+
actionType: action,
|
|
30
|
+
git,
|
|
31
|
+
message,
|
|
32
|
+
meta,
|
|
33
|
+
createdAt,
|
|
34
|
+
});
|
|
35
|
+
const reqOptions = {
|
|
36
|
+
path: `/logs`,
|
|
37
|
+
method: 'POST',
|
|
38
|
+
headers: {
|
|
39
|
+
'Content-Length': data.length,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
log(`[zephyr]: ${message}`);
|
|
43
|
+
(0, ze_http_request_1.request)(LOGS_ENDPOINT, reqOptions, data).catch(() => void 0);
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
exports.logger = logger;
|
|
48
|
+
//# sourceMappingURL=ze-log-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ze-log-event.js","sourceRoot":"","sources":["../../../../../../packages/zephyr-webpack-plugin/src/lib/utils/ze-log-event.ts"],"names":[],"mappings":";;;AAAA,uDAA4C;AAC5C,+DAAmE;AAEnE,MAAM,GAAG,GAAG,CAAC,CAAU,EAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAmBjD,SAAgB,MAAM,CAAC,OAAsB;IAC3C,OAAO,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAmB;QACxE,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAChD,IAAA,kDAA2B,EAAC,EAAE,eAAe,EAAE,CAAC,CAAC,IAAI,CACnD,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE;YACzC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YAED,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ,KAAK,SAAS,MAAM,OAAO,EAAE,CAAC;YAChF,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE;gBAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,KAAK,EAAE,eAAe;gBACtB,QAAQ,EAAE,SAAS;gBACnB,QAAQ;gBACR,SAAS;gBACT,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,MAAM;gBAClB,GAAG;gBACH,OAAO;gBACP,IAAI;gBACJ,SAAS;aACV,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG;gBACjB,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,gBAAgB,EAAE,IAAI,CAAC,MAAM;iBAC9B;aACF,CAAC;YAEF,GAAG,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;YAC5B,IAAA,yBAAO,EAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AA9CD,wBA8CC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPackageJson = void 0;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
function findClosestPackageJson(startPath) {
|
|
7
|
+
let dir = startPath;
|
|
8
|
+
do {
|
|
9
|
+
const packageJsonPath = (0, node_path_1.join)(dir, 'package.json');
|
|
10
|
+
if ((0, node_fs_1.existsSync)(packageJsonPath)) {
|
|
11
|
+
return (0, node_fs_1.readFileSync)(packageJsonPath, 'utf8');
|
|
12
|
+
}
|
|
13
|
+
const parentDir = (0, node_path_1.resolve)(dir, '..');
|
|
14
|
+
if (parentDir === dir) {
|
|
15
|
+
throw new Error('No package.json found');
|
|
16
|
+
}
|
|
17
|
+
dir = parentDir;
|
|
18
|
+
} while (startPath !== dir);
|
|
19
|
+
}
|
|
20
|
+
function getPackageJson(context) {
|
|
21
|
+
const packageJson = findClosestPackageJson(context || process.cwd());
|
|
22
|
+
if (!packageJson)
|
|
23
|
+
return void 0;
|
|
24
|
+
try {
|
|
25
|
+
return JSON.parse(packageJson);
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
// todo: logger
|
|
30
|
+
console.error('Error:', error?.message);
|
|
31
|
+
return void 0;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.getPackageJson = getPackageJson;
|
|
35
|
+
//# sourceMappingURL=ze-util-find-app-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ze-util-find-app-name.js","sourceRoot":"","sources":["../../../../../../packages/zephyr-webpack-plugin/src/lib/utils/ze-util-find-app-name.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AACnD,yCAA0C;AAE1C,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,GAAG,CAAC;QACF,MAAM,eAAe,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAClD,IAAI,IAAA,oBAAU,EAAC,eAAe,CAAC,EAAE,CAAC;YAChC,OAAO,IAAA,sBAAY,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,GAAG,GAAG,SAAS,CAAC;IAClB,CAAC,QAAQ,SAAS,KAAK,GAAG,EAAE;AAC9B,CAAC;AAQD,SAAgB,cAAc,CAC5B,OAA2B;IAE3B,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/B,8DAA8D;IAChE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,eAAe;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AAbD,wCAaC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getGitInfo = void 0;
|
|
4
|
+
const node_child_process_1 = require("node:child_process");
|
|
5
|
+
function getGitInfo() {
|
|
6
|
+
try {
|
|
7
|
+
const username = (0, node_child_process_1.execSync)('git config user.name').toString().trim();
|
|
8
|
+
const email = (0, node_child_process_1.execSync)('git config user.email').toString().trim();
|
|
9
|
+
const remoteOrigin = (0, node_child_process_1.execSync)('git config --get remote.origin.url')
|
|
10
|
+
.toString()
|
|
11
|
+
.trim();
|
|
12
|
+
const branch = (0, node_child_process_1.execSync)('git rev-parse --abbrev-ref HEAD')
|
|
13
|
+
.toString()
|
|
14
|
+
.trim();
|
|
15
|
+
const commitHash = (0, node_child_process_1.execSync)('git rev-parse HEAD').toString().trim();
|
|
16
|
+
// parse remote origin url to get the organization and repository name
|
|
17
|
+
const urlParts = remoteOrigin
|
|
18
|
+
// Remove the protocol (like https://) and user info
|
|
19
|
+
.replace(/.+@/, '')
|
|
20
|
+
// Remove the .git at the end
|
|
21
|
+
.replace(/.git$/, '')
|
|
22
|
+
// Split at the colon to separate domain from path
|
|
23
|
+
.split(':')
|
|
24
|
+
// Take the last part, which is the path
|
|
25
|
+
.pop()
|
|
26
|
+
// Split the path into parts
|
|
27
|
+
?.split('/');
|
|
28
|
+
const organization = urlParts && urlParts?.length > 1
|
|
29
|
+
? urlParts[urlParts.length - 2]
|
|
30
|
+
: undefined;
|
|
31
|
+
const repositoryName = urlParts && urlParts.length > 0
|
|
32
|
+
? urlParts[urlParts.length - 1]
|
|
33
|
+
: undefined;
|
|
34
|
+
return {
|
|
35
|
+
git: {
|
|
36
|
+
name: username,
|
|
37
|
+
email,
|
|
38
|
+
branch,
|
|
39
|
+
commit: commitHash,
|
|
40
|
+
},
|
|
41
|
+
app: {
|
|
42
|
+
org: organization?.toLowerCase(),
|
|
43
|
+
project: repositoryName?.toLowerCase(),
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.error('Error retrieving Git information:', error);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.getGitInfo = getGitInfo;
|
|
53
|
+
//# sourceMappingURL=ze-util-get-git-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ze-util-get-git-info.js","sourceRoot":"","sources":["../../../../../../packages/zephyr-webpack-plugin/src/lib/utils/ze-util-get-git-info.ts"],"names":[],"mappings":";;;AAAA,2DAA8C;AAe9C,SAAgB,UAAU;IACxB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAA,6BAAQ,EAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,IAAA,6BAAQ,EAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,IAAA,6BAAQ,EAAC,oCAAoC,CAAC;aAChE,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,IAAA,6BAAQ,EAAC,iCAAiC,CAAC;aACvD,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,IAAA,6BAAQ,EAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAEpE,sEAAsE;QACtE,MAAM,QAAQ,GAAG,YAAY;YAC3B,oDAAoD;aACnD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,6BAA6B;aAC5B,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACrB,kDAAkD;aACjD,KAAK,CAAC,GAAG,CAAC;YACX,wCAAwC;aACvC,GAAG,EAAE;YACN,4BAA4B;YAC5B,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAEf,MAAM,YAAY,GAChB,QAAQ,IAAI,QAAQ,EAAE,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,cAAc,GAClB,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC7B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,CAAC,CAAC,SAAS,CAAC;QAEhB,OAAO;YACL,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,KAAK;gBACL,MAAM;gBACN,MAAM,EAAE,UAAU;aACnB;YACD,GAAG,EAAE;gBACH,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE;gBAChC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE;aACvC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;AACH,CAAC;AAlDD,gCAkDC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withZephyr = void 0;
|
|
4
|
+
const webpack_1 = require("webpack");
|
|
5
|
+
const ze_util_find_app_name_1 = require("./utils/ze-util-find-app-name");
|
|
6
|
+
const ze_util_get_git_info_1 = require("./utils/ze-util-get-git-info");
|
|
7
|
+
const zephyr_delegate_1 = require("../delegate-module/zephyr-delegate");
|
|
8
|
+
const ze_webpack_plugin_1 = require("./ze-webpack-plugin");
|
|
9
|
+
const zephyr_edge_contract_1 = require("zephyr-edge-contract");
|
|
10
|
+
const { ModuleFederationPlugin } = webpack_1.container;
|
|
11
|
+
function getCopyOfMFOptions(config) {
|
|
12
|
+
return config.plugins
|
|
13
|
+
?.filter((plugin) => plugin?.constructor.name === 'ModuleFederationPlugin')
|
|
14
|
+
.map((mf) => {
|
|
15
|
+
const _mf = mf;
|
|
16
|
+
if (!_mf?._options)
|
|
17
|
+
return;
|
|
18
|
+
return JSON.parse(JSON.stringify(_mf._options));
|
|
19
|
+
})
|
|
20
|
+
.filter(Boolean);
|
|
21
|
+
}
|
|
22
|
+
function withZephyr(_zephyrOptions) {
|
|
23
|
+
return async function configure(config) {
|
|
24
|
+
// sources of app name: ze config(git org + git repo + package json name)
|
|
25
|
+
const packageJson = (0, ze_util_find_app_name_1.getPackageJson)(config.context);
|
|
26
|
+
const gitInfo = (0, ze_util_get_git_info_1.getGitInfo)();
|
|
27
|
+
// todo: exit zephyr sequence if no git origin or no package json
|
|
28
|
+
if (!gitInfo?.app.org || !gitInfo?.app.project || !packageJson?.name)
|
|
29
|
+
return;
|
|
30
|
+
const { org, project } = gitInfo.app;
|
|
31
|
+
const application_uid = (0, zephyr_edge_contract_1.createFullAppName)({
|
|
32
|
+
org,
|
|
33
|
+
project,
|
|
34
|
+
name: packageJson?.name,
|
|
35
|
+
});
|
|
36
|
+
// if mfs -> add MF plugins
|
|
37
|
+
// if mfs -> add FederationDashboardPlugin
|
|
38
|
+
const zephyrOptions = Array.isArray(_zephyrOptions)
|
|
39
|
+
? _zephyrOptions
|
|
40
|
+
: [_zephyrOptions];
|
|
41
|
+
// todo: resolve edge url for current application from zephyr API
|
|
42
|
+
const delegate_config = {
|
|
43
|
+
org,
|
|
44
|
+
project,
|
|
45
|
+
application: undefined,
|
|
46
|
+
};
|
|
47
|
+
const mfConfigs = getCopyOfMFOptions(config);
|
|
48
|
+
const depsResolutionTasks = config.plugins
|
|
49
|
+
?.filter((plugin) => plugin?.constructor.name.indexOf('ModuleFederationPlugin') === -1)
|
|
50
|
+
?.map(async (mfConfig) => {
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
52
|
+
return await (0, zephyr_delegate_1.replace_remote_in_mf_config)(mfConfig, delegate_config);
|
|
53
|
+
});
|
|
54
|
+
if (depsResolutionTasks) {
|
|
55
|
+
await Promise.all(depsResolutionTasks);
|
|
56
|
+
}
|
|
57
|
+
// todo: make sample wich use direct mf config via ze options
|
|
58
|
+
zephyrOptions.forEach((zephyrOption) => {
|
|
59
|
+
if (!zephyrOption)
|
|
60
|
+
return;
|
|
61
|
+
config.plugins?.push(new ModuleFederationPlugin({
|
|
62
|
+
name: application_uid,
|
|
63
|
+
filename: 'remoteEntry.js',
|
|
64
|
+
shared: packageJson?.dependencies,
|
|
65
|
+
exposes: zephyrOption?.exposes,
|
|
66
|
+
// todo: rework this part
|
|
67
|
+
// remotes: zephyrOption.remotes?.map((application) =>
|
|
68
|
+
// replace_remote_with_delegate(
|
|
69
|
+
// application,
|
|
70
|
+
// Object.assign({}, delegate_config, { application })
|
|
71
|
+
// )
|
|
72
|
+
// )
|
|
73
|
+
}));
|
|
74
|
+
});
|
|
75
|
+
config.plugins?.push(new ze_webpack_plugin_1.ZeWebpackPlugin({
|
|
76
|
+
application_uid,
|
|
77
|
+
app: {
|
|
78
|
+
name: packageJson.name,
|
|
79
|
+
version: packageJson.version,
|
|
80
|
+
org,
|
|
81
|
+
project,
|
|
82
|
+
},
|
|
83
|
+
git: gitInfo?.git,
|
|
84
|
+
mfConfig: Array.isArray(mfConfigs) ? mfConfigs[0] : void 0,
|
|
85
|
+
}));
|
|
86
|
+
return config;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
exports.withZephyr = withZephyr;
|
|
90
|
+
//# sourceMappingURL=with-zephyr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-zephyr.js","sourceRoot":"","sources":["../../../../../packages/zephyr-webpack-plugin/src/lib/with-zephyr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Compiler } from 'webpack';
|
|
2
|
+
import { ZeWebpackPluginOptions } from '../types/ze-webpack-plugin-options';
|
|
3
|
+
export declare function getBuildId(application_uid: string): Promise<string | undefined>;
|
|
4
|
+
export declare function setupZephyrConfig(pluginOptions: ZeWebpackPluginOptions, compiler: Compiler): void;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupZephyrConfig = exports.getBuildId = void 0;
|
|
4
|
+
const ze_http_request_1 = require("./utils/ze-http-request");
|
|
5
|
+
const zephyr_edge_contract_1 = require("zephyr-edge-contract");
|
|
6
|
+
const ze_log_event_1 = require("./utils/ze-log-event");
|
|
7
|
+
async function getBuildId(application_uid) {
|
|
8
|
+
const { BUILD_ID_ENDPOINT, user_uuid, jwt } = await (0, zephyr_edge_contract_1.getApplicationConfiguration)({
|
|
9
|
+
application_uid,
|
|
10
|
+
});
|
|
11
|
+
const token = await (0, zephyr_edge_contract_1.getToken)();
|
|
12
|
+
const options = {
|
|
13
|
+
path: `/`,
|
|
14
|
+
method: 'GET',
|
|
15
|
+
headers: {
|
|
16
|
+
can_write_jwt: jwt,
|
|
17
|
+
Authorization: 'Bearer ' + token,
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
const resp = await (0, ze_http_request_1.request)(BUILD_ID_ENDPOINT, options);
|
|
21
|
+
if (typeof resp === 'string') {
|
|
22
|
+
throw new Error(resp);
|
|
23
|
+
}
|
|
24
|
+
if (!resp || (typeof resp.status === 'number' && resp.status !== 200)) {
|
|
25
|
+
throw new Error(resp.message);
|
|
26
|
+
}
|
|
27
|
+
return resp[user_uuid];
|
|
28
|
+
}
|
|
29
|
+
exports.getBuildId = getBuildId;
|
|
30
|
+
function setupZephyrConfig(pluginOptions, compiler) {
|
|
31
|
+
const logEvent = (0, ze_log_event_1.logger)(pluginOptions);
|
|
32
|
+
const { pluginName, zeConfig, application_uid } = pluginOptions;
|
|
33
|
+
compiler.hooks.beforeCompile.tapAsync(pluginName, async (params, cb) => {
|
|
34
|
+
await (0, zephyr_edge_contract_1.checkAuth)();
|
|
35
|
+
const { username, email, EDGE_URL } = await (0, zephyr_edge_contract_1.getApplicationConfiguration)({
|
|
36
|
+
application_uid,
|
|
37
|
+
});
|
|
38
|
+
zeConfig.user = username;
|
|
39
|
+
zeConfig.edge_url = EDGE_URL;
|
|
40
|
+
zeConfig.buildId = void 0;
|
|
41
|
+
const buildId = await getBuildId(application_uid).catch((err) => {
|
|
42
|
+
logEvent({
|
|
43
|
+
level: 'error',
|
|
44
|
+
action: 'build:get-build-id:error',
|
|
45
|
+
message: `error receiving build number for '${email}'`,
|
|
46
|
+
meta: err.message,
|
|
47
|
+
});
|
|
48
|
+
console.error(err);
|
|
49
|
+
});
|
|
50
|
+
if (buildId) {
|
|
51
|
+
zeConfig.buildId = buildId;
|
|
52
|
+
logEvent({
|
|
53
|
+
level: 'info',
|
|
54
|
+
action: 'build:get-build-id:done',
|
|
55
|
+
message: `received build number '${buildId}' for '${zeConfig.user}'`,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return cb();
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
exports.setupZephyrConfig = setupZephyrConfig;
|
|
62
|
+
//# sourceMappingURL=ze-setup-build-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ze-setup-build-id.js","sourceRoot":"","sources":["../../../../../packages/zephyr-webpack-plugin/src/lib/ze-setup-build-id.ts"],"names":[],"mappings":";;;AACA,6DAAkD;AAGlD,+DAI8B;AAC9B,uDAA8C;AAEvC,KAAK,UAAU,UAAU,CAC9B,eAAuB;IAEvB,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,GACzC,MAAM,IAAA,kDAA2B,EAAC;QAChC,eAAe;KAChB,CAAC,CAAC;IACL,MAAM,KAAK,GAAG,MAAM,IAAA,+BAAQ,GAAE,CAAC;IAE/B,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,GAAG;YAClB,aAAa,EAAE,SAAS,GAAG,KAAK;SACjC;KACF,CAAC;IAMF,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAO,EAAc,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAEpE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAQ,IAA+B,CAAC,SAAS,CAAC,CAAC;AACrD,CAAC;AAhCD,gCAgCC;AAED,SAAgB,iBAAiB,CAC/B,aAAqC,EACrC,QAAkB;IAElB,MAAM,QAAQ,GAAG,IAAA,qBAAM,EAAC,aAAa,CAAC,CAAC;IACvC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC;IAChE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;QACrE,MAAM,IAAA,gCAAS,GAAE,CAAC;QAClB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,kDAA2B,EAAC;YACtE,eAAe;SAChB,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC;QACzB,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9D,QAAQ,CAAC;gBACP,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,0BAA0B;gBAClC,OAAO,EAAE,qCAAqC,KAAK,GAAG;gBACtD,IAAI,EAAE,GAAG,CAAC,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,QAAQ,CAAC;gBACP,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,yBAAyB;gBACjC,OAAO,EAAE,0BAA0B,OAAO,UAAU,QAAQ,CAAC,IAAI,GAAG;aACrE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AApCD,8CAoCC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logBuildSteps = void 0;
|
|
4
|
+
const ze_log_event_1 = require("./utils/ze-log-event");
|
|
5
|
+
function logBuildSteps(pluginOptions, compiler) {
|
|
6
|
+
const { pluginName, zeConfig, buildEnv } = pluginOptions;
|
|
7
|
+
const logEvent = (0, ze_log_event_1.logger)(pluginOptions);
|
|
8
|
+
let buildStartedAt = -1;
|
|
9
|
+
compiler.hooks.beforeCompile.tapAsync(pluginName, async (params, cb) => {
|
|
10
|
+
if (!zeConfig.buildId)
|
|
11
|
+
return cb();
|
|
12
|
+
buildStartedAt = Date.now();
|
|
13
|
+
logEvent({
|
|
14
|
+
level: 'info',
|
|
15
|
+
action: 'build:started',
|
|
16
|
+
message: `${buildEnv} build started`,
|
|
17
|
+
});
|
|
18
|
+
cb();
|
|
19
|
+
});
|
|
20
|
+
compiler.hooks.done.tap(pluginName, () => {
|
|
21
|
+
if (!zeConfig.buildId)
|
|
22
|
+
return;
|
|
23
|
+
logEvent({
|
|
24
|
+
level: 'info',
|
|
25
|
+
action: 'build:done',
|
|
26
|
+
message: `${buildEnv} build finished in ${Date.now() - buildStartedAt}ms`,
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
compiler.hooks.failed.tap(pluginName, (err) => {
|
|
30
|
+
if (!zeConfig.buildId)
|
|
31
|
+
return;
|
|
32
|
+
logEvent({
|
|
33
|
+
level: 'error',
|
|
34
|
+
action: 'build:failed',
|
|
35
|
+
message: `${buildEnv} build failed in ${Date.now() - buildStartedAt}ms`,
|
|
36
|
+
meta: { error: err.toString() },
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
return { buildStartedAt };
|
|
40
|
+
}
|
|
41
|
+
exports.logBuildSteps = logBuildSteps;
|
|
42
|
+
//# sourceMappingURL=ze-setup-build-steps-logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ze-setup-build-steps-logging.js","sourceRoot":"","sources":["../../../../../packages/zephyr-webpack-plugin/src/lib/ze-setup-build-steps-logging.ts"],"names":[],"mappings":";;;AACA,uDAA8C;AAG9C,SAAgB,aAAa,CAC3B,aAAqC,EACrC,QAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAA,qBAAM,EAAC,aAAa,CAAC,CAAC;IAEvC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;QACrE,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,CAAC;QACnC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,QAAQ,CAAC;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,GAAG,QAAQ,gBAAgB;SACrC,CAAC,CAAC;QACH,EAAE,EAAE,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE;QACvC,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QAC9B,QAAQ,CAAC;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,GAAG,QAAQ,sBAAsB,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,IAAI;SAC1E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QAC9B,QAAQ,CAAC;YACP,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,GAAG,QAAQ,oBAAoB,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,IAAI;YACvE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B,CAAC;AArCD,sCAqCC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupZeDeploy = void 0;
|
|
4
|
+
const ze_log_event_1 = require("./utils/ze-log-event");
|
|
5
|
+
const ze_enable_snapshot_on_edge_1 = require("./actions/ze-enable-snapshot-on-edge");
|
|
6
|
+
const ze_upload_snapshot_1 = require("./actions/ze-upload-snapshot");
|
|
7
|
+
const ze_upload_assets_1 = require("./actions/ze-upload-assets");
|
|
8
|
+
const ze_build_assets_map_1 = require("./payload-builders/ze-build-assets-map");
|
|
9
|
+
const ze_build_snapshot_1 = require("./payload-builders/ze-build-snapshot");
|
|
10
|
+
const ze_upload_build_stats_1 = require("./actions/ze-upload-build-stats");
|
|
11
|
+
const zephyr_edge_contract_1 = require("zephyr-edge-contract");
|
|
12
|
+
function setupZeDeploy(pluginOptions, compiler) {
|
|
13
|
+
const { pluginName, zeConfig } = pluginOptions;
|
|
14
|
+
const logEvent = (0, ze_log_event_1.logger)(pluginOptions);
|
|
15
|
+
compiler.hooks.thisCompilation.tap(pluginName, (compilation) => {
|
|
16
|
+
compilation.hooks.processAssets.tapPromise({
|
|
17
|
+
name: pluginName,
|
|
18
|
+
stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT,
|
|
19
|
+
}, async (assets) => {
|
|
20
|
+
if (!zeConfig.buildId) {
|
|
21
|
+
// no id - no cloud builds ;)
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const { EDGE_URL, username, email } = await (0, zephyr_edge_contract_1.getApplicationConfiguration)({ application_uid: pluginOptions.application_uid });
|
|
25
|
+
const zeStart = Date.now();
|
|
26
|
+
const assetsMap = (0, ze_build_assets_map_1.zeBuildAssetsMap)(pluginOptions, assets);
|
|
27
|
+
const snapshot = (0, ze_build_snapshot_1.createSnapshot)({
|
|
28
|
+
options: pluginOptions,
|
|
29
|
+
assets: assetsMap,
|
|
30
|
+
username,
|
|
31
|
+
email,
|
|
32
|
+
});
|
|
33
|
+
const missingAssets = await (0, ze_upload_snapshot_1.zeUploadSnapshot)(pluginOptions, snapshot).catch((_) => void _);
|
|
34
|
+
if (typeof missingAssets === 'undefined')
|
|
35
|
+
return;
|
|
36
|
+
const assetsUploadSuccess = await (0, ze_upload_assets_1.zeUploadAssets)(pluginOptions, {
|
|
37
|
+
missingAssets,
|
|
38
|
+
assetsMap,
|
|
39
|
+
count: Object.keys(assets).length,
|
|
40
|
+
});
|
|
41
|
+
if (!assetsUploadSuccess)
|
|
42
|
+
return;
|
|
43
|
+
// eslint-disable-next-line
|
|
44
|
+
const dashboardPlugin = pluginOptions
|
|
45
|
+
.dashboard;
|
|
46
|
+
// todo: set proper metadata for dashboard plugin
|
|
47
|
+
// eslint-disable-next-line
|
|
48
|
+
dashboardPlugin.postDashboardData = async (dashData) => {
|
|
49
|
+
dashData.app.buildId = pluginOptions.zeConfig.buildId;
|
|
50
|
+
dashData.remote = pluginOptions.mfConfig?.filename;
|
|
51
|
+
// todo: @valorkin remove, this should be decided on API side
|
|
52
|
+
dashData.edge = { url: EDGE_URL };
|
|
53
|
+
return await (0, ze_upload_build_stats_1.zeUploadBuildStats)(dashData);
|
|
54
|
+
};
|
|
55
|
+
const envs = (await dashboardPlugin.processWebpackGraph(compilation));
|
|
56
|
+
// end of dashboard plugin hack around
|
|
57
|
+
await (0, ze_enable_snapshot_on_edge_1.zeEnableSnapshotOnEdge)(pluginOptions, snapshot, envs.value);
|
|
58
|
+
logEvent({
|
|
59
|
+
level: 'info',
|
|
60
|
+
action: 'build:deploy:done',
|
|
61
|
+
message: `build deployed in ${Date.now() - zeStart}ms`,
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
exports.setupZeDeploy = setupZeDeploy;
|
|
67
|
+
//# sourceMappingURL=ze-setup-ze-deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ze-setup-ze-deploy.js","sourceRoot":"","sources":["../../../../../packages/zephyr-webpack-plugin/src/lib/ze-setup-ze-deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Compiler } from 'webpack';
|
|
2
|
+
export declare class ZeWebpackPlugin {
|
|
3
|
+
_options: {
|
|
4
|
+
pluginName: string;
|
|
5
|
+
isCI: boolean;
|
|
6
|
+
buildEnv: string;
|
|
7
|
+
readonly appName: string;
|
|
8
|
+
readonly username: string;
|
|
9
|
+
zeConfig: {
|
|
10
|
+
user: string;
|
|
11
|
+
buildId: undefined;
|
|
12
|
+
edge_url: string;
|
|
13
|
+
};
|
|
14
|
+
application_uid: string;
|
|
15
|
+
app: {
|
|
16
|
+
org: string;
|
|
17
|
+
project: string;
|
|
18
|
+
name: string;
|
|
19
|
+
version: string;
|
|
20
|
+
};
|
|
21
|
+
git: {
|
|
22
|
+
name: string;
|
|
23
|
+
email: string;
|
|
24
|
+
branch: string;
|
|
25
|
+
commit: string;
|
|
26
|
+
};
|
|
27
|
+
dashboard: {
|
|
28
|
+
apply: (compiler: Compiler) => void;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
constructor(options?: {});
|
|
32
|
+
apply(compiler: Compiler): void;
|
|
33
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZeWebpackPlugin = void 0;
|
|
4
|
+
const isCI = require("is-ci");
|
|
5
|
+
const ze_setup_build_id_1 = require("./ze-setup-build-id");
|
|
6
|
+
const ze_setup_build_steps_logging_1 = require("./ze-setup-build-steps-logging");
|
|
7
|
+
const ze_setup_ze_deploy_1 = require("./ze-setup-ze-deploy");
|
|
8
|
+
const zephyr_edge_contract_1 = require("zephyr-edge-contract");
|
|
9
|
+
const FederationDashboardPlugin_1 = require("../federation-dashboard-legacy/utils/federation-dashboard-plugin/FederationDashboardPlugin");
|
|
10
|
+
const pluginName = 'ZeWebpackPlugin';
|
|
11
|
+
const default_zewebpack_options = {
|
|
12
|
+
pluginName,
|
|
13
|
+
isCI,
|
|
14
|
+
buildEnv: isCI ? 'ci' : 'local',
|
|
15
|
+
get appName() {
|
|
16
|
+
return (0, zephyr_edge_contract_1.createFullAppName)(this.app);
|
|
17
|
+
},
|
|
18
|
+
get username() {
|
|
19
|
+
return this.zeConfig.user;
|
|
20
|
+
},
|
|
21
|
+
zeConfig: {
|
|
22
|
+
user: '',
|
|
23
|
+
buildId: void 0,
|
|
24
|
+
edge_url: '',
|
|
25
|
+
},
|
|
26
|
+
application_uid: '',
|
|
27
|
+
app: {
|
|
28
|
+
// git org
|
|
29
|
+
org: '',
|
|
30
|
+
// git repo
|
|
31
|
+
project: '',
|
|
32
|
+
// package.json name
|
|
33
|
+
name: '',
|
|
34
|
+
// package.json version
|
|
35
|
+
version: '',
|
|
36
|
+
},
|
|
37
|
+
// todo: what if git not configured? - skip for now
|
|
38
|
+
git: {
|
|
39
|
+
name: '',
|
|
40
|
+
email: '',
|
|
41
|
+
branch: '',
|
|
42
|
+
commit: '',
|
|
43
|
+
},
|
|
44
|
+
dashboard: {
|
|
45
|
+
// eslint-disable-next-line
|
|
46
|
+
apply: (compiler) => { },
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
class ZeWebpackPlugin {
|
|
50
|
+
constructor(options = {}) {
|
|
51
|
+
this._options = default_zewebpack_options;
|
|
52
|
+
this._options = Object.assign(this._options, options ?? {});
|
|
53
|
+
}
|
|
54
|
+
apply(compiler) {
|
|
55
|
+
(0, ze_setup_build_id_1.setupZephyrConfig)(this._options, compiler);
|
|
56
|
+
(0, ze_setup_build_steps_logging_1.logBuildSteps)(this._options, compiler);
|
|
57
|
+
// setup dashboard plugin,
|
|
58
|
+
// - dash plugin should call a cb with data to be uploaded to API
|
|
59
|
+
// -
|
|
60
|
+
this._options.dashboard = new FederationDashboardPlugin_1.FederationDashboardPlugin({
|
|
61
|
+
zeOptions: this._options,
|
|
62
|
+
app: this._options.app,
|
|
63
|
+
git: this._options.git,
|
|
64
|
+
context: {
|
|
65
|
+
isCI,
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
this._options.dashboard.apply(compiler);
|
|
69
|
+
(0, ze_setup_ze_deploy_1.setupZeDeploy)(this._options, compiler);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.ZeWebpackPlugin = ZeWebpackPlugin;
|
|
73
|
+
//# sourceMappingURL=ze-webpack-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ze-webpack-plugin.js","sourceRoot":"","sources":["../../../../../packages/zephyr-webpack-plugin/src/lib/ze-webpack-plugin.ts"],"names":[],"mappings":";;;AACA,8BAA8B;AAE9B,2DAAwD;AACxD,iFAA+D;AAC/D,6DAAqD;AACrD,+DAAyD;AACzD,0IAAuI;AAEvI,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAErC,MAAM,yBAAyB,GAAG;IAChC,UAAU;IACV,IAAI;IACJ,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;IAC/B,IAAI,OAAO;QACT,OAAO,IAAA,wCAAiB,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,EAAE;KACb;IACD,eAAe,EAAE,EAAE;IACnB,GAAG,EAAE;QACH,UAAU;QACV,GAAG,EAAE,EAAE;QACP,WAAW;QACX,OAAO,EAAE,EAAE;QACX,oBAAoB;QACpB,IAAI,EAAE,EAAE;QACR,uBAAuB;QACvB,OAAO,EAAE,EAAE;KACZ;IACD,mDAAmD;IACnD,GAAG,EAAE;QACH,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;KACX;IACD,SAAS,EAAE;QACT,2BAA2B;QAC3B,KAAK,EAAE,CAAC,QAAkB,EAAE,EAAE,GAAE,CAAC;KAClC;CACF,CAAC;AAEF,MAAa,eAAe;IAG1B,YAAY,OAAO,GAAG,EAAE;QAFxB,aAAQ,GAAG,yBAAyB,CAAC;QAGnC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,IAAA,qCAAiB,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAA,4CAAa,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACvC,0BAA0B;QAC1B,iEAAiE;QACjE,IAAI;QACJ,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,qDAAyB,CAAC;YACtD,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;YACtB,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;YACtB,OAAO,EAAE;gBACP,IAAI;aACL;SACF,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAA,kCAAa,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;CACF;AAxBD,0CAwBC"}
|