@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/listFiles.js
CHANGED
|
@@ -1,80 +1,33 @@
|
|
|
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
|
* List the files in the given bucket and option folder
|
|
45
9
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
case 1:
|
|
63
|
-
apiResponse = _c.sent();
|
|
64
|
-
// Ensure the data exists
|
|
65
|
-
if (undefined !== apiResponse['Contents']) {
|
|
66
|
-
// Return an array of files
|
|
67
|
-
valid = apiResponse['Contents'].filter(function (content) {
|
|
68
|
-
var keyExploded = content['Key'].split('/');
|
|
69
|
-
return keyExploded[keyExploded.length - 1].indexOf('.') > -1;
|
|
70
|
-
});
|
|
71
|
-
if (valid.length) {
|
|
72
|
-
response = valid.map(function (entry) { return entry['Key']; });
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return [2 /*return*/, response];
|
|
76
|
-
}
|
|
10
|
+
const listFiles = async ({ bucket, folder = '' }) => {
|
|
11
|
+
const cleanFolder = (0, getCleanFolder_1.default)({ input: folder });
|
|
12
|
+
let response = [];
|
|
13
|
+
let valid = [];
|
|
14
|
+
const { ListObjectsV2Command } = require('@aws-sdk/client-s3');
|
|
15
|
+
const apiResponse = await global.awsS3Client.send(new ListObjectsV2Command({
|
|
16
|
+
Bucket: bucket,
|
|
17
|
+
Delimiter: '/',
|
|
18
|
+
Prefix: ('' === cleanFolder ? '' : cleanFolder + '/'),
|
|
19
|
+
}));
|
|
20
|
+
// Ensure the data exists
|
|
21
|
+
if (undefined !== apiResponse['Contents']) {
|
|
22
|
+
// Return an array of files
|
|
23
|
+
valid = apiResponse['Contents'].filter(content => {
|
|
24
|
+
const keyExploded = content['Key'].split('/');
|
|
25
|
+
return keyExploded[keyExploded.length - 1].indexOf('.') > -1;
|
|
77
26
|
});
|
|
78
|
-
|
|
27
|
+
if (valid.length) {
|
|
28
|
+
response = valid.map(entry => entry['Key']);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return response;
|
|
79
32
|
};
|
|
80
33
|
exports.default = listFiles;
|
package/aws/s3/listFolders.js
CHANGED
|
@@ -1,79 +1,32 @@
|
|
|
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
|
* List the files in the given bucket and option folder.
|
|
45
9
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (undefined !== apiResponse['CommonPrefixes']) {
|
|
65
|
-
// Return an array of folders removing the trailing folder
|
|
66
|
-
response = apiResponse['CommonPrefixes'].map(function (prefix) {
|
|
67
|
-
// Remove the trailing slash then split by slash
|
|
68
|
-
var fileFolders = prefix.Prefix.slice(0, -1)
|
|
69
|
-
.split('/');
|
|
70
|
-
// Return the last folder without a trailing slash
|
|
71
|
-
return fileFolders[fileFolders.length - 1];
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
return [2 /*return*/, response];
|
|
75
|
-
}
|
|
10
|
+
const listFolders = async ({ bucket, folder }) => {
|
|
11
|
+
const cleanFolder = (0, getCleanFolder_1.default)({ input: folder });
|
|
12
|
+
let response = [];
|
|
13
|
+
const { ListObjectsV2Command } = require('@aws-sdk/client-s3');
|
|
14
|
+
const apiResponse = await global.awsS3Client.send(new ListObjectsV2Command({
|
|
15
|
+
Bucket: bucket,
|
|
16
|
+
Delimiter: '/',
|
|
17
|
+
Prefix: ('' === cleanFolder ? '' : cleanFolder + '/'),
|
|
18
|
+
}));
|
|
19
|
+
// Ensure the data exists
|
|
20
|
+
if (undefined !== apiResponse['CommonPrefixes']) {
|
|
21
|
+
// Return an array of folders removing the trailing folder
|
|
22
|
+
response = apiResponse['CommonPrefixes'].map(prefix => {
|
|
23
|
+
// Remove the trailing slash then split by slash
|
|
24
|
+
const fileFolders = prefix.Prefix.slice(0, -1)
|
|
25
|
+
.split('/');
|
|
26
|
+
// Return the last folder without a trailing slash
|
|
27
|
+
return fileFolders[fileFolders.length - 1];
|
|
76
28
|
});
|
|
77
|
-
}
|
|
29
|
+
}
|
|
30
|
+
return response;
|
|
78
31
|
};
|
|
79
32
|
exports.default = listFolders;
|
package/aws/s3/moveFile.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { File } from './copyFile';
|
|
2
|
+
declare type MoveFiles = {
|
|
3
|
+
from: File;
|
|
4
|
+
to: File;
|
|
5
|
+
};
|
|
2
6
|
/**
|
|
3
7
|
* It's not possible to just move or rename a file, you must copy then delete the old file.
|
|
4
8
|
*/
|
|
5
|
-
declare const moveFile: ({ from, to }:
|
|
6
|
-
from: File;
|
|
7
|
-
to: File;
|
|
8
|
-
}) => Promise<void>;
|
|
9
|
+
declare const moveFile: ({ from, to }: MoveFiles) => Promise<void>;
|
|
9
10
|
export default moveFile;
|
package/aws/s3/moveFile.js
CHANGED
|
@@ -1,69 +1,21 @@
|
|
|
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
|
-
|
|
43
|
-
|
|
6
|
+
const copyFile_1 = __importDefault(require("./copyFile"));
|
|
7
|
+
const deleteFile_1 = __importDefault(require("./deleteFile"));
|
|
44
8
|
/**
|
|
45
9
|
* It's not possible to just move or rename a file, you must copy then delete the old file.
|
|
46
10
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
})];
|
|
56
|
-
case 1:
|
|
57
|
-
_b.sent();
|
|
58
|
-
return [4 /*yield*/, (0, deleteFile_1.default)({
|
|
59
|
-
bucket: from.bucket,
|
|
60
|
-
key: from.key,
|
|
61
|
-
})];
|
|
62
|
-
case 2:
|
|
63
|
-
_b.sent();
|
|
64
|
-
return [2 /*return*/];
|
|
65
|
-
}
|
|
66
|
-
});
|
|
11
|
+
const moveFile = async ({ from, to }) => {
|
|
12
|
+
await (0, copyFile_1.default)({
|
|
13
|
+
from,
|
|
14
|
+
to,
|
|
15
|
+
});
|
|
16
|
+
await (0, deleteFile_1.default)({
|
|
17
|
+
bucket: from.bucket,
|
|
18
|
+
key: from.key,
|
|
67
19
|
});
|
|
68
20
|
};
|
|
69
21
|
exports.default = moveFile;
|
package/aws/s3/readBuffer.js
CHANGED
|
@@ -1,100 +1,52 @@
|
|
|
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
|
-
|
|
43
|
-
|
|
6
|
+
const getUnixTime_1 = __importDefault(require("date-fns/getUnixTime"));
|
|
7
|
+
const isResponse200_1 = __importDefault(require("../isResponse200"));
|
|
44
8
|
/**
|
|
45
9
|
* Similar function to reading the S3 file, but instead of a text file return a buffer.
|
|
46
10
|
*/
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
_b = response;
|
|
82
|
-
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
83
|
-
// @ts-ignore
|
|
84
|
-
apiResponse.Body.on('data', function (chunk) { return chunks_1.push(chunk); });
|
|
85
|
-
// @ts-ignore
|
|
86
|
-
apiResponse.Body.on('error', function (err) { return reject(err); });
|
|
87
|
-
// @ts-ignore
|
|
88
|
-
apiResponse.Body.on('end', function () { return resolve(Buffer.concat(chunks_1)); });
|
|
89
|
-
})];
|
|
90
|
-
case 2:
|
|
91
|
-
// Store the response
|
|
92
|
-
_b.buffer = _c.sent();
|
|
93
|
-
return [3 /*break*/, 4];
|
|
94
|
-
case 3: throw new Error("Error reading file.");
|
|
95
|
-
case 4: return [2 /*return*/, response];
|
|
96
|
-
}
|
|
11
|
+
const readBuffer = async ({ bucket, key }) => {
|
|
12
|
+
let response = {
|
|
13
|
+
buffer: undefined,
|
|
14
|
+
now: (0, getUnixTime_1.default)(new Date()),
|
|
15
|
+
modified: {
|
|
16
|
+
unix: null,
|
|
17
|
+
vsNow: {
|
|
18
|
+
months: 0,
|
|
19
|
+
days: 0,
|
|
20
|
+
hours: 0,
|
|
21
|
+
minutes: 0,
|
|
22
|
+
},
|
|
23
|
+
vsMidnight: {
|
|
24
|
+
hours: 0,
|
|
25
|
+
minutes: 0,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
const { GetObjectCommand } = require('@aws-sdk/client-s3');
|
|
30
|
+
const apiResponse = await global.awsS3Client.send(new GetObjectCommand({
|
|
31
|
+
Bucket: bucket,
|
|
32
|
+
Key: key,
|
|
33
|
+
}));
|
|
34
|
+
// console.log('apiResponse', apiResponse);
|
|
35
|
+
if ((0, isResponse200_1.default)({ apiResponse })) {
|
|
36
|
+
const chunks = [];
|
|
37
|
+
// Store the response
|
|
38
|
+
response.buffer = await new Promise((resolve, reject) => {
|
|
39
|
+
// @ts-ignore
|
|
40
|
+
apiResponse.Body.on('data', (chunk) => chunks.push(chunk));
|
|
41
|
+
// @ts-ignore
|
|
42
|
+
apiResponse.Body.on('error', (err) => reject(err));
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
apiResponse.Body.on('end', () => resolve(Buffer.concat(chunks)));
|
|
97
45
|
});
|
|
98
|
-
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new Error("Error reading file.");
|
|
49
|
+
}
|
|
50
|
+
return response;
|
|
99
51
|
};
|
|
100
52
|
exports.default = readBuffer;
|
package/aws/s3/readFile.js
CHANGED
|
@@ -1,57 +1,21 @@
|
|
|
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
|
exports.readFileDefault = void 0;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
7
|
+
const differenceInDays_1 = __importDefault(require("date-fns/differenceInDays"));
|
|
8
|
+
const differenceInHours_1 = __importDefault(require("date-fns/differenceInHours"));
|
|
9
|
+
const differenceInMinutes_1 = __importDefault(require("date-fns/differenceInMinutes"));
|
|
10
|
+
const differenceInMonths_1 = __importDefault(require("date-fns/differenceInMonths"));
|
|
11
|
+
const getHours_1 = __importDefault(require("date-fns/getHours"));
|
|
12
|
+
const getMinutes_1 = __importDefault(require("date-fns/getMinutes"));
|
|
13
|
+
const getUnixTime_1 = __importDefault(require("date-fns/getUnixTime"));
|
|
14
|
+
const getToday_1 = __importDefault(require("../../date/getToday"));
|
|
15
|
+
const getDate_1 = __importDefault(require("../../date/getDate"));
|
|
16
|
+
const getStringFromStream_1 = __importDefault(require("../../string/getStringFromStream"));
|
|
17
|
+
const isResponse200_1 = __importDefault(require("../isResponse200"));
|
|
18
|
+
const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
55
19
|
exports.readFileDefault = {
|
|
56
20
|
body: undefined,
|
|
57
21
|
now: undefined,
|
|
@@ -72,50 +36,35 @@ exports.readFileDefault = {
|
|
|
72
36
|
/**
|
|
73
37
|
* Read a file from S3 and return either null, the content or JSON decoded.
|
|
74
38
|
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// Convert stream into a string
|
|
106
|
-
_b = response;
|
|
107
|
-
return [4 /*yield*/, (0, getStringFromStream_1.default)({ stream: apiResponse.Body })];
|
|
108
|
-
case 2:
|
|
109
|
-
// Convert stream into a string
|
|
110
|
-
_b.body = _c.sent();
|
|
111
|
-
// If we need to return JSON, parse it. On error return undefined
|
|
112
|
-
if (isJson) {
|
|
113
|
-
response.body = JSON.parse(response.body) || undefined;
|
|
114
|
-
}
|
|
115
|
-
_c.label = 3;
|
|
116
|
-
case 3: return [2 /*return*/, response];
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
});
|
|
39
|
+
const readFile = async ({ bucket, key, isJson }) => {
|
|
40
|
+
let response = (0, cloneDeep_1.default)(exports.readFileDefault);
|
|
41
|
+
const today = (0, getToday_1.default)({ setMidnight: false });
|
|
42
|
+
response.now = (0, getUnixTime_1.default)(today);
|
|
43
|
+
const { GetObjectCommand } = require('@aws-sdk/client-s3');
|
|
44
|
+
const apiResponse = await global.awsS3Client.send(new GetObjectCommand({
|
|
45
|
+
Bucket: bucket,
|
|
46
|
+
Key: key,
|
|
47
|
+
}));
|
|
48
|
+
if ((0, isResponse200_1.default)({ apiResponse })) {
|
|
49
|
+
let now = today;
|
|
50
|
+
let modified = (0, getDate_1.default)({ input: apiResponse.LastModified, setMidnight: false });
|
|
51
|
+
// Convert the date to unix
|
|
52
|
+
response.modified.unix = (0, getUnixTime_1.default)(modified);
|
|
53
|
+
// Compare now to unix
|
|
54
|
+
response.modified.vsNow.months = (0, differenceInMonths_1.default)(now, modified);
|
|
55
|
+
response.modified.vsNow.days = (0, differenceInDays_1.default)(now, modified);
|
|
56
|
+
response.modified.vsNow.hours = (0, differenceInHours_1.default)(now, modified);
|
|
57
|
+
response.modified.vsNow.minutes = (0, differenceInMinutes_1.default)(now, modified);
|
|
58
|
+
// Compare now to midnight
|
|
59
|
+
response.modified.vsMidnight.hours = (0, getHours_1.default)(now);
|
|
60
|
+
response.modified.vsMidnight.minutes = (0, getMinutes_1.default)(now);
|
|
61
|
+
// Convert stream into a string
|
|
62
|
+
response.body = await (0, getStringFromStream_1.default)({ stream: apiResponse.Body });
|
|
63
|
+
// If we need to return JSON, parse it. On error return undefined
|
|
64
|
+
if (isJson) {
|
|
65
|
+
response.body = JSON.parse(response.body) || undefined;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return response;
|
|
120
69
|
};
|
|
121
70
|
exports.default = readFile;
|