@embeddable.com/sdk-core 3.9.2 → 3.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/push.test.ts CHANGED
@@ -35,6 +35,7 @@ vi.mock("./utils", () => ({
35
35
  checkNodeVersion: vi.fn(),
36
36
  checkBuildSuccess: vi.fn(),
37
37
  getArgumentByKey: vi.fn(),
38
+ getSDKVersions: vi.fn(),
38
39
  }));
39
40
 
40
41
  vi.mock("node:fs/promises", () => ({
@@ -42,6 +43,7 @@ vi.mock("node:fs/promises", () => ({
42
43
  readFile: vi.fn(),
43
44
  access: vi.fn(),
44
45
  rm: vi.fn(),
46
+ mkdir: vi.fn(),
45
47
  }));
46
48
 
47
49
  vi.mock("node:fs", () => ({
package/src/push.ts CHANGED
@@ -3,6 +3,8 @@ import * as fsSync from "node:fs";
3
3
  import * as archiver from "archiver";
4
4
  import axios from "axios";
5
5
  const oraP = import("ora");
6
+ import { initLogger, logError } from "./logger";
7
+ import * as path from "path";
6
8
 
7
9
  import provideConfig from "./provideConfig";
8
10
  // @ts-ignore
@@ -18,10 +20,13 @@ export const YAML_OR_JS_FILES = /^(.*)\.(cube|sc)\.(ya?ml|js)$/;
18
20
 
19
21
  let ora: any;
20
22
  export default async () => {
23
+ await initLogger("push");
24
+ const breadcrumbs: string[] = [];
21
25
  let spinnerPushing;
22
26
 
23
27
  try {
24
28
  checkNodeVersion();
29
+ breadcrumbs.push("checkNodeVersion");
25
30
  const isBuildSuccess = await checkBuildSuccess();
26
31
  if (!isBuildSuccess) {
27
32
  console.error(
@@ -36,6 +41,7 @@ export default async () => {
36
41
 
37
42
  if (process.argv.includes("--api-key") || process.argv.includes("-k")) {
38
43
  spinnerPushing = ora("Using API key...").start();
44
+ breadcrumbs.push("push by api key");
39
45
  await pushByApiKey(config, spinnerPushing);
40
46
 
41
47
  spinnerPushing.succeed("Published using API key");
@@ -43,11 +49,13 @@ export default async () => {
43
49
  return;
44
50
  }
45
51
 
52
+ breadcrumbs.push("push by standard login");
46
53
  const token = await verify(config);
47
54
  spinnerPushing = ora()
48
55
  .start()
49
56
  .info("No API Key provided. Standard login will be used.");
50
57
 
58
+ breadcrumbs.push("select workspace");
51
59
  const { workspaceId, name: workspaceName } = await selectWorkspace(
52
60
  ora,
53
61
  config,
@@ -56,23 +64,20 @@ export default async () => {
56
64
 
57
65
  const workspacePreviewUrl = `${config.previewBaseUrl}/workspace/${workspaceId}`;
58
66
 
67
+ breadcrumbs.push("build archive");
59
68
  await buildArchive(config);
60
69
  spinnerPushing.info(
61
70
  `Publishing to ${workspaceName} using ${workspacePreviewUrl}...`,
62
71
  );
63
72
 
73
+ breadcrumbs.push("send build");
64
74
  await sendBuild(config, { workspaceId, token });
65
75
  spinnerPushing.succeed(
66
76
  `Published to ${workspaceName} using ${workspacePreviewUrl}`,
67
77
  );
68
78
  } catch (error: any) {
69
79
  spinnerPushing?.fail("Publishing failed");
70
- if (error.response?.statusText === "Unauthorized") {
71
- console.error("Unauthorized. Please check your credentials.");
72
- } else {
73
- console.error(error.response?.data || error?.message || error);
74
- }
75
-
80
+ await logError({ command: "push", breadcrumbs, error });
76
81
  await reportErrorToRollbar(error);
77
82
  process.exit(1);
78
83
  }
package/src/utils.ts CHANGED
@@ -88,7 +88,7 @@ export const checkBuildSuccess = async () => {
88
88
  }
89
89
  };
90
90
 
91
- export const getPackageVersion = (packageName: string) => {
91
+ const getPackageVersion = (packageName: string) => {
92
92
  const packageJsonPath = path.join(
93
93
  process.cwd(),
94
94
  "node_modules",
@@ -102,3 +102,26 @@ export const getPackageVersion = (packageName: string) => {
102
102
  return undefined;
103
103
  }
104
104
  };
105
+
106
+ export const getSDKVersions = () => {
107
+ const packageNames = [
108
+ "@embeddable.com/core",
109
+ "@embeddable.com/react",
110
+ "@embeddable.com/sdk-core",
111
+ "@embeddable.com/sdk-react",
112
+ "@embeddable.com/sdk-utils",
113
+ ];
114
+
115
+ const sdkVersions = packageNames.reduce<Record<string, string>>(
116
+ (acc, packageName) => {
117
+ const version = getPackageVersion(packageName);
118
+ if (version) {
119
+ acc[packageName] = version;
120
+ }
121
+ return acc;
122
+ },
123
+ {},
124
+ );
125
+
126
+ return sdkVersions;
127
+ };