rollup-plugin-zephyr 0.0.25 → 0.0.27

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.
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.withZephyr = void 0;
4
- const tslib_1 = require("tslib");
5
- const isCI = require("is-ci");
6
4
  const zephyr_agent_1 = require("zephyr-agent");
7
- const zephyr_edge_contract_1 = require("zephyr-edge-contract");
8
- const get_assets_map_1 = require("./utils/get-assets-map");
9
- const get_dash_data_1 = require("./utils/get-dash-data");
5
+ const get_assets_map_1 = require("./transform/get-assets-map");
6
+ const node_process_1 = require("node:process");
10
7
  const getInputFolder = (options) => {
11
8
  if (typeof options.input === 'string')
12
9
  return options.input;
@@ -14,105 +11,25 @@ const getInputFolder = (options) => {
14
11
  return options.input[0];
15
12
  if (typeof options.input === 'object')
16
13
  return Object.values(options.input)[0];
17
- return process.cwd();
14
+ return (0, node_process_1.cwd)();
18
15
  };
19
16
  function withZephyr() {
20
- let _state;
17
+ const { zephyr_engine_defer, zephyr_defer_create } = zephyr_agent_1.ZephyrEngine.defer_create();
21
18
  return {
22
19
  name: 'with-zephyr',
23
- buildStart: (options) => tslib_1.__awaiter(this, void 0, void 0, function* () {
24
- _state = (function zephyr_init() {
25
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
26
- (0, zephyr_edge_contract_1.ze_log)('Setting up zephyr agent configuration.');
27
- const _zephyrOptions = { wait_for_index_html: false };
28
- const path_to_execution_dir = getInputFolder(options);
29
- const [packageJson, gitInfo] = yield Promise.all([(0, zephyr_agent_1.getPackageJson)(path_to_execution_dir), (0, zephyr_agent_1.getGitInfo)()]);
30
- const application_uid = (0, zephyr_edge_contract_1.createApplicationUID)({
31
- org: gitInfo.app.org,
32
- project: gitInfo.app.project,
33
- name: packageJson.name,
34
- });
35
- yield (0, zephyr_agent_1.checkAuth)();
36
- const [appConfig, buildId, hash_set] = yield Promise.all([
37
- (0, zephyr_agent_1.getApplicationConfiguration)({ application_uid }),
38
- (0, zephyr_agent_1.getBuildId)(application_uid),
39
- (0, zephyr_agent_1.get_hash_list)(application_uid),
40
- ]);
41
- const { username, email, EDGE_URL } = appConfig;
42
- (0, zephyr_edge_contract_1.ze_log)('Got application configuration: ', {
43
- username,
44
- email,
45
- EDGE_URL,
46
- });
47
- if (!buildId)
48
- return (0, zephyr_edge_contract_1.ze_error)('ERR_GET_BUILD_ID');
49
- (0, zephyr_edge_contract_1.ze_log)(`Got build id: ${buildId}`);
50
- const pluginOptions = {
51
- pluginName: 'rollup-plugin-zephyr',
52
- application_uid,
53
- buildEnv: 'local',
54
- username,
55
- app: {
56
- name: packageJson.name,
57
- version: packageJson.version,
58
- org: gitInfo.app.org,
59
- project: gitInfo.app.project,
60
- },
61
- git: gitInfo.git,
62
- isCI: isCI,
63
- zeConfig: {
64
- user: username,
65
- edge_url: EDGE_URL,
66
- buildId: buildId,
67
- },
68
- mfConfig: void 0,
69
- wait_for_index_html: _zephyrOptions === null || _zephyrOptions === void 0 ? void 0 : _zephyrOptions.wait_for_index_html,
70
- };
71
- const logEvent = (0, zephyr_agent_1.logger)(pluginOptions);
72
- logEvent({
73
- level: 'info',
74
- action: 'build:info:user',
75
- ignore: true,
76
- message: `Hi ${(0, zephyr_edge_contract_1.cyanBright)(username)}!\n${(0, zephyr_edge_contract_1.white)(application_uid)}${(0, zephyr_edge_contract_1.yellow)(`#${buildId}`)}\n`,
77
- });
78
- return {
79
- appConfig,
80
- buildId,
81
- hash_set,
82
- pluginOptions,
83
- };
84
- });
85
- })();
86
- }),
87
- writeBundle: (options, bundle) => tslib_1.__awaiter(this, void 0, void 0, function* () {
88
- const zeStart = Date.now();
89
- yield (function zephyr_upload(props) {
90
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
91
- (0, zephyr_edge_contract_1.ze_log)('zephyr agent started...');
92
- const { state, bundle } = props;
93
- const _state = yield state;
94
- if (!_state)
95
- return (0, zephyr_edge_contract_1.ze_error)('ERR_INITIALIZE_ZEPHYR_AGENT');
96
- const { appConfig, hash_set, pluginOptions } = _state;
97
- const assetsMap = (0, get_assets_map_1.getAssetsMap)(bundle);
98
- const missingAssets = (0, zephyr_agent_1.get_missing_assets)({ assetsMap, hash_set });
99
- yield (0, zephyr_agent_1.upload)({
100
- pluginOptions,
101
- assets: {
102
- assetsMap,
103
- missingAssets,
104
- outputPath: options.dir,
105
- count: Object.keys(bundle).length,
106
- },
107
- // @ts-expect-error TODO: fix this types to get legacy and current working
108
- getDashData: get_dash_data_1.getDashData,
109
- appConfig,
110
- zeStart,
111
- });
112
- });
113
- })({ state: _state, bundle });
114
- console.log('zephyr agent done in', Date.now() - zeStart, 'ms');
115
- }),
20
+ buildStart: async (options) => {
21
+ const path_to_execution_dir = getInputFolder(options);
22
+ zephyr_defer_create(path_to_execution_dir);
23
+ },
24
+ writeBundle: async (options, bundle) => {
25
+ const zephyr_engine = await zephyr_engine_defer;
26
+ await zephyr_engine.start_new_build();
27
+ await zephyr_engine.upload_assets({
28
+ assetsMap: (0, get_assets_map_1.getAssetsMap)(bundle),
29
+ buildStats: await (0, zephyr_agent_1.zeBuildDashData)(zephyr_engine),
30
+ });
31
+ await zephyr_engine.build_finished();
32
+ },
116
33
  };
117
34
  }
118
35
  exports.withZephyr = withZephyr;
@@ -1 +1 @@
1
- {"version":3,"file":"rollup-plugin-zephyr.js","sourceRoot":"","sources":["../../src/lib/rollup-plugin-zephyr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollup-plugin-zephyr.js","sourceRoot":"","sources":["../../src/lib/rollup-plugin-zephyr.ts"],"names":[],"mappings":";;;AACA,+CAA6D;AAC7D,+DAA0D;AAC1D,+CAAmC;AAEnC,MAAM,cAAc,GAAG,CAAC,OAAqB,EAAU,EAAE;IACvD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,OAAO,IAAA,kBAAG,GAAE,CAAC;AACf,CAAC,CAAC;AAEF,SAAgB,UAAU;IACxB,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,2BAAY,CAAC,YAAY,EAAE,CAAC;IAEjF,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,KAAK,EAAE,OAAqB,EAAE,EAAE;YAC1C,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YACtD,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC7C,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,OAAgC,EAAE,MAAoB,EAAE,EAAE;YAC5E,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC;YAChD,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;YACtC,MAAM,aAAa,CAAC,aAAa,CAAC;gBAChC,SAAS,EAAE,IAAA,6BAAY,EAAC,MAAM,CAAC;gBAC/B,UAAU,EAAE,MAAM,IAAA,8BAAe,EAAC,aAAa,CAAC;aACjD,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC;QACvC,CAAC;KACF,CAAC;AACJ,CAAC;AAnBD,gCAmBC"}
@@ -1,3 +1,3 @@
1
1
  import { OutputBundle } from 'rollup';
2
- import { ZeBuildAssetsMap } from 'zephyr-edge-contract';
2
+ import { ZeBuildAssetsMap } from 'zephyr-agent';
3
3
  export declare function getAssetsMap(assets: OutputBundle): ZeBuildAssetsMap;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-assets-map.js","sourceRoot":"","sources":["../../../src/lib/transform/get-assets-map.ts"],"names":[],"mappings":";;;AACA,+CAAgE;AAEhE,SAAgB,YAAY,CAAC,MAAoB;IAC/C,OAAO,IAAA,6BAAc,EAAC,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAFD,oCAEC;AAED,MAAM,aAAa,GAAG,CAAC,KAAgC,EAAsB,EAAE;IAC7E,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,KAAK,OAAO;YACV,OAAO,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;gBACrC,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C;YACE,OAAO,KAAK,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAgC,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC"}
package/dist/package.json CHANGED
@@ -1,16 +1,18 @@
1
1
  {
2
2
  "name": "rollup-plugin-zephyr",
3
- "version": "0.0.25",
3
+ "version": "0.0.27",
4
4
  "license": "Apache-2.0",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
+ "scripts": {
9
+ "build": "nx run rollup-plugin-zephyr:build"
10
+ },
8
11
  "dependencies": {
9
12
  "is-ci": "^3.0.1",
10
13
  "rollup": "^4",
11
14
  "tslib": "^2",
12
- "zephyr-agent": "workspace:*",
13
- "zephyr-edge-contract": "workspace:*"
15
+ "zephyr-agent": "workspace:*"
14
16
  },
15
17
  "keywords": [
16
18
  "rollup",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rollup-plugin-zephyr",
3
- "version": "0.0.25",
3
+ "version": "0.0.27",
4
4
  "license": "Apache-2.0",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -9,8 +9,7 @@
9
9
  "is-ci": "^3.0.1",
10
10
  "rollup": "^4",
11
11
  "tslib": "^2",
12
- "zephyr-agent": "0.0.25",
13
- "zephyr-edge-contract": "0.0.25"
12
+ "zephyr-agent": "0.0.27"
14
13
  },
15
14
  "keywords": [
16
15
  "rollup",
@@ -20,5 +19,8 @@
20
19
  ],
21
20
  "devDependencies": {
22
21
  "@types/is-ci": "^3.0.4"
22
+ },
23
+ "scripts": {
24
+ "build": "nx run rollup-plugin-zephyr:build"
23
25
  }
24
26
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-assets-map.js","sourceRoot":"","sources":["../../../src/lib/utils/get-assets-map.ts"],"names":[],"mappings":";;;AACA,+CAA8C;AAG9C,SAAgB,YAAY,CAAC,MAAoB;IAC/C,OAAO,IAAA,6BAAc,EAAC,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAFD,oCAEC;AAED,MAAM,aAAa,GAAG,CACpB,KAAgC,EACZ,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,KAAK,OAAO;YACV,OAAO,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;gBACrC,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C;YACE,OAAO,KAAK,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAgC,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC"}
@@ -1,39 +0,0 @@
1
- import { ZeApplicationConfig, ZephyrPluginOptions } from 'zephyr-edge-contract';
2
- interface GetDashDataOptions {
3
- appConfig: ZeApplicationConfig;
4
- pluginOptions: ZephyrPluginOptions;
5
- }
6
- export declare function getDashData({ pluginOptions, appConfig }: GetDashDataOptions): {
7
- id: string;
8
- name: string;
9
- environment: string;
10
- edge: {
11
- url: string;
12
- };
13
- app: {
14
- org: string;
15
- project: string;
16
- name: string;
17
- version: string;
18
- } & {
19
- buildId: string;
20
- };
21
- version: string;
22
- git: {
23
- name: string;
24
- email: string;
25
- branch: string;
26
- commit: string;
27
- };
28
- context: {
29
- isCI: boolean;
30
- };
31
- dependencies: never[];
32
- devDependencies: never[];
33
- optionalDependencies: never[];
34
- metadata: {};
35
- overrides: never[];
36
- consumes: never[];
37
- modules: never[];
38
- };
39
- export {};
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDashData = void 0;
4
- const zephyr_agent_1 = require("zephyr-agent");
5
- function getDashData({ pluginOptions, appConfig }) {
6
- return (0, zephyr_agent_1.zeGetDashData)({ pluginOptions, appConfig });
7
- }
8
- exports.getDashData = getDashData;
9
- //# sourceMappingURL=get-dash-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-dash-data.js","sourceRoot":"","sources":["../../../src/lib/utils/get-dash-data.ts"],"names":[],"mappings":";;;AACA,+CAA6C;AAO7C,SAAgB,WAAW,CAAC,EAAE,aAAa,EAAE,SAAS,EAAsB;IAC1E,OAAO,IAAA,4BAAa,EAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;AACrD,CAAC;AAFD,kCAEC"}
File without changes