@8ms/helpers 1.0.1

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.
Files changed (251) hide show
  1. package/dist/Class/BaseClass.d.ts +19 -0
  2. package/dist/Class/BaseClass.js +78 -0
  3. package/dist/Class/index.d.ts +3 -0
  4. package/dist/Class/index.js +8 -0
  5. package/dist/api/constants.d.ts +13 -0
  6. package/dist/api/constants.js +16 -0
  7. package/dist/api/index.d.ts +4 -0
  8. package/dist/api/index.js +7 -0
  9. package/dist/api/types.d.ts +6 -0
  10. package/dist/api/types.js +2 -0
  11. package/dist/array/getArray.d.ts +7 -0
  12. package/dist/array/getArray.js +14 -0
  13. package/dist/array/index.d.ts +3 -0
  14. package/dist/array/index.js +8 -0
  15. package/dist/atInternet/index.d.ts +3 -0
  16. package/dist/atInternet/index.js +2 -0
  17. package/dist/atInternet/types.d.ts +30 -0
  18. package/dist/atInternet/types.js +2 -0
  19. package/dist/aws/athenaExpress/getClient.d.ts +13 -0
  20. package/dist/aws/athenaExpress/getClient.js +23 -0
  21. package/dist/aws/athenaExpress/index.d.ts +4 -0
  22. package/dist/aws/athenaExpress/index.js +10 -0
  23. package/dist/aws/athenaExpress/request.d.ts +8 -0
  24. package/dist/aws/athenaExpress/request.js +54 -0
  25. package/dist/aws/glue/getClient.d.ts +10 -0
  26. package/dist/aws/glue/getClient.js +16 -0
  27. package/dist/aws/glue/index.d.ts +4 -0
  28. package/dist/aws/glue/index.js +10 -0
  29. package/dist/aws/glue/invoke.d.ts +10 -0
  30. package/dist/aws/glue/invoke.js +71 -0
  31. package/dist/aws/index.d.ts +4 -0
  32. package/dist/aws/index.js +8 -0
  33. package/dist/aws/isResponse200.d.ts +7 -0
  34. package/dist/aws/isResponse200.js +16 -0
  35. package/dist/aws/lambda/getClient.d.ts +10 -0
  36. package/dist/aws/lambda/getClient.js +16 -0
  37. package/dist/aws/lambda/index.d.ts +4 -0
  38. package/dist/aws/lambda/index.js +10 -0
  39. package/dist/aws/lambda/invoke.d.ts +20 -0
  40. package/dist/aws/lambda/invoke.js +91 -0
  41. package/dist/aws/s3/deleteDirectory.d.ts +10 -0
  42. package/dist/aws/s3/deleteDirectory.js +83 -0
  43. package/dist/aws/s3/deleteFile.d.ts +10 -0
  44. package/dist/aws/s3/deleteFile.js +61 -0
  45. package/dist/aws/s3/deleteFiles.d.ts +10 -0
  46. package/dist/aws/s3/deleteFiles.js +65 -0
  47. package/dist/aws/s3/getClient.d.ts +10 -0
  48. package/dist/aws/s3/getClient.js +16 -0
  49. package/dist/aws/s3/getPresignedPost.d.ts +21 -0
  50. package/dist/aws/s3/getPresignedPost.js +66 -0
  51. package/dist/aws/s3/getSignedUrl.d.ts +15 -0
  52. package/dist/aws/s3/getSignedUrl.js +70 -0
  53. package/dist/aws/s3/index.d.ts +15 -0
  54. package/dist/aws/s3/index.js +30 -0
  55. package/dist/aws/s3/listFiles.d.ts +10 -0
  56. package/dist/aws/s3/listFiles.js +77 -0
  57. package/dist/aws/s3/listFolders.d.ts +10 -0
  58. package/dist/aws/s3/listFolders.js +76 -0
  59. package/dist/aws/s3/readBuffer.d.ts +11 -0
  60. package/dist/aws/s3/readBuffer.js +100 -0
  61. package/dist/aws/s3/readFile.d.ts +12 -0
  62. package/dist/aws/s3/readFile.js +114 -0
  63. package/dist/aws/s3/types.d.ts +22 -0
  64. package/dist/aws/s3/types.js +2 -0
  65. package/dist/aws/s3/writeFile.d.ts +11 -0
  66. package/dist/aws/s3/writeFile.js +64 -0
  67. package/dist/aws/s3/writeGlueJsonFile.d.ts +13 -0
  68. package/dist/aws/s3/writeGlueJsonFile.js +64 -0
  69. package/dist/aws/s3/writePresignedPost.d.ts +15 -0
  70. package/dist/aws/s3/writePresignedPost.js +87 -0
  71. package/dist/aws/s3cache/getCache.d.ts +17 -0
  72. package/dist/aws/s3cache/getCache.js +62 -0
  73. package/dist/aws/s3cache/getKey.d.ts +12 -0
  74. package/dist/aws/s3cache/getKey.js +19 -0
  75. package/dist/aws/s3cache/index.d.ts +7 -0
  76. package/dist/aws/s3cache/index.js +14 -0
  77. package/dist/aws/s3cache/saveCache.d.ts +12 -0
  78. package/dist/aws/s3cache/saveCache.js +59 -0
  79. package/dist/aws/s3cache/types.d.ts +6 -0
  80. package/dist/aws/s3cache/types.js +2 -0
  81. package/dist/aws/s3cache/updateCache.d.ts +12 -0
  82. package/dist/aws/s3cache/updateCache.js +66 -0
  83. package/dist/aws/ses/SimpleEmail.d.ts +53 -0
  84. package/dist/aws/ses/SimpleEmail.js +209 -0
  85. package/dist/aws/ses/getClient.d.ts +10 -0
  86. package/dist/aws/ses/getClient.js +16 -0
  87. package/dist/aws/ses/index.d.ts +4 -0
  88. package/dist/aws/ses/index.js +10 -0
  89. package/dist/aws/ssm/getClient.d.ts +10 -0
  90. package/dist/aws/ssm/getClient.js +16 -0
  91. package/dist/aws/ssm/getParameter.d.ts +12 -0
  92. package/dist/aws/ssm/getParameter.js +85 -0
  93. package/dist/aws/ssm/index.d.ts +4 -0
  94. package/dist/aws/ssm/index.js +10 -0
  95. package/dist/aws/types.d.ts +5 -0
  96. package/dist/aws/types.js +2 -0
  97. package/dist/boolean/getBoolean.d.ts +5 -0
  98. package/dist/boolean/getBoolean.js +16 -0
  99. package/dist/boolean/index.d.ts +3 -0
  100. package/dist/boolean/index.js +8 -0
  101. package/dist/crud/constants.d.ts +6 -0
  102. package/dist/crud/constants.js +9 -0
  103. package/dist/crud/index.d.ts +4 -0
  104. package/dist/crud/index.js +5 -0
  105. package/dist/crud/types.d.ts +2 -0
  106. package/dist/crud/types.js +2 -0
  107. package/dist/crypto/getDecrypt.d.ts +11 -0
  108. package/dist/crypto/getDecrypt.js +13 -0
  109. package/dist/crypto/getEncrypt.d.ts +11 -0
  110. package/dist/crypto/getEncrypt.js +13 -0
  111. package/dist/crypto/getRandom.d.ts +7 -0
  112. package/dist/crypto/getRandom.js +12 -0
  113. package/dist/crypto/getSha256.d.ts +8 -0
  114. package/dist/crypto/getSha256.js +12 -0
  115. package/dist/crypto/index.d.ts +6 -0
  116. package/dist/crypto/index.js +14 -0
  117. package/dist/date/constants.d.ts +21 -0
  118. package/dist/date/constants.js +24 -0
  119. package/dist/date/format.d.ts +9 -0
  120. package/dist/date/format.js +15 -0
  121. package/dist/date/getDate.d.ts +8 -0
  122. package/dist/date/getDate.js +40 -0
  123. package/dist/date/getDurationHours.d.ts +8 -0
  124. package/dist/date/getDurationHours.js +28 -0
  125. package/dist/date/getDurationMinutes.d.ts +8 -0
  126. package/dist/date/getDurationMinutes.js +27 -0
  127. package/dist/date/getFinancialYear.d.ts +8 -0
  128. package/dist/date/getFinancialYear.js +48 -0
  129. package/dist/date/getFinancialYearToDate.d.ts +6 -0
  130. package/dist/date/getFinancialYearToDate.js +15 -0
  131. package/dist/date/getFinancialYearWeeks.d.ts +8 -0
  132. package/dist/date/getFinancialYearWeeks.js +26 -0
  133. package/dist/date/getLastWeek.d.ts +6 -0
  134. package/dist/date/getLastWeek.js +16 -0
  135. package/dist/date/getMax.d.ts +8 -0
  136. package/dist/date/getMax.js +19 -0
  137. package/dist/date/getMonday.d.ts +11 -0
  138. package/dist/date/getMonday.js +29 -0
  139. package/dist/date/getNumber.d.ts +8 -0
  140. package/dist/date/getNumber.js +16 -0
  141. package/dist/date/getPredefinedTimeframe.d.ts +8 -0
  142. package/dist/date/getPredefinedTimeframe.js +25 -0
  143. package/dist/date/getSunday.d.ts +11 -0
  144. package/dist/date/getSunday.js +29 -0
  145. package/dist/date/getThisWeek.d.ts +6 -0
  146. package/dist/date/getThisWeek.js +16 -0
  147. package/dist/date/getToday.d.ts +6 -0
  148. package/dist/date/getToday.js +12 -0
  149. package/dist/date/getTwoWeeksAgo.d.ts +6 -0
  150. package/dist/date/getTwoWeeksAgo.js +16 -0
  151. package/dist/date/getWeeksAgo.d.ts +6 -0
  152. package/dist/date/getWeeksAgo.js +17 -0
  153. package/dist/date/getYesterday.d.ts +5 -0
  154. package/dist/date/getYesterday.js +12 -0
  155. package/dist/date/index.d.ts +24 -0
  156. package/dist/date/index.js +51 -0
  157. package/dist/date/isDateValid.d.ts +7 -0
  158. package/dist/date/isDateValid.js +24 -0
  159. package/dist/date/isLastWeek.d.ts +6 -0
  160. package/dist/date/isLastWeek.js +15 -0
  161. package/dist/date/isThisWeek.d.ts +6 -0
  162. package/dist/date/isThisWeek.js +15 -0
  163. package/dist/date/parseExcelDate.d.ts +8 -0
  164. package/dist/date/parseExcelDate.js +20 -0
  165. package/dist/date/types.d.ts +28 -0
  166. package/dist/date/types.js +2 -0
  167. package/dist/environment/constants.d.ts +9 -0
  168. package/dist/environment/constants.js +12 -0
  169. package/dist/environment/getEnvironment.d.ts +8 -0
  170. package/dist/environment/getEnvironment.js +31 -0
  171. package/dist/environment/index.d.ts +11 -0
  172. package/dist/environment/index.js +23 -0
  173. package/dist/environment/isAws.d.ts +8 -0
  174. package/dist/environment/isAws.js +11 -0
  175. package/dist/environment/isDevelopment.d.ts +5 -0
  176. package/dist/environment/isDevelopment.js +12 -0
  177. package/dist/environment/isLocalhost.d.ts +8 -0
  178. package/dist/environment/isLocalhost.js +23 -0
  179. package/dist/environment/isProduction.d.ts +5 -0
  180. package/dist/environment/isProduction.js +12 -0
  181. package/dist/environment/isStaging.d.ts +5 -0
  182. package/dist/environment/isStaging.js +12 -0
  183. package/dist/environment/isVercel.d.ts +8 -0
  184. package/dist/environment/isVercel.js +11 -0
  185. package/dist/environment/types.d.ts +3 -0
  186. package/dist/environment/types.js +2 -0
  187. package/dist/google/getCredentials.d.ts +11 -0
  188. package/dist/google/getCredentials.js +77 -0
  189. package/dist/google/index.d.ts +4 -0
  190. package/dist/google/index.js +8 -0
  191. package/dist/google/types.d.ts +12 -0
  192. package/dist/google/types.js +2 -0
  193. package/dist/googleAds/getClient.d.ts +14 -0
  194. package/dist/googleAds/getClient.js +80 -0
  195. package/dist/googleAds/getCustomer.d.ts +8 -0
  196. package/dist/googleAds/getCustomer.js +56 -0
  197. package/dist/googleAds/index.d.ts +5 -0
  198. package/dist/googleAds/index.js +10 -0
  199. package/dist/googleAds/types.d.ts +5 -0
  200. package/dist/googleAds/types.js +2 -0
  201. package/dist/index.d.ts +26 -0
  202. package/dist/index.js +72 -0
  203. package/dist/nextAuth/constants.d.ts +5 -0
  204. package/dist/nextAuth/constants.js +8 -0
  205. package/dist/nextAuth/index.d.ts +3 -0
  206. package/dist/nextAuth/index.js +5 -0
  207. package/dist/prisma/getClient.d.ts +6 -0
  208. package/dist/prisma/getClient.js +41 -0
  209. package/dist/prisma/index.d.ts +3 -0
  210. package/dist/prisma/index.js +8 -0
  211. package/dist/string/getCleanFolder.d.ts +5 -0
  212. package/dist/string/getCleanFolder.js +12 -0
  213. package/dist/string/getStringFromStream.d.ts +6 -0
  214. package/dist/string/getStringFromStream.js +16 -0
  215. package/dist/string/index.d.ts +4 -0
  216. package/dist/string/index.js +10 -0
  217. package/dist/swr/index.d.ts +8 -0
  218. package/dist/swr/index.js +18 -0
  219. package/dist/swr/isAllData.d.ts +5 -0
  220. package/dist/swr/isAllData.js +19 -0
  221. package/dist/swr/isAnyError.d.ts +5 -0
  222. package/dist/swr/isAnyError.js +19 -0
  223. package/dist/swr/isAnyLoading.d.ts +5 -0
  224. package/dist/swr/isAnyLoading.js +21 -0
  225. package/dist/swr/isData.d.ts +5 -0
  226. package/dist/swr/isData.js +7 -0
  227. package/dist/swr/isError.d.ts +5 -0
  228. package/dist/swr/isError.js +7 -0
  229. package/dist/swr/isLoading.d.ts +5 -0
  230. package/dist/swr/isLoading.js +12 -0
  231. package/dist/url/buildParameters.d.ts +8 -0
  232. package/dist/url/buildParameters.js +23 -0
  233. package/dist/url/buildRelative.d.ts +8 -0
  234. package/dist/url/buildRelative.js +14 -0
  235. package/dist/url/buildUrl.d.ts +12 -0
  236. package/dist/url/buildUrl.js +30 -0
  237. package/dist/url/index.d.ts +8 -0
  238. package/dist/url/index.js +16 -0
  239. package/dist/url/isAbsolute.d.ts +7 -0
  240. package/dist/url/isAbsolute.js +16 -0
  241. package/dist/url/isRelative.d.ts +7 -0
  242. package/dist/url/isRelative.js +11 -0
  243. package/dist/url/types.d.ts +6 -0
  244. package/dist/url/types.js +2 -0
  245. package/dist/util/defaultTo.d.ts +5 -0
  246. package/dist/util/defaultTo.js +34 -0
  247. package/dist/util/index.d.ts +4 -0
  248. package/dist/util/index.js +10 -0
  249. package/dist/util/sleep.d.ts +4 -0
  250. package/dist/util/sleep.js +7 -0
  251. package/package.json +27 -0
@@ -0,0 +1,91 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var isResponse200_1 = __importDefault(require("../isResponse200"));
43
+ /**
44
+ * Invoke a AWS Lambda function by passing in the Function name and optional Payload data.
45
+ * Runs asynchronously, doesn't wait for function to fully end.
46
+ * Library: @aws-sdk/client-lambda
47
+ */
48
+ var invoke = function (_a) {
49
+ var LambdaLib = _a.LambdaLib, client = _a.client, functionName = _a.functionName, payload = _a.payload, response = _a.response;
50
+ return __awaiter(void 0, void 0, void 0, function () {
51
+ var params, InvokeCommand, command, apiResponse, asciiDecoder, decoded, decodedJson;
52
+ return __generator(this, function (_b) {
53
+ switch (_b.label) {
54
+ case 0:
55
+ params = {
56
+ FunctionName: functionName,
57
+ InvocationType: true === response ? 'RequestResponse' : 'Event',
58
+ };
59
+ // Payload is defined add to parameters
60
+ if (undefined !== payload) {
61
+ params['Payload'] = new Uint8Array(Buffer.from(JSON.stringify(payload)));
62
+ }
63
+ InvokeCommand = LambdaLib.InvokeCommand;
64
+ command = new InvokeCommand(params);
65
+ return [4 /*yield*/, client.send(command)];
66
+ case 1:
67
+ apiResponse = _b.sent();
68
+ // Success
69
+ if ((0, isResponse200_1.default)({ apiResponse: apiResponse })) {
70
+ // Return the data
71
+ if (response && undefined !== apiResponse['Payload']) {
72
+ asciiDecoder = new TextDecoder('ascii');
73
+ decoded = asciiDecoder.decode(apiResponse['Payload']);
74
+ decodedJson = JSON.parse(decoded);
75
+ if (undefined !== decodedJson['body']) {
76
+ return [2 /*return*/, decodedJson['body']];
77
+ }
78
+ return [2 /*return*/, decodedJson];
79
+ }
80
+ return [2 /*return*/, true];
81
+ }
82
+ return [2 /*return*/, false];
83
+ }
84
+ });
85
+ });
86
+ };
87
+ invoke.defaultProps = {
88
+ payload: undefined,
89
+ response: undefined,
90
+ };
91
+ exports.default = invoke;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Iteratively delete all the files within a directory and delete the directory.
3
+ */
4
+ declare const deleteDirectory: ({ S3Lib, bucket, client, folder }: {
5
+ S3Lib: any;
6
+ bucket: string;
7
+ client: any;
8
+ folder: string;
9
+ }) => Promise<void>;
10
+ export default deleteDirectory;
@@ -0,0 +1,83 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var string_1 = require("../../string");
40
+ /**
41
+ * Iteratively delete all the files within a directory and delete the directory.
42
+ */
43
+ var deleteDirectory = function (_a) {
44
+ var S3Lib = _a.S3Lib, bucket = _a.bucket, client = _a.client, folder = _a.folder;
45
+ return __awaiter(void 0, void 0, void 0, function () {
46
+ var cleanFolder, ListObjectsV2Command, DeleteObjectsCommand, apiResponse, keys;
47
+ return __generator(this, function (_b) {
48
+ switch (_b.label) {
49
+ case 0:
50
+ cleanFolder = (0, string_1.getCleanFolder)(folder);
51
+ ListObjectsV2Command = S3Lib.ListObjectsV2Command, DeleteObjectsCommand = S3Lib.DeleteObjectsCommand;
52
+ return [4 /*yield*/, client.send(new ListObjectsV2Command({
53
+ Bucket: bucket,
54
+ Prefix: ('' === cleanFolder ? '' : cleanFolder + '/'),
55
+ }))];
56
+ case 1:
57
+ apiResponse = _b.sent();
58
+ // No files to be deleted
59
+ if (apiResponse.Contents.length === 0) {
60
+ return [2 /*return*/];
61
+ }
62
+ keys = apiResponse.Contents.map(function (file) { return ({ Key: file.Key }); });
63
+ // Delete the files
64
+ return [4 /*yield*/, client.send(new DeleteObjectsCommand({
65
+ Bucket: bucket,
66
+ Delete: {
67
+ Objects: keys,
68
+ },
69
+ }))];
70
+ case 2:
71
+ // Delete the files
72
+ _b.sent();
73
+ if (!apiResponse.IsTruncated) return [3 /*break*/, 4];
74
+ return [4 /*yield*/, deleteDirectory({ S3Lib: S3Lib, bucket: bucket, client: client, folder: folder })];
75
+ case 3:
76
+ _b.sent();
77
+ _b.label = 4;
78
+ case 4: return [2 /*return*/];
79
+ }
80
+ });
81
+ });
82
+ };
83
+ exports.default = deleteDirectory;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Delete a single file.
3
+ */
4
+ declare const deleteFile: ({ S3Lib, bucket, client, file }: {
5
+ S3Lib: any;
6
+ bucket: string;
7
+ client: any;
8
+ file: string;
9
+ }) => Promise<void>;
10
+ export default deleteFile;
@@ -0,0 +1,61 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ /**
40
+ * Delete a single file.
41
+ */
42
+ var deleteFile = function (_a) {
43
+ var S3Lib = _a.S3Lib, bucket = _a.bucket, client = _a.client, file = _a.file;
44
+ return __awaiter(void 0, void 0, void 0, function () {
45
+ var DeleteObjectCommand;
46
+ return __generator(this, function (_b) {
47
+ switch (_b.label) {
48
+ case 0:
49
+ DeleteObjectCommand = S3Lib.DeleteObjectCommand;
50
+ return [4 /*yield*/, client.send(new DeleteObjectCommand({
51
+ Bucket: bucket,
52
+ Key: file,
53
+ }))];
54
+ case 1:
55
+ _b.sent();
56
+ return [2 /*return*/];
57
+ }
58
+ });
59
+ });
60
+ };
61
+ exports.default = deleteFile;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Delete multiple files.
3
+ */
4
+ declare const deleteFiles: ({ S3Lib, bucket, client, files }: {
5
+ S3Lib: any;
6
+ bucket: string;
7
+ client: any;
8
+ files: string[];
9
+ }) => Promise<void>;
10
+ export default deleteFiles;
@@ -0,0 +1,65 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ /**
40
+ * Delete multiple files.
41
+ */
42
+ var deleteFiles = function (_a) {
43
+ var S3Lib = _a.S3Lib, bucket = _a.bucket, client = _a.client, files = _a.files;
44
+ return __awaiter(void 0, void 0, void 0, function () {
45
+ var DeleteObjectsCommand;
46
+ return __generator(this, function (_b) {
47
+ switch (_b.label) {
48
+ case 0:
49
+ DeleteObjectsCommand = S3Lib.DeleteObjectsCommand;
50
+ return [4 /*yield*/, client.send(new DeleteObjectsCommand({
51
+ Bucket: bucket,
52
+ Delete: {
53
+ Objects: files.map(function (file) { return ({
54
+ Key: file,
55
+ }); }),
56
+ },
57
+ }))];
58
+ case 1:
59
+ _b.sent();
60
+ return [2 /*return*/];
61
+ }
62
+ });
63
+ });
64
+ };
65
+ exports.default = deleteFiles;
@@ -0,0 +1,10 @@
1
+ import { AwsConfigType } from '../types';
2
+ /**
3
+ * Shorthand function to get the S3 Client.
4
+ * Library: @aws-sdk/client-s3
5
+ */
6
+ declare const getClient: ({ S3Lib, config }: {
7
+ S3Lib: any;
8
+ config: AwsConfigType;
9
+ }) => any;
10
+ export default getClient;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var s3Client = undefined;
4
+ /**
5
+ * Shorthand function to get the S3 Client.
6
+ * Library: @aws-sdk/client-s3
7
+ */
8
+ var getClient = function (_a) {
9
+ var S3Lib = _a.S3Lib, config = _a.config;
10
+ if (undefined === s3Client) {
11
+ var S3Client = S3Lib.S3Client;
12
+ s3Client = new S3Client(config);
13
+ }
14
+ return s3Client;
15
+ };
16
+ exports.default = getClient;
@@ -0,0 +1,21 @@
1
+ declare type PresignedPostType = {
2
+ S3Lib: any;
3
+ bucket: string;
4
+ client: any;
5
+ conditions: any[];
6
+ expires: number;
7
+ file: string;
8
+ fields: {
9
+ [key: string]: string;
10
+ };
11
+ };
12
+ /**
13
+ * Returns a presigned post to upload a file directly to S3.
14
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_s3_presigned_post.html
15
+ * https://github.com/8millionstories-organisation/test-vercel-upload-2/blob/50eb12fcb3870a59ab455811bfaa1bdcb886edf2/pages/api/upload-url.js
16
+ */
17
+ declare const getPresignedPost: ({ S3Lib, bucket, client, conditions, expires, file, fields }: PresignedPostType) => Promise<{
18
+ url: any;
19
+ fields: any;
20
+ }>;
21
+ export default getPresignedPost;
@@ -0,0 +1,66 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ /**
40
+ * Returns a presigned post to upload a file directly to S3.
41
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_s3_presigned_post.html
42
+ * https://github.com/8millionstories-organisation/test-vercel-upload-2/blob/50eb12fcb3870a59ab455811bfaa1bdcb886edf2/pages/api/upload-url.js
43
+ */
44
+ var getPresignedPost = function (_a) {
45
+ var S3Lib = _a.S3Lib, bucket = _a.bucket, client = _a.client, conditions = _a.conditions, expires = _a.expires, file = _a.file, fields = _a.fields;
46
+ return __awaiter(void 0, void 0, void 0, function () {
47
+ var createPresignedPost, apiResponse;
48
+ return __generator(this, function (_b) {
49
+ switch (_b.label) {
50
+ case 0:
51
+ createPresignedPost = S3Lib.createPresignedPost;
52
+ return [4 /*yield*/, createPresignedPost(client, {
53
+ Bucket: bucket,
54
+ Key: file,
55
+ Conditions: undefined === conditions ? [] : conditions,
56
+ Fields: undefined === fields ? {} : fields,
57
+ Expires: undefined === expires ? 60 : expires, // Seconds
58
+ })];
59
+ case 1:
60
+ apiResponse = _b.sent();
61
+ return [2 /*return*/, apiResponse];
62
+ }
63
+ });
64
+ });
65
+ };
66
+ exports.default = getPresignedPost;
@@ -0,0 +1,15 @@
1
+ import { ApiResponseType } from '../../api';
2
+ declare type GetSignedUrlType = {
3
+ S3Lib: any;
4
+ S3PresignerLib: any;
5
+ bucket: string;
6
+ client: any;
7
+ expires: number;
8
+ file: string;
9
+ };
10
+ /**
11
+ * Returns a signed for URL to allow download of private buckets for a given duration.
12
+ * Library: @aws-sdk/s3-request-presigner
13
+ */
14
+ declare const getSignedUrl: ({ S3Lib, S3PresignerLib, bucket, client, expires, file }: GetSignedUrlType) => Promise<ApiResponseType>;
15
+ export default getSignedUrl;
@@ -0,0 +1,70 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var api_1 = require("../../api");
40
+ /**
41
+ * Returns a signed for URL to allow download of private buckets for a given duration.
42
+ * Library: @aws-sdk/s3-request-presigner
43
+ */
44
+ var getSignedUrl = function (_a) {
45
+ var S3Lib = _a.S3Lib, S3PresignerLib = _a.S3PresignerLib, bucket = _a.bucket, client = _a.client, expires = _a.expires, file = _a.file;
46
+ return __awaiter(void 0, void 0, void 0, function () {
47
+ var response, GetObjectCommand, getSignedUrl, command, apiResponse;
48
+ return __generator(this, function (_b) {
49
+ switch (_b.label) {
50
+ case 0:
51
+ response = api_1.ApiPlaceholder;
52
+ GetObjectCommand = S3Lib.GetObjectCommand;
53
+ getSignedUrl = S3PresignerLib.getSignedUrl;
54
+ command = new GetObjectCommand({
55
+ Bucket: bucket,
56
+ Key: file,
57
+ });
58
+ return [4 /*yield*/, getSignedUrl(client, command, { expiresIn: expires })];
59
+ case 1:
60
+ apiResponse = _b.sent();
61
+ if (apiResponse && 'string' === typeof apiResponse) {
62
+ response.status = api_1.ApiStatus.SUCCESS;
63
+ response.data = apiResponse;
64
+ }
65
+ return [2 /*return*/, response];
66
+ }
67
+ });
68
+ });
69
+ };
70
+ exports.default = getSignedUrl;
@@ -0,0 +1,15 @@
1
+ import deleteFile from './deleteFile';
2
+ import deleteFiles from './deleteFiles';
3
+ import getClient from './getClient';
4
+ import getPresignedPost from './getPresignedPost';
5
+ import getSignedUrl from './getSignedUrl';
6
+ import listFiles from './listFiles';
7
+ import listFolders from './listFolders';
8
+ import readBuffer from './readBuffer';
9
+ import readFile from './readFile';
10
+ import { ReadBufferType, ReadFileType, ReadType } from './types';
11
+ import writeFile from './writeFile';
12
+ import writeGlueJsonFile from './writeGlueJsonFile';
13
+ import writePresignedPost from './writePresignedPost';
14
+ export type { ReadType, ReadBufferType, ReadFileType, };
15
+ export { deleteFile, deleteFiles, getClient, getPresignedPost, getSignedUrl, listFiles, listFolders, readBuffer, readFile, writeFile, writeGlueJsonFile, writePresignedPost, };
@@ -0,0 +1,30 @@
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
+ exports.writePresignedPost = exports.writeGlueJsonFile = exports.writeFile = exports.readFile = exports.readBuffer = exports.listFolders = exports.listFiles = exports.getSignedUrl = exports.getPresignedPost = exports.getClient = exports.deleteFiles = exports.deleteFile = void 0;
7
+ var deleteFile_1 = __importDefault(require("./deleteFile"));
8
+ exports.deleteFile = deleteFile_1.default;
9
+ var deleteFiles_1 = __importDefault(require("./deleteFiles"));
10
+ exports.deleteFiles = deleteFiles_1.default;
11
+ var getClient_1 = __importDefault(require("./getClient"));
12
+ exports.getClient = getClient_1.default;
13
+ var getPresignedPost_1 = __importDefault(require("./getPresignedPost"));
14
+ exports.getPresignedPost = getPresignedPost_1.default;
15
+ var getSignedUrl_1 = __importDefault(require("./getSignedUrl"));
16
+ exports.getSignedUrl = getSignedUrl_1.default;
17
+ var listFiles_1 = __importDefault(require("./listFiles"));
18
+ exports.listFiles = listFiles_1.default;
19
+ var listFolders_1 = __importDefault(require("./listFolders"));
20
+ exports.listFolders = listFolders_1.default;
21
+ var readBuffer_1 = __importDefault(require("./readBuffer"));
22
+ exports.readBuffer = readBuffer_1.default;
23
+ var readFile_1 = __importDefault(require("./readFile"));
24
+ exports.readFile = readFile_1.default;
25
+ var writeFile_1 = __importDefault(require("./writeFile"));
26
+ exports.writeFile = writeFile_1.default;
27
+ var writeGlueJsonFile_1 = __importDefault(require("./writeGlueJsonFile"));
28
+ exports.writeGlueJsonFile = writeGlueJsonFile_1.default;
29
+ var writePresignedPost_1 = __importDefault(require("./writePresignedPost"));
30
+ exports.writePresignedPost = writePresignedPost_1.default;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * List the files in the given bucket and option folder
3
+ */
4
+ declare const listFiles: ({ S3Lib, bucket, client, folder }: {
5
+ S3Lib: any;
6
+ bucket: string;
7
+ client: any;
8
+ folder: string;
9
+ }) => Promise<string[]>;
10
+ export default listFiles;