@webiny/api-file-manager-s3 5.25.0 → 5.26.0-beta.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.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-file-manager-s3",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.26.0-beta.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
"author": "Webiny Ltd",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@webiny/api-file-manager": "5.
|
|
14
|
-
"@webiny/error": "5.
|
|
15
|
-
"@webiny/handler-graphql": "5.
|
|
16
|
-
"@webiny/validation": "5.
|
|
13
|
+
"@webiny/api-file-manager": "5.26.0-beta.0",
|
|
14
|
+
"@webiny/error": "5.26.0-beta.0",
|
|
15
|
+
"@webiny/handler-graphql": "5.26.0-beta.0",
|
|
16
|
+
"@webiny/validation": "5.26.0-beta.0",
|
|
17
17
|
"form-data": "3.0.1",
|
|
18
18
|
"node-fetch": "2.6.7",
|
|
19
19
|
"sanitize-filename": "1.6.3",
|
|
@@ -22,8 +22,9 @@
|
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@babel/cli": "^7.16.0",
|
|
24
24
|
"@babel/core": "^7.16.0",
|
|
25
|
-
"@
|
|
26
|
-
"@webiny/
|
|
25
|
+
"@types/node-fetch": "^2.6.1",
|
|
26
|
+
"@webiny/cli": "^5.26.0-beta.0",
|
|
27
|
+
"@webiny/project-utils": "^5.26.0-beta.0",
|
|
27
28
|
"rimraf": "^3.0.2",
|
|
28
29
|
"typescript": "4.5.5"
|
|
29
30
|
},
|
|
@@ -35,5 +36,5 @@
|
|
|
35
36
|
"build": "yarn webiny run build",
|
|
36
37
|
"watch": "yarn webiny run watch"
|
|
37
38
|
},
|
|
38
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "4ce1afe0630101262047a016a4b00e4e01f47095"
|
|
39
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["getPresignedPostPayload.ts"],"names":["S3_BUCKET","process","env","UPLOAD_MAX_FILE_SIZE_DEFAULT","sanitizeFileSizeValue","value","defaultValue","validation","validateSync","e","data","settings","type","contentType","Error","key","name","keyPrefix","replace","uploadMinFileSize","uploadMaxFileSize","params","Expires","Bucket","Conditions","Fields","startsWith","
|
|
1
|
+
{"version":3,"sources":["getPresignedPostPayload.ts"],"names":["S3_BUCKET","process","env","UPLOAD_MAX_FILE_SIZE_DEFAULT","sanitizeFileSizeValue","value","defaultValue","validation","validateSync","e","data","settings","type","contentType","Error","key","name","keyPrefix","replace","uploadMinFileSize","uploadMaxFileSize","params","Expires","Bucket","Conditions","Fields","startsWith","slice","s3","S3","payload","createPresignedPost","file","size"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAIA,MAAMA,SAAS,GAAGC,OAAO,CAACC,GAAR,CAAYF,SAA9B;AACA,MAAMG,4BAA4B,GAAG,QAArC,C,CAA+C;;AAE/C,MAAMC,qBAAqB,GAAG,CAACC,KAAD,EAAgBC,YAAhB,KAAiD;AAC3E,MAAI;AACAC,2BAAWC,YAAX,CAAwBH,KAAxB,EAA+B,wBAA/B;;AACA,WAAOA,KAAP;AACH,GAHD,CAGE,OAAOI,CAAP,EAAU;AACR;AACA,WAAOH,YAAP;AACH;AACJ,CARD;;eAUe,OACXI,IADW,EAEXC,QAFW,KAGiC;AAC5C;AACA;AACA,MAAI,CAACD,IAAI,CAACE,IAAV,EAAgB;AACZF,IAAAA,IAAI,CAACE,IAAL,GAAY,0BAAZ;AACH;;AAED,QAAMC,WAAW,GAAGH,IAAI,CAACE,IAAzB;;AACA,MAAI,CAACC,WAAL,EAAkB;AACd,UAAMC,KAAK,CAAE,4CAAF,CAAX;AACH;;AAED,MAAIC,GAAG,GAAG,+BAAiBL,IAAI,CAACM,IAAtB,CAAV;;AACA,MAAID,GAAJ,EAAS;AACLA,IAAAA,GAAG,GAAG,yBAAa,GAAb,GAAmBA,GAAzB;AACH;;AAED,MAAIL,IAAI,CAACO,SAAT,EAAoB;AAChBF,IAAAA,GAAG,GAAI,GAAE,+BAAiBL,IAAI,CAACO,SAAtB,CAAiC,IAAGF,GAAI,EAAjD;AACH,GAnB2C,CAqB5C;;;AACAA,EAAAA,GAAG,GAAGA,GAAG,CAACG,OAAJ,CAAY,KAAZ,EAAmB,EAAnB,CAAN;AAEA,QAAMC,iBAAiB,GAAGf,qBAAqB,CAACO,QAAQ,CAACQ,iBAAV,EAA6B,CAA7B,CAA/C;AACA,QAAMC,iBAAiB,GAAGhB,qBAAqB,CAC3CO,QAAQ,CAACS,iBADkC,EAE3CjB,4BAF2C,CAA/C;AAKA,QAAMkB,MAAM,GAAG;AACXC,IAAAA,OAAO,EAAE,EADE;AAEXC,IAAAA,MAAM,EAAEvB,SAFG;AAGXwB,IAAAA,UAAU,EAAE,CAAC,CAAC,sBAAD,EAAyBL,iBAAzB,EAA4CC,iBAA5C,CAAD,CAHD;AAGmE;AAC9EK,IAAAA,MAAM,EAAE;AACJ,sBAAgBZ,WADZ;AAEJE,MAAAA;AAFI;AAJG,GAAf;;AAUA,MAAIM,MAAM,CAACI,MAAP,CAAcV,GAAd,CAAkBW,UAAlB,CAA6B,GAA7B,CAAJ,EAAuC;AACnCL,IAAAA,MAAM,CAACI,MAAP,CAAcV,GAAd,GAAoBM,MAAM,CAACI,MAAP,CAAcV,GAAd,CAAkBY,KAAlB,CAAwB,CAAxB,CAApB;AACH;;AAED,QAAMC,EAAE,GAAG,IAAIC,UAAJ,EAAX;AACA,QAAMC,OAAO,GAAGF,EAAE,CAACG,mBAAH,CAAuBV,MAAvB,CAAhB;AAEA,SAAO;AACHX,IAAAA,IAAI,EAAEoB,OADH;AAEHE,IAAAA,IAAI,EAAE;AACFhB,MAAAA,IAAI,EAAED,GADJ;AAEFA,MAAAA,GAFE;AAGFH,MAAAA,IAAI,EAAEC,WAHJ;AAIFoB,MAAAA,IAAI,EAAEvB,IAAI,CAACuB;AAJT;AAFH,GAAP;AASH,C","sourcesContent":["import uniqueId from \"uniqid\";\nimport sanitizeFilename from \"sanitize-filename\";\nimport S3 from \"aws-sdk/clients/s3\";\nimport { validation } from \"@webiny/validation\";\nimport { PresignedPostPayloadData, PresignedPostPayloadDataResponse } from \"~/types\";\nimport { FileManagerSettings } from \"@webiny/api-file-manager/types\";\n\nconst S3_BUCKET = process.env.S3_BUCKET;\nconst UPLOAD_MAX_FILE_SIZE_DEFAULT = 26214400; // 25MB\n\nconst sanitizeFileSizeValue = (value: number, defaultValue: number): number => {\n try {\n validation.validateSync(value, \"required,numeric,gte:0\");\n return value;\n } catch (e) {\n // TODO @ts-refactor No need to log the error?\n return defaultValue;\n }\n};\n\nexport default async (\n data: PresignedPostPayloadData,\n settings: FileManagerSettings\n): Promise<PresignedPostPayloadDataResponse> => {\n // If type is missing, let's use the default \"application/octet-stream\" type,\n // which is also the default type that the Amazon S3 would use.\n if (!data.type) {\n data.type = \"application/octet-stream\";\n }\n\n const contentType = data.type;\n if (!contentType) {\n throw Error(`File's content type could not be resolved.`);\n }\n\n let key = sanitizeFilename(data.name);\n if (key) {\n key = uniqueId() + \"-\" + key;\n }\n\n if (data.keyPrefix) {\n key = `${sanitizeFilename(data.keyPrefix)}-${key}`;\n }\n\n // Replace all whitespace.\n key = key.replace(/\\s/g, \"\");\n\n const uploadMinFileSize = sanitizeFileSizeValue(settings.uploadMinFileSize, 0);\n const uploadMaxFileSize = sanitizeFileSizeValue(\n settings.uploadMaxFileSize,\n UPLOAD_MAX_FILE_SIZE_DEFAULT\n );\n\n const params = {\n Expires: 60,\n Bucket: S3_BUCKET,\n Conditions: [[\"content-length-range\", uploadMinFileSize, uploadMaxFileSize]], // 0 Bytes - 25MB\n Fields: {\n \"Content-Type\": contentType,\n key\n }\n };\n\n if (params.Fields.key.startsWith(\"/\")) {\n params.Fields.key = params.Fields.key.slice(1);\n }\n\n const s3 = new S3();\n const payload = s3.createPresignedPost(params);\n\n return {\n data: payload,\n file: {\n name: key,\n key,\n type: contentType,\n size: data.size\n }\n };\n};\n"]}
|