zephyr-agent 0.0.10

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 (65) hide show
  1. package/README.md +11 -0
  2. package/package.json +13 -0
  3. package/src/index.d.ts +16 -0
  4. package/src/index.js +38 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/actions/ze-enable-snapshot-on-edge.d.ts +2 -0
  7. package/src/lib/actions/ze-enable-snapshot-on-edge.js +35 -0
  8. package/src/lib/actions/ze-enable-snapshot-on-edge.js.map +1 -0
  9. package/src/lib/actions/ze-upload-assets.d.ts +2 -0
  10. package/src/lib/actions/ze-upload-assets.js +75 -0
  11. package/src/lib/actions/ze-upload-assets.js.map +1 -0
  12. package/src/lib/actions/ze-upload-build-stats.d.ts +4 -0
  13. package/src/lib/actions/ze-upload-build-stats.js +31 -0
  14. package/src/lib/actions/ze-upload-build-stats.js.map +1 -0
  15. package/src/lib/actions/ze-upload-snapshot.d.ts +2 -0
  16. package/src/lib/actions/ze-upload-snapshot.js +40 -0
  17. package/src/lib/actions/ze-upload-snapshot.js.map +1 -0
  18. package/src/lib/application-configuration/get-application-configuration.d.ts +6 -0
  19. package/src/lib/application-configuration/get-application-configuration.js +46 -0
  20. package/src/lib/application-configuration/get-application-configuration.js.map +1 -0
  21. package/src/lib/auth/login.d.ts +23 -0
  22. package/src/lib/auth/login.js +105 -0
  23. package/src/lib/auth/login.js.map +1 -0
  24. package/src/lib/auth/websocket.d.ts +13 -0
  25. package/src/lib/auth/websocket.js +14 -0
  26. package/src/lib/auth/websocket.js.map +1 -0
  27. package/src/lib/context-utils/ze-util-get-git-info.d.ts +13 -0
  28. package/src/lib/context-utils/ze-util-get-git-info.js +55 -0
  29. package/src/lib/context-utils/ze-util-get-git-info.js.map +1 -0
  30. package/src/lib/context-utils/ze-util-read-package-json.d.ts +7 -0
  31. package/src/lib/context-utils/ze-util-read-package-json.js +42 -0
  32. package/src/lib/context-utils/ze-util-read-package-json.js.map +1 -0
  33. package/src/lib/custom-errors/configuration-error.d.ts +3 -0
  34. package/src/lib/custom-errors/configuration-error.js +12 -0
  35. package/src/lib/custom-errors/configuration-error.js.map +1 -0
  36. package/src/lib/hacks/resolve-index-html.d.ts +2 -0
  37. package/src/lib/hacks/resolve-index-html.js +25 -0
  38. package/src/lib/hacks/resolve-index-html.js.map +1 -0
  39. package/src/lib/payload-builders/ze-build-assets-map.d.ts +2 -0
  40. package/src/lib/payload-builders/ze-build-assets-map.js +59 -0
  41. package/src/lib/payload-builders/ze-build-assets-map.js.map +1 -0
  42. package/src/lib/payload-builders/ze-build-snapshot.d.ts +7 -0
  43. package/src/lib/payload-builders/ze-build-snapshot.js +39 -0
  44. package/src/lib/payload-builders/ze-build-snapshot.js.map +1 -0
  45. package/src/lib/remote-logs/ze-log-event.d.ts +17 -0
  46. package/src/lib/remote-logs/ze-log-event.js +64 -0
  47. package/src/lib/remote-logs/ze-log-event.js.map +1 -0
  48. package/src/lib/sync-utils/get-ze-build-asset.d.ts +6 -0
  49. package/src/lib/sync-utils/get-ze-build-asset.js +21 -0
  50. package/src/lib/sync-utils/get-ze-build-asset.js.map +1 -0
  51. package/src/lib/sync-utils/safe-json-parse.d.ts +1 -0
  52. package/src/lib/sync-utils/safe-json-parse.js +13 -0
  53. package/src/lib/sync-utils/safe-json-parse.js.map +1 -0
  54. package/src/lib/upload/upload-envs.d.ts +5 -0
  55. package/src/lib/upload/upload-envs.js +29 -0
  56. package/src/lib/upload/upload-envs.js.map +1 -0
  57. package/src/lib/upload/upload-file.d.ts +6 -0
  58. package/src/lib/upload/upload-file.js +36 -0
  59. package/src/lib/upload/upload-file.js.map +1 -0
  60. package/src/lib/upload/upload-snapshot.d.ts +5 -0
  61. package/src/lib/upload/upload-snapshot.js +35 -0
  62. package/src/lib/upload/upload-snapshot.js.map +1 -0
  63. package/src/lib/ze-api-requests/get-build-id.d.ts +1 -0
  64. package/src/lib/ze-api-requests/get-build-id.js +30 -0
  65. package/src/lib/ze-api-requests/get-build-id.js.map +1 -0
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # zephyr-agent
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build zephyr-agent` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test zephyr-agent` to execute the unit tests via [Jest](https://jestjs.io).
package/package.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "zephyr-agent",
3
+ "version": "0.0.10",
4
+ "license": "Apache-2.0",
5
+ "dependencies": {
6
+ "zephyr-edge-contract": "0.0.10",
7
+ "jose": "^5.2.4",
8
+ "socket.io-client": "^4.7.5",
9
+ "uuid": "^8.3.2"
10
+ },
11
+ "main": "./src/index.js",
12
+ "type": "commonjs"
13
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ export { zeEnableSnapshotOnEdge } from './lib/actions/ze-enable-snapshot-on-edge';
2
+ export { zeUploadAssets } from './lib/actions/ze-upload-assets';
3
+ export { zeUploadBuildStats } from './lib/actions/ze-upload-build-stats';
4
+ export { zeUploadSnapshot } from './lib/actions/ze-upload-snapshot';
5
+ export { getApplicationConfiguration } from './lib/application-configuration/get-application-configuration';
6
+ export { checkAuth, isTokenStillValid } from './lib/auth/login';
7
+ export { getGitInfo } from './lib/context-utils/ze-util-get-git-info';
8
+ export { getPackageJson } from './lib/context-utils/ze-util-read-package-json';
9
+ export { ConfigurationError } from './lib/custom-errors/configuration-error';
10
+ export { onIndexHtmlResolved, resolveIndexHtml, } from './lib/hacks/resolve-index-html';
11
+ export { zeBuildAssetsMap } from './lib/payload-builders/ze-build-assets-map';
12
+ export { createSnapshot } from './lib/payload-builders/ze-build-snapshot';
13
+ export { logger } from './lib/remote-logs/ze-log-event';
14
+ export { getZeBuildAsset } from './lib/sync-utils/get-ze-build-asset';
15
+ export { safe_json_parse } from './lib/sync-utils/safe-json-parse';
16
+ export { getBuildId } from './lib/ze-api-requests/get-build-id';
package/src/index.js ADDED
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBuildId = exports.safe_json_parse = exports.getZeBuildAsset = exports.logger = exports.createSnapshot = exports.zeBuildAssetsMap = exports.resolveIndexHtml = exports.onIndexHtmlResolved = exports.ConfigurationError = exports.getPackageJson = exports.getGitInfo = exports.isTokenStillValid = exports.checkAuth = exports.getApplicationConfiguration = exports.zeUploadSnapshot = exports.zeUploadBuildStats = exports.zeUploadAssets = exports.zeEnableSnapshotOnEdge = void 0;
4
+ var ze_enable_snapshot_on_edge_1 = require("./lib/actions/ze-enable-snapshot-on-edge");
5
+ Object.defineProperty(exports, "zeEnableSnapshotOnEdge", { enumerable: true, get: function () { return ze_enable_snapshot_on_edge_1.zeEnableSnapshotOnEdge; } });
6
+ var ze_upload_assets_1 = require("./lib/actions/ze-upload-assets");
7
+ Object.defineProperty(exports, "zeUploadAssets", { enumerable: true, get: function () { return ze_upload_assets_1.zeUploadAssets; } });
8
+ var ze_upload_build_stats_1 = require("./lib/actions/ze-upload-build-stats");
9
+ Object.defineProperty(exports, "zeUploadBuildStats", { enumerable: true, get: function () { return ze_upload_build_stats_1.zeUploadBuildStats; } });
10
+ var ze_upload_snapshot_1 = require("./lib/actions/ze-upload-snapshot");
11
+ Object.defineProperty(exports, "zeUploadSnapshot", { enumerable: true, get: function () { return ze_upload_snapshot_1.zeUploadSnapshot; } });
12
+ var get_application_configuration_1 = require("./lib/application-configuration/get-application-configuration");
13
+ Object.defineProperty(exports, "getApplicationConfiguration", { enumerable: true, get: function () { return get_application_configuration_1.getApplicationConfiguration; } });
14
+ var login_1 = require("./lib/auth/login");
15
+ Object.defineProperty(exports, "checkAuth", { enumerable: true, get: function () { return login_1.checkAuth; } });
16
+ Object.defineProperty(exports, "isTokenStillValid", { enumerable: true, get: function () { return login_1.isTokenStillValid; } });
17
+ var ze_util_get_git_info_1 = require("./lib/context-utils/ze-util-get-git-info");
18
+ Object.defineProperty(exports, "getGitInfo", { enumerable: true, get: function () { return ze_util_get_git_info_1.getGitInfo; } });
19
+ var ze_util_read_package_json_1 = require("./lib/context-utils/ze-util-read-package-json");
20
+ Object.defineProperty(exports, "getPackageJson", { enumerable: true, get: function () { return ze_util_read_package_json_1.getPackageJson; } });
21
+ var configuration_error_1 = require("./lib/custom-errors/configuration-error");
22
+ Object.defineProperty(exports, "ConfigurationError", { enumerable: true, get: function () { return configuration_error_1.ConfigurationError; } });
23
+ var resolve_index_html_1 = require("./lib/hacks/resolve-index-html");
24
+ Object.defineProperty(exports, "onIndexHtmlResolved", { enumerable: true, get: function () { return resolve_index_html_1.onIndexHtmlResolved; } });
25
+ Object.defineProperty(exports, "resolveIndexHtml", { enumerable: true, get: function () { return resolve_index_html_1.resolveIndexHtml; } });
26
+ var ze_build_assets_map_1 = require("./lib/payload-builders/ze-build-assets-map");
27
+ Object.defineProperty(exports, "zeBuildAssetsMap", { enumerable: true, get: function () { return ze_build_assets_map_1.zeBuildAssetsMap; } });
28
+ var ze_build_snapshot_1 = require("./lib/payload-builders/ze-build-snapshot");
29
+ Object.defineProperty(exports, "createSnapshot", { enumerable: true, get: function () { return ze_build_snapshot_1.createSnapshot; } });
30
+ var ze_log_event_1 = require("./lib/remote-logs/ze-log-event");
31
+ Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return ze_log_event_1.logger; } });
32
+ var get_ze_build_asset_1 = require("./lib/sync-utils/get-ze-build-asset");
33
+ Object.defineProperty(exports, "getZeBuildAsset", { enumerable: true, get: function () { return get_ze_build_asset_1.getZeBuildAsset; } });
34
+ var safe_json_parse_1 = require("./lib/sync-utils/safe-json-parse");
35
+ Object.defineProperty(exports, "safe_json_parse", { enumerable: true, get: function () { return safe_json_parse_1.safe_json_parse; } });
36
+ var get_build_id_1 = require("./lib/ze-api-requests/get-build-id");
37
+ Object.defineProperty(exports, "getBuildId", { enumerable: true, get: function () { return get_build_id_1.getBuildId; } });
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/zephyr-agent/src/index.ts"],"names":[],"mappings":";;;AAAA,uFAAkF;AAAzE,oIAAA,sBAAsB,OAAA;AAC/B,mEAAgE;AAAvD,kHAAA,cAAc,OAAA;AACvB,6EAAyE;AAAhE,2HAAA,kBAAkB,OAAA;AAC3B,uEAAoE;AAA3D,sHAAA,gBAAgB,OAAA;AAEzB,+GAA4G;AAAnG,4IAAA,2BAA2B,OAAA;AAEpC,0CAAgE;AAAvD,kGAAA,SAAS,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AAErC,iFAAsE;AAA7D,kHAAA,UAAU,OAAA;AACnB,2FAA+E;AAAtE,2HAAA,cAAc,OAAA;AAEvB,+EAA6E;AAApE,yHAAA,kBAAkB,OAAA;AAE3B,qEAGwC;AAFtC,yHAAA,mBAAmB,OAAA;AACnB,sHAAA,gBAAgB,OAAA;AAGlB,kFAA8E;AAArE,uHAAA,gBAAgB,OAAA;AACzB,8EAA0E;AAAjE,mHAAA,cAAc,OAAA;AAEvB,+DAAwD;AAA/C,sGAAA,MAAM,OAAA;AACf,0EAAsE;AAA7D,qHAAA,eAAe,OAAA;AACxB,oEAAmE;AAA1D,kHAAA,eAAe,OAAA;AACxB,mEAAgE;AAAvD,0GAAA,UAAU,OAAA"}
@@ -0,0 +1,2 @@
1
+ import { Snapshot, ZeUploadBuildStats, ZeWebpackPluginOptions } from 'zephyr-edge-contract';
2
+ export declare function zeEnableSnapshotOnEdge(pluginOptions: ZeWebpackPluginOptions, snapshot: Snapshot, envs_jwt: ZeUploadBuildStats): Promise<void>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zeEnableSnapshotOnEdge = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const zephyr_edge_contract_1 = require("zephyr-edge-contract");
6
+ const ze_log_event_1 = require("../remote-logs/ze-log-event");
7
+ const upload_envs_1 = require("../upload/upload-envs");
8
+ function zeEnableSnapshotOnEdge(pluginOptions, snapshot, envs_jwt) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ (0, zephyr_edge_contract_1.ze_log)('Enabling snapshot on edge');
11
+ const logEvent = (0, ze_log_event_1.logger)(pluginOptions);
12
+ envs_jwt.urls.forEach((url) => {
13
+ logEvent({
14
+ level: 'trace',
15
+ action: 'deploy:url',
16
+ message: `deploying to ${url}`,
17
+ });
18
+ });
19
+ const latest = yield (0, upload_envs_1.uploadEnvs)({
20
+ body: envs_jwt,
21
+ application_uid: pluginOptions.application_uid,
22
+ });
23
+ if (!latest) {
24
+ logEvent({
25
+ level: 'error',
26
+ action: 'deploy:edge:failed',
27
+ message: `failed deploying local build to edge`,
28
+ });
29
+ return;
30
+ }
31
+ (0, zephyr_edge_contract_1.ze_log)('Build successfully deployed to edge');
32
+ });
33
+ }
34
+ exports.zeEnableSnapshotOnEdge = zeEnableSnapshotOnEdge;
35
+ //# sourceMappingURL=ze-enable-snapshot-on-edge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ze-enable-snapshot-on-edge.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-agent/src/lib/actions/ze-enable-snapshot-on-edge.ts"],"names":[],"mappings":";;;;AAAA,+DAK8B;AAC9B,8DAAqD;AACrD,uDAAmD;AAEnD,SAAsB,sBAAsB,CAC1C,aAAqC,EACrC,QAAkB,EAClB,QAA4B;;QAE5B,IAAA,6BAAM,EAAC,2BAA2B,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAA,qBAAM,EAAC,aAAa,CAAC,CAAC;QAEvC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5B,QAAQ,CAAC;gBACP,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,gBAAgB,GAAG,EAAE;aAC/B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAU,EAAC;YAC9B,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,aAAa,CAAC,eAAe;SAC/C,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,QAAQ,CAAC;gBACP,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,oBAAoB;gBAC5B,OAAO,EAAE,sCAAsC;aAChD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAA,6BAAM,EAAC,qCAAqC,CAAC,CAAC;IAChD,CAAC;CAAA;AA/BD,wDA+BC"}
@@ -0,0 +1,2 @@
1
+ import { ZeUploadAssetsOptions, ZeWebpackPluginOptions } from 'zephyr-edge-contract';
2
+ export declare function zeUploadAssets(pluginOptions: ZeWebpackPluginOptions, { missingAssets, assetsMap, count }: ZeUploadAssetsOptions): Promise<boolean>;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zeUploadAssets = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const zephyr_edge_contract_1 = require("zephyr-edge-contract");
6
+ const ze_log_event_1 = require("../remote-logs/ze-log-event");
7
+ const upload_file_1 = require("../upload/upload-file");
8
+ function zeUploadAssets(pluginOptions_1, _a) {
9
+ return tslib_1.__awaiter(this, arguments, void 0, function* (pluginOptions, { missingAssets, assetsMap, count }) {
10
+ var _b;
11
+ (0, zephyr_edge_contract_1.ze_log)('Uploading assets.');
12
+ const logEvent = (0, ze_log_event_1.logger)(pluginOptions);
13
+ if (!(missingAssets === null || missingAssets === void 0 ? void 0 : missingAssets.assets) ||
14
+ Object.keys(missingAssets.assets).length === 0) {
15
+ logEvent({
16
+ level: 'info',
17
+ action: 'snapshot:assets:upload:empty',
18
+ message: `no new assets to upload`,
19
+ });
20
+ return true;
21
+ }
22
+ logEvent({
23
+ level: 'info',
24
+ action: 'snapshot:assets:upload:started',
25
+ message: `uploading missing assets to zephyr (queued ${(_b = missingAssets === null || missingAssets === void 0 ? void 0 : missingAssets.assets) === null || _b === void 0 ? void 0 : _b.length} out of ${count})`,
26
+ });
27
+ let totalTime = 0;
28
+ let totalSize = 0;
29
+ const assets = Object.values(missingAssets.assets);
30
+ return yield Promise.all(assets.map((asset) => tslib_1.__awaiter(this, void 0, void 0, function* () {
31
+ var _c;
32
+ const start = Date.now();
33
+ const assetWithBuffer = assetsMap[asset.hash];
34
+ const assetSize = ((_c = assetWithBuffer === null || assetWithBuffer === void 0 ? void 0 : assetWithBuffer.buffer) === null || _c === void 0 ? void 0 : _c.length) / 1024;
35
+ return yield (0, upload_file_1.uploadFile)({
36
+ id: asset.hash,
37
+ asset: assetWithBuffer,
38
+ application_uid: pluginOptions.application_uid,
39
+ })
40
+ .then(() => {
41
+ const fileUploaded = Date.now() - start;
42
+ totalTime += fileUploaded;
43
+ totalSize += assetSize;
44
+ (0, zephyr_edge_contract_1.ze_log)(`file ${asset.path} uploaded in ${fileUploaded}ms (${assetSize.toFixed(2)}kb)`);
45
+ })
46
+ .catch((err) => {
47
+ logEvent({
48
+ level: 'error',
49
+ action: 'snapshot:assets:upload:file:failed',
50
+ message: `failed to upload file ${asset.path} \n ${err.message.toString()}`,
51
+ });
52
+ throw err;
53
+ });
54
+ })))
55
+ .then(() => {
56
+ var _a;
57
+ logEvent({
58
+ level: 'info',
59
+ action: 'snapshot:assets:upload:done',
60
+ message: `uploaded missing assets to zephyr (${(_a = missingAssets === null || missingAssets === void 0 ? void 0 : missingAssets.assets) === null || _a === void 0 ? void 0 : _a.length} assets in ${totalTime}ms, ${totalSize.toFixed(2)}kb)`,
61
+ });
62
+ return true;
63
+ })
64
+ .catch((err) => {
65
+ logEvent({
66
+ level: 'error',
67
+ action: 'snapshot:assets:upload:failed',
68
+ message: `failed uploading missing assets to zephyr \n ${err.message.toString()}`,
69
+ });
70
+ return false;
71
+ });
72
+ });
73
+ }
74
+ exports.zeUploadAssets = zeUploadAssets;
75
+ //# sourceMappingURL=ze-upload-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ze-upload-assets.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-agent/src/lib/actions/ze-upload-assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ZeUploadBuildStats } from 'zephyr-edge-contract';
2
+ export declare function zeUploadBuildStats(dashData: unknown): Promise<{
3
+ value: ZeUploadBuildStats;
4
+ } | void>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zeUploadBuildStats = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const zephyr_edge_contract_1 = require("zephyr-edge-contract");
6
+ function zeUploadBuildStats(dashData) {
7
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
+ (0, zephyr_edge_contract_1.ze_log)('Uploading build stats to Zephyr');
9
+ const token = yield (0, zephyr_edge_contract_1.getToken)();
10
+ const url = new URL(zephyr_edge_contract_1.v2_api_paths.dashboard_path, zephyr_edge_contract_1.ZEPHYR_API_ENDPOINT);
11
+ const res = yield (0, zephyr_edge_contract_1.request)(url, {
12
+ method: 'POST',
13
+ headers: {
14
+ 'Content-Type': 'application/json',
15
+ Authorization: 'Bearer ' + token,
16
+ Accept: 'application/json',
17
+ },
18
+ }, JSON.stringify(dashData)).catch((err) => {
19
+ console.error(`[zephyr]:`, err.message);
20
+ console.error(`[zephyr]: If you believe this is a mistake please make sure you have access to the organization for this application in Zephyr.`);
21
+ console.error(`[zephyr]: Error uploading build stats, deployment is not completed`);
22
+ (0, zephyr_edge_contract_1.ze_error)('Failed to upload build stats', err);
23
+ });
24
+ if (!res || typeof res === 'string')
25
+ return (0, zephyr_edge_contract_1.ze_error)('Failed to upload build stats', res);
26
+ (0, zephyr_edge_contract_1.ze_log)('Build stats uploaded to Zephyr', res);
27
+ return res;
28
+ });
29
+ }
30
+ exports.zeUploadBuildStats = zeUploadBuildStats;
31
+ //# sourceMappingURL=ze-upload-build-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ze-upload-build-stats.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-agent/src/lib/actions/ze-upload-build-stats.ts"],"names":[],"mappings":";;;;AAAA,+DAQ8B;AAE9B,SAAsB,kBAAkB,CACtC,QAAiB;;QAEjB,IAAA,6BAAM,EAAC,iCAAiC,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAA,+BAAQ,GAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,mCAAY,CAAC,cAAc,EAAE,0CAAmB,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,MAAM,IAAA,8BAAO,EACvB,GAAG,EACH;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,SAAS,GAAG,KAAK;gBAChC,MAAM,EAAE,kBAAkB;aAC3B;SACF,EACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CACzB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,CAAC,KAAK,CACX,iIAAiI,CAClI,CAAC;YACF,OAAO,CAAC,KAAK,CACX,oEAAoE,CACrE,CAAC;YACF,IAAA,+BAAQ,EAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YACjC,OAAO,IAAA,+BAAQ,EAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QAEvD,IAAA,6BAAM,EAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC;CAAA;AAjCD,gDAiCC"}
@@ -0,0 +1,2 @@
1
+ import { Snapshot, SnapshotUploadRes, ZeWebpackPluginOptions } from 'zephyr-edge-contract';
2
+ export declare function zeUploadSnapshot(pluginOptions: ZeWebpackPluginOptions, snapshot: Snapshot): Promise<SnapshotUploadRes | undefined>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zeUploadSnapshot = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const zephyr_edge_contract_1 = require("zephyr-edge-contract");
6
+ const ze_log_event_1 = require("../remote-logs/ze-log-event");
7
+ const upload_snapshot_1 = require("../upload/upload-snapshot");
8
+ function zeUploadSnapshot(pluginOptions, snapshot) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ (0, zephyr_edge_contract_1.ze_log)('Uploading snapshot.');
11
+ const { buildEnv } = pluginOptions;
12
+ const logEvent = (0, ze_log_event_1.logger)(pluginOptions);
13
+ const snapUploadMs = Date.now();
14
+ let error;
15
+ const edgeTodo = yield (0, upload_snapshot_1.uploadSnapshot)({
16
+ body: snapshot,
17
+ application_uid: pluginOptions.application_uid,
18
+ }).catch((err) => {
19
+ error = err;
20
+ (0, zephyr_edge_contract_1.ze_error)('Failed to upload snapshot', err);
21
+ });
22
+ if (!edgeTodo || error) {
23
+ logEvent({
24
+ level: 'error',
25
+ action: 'snapshot:upload:failed',
26
+ message: `failed uploading of ${buildEnv} snapshot to zephyr`,
27
+ });
28
+ (0, zephyr_edge_contract_1.ze_error)('Failed to upload snapshot', error);
29
+ return;
30
+ }
31
+ logEvent({
32
+ level: 'info',
33
+ action: 'snapshot:upload:done',
34
+ message: `uploaded ${buildEnv} snapshot in ${Date.now() - snapUploadMs}ms`,
35
+ });
36
+ return edgeTodo;
37
+ });
38
+ }
39
+ exports.zeUploadSnapshot = zeUploadSnapshot;
40
+ //# sourceMappingURL=ze-upload-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ze-upload-snapshot.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-agent/src/lib/actions/ze-upload-snapshot.ts"],"names":[],"mappings":";;;;AAAA,+DAM8B;AAC9B,8DAAqD;AACrD,+DAA2D;AAE3D,SAAsB,gBAAgB,CACpC,aAAqC,EACrC,QAAkB;;QAElB,IAAA,6BAAM,EAAC,qBAAqB,CAAC,CAAC;QAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAA,qBAAM,EAAC,aAAa,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEhC,IAAI,KAAK,CAAC;QACV,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAc,EAAC;YACpC,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,aAAa,CAAC,eAAe;SAC/C,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,KAAK,GAAG,GAAG,CAAC;YACZ,IAAA,+BAAQ,EAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC;YACvB,QAAQ,CAAC;gBACP,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,wBAAwB;gBAChC,OAAO,EAAE,uBAAuB,QAAQ,qBAAqB;aAC9D,CAAC,CAAC;YACH,IAAA,+BAAQ,EAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,QAAQ,CAAC;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,sBAAsB;YAC9B,OAAO,EAAE,YAAY,QAAQ,gBAAgB,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,IAAI;SAC3E,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA;AAnCD,4CAmCC"}
@@ -0,0 +1,6 @@
1
+ import { ZeApplicationConfig } from 'zephyr-edge-contract';
2
+ interface GetApplicationConfigurationProps {
3
+ application_uid: string | undefined;
4
+ }
5
+ export declare function getApplicationConfiguration({ application_uid, }: GetApplicationConfigurationProps): Promise<ZeApplicationConfig>;
6
+ export {};
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getApplicationConfiguration = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jose = tslib_1.__importStar(require("jose"));
6
+ const zephyr_edge_contract_1 = require("zephyr-edge-contract");
7
+ const login_1 = require("../auth/login");
8
+ function loadApplicationConfiguration(_a) {
9
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ application_uid, }) {
10
+ if (!application_uid) {
11
+ throw new Error(`[zephyr] Critical error: application_uid is missing`);
12
+ }
13
+ const token = yield (0, zephyr_edge_contract_1.getToken)();
14
+ const application_config_url = new URL(zephyr_edge_contract_1.v2_api_paths.application_configuration, zephyr_edge_contract_1.ZEPHYR_API_ENDPOINT);
15
+ application_config_url.searchParams.append('application-uid', application_uid);
16
+ const response = yield (0, zephyr_edge_contract_1.request)(application_config_url, {
17
+ headers: { Authorization: 'Bearer ' + token },
18
+ }).catch((v) => (0, zephyr_edge_contract_1.ze_error)('Failed to load application configuration', v));
19
+ if (!response || typeof response === 'string')
20
+ return (0, zephyr_edge_contract_1.ze_error)('Failed to load application configuration', response);
21
+ (0, zephyr_edge_contract_1.ze_log)('Application Configuration loaded', response);
22
+ return Object.assign({}, response.value, {
23
+ jwt_decode: jose.decodeJwt(response.value.jwt),
24
+ });
25
+ });
26
+ }
27
+ function getApplicationConfiguration(_a) {
28
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ application_uid, }) {
29
+ // ze_log('Getting application configuration from node-persist');
30
+ const storedAppConfig = yield (0, zephyr_edge_contract_1.getAppConfig)();
31
+ if (storedAppConfig && (0, login_1.isTokenStillValid)(storedAppConfig.jwt)) {
32
+ return storedAppConfig;
33
+ }
34
+ (0, zephyr_edge_contract_1.ze_log)('Loading Application Configuration from API');
35
+ const loadedAppConfig = yield loadApplicationConfiguration({
36
+ application_uid,
37
+ });
38
+ (0, zephyr_edge_contract_1.ze_log)('Saving Application Configuration to node-persist');
39
+ if (!loadedAppConfig)
40
+ throw new Error('Failed to load application configuration');
41
+ yield (0, zephyr_edge_contract_1.saveAppConfig)(loadedAppConfig);
42
+ return loadedAppConfig;
43
+ });
44
+ }
45
+ exports.getApplicationConfiguration = getApplicationConfiguration;
46
+ //# sourceMappingURL=get-application-configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-application-configuration.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-agent/src/lib/application-configuration/get-application-configuration.ts"],"names":[],"mappings":";;;;AAAA,mDAA6B;AAC7B,+DAU8B;AAC9B,yCAAkD;AAMlD,SAAe,4BAA4B;iEAAC,EAC1C,eAAe,GACkB;QACjC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAA,+BAAQ,GAAE,CAAC;QAC/B,MAAM,sBAAsB,GAAG,IAAI,GAAG,CACpC,mCAAY,CAAC,yBAAyB,EACtC,0CAAmB,CACpB,CAAC;QACF,sBAAsB,CAAC,YAAY,CAAC,MAAM,CACxC,iBAAiB,EACjB,eAAe,CAChB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAO,EAC5B,sBAAsB,EACtB;YACE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,GAAG,KAAK,EAAE;SAC9C,CACF,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,+BAAQ,EAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC,CAAC;QAExE,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAC3C,OAAO,IAAA,+BAAQ,EAAC,0CAA0C,EAAE,QAAQ,CAAC,CAAC;QAExE,IAAA,6BAAM,EAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE;YACvC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC;CAAA;AAED,SAAsB,2BAA2B;iEAAC,EAChD,eAAe,GACkB;QACjC,iEAAiE;QACjE,MAAM,eAAe,GAAG,MAAM,IAAA,mCAAY,GAAE,CAAC;QAC7C,IAAI,eAAe,IAAI,IAAA,yBAAiB,EAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,IAAA,6BAAM,EAAC,4CAA4C,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,MAAM,4BAA4B,CAAC;YACzD,eAAe;SAChB,CAAC,CAAC;QACH,IAAA,6BAAM,EAAC,kDAAkD,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe;YAClB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAE9D,MAAM,IAAA,oCAAa,EAAC,eAAe,CAAC,CAAC;QACrC,OAAO,eAAe,CAAC;IACzB,CAAC;CAAA;AAnBD,kEAmBC"}
@@ -0,0 +1,23 @@
1
+ export declare function generateSessionKey(): string;
2
+ export interface GetPersonalAccessTokenFromWebsocketOptions {
3
+ openBrowser?: boolean;
4
+ }
5
+ export declare function getPersonalAccessTokenFromWebsocket({ openBrowser }?: GetPersonalAccessTokenFromWebsocketOptions): Promise<string>;
6
+ export interface AuthOptions {
7
+ state: string;
8
+ responseType?: string;
9
+ scope?: string;
10
+ }
11
+ export declare function getAuthenticationURL(options: AuthOptions): Promise<string>;
12
+ /**
13
+ * Check if the user is already authenticated. If not, open a browser window to authenticate.
14
+ * Display a message to the console.
15
+ * @return The token as a string.
16
+ */
17
+ export declare function checkAuth(): Promise<string>;
18
+ /**
19
+ * Decides whether the token is still valid based on its expiration time.
20
+ * @param token The token to check.
21
+ * @return boolean indicating if the token is still valid.
22
+ */
23
+ export declare function isTokenStillValid(token: string): boolean;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTokenStillValid = exports.checkAuth = exports.getAuthenticationURL = exports.getPersonalAccessTokenFromWebsocket = exports.generateSessionKey = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jose = tslib_1.__importStar(require("jose"));
6
+ const uuid_1 = require("uuid");
7
+ const open = (str) => new Function(`return import("open")`)().then(({ default: open }) => open(str));
8
+ const websocket_1 = require("./websocket");
9
+ const zephyr_edge_contract_1 = require("zephyr-edge-contract");
10
+ function generateSessionKey() {
11
+ return (0, uuid_1.v4)().replace(/-/g, '');
12
+ }
13
+ exports.generateSessionKey = generateSessionKey;
14
+ function getPersonalAccessTokenFromWebsocket() {
15
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ openBrowser } = {
16
+ openBrowser: true,
17
+ }) {
18
+ const sessionKey = generateSessionKey();
19
+ if (openBrowser) {
20
+ const authUrl = yield getAuthenticationURL({ state: sessionKey });
21
+ yield open(authUrl);
22
+ }
23
+ return yield subscribeToWsEvents(sessionKey);
24
+ });
25
+ }
26
+ exports.getPersonalAccessTokenFromWebsocket = getPersonalAccessTokenFromWebsocket;
27
+ function getAuthenticationURL(options) {
28
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
29
+ const { state } = options;
30
+ const loginUrl = new URL(zephyr_edge_contract_1.v2_api_paths.authorize_link, zephyr_edge_contract_1.ZEPHYR_API_ENDPOINT);
31
+ loginUrl.searchParams.append('state', state);
32
+ return (0, zephyr_edge_contract_1.request)(loginUrl);
33
+ });
34
+ }
35
+ exports.getAuthenticationURL = getAuthenticationURL;
36
+ /**
37
+ * Check if the user is already authenticated. If not, open a browser window to authenticate.
38
+ * Display a message to the console.
39
+ * @return The token as a string.
40
+ */
41
+ function checkAuth() {
42
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
43
+ const token = yield (0, zephyr_edge_contract_1.getToken)();
44
+ if (token) {
45
+ // Check if the token has a valid expiration date.
46
+ if (isTokenStillValid(token)) {
47
+ console.log('[zephyr] You are already logged in');
48
+ return token;
49
+ }
50
+ yield (0, zephyr_edge_contract_1.removeToken)();
51
+ }
52
+ // No valid token found; initiate authentication.
53
+ const newToken = yield authenticateUser();
54
+ console.log('[zephyr] You are logged in');
55
+ return newToken;
56
+ });
57
+ }
58
+ exports.checkAuth = checkAuth;
59
+ /**
60
+ * Decides whether the token is still valid based on its expiration time.
61
+ * @param token The token to check.
62
+ * @return boolean indicating if the token is still valid.
63
+ */
64
+ function isTokenStillValid(token) {
65
+ const decodedToken = jose.decodeJwt(token);
66
+ if (!decodedToken.exp) {
67
+ return false;
68
+ }
69
+ return new Date(decodedToken.exp * 1000) > new Date();
70
+ }
71
+ exports.isTokenStillValid = isTokenStillValid;
72
+ /**
73
+ * Initiates user authentication and handles token storage.
74
+ * @return The new token as a string.
75
+ */
76
+ function authenticateUser() {
77
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
78
+ const token = yield getPersonalAccessTokenFromWebsocket();
79
+ yield (0, zephyr_edge_contract_1.saveToken)(token);
80
+ return token;
81
+ });
82
+ }
83
+ function subscribeToWsEvents(sessionKey) {
84
+ return new Promise((resolve, reject) => {
85
+ const socket = (0, websocket_1.createSocket)(zephyr_edge_contract_1.ZEPHYR_API_ENDPOINT);
86
+ const cleanup = () => (0, websocket_1.disposeSocket)(socket);
87
+ socket.on('connect', () => {
88
+ // console.debug('WS Connected');
89
+ });
90
+ socket.on('disconnect', () => cleanup());
91
+ const roomSocket = socket.emit('joinAccessTokenRoom', {
92
+ state: sessionKey,
93
+ });
94
+ roomSocket.on('access-token', (token) => {
95
+ cleanup();
96
+ resolve(token);
97
+ });
98
+ roomSocket.on('access-token-error', (msg) => {
99
+ console.error('ERROR:', msg);
100
+ cleanup();
101
+ reject(new Error(msg));
102
+ });
103
+ });
104
+ }
105
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-agent/src/lib/auth/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Socket } from 'socket.io-client';
2
+ interface ClientToServerEvents {
3
+ joinAccessTokenRoom: (props: {
4
+ state: string;
5
+ }) => void;
6
+ }
7
+ interface ServerToClientEvents {
8
+ 'access-token': (token: string) => void;
9
+ 'access-token-error': (msg: string) => void;
10
+ }
11
+ export declare function createSocket(endpoint: string): Socket<ServerToClientEvents, ClientToServerEvents>;
12
+ export declare function disposeSocket(socket: Socket): void;
13
+ export {};
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.disposeSocket = exports.createSocket = void 0;
4
+ const socket_io_client_1 = require("socket.io-client");
5
+ function createSocket(endpoint) {
6
+ return (0, socket_io_client_1.io)(endpoint);
7
+ }
8
+ exports.createSocket = createSocket;
9
+ function disposeSocket(socket) {
10
+ socket.disconnect();
11
+ socket.close();
12
+ }
13
+ exports.disposeSocket = disposeSocket;
14
+ //# sourceMappingURL=websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-agent/src/lib/auth/websocket.ts"],"names":[],"mappings":";;;AAAA,uDAA0D;AAW1D,SAAgB,YAAY,CAC1B,QAAgB;IAEhB,OAAO,IAAA,qBAAQ,EAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAJD,oCAIC;AAED,SAAgB,aAAa,CAAC,MAAc;IAC1C,MAAM,CAAC,UAAU,EAAE,CAAC;IACpB,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC;AAHD,sCAGC"}
@@ -0,0 +1,13 @@
1
+ export interface GitInfo {
2
+ git: {
3
+ name: string;
4
+ email: string;
5
+ branch: string;
6
+ commit: string;
7
+ };
8
+ app: {
9
+ org: string | undefined;
10
+ project: string | undefined;
11
+ };
12
+ }
13
+ export declare function getGitInfo(): GitInfo | void;
@@ -0,0 +1,55 @@
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
+ const configuration_error_1 = require("../custom-errors/configuration-error");
6
+ function getGitInfo() {
7
+ var _a;
8
+ try {
9
+ const username = (0, node_child_process_1.execSync)('git config user.name').toString().trim();
10
+ const email = (0, node_child_process_1.execSync)('git config user.email').toString().trim();
11
+ const remoteOrigin = (0, node_child_process_1.execSync)('git config --get remote.origin.url')
12
+ .toString()
13
+ .trim();
14
+ const branch = (0, node_child_process_1.execSync)('git rev-parse --abbrev-ref HEAD')
15
+ .toString()
16
+ .trim();
17
+ const commitHash = (0, node_child_process_1.execSync)('git rev-parse HEAD').toString().trim();
18
+ // parse remote origin url to get the organization and repository name
19
+ const urlParts = (_a = remoteOrigin
20
+ // Remove the protocol (like https://) and user info
21
+ .replace(/.+@/, '')
22
+ // Remove the .git at the end
23
+ .replace(/.git$/, '')
24
+ // Split at the colon to separate domain from path
25
+ .split(':')
26
+ // Take the last part, which is the path
27
+ .pop()) === null || _a === void 0 ? void 0 : _a.split('/');
28
+ const organization = urlParts && (urlParts === null || urlParts === void 0 ? void 0 : 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 === null || organization === void 0 ? void 0 : organization.toLowerCase(),
43
+ project: repositoryName === null || repositoryName === void 0 ? void 0 : repositoryName.toLowerCase(),
44
+ },
45
+ };
46
+ }
47
+ catch (error) {
48
+ throw new configuration_error_1.ConfigurationError(`git is not configured properly \n
49
+ - please set git user.name and user.email \n
50
+ - please set valid 'git remote origin' \n
51
+ `);
52
+ }
53
+ }
54
+ exports.getGitInfo = getGitInfo;
55
+ //# sourceMappingURL=ze-util-get-git-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ze-util-get-git-info.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-agent/src/lib/context-utils/ze-util-get-git-info.ts"],"names":[],"mappings":";;;AAAA,2DAA8C;AAC9C,8EAA0E;AAe1E,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,MAAA,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,0CAEJ,KAAK,CAAC,GAAG,CAAC,CAAC;QAEf,MAAM,YAAY,GAChB,QAAQ,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,IAAG,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,aAAZ,YAAY,uBAAZ,YAAY,CAAE,WAAW,EAAE;gBAChC,OAAO,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,EAAE;aACvC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,wCAAkB,CAAC;;;KAG5B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AApDD,gCAoDC"}
@@ -0,0 +1,7 @@
1
+ interface PackageJson {
2
+ name: string;
3
+ version: string;
4
+ dependencies?: Record<string, string>;
5
+ }
6
+ export declare function getPackageJson(context: string | undefined): PackageJson | undefined;
7
+ export {};