@speedkit/cli 2.42.0 → 2.43.0

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/.env.sample +48 -0
  2. package/CHANGELOG.md +16 -0
  3. package/README.md +1 -1
  4. package/dist/helpers/race.d.ts +3 -0
  5. package/dist/helpers/race.js +2 -0
  6. package/dist/services/config-api/client.d.ts +3 -3
  7. package/dist/services/config-api/client.js +15 -3
  8. package/dist/services/config-api/{factory/config-api-service-factory.d.ts → config-api-factory.d.ts} +3 -3
  9. package/dist/services/config-api/{factory/config-api-service-factory.js → config-api-factory.js} +10 -9
  10. package/dist/services/config-api/config-api-model.d.ts +12 -0
  11. package/dist/services/config-api/{context/config-api-context.js → config-api-model.js} +2 -1
  12. package/dist/services/config-api/config-api-service.d.ts +2 -2
  13. package/dist/services/config-api/config-api-service.js +2 -1
  14. package/dist/services/config-api/{factory/entity-manager-factory.d.ts → entity-manager-factory.d.ts} +1 -1
  15. package/dist/services/config-api/entity-manager-factory.js +15 -0
  16. package/dist/services/config-api/error/json-response-error.d.ts +1 -1
  17. package/dist/services/config-api/error/json-response-error.js +2 -1
  18. package/dist/services/config-api/error/login-error.d.ts +1 -1
  19. package/dist/services/config-api/error/login-error.js +3 -2
  20. package/dist/services/config-api/index.d.ts +3 -0
  21. package/dist/services/config-api/index.js +6 -0
  22. package/dist/services/deploy/builder/install-resource-builder.d.ts +3 -3
  23. package/dist/services/deploy/checks/post-deploy/revalidated-module-check.d.ts +1 -2
  24. package/dist/services/deploy/checks/post-deploy/revalidated-module-check.js +13 -12
  25. package/dist/services/deploy/checks/post-deploy/save-files-check.d.ts +2 -1
  26. package/dist/services/deploy/checks/post-deploy/save-files-check.js +18 -5
  27. package/dist/services/deploy/checks/pre-deploy/split-change-check.d.ts +1 -1
  28. package/dist/services/deploy/deploy-service-factory.js +3 -4
  29. package/dist/services/deploy/error/check-module-file-error.d.ts +4 -0
  30. package/dist/services/deploy/error/check-module-file-error.js +9 -0
  31. package/dist/services/deploy/error/deploy-install-resource-error.d.ts +4 -0
  32. package/dist/services/deploy/error/deploy-install-resource-error.js +9 -0
  33. package/dist/services/deploy/error/deploy-module-file-error.d.ts +4 -0
  34. package/dist/services/deploy/error/deploy-module-file-error.js +9 -0
  35. package/dist/services/deploy/error/deploy-server-config-error.d.ts +4 -0
  36. package/dist/services/deploy/error/deploy-server-config-error.js +9 -0
  37. package/dist/services/deploy/error/safe-file-error.d.ts +4 -0
  38. package/dist/services/deploy/error/safe-file-error.js +9 -0
  39. package/dist/services/deploy/handler/customer-config-handler.d.ts +2 -2
  40. package/dist/services/deploy/handler/install-resource-handler.d.ts +3 -3
  41. package/dist/services/deploy/handler/install-resource-handler.js +28 -4
  42. package/dist/services/deploy/handler/module-handler.d.ts +2 -2
  43. package/dist/services/deploy/handler/module-handler.js +10 -1
  44. package/dist/services/deploy/handler/server-config-handler.d.ts +2 -2
  45. package/dist/services/deploy/handler/server-config-handler.js +14 -4
  46. package/dist/services/integration-api/handler/install-resource-handler.d.ts +0 -7
  47. package/dist/services/integration-api/handler/install-resource-handler.js +1 -16
  48. package/dist/services/onboarding/config-renderer/speed-kit-install-context.d.ts +1 -0
  49. package/dist/services/onboarding/config-renderer/speed-kit-install-context.js +11 -3
  50. package/dist/services/onboarding/fetch-event-handler.d.ts +1 -1
  51. package/dist/services/onboarding/fetch-event-handler.js +2 -3
  52. package/dist/services/onboarding/onboarding-model.js +2 -1
  53. package/dist/services/onboarding/onboarding-service-factory.js +3 -4
  54. package/dist/services/onboarding/server-config/index.d.ts +1 -1
  55. package/dist/services/prewarm/pre-warm-factory.js +2 -4
  56. package/dist/services/pull/pull-service-factory.js +3 -5
  57. package/dist/services/pull/pull-service.d.ts +1 -1
  58. package/oclif.manifest.json +1 -1
  59. package/package.json +3 -2
  60. package/dist/services/config-api/context/config-api-context.d.ts +0 -4
  61. package/dist/services/config-api/factory/entity-manager-factory.js +0 -21
  62. package/dist/services/config-api/interface/config-api-context-interface.d.ts +0 -3
  63. package/dist/services/config-api/interface/config-api-context-interface.js +0 -2
  64. package/dist/services/config-api/interface/request-extension-interface.d.ts +0 -5
  65. package/dist/services/config-api/interface/request-extension-interface.js +0 -2
