screenright-client 0.9.1 → 0.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/dist/index.js CHANGED
@@ -7,46 +7,50 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import * as fs from 'fs';
11
10
  import fetch from 'node-fetch';
12
11
  import process from 'node:process';
13
- const tmpDir = 'screenright/tmp';
12
+ import FormData from 'form-data';
14
13
  const result = { screenshotItemAttributes: [] };
15
14
  let deploymentId = null;
15
+ const deploymentToken = process.env.SCREENRIGHT_DEPLOYMENT_TOKEN || '';
16
16
  const baseUrl = () => {
17
17
  return `${process.env.SCREENRIGHT_ENDPOINT}/client_api`;
18
18
  };
19
+ const errorOccurred = (message) => {
20
+ console.error('[ScreenRight] Error occurred', message);
21
+ deploymentId = null;
22
+ };
19
23
  export const initializeScreenwright = () => __awaiter(void 0, void 0, void 0, function* () {
20
24
  const diagramId = process.env.SCREENRIGHT_DIAGRAM_ID;
21
- const deploymentToken = process.env.SCREENRIGHT_DEPLOYMENT_TOKEN;
22
- console.log("#", deploymentToken);
25
+ if (!diagramId || !deploymentToken) {
26
+ errorOccurred('Not set require environments.');
27
+ return;
28
+ }
23
29
  try {
24
30
  const response = yield fetch(`${baseUrl()}/diagrams/${diagramId}/deployments`, {
25
31
  method: 'POST',
26
32
  body: JSON.stringify({ deployment_token: deploymentToken }),
27
33
  headers: { 'Content-Type': 'application/json' }
28
34
  });
35
+ if (!response.ok) {
36
+ errorOccurred('Failed create deployment.');
37
+ }
29
38
  const body = yield response.text();
30
39
  const json = JSON.parse(body);
31
40
  deploymentId = json.id;
32
41
  }
33
42
  catch (e) {
34
- console.error('[ScreenRight] Error catch', e.message);
43
+ errorOccurred(e.message);
35
44
  }
36
45
  });
37
46
  export const finalize = () => __awaiter(void 0, void 0, void 0, function* () {
38
- console.log("################## -1");
39
47
  if (!deploymentId) {
40
48
  return;
41
49
  }
42
- fs.writeFileSync(`${tmpDir}/result.json`, JSON.stringify({
43
- screenshotItemAttributes: result.screenshotItemAttributes,
44
- }));
45
50
  const diagramId = process.env.SCREENRIGHT_DIAGRAM_ID;
46
- const deploymentToken = process.env.SCREENRIGHT_DEPLOYMENT_TOKEN;
47
51
  yield fetch(`${baseUrl()}/diagrams/${diagramId}/deployments/${deploymentId}/done_upload`, {
48
52
  method: 'PUT',
49
- body: JSON.stringify({ deployment_token: deploymentToken, screenshotItemAttributes: result.screenshotItemAttributes }),
53
+ body: JSON.stringify({ deployment_token: deploymentToken, blueprint: JSON.stringify({ screenshotItemAttributes: result.screenshotItemAttributes }) }),
50
54
  headers: { 'Content-Type': 'application/json' }
51
55
  });
52
56
  deploymentId = null;
@@ -55,13 +59,33 @@ export const capture = (page, key, title, parentKey) => __awaiter(void 0, void 0
55
59
  if (deploymentId === null) {
56
60
  return;
57
61
  }
58
- fs.mkdirSync(tmpDir, { recursive: true });
59
- const path = `${tmpDir}/${key}.png`;
60
- yield page.screenshot({ path, fullPage: true });
62
+ const fileName = `${key}.jpg`;
63
+ try {
64
+ const buffer = yield page.screenshot({ fullPage: true, type: 'jpeg' });
65
+ const formData = new FormData();
66
+ formData.append('file', buffer, fileName);
67
+ const diagramId = process.env.SCREENRIGHT_DIAGRAM_ID;
68
+ const response = yield fetch(`${baseUrl()}/diagrams/${diagramId}/deployments/${deploymentId}/screenshot`, {
69
+ method: 'POST',
70
+ headers: {
71
+ 'X-File-Key': key,
72
+ 'X-Deployment-Token': deploymentToken,
73
+ },
74
+ body: formData
75
+ });
76
+ if (!response.ok) {
77
+ errorOccurred('Faild screenshot upload');
78
+ return;
79
+ }
80
+ }
81
+ catch (e) {
82
+ errorOccurred(`capture: ${key}, ${e.message}`);
83
+ return;
84
+ }
61
85
  const attribute = {
62
86
  key,
63
87
  title,
64
- src: path,
88
+ url: page.url(),
65
89
  childrens: [],
66
90
  };
67
91
  if (parentKey) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "screenright-client",
3
- "version": "0.9.1",
3
+ "version": "0.9.3",
4
4
  "description": "screenright's nodejs client library",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -7,7 +7,7 @@ import FormData from 'form-data'
7
7
  type ScreenshotItemAttribute = {
8
8
  key: string
9
9
  title: string
10
- src: string
10
+ url: string
11
11
  childrens: ScreenshotItemAttribute[]
12
12
  }
13
13
 
@@ -15,8 +15,6 @@ type Result = {
15
15
  screenshotItemAttributes: ScreenshotItemAttribute[]
16
16
  }
17
17
 
18
- const tmpDir = 'screenright/tmp'
19
-
20
18
  const result: Result = { screenshotItemAttributes: [] }
21
19
 
22
20
  let deploymentId: string | null = null
@@ -63,17 +61,10 @@ export const finalize = async () => {
63
61
  return
64
62
  }
65
63
 
66
- fs.writeFileSync(
67
- `${tmpDir}/result.json`,
68
- JSON.stringify({
69
- screenshotItemAttributes: result.screenshotItemAttributes,
70
- })
71
- )
72
-
73
64
  const diagramId = process.env.SCREENRIGHT_DIAGRAM_ID
74
65
  await fetch(`${baseUrl()}/diagrams/${diagramId}/deployments/${deploymentId}/done_upload`, {
75
66
  method: 'PUT',
76
- body: JSON.stringify({ deployment_token: deploymentToken, blueprint: { screenshotItemAttributes: result.screenshotItemAttributes } }),
67
+ body: JSON.stringify({ deployment_token: deploymentToken, blueprint: JSON.stringify({ screenshotItemAttributes: result.screenshotItemAttributes}) }),
77
68
  headers: { 'Content-Type': 'application/json' }
78
69
  })
79
70
 
@@ -90,21 +81,19 @@ export const capture = async (
90
81
  return
91
82
  }
92
83
 
93
- const fileName = `${key}.png`
94
- const outPath = `${tmpDir}/${fileName}`
84
+ const fileName = `${key}.jpg`
95
85
  try {
96
- fs.mkdirSync(tmpDir, { recursive: true })
97
- const buffer = new Uint8Array(await page.screenshot({ path: outPath, fullPage: true }))
86
+ const buffer = await page.screenshot({ fullPage: true, type: 'jpeg' })
98
87
  const formData = new FormData()
99
88
 
100
- formData.append('file', fs.createReadStream(outPath))
89
+ formData.append('file', buffer, fileName)
101
90
 
102
91
  const diagramId = process.env.SCREENRIGHT_DIAGRAM_ID
103
92
  const response = await fetch(`${baseUrl()}/diagrams/${diagramId}/deployments/${deploymentId}/screenshot`, {
104
93
  method: 'POST',
105
94
  headers: {
106
95
  'X-File-Key': key,
107
- 'X-Deployment-Token': deploymentToken
96
+ 'X-Deployment-Token': deploymentToken,
108
97
  },
109
98
  body: formData
110
99
  })
@@ -114,14 +103,14 @@ export const capture = async (
114
103
  return
115
104
  }
116
105
  } catch(e: any) {
117
- errorOccurred(`capture: ${key}, ${outPath}, ${e.message}`)
106
+ errorOccurred(`capture: ${key}, ${e.message}`)
118
107
  return
119
108
  }
120
109
 
121
110
  const attribute: ScreenshotItemAttribute = {
122
111
  key,
123
112
  title,
124
- src: outPath,
113
+ url: page.url(),
125
114
  childrens: [],
126
115
  }
127
116