@chayns-components/core 5.0.0-beta.576 → 5.0.0-beta.577
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/lib/api/image/post.d.ts +16 -0
- package/lib/api/image/post.js +26 -15
- package/lib/api/image/post.js.map +1 -1
- package/package.json +2 -2
package/lib/api/image/post.d.ts
CHANGED
|
@@ -4,6 +4,22 @@ export interface PostImageResult {
|
|
|
4
4
|
base: string;
|
|
5
5
|
meta?: Meta;
|
|
6
6
|
}
|
|
7
|
+
export interface Image {
|
|
8
|
+
path: string;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
size: number;
|
|
12
|
+
hash: string;
|
|
13
|
+
preview: string;
|
|
14
|
+
isSecured: boolean;
|
|
15
|
+
format: string;
|
|
16
|
+
fileExtension: string;
|
|
17
|
+
}
|
|
18
|
+
export interface Signature {
|
|
19
|
+
verify: string;
|
|
20
|
+
signature: string;
|
|
21
|
+
expires: Date;
|
|
22
|
+
}
|
|
7
23
|
interface PostImageOptions {
|
|
8
24
|
file: File;
|
|
9
25
|
shouldUploadImageToSite?: boolean;
|
package/lib/api/image/post.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { getAccessToken, getSite, getUser } from 'chayns-api';
|
|
2
|
-
|
|
2
|
+
const IMAGE_SERVICE_API_V3_URL = 'https://cube.tobit.cloud/image-service/v3/Images';
|
|
3
|
+
const IMAGE_RESIZER_API_URL = 'https://cube.tobit.cloud/image-resizer-backend/api/v1.0/image';
|
|
4
|
+
|
|
3
5
|
/**
|
|
4
6
|
* Uploads an image to the tsimg cloud service
|
|
5
7
|
*/
|
|
@@ -16,27 +18,36 @@ export const postImage = async _ref => {
|
|
|
16
18
|
if (!accessToken || !user?.personId) {
|
|
17
19
|
return undefined;
|
|
18
20
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
const body = await getFileAsArrayBuffer(file);
|
|
28
|
-
const response = await fetch('https://api.tsimg.cloud/image', {
|
|
21
|
+
|
|
22
|
+
// const body = await getFileAsArrayBuffer(file);
|
|
23
|
+
|
|
24
|
+
const body = new FormData();
|
|
25
|
+
body.append('File', file);
|
|
26
|
+
const url = file.size > 10 * 1024 * 1024 ? `${IMAGE_RESIZER_API_URL}/${shouldUploadImageToSite ? site.id : user.personId}` : `${IMAGE_SERVICE_API_V3_URL}/${shouldUploadImageToSite ? site.id : user.personId}`;
|
|
27
|
+
const response = await fetch(url, {
|
|
29
28
|
body,
|
|
30
29
|
headers: {
|
|
31
30
|
Accept: 'application/json',
|
|
32
|
-
Authorization: `bearer ${accessToken}
|
|
33
|
-
'Content-Type': 'image/*',
|
|
34
|
-
...head
|
|
31
|
+
Authorization: `bearer ${accessToken}`
|
|
35
32
|
},
|
|
36
33
|
method: 'POST'
|
|
37
34
|
});
|
|
38
35
|
if (response.ok) {
|
|
39
|
-
|
|
36
|
+
const {
|
|
37
|
+
image,
|
|
38
|
+
baseDomain
|
|
39
|
+
} = await response.json();
|
|
40
|
+
// Maps image-service-api-v3 result to v2 result.
|
|
41
|
+
return {
|
|
42
|
+
key: image.path,
|
|
43
|
+
// Removes trailing slash from baseDomain, since image-service-api-v2 doesn't have a trailing slash on base.
|
|
44
|
+
base: baseDomain.endsWith('/') ? baseDomain.slice(0, -1) : baseDomain,
|
|
45
|
+
meta: {
|
|
46
|
+
preview: image.preview,
|
|
47
|
+
width: String(image.width),
|
|
48
|
+
height: String(image.height)
|
|
49
|
+
}
|
|
50
|
+
};
|
|
40
51
|
}
|
|
41
52
|
throw Error(`Failed to POST image (status code: ${response.status}).`);
|
|
42
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","names":["getAccessToken","getSite","getUser","
|
|
1
|
+
{"version":3,"file":"post.js","names":["getAccessToken","getSite","getUser","IMAGE_SERVICE_API_V3_URL","IMAGE_RESIZER_API_URL","postImage","_ref","file","shouldUploadImageToSite","accessToken","user","site","personId","undefined","body","FormData","append","url","size","id","response","fetch","headers","Accept","Authorization","method","ok","image","baseDomain","json","key","path","base","endsWith","slice","meta","preview","width","String","height","Error","status"],"sources":["../../../src/api/image/post.ts"],"sourcesContent":["import { getAccessToken, getSite, getUser } from 'chayns-api';\nimport type { Meta } from '../../types/file';\n\nexport interface PostImageResult {\n key: string;\n base: string;\n meta?: Meta;\n}\n\ninterface Result {\n requestId: string;\n image: Image;\n baseDomain: string;\n signature: Signature;\n}\n\nexport interface Image {\n path: string;\n width: number;\n height: number;\n size: number;\n hash: string;\n preview: string;\n isSecured: boolean;\n format: string;\n fileExtension: string;\n}\n\nexport interface Signature {\n verify: string;\n signature: string;\n expires: Date;\n}\n\ninterface PostImageOptions {\n file: File;\n shouldUploadImageToSite?: boolean;\n}\n\nconst IMAGE_SERVICE_API_V3_URL = 'https://cube.tobit.cloud/image-service/v3/Images';\nconst IMAGE_RESIZER_API_URL = 'https://cube.tobit.cloud/image-resizer-backend/api/v1.0/image';\n\n/**\n * Uploads an image to the tsimg cloud service\n */\nexport const postImage = async ({\n file,\n shouldUploadImageToSite,\n}: PostImageOptions): Promise<PostImageResult | undefined> => {\n const { accessToken } = await getAccessToken();\n const user = getUser();\n const site = getSite();\n\n if (!accessToken || !user?.personId) {\n return undefined;\n }\n\n // const body = await getFileAsArrayBuffer(file);\n\n const body = new FormData();\n\n body.append('File', file);\n\n const url =\n file.size > 10 * 1024 * 1024\n ? `${IMAGE_RESIZER_API_URL}/${shouldUploadImageToSite ? site.id : user.personId}`\n : `${IMAGE_SERVICE_API_V3_URL}/${shouldUploadImageToSite ? site.id : user.personId}`;\n\n const response = await fetch(url, {\n body,\n headers: {\n Accept: 'application/json',\n Authorization: `bearer ${accessToken}`,\n },\n method: 'POST',\n });\n\n if (response.ok) {\n const { image, baseDomain } = (await response.json()) as Result;\n // Maps image-service-api-v3 result to v2 result.\n return {\n key: image.path,\n // Removes trailing slash from baseDomain, since image-service-api-v2 doesn't have a trailing slash on base.\n base: baseDomain.endsWith('/') ? baseDomain.slice(0, -1) : baseDomain,\n meta: {\n preview: image.preview,\n width: String(image.width),\n height: String(image.height),\n },\n };\n }\n\n throw Error(`Failed to POST image (status code: ${response.status}).`);\n};\n"],"mappings":"AAAA,SAASA,cAAc,EAAEC,OAAO,EAAEC,OAAO,QAAQ,YAAY;AAuC7D,MAAMC,wBAAwB,GAAG,kDAAkD;AACnF,MAAMC,qBAAqB,GAAG,+DAA+D;;AAE7F;AACA;AACA;AACA,OAAO,MAAMC,SAAS,GAAG,MAAAC,IAAA,IAGqC;EAAA,IAH9B;IAC5BC,IAAI;IACJC;EACc,CAAC,GAAAF,IAAA;EACf,MAAM;IAAEG;EAAY,CAAC,GAAG,MAAMT,cAAc,CAAC,CAAC;EAC9C,MAAMU,IAAI,GAAGR,OAAO,CAAC,CAAC;EACtB,MAAMS,IAAI,GAAGV,OAAO,CAAC,CAAC;EAEtB,IAAI,CAACQ,WAAW,IAAI,CAACC,IAAI,EAAEE,QAAQ,EAAE;IACjC,OAAOC,SAAS;EACpB;;EAEA;;EAEA,MAAMC,IAAI,GAAG,IAAIC,QAAQ,CAAC,CAAC;EAE3BD,IAAI,CAACE,MAAM,CAAC,MAAM,EAAET,IAAI,CAAC;EAEzB,MAAMU,GAAG,GACLV,IAAI,CAACW,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GACrB,GAAEd,qBAAsB,IAAGI,uBAAuB,GAAGG,IAAI,CAACQ,EAAE,GAAGT,IAAI,CAACE,QAAS,EAAC,GAC9E,GAAET,wBAAyB,IAAGK,uBAAuB,GAAGG,IAAI,CAACQ,EAAE,GAAGT,IAAI,CAACE,QAAS,EAAC;EAE5F,MAAMQ,QAAQ,GAAG,MAAMC,KAAK,CAACJ,GAAG,EAAE;IAC9BH,IAAI;IACJQ,OAAO,EAAE;MACLC,MAAM,EAAE,kBAAkB;MAC1BC,aAAa,EAAG,UAASf,WAAY;IACzC,CAAC;IACDgB,MAAM,EAAE;EACZ,CAAC,CAAC;EAEF,IAAIL,QAAQ,CAACM,EAAE,EAAE;IACb,MAAM;MAAEC,KAAK;MAAEC;IAAW,CAAC,GAAI,MAAMR,QAAQ,CAACS,IAAI,CAAC,CAAY;IAC/D;IACA,OAAO;MACHC,GAAG,EAAEH,KAAK,CAACI,IAAI;MACf;MACAC,IAAI,EAAEJ,UAAU,CAACK,QAAQ,CAAC,GAAG,CAAC,GAAGL,UAAU,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGN,UAAU;MACrEO,IAAI,EAAE;QACFC,OAAO,EAAET,KAAK,CAACS,OAAO;QACtBC,KAAK,EAAEC,MAAM,CAACX,KAAK,CAACU,KAAK,CAAC;QAC1BE,MAAM,EAAED,MAAM,CAACX,KAAK,CAACY,MAAM;MAC/B;IACJ,CAAC;EACL;EAEA,MAAMC,KAAK,CAAE,sCAAqCpB,QAAQ,CAACqB,MAAO,IAAG,CAAC;AAC1E,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chayns-components/core",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.577",
|
|
4
4
|
"description": "A set of beautiful React components for developing your own applications with chayns.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"browserslist": [
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"publishConfig": {
|
|
74
74
|
"access": "public"
|
|
75
75
|
},
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "2c4cdf186970672936ffe297f3901361d94b9e2d"
|
|
77
77
|
}
|