package/.env.sample ADDED
@@ -0,0 +1,48 @@
1
+ # This file serves as a template for the environment variables used by this project.
2
+ #
3
+ # INSTRUCTIONS:
4
+ # 1. Copy this file and rename to '.env'.
5
+ # 2. Replace all placeholder values with your actual values.
6
+ # 3. DO NOT commit the '.env' file to version control.
7
+ #
8
+ # IMPORTANT:
9
+ # Protect your sensitive data. This sample file is meant for
10
+ # reference and should not contain real or sensitive values.
11
+
12
+ # CHROME_PATH='C:\Program Files\Google\Chrome\Application\chrome.exe' # Windows
13
+ # CHROME_PATH='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' # Mac
14
+ # CHROME_PATH='/opt/homebrew/bin/chromium' # Mac M1 -> run `brew install chromium --no-quarantine` to install an arm64-only chromium
15
+ # CHROME_PATH='/usr/bin/google-chrome' # Linux
16
+
17
+ # CHROME_USER_PROFILE_PATH='/Users/<USER>/Library/Application Support/Google/Chrome/Default/' # Mac
18
+ # CHROME_USER_PROFILE_PATH='<CHROME_USER_PROFILE_PATH>' # other
19
+
20
+ # Chrome Test Browser will use an existing sub-profile named 'Default'
21
+ # within CHROME_USER_PROFILE_PATH or creates one automatically on start up.
22
+
23
+ # Slack Deploy Token
24
+ # SLACK_TOKEN='<SLACK_TOKEN_FROM_1PASSWORD>'
25
+
26
+ # Chrome Extension Local Paths
27
+ # CHROME_EXTENSION_PATHS='<SPEED_KIT_EXTENSION_DIST_PATH>,<CHROME_EXTENSION_DIST_PATH_1>,<CHROME_EXTENSION_DIST_PATH_2>'
28
+
29
+ # Default SK Test App Name
30
+ # TEST_APP='<APP_NAME>'
31
+
32
+ # Diff Tool Configuration Priority:
33
+ # 1. DIFF_EXEC + DIFF_EXEC_TEMPLATE: Primary method using a custom diff command.
34
+ # 2. Global `idea` alias: Secondary fallback using IntelliJ's shell binary.
35
+ # 3. IDEA_INITIAL_DIRECTORY: Tertiary fallback if prior methods are undefined.
36
+
37
+ # Specify the executable command of your preferred diff tool. This is the primary method of defining a diff tool.
38
+ # Examples: "vscode --diff", "codium --diff", "diff", "idea diff"
39
+ # DIFF_EXEC='<DIFF_TOOL_EXEC>'
40
+
41
+ # Template for the diff operation using DIFF_EXEC. Defaults to "$exec $file1 $file2".
42
+ # Modify this to change the file comparison order of the executed diff command.
43
+ # DIFF_EXEC_TEMPLATE='$exec $file1 $file2'
44
+
45
+ # Path to IntelliJ's shell binary directory, used if DIFF_EXEC and the global `idea` alias fail or are not defined.
46
+ # Configure this to fallback to diff operations via IntelliJ IDEA.
47
+ # Will be used as: "<IDEA_INITIAL_DIRECTORY>/idea diff pathToFile1 pathToFile2"
48
+ # IDEA_INITIAL_DIRECTORY='<IDEA_INITIAL_DIRECTORY>'
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ # [2.43.0](https://gitlab.orestes.info/baqend/speed-kit-cli/compare/v2.42.1...v2.43.0) (2024-07-19)
2
+
3
+
4
+ ### Features
5
+
6
+ * **config-api:** handle different login errorCases ([6c57e3a](https://gitlab.orestes.info/baqend/speed-kit-cli/commit/6c57e3a6e61e91bda5ed425bafbe6c1db3646867))
7
+ * **deploy:** add loading spinner for different actions ([5eb379d](https://gitlab.orestes.info/baqend/speed-kit-cli/commit/5eb379d234162615d2f1f0353c8afc161aad7476))
8
+ * **deploy:** add message for unchanged installResource ([650d121](https://gitlab.orestes.info/baqend/speed-kit-cli/commit/650d1214f04df7a2c7552de69a5d1c3d646c0bc6))
9
+
10
+ ## [2.42.1](https://gitlab.orestes.info/baqend/speed-kit-cli/compare/v2.42.0...v2.42.1) (2024-07-19)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **predictivePreloading:** set correct paths to predictivePreloading-module ([552f83a](https://gitlab.orestes.info/baqend/speed-kit-cli/commit/552f83a16dfd8b546553623081f662188a0081d9))
16
+
1
17
  # [2.42.0](https://gitlab.orestes.info/baqend/speed-kit-cli/compare/v2.41.4...v2.42.0) (2024-07-17)
2
18
 
3
19
 
package/README.md CHANGED
@@ -21,7 +21,7 @@ $ npm install -g @speedkit/cli
21
21
  $ sk COMMAND
22
22
  running command...
23
23
  $ sk (--version)
24
- @speedkit/cli/2.42.0 linux-x64 node-v20.15.1
24
+ @speedkit/cli/2.43.0 linux-x64 node-v20.15.1
25
25
  $ sk --help [COMMAND]
26
26
  USAGE
27
27
  $ sk COMMAND
@@ -1 +1,4 @@
1
+ import ApplicationError from "../services/error-handling/error/application-error";
2
+ export declare class RaceTimeOutError extends ApplicationError {
3
+ }
1
4
  export declare function race<T>(promise: Promise<T>, timeout?: number): Promise<T>;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RaceTimeOutError = void 0;
3
4
  exports.race = race;
4
5
  const tslib_1 = require("tslib");
5
6
  const application_error_1 = tslib_1.__importDefault(require("../services/error-handling/error/application-error"));
6
7
  const DEFAULT_TIMEOUT = 5000;
7
8
  class RaceTimeOutError extends application_error_1.default {
8
9
  }
10
+ exports.RaceTimeOutError = RaceTimeOutError;
9
11
  async function race(promise, timeout = DEFAULT_TIMEOUT) {
10
12
  const timeOut = new Promise((resolve, reject) => {
11
13
  setTimeout(() => {
@@ -1,7 +1,7 @@
1
1
  import { EntityManager } from "baqend";
2
- import EntityManagerFactory from "./factory/entity-manager-factory";
3
- import RequestExtensionInterface from "./interface/request-extension-interface";
4
- export default class Client {
2
+ import { EntityManagerFactory } from "./entity-manager-factory";
3
+ import { RequestExtensionInterface } from "./";
4
+ export declare class Client {
5
5
  private readonly agent;
6
6
  private readonly app;
7
7
  private readonly entityManagerFactory;
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Client = void 0;
3
4
  const tslib_1 = require("tslib");
4
5
  const deepmerge_1 = tslib_1.__importDefault(require("deepmerge"));
5
6
  const node_https_1 = require("node:https");
6
7
  const race_1 = require("../../helpers/race");
7
8
  const safe_1 = require("../../helpers/safe");
8
- const json_response_error_1 = tslib_1.__importDefault(require("./error/json-response-error"));
9
+ const json_response_error_1 = require("./error/json-response-error");
9
10
  const connection_error_1 = require("../error-handling/error/connection-error");
11
+ const application_error_1 = tslib_1.__importDefault(require("../error-handling/error/application-error"));
12
+ const login_error_1 = require("./error/login-error");
10
13
  const REQUEST_TIMEOUT = 10_000;
11
14
  const CONTENT_TYPE = "application/json;charset=UTF-8";
12
15
  class Client {
@@ -37,6 +40,15 @@ class Client {
37
40
  if (result.success === true) {
38
41
  return result.data;
39
42
  }
43
+ if (result.errorObj instanceof application_error_1.default) {
44
+ throw result.errorObj;
45
+ }
46
+ if (result.errorObj instanceof race_1.RaceTimeOutError) {
47
+ throw new connection_error_1.ConnectionError(`Got timeout of ${REQUEST_TIMEOUT}ms while trying to connect to app ${this.app}`, ["Check you internet-connection"]);
48
+ }
49
+ if (result.error.includes("Root login is disabled")) {
50
+ throw new login_error_1.LoginError(this.app);
51
+ }
40
52
  throw new connection_error_1.ConnectionError(`Could not connect to app: ${this.app} - ${result.error}`);
41
53
  }
42
54
  async getModule(moduleName) {
@@ -59,7 +71,7 @@ class Client {
59
71
  }
60
72
  const jsonResponse = await (0, safe_1.safe)(response.json());
61
73
  if (jsonResponse.success !== true) {
62
- throw new json_response_error_1.default(jsonResponse.error);
74
+ throw new json_response_error_1.JsonResponseError(jsonResponse.error);
63
75
  }
64
76
  return jsonResponse.data;
65
77
  }
@@ -72,4 +84,4 @@ class Client {
72
84
  return moduleResponse.data;
73
85
  }
74
86
  }
75
- exports.default = Client;
87
+ exports.Client = Client;
@@ -1,6 +1,6 @@
1
- import ConfigApiService from "../config-api-service";
2
- import ConfigApiContextInterface from "../interface/config-api-context-interface";
3
- export default class ConfigApiServiceFactory {
1
+ import { ConfigApiService } from "./config-api-service";
2
+ import { ConfigApiContextInterface } from "./";
3
+ export declare class ConfigApiServiceFactory {
4
4
  context: ConfigApiContextInterface;
5
5
  service: ConfigApiService;
6
6
  constructor(context: ConfigApiContextInterface);
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigApiServiceFactory = void 0;
3
4
  const tslib_1 = require("tslib");
4
- const config_api_service_1 = tslib_1.__importDefault(require("../config-api-service"));
5
- const client_1 = tslib_1.__importDefault(require("../client"));
6
- const entity_manager_factory_1 = tslib_1.__importDefault(require("./entity-manager-factory"));
5
+ const config_api_service_1 = require("./config-api-service");
6
+ const client_1 = require("./client");
7
+ const entity_manager_factory_1 = require("./entity-manager-factory");
7
8
  const node_fs_1 = require("node:fs");
8
9
  const node_os_1 = tslib_1.__importDefault(require("node:os"));
9
10
  const node_path_1 = tslib_1.__importDefault(require("node:path"));
10
- const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
11
+ const application_error_1 = tslib_1.__importDefault(require("../error-handling/error/application-error"));
11
12
  class ConfigApiServiceFactory {
12
13
  context;
13
14
  service = undefined;
@@ -15,7 +16,7 @@ class ConfigApiServiceFactory {
15
16
  this.context = context;
16
17
  }
17
18
  getService() {
18
- if (!(this.service instanceof config_api_service_1.default)) {
19
+ if (!(this.service instanceof config_api_service_1.ConfigApiService)) {
19
20
  this.buildService();
20
21
  }
21
22
  return this.service;
@@ -25,9 +26,9 @@ class ConfigApiServiceFactory {
25
26
  throw new application_error_1.default("app is undefined");
26
27
  }
27
28
  this.createLoginTokenFileIfNotExists();
28
- const entityManagerFactory = new entity_manager_factory_1.default();
29
- const client = new client_1.default(this.context.app, entityManagerFactory);
30
- this.service = new config_api_service_1.default(this.context.app, client);
29
+ const entityManagerFactory = new entity_manager_factory_1.EntityManagerFactory();
30
+ const client = new client_1.Client(this.context.app, entityManagerFactory);
31
+ this.service = new config_api_service_1.ConfigApiService(this.context.app, client);
31
32
  }
32
33
  createLoginTokenFileIfNotExists() {
33
34
  if (!(0, node_fs_1.existsSync)(node_path_1.default.resolve(node_os_1.default.homedir(), ".baqend"))) {
@@ -35,4 +36,4 @@ class ConfigApiServiceFactory {
35
36
  }
36
37
  }
37
38
  }
38
- exports.default = ConfigApiServiceFactory;
39
+ exports.ConfigApiServiceFactory = ConfigApiServiceFactory;
@@ -0,0 +1,12 @@
1
+ export interface ConfigApiContextInterface {
2
+ app: string;
3
+ }
4
+ export interface RequestExtensionInterface {
5
+ method?: string;
6
+ headers?: NonNullable<unknown>;
7
+ body?: string | NonNullable<unknown>;
8
+ }
9
+ export declare class ConfigApiContext {
10
+ readonly app: string;
11
+ constructor(app: string);
12
+ }
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigApiContext = void 0;
3
4
  class ConfigApiContext {
4
5
  app = undefined;
5
6
  constructor(app) {
6
7
  this.app = app;
7
8
  }
8
9
  }
9
- exports.default = ConfigApiContext;
10
+ exports.ConfigApiContext = ConfigApiContext;
@@ -1,6 +1,6 @@
1
- import Client from "./client";
1
+ import { Client } from "./client";
2
2
  import Install from "../deploy/interface/install";
3
- export default class ConfigApiService {
3
+ export declare class ConfigApiService {
4
4
  client: Client;
5
5
  private readonly app;
6
6
  constructor(app: string, client: Client);
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigApiService = void 0;
3
4
  class ConfigApiService {
4
5
  client;
5
6
  app;
@@ -65,4 +66,4 @@ class ConfigApiService {
65
66
  });
66
67
  }
67
68
  }
68
- exports.default = ConfigApiService;
69
+ exports.ConfigApiService = ConfigApiService;
@@ -1,5 +1,5 @@
1
1
  import { EntityManager } from "baqend";
2
- export default class EntityManagerFactory {
2
+ export declare class EntityManagerFactory {
3
3
  EntityManager: EntityManager;
4
4
  getEntityManager(app: string): Promise<EntityManager>;
5
5
  }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EntityManagerFactory = void 0;
4
+ const cli_1 = require("baqend/cli");
5
+ class EntityManagerFactory {
6
+ EntityManager;
7
+ async getEntityManager(app) {
8
+ if (this.EntityManager) {
9
+ return this.EntityManager;
10
+ }
11
+ this.EntityManager = await cli_1.account.login({ app });
12
+ return this.EntityManager;
13
+ }
14
+ }
15
+ exports.EntityManagerFactory = EntityManagerFactory;
@@ -1,4 +1,4 @@
1
1
  import ApplicationError from "../../error-handling/error/application-error";
2
- export default class JsonResponseError extends ApplicationError {
2
+ export declare class JsonResponseError extends ApplicationError {
3
3
  readonly code = "JSON_RESPONSE_ERROR";
4
4
  }
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsonResponseError = void 0;
3
4
  const tslib_1 = require("tslib");
4
5
  const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
5
6
  class JsonResponseError extends application_error_1.default {
6
7
  code = "JSON_RESPONSE_ERROR";
7
8
  }
8
- exports.default = JsonResponseError;
9
+ exports.JsonResponseError = JsonResponseError;
@@ -1,5 +1,5 @@
1
1
  import ApplicationError from "../../error-handling/error/application-error";
2
- export default class LoginError extends ApplicationError {
2
+ export declare class LoginError extends ApplicationError {
3
3
  readonly code = "LOGIN_ERROR";
4
4
  constructor(app: string);
5
5
  }
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoginError = void 0;
3
4
  const tslib_1 = require("tslib");
4
5
  const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
5
6
  class LoginError extends application_error_1.default {
6
7
  code = "LOGIN_ERROR";
7
8
  constructor(app) {
8
- super(`Could not login to app ${app}`);
9
+ super(`Could not login to app ${app}`, ["run sk login"]);
9
10
  }
10
11
  }
11
- exports.default = LoginError;
12
+ exports.LoginError = LoginError;
@@ -0,0 +1,3 @@
1
+ export * from "./config-api-factory";
2
+ export * from "./config-api-service";
3
+ export * from "./config-api-model";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./config-api-factory"), exports);
5
+ tslib_1.__exportStar(require("./config-api-service"), exports);
6
+ tslib_1.__exportStar(require("./config-api-model"), exports);
@@ -1,10 +1,10 @@
1
1
  import Install from "../interface/install";
2
- import ConfigApi from "../../config-api/config-api-service";
2
+ import { ConfigApiService } from "../../config-api";
3
3
  export default class InstallResourceBuilder {
4
4
  changed: boolean;
5
5
  resource: Install;
6
- configApi: ConfigApi;
7
- constructor(configApi: ConfigApi);
6
+ configApi: ConfigApiService;
7
+ constructor(configApi: ConfigApiService);
8
8
  init(configName: string): Promise<Install>;
9
9
  merge(installParameters: Install): void;
10
10
  updateFromRemote(remoteParameters: Install): Install;
@@ -1,11 +1,10 @@
1
1
  import { CliService } from "../../../cli";
2
- import ConfigApiService from "../../../config-api/config-api-service";
3
2
  import { PostDeployCheckInterface } from "../../deploy-service-model";
3
+ import { ConfigApiService } from "../../../config-api";
4
4
  export default class RevalidatedModuleCheck implements PostDeployCheckInterface {
5
5
  private readonly configApi;
6
6
  private cli;
7
7
  private readonly app;
8
8
  constructor(configApi: ConfigApiService, cli: CliService, app: string);
9
9
  check(): Promise<void>;
10
- private showMessage;
11
10
  }
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cli_1 = require("../../../cli");
4
+ const safe_1 = require("../../../../helpers/safe");
5
+ const deploy_module_file_error_1 = require("../../error/deploy-module-file-error");
6
+ const check_module_file_error_1 = require("../../error/check-module-file-error");
3
7
  const REVALIDATED_MODULE_NAME = "speedKit.Revalidated";
4
8
  class RevalidatedModuleCheck {
5
9
  configApi;
@@ -11,20 +15,17 @@ class RevalidatedModuleCheck {
11
15
  this.app = app;
12
16
  }
13
17
  async check() {
14
- try {
15
- const module = await this.configApi.getModule(REVALIDATED_MODULE_NAME);
16
- if (!module) {
17
- this.showMessage();
18
- }
18
+ this.cli.startAction("[postDeployCheck] check for revalidated module");
19
+ const result = await (0, safe_1.safe)(this.configApi.getModule(REVALIDATED_MODULE_NAME));
20
+ if (result.success === true && result.data) {
21
+ this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
22
+ return;
19
23
  }
20
- catch {
21
- this.showMessage();
24
+ this.cli.endAction(cli_1.CliActionStatus.FAILED);
25
+ if (result.success === false) {
26
+ throw new deploy_module_file_error_1.DeployModuleFileError(result.error);
22
27
  }
23
- }
24
- showMessage() {
25
- this.cli.writeError(`it seems ${REVALIDATED_MODULE_NAME} does not exists in the app ${this.app}`);
26
- this.cli.write("please execute:");
27
- this.cli.code(`sk generate-pop-config ${this.app}`);
28
+ throw new check_module_file_error_1.CheckModuleFileError(`it seems ${REVALIDATED_MODULE_NAME} does not exists in the app ${this.app}`, ["please execute:", `sk generate-pop-config ${this.app}`]);
28
29
  }
29
30
  }
30
31
  exports.default = RevalidatedModuleCheck;
@@ -1,9 +1,10 @@
1
1
  import { CliService } from "../../../cli";
2
- import { FileListInterface } from "../../../integration-api";
2
+ import { FileListInterface, InstallResourceFile } from "../../../integration-api";
3
3
  import { PostDeployCheckInterface } from "../../deploy-service-model";
4
4
  export default class SaveFilesCheck implements PostDeployCheckInterface {
5
5
  private fileList;
6
6
  private readonly cli;
7
7
  constructor(fileList: FileListInterface, cli: CliService);
8
8
  check(): Promise<void>;
9
+ safeFiles(fileList: InstallResourceFile[]): Promise<void>;
9
10
  }
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cli_1 = require("../../../cli");
4
+ const safe_1 = require("../../../../helpers/safe");
5
+ const safe_file_error_1 = require("../../error/safe-file-error");
3
6
  class SaveFilesCheck {
4
7
  fileList;
5
8
  cli;
@@ -14,11 +17,21 @@ class SaveFilesCheck {
14
17
  if (fileList.length === 0) {
15
18
  return;
16
19
  }
17
- if (await this.cli.confirm(`Changes to localFiles will be saved now. Proceed?`)) {
18
- for (const file of fileList) {
19
- await file.updateIfChanged();
20
- this.cli.writeSuccess(`${file.name} saved`);
21
- }
20
+ if (!(await this.cli.confirm(`Changes to localFiles will be saved now. Proceed?`))) {
21
+ return;
22
+ }
23
+ this.cli.startAction("safe changed files");
24
+ const result = await (0, safe_1.safe)(this.safeFiles(fileList));
25
+ if (result.success === false) {
26
+ this.cli.endAction(cli_1.CliActionStatus.FAILED);
27
+ throw new safe_file_error_1.SafeFileError(result.error);
28
+ }
29
+ this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
30
+ }
31
+ async safeFiles(fileList) {
32
+ for (const file of fileList) {
33
+ await file.updateIfChanged();
34
+ this.cli.writeSuccess(`${file.name} saved`);
22
35
  }
23
36
  }
24
37
  }
@@ -1,6 +1,6 @@
1
1
  import { FileListInterface, CustomerConfig } from "../../../integration-api";
2
2
  import { CliServiceInterface } from "../../../cli";
3
- import ConfigApiService from "../../../config-api/config-api-service";
3
+ import { ConfigApiService } from "../../../config-api";
4
4
  export declare class SplitChangeCheck {
5
5
  private cli;
6
6
  private fileList;
@@ -2,8 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const cli_1 = require("../cli");
5
- const config_api_context_1 = tslib_1.__importDefault(require("../config-api/context/config-api-context"));
6
- const config_api_service_factory_1 = tslib_1.__importDefault(require("../config-api/factory/config-api-service-factory"));
7
5
  const diff_1 = require("../diff");
8
6
  const install_resource_builder_1 = tslib_1.__importDefault(require("./builder/install-resource-builder"));
9
7
  const revalidated_module_check_1 = tslib_1.__importDefault(require("./checks/post-deploy/revalidated-module-check"));
@@ -17,6 +15,7 @@ const deployment_detection_modifier_1 = tslib_1.__importDefault(require("./handl
17
15
  const server_config_handler_1 = tslib_1.__importDefault(require("./handler/server-config-handler"));
18
16
  const integration_api_1 = require("../integration-api");
19
17
  const split_change_check_1 = require("./checks/pre-deploy/split-change-check");
18
+ const config_api_1 = require("../config-api");
20
19
  class DeployServiceFactory {
21
20
  context;
22
21
  cliConfig;
@@ -53,8 +52,8 @@ class DeployServiceFactory {
53
52
  ], this.getPostDeployChecks(files, cliService, configApi, customer.app), this.context.dryRun);
54
53
  }
55
54
  getConfigApi(app) {
56
- const configApiContext = new config_api_context_1.default(app);
57
- return new config_api_service_factory_1.default(configApiContext).getService();
55
+ const configApiContext = new config_api_1.ConfigApiContext(app);
56
+ return new config_api_1.ConfigApiServiceFactory(configApiContext).getService();
58
57
  }
59
58
  async getIntegrationFiles() {
60
59
  const integrationApiContext = new integration_api_1.IntegrationApiContext(this.context.customerPath, this.context.configName, this.context.artifacts);
@@ -0,0 +1,4 @@
1
+ import ApplicationError from "../../error-handling/error/application-error";
2
+ export declare class CheckModuleFileError extends ApplicationError {
3
+ readonly code = "CHECK_MODULE_ERROR";
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CheckModuleFileError = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
6
+ class CheckModuleFileError extends application_error_1.default {
7
+ code = "CHECK_MODULE_ERROR";
8
+ }
9
+ exports.CheckModuleFileError = CheckModuleFileError;
@@ -0,0 +1,4 @@
1
+ import ApplicationError from "../../error-handling/error/application-error";
2
+ export declare class DeployInstallResourceError extends ApplicationError {
3
+ readonly code = "INSTALL_RESOURCE_API_ERROR";
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeployInstallResourceError = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
6
+ class DeployInstallResourceError extends application_error_1.default {
7
+ code = "INSTALL_RESOURCE_API_ERROR";
8
+ }
9
+ exports.DeployInstallResourceError = DeployInstallResourceError;
@@ -0,0 +1,4 @@
1
+ import ApplicationError from "../../error-handling/error/application-error";
2
+ export declare class DeployModuleFileError extends ApplicationError {
3
+ readonly code = "MODULE_API_ERROR";
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeployModuleFileError = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
6
+ class DeployModuleFileError extends application_error_1.default {
7
+ code = "MODULE_API_ERROR";
8
+ }
9
+ exports.DeployModuleFileError = DeployModuleFileError;
@@ -0,0 +1,4 @@
1
+ import ApplicationError from "../../error-handling/error/application-error";
2
+ export declare class DeployServerConfigError extends ApplicationError {
3
+ readonly code = "SERVER_MODULE_API_ERROR";
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeployServerConfigError = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
6
+ class DeployServerConfigError extends application_error_1.default {
7
+ code = "SERVER_MODULE_API_ERROR";
8
+ }
9
+ exports.DeployServerConfigError = DeployServerConfigError;
@@ -0,0 +1,4 @@
1
+ import ApplicationError from "../../error-handling/error/application-error";
2
+ export declare class SafeFileError extends ApplicationError {
3
+ readonly code = "SAFE_FILES_ERROR";
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SafeFileError = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
6
+ class SafeFileError extends application_error_1.default {
7
+ code = "SAFE_FILES_ERROR";
8
+ }
9
+ exports.SafeFileError = SafeFileError;
@@ -1,9 +1,9 @@
1
1
  import DeployHandlerInterface from "../interface/deploy-handler-interface";
2
2
  import { CustomerConfig, CustomerConfigFile, FILE_TYPE } from "../../integration-api/";
3
- import ConfigApi from "../../config-api/config-api-service";
4
3
  import { DiffService } from "../../diff";
5
4
  import { CliService } from "../../cli";
6
5
  import InstallResourceBuilder from "../builder/install-resource-builder";
6
+ import { ConfigApiService } from "../../config-api";
7
7
  export default class CustomerConfigHandler implements DeployHandlerInterface {
8
8
  private readonly customer;
9
9
  private readonly configApi;
@@ -11,7 +11,7 @@ export default class CustomerConfigHandler implements DeployHandlerInterface {
11
11
  private diffService;
12
12
  private cli;
13
13
  private builder;
14
- constructor(customer: CustomerConfig, configApi: ConfigApi, configName: string, diffService: DiffService, cli: CliService, builder: InstallResourceBuilder);
14
+ constructor(customer: CustomerConfig, configApi: ConfigApiService, configName: string, diffService: DiffService, cli: CliService, builder: InstallResourceBuilder);
15
15
  canHandle(type: FILE_TYPE): boolean;
16
16
  handle(files: CustomerConfigFile[]): Promise<void>;
17
17
  upload(files: CustomerConfigFile[]): Promise<void>;
@@ -1,10 +1,10 @@
1
1
  import DeployHandlerInterface from "../interface/deploy-handler-interface";
2
- import ConfigApi from "../../config-api/config-api-service";
3
2
  import { DiffService } from "../../diff";
4
3
  import { CliService } from "../../cli";
5
4
  import InstallResourceBuilder from "../builder/install-resource-builder";
6
5
  import DeletedFileCheck from "./install-resource-modifier/deleted-file-check";
7
- import { InstallResourceInterface, CustomerConfig, FILE_TYPE } from "../../integration-api";
6
+ import { CustomerConfig, FILE_TYPE, InstallResourceInterface } from "../../integration-api";
7
+ import { ConfigApiService } from "../../config-api";
8
8
  export default class InstallResourceHandler implements DeployHandlerInterface {
9
9
  private readonly customer;
10
10
  private readonly configApi;
@@ -13,7 +13,7 @@ export default class InstallResourceHandler implements DeployHandlerInterface {
13
13
  private cli;
14
14
  private builder;
15
15
  private deletedFilesChecker;
16
- constructor(customer: CustomerConfig, configApi: ConfigApi, configName: string, diffService: DiffService, cli: CliService, builder: InstallResourceBuilder, deletedFilesChecker: DeletedFileCheck);
16
+ constructor(customer: CustomerConfig, configApi: ConfigApiService, configName: string, diffService: DiffService, cli: CliService, builder: InstallResourceBuilder, deletedFilesChecker: DeletedFileCheck);
17
17
  canHandle(type: FILE_TYPE): boolean;
18
18
  handle(files: InstallResourceInterface[]): Promise<void>;
19
19
  upload(files: InstallResourceInterface[]): Promise<void>;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cli_1 = require("../../cli");
3
4
  const integration_api_1 = require("../../integration-api");
5
+ const safe_1 = require("../../../helpers/safe");
6
+ const deploy_install_resource_error_1 = require("../error/deploy-install-resource-error");
4
7
  class InstallResourceHandler {
5
8
  customer;
6
9
  configApi;
@@ -39,6 +42,7 @@ class InstallResourceHandler {
39
42
  }
40
43
  await this.deletedFilesChecker.hasDeletedFiles(this.builder, files);
41
44
  if (!this.builder.hasChanges()) {
45
+ this.cli.writeSuccess(`No changes found. InstallResource was ${this.cli.style.bold("not")} updated`);
42
46
  return;
43
47
  }
44
48
  this.cli.write("");
@@ -49,10 +53,23 @@ class InstallResourceHandler {
49
53
  }
50
54
  const install = await this.getInstallResource();
51
55
  await this.deletedFilesChecker.checkForDeletedLocalFiles(install);
52
- await this.configApi.setInstall(install);
53
- if (await this.cli.confirm("Activate new installation?")) {
54
- await this.configApi.activateInstall(install);
56
+ this.cli.startAction("update installResource");
57
+ const updateResult = await (0, safe_1.safe)(this.configApi.setInstall(install));
58
+ if (updateResult.success === false) {
59
+ this.cli.endAction(cli_1.CliActionStatus.FAILED);
60
+ throw new deploy_install_resource_error_1.DeployInstallResourceError(updateResult.error);
55
61
  }
62
+ this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
63
+ if (!(await this.cli.confirm("Activate new installation?"))) {
64
+ return;
65
+ }
66
+ this.cli.startAction("activate installResource");
67
+ const activateResult = await (0, safe_1.safe)(this.configApi.activateInstall(install));
68
+ if (activateResult.success === false) {
69
+ this.cli.endAction(cli_1.CliActionStatus.FAILED);
70
+ throw new deploy_install_resource_error_1.DeployInstallResourceError(activateResult.error);
71
+ }
72
+ this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
56
73
  }
57
74
  async processFile(file, installResource) {
58
75
  if (!installResource) {
@@ -84,7 +101,14 @@ class InstallResourceHandler {
84
101
  }
85
102
  async getInstallResource() {
86
103
  let install = await this.builder.init(this.configName);
87
- const remoteClone = await this.prepareRemoteInstallResource(install);
104
+ this.cli.startAction("create installResource");
105
+ const result = await (0, safe_1.safe)(this.prepareRemoteInstallResource(install));
106
+ if (result.success === false) {
107
+ this.cli.endAction(cli_1.CliActionStatus.FAILED);
108
+ throw new deploy_install_resource_error_1.DeployInstallResourceError(result.error);
109
+ }
110
+ this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
111
+ const remoteClone = result.data;
88
112
  install = this.builder.updateFromRemote(remoteClone);
89
113
  install.description = await this.cli.prompt("Describe new configuration:", {
90
114
  defaultAnswer: install.description ?? this.configName,
@@ -1,15 +1,15 @@
1
1
  import DeployHandlerInterface from "../interface/deploy-handler-interface";
2
2
  import { FILE_TYPE, ModuleFile } from "../../integration-api";
3
- import ConfigApi from "../../config-api/config-api-service";
4
3
  import { DiffService } from "../../diff";
5
4
  import { CliService } from "../../cli";
6
5
  import RuntimeModifier from "../interface/runtime-modifier";
6
+ import { ConfigApiService } from "../../config-api";
7
7
  export default class ModuleHandler implements DeployHandlerInterface {
8
8
  private readonly configApi;
9
9
  private diffService;
10
10
  private cli;
11
11
  private modifiers;
12
- constructor(configApi: ConfigApi, diffService: DiffService, cli: CliService, modifiers: RuntimeModifier[]);
12
+ constructor(configApi: ConfigApiService, diffService: DiffService, cli: CliService, modifiers: RuntimeModifier[]);
13
13
  canHandle(type: FILE_TYPE): boolean;
14
14
  handle(files: ModuleFile[]): Promise<void>;
15
15
  upload(files: ModuleFile[]): Promise<void>;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const integration_api_1 = require("../../integration-api");
4
+ const cli_1 = require("../../cli");
5
+ const safe_1 = require("../../../helpers/safe");
6
+ const deploy_module_file_error_1 = require("../error/deploy-module-file-error");
4
7
  class ModuleHandler {
5
8
  configApi;
6
9
  diffService;
@@ -52,7 +55,13 @@ class ModuleHandler {
52
55
  if (await this.cli.confirm(`${filesToUpload.length} Module(s) will be uploaded now. Proceed?`)) {
53
56
  for (const file_ of files) {
54
57
  const file = file_;
55
- await this.configApi.setModule(file.getContent(), file.name);
58
+ this.cli.startAction(`update module ${file.name}`);
59
+ const result = await (0, safe_1.safe)(this.configApi.setModule(file.getContent(), file.name));
60
+ if (result.success === false) {
61
+ this.cli.endAction(cli_1.CliActionStatus.FAILED);
62
+ throw new deploy_module_file_error_1.DeployModuleFileError(result.error);
63
+ }
64
+ this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
56
65
  for (let iterator = 0; iterator < this.modifiers.length; iterator++) {
57
66
  const modifier = this.modifiers[iterator];
58
67
  if (modifier.canModify(file)) {
@@ -1,13 +1,13 @@
1
1
  import DeployHandlerInterface from "../interface/deploy-handler-interface";
2
- import ConfigApi from "../../config-api/config-api-service";
3
2
  import { DiffService } from "../../diff";
4
3
  import { CliService } from "../../cli";
5
4
  import { FILE_TYPE, ServerConfigFile } from "../../integration-api";
5
+ import { ConfigApiService } from "../../config-api";
6
6
  export default class ServerConfigHandler implements DeployHandlerInterface {
7
7
  private configApi;
8
8
  private diffService;
9
9
  private cli;
10
- constructor(configApi: ConfigApi, diffService: DiffService, cli: CliService);
10
+ constructor(configApi: ConfigApiService, diffService: DiffService, cli: CliService);
11
11
  canHandle(type: FILE_TYPE): boolean;
12
12
  handle(files: ServerConfigFile[]): Promise<void>;
13
13
  upload(files: ServerConfigFile[]): Promise<void>;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cli_1 = require("../../cli");
3
4
  const integration_api_1 = require("../../integration-api");
5
+ const safe_1 = require("../../../helpers/safe");
6
+ const deploy_server_config_error_1 = require("../error/deploy-server-config-error");
4
7
  class ServerConfigHandler {
5
8
  configApi;
6
9
  diffService;
@@ -41,11 +44,18 @@ class ServerConfigHandler {
41
44
  this.cli.write("");
42
45
  this.cli.write("Summary");
43
46
  this.cli.writeBuffer();
44
- if (await this.cli.confirm(`ServerConfig will be uploaded now. Proceed?`)) {
45
- await this.configApi.setServerConfig(file.getContent(),
46
- // @ts-expect-error revision is unknown
47
- file.config.revision.version);
47
+ if (!(await this.cli.confirm(`ServerConfig will be uploaded now. Proceed?`))) {
48
+ return;
49
+ }
50
+ this.cli.startAction("upload serverconfig");
51
+ const result = await (0, safe_1.safe)(this.configApi.setServerConfig(file.getContent(),
52
+ // @ts-expect-error revision is unknown
53
+ file.config.revision.version));
54
+ if (result.success === false) {
55
+ this.cli.endAction(cli_1.CliActionStatus.FAILED);
56
+ throw new deploy_server_config_error_1.DeployServerConfigError(result.error);
48
57
  }
58
+ this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
49
59
  }
50
60
  async confirm(file, isNew = false) {
51
61
  const confirm = await this.cli.confirm(`Deploy ${file.name}?`, true);
@@ -23,11 +23,4 @@ export default class InstallResourceHandler extends FileHandler {
23
23
  * @private
24
24
  */
25
25
  private getFileContent;
26
- /**
27
- *
28
- *
29
- * @param content
30
- * @private
31
- */
32
- private replaceWithDebugPackage;
33
26
  }
@@ -4,7 +4,6 @@ const tslib_1 = require("tslib");
4
4
  const file_handler_1 = tslib_1.__importDefault(require("./file-handler"));
5
5
  const integration_api_model_1 = require("../integration-api-model");
6
6
  const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
7
- const PREDICTIVE_PRELOADING = "predictive-preloading";
8
7
  class InstallResourceHandler extends file_handler_1.default {
9
8
  allowedFiles = [
10
9
  "config_SpeedKit",
@@ -48,21 +47,7 @@ class InstallResourceHandler extends file_handler_1.default {
48
47
  * @private
49
48
  */
50
49
  async getFileContent(fileName, filePath) {
51
- const content = await this.fileReader.getContent(filePath);
52
- if (fileName === "config_loadHandler" &&
53
- content.includes(PREDICTIVE_PRELOADING)) {
54
- return this.replaceWithDebugPackage(content);
55
- }
56
- return content;
57
- }
58
- /**
59
- *
60
- *
61
- * @param content
62
- * @private
63
- */
64
- replaceWithDebugPackage(content) {
65
- return content.replace(PREDICTIVE_PRELOADING, `${PREDICTIVE_PRELOADING}.debug.min.js`);
50
+ return await this.fileReader.getContent(filePath);
66
51
  }
67
52
  }
68
53
  exports.default = InstallResourceHandler;
@@ -10,6 +10,7 @@ export declare class SpeedKitInstallContext {
10
10
  private isLocalRuntime;
11
11
  constructor(customerConfig: CustomerConfig, configName: string, files: FileListInterface, bundler: BundleService, skTemplate: InstallSpeedKitJsTemplate, isLocalRuntime?: boolean);
12
12
  getSpeedKitInstallJs(): Promise<string>;
13
+ private prepareConfigLoadHandler;
13
14
  private getConfigSpeedKit;
14
15
  /**
15
16
  * Fetches and returns the latest dynamic fetcher from the code repository. If a new version is available online it is
@@ -36,9 +36,7 @@ class SpeedKitInstallContext {
36
36
  return this.bundler.bundle({
37
37
  basePaths: IMPORT_PATHS,
38
38
  entryPoints: {
39
- "rum.js": this.files
40
- .getByName(files_1.INTEGRATION_FILES.CONFIG.LOAD_HANDLER)
41
- .getContent(),
39
+ "rum.js": this.prepareConfigLoadHandler(),
42
40
  "config.js": configJs,
43
41
  "loader.js": this.files
44
42
  .getByName(files_1.INTEGRATION_FILES.CUSTOM.LOADER)
@@ -51,6 +49,16 @@ class SpeedKitInstallContext {
51
49
  },
52
50
  });
53
51
  }
52
+ prepareConfigLoadHandler() {
53
+ const configFileContent = this.files
54
+ .getByName(files_1.INTEGRATION_FILES.CONFIG.LOAD_HANDLER)
55
+ .getContent();
56
+ if (!configFileContent.includes("predictive-preloading/predictivePreloading.min.js")) {
57
+ return configFileContent;
58
+ }
59
+ // automatically use debug package for sk onboarding
60
+ return configFileContent.replace("predictive-preloading/predictivePreloading.min.js", "predictive-preloading/predictivePreloading.debug.min.js");
61
+ }
54
62
  getConfigSpeedKit() {
55
63
  const configString = this.files
56
64
  .getByName(files_1.INTEGRATION_FILES.CONFIG.SPEED_KIT)
@@ -3,7 +3,7 @@ import { Protocol } from "puppeteer-core";
3
3
  import { CDPSession, Target } from "puppeteer";
4
4
  import { CliService } from "../cli";
5
5
  import { CustomerConfig } from "../integration-api";
6
- import ConfigApiService from "../config-api/config-api-service";
6
+ import { ConfigApiService } from "../config-api";
7
7
  export declare class FetchEventHandler {
8
8
  private browserFetchEvents;
9
9
  private customerConfig;
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FetchEventHandler = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const onboarding_model_1 = require("./onboarding-model");
6
5
  const puppeteer_core_1 = require("puppeteer-core");
7
6
  const abort_response_1 = require("./browser/abort-response");
8
7
  const cli_1 = require("../cli");
9
- const login_error_1 = tslib_1.__importDefault(require("../config-api/error/login-error"));
10
8
  const safe_1 = require("../../helpers/safe");
9
+ const login_error_1 = require("../config-api/error/login-error");
11
10
  class FetchEventHandler {
12
11
  browserFetchEvents;
13
12
  customerConfig;
@@ -144,7 +143,7 @@ class FetchEventHandler {
144
143
  // unknown raceCondition where the authResponse is sent to fast
145
144
  return;
146
145
  }
147
- if (serverConfigResponse.errorObj instanceof login_error_1.default) {
146
+ if (serverConfigResponse.errorObj instanceof login_error_1.LoginError) {
148
147
  this.cli.writeError(`could not login to app ${this.customerConfig.app} to gather credentials. Try run sk login`);
149
148
  await this.sendDefaultAuthBehaviour(browserClient, event.requestId);
150
149
  return;
@@ -4,8 +4,9 @@ exports.SpeedKitInstallRegex = exports.USER_AGENT = exports.OnboardingContext =
4
4
  const core_1 = require("@oclif/core");
5
5
  const cli_parameters_1 = require("../../models/cli-parameters");
6
6
  const DEFAULT_BROWSER_ARGS = [
7
- "--enable-features=NetworkService",
7
+ "--enable-features=Translate,NetworkService",
8
8
  "--no-first-run",
9
+ "--no-default-browser-check",
9
10
  "--disable-infobars",
10
11
  ];
11
12
  exports.BROWSER_EVENTS = {
@@ -7,8 +7,6 @@ const files_1 = require("../../models/files");
7
7
  const athena_1 = require("../athena");
8
8
  const bundler_1 = require("../bundler");
9
9
  const cli_1 = require("../cli");
10
- const config_api_context_1 = tslib_1.__importDefault(require("../config-api/context/config-api-context"));
11
- const config_api_service_factory_1 = tslib_1.__importDefault(require("../config-api/factory/config-api-service-factory"));
12
10
  const diff_1 = require("../diff");
13
11
  const document_handler_runtime_service_factory_1 = tslib_1.__importDefault(require("../document-handler-runtime/factory/document-handler-runtime-service-factory"));
14
12
  const integration_api_1 = require("../integration-api");
@@ -38,6 +36,7 @@ const devtools_extension_api_1 = require("./browser/extension/devtools-extension
38
36
  const todo_collector_1 = require("./todo-collector");
39
37
  const crawler_1 = require("./virtual-orestes-app/crawler");
40
38
  const virtual_orestes_app_1 = require("./virtual-orestes-app");
39
+ const config_api_1 = require("../config-api");
41
40
  class OnboardingServiceFactory {
42
41
  context;
43
42
  cliConfig;
@@ -105,8 +104,8 @@ class OnboardingServiceFactory {
105
104
  }
106
105
  }
107
106
  getConfigApi(app) {
108
- const configApiContext = new config_api_context_1.default(app);
109
- return new config_api_service_factory_1.default(configApiContext).getService();
107
+ const configApiContext = new config_api_1.ConfigApiContext(app);
108
+ return new config_api_1.ConfigApiServiceFactory(configApiContext).getService();
110
109
  }
111
110
  async getFetchEventHandler(files, customerConfig, documentHandler, cache, cli, browserContext, athenaClient) {
112
111
  const configApi = this.getConfigApi(customerConfig.app);
@@ -1,6 +1,6 @@
1
1
  import { CliService } from "../../cli";
2
- import ConfigApiService from "../../config-api/config-api-service";
3
2
  import { SpeedKitServerConfig } from "../onboarding-model";
3
+ import { ConfigApiService } from "../../config-api";
4
4
  export declare class ServerConfig {
5
5
  private cli;
6
6
  private client?;
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PreWarmFactory = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const cli_1 = require("../cli");
6
- const config_api_context_1 = tslib_1.__importDefault(require("../config-api/context/config-api-context"));
7
- const config_api_service_factory_1 = tslib_1.__importDefault(require("../config-api/factory/config-api-service-factory"));
8
5
  const _1 = require("./");
9
6
  const asset_api_client_1 = require("./assets/asset-api-client");
10
7
  const csv_reader_1 = require("./csv-reader");
8
+ const config_api_1 = require("../config-api");
11
9
  class PreWarmFactory {
12
10
  context;
13
11
  constructor(context) {
@@ -15,7 +13,7 @@ class PreWarmFactory {
15
13
  }
16
14
  async getService() {
17
15
  const cli = new cli_1.CliServiceFactory(new cli_1.CliContext(this.context.quiet)).getService();
18
- const configApi = new config_api_service_factory_1.default(new config_api_context_1.default(this.context.app)).getService();
16
+ const configApi = new config_api_1.ConfigApiServiceFactory(new config_api_1.ConfigApiContext(this.context.app)).getService();
19
17
  const entityManager = await configApi.client.getEntityManager();
20
18
  const csvReader = new csv_reader_1.CsvReader();
21
19
  const assetApiClient = new asset_api_client_1.AssetApiClient(entityManager.token, this.context.app, this.context.keepParameterSorting);
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PullServiceFactory = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const integration_api_1 = require("../integration-api");
6
- const config_api_service_factory_1 = tslib_1.__importDefault(require("../config-api/factory/config-api-service-factory"));
7
- const config_api_context_1 = tslib_1.__importDefault(require("../config-api/context/config-api-context"));
8
5
  const cli_1 = require("../cli");
9
6
  const _1 = require("./");
7
+ const config_api_1 = require("../config-api");
10
8
  class PullServiceFactory {
11
9
  context;
12
10
  userConfig;
@@ -36,8 +34,8 @@ class PullServiceFactory {
36
34
  return await integrationApi.run();
37
35
  }
38
36
  getConfigApi(app) {
39
- const configApiContext = new config_api_context_1.default(app);
40
- return new config_api_service_factory_1.default(configApiContext).getService();
37
+ const configApiContext = new config_api_1.ConfigApiContext(app);
38
+ return new config_api_1.ConfigApiServiceFactory(configApiContext).getService();
41
39
  }
42
40
  }
43
41
  exports.PullServiceFactory = PullServiceFactory;
@@ -1,6 +1,6 @@
1
1
  import { CliServiceInterface } from "../cli";
2
2
  import { FileListInterface } from "../integration-api";
3
- import ConfigApiService from "../config-api/config-api-service";
3
+ import { ConfigApiService } from "../config-api";
4
4
  export declare class PullService {
5
5
  private fileList;
6
6
  private cli;
@@ -712,5 +712,5 @@
712
712
  ]
713
713
  }
714
714
  },
715
- "version": "2.42.0"
715
+ "version": "2.43.0"
716
716
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@speedkit/cli",
3
3
  "description": "Speed Kit CLI",
4
- "version": "2.42.0",
4
+ "version": "2.43.0",
5
5
  "author": {
6
6
  "name": "Baqend.com",
7
7
  "email": "info@baqend.com"
@@ -42,7 +42,8 @@
42
42
  "files": [
43
43
  "dist",
44
44
  "oclif.manifest.json",
45
- "CHANGELOG.md"
45
+ "CHANGELOG.md",
46
+ ".env.sample"
46
47
  ],
47
48
  "oclif": {
48
49
  "commands": "./dist/commands",
@@ -1,4 +0,0 @@
1
- export default class ConfigApiContext {
2
- readonly app: string;
3
- constructor(app: string);
4
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const cli_1 = require("baqend/cli");
5
- const login_error_1 = tslib_1.__importDefault(require("../error/login-error"));
6
- class EntityManagerFactory {
7
- EntityManager;
8
- async getEntityManager(app) {
9
- if (this.EntityManager) {
10
- return this.EntityManager;
11
- }
12
- try {
13
- this.EntityManager = await cli_1.account.login({ app });
14
- return this.EntityManager;
15
- }
16
- catch {
17
- throw new login_error_1.default(app);
18
- }
19
- }
20
- }
21
- exports.default = EntityManagerFactory;
@@ -1,3 +0,0 @@
1
- export default interface ConfigApiContextInterface {
2
- app: string;
3
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +0,0 @@
1
- export default interface RequestExtensionInterface {
2
- method?: string;
3
- headers?: NonNullable<unknown>;
4
- body?: string | NonNullable<unknown>;
5
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });