@canva/cli 0.0.1-beta.11 → 0.0.1-beta.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canva/cli",
3
- "version": "0.0.1-beta.11",
3
+ "version": "0.0.1-beta.13",
4
4
  "description": "The official Canva CLI.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Canva Pty Ltd.",
@@ -6,7 +6,7 @@
6
6
  "license": "SEE LICENSE IN LICENSE.md",
7
7
  "author": "Canva Pty Ltd.",
8
8
  "dependencies": {
9
- "@canva/app-ui-kit": "^4.4.0",
9
+ "@canva/app-ui-kit": "^4.5.0",
10
10
  "@canva/asset": "^2.1.0",
11
11
  "@canva/design": "^2.3.0",
12
12
  "@canva/error": "^2.1.0",
@@ -17,6 +17,7 @@
17
17
  "react-dom": "18.3.1"
18
18
  },
19
19
  "devDependencies": {
20
+ "@canva/cli": "^0.0.1-beta.11",
20
21
  "@ngrok/ngrok": "1.4.1",
21
22
  "@svgr/webpack": "8.1.0",
22
23
  "@types/debug": "4.1.12",
@@ -49,6 +50,7 @@
49
50
  "node-fetch": "3.3.2",
50
51
  "node-forge": "1.3.1",
51
52
  "nodemon": "3.0.1",
53
+ "open": "8.4.2",
52
54
  "postcss-loader": "8.1.1",
53
55
  "prettier": "3.4.2",
54
56
  "prompts": "2.4.2",
@@ -7,6 +7,8 @@ import * as nodemon from "nodemon";
7
7
  import * as Table from "cli-table3";
8
8
  import * as webpack from "webpack";
9
9
  import * as WebpackDevServer from "webpack-dev-server";
10
+ import * as open from "open";
11
+ import { generatePreviewUrl } from "@canva/cli";
10
12
  import type { Certificate } from "../ssl/ssl";
11
13
  import { createOrRetrieveCertificate } from "../ssl/ssl";
12
14
 
@@ -46,12 +48,18 @@ export class AppRunner {
46
48
  }
47
49
  }
48
50
 
49
- const table = new Table();
51
+ const table = new Table({
52
+ colWidths: [30, 80],
53
+ wordWrap: true,
54
+ wrapOnWordBoundary: true,
55
+ });
50
56
 
51
57
  const server = await this.runWebpackDevServer(ctx, table, cert);
52
58
 
53
59
  await this.maybeRunBackendServer(ctx, table, cert, server);
54
60
 
61
+ await this.generateAndOpenPreviewUrl(table);
62
+
55
63
  console.log(table.toString(), "\n");
56
64
 
57
65
  console.log(
@@ -161,4 +169,28 @@ export class AppRunner {
161
169
 
162
170
  return server;
163
171
  };
172
+
173
+ /**
174
+ * Calls the Canva CLI to generate a preview URL for the app
175
+ */
176
+ private readonly generateAndOpenPreviewUrl = async (table: Table.Table) => {
177
+ const previewCellHeader = { content: "Preview your app in Canva" };
178
+
179
+ const generatePreviewResult = await generatePreviewUrl();
180
+
181
+ if (!generatePreviewResult.success) {
182
+ table.push([
183
+ previewCellHeader,
184
+ { content: warnChalk(generatePreviewResult.message) },
185
+ ]);
186
+ return;
187
+ }
188
+
189
+ table.push([
190
+ previewCellHeader,
191
+ { content: "Preview URL", href: generatePreviewResult.data },
192
+ ]);
193
+
194
+ open(generatePreviewResult.data);
195
+ };
164
196
  }
@@ -19,7 +19,7 @@
19
19
  "dependencies": {
20
20
  "@canva/app-components": "^1.0.0-beta.29",
21
21
  "@canva/app-i18n-kit": "^1.0.2",
22
- "@canva/app-ui-kit": "^4.4.0",
22
+ "@canva/app-ui-kit": "^4.5.0",
23
23
  "@canva/asset": "^2.1.0",
24
24
  "@canva/design": "^2.3.0",
25
25
  "@canva/error": "^2.1.0",
@@ -32,6 +32,7 @@
32
32
  "react-intl": "6.8.7"
33
33
  },
34
34
  "devDependencies": {
35
+ "@canva/cli": "^0.0.1-beta.11",
35
36
  "@eslint/eslintrc": "3.2.0",
36
37
  "@eslint/js": "9.16.0",
37
38
  "@formatjs/cli": "6.3.14",
@@ -79,6 +80,7 @@
79
80
  "node-fetch": "3.3.2",
80
81
  "node-forge": "1.3.1",
81
82
  "nodemon": "3.0.1",
83
+ "open": "8.4.2",
82
84
  "postcss-loader": "8.1.1",
83
85
  "prettier": "3.4.2",
84
86
  "prompts": "2.4.2",
@@ -7,6 +7,8 @@ import * as nodemon from "nodemon";
7
7
  import * as Table from "cli-table3";
8
8
  import * as webpack from "webpack";
9
9
  import * as WebpackDevServer from "webpack-dev-server";
10
+ import * as open from "open";
11
+ import { generatePreviewUrl } from "@canva/cli";
10
12
  import type { Certificate } from "../ssl/ssl";
11
13
  import { createOrRetrieveCertificate } from "../ssl/ssl";
12
14
 
@@ -46,12 +48,18 @@ export class AppRunner {
46
48
  }
47
49
  }
48
50
 
49
- const table = new Table();
51
+ const table = new Table({
52
+ colWidths: [30, 80],
53
+ wordWrap: true,
54
+ wrapOnWordBoundary: true,
55
+ });
50
56
 
51
57
  const server = await this.runWebpackDevServer(ctx, table, cert);
52
58
 
53
59
  await this.maybeRunBackendServer(ctx, table, cert, server);
54
60
 
61
+ await this.generateAndOpenPreviewUrl(table);
62
+
55
63
  console.log(table.toString(), "\n");
56
64
 
57
65
  console.log(
@@ -161,4 +169,28 @@ export class AppRunner {
161
169
 
162
170
  return server;
163
171
  };
172
+
173
+ /**
174
+ * Calls the Canva CLI to generate a preview URL for the app
175
+ */
176
+ private readonly generateAndOpenPreviewUrl = async (table: Table.Table) => {
177
+ const previewCellHeader = { content: "Preview your app in Canva" };
178
+
179
+ const generatePreviewResult = await generatePreviewUrl();
180
+
181
+ if (!generatePreviewResult.success) {
182
+ table.push([
183
+ previewCellHeader,
184
+ { content: warnChalk(generatePreviewResult.message) },
185
+ ]);
186
+ return;
187
+ }
188
+
189
+ table.push([
190
+ previewCellHeader,
191
+ { content: "Preview URL", href: generatePreviewResult.data },
192
+ ]);
193
+
194
+ open(generatePreviewResult.data);
195
+ };
164
196
  }
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@canva/app-i18n-kit": "^1.0.2",
21
- "@canva/app-ui-kit": "^4.4.0",
21
+ "@canva/app-ui-kit": "^4.5.0",
22
22
  "@canva/asset": "^2.1.0",
23
23
  "@canva/design": "^2.3.0",
24
24
  "@canva/error": "^2.1.0",
@@ -35,6 +35,7 @@
35
35
  "react-router-dom": "6.28.0"
36
36
  },
37
37
  "devDependencies": {
38
+ "@canva/cli": "^0.0.1-beta.11",
38
39
  "@eslint/eslintrc": "3.2.0",
39
40
  "@eslint/js": "9.16.0",
40
41
  "@formatjs/cli": "6.3.14",
@@ -81,6 +82,7 @@
81
82
  "node-fetch": "3.3.2",
82
83
  "node-forge": "1.3.1",
83
84
  "nodemon": "3.0.1",
85
+ "open": "8.4.2",
84
86
  "postcss-loader": "8.1.1",
85
87
  "prettier": "3.4.2",
86
88
  "prompts": "2.4.2",
@@ -7,6 +7,8 @@ import * as nodemon from "nodemon";
7
7
  import * as Table from "cli-table3";
8
8
  import * as webpack from "webpack";
9
9
  import * as WebpackDevServer from "webpack-dev-server";
10
+ import * as open from "open";
11
+ import { generatePreviewUrl } from "@canva/cli";
10
12
  import type { Certificate } from "../ssl/ssl";
11
13
  import { createOrRetrieveCertificate } from "../ssl/ssl";
12
14
 
@@ -46,12 +48,18 @@ export class AppRunner {
46
48
  }
47
49
  }
48
50
 
49
- const table = new Table();
51
+ const table = new Table({
52
+ colWidths: [30, 80],
53
+ wordWrap: true,
54
+ wrapOnWordBoundary: true,
55
+ });
50
56
 
51
57
  const server = await this.runWebpackDevServer(ctx, table, cert);
52
58
 
53
59
  await this.maybeRunBackendServer(ctx, table, cert, server);
54
60
 
61
+ await this.generateAndOpenPreviewUrl(table);
62
+
55
63
  console.log(table.toString(), "\n");
56
64
 
57
65
  console.log(
@@ -161,4 +169,28 @@ export class AppRunner {
161
169
 
162
170
  return server;
163
171
  };
172
+
173
+ /**
174
+ * Calls the Canva CLI to generate a preview URL for the app
175
+ */
176
+ private readonly generateAndOpenPreviewUrl = async (table: Table.Table) => {
177
+ const previewCellHeader = { content: "Preview your app in Canva" };
178
+
179
+ const generatePreviewResult = await generatePreviewUrl();
180
+
181
+ if (!generatePreviewResult.success) {
182
+ table.push([
183
+ previewCellHeader,
184
+ { content: warnChalk(generatePreviewResult.message) },
185
+ ]);
186
+ return;
187
+ }
188
+
189
+ table.push([
190
+ previewCellHeader,
191
+ { content: "Preview URL", href: generatePreviewResult.data },
192
+ ]);
193
+
194
+ open(generatePreviewResult.data);
195
+ };
164
196
  }
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "@canva/app-i18n-kit": "^1.0.2",
22
- "@canva/app-ui-kit": "^4.4.0",
22
+ "@canva/app-ui-kit": "^4.5.0",
23
23
  "@canva/asset": "^2.1.0",
24
24
  "@canva/design": "^2.3.0",
25
25
  "@canva/error": "^2.1.0",
@@ -30,6 +30,7 @@
30
30
  "react-intl": "6.8.7"
31
31
  },
32
32
  "devDependencies": {
33
+ "@canva/cli": "^0.0.1-beta.11",
33
34
  "@eslint/eslintrc": "3.2.0",
34
35
  "@eslint/js": "9.16.0",
35
36
  "@formatjs/cli": "6.3.14",
@@ -73,6 +74,7 @@
73
74
  "node-fetch": "3.3.2",
74
75
  "node-forge": "1.3.1",
75
76
  "nodemon": "3.0.1",
77
+ "open": "8.4.2",
76
78
  "postcss-loader": "8.1.1",
77
79
  "prettier": "3.4.2",
78
80
  "react-refresh": "0.16.0",
@@ -7,6 +7,8 @@ import * as nodemon from "nodemon";
7
7
  import * as Table from "cli-table3";
8
8
  import * as webpack from "webpack";
9
9
  import * as WebpackDevServer from "webpack-dev-server";
10
+ import * as open from "open";
11
+ import { generatePreviewUrl } from "@canva/cli";
10
12
  import type { Certificate } from "../ssl/ssl";
11
13
  import { createOrRetrieveCertificate } from "../ssl/ssl";
12
14
 
@@ -46,12 +48,18 @@ export class AppRunner {
46
48
  }
47
49
  }
48
50
 
49
- const table = new Table();
51
+ const table = new Table({
52
+ colWidths: [30, 80],
53
+ wordWrap: true,
54
+ wrapOnWordBoundary: true,
55
+ });
50
56
 
51
57
  const server = await this.runWebpackDevServer(ctx, table, cert);
52
58
 
53
59
  await this.maybeRunBackendServer(ctx, table, cert, server);
54
60
 
61
+ await this.generateAndOpenPreviewUrl(table);
62
+
55
63
  console.log(table.toString(), "\n");
56
64
 
57
65
  console.log(
@@ -161,4 +169,28 @@ export class AppRunner {
161
169
 
162
170
  return server;
163
171
  };
172
+
173
+ /**
174
+ * Calls the Canva CLI to generate a preview URL for the app
175
+ */
176
+ private readonly generateAndOpenPreviewUrl = async (table: Table.Table) => {
177
+ const previewCellHeader = { content: "Preview your app in Canva" };
178
+
179
+ const generatePreviewResult = await generatePreviewUrl();
180
+
181
+ if (!generatePreviewResult.success) {
182
+ table.push([
183
+ previewCellHeader,
184
+ { content: warnChalk(generatePreviewResult.message) },
185
+ ]);
186
+ return;
187
+ }
188
+
189
+ table.push([
190
+ previewCellHeader,
191
+ { content: "Preview URL", href: generatePreviewResult.data },
192
+ ]);
193
+
194
+ open(generatePreviewResult.data);
195
+ };
164
196
  }
@@ -10,7 +10,7 @@ exports[`Hello World Tests should have a consistent snapshot 1`] = `
10
10
  style="--NZu1Zw: 16px;"
11
11
  >
12
12
  <p
13
- class="fFOiLQ _5Ob_nQ fM_HdA"
13
+ class="D6xAvw E44aNA rU8RQQ"
14
14
  >
15
15
  To make changes to this app, edit the
16
16
  <code>
@@ -19,21 +19,21 @@ exports[`Hello World Tests should have a consistent snapshot 1`] = `
19
19
  file, then close and reopen the app in the editor to preview the changes.
20
20
  </p>
21
21
  <button
22
- class="_1QoxDw Qkd66A tYI0Vw o4TrkA zKTE_w Qkd66A tYI0Vw lsXp_w ubW6qw cwOZMg zQlusQ uRvRjQ"
22
+ class="_5KtATA LQzFZw xwTbNA _8ERLTg rV61VQ LQzFZw xwTbNA _4_iekA _3oHQrw j34Zww aqbYPg _3FvZZg"
23
23
  type="button"
24
24
  >
25
25
  <span
26
- class="_38oWvQ"
26
+ class="khPe7Q"
27
27
  >
28
28
  Do something cool
29
29
  </span>
30
30
  </button>
31
31
  <button
32
- class="_1QoxDw Qkd66A tYI0Vw o4TrkA NT2yCg Qkd66A tYI0Vw lsXp_w cwOZMg zQlusQ uRvRjQ"
32
+ class="_5KtATA LQzFZw xwTbNA _8ERLTg Z3nT2A LQzFZw xwTbNA _4_iekA j34Zww aqbYPg _3FvZZg"
33
33
  type="button"
34
34
  >
35
35
  <span
36
- class="_38oWvQ"
36
+ class="khPe7Q"
37
37
  >
38
38
  Open Canva Apps SDK docs
39
39
  </span>