@8ms/helpers 1.1.73 → 1.1.77
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 +99 -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/api/response.js
CHANGED
|
@@ -1 +1,12 @@
|
|
|
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 states_1 = __importDefault(require("./states"));
|
|
7
|
+
const response = {
|
|
8
|
+
body: null,
|
|
9
|
+
error: null,
|
|
10
|
+
state: states_1.default.IDLE,
|
|
11
|
+
};
|
|
12
|
+
exports.default = response;
|
package/api/states.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare const states: {
|
|
2
|
+
ERROR: string;
|
|
3
|
+
IDLE: string;
|
|
4
|
+
PENDING: string;
|
|
5
|
+
SUCCESS: string;
|
|
6
|
+
VALIDATION_ERROR: string;
|
|
7
|
+
};
|
|
8
|
+
export declare type State = typeof states.ERROR | typeof states.IDLE | typeof states.PENDING | typeof states.SUCCESS | typeof states.VALIDATION_ERROR;
|
|
9
|
+
export default states;
|
package/api/states.js
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const states = {
|
|
4
|
+
ERROR: 'error',
|
|
5
|
+
IDLE: 'idle',
|
|
6
|
+
PENDING: 'pending',
|
|
7
|
+
SUCCESS: 'success',
|
|
8
|
+
VALIDATION_ERROR: 'validationError',
|
|
9
|
+
};
|
|
10
|
+
exports.default = states;
|
package/api/unexpectedError.js
CHANGED
|
@@ -1 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const unexpectedError = 'An unexpected error occurred, please try again.';
|
|
4
|
+
exports.default = unexpectedError;
|
package/array/contains.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
2
4
|
* Shorthand to check if an array or string contains a needle.
|
|
3
|
-
*/
|
|
5
|
+
*/
|
|
6
|
+
const contains = ({ haystack, needle }) => haystack.indexOf(needle) > -1;
|
|
7
|
+
exports.default = contains;
|
package/array/getArray.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
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 isArray_1 = __importDefault(require("lodash/isArray"));
|
|
7
|
+
/**
|
|
2
8
|
* Convert an array into an array or return if already an array.
|
|
3
|
-
*/
|
|
9
|
+
*/
|
|
10
|
+
const getArray = ({ input }) => (0, isArray_1.default)(input) ? input : [input];
|
|
11
|
+
exports.default = getArray;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The request in the structure required by AT Internet.
|
|
3
|
+
*/
|
|
4
|
+
export declare type Request = {
|
|
5
|
+
columns: string[];
|
|
6
|
+
evo?: {
|
|
7
|
+
[evoKey: string]: object;
|
|
8
|
+
};
|
|
9
|
+
filter?: {
|
|
10
|
+
[filterKey: string]: object;
|
|
11
|
+
};
|
|
12
|
+
"max-results": number;
|
|
13
|
+
options: {
|
|
14
|
+
"ignore_null_properties": boolean;
|
|
15
|
+
};
|
|
16
|
+
"page-num": number;
|
|
17
|
+
period: {
|
|
18
|
+
[periodKey: string]: [
|
|
19
|
+
{
|
|
20
|
+
type: string;
|
|
21
|
+
start: string;
|
|
22
|
+
end: string;
|
|
23
|
+
}
|
|
24
|
+
];
|
|
25
|
+
};
|
|
26
|
+
sort: string[];
|
|
27
|
+
space: {
|
|
28
|
+
s: number[];
|
|
29
|
+
};
|
|
30
|
+
};
|
package/atInternet/request.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Config } from '../getConfig';
|
|
2
|
+
declare type InitClient = {
|
|
3
|
+
config: Config;
|
|
4
|
+
database: string;
|
|
5
|
+
s3Bucket: string;
|
|
6
|
+
s3Key: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Initialise the database using manually provided credentials.
|
|
10
|
+
*/
|
|
11
|
+
declare const initClient: ({ config, database, s3Bucket, s3Key }: InitClient) => void;
|
|
12
|
+
export default initClient;
|
|
@@ -1,4 +1,28 @@
|
|
|
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.awsAthenaExpressClient = null;
|
|
8
|
+
/**
|
|
2
9
|
* Initialise the database using manually provided credentials.
|
|
3
|
-
*/
|
|
4
|
-
|
|
10
|
+
*/
|
|
11
|
+
const initClient = ({ config, database, s3Bucket, s3Key }) => {
|
|
12
|
+
if (!global.awsAthenaExpressClient) {
|
|
13
|
+
const athenaExpress = require('athena-express');
|
|
14
|
+
const awsSdk = require('aws-sdk');
|
|
15
|
+
const formattedConfig = (0, getConfig_1.default)({ config, isAthenaExpress: true });
|
|
16
|
+
// Set the aws authentication
|
|
17
|
+
awsSdk.config.update(formattedConfig);
|
|
18
|
+
global.awsAthenaExpressClient = new athenaExpress.AthenaExpress({
|
|
19
|
+
aws: awsSdk,
|
|
20
|
+
s3: `s3://${s3Bucket}/${s3Key}`,
|
|
21
|
+
db: database,
|
|
22
|
+
formatJson: true,
|
|
23
|
+
retry: 200,
|
|
24
|
+
getStats: false,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.default = initClient;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
2
4
|
* Build the query and return the data.
|
|
3
|
-
*/
|
|
5
|
+
*/
|
|
6
|
+
const query = async ({ query }) => {
|
|
7
|
+
return await global.awsAthenaExpressClient.query(query)
|
|
8
|
+
.then(data => undefined === data['Items'] ? [] : data['Items']);
|
|
9
|
+
};
|
|
10
|
+
exports.default = query;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare type Config = {
|
|
2
|
+
accessKeyId: string;
|
|
3
|
+
region: string;
|
|
4
|
+
secretAccessKey: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* The config must be in a specific structure, if the properties aren't defined don't specify them as they could be inferred (e.g. Lambda).
|
|
8
|
+
*/
|
|
9
|
+
declare const getConfig: ({ config, isAthenaExpress }: {
|
|
10
|
+
config: Config;
|
|
11
|
+
isAthenaExpress?: boolean;
|
|
12
|
+
}) => object;
|
|
13
|
+
export default getConfig;
|
package/aws/getConfig.js
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
2
4
|
* The config must be in a specific structure, if the properties aren't defined don't specify them as they could be inferred (e.g. Lambda).
|
|
3
|
-
*/
|
|
5
|
+
*/
|
|
6
|
+
const getConfig = ({ config, isAthenaExpress }) => {
|
|
7
|
+
let response = {
|
|
8
|
+
region: config.region,
|
|
9
|
+
};
|
|
10
|
+
// Set the key id and access key if its defined (not required for AWS SAM)
|
|
11
|
+
if ('' !== config.accessKeyId && '' !== config.secretAccessKey) {
|
|
12
|
+
// Athena is a flat structure
|
|
13
|
+
if (true === isAthenaExpress) {
|
|
14
|
+
response['accessKeyId'] = config.accessKeyId;
|
|
15
|
+
response['secretAccessKey'] = config.secretAccessKey;
|
|
16
|
+
}
|
|
17
|
+
// AWS services are under credentials
|
|
18
|
+
else {
|
|
19
|
+
response['credentials'] = {
|
|
20
|
+
accessKeyId: config.accessKeyId,
|
|
21
|
+
secretAccessKey: config.secretAccessKey,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return response;
|
|
26
|
+
};
|
|
27
|
+
exports.default = getConfig;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Config } from '../getConfig';
|
|
2
|
+
declare type InitClient = {
|
|
3
|
+
config: Config;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Shorthand function to get the Glue Client.
|
|
7
|
+
* Library: @aws-sdk/client-glue
|
|
8
|
+
*/
|
|
9
|
+
declare const initClient: ({ config }: InitClient) => void;
|
|
10
|
+
export default initClient;
|
package/aws/glue/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.awsGlueClient = null;
|
|
8
|
+
/**
|
|
2
9
|
* Shorthand function to get the Glue Client.
|
|
3
10
|
* Library: @aws-sdk/client-glue
|
|
4
|
-
*/
|
|
11
|
+
*/
|
|
12
|
+
const initClient = ({ config }) => {
|
|
13
|
+
if (!global.awsGlueClient) {
|
|
14
|
+
const { GlueClient } = require('@aws-sdk/client-glue');
|
|
15
|
+
const formattedConfig = (0, getConfig_1.default)({ config });
|
|
16
|
+
global.awsGlueClient = new GlueClient(formattedConfig);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.default = initClient;
|
package/aws/glue/invoke.js
CHANGED
|
@@ -1,4 +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 isResponse200_1 = __importDefault(require("../isResponse200"));
|
|
7
|
+
/**
|
|
2
8
|
* Invoke an AWS Glue Crawler by passing in the name of the Crawler.
|
|
3
9
|
* Library: @aws-sdk/client-glue
|
|
4
|
-
*/
|
|
10
|
+
*/
|
|
11
|
+
const invoke = async ({ crawler }) => {
|
|
12
|
+
const { StartCrawlerCommand } = require('@aws-sdk/client-glue');
|
|
13
|
+
const command = new StartCrawlerCommand({
|
|
14
|
+
Name: crawler,
|
|
15
|
+
});
|
|
16
|
+
// Fire the event but don't wait for it to complete
|
|
17
|
+
const apiResponse = await global.awsGlueClient.send(command);
|
|
18
|
+
// Success
|
|
19
|
+
return (0, isResponse200_1.default)({ apiResponse });
|
|
20
|
+
};
|
|
21
|
+
exports.default = invoke;
|
package/aws/isResponse200.js
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
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 defaultTo_1 = __importDefault(require("../util/defaultTo"));
|
|
7
|
+
/**
|
|
2
8
|
* Was the API response a 200?
|
|
3
|
-
*/
|
|
9
|
+
*/
|
|
10
|
+
const isResponse200 = ({ apiResponse }) => {
|
|
11
|
+
let response = false;
|
|
12
|
+
const responseCode = (0, defaultTo_1.default)({
|
|
13
|
+
defaultValue: 0,
|
|
14
|
+
instance: apiResponse,
|
|
15
|
+
keys: ['$metadata', 'httpStatusCode'],
|
|
16
|
+
});
|
|
17
|
+
if (200 === responseCode) {
|
|
18
|
+
response = true;
|
|
19
|
+
}
|
|
20
|
+
return response;
|
|
21
|
+
};
|
|
22
|
+
exports.default = isResponse200;
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const getHandlerPath = ({ input }) => {
|
|
4
|
+
return `${input.split(process.cwd())[1].substring(1)
|
|
5
|
+
.replace(/\\/g, '/')}`;
|
|
6
|
+
};
|
|
7
|
+
exports.default = getHandlerPath;
|
|
@@ -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-lambda
|
|
8
|
+
*/
|
|
9
|
+
declare const initClient: ({ config }: InitClient) => void;
|
|
10
|
+
export default initClient;
|
package/aws/lambda/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.awsLambdaClient = null;
|
|
8
|
+
/**
|
|
2
9
|
* Shorthand function to get the Lambda Client.
|
|
3
10
|
* Library: @aws-sdk/client-lambda
|
|
4
|
-
*/
|
|
11
|
+
*/
|
|
12
|
+
const initClient = ({ config }) => {
|
|
13
|
+
if (!global.awsLambdaClient) {
|
|
14
|
+
const { S3Client } = require('@aws-sdk/client-lambda');
|
|
15
|
+
const formattedConfig = (0, getConfig_1.default)({ config });
|
|
16
|
+
global.awsLambdaClient = new S3Client(formattedConfig);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.default = initClient;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare type Invoke = {
|
|
2
|
+
functionName: string;
|
|
3
|
+
payload?: object;
|
|
4
|
+
response?: boolean;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Invoke a AWS Lambda function by passing in the Function name and optional Payload data.
|
|
8
|
+
* Runs asynchronously, doesn't wait for function to fully end.
|
|
9
|
+
* Library: @aws-sdk/client-lambda
|
|
10
|
+
*/
|
|
11
|
+
declare const invoke: ({ functionName, payload, response }: Invoke) => Promise<any>;
|
|
12
|
+
export default invoke;
|
package/aws/lambda/invoke.js
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
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
|
* Invoke a AWS Lambda function by passing in the Function name and optional Payload data.
|
|
3
9
|
* Runs asynchronously, doesn't wait for function to fully end.
|
|
4
10
|
* Library: @aws-sdk/client-lambda
|
|
5
|
-
*/
|
|
11
|
+
*/
|
|
12
|
+
const invoke = async ({ functionName, payload, response }) => {
|
|
13
|
+
const params = {
|
|
14
|
+
FunctionName: functionName,
|
|
15
|
+
InvocationType: true === response ? 'RequestResponse' : 'Event',
|
|
16
|
+
};
|
|
17
|
+
// Payload is defined add to parameters
|
|
18
|
+
if (undefined !== payload) {
|
|
19
|
+
params['Payload'] = new Uint8Array(Buffer.from(JSON.stringify(payload)));
|
|
20
|
+
}
|
|
21
|
+
// Create the Lambda Command
|
|
22
|
+
const { InvokeCommand } = require('@aws-sdk/client-lambda');
|
|
23
|
+
const command = new InvokeCommand(params);
|
|
24
|
+
// Fire the event but don't wait for it to complete
|
|
25
|
+
const apiResponse = await global.awsLambdaClient.send(command);
|
|
26
|
+
// Success
|
|
27
|
+
if ((0, isResponse200_1.default)({ apiResponse })) {
|
|
28
|
+
// Return the data
|
|
29
|
+
if (response && undefined !== apiResponse['Payload']) {
|
|
30
|
+
const asciiDecoder = new TextDecoder('ascii');
|
|
31
|
+
const decoded = asciiDecoder.decode(apiResponse['Payload']);
|
|
32
|
+
const decodedJson = JSON.parse(decoded);
|
|
33
|
+
if (undefined !== decodedJson['body']) {
|
|
34
|
+
return decodedJson['body'];
|
|
35
|
+
}
|
|
36
|
+
return decodedJson;
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
};
|
|
42
|
+
exports.default = invoke;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare type File = {
|
|
2
|
+
bucket: string;
|
|
3
|
+
key: string;
|
|
4
|
+
};
|
|
5
|
+
declare type CopyFile = {
|
|
6
|
+
from: File;
|
|
7
|
+
to: File;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Copy a file from one bucket/path to another bucket/path.
|
|
11
|
+
*/
|
|
12
|
+
declare const copyFile: ({ from, to }: CopyFile) => Promise<void>;
|
|
13
|
+
export default copyFile;
|
package/aws/s3/copyFile.js
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
2
4
|
* Copy a file from one bucket/path to another bucket/path.
|
|
3
|
-
*/
|
|
5
|
+
*/
|
|
6
|
+
const copyFile = async ({ from, to }) => {
|
|
7
|
+
const { CopyObjectCommand } = require('@aws-sdk/client-s3');
|
|
8
|
+
await global.awsS3Client.send(new CopyObjectCommand({
|
|
9
|
+
Bucket: to.bucket,
|
|
10
|
+
CopySource: encodeURIComponent(`${from.bucket}/${from.key}`),
|
|
11
|
+
Key: to.key,
|
|
12
|
+
}));
|
|
13
|
+
};
|
|
14
|
+
exports.default = copyFile;
|