@8ms/helpers 1.1.73 → 1.1.75
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.d.ts +8 -0
- package/api/response.js +12 -1
- package/api/states.d.ts +9 -0
- package/api/states.js +10 -1
- package/api/unexpectedError.d.ts +2 -0
- package/api/unexpectedError.js +4 -1
- package/array/contains.d.ts +8 -0
- package/array/contains.js +6 -2
- package/array/getArray.d.ts +7 -0
- package/array/getArray.js +10 -2
- package/atInternet/request.d.ts +30 -0
- package/atInternet/request.js +2 -1
- package/aws/athenaExpress/initClient.d.ts +12 -0
- package/aws/athenaExpress/initClient.js +27 -3
- package/aws/athenaExpress/query.d.ts +8 -0
- package/aws/athenaExpress/query.js +9 -2
- package/aws/getConfig.d.ts +13 -0
- package/aws/getConfig.js +26 -2
- package/aws/glue/initClient.d.ts +10 -0
- package/aws/glue/initClient.js +17 -2
- package/aws/glue/invoke.d.ts +9 -0
- package/aws/glue/invoke.js +19 -2
- package/aws/isResponse200.d.ts +7 -0
- package/aws/isResponse200.js +21 -2
- package/aws/lambda/getHandlerPath.d.ts +5 -0
- package/aws/lambda/getHandlerPath.js +7 -1
- package/aws/lambda/initClient.d.ts +10 -0
- package/aws/lambda/initClient.js +17 -2
- package/aws/lambda/invoke.d.ts +12 -0
- package/aws/lambda/invoke.js +39 -2
- package/aws/s3/copyFile.d.ts +13 -0
- package/aws/s3/copyFile.js +13 -2
- package/aws/s3/deleteFile.d.ts +9 -0
- package/aws/s3/deleteFile.js +12 -2
- package/aws/s3/deleteFiles.d.ts +9 -0
- package/aws/s3/deleteFiles.js +16 -2
- package/aws/s3/deleteFolder.d.ts +9 -0
- package/aws/s3/deleteFolder.js +35 -2
- package/aws/s3/getGlueJson.d.ts +5 -0
- package/aws/s3/getGlueJson.js +15 -2
- package/aws/s3/getPresignedPost.d.ts +20 -0
- package/aws/s3/getPresignedPost.js +16 -3
- package/aws/s3/getSignedUrl.d.ts +12 -0
- package/aws/s3/getSignedUrl.js +15 -2
- package/aws/s3/initClient.d.ts +10 -0
- package/aws/s3/initClient.js +17 -2
- package/aws/s3/isFileExists.d.ts +9 -0
- package/aws/s3/isFileExists.js +26 -2
- package/aws/s3/listFiles.d.ts +9 -0
- package/aws/s3/listFiles.js +32 -2
- package/aws/s3/listFolders.d.ts +9 -0
- package/aws/s3/listFolders.js +31 -4
- package/aws/s3/moveFile.d.ts +10 -0
- package/aws/s3/moveFile.js +20 -2
- package/aws/s3/readBuffer.d.ts +13 -0
- package/aws/s3/readBuffer.js +51 -2
- package/aws/s3/readFile.d.ts +30 -0
- package/aws/s3/readFile.js +69 -2
- package/aws/s3/writeFile.d.ts +10 -0
- package/aws/s3/writeFile.js +15 -2
- package/aws/s3/writePresignedPost.d.ts +14 -0
- package/aws/s3/writePresignedPost.js +30 -2
- package/aws/s3cache/cache.d.ts +7 -0
- package/aws/s3cache/cache.js +2 -1
- package/aws/s3cache/getCache.d.ts +12 -0
- package/aws/s3cache/getCache.js +35 -2
- package/aws/s3cache/getKey.d.ts +10 -0
- package/aws/s3cache/getKey.js +16 -2
- package/aws/s3cache/saveCache.d.ts +10 -0
- package/aws/s3cache/saveCache.js +12 -2
- package/aws/s3cache/updateCache.d.ts +10 -0
- package/aws/s3cache/updateCache.js +23 -2
- package/aws/ses/SimpleEmail.d.ts +51 -0
- package/aws/ses/SimpleEmail.js +115 -2
- package/aws/ses/initClient.d.ts +10 -0
- package/aws/ses/initClient.js +17 -2
- package/aws/ssm/getParameter.d.ts +10 -0
- package/aws/ssm/getParameter.js +39 -2
- package/aws/ssm/initClient.d.ts +10 -0
- package/aws/ssm/initClient.js +17 -2
- package/axios/get.d.ts +8 -0
- package/axios/get.js +44 -1
- package/axios/post.d.ts +12 -0
- package/axios/post.js +46 -2
- package/boolean/getBoolean.d.ts +7 -0
- package/boolean/getBoolean.js +15 -2
- package/class/BaseClass.d.ts +31 -0
- package/class/BaseClass.js +50 -9
- package/crud/actions.d.ts +8 -0
- package/crud/actions.js +10 -1
- package/crypto/getDecrypt.d.ts +10 -0
- package/crypto/getDecrypt.js +11 -2
- package/crypto/getEncrypt.d.ts +10 -0
- package/crypto/getEncrypt.js +11 -2
- package/crypto/getRandom.d.ts +8 -0
- package/crypto/getRandom.js +10 -2
- package/crypto/getSha256.d.ts +8 -0
- package/crypto/getSha256.js +15 -2
- package/date/date.d.ts +4 -0
- package/date/date.js +2 -1
- package/date/duration.d.ts +5 -0
- package/date/duration.js +2 -1
- package/date/durationComparisons.d.ts +5 -0
- package/date/durationComparisons.js +7 -1
- package/date/durations.d.ts +8 -0
- package/date/durations.js +10 -1
- package/date/financialYear.d.ts +4 -0
- package/date/financialYear.js +2 -1
- package/date/financialYearWeek.d.ts +6 -0
- package/date/financialYearWeek.js +2 -1
- package/date/format.d.ts +13 -0
- package/date/format.js +18 -2
- package/date/getDate.d.ts +12 -0
- package/date/getDate.js +96 -9
- package/date/getDatesBetween.d.ts +10 -0
- package/date/getDatesBetween.js +25 -3
- package/date/getDurationHours.d.ts +8 -0
- package/date/getDurationHours.js +25 -2
- package/date/getDurationMinutes.d.ts +8 -0
- package/date/getDurationMinutes.js +24 -2
- package/date/getFinancialYear.d.ts +9 -0
- package/date/getFinancialYear.js +48 -8
- package/date/getFinancialYearToDate.d.ts +7 -0
- package/date/getFinancialYearToDate.js +18 -2
- package/date/getFinancialYearToYesterday.d.ts +7 -0
- package/date/getFinancialYearToYesterday.js +18 -2
- package/date/getFinancialYearWeeks.d.ts +9 -0
- package/date/getFinancialYearWeeks.js +29 -2
- package/date/getLastWeek.d.ts +10 -0
- package/date/getLastWeek.js +28 -2
- package/date/getMax.d.ts +12 -0
- package/date/getMax.js +15 -2
- package/date/getMidnight.d.ts +10 -0
- package/date/getMidnight.js +12 -2
- package/date/getMin.d.ts +12 -0
- package/date/getMin.js +15 -2
- package/date/getMonday.d.ts +14 -0
- package/date/getMonday.js +32 -5
- package/date/getNumber.d.ts +11 -0
- package/date/getNumber.js +14 -2
- package/date/getPredefinedTimeframe.d.ts +9 -0
- package/date/getPredefinedTimeframe.js +23 -2
- package/date/getSunday.d.ts +14 -0
- package/date/getSunday.js +32 -5
- package/date/getThisWeek.d.ts +10 -0
- package/date/getThisWeek.js +28 -2
- package/date/getTimeZoned.d.ts +13 -0
- package/date/getTimeZoned.js +36 -5
- package/date/getToday.d.ts +9 -0
- package/date/getToday.js +39 -2
- package/date/getTwoWeeksAgo.d.ts +10 -0
- package/date/getTwoWeeksAgo.js +28 -2
- package/date/getWeeksAgo.d.ts +12 -0
- package/date/getWeeksAgo.js +16 -2
- package/date/getYesterday.d.ts +9 -0
- package/date/getYesterday.js +40 -2
- package/date/isDateValid.d.ts +7 -0
- package/date/isDateValid.js +22 -2
- package/date/isLastWeek.d.ts +6 -0
- package/date/isLastWeek.js +13 -2
- package/date/isThisWeek.d.ts +6 -0
- package/date/isThisWeek.js +13 -2
- package/date/parseExcelDate.d.ts +8 -0
- package/date/parseExcelDate.js +17 -2
- package/date/predefinedTimeframes.d.ts +7 -0
- package/date/predefinedTimeframes.js +9 -1
- package/date/timeframe.d.ts +8 -0
- package/date/timeframe.js +2 -1
- package/date/timeframes.d.ts +4 -0
- package/date/timeframes.js +7 -1
- package/deepCrawl/buildRequest.d.ts +15 -0
- package/deepCrawl/buildRequest.js +83 -4
- package/deepCrawl/filter.d.ts +5 -0
- package/deepCrawl/filter.js +2 -1
- package/deepCrawl/getData.d.ts +5 -0
- package/deepCrawl/getData.js +29 -1
- package/deepCrawl/initClient.d.ts +13 -0
- package/deepCrawl/initClient.js +31 -2
- package/deepCrawl/operands.d.ts +11 -0
- package/deepCrawl/operands.js +13 -1
- package/deepCrawl/orders.d.ts +9 -0
- package/deepCrawl/orders.js +7 -1
- package/deepCrawl/reports.d.ts +11 -0
- package/deepCrawl/reports.js +13 -1
- package/environment/environments.d.ts +7 -0
- package/environment/environments.js +8 -1
- package/environment/getEnvironment.d.ts +6 -0
- package/environment/getEnvironment.js +42 -2
- package/environment/isAws.d.ts +5 -0
- package/environment/isAws.js +10 -2
- package/environment/isDevelopment.d.ts +2 -0
- package/environment/isDevelopment.js +9 -1
- package/environment/isLocalhost.d.ts +5 -0
- package/environment/isLocalhost.js +21 -2
- package/environment/isProduction.d.ts +2 -0
- package/environment/isProduction.js +9 -1
- package/environment/isStaging.d.ts +2 -0
- package/environment/isStaging.js +9 -1
- package/environment/isVercel.d.ts +5 -0
- package/environment/isVercel.js +6 -2
- package/environment/platforms.d.ts +6 -0
- package/environment/platforms.js +7 -1
- package/eskimi/ageGroups.d.ts +5 -0
- package/eskimi/ageGroups.js +41 -1
- package/eskimi/campaign.d.ts +19 -0
- package/eskimi/campaign.js +2 -1
- package/eskimi/devices.d.ts +5 -0
- package/eskimi/devices.js +13 -1
- package/eskimi/endpoints.d.ts +16 -0
- package/eskimi/endpoints.js +17 -2
- package/eskimi/genders.d.ts +5 -0
- package/eskimi/genders.js +13 -1
- package/eskimi/getAccessToken.d.ts +9 -0
- package/eskimi/getAccessToken.js +22 -2
- package/eskimi/getAgeGroup.d.ts +7 -0
- package/eskimi/getAgeGroup.js +16 -2
- package/eskimi/getCampaignIds.d.ts +7 -0
- package/eskimi/getCampaignIds.js +11 -2
- package/eskimi/getDevice.d.ts +7 -0
- package/eskimi/getDevice.js +16 -2
- package/eskimi/getGender.d.ts +7 -0
- package/eskimi/getGender.js +16 -2
- package/eskimi/request.d.ts +8 -0
- package/eskimi/request.js +23 -2
- package/google/bigQuery/initClient.d.ts +11 -0
- package/google/bigQuery/initClient.js +20 -2
- package/google/bigQuery/query.d.ts +9 -0
- package/google/bigQuery/query.js +9 -2
- package/google/getConfig.d.ts +20 -0
- package/google/getConfig.js +21 -3
- package/google/sheets/getAssociatedData.d.ts +16 -0
- package/google/sheets/getAssociatedData.js +52 -8
- package/google/sheets/getBatchData.d.ts +18 -0
- package/google/sheets/getBatchData.js +19 -1
- package/google/sheets/initClient.d.ts +11 -0
- package/google/sheets/initClient.js +22 -2
- package/google/sheets/isCellNa.d.ts +7 -0
- package/google/sheets/isCellNa.js +6 -2
- package/google/storage/initClient.d.ts +12 -0
- package/google/storage/initClient.js +20 -2
- package/google/storage/writeFile.d.ts +12 -0
- package/google/storage/writeFile.js +30 -2
- package/googleAds/getCustomer.d.ts +8 -0
- package/googleAds/getCustomer.js +13 -2
- package/googleAds/initClient.d.ts +16 -0
- package/googleAds/initClient.js +23 -2
- package/initClients.d.ts +40 -0
- package/initClients.js +106 -5
- package/json/isJson.d.ts +8 -0
- package/json/isJson.js +18 -2
- package/littleWarden/getUrlStatus.d.ts +9 -0
- package/littleWarden/getUrlStatus.js +20 -2
- package/littleWarden/isAllGood.d.ts +7 -0
- package/littleWarden/isAllGood.js +17 -2
- package/littleWarden/isDanger.d.ts +7 -0
- package/littleWarden/isDanger.js +17 -2
- package/littleWarden/isWarning.d.ts +7 -0
- package/littleWarden/isWarning.js +17 -2
- package/littleWarden/states.d.ts +7 -0
- package/littleWarden/states.js +8 -1
- package/myTarget/getAccessToken.d.ts +9 -0
- package/myTarget/getAccessToken.js +22 -2
- package/myTarget/request.d.ts +8 -0
- package/myTarget/request.js +23 -2
- package/nextAuth/isSessionReady.d.ts +4 -0
- package/nextAuth/isSessionReady.js +12 -1
- package/nextAuth/states.d.ts +7 -0
- package/nextAuth/states.js +8 -2
- package/nextJs/getIp.d.ts +7 -0
- package/nextJs/getIp.js +12 -2
- package/nextJs/getUserAgent.d.ts +7 -0
- package/nextJs/getUserAgent.js +6 -2
- package/number/getDivide.d.ts +9 -0
- package/number/getDivide.js +17 -2
- package/number/getNumber.d.ts +8 -0
- package/number/getNumber.js +50 -7
- package/number/getPercent.d.ts +9 -0
- package/number/getPercent.js +17 -2
- package/number/getPercentIncrease.d.ts +9 -0
- package/number/getPercentIncrease.js +17 -2
- package/number/getRounded.d.ts +9 -0
- package/number/getRounded.js +21 -2
- package/package.json +44 -47
- package/prisma/initClient.d.ts +4 -0
- package/prisma/initClient.js +33 -3
- package/snapchat/getAccessToken.d.ts +9 -0
- package/snapchat/getAccessToken.js +36 -2
- package/sorting/byNumberAscending.d.ts +8 -0
- package/sorting/byNumberAscending.js +16 -2
- package/sorting/byNumberDescending.d.ts +8 -0
- package/sorting/byNumberDescending.js +16 -2
- package/sorting/byStringAscending.d.ts +8 -0
- package/sorting/byStringAscending.js +20 -2
- package/sorting/byStringDescending.d.ts +8 -0
- package/sorting/byStringDescending.js +20 -2
- package/string/formatCapitalise.d.ts +9 -0
- package/string/formatCapitalise.js +14 -2
- package/string/getCleanFolder.d.ts +7 -0
- package/string/getCleanFolder.js +11 -2
- package/string/getString.d.ts +7 -0
- package/string/getString.js +35 -2
- package/string/getStringFromStream.d.ts +8 -0
- package/string/getStringFromStream.js +14 -2
- package/string/toProperCase.d.ts +7 -0
- package/string/toProperCase.js +17 -2
- package/swr/isAllData.d.ts +7 -0
- package/swr/isAllData.js +18 -2
- package/swr/isAnyError.d.ts +7 -0
- package/swr/isAnyError.js +18 -2
- package/swr/isAnyLoading.d.ts +7 -0
- package/swr/isAnyLoading.js +20 -2
- package/swr/isData.d.ts +7 -0
- package/swr/isData.js +6 -2
- package/swr/isError.d.ts +7 -0
- package/swr/isError.js +6 -2
- package/swr/isLoading.d.ts +7 -0
- package/swr/isLoading.js +11 -2
- package/upTimeRobot/getMonitors.d.ts +1 -0
- package/upTimeRobot/getMonitors.js +31 -2
- package/upTimeRobot/logTypes.d.ts +7 -0
- package/upTimeRobot/logTypes.js +9 -1
- package/upTimeRobot/monitorStatuses.d.ts +8 -0
- package/upTimeRobot/monitorStatuses.js +10 -1
- package/upTimeRobot/monitorSubTypes.d.ts +10 -0
- package/upTimeRobot/monitorSubTypes.js +12 -1
- package/upTimeRobot/monitorTypes.d.ts +8 -0
- package/upTimeRobot/monitorTypes.js +10 -1
- package/upTimeRobot/requestStatuses.d.ts +5 -0
- package/upTimeRobot/requestStatuses.js +7 -1
- package/url/buildParameters.d.ts +8 -0
- package/url/buildParameters.js +21 -2
- package/url/buildRelative.d.ts +8 -0
- package/url/buildRelative.js +12 -2
- package/url/buildUrl.d.ts +10 -0
- package/url/buildUrl.js +28 -2
- package/url/isAbsolute.d.ts +7 -0
- package/url/isAbsolute.js +14 -2
- package/url/isRelative.d.ts +7 -0
- package/url/isRelative.js +7 -2
- package/url/url.d.ts +6 -0
- package/url/url.js +2 -1
- package/util/defaultTo.d.ts +10 -0
- package/util/defaultTo.js +34 -2
- package/util/isUndefined.d.ts +9 -0
- package/util/isUndefined.js +18 -2
- package/util/sleep.d.ts +4 -0
- package/util/sleep.js +6 -1
- package/webWorker/states.d.ts +7 -0
- package/webWorker/states.js +8 -1
- package/xml/getXml.d.ts +4 -0
- package/xml/getXml.js +14 -1
- package/globals.d.js +0 -1
package/aws/s3/deleteFile.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
2
4
|
* Delete a single file.
|
|
3
|
-
*/
|
|
5
|
+
*/
|
|
6
|
+
const deleteFile = async ({ bucket, key }) => {
|
|
7
|
+
const { DeleteObjectCommand } = require('@aws-sdk/client-s3');
|
|
8
|
+
await global.awsS3Client.send(new DeleteObjectCommand({
|
|
9
|
+
Bucket: bucket,
|
|
10
|
+
Key: key,
|
|
11
|
+
}));
|
|
12
|
+
};
|
|
13
|
+
exports.default = deleteFile;
|
package/aws/s3/deleteFiles.js
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
2
4
|
* Delete multiple files.
|
|
3
|
-
*/
|
|
5
|
+
*/
|
|
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
|
+
}));
|
|
16
|
+
};
|
|
17
|
+
exports.default = deleteFiles;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare type DeleteFolder = {
|
|
2
|
+
bucket: string;
|
|
3
|
+
folder: string;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Iteratively delete all the files within a directory and delete the directory.
|
|
7
|
+
*/
|
|
8
|
+
declare const deleteFolder: ({ bucket, folder }: DeleteFolder) => Promise<void>;
|
|
9
|
+
export default deleteFolder;
|
package/aws/s3/deleteFolder.js
CHANGED
|
@@ -1,3 +1,36 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getCleanFolder_1 = __importDefault(require("../../string/getCleanFolder"));
|
|
7
|
+
/**
|
|
2
8
|
* Iteratively delete all the files within a directory and delete the directory.
|
|
3
|
-
*/
|
|
9
|
+
*/
|
|
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
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.default = deleteFolder;
|
package/aws/s3/getGlueJson.js
CHANGED
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getArray_1 = __importDefault(require("../../array/getArray"));
|
|
7
|
+
const getGlueJson = ({ data }) => {
|
|
8
|
+
// Must be an array
|
|
9
|
+
const inputArray = (0, getArray_1.default)({ input: data });
|
|
10
|
+
// For each array row convert the row
|
|
11
|
+
const stringRows = inputArray.map(row => JSON.stringify(row));
|
|
12
|
+
// Combine each row with a line separator
|
|
13
|
+
return stringRows.join("\n");
|
|
14
|
+
};
|
|
15
|
+
exports.default = getGlueJson;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
declare type PresignedPost = {
|
|
2
|
+
url: string;
|
|
3
|
+
fields: any;
|
|
4
|
+
};
|
|
5
|
+
declare type GetPresignedPost = {
|
|
6
|
+
bucket: string;
|
|
7
|
+
conditions: any[];
|
|
8
|
+
expires: number;
|
|
9
|
+
fields: {
|
|
10
|
+
[key: string]: string;
|
|
11
|
+
};
|
|
12
|
+
key: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Returns a presigned post to upload a file directly to S3.
|
|
16
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_s3_presigned_post.html
|
|
17
|
+
* https://github.com/8millionstories-organisation/test-vercel-upload-2/blob/50eb12fcb3870a59ab455811bfaa1bdcb886edf2/pages/api/upload-url.js
|
|
18
|
+
*/
|
|
19
|
+
declare const getPresignedPost: ({ bucket, conditions, expires, fields, key }: GetPresignedPost) => Promise<PresignedPost>;
|
|
20
|
+
export default getPresignedPost;
|
|
@@ -1,6 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
2
4
|
* Returns a presigned post to upload a file directly to S3.
|
|
3
5
|
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_s3_presigned_post.html
|
|
4
6
|
* https://github.com/8millionstories-organisation/test-vercel-upload-2/blob/50eb12fcb3870a59ab455811bfaa1bdcb886edf2/pages/api/upload-url.js
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
+
*/
|
|
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
|
|
16
|
+
});
|
|
17
|
+
return apiResponse;
|
|
18
|
+
};
|
|
19
|
+
exports.default = getPresignedPost;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Response } from '../../api/response';
|
|
2
|
+
declare type GetSignedUrl = {
|
|
3
|
+
bucket: string;
|
|
4
|
+
expires: number;
|
|
5
|
+
key: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Returns a signed for URL to allow download of private buckets for a given duration.
|
|
9
|
+
* Library: @aws-sdk/s3-request-presigner
|
|
10
|
+
*/
|
|
11
|
+
declare const getSignedUrl: ({ bucket, expires, key }: GetSignedUrl) => Promise<Response>;
|
|
12
|
+
export default getSignedUrl;
|
package/aws/s3/getSignedUrl.js
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
2
4
|
* Returns a signed for URL to allow download of private buckets for a given duration.
|
|
3
5
|
* Library: @aws-sdk/s3-request-presigner
|
|
4
|
-
*/
|
|
6
|
+
*/
|
|
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,
|
|
13
|
+
});
|
|
14
|
+
const response = await getSignedUrl(global.awsS3Client, command, { expiresIn: expires });
|
|
15
|
+
return response;
|
|
16
|
+
};
|
|
17
|
+
exports.default = getSignedUrl;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Config } from '../getConfig';
|
|
2
|
+
declare type InitClient = {
|
|
3
|
+
config: Config;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Shorthand function to get the Lambda Client.
|
|
7
|
+
* Library: @aws-sdk/client-s3
|
|
8
|
+
*/
|
|
9
|
+
declare const initClient: ({ config }: InitClient) => void;
|
|
10
|
+
export default initClient;
|
package/aws/s3/initClient.js
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getConfig_1 = __importDefault(require("../getConfig"));
|
|
7
|
+
global.awsS3Client = null;
|
|
8
|
+
/**
|
|
2
9
|
* Shorthand function to get the Lambda Client.
|
|
3
10
|
* Library: @aws-sdk/client-s3
|
|
4
|
-
*/
|
|
11
|
+
*/
|
|
12
|
+
const initClient = ({ config }) => {
|
|
13
|
+
if (!global.awsS3Client) {
|
|
14
|
+
const { S3Client } = require('@aws-sdk/client-s3');
|
|
15
|
+
const formattedConfig = (0, getConfig_1.default)({ config });
|
|
16
|
+
global.awsS3Client = new S3Client(formattedConfig);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.default = initClient;
|
package/aws/s3/isFileExists.js
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const isResponse200_1 = __importDefault(require("../isResponse200"));
|
|
7
|
+
/**
|
|
2
8
|
* Check to see if a file exists but don't get the contents.
|
|
3
|
-
*/
|
|
9
|
+
*/
|
|
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;
|
|
26
|
+
};
|
|
27
|
+
exports.default = isFileExists;
|
package/aws/s3/listFiles.js
CHANGED
|
@@ -1,3 +1,33 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getCleanFolder_1 = __importDefault(require("../../string/getCleanFolder"));
|
|
7
|
+
/**
|
|
2
8
|
* List the files in the given bucket and option folder
|
|
3
|
-
*/
|
|
9
|
+
*/
|
|
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;
|
|
26
|
+
});
|
|
27
|
+
if (valid.length) {
|
|
28
|
+
response = valid.map(entry => entry['Key']);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return response;
|
|
32
|
+
};
|
|
33
|
+
exports.default = listFiles;
|
package/aws/s3/listFolders.js
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getCleanFolder_1 = __importDefault(require("../../string/getCleanFolder"));
|
|
7
|
+
/**
|
|
2
8
|
* List the files in the given bucket and option folder.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
|
|
9
|
+
*/
|
|
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];
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return response;
|
|
31
|
+
};
|
|
32
|
+
exports.default = listFolders;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { File } from './copyFile';
|
|
2
|
+
declare type MoveFiles = {
|
|
3
|
+
from: File;
|
|
4
|
+
to: File;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* It's not possible to just move or rename a file, you must copy then delete the old file.
|
|
8
|
+
*/
|
|
9
|
+
declare const moveFile: ({ from, to }: MoveFiles) => Promise<void>;
|
|
10
|
+
export default moveFile;
|
package/aws/s3/moveFile.js
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const copyFile_1 = __importDefault(require("./copyFile"));
|
|
7
|
+
const deleteFile_1 = __importDefault(require("./deleteFile"));
|
|
8
|
+
/**
|
|
2
9
|
* It's not possible to just move or rename a file, you must copy then delete the old file.
|
|
3
|
-
*/
|
|
10
|
+
*/
|
|
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,
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
exports.default = moveFile;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Modified } from './readFile';
|
|
2
|
+
export declare type ReadBufferResponse = Modified & {
|
|
3
|
+
buffer: any;
|
|
4
|
+
};
|
|
5
|
+
declare type ReadBuffer = {
|
|
6
|
+
bucket: string;
|
|
7
|
+
key: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Similar function to reading the S3 file, but instead of a text file return a buffer.
|
|
11
|
+
*/
|
|
12
|
+
declare const readBuffer: ({ bucket, key }: ReadBuffer) => Promise<ReadBufferResponse>;
|
|
13
|
+
export default readBuffer;
|