@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,77 @@
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
+ * List the files in the given bucket and option folder
42
+ */
43
+ var listFiles = function (_a) {
44
+ var S3Lib = _a.S3Lib, bucket = _a.bucket, client = _a.client, _b = _a.folder, folder = _b === void 0 ? '' : _b;
45
+ return __awaiter(void 0, void 0, void 0, function () {
46
+ var cleanFolder, response, valid, ListObjectsV2Command, apiResponse;
47
+ return __generator(this, function (_c) {
48
+ switch (_c.label) {
49
+ case 0:
50
+ cleanFolder = (0, string_1.getCleanFolder)(folder);
51
+ response = [];
52
+ valid = [];
53
+ ListObjectsV2Command = S3Lib.ListObjectsV2Command;
54
+ return [4 /*yield*/, client.send(new ListObjectsV2Command({
55
+ Bucket: bucket,
56
+ Delimiter: '/',
57
+ Prefix: ('' === cleanFolder ? '' : cleanFolder + '/'),
58
+ }))];
59
+ case 1:
60
+ apiResponse = _c.sent();
61
+ // Ensure the data exists
62
+ if (undefined !== apiResponse['Contents']) {
63
+ // Return an array of files
64
+ valid = apiResponse['Contents'].filter(function (content) {
65
+ var keyExploded = content['Key'].split('/');
66
+ return keyExploded[keyExploded.length - 1].indexOf('.') > -1;
67
+ });
68
+ if (valid.length) {
69
+ response = valid.map(function (entry) { return entry['Key']; });
70
+ }
71
+ }
72
+ return [2 /*return*/, response];
73
+ }
74
+ });
75
+ });
76
+ };
77
+ exports.default = listFiles;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * List the files in the given bucket and option folder.
3
+ */
4
+ declare const listFolders: ({ S3Lib, bucket, client, folder }: {
5
+ S3Lib: any;
6
+ bucket: string;
7
+ client: any;
8
+ folder: string;
9
+ }) => Promise<string[]>;
10
+ export default listFolders;
@@ -0,0 +1,76 @@
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
+ * List the files in the given bucket and option folder.
42
+ */
43
+ var listFolders = function (_a) {
44
+ var S3Lib = _a.S3Lib, bucket = _a.bucket, client = _a.client, _b = _a.folder, folder = _b === void 0 ? '' : _b;
45
+ return __awaiter(void 0, void 0, void 0, function () {
46
+ var cleanFolder, response, ListObjectsV2Command, apiResponse;
47
+ return __generator(this, function (_c) {
48
+ switch (_c.label) {
49
+ case 0:
50
+ cleanFolder = (0, string_1.getCleanFolder)(folder);
51
+ response = [];
52
+ ListObjectsV2Command = S3Lib.ListObjectsV2Command;
53
+ return [4 /*yield*/, client.send(new ListObjectsV2Command({
54
+ Bucket: bucket,
55
+ Delimiter: '/',
56
+ Prefix: ('' === cleanFolder ? '' : cleanFolder + '/'),
57
+ }))];
58
+ case 1:
59
+ apiResponse = _c.sent();
60
+ // Ensure the data exists
61
+ if (undefined !== apiResponse['CommonPrefixes']) {
62
+ // Return an array of folders removing the trailing folder
63
+ response = apiResponse['CommonPrefixes'].map(function (prefix) {
64
+ // Remove the trailing slash then split by slash
65
+ var fileFolders = prefix.Prefix.slice(0, -1)
66
+ .split('/');
67
+ // Return the last folder without a trailing slash
68
+ return fileFolders[fileFolders.length - 1];
69
+ });
70
+ }
71
+ return [2 /*return*/, response];
72
+ }
73
+ });
74
+ });
75
+ };
76
+ exports.default = listFolders;
@@ -0,0 +1,11 @@
1
+ import { ReadBufferType } from './types';
2
+ /**
3
+ * Similar function to reading the S3 file, but instead of a text file return a buffer.
4
+ */
5
+ declare const readBuffer: ({ S3Lib, bucket, client, file }: {
6
+ S3Lib: any;
7
+ bucket: string;
8
+ client: any;
9
+ file: string;
10
+ }) => Promise<ReadBufferType>;
11
+ export default readBuffer;
@@ -0,0 +1,100 @@
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 getUnixTime_1 = __importDefault(require("date-fns/getUnixTime"));
43
+ var isResponse200_1 = __importDefault(require("../isResponse200"));
44
+ /**
45
+ * Similar function to reading the S3 file, but instead of a text file return a buffer.
46
+ */
47
+ var readBuffer = function (_a) {
48
+ var S3Lib = _a.S3Lib, bucket = _a.bucket, client = _a.client, file = _a.file;
49
+ return __awaiter(void 0, void 0, void 0, function () {
50
+ var response, GetObjectCommand, apiResponse, chunks_1, _b;
51
+ return __generator(this, function (_c) {
52
+ switch (_c.label) {
53
+ case 0:
54
+ response = {
55
+ buffer: undefined,
56
+ now: (0, getUnixTime_1.default)(new Date()),
57
+ modified: {
58
+ unix: null,
59
+ vsNow: {
60
+ months: 0,
61
+ days: 0,
62
+ hours: 0,
63
+ minutes: 0,
64
+ },
65
+ vsMidnight: {
66
+ hours: 0,
67
+ minutes: 0,
68
+ },
69
+ },
70
+ };
71
+ GetObjectCommand = S3Lib.GetObjectCommand;
72
+ return [4 /*yield*/, client.send(new GetObjectCommand({
73
+ Bucket: bucket,
74
+ Key: file,
75
+ }))];
76
+ case 1:
77
+ apiResponse = _c.sent();
78
+ if (!(0, isResponse200_1.default)({ apiResponse: apiResponse })) return [3 /*break*/, 3];
79
+ chunks_1 = [];
80
+ // Store the response
81
+ _b = response;
82
+ return [4 /*yield*/, new Promise(function (resolve, reject) {
83
+ // @ts-ignore
84
+ apiResponse.Body.on('data', function (chunk) { return chunks_1.push(chunk); });
85
+ // @ts-ignore
86
+ apiResponse.Body.on('error', function (err) { return reject(err); });
87
+ // @ts-ignore
88
+ apiResponse.Body.on('end', function () { return resolve(Buffer.concat(chunks_1)); });
89
+ })];
90
+ case 2:
91
+ // Store the response
92
+ _b.buffer = _c.sent();
93
+ return [3 /*break*/, 4];
94
+ case 3: throw new Error("Error reading file.");
95
+ case 4: return [2 /*return*/, response];
96
+ }
97
+ });
98
+ });
99
+ };
100
+ exports.default = readBuffer;
@@ -0,0 +1,12 @@
1
+ import { ReadFileType } from './types';
2
+ /**
3
+ * Read a file from S3 and return either null, the content or JSON decoded.
4
+ */
5
+ declare const readFile: ({ S3Lib, bucket, client, file, isJson }: {
6
+ S3Lib: any;
7
+ bucket: string;
8
+ client: any;
9
+ file: string;
10
+ isJson: boolean;
11
+ }) => Promise<ReadFileType>;
12
+ export default readFile;
@@ -0,0 +1,114 @@
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 differenceInDays_1 = __importDefault(require("date-fns/differenceInDays"));
43
+ var differenceInHours_1 = __importDefault(require("date-fns/differenceInHours"));
44
+ var differenceInMinutes_1 = __importDefault(require("date-fns/differenceInMinutes"));
45
+ var differenceInMonths_1 = __importDefault(require("date-fns/differenceInMonths"));
46
+ var getHours_1 = __importDefault(require("date-fns/getHours"));
47
+ var getMinutes_1 = __importDefault(require("date-fns/getMinutes"));
48
+ var getUnixTime_1 = __importDefault(require("date-fns/getUnixTime"));
49
+ var string_1 = require("../../string");
50
+ var isResponse200_1 = __importDefault(require("../isResponse200"));
51
+ /**
52
+ * Read a file from S3 and return either null, the content or JSON decoded.
53
+ */
54
+ var readFile = function (_a) {
55
+ var S3Lib = _a.S3Lib, bucket = _a.bucket, client = _a.client, file = _a.file, isJson = _a.isJson;
56
+ return __awaiter(void 0, void 0, void 0, function () {
57
+ var response, GetObjectCommand, apiResponse, now, modified, _b;
58
+ return __generator(this, function (_c) {
59
+ switch (_c.label) {
60
+ case 0:
61
+ response = {
62
+ body: undefined,
63
+ now: (0, getUnixTime_1.default)(new Date()),
64
+ modified: {
65
+ unix: null,
66
+ vsNow: {
67
+ months: 0,
68
+ days: 0,
69
+ hours: 0,
70
+ minutes: 0,
71
+ },
72
+ vsMidnight: {
73
+ hours: 0,
74
+ minutes: 0,
75
+ },
76
+ },
77
+ };
78
+ GetObjectCommand = S3Lib.GetObjectCommand;
79
+ return [4 /*yield*/, client.send(new GetObjectCommand({
80
+ Bucket: bucket,
81
+ Key: file,
82
+ }))];
83
+ case 1:
84
+ apiResponse = _c.sent();
85
+ if (!(0, isResponse200_1.default)({ apiResponse: apiResponse })) return [3 /*break*/, 3];
86
+ now = new Date();
87
+ modified = new Date(apiResponse.LastModified);
88
+ // Convert the date to unix
89
+ response.modified.unix = (0, getUnixTime_1.default)(modified);
90
+ // Compare now to unix
91
+ response.modified.vsNow.months = (0, differenceInMonths_1.default)(now, modified);
92
+ response.modified.vsNow.days = (0, differenceInDays_1.default)(now, modified);
93
+ response.modified.vsNow.hours = (0, differenceInHours_1.default)(now, modified);
94
+ response.modified.vsNow.minutes = (0, differenceInMinutes_1.default)(now, modified);
95
+ // Compare now to midnight
96
+ response.modified.vsMidnight.hours = (0, getHours_1.default)(now);
97
+ response.modified.vsMidnight.minutes = (0, getMinutes_1.default)(now);
98
+ // Convert stream into a string
99
+ _b = response;
100
+ return [4 /*yield*/, (0, string_1.getStringFromStream)(apiResponse.Body)];
101
+ case 2:
102
+ // Convert stream into a string
103
+ _b.body = _c.sent();
104
+ // If we need to return JSON, parse it. On error return undefined
105
+ if (isJson) {
106
+ response.body = JSON.parse(response.body) || undefined;
107
+ }
108
+ _c.label = 3;
109
+ case 3: return [2 /*return*/, response];
110
+ }
111
+ });
112
+ });
113
+ };
114
+ exports.default = readFile;
@@ -0,0 +1,22 @@
1
+ export declare type ReadType = {
2
+ now: number;
3
+ modified: {
4
+ unix: null | number;
5
+ vsNow: {
6
+ months: number;
7
+ days: number;
8
+ hours: number;
9
+ minutes: number;
10
+ };
11
+ vsMidnight: {
12
+ hours: number;
13
+ minutes: number;
14
+ };
15
+ };
16
+ };
17
+ export declare type ReadBufferType = ReadType & {
18
+ buffer: any;
19
+ };
20
+ export declare type ReadFileType = ReadType & {
21
+ body: any;
22
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Write a file to S3.
3
+ */
4
+ export declare const writeFile: ({ S3Lib, bucket, client, file, content }: {
5
+ S3Lib: any;
6
+ bucket: string;
7
+ client: any;
8
+ file: string;
9
+ content: any;
10
+ }) => Promise<any>;
11
+ export default writeFile;
@@ -0,0 +1,64 @@
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
+ exports.writeFile = void 0;
40
+ /**
41
+ * Write a file to S3.
42
+ */
43
+ var writeFile = function (_a) {
44
+ var S3Lib = _a.S3Lib, bucket = _a.bucket, client = _a.client, file = _a.file, content = _a.content;
45
+ return __awaiter(void 0, void 0, void 0, function () {
46
+ var PutObjectCommand, apiResponse;
47
+ return __generator(this, function (_b) {
48
+ switch (_b.label) {
49
+ case 0:
50
+ PutObjectCommand = S3Lib.PutObjectCommand;
51
+ return [4 /*yield*/, client.send(new PutObjectCommand({
52
+ Bucket: bucket,
53
+ Body: content,
54
+ Key: file,
55
+ }))];
56
+ case 1:
57
+ apiResponse = _b.sent();
58
+ return [2 /*return*/, apiResponse];
59
+ }
60
+ });
61
+ });
62
+ };
63
+ exports.writeFile = writeFile;
64
+ exports.default = exports.writeFile;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Convert the object into a JSON file so it's ready to be used with AWS Glue.
3
+ * Input: Must be an array of objects that are the same.
4
+ * Output: No array [] brackets, each object must on its own new line.
5
+ */
6
+ export declare const writeGlueJsonFile: ({ S3Lib, bucket, client, file, input }: {
7
+ S3Lib: any;
8
+ bucket: string;
9
+ client: any;
10
+ file: string;
11
+ input: object[];
12
+ }) => Promise<any>;
13
+ export default writeGlueJsonFile;
@@ -0,0 +1,64 @@
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
+ exports.writeGlueJsonFile = void 0;
40
+ var array_1 = require("../../array");
41
+ var writeFile_1 = require("./writeFile");
42
+ /**
43
+ * Convert the object into a JSON file so it's ready to be used with AWS Glue.
44
+ * Input: Must be an array of objects that are the same.
45
+ * Output: No array [] brackets, each object must on its own new line.
46
+ */
47
+ var writeGlueJsonFile = function (_a) {
48
+ var S3Lib = _a.S3Lib, bucket = _a.bucket, client = _a.client, file = _a.file, input = _a.input;
49
+ return __awaiter(void 0, void 0, void 0, function () {
50
+ var inputArray, stringRows, concatString;
51
+ return __generator(this, function (_b) {
52
+ switch (_b.label) {
53
+ case 0:
54
+ inputArray = (0, array_1.getArray)({ input: input });
55
+ stringRows = inputArray.map(function (row) { return JSON.stringify(row); });
56
+ concatString = stringRows.join("\n");
57
+ return [4 /*yield*/, (0, writeFile_1.writeFile)({ S3Lib: S3Lib, bucket: bucket, client: client, file: file, content: concatString })];
58
+ case 1: return [2 /*return*/, _b.sent()];
59
+ }
60
+ });
61
+ });
62
+ };
63
+ exports.writeGlueJsonFile = writeGlueJsonFile;
64
+ exports.default = exports.writeGlueJsonFile;
@@ -0,0 +1,15 @@
1
+ import { ApiResponseType } from '../../api';
2
+ import { AwsConfigType } from '../types';
3
+ declare type WritePresignedPostType = {
4
+ bucket: string;
5
+ config: AwsConfigType;
6
+ fields: any;
7
+ file: any;
8
+ fileName: string;
9
+ url: string;
10
+ };
11
+ /**
12
+ * Get a presigned post URL so we can upload directly to S3 via frontend.
13
+ */
14
+ declare const writePresignedPost: ({ bucket, config, fields, file, fileName, url }: WritePresignedPostType) => Promise<ApiResponseType>;
15
+ export default writePresignedPost;