@8ms/helpers 1.1.66 → 1.1.71
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/api/response.js +2 -2
- package/api/states.js +1 -1
- package/api/unexpectedError.js +1 -1
- package/array/contains.js +1 -4
- package/array/getArray.js +2 -5
- package/aws/athenaExpress/initClient.d.ts +1 -1
- package/aws/athenaExpress/initClient.js +6 -7
- package/aws/athenaExpress/query.d.ts +8 -0
- package/aws/athenaExpress/query.js +10 -0
- package/aws/getConfig.d.ts +5 -1
- package/aws/getConfig.js +2 -3
- package/aws/glue/initClient.d.ts +5 -4
- package/aws/glue/initClient.js +4 -5
- package/aws/glue/invoke.d.ts +1 -3
- package/aws/glue/invoke.js +12 -63
- package/aws/isResponse200.js +4 -5
- package/aws/lambda/getHandlerPath.d.ts +4 -3
- package/aws/lambda/getHandlerPath.js +3 -4
- package/aws/lambda/initClient.d.ts +5 -4
- package/aws/lambda/initClient.js +4 -5
- package/aws/lambda/invoke.d.ts +1 -3
- package/aws/lambda/invoke.js +29 -77
- package/aws/s3/copyFile.js +7 -55
- package/aws/s3/deleteFile.js +6 -54
- package/aws/s3/deleteFiles.d.ts +5 -6
- package/aws/s3/deleteFiles.js +10 -58
- package/aws/s3/deleteFolder.d.ts +5 -6
- package/aws/s3/deleteFolder.js +26 -76
- package/aws/s3/getGlueJson.d.ts +3 -2
- package/aws/s3/getGlueJson.js +4 -5
- package/aws/s3/getPresignedPost.d.ts +6 -7
- package/aws/s3/getPresignedPost.js +9 -56
- package/aws/s3/getSignedUrl.js +8 -76
- package/aws/s3/initClient.d.ts +5 -4
- package/aws/s3/initClient.js +4 -5
- package/aws/s3/isFileExists.js +17 -66
- package/aws/s3/listFiles.js +22 -69
- package/aws/s3/listFolders.js +21 -68
- package/aws/s3/moveFile.d.ts +5 -4
- package/aws/s3/moveFile.js +10 -58
- package/aws/s3/readBuffer.js +41 -89
- package/aws/s3/readFile.js +42 -93
- package/aws/s3/writeFile.js +10 -72
- package/aws/s3/writePresignedPost.d.ts +2 -3
- package/aws/s3/writePresignedPost.js +22 -93
- package/aws/s3cache/getCache.js +25 -69
- package/aws/s3cache/getKey.js +7 -8
- package/aws/s3cache/saveCache.js +3 -49
- package/aws/s3cache/updateCache.js +13 -65
- package/aws/ses/SimpleEmail.d.ts +10 -13
- package/aws/ses/SimpleEmail.js +85 -189
- package/aws/ses/initClient.d.ts +5 -4
- package/aws/ses/initClient.js +4 -5
- package/aws/ssm/getParameter.js +31 -78
- package/aws/ssm/initClient.d.ts +5 -4
- package/aws/ssm/initClient.js +4 -5
- package/axios/get.js +35 -106
- package/axios/post.js +35 -106
- package/boolean/getBoolean.js +2 -3
- package/class/BaseClass.js +15 -22
- package/crypto/getDecrypt.js +3 -4
- package/crypto/getEncrypt.js +3 -4
- package/crypto/getRandom.js +1 -2
- package/crypto/getSha256.js +4 -5
- package/date/durationComparisons.js +1 -1
- package/date/durations.js +1 -1
- package/date/format.js +7 -8
- package/date/getDate.js +19 -20
- package/date/getDatesBetween.js +8 -9
- package/date/getDurationHours.js +6 -7
- package/date/getDurationMinutes.js +6 -7
- package/date/getFinancialYear.js +11 -12
- package/date/getFinancialYearToDate.js +5 -5
- package/date/getFinancialYearToYesterday.js +5 -5
- package/date/getFinancialYearWeeks.js +10 -11
- package/date/getLastWeek.js +11 -12
- package/date/getMax.js +5 -6
- package/date/getMidnight.js +2 -3
- package/date/getMin.js +5 -6
- package/date/getMonday.js +10 -11
- package/date/getNumber.js +4 -5
- package/date/getPredefinedTimeframe.js +5 -6
- package/date/getSunday.js +10 -11
- package/date/getThisWeek.js +11 -12
- package/date/getTimeZoned.js +11 -12
- package/date/getToday.js +6 -7
- package/date/getTwoWeeksAgo.js +11 -12
- package/date/getWeeksAgo.js +5 -6
- package/date/getYesterday.js +7 -8
- package/date/isDateValid.js +6 -7
- package/date/isLastWeek.js +3 -4
- package/date/isThisWeek.js +3 -4
- package/date/parseExcelDate.js +9 -10
- package/deepCrawl/buildRequest.js +19 -20
- package/deepCrawl/getData.js +21 -79
- package/deepCrawl/initClient.js +17 -64
- package/deepCrawl/operands.js +1 -1
- package/deepCrawl/orders.js +1 -1
- package/deepCrawl/reports.js +1 -1
- package/environment/environments.js +1 -1
- package/environment/getEnvironment.js +8 -8
- package/environment/isAws.js +2 -2
- package/environment/isDevelopment.js +3 -3
- package/environment/isLocalhost.js +4 -4
- package/environment/isProduction.js +3 -3
- package/environment/isStaging.js +3 -3
- package/environment/isVercel.js +1 -1
- package/environment/platforms.d.ts +1 -1
- package/environment/platforms.js +1 -1
- package/eskimi/ageGroups.js +1 -1
- package/eskimi/devices.js +1 -1
- package/eskimi/endpoints.js +1 -1
- package/eskimi/genders.js +1 -1
- package/eskimi/getAccessToken.js +11 -57
- package/eskimi/getAgeGroup.js +3 -4
- package/eskimi/getCampaignIds.js +2 -3
- package/eskimi/getDevice.js +3 -4
- package/eskimi/getGender.js +3 -4
- package/eskimi/request.js +13 -59
- package/google/bigQuery/initClient.d.ts +11 -0
- package/google/bigQuery/initClient.js +22 -0
- package/google/bigQuery/query.d.ts +9 -0
- package/google/bigQuery/query.js +10 -0
- package/google/getConfig.d.ts +20 -0
- package/google/getConfig.js +23 -0
- package/google/sheets/getAssociatedData.d.ts +2 -6
- package/google/sheets/getAssociatedData.js +42 -89
- package/google/sheets/getBatchData.d.ts +1 -3
- package/google/sheets/getBatchData.js +15 -60
- package/google/sheets/initClient.d.ts +11 -0
- package/google/sheets/initClient.js +25 -0
- package/google/sheets/isCellNa.js +1 -4
- package/google/storage/initClient.d.ts +12 -0
- package/google/storage/initClient.js +23 -0
- package/google/storage/writeFile.d.ts +2 -1
- package/google/storage/writeFile.js +20 -77
- package/googleAds/getCustomer.js +7 -48
- package/googleAds/initClient.d.ts +9 -8
- package/googleAds/initClient.js +13 -56
- package/initClients.d.ts +13 -3
- package/initClients.js +95 -101
- package/json/isJson.js +1 -2
- package/littleWarden/getUrlStatus.js +10 -56
- package/littleWarden/isAllGood.js +3 -4
- package/littleWarden/isDanger.js +3 -4
- package/littleWarden/isWarning.js +3 -4
- package/littleWarden/states.js +1 -1
- package/myTarget/getAccessToken.js +11 -57
- package/myTarget/request.js +13 -59
- package/nextAuth/isSessionReady.js +2 -3
- package/nextAuth/states.js +1 -1
- package/nextJs/getIp.js +2 -3
- package/nextJs/getUserAgent.js +1 -4
- package/number/getDivide.js +4 -5
- package/number/getNumber.js +6 -7
- package/number/getPercent.js +4 -5
- package/number/getPercentIncrease.js +4 -5
- package/number/getRounded.js +5 -6
- package/package.json +2 -1
- package/prisma/initClient.js +4 -5
- package/snapchat/getAccessToken.js +25 -72
- package/sorting/byNumberAscending.js +3 -4
- package/sorting/byNumberDescending.js +3 -4
- package/sorting/byStringAscending.js +3 -4
- package/sorting/byStringDescending.js +3 -4
- package/string/formatCapitalise.js +2 -3
- package/string/getCleanFolder.js +3 -6
- package/string/getString.js +9 -10
- package/string/getStringFromStream.js +7 -8
- package/string/toProperCase.js +6 -7
- package/swr/isAllData.js +4 -5
- package/swr/isAnyError.js +4 -5
- package/swr/isAnyLoading.js +4 -5
- package/swr/isData.js +1 -4
- package/swr/isError.js +1 -4
- package/swr/isLoading.js +3 -6
- package/upTimeRobot/getMonitors.d.ts +1 -0
- package/upTimeRobot/getMonitors.js +33 -0
- package/upTimeRobot/logTypes.d.ts +7 -0
- package/upTimeRobot/logTypes.js +9 -0
- package/upTimeRobot/monitorStatuses.d.ts +8 -0
- package/upTimeRobot/monitorStatuses.js +10 -0
- package/upTimeRobot/monitorSubTypes.d.ts +10 -0
- package/upTimeRobot/monitorSubTypes.js +12 -0
- package/upTimeRobot/monitorTypes.d.ts +8 -0
- package/upTimeRobot/monitorTypes.js +10 -0
- package/upTimeRobot/requestStatuses.d.ts +5 -0
- package/upTimeRobot/requestStatuses.js +7 -0
- package/url/buildParameters.js +7 -8
- package/url/buildRelative.js +3 -4
- package/url/buildUrl.js +6 -7
- package/url/isAbsolute.js +1 -2
- package/url/isRelative.js +2 -5
- package/util/defaultTo.d.ts +6 -5
- package/util/defaultTo.js +6 -7
- package/util/isUndefined.d.ts +9 -0
- package/util/isUndefined.js +19 -0
- package/util/sleep.js +2 -3
- package/webWorker/states.js +1 -1
- package/xml/getXml.js +10 -58
- package/aws/athenaExpress/request.d.ts +0 -8
- package/aws/athenaExpress/request.js +0 -54
- package/aws/config.d.ts +0 -5
- package/aws/config.js +0 -2
- package/google/getCredentials.d.ts +0 -20
- package/google/getCredentials.js +0 -76
- package/google/sheets/getAuth.d.ts +0 -8
- package/google/sheets/getAuth.js +0 -69
package/aws/s3/deleteFiles.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
declare type DeleteFiles = {
|
|
2
|
+
bucket: string;
|
|
3
|
+
keys: string[];
|
|
4
|
+
};
|
|
1
5
|
/**
|
|
2
6
|
* Delete multiple files.
|
|
3
7
|
*/
|
|
4
|
-
declare const deleteFiles: ({
|
|
5
|
-
S3Lib: any;
|
|
6
|
-
bucket: string;
|
|
7
|
-
client: any;
|
|
8
|
-
keys: string[];
|
|
9
|
-
}) => Promise<void>;
|
|
8
|
+
declare const deleteFiles: ({ bucket, keys }: DeleteFiles) => Promise<void>;
|
|
10
9
|
export default deleteFiles;
|
package/aws/s3/deleteFiles.js
CHANGED
|
@@ -1,65 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
/**
|
|
40
4
|
* Delete multiple files.
|
|
41
5
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
Delete: {
|
|
53
|
-
Objects: keys.map(function (key) { return ({
|
|
54
|
-
Key: key,
|
|
55
|
-
}); }),
|
|
56
|
-
},
|
|
57
|
-
}))];
|
|
58
|
-
case 1:
|
|
59
|
-
_b.sent();
|
|
60
|
-
return [2 /*return*/];
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
});
|
|
6
|
+
const deleteFiles = async ({ bucket, keys }) => {
|
|
7
|
+
const { DeleteObjectsCommand } = require('@aws-sdk/client-s3');
|
|
8
|
+
await global.awsS3Client.send(new DeleteObjectsCommand({
|
|
9
|
+
Bucket: bucket,
|
|
10
|
+
Delete: {
|
|
11
|
+
Objects: keys.map(key => ({
|
|
12
|
+
Key: key,
|
|
13
|
+
})),
|
|
14
|
+
},
|
|
15
|
+
}));
|
|
64
16
|
};
|
|
65
17
|
exports.default = deleteFiles;
|
package/aws/s3/deleteFolder.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
declare type DeleteFolder = {
|
|
2
|
+
bucket: string;
|
|
3
|
+
folder: string;
|
|
4
|
+
};
|
|
1
5
|
/**
|
|
2
6
|
* Iteratively delete all the files within a directory and delete the directory.
|
|
3
7
|
*/
|
|
4
|
-
declare const deleteFolder: ({
|
|
5
|
-
S3Lib: any;
|
|
6
|
-
bucket: string;
|
|
7
|
-
client: any;
|
|
8
|
-
folder: string;
|
|
9
|
-
}) => Promise<void>;
|
|
8
|
+
declare const deleteFolder: ({ bucket, folder }: DeleteFolder) => Promise<void>;
|
|
10
9
|
export default deleteFolder;
|
package/aws/s3/deleteFolder.js
CHANGED
|
@@ -1,86 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
4
|
};
|
|
41
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
|
|
6
|
+
const getCleanFolder_1 = __importDefault(require("../../string/getCleanFolder"));
|
|
43
7
|
/**
|
|
44
8
|
* Iteratively delete all the files within a directory and delete the directory.
|
|
45
9
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
},
|
|
72
|
-
}))];
|
|
73
|
-
case 2:
|
|
74
|
-
// Delete the files
|
|
75
|
-
_c.sent();
|
|
76
|
-
if (!apiResponse.IsTruncated) return [3 /*break*/, 4];
|
|
77
|
-
return [4 /*yield*/, deleteFolder({ S3Lib: S3Lib, bucket: bucket, client: client, folder: folder })];
|
|
78
|
-
case 3:
|
|
79
|
-
_c.sent();
|
|
80
|
-
_c.label = 4;
|
|
81
|
-
case 4: return [2 /*return*/];
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
});
|
|
10
|
+
const deleteFolder = async ({ bucket, folder }) => {
|
|
11
|
+
const cleanFolder = (0, getCleanFolder_1.default)({ input: folder });
|
|
12
|
+
const { ListObjectsV2Command, DeleteObjectsCommand } = require('@aws-sdk/client-s3');
|
|
13
|
+
// Get a list of all files to be deleted
|
|
14
|
+
const apiResponse = await global.awsS3Client.send(new ListObjectsV2Command({
|
|
15
|
+
Bucket: bucket,
|
|
16
|
+
Prefix: ('' === cleanFolder ? '' : cleanFolder + '/'),
|
|
17
|
+
}));
|
|
18
|
+
// No files to be deleted
|
|
19
|
+
if (apiResponse.Contents.length === 0) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// Map each of the files
|
|
23
|
+
const keys = apiResponse.Contents.map(file => ({ Key: file.Key }));
|
|
24
|
+
// Delete the files
|
|
25
|
+
await global.awsS3Client.send(new DeleteObjectsCommand({
|
|
26
|
+
Bucket: bucket,
|
|
27
|
+
Delete: {
|
|
28
|
+
Objects: keys,
|
|
29
|
+
},
|
|
30
|
+
}));
|
|
31
|
+
// If we didn't get all files, run it again
|
|
32
|
+
if (apiResponse.IsTruncated) {
|
|
33
|
+
await deleteFolder({ bucket, folder });
|
|
34
|
+
}
|
|
85
35
|
};
|
|
86
36
|
exports.default = deleteFolder;
|
package/aws/s3/getGlueJson.d.ts
CHANGED
package/aws/s3/getGlueJson.js
CHANGED
|
@@ -3,13 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var data = _a.data;
|
|
6
|
+
const getArray_1 = __importDefault(require("../../array/getArray"));
|
|
7
|
+
const getGlueJson = ({ data }) => {
|
|
9
8
|
// Must be an array
|
|
10
|
-
|
|
9
|
+
const inputArray = (0, getArray_1.default)({ input: data });
|
|
11
10
|
// For each array row convert the row
|
|
12
|
-
|
|
11
|
+
const stringRows = inputArray.map(row => JSON.stringify(row));
|
|
13
12
|
// Combine each row with a line separator
|
|
14
13
|
return stringRows.join("\n");
|
|
15
14
|
};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
declare type
|
|
2
|
-
|
|
1
|
+
declare type PresignedPost = {
|
|
2
|
+
url: string;
|
|
3
|
+
fields: any;
|
|
4
|
+
};
|
|
5
|
+
declare type GetPresignedPost = {
|
|
3
6
|
bucket: string;
|
|
4
|
-
client: any;
|
|
5
7
|
conditions: any[];
|
|
6
8
|
expires: number;
|
|
7
9
|
fields: {
|
|
@@ -14,8 +16,5 @@ declare type PresignedPostType = {
|
|
|
14
16
|
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_s3_presigned_post.html
|
|
15
17
|
* https://github.com/8millionstories-organisation/test-vercel-upload-2/blob/50eb12fcb3870a59ab455811bfaa1bdcb886edf2/pages/api/upload-url.js
|
|
16
18
|
*/
|
|
17
|
-
declare const getPresignedPost: ({
|
|
18
|
-
url: any;
|
|
19
|
-
fields: any;
|
|
20
|
-
}>;
|
|
19
|
+
declare const getPresignedPost: ({ bucket, conditions, expires, fields, key }: GetPresignedPost) => Promise<PresignedPost>;
|
|
21
20
|
export default getPresignedPost;
|
|
@@ -1,66 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
/**
|
|
40
4
|
* Returns a presigned post to upload a file directly to S3.
|
|
41
5
|
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_s3_presigned_post.html
|
|
42
6
|
* https://github.com/8millionstories-organisation/test-vercel-upload-2/blob/50eb12fcb3870a59ab455811bfaa1bdcb886edf2/pages/api/upload-url.js
|
|
43
7
|
*/
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return [4 /*yield*/, createPresignedPost(global.awsS3Client, {
|
|
53
|
-
Bucket: bucket,
|
|
54
|
-
Key: key,
|
|
55
|
-
Conditions: undefined === conditions ? [] : conditions,
|
|
56
|
-
Fields: undefined === fields ? {} : fields,
|
|
57
|
-
Expires: undefined === expires ? 60 : expires, // Seconds
|
|
58
|
-
})];
|
|
59
|
-
case 1:
|
|
60
|
-
apiResponse = _b.sent();
|
|
61
|
-
return [2 /*return*/, apiResponse];
|
|
62
|
-
}
|
|
63
|
-
});
|
|
8
|
+
const getPresignedPost = async ({ bucket, conditions, expires, fields, key }) => {
|
|
9
|
+
const { createPresignedPost } = require('@aws-sdk/client-s3');
|
|
10
|
+
const apiResponse = await createPresignedPost(global.awsS3Client, {
|
|
11
|
+
Bucket: bucket,
|
|
12
|
+
Key: key,
|
|
13
|
+
Conditions: undefined === conditions ? [] : conditions,
|
|
14
|
+
Fields: undefined === fields ? {} : fields,
|
|
15
|
+
Expires: undefined === expires ? 60 : expires, // Seconds
|
|
64
16
|
});
|
|
17
|
+
return apiResponse;
|
|
65
18
|
};
|
|
66
19
|
exports.default = getPresignedPost;
|
package/aws/s3/getSignedUrl.js
CHANGED
|
@@ -1,85 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (_) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
-
};
|
|
52
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
-
var response_1 = __importDefault(require("../../api/response"));
|
|
54
|
-
var states_1 = __importDefault(require("../../api/states"));
|
|
55
3
|
/**
|
|
56
4
|
* Returns a signed for URL to allow download of private buckets for a given duration.
|
|
57
5
|
* Library: @aws-sdk/s3-request-presigner
|
|
58
6
|
*/
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
case 0:
|
|
66
|
-
response = __assign({}, response_1.default);
|
|
67
|
-
GetObjectCommand = require('@aws-sdk/client-s3').GetObjectCommand;
|
|
68
|
-
getSignedUrl = require('@aws-sdk/s3-request-presigner').getSignedUrl;
|
|
69
|
-
command = new GetObjectCommand({
|
|
70
|
-
Bucket: bucket,
|
|
71
|
-
Key: key,
|
|
72
|
-
});
|
|
73
|
-
return [4 /*yield*/, getSignedUrl(global.awsS3Client, command, { expiresIn: expires })];
|
|
74
|
-
case 1:
|
|
75
|
-
awsResponse = _b.sent();
|
|
76
|
-
if (awsResponse && 'string' === typeof awsResponse) {
|
|
77
|
-
response.state = states_1.default.SUCCESS;
|
|
78
|
-
response.body = awsResponse;
|
|
79
|
-
}
|
|
80
|
-
return [2 /*return*/, response];
|
|
81
|
-
}
|
|
82
|
-
});
|
|
7
|
+
const getSignedUrl = async ({ bucket, expires, key }) => {
|
|
8
|
+
const { GetObjectCommand } = require('@aws-sdk/client-s3');
|
|
9
|
+
const { getSignedUrl } = require('@aws-sdk/s3-request-presigner');
|
|
10
|
+
const command = new GetObjectCommand({
|
|
11
|
+
Bucket: bucket,
|
|
12
|
+
Key: key,
|
|
83
13
|
});
|
|
14
|
+
const response = await getSignedUrl(global.awsS3Client, command, { expiresIn: expires });
|
|
15
|
+
return response;
|
|
84
16
|
};
|
|
85
17
|
exports.default = getSignedUrl;
|
package/aws/s3/initClient.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Config } from '../
|
|
1
|
+
import { Config } from '../getConfig';
|
|
2
|
+
declare type InitClient = {
|
|
3
|
+
config: Config;
|
|
4
|
+
};
|
|
2
5
|
/**
|
|
3
6
|
* Shorthand function to get the Lambda Client.
|
|
4
7
|
* Library: @aws-sdk/client-s3
|
|
5
8
|
*/
|
|
6
|
-
declare const initClient: ({ config }:
|
|
7
|
-
config?: Config;
|
|
8
|
-
}) => void;
|
|
9
|
+
declare const initClient: ({ config }: InitClient) => void;
|
|
9
10
|
export default initClient;
|
package/aws/s3/initClient.js
CHANGED
|
@@ -3,17 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
6
|
+
const getConfig_1 = __importDefault(require("../getConfig"));
|
|
7
7
|
global.awsS3Client = null;
|
|
8
8
|
/**
|
|
9
9
|
* Shorthand function to get the Lambda Client.
|
|
10
10
|
* Library: @aws-sdk/client-s3
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
|
-
var config = _a.config;
|
|
12
|
+
const initClient = ({ config }) => {
|
|
14
13
|
if (!global.awsS3Client) {
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const { S3Client } = require('@aws-sdk/client-s3');
|
|
15
|
+
const formattedConfig = (0, getConfig_1.default)({ config });
|
|
17
16
|
global.awsS3Client = new S3Client(formattedConfig);
|
|
18
17
|
}
|
|
19
18
|
};
|
package/aws/s3/isFileExists.js
CHANGED
|
@@ -1,76 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
4
|
};
|
|
41
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
|
|
6
|
+
const isResponse200_1 = __importDefault(require("../isResponse200"));
|
|
43
7
|
/**
|
|
44
8
|
* Check to see if a file exists but don't get the contents.
|
|
45
9
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
case 2:
|
|
63
|
-
apiResponse = _b.sent();
|
|
64
|
-
// If the status is 200 then it does exist
|
|
65
|
-
response = (0, isResponse200_1.default)({ apiResponse: apiResponse });
|
|
66
|
-
return [3 /*break*/, 4];
|
|
67
|
-
case 3:
|
|
68
|
-
exception_1 = _b.sent();
|
|
69
|
-
response = false;
|
|
70
|
-
return [3 /*break*/, 4];
|
|
71
|
-
case 4: return [2 /*return*/, response];
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
});
|
|
10
|
+
const isFileExists = async ({ bucket, key }) => {
|
|
11
|
+
let response = false;
|
|
12
|
+
try {
|
|
13
|
+
const { HeadObjectCommand } = require('@aws-sdk/client-s3');
|
|
14
|
+
// Fetch from S3
|
|
15
|
+
const apiResponse = await global.awsS3Client.send(new HeadObjectCommand({
|
|
16
|
+
Bucket: bucket,
|
|
17
|
+
Key: key,
|
|
18
|
+
}));
|
|
19
|
+
// If the status is 200 then it does exist
|
|
20
|
+
response = (0, isResponse200_1.default)({ apiResponse });
|
|
21
|
+
}
|
|
22
|
+
catch (exception) {
|
|
23
|
+
response = false;
|
|
24
|
+
}
|
|
25
|
+
return response;
|
|
75
26
|
};
|
|
76
27
|
exports.default = isFileExists;
|