@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,48 @@
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
+ var isMonday_1 = __importDefault(require("date-fns/isMonday"));
7
+ var isSunday_1 = __importDefault(require("date-fns/isSunday"));
8
+ var nextSunday_1 = __importDefault(require("date-fns/nextSunday"));
9
+ var previousMonday_1 = __importDefault(require("date-fns/previousMonday"));
10
+ var getToday_1 = __importDefault(require("./getToday"));
11
+ /**
12
+ * Get the current financial year.
13
+ */
14
+ var getFinancialYear = function (_a) {
15
+ var year = _a.year;
16
+ // Either use the current year or a specified year
17
+ var financialYear = year;
18
+ if (undefined === year) {
19
+ var today = (0, getToday_1.default)();
20
+ // If today is before 1st of April, then use last year
21
+ if (today < new Date(today.getUTCFullYear(), 3, 1)) {
22
+ financialYear = today.getUTCFullYear() - 1;
23
+ }
24
+ // On or after 1st of April, use this year
25
+ else {
26
+ financialYear = today.getUTCFullYear();
27
+ }
28
+ }
29
+ // The year-end needs to be 31st March next year
30
+ var yearEnd = new Date("".concat(financialYear + 1, "-03-31"));
31
+ yearEnd.setUTCHours(0, 0, 0, 0);
32
+ // The year start needs to be 1st April this year
33
+ var yearStart = new Date("".concat(financialYear, "-04-01"));
34
+ yearStart.setUTCHours(0, 0, 0, 0);
35
+ // Get the previous Monday if the 1st of April isn't a Monday
36
+ if (!(0, isMonday_1.default)(yearStart)) {
37
+ yearStart = (0, previousMonday_1.default)(yearStart);
38
+ }
39
+ // Get the next Sunday if the 31st of March isn't a Sunday
40
+ if (!(0, isSunday_1.default)(yearEnd)) {
41
+ yearEnd = (0, nextSunday_1.default)(yearEnd);
42
+ }
43
+ return {
44
+ end: yearEnd,
45
+ start: yearStart,
46
+ };
47
+ };
48
+ exports.default = getFinancialYear;
@@ -0,0 +1,6 @@
1
+ import { FinancialYearType } from './types';
2
+ /**
3
+ * Return the current financial year up to today.
4
+ */
5
+ declare const getFinancialYearToDate: () => FinancialYearType;
6
+ export default getFinancialYearToDate;
@@ -0,0 +1,15 @@
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
+ var getFinancialYear_1 = __importDefault(require("./getFinancialYear"));
7
+ var getToday_1 = __importDefault(require("./getToday"));
8
+ /**
9
+ * Return the current financial year up to today.
10
+ */
11
+ var getFinancialYearToDate = function () { return ({
12
+ end: (0, getToday_1.default)(),
13
+ start: (0, getFinancialYear_1.default)({ year: undefined }).start,
14
+ }); };
15
+ exports.default = getFinancialYearToDate;
@@ -0,0 +1,8 @@
1
+ import { FinancialYearWeekType } from './types';
2
+ /**
3
+ * Get the current financial year.
4
+ */
5
+ declare const getFinancialYearWeeks: ({ year }: {
6
+ year: number;
7
+ }) => FinancialYearWeekType[];
8
+ export default getFinancialYearWeeks;
@@ -0,0 +1,26 @@
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
+ var addDays_1 = __importDefault(require("date-fns/addDays"));
7
+ var eachWeekOfInterval_1 = __importDefault(require("date-fns/eachWeekOfInterval"));
8
+ var getFinancialYear_1 = __importDefault(require("./getFinancialYear"));
9
+ /**
10
+ * Get the current financial year.
11
+ */
12
+ var getFinancialYearWeeks = function (_a) {
13
+ var year = _a.year;
14
+ var weeks = (0, eachWeekOfInterval_1.default)((0, getFinancialYear_1.default)({ year: year }), { weekStartsOn: 1 });
15
+ var response = weeks.map(function (week, index) {
16
+ var weekEnd = new Date(week.getTime());
17
+ return {
18
+ start: week,
19
+ end: (0, addDays_1.default)(weekEnd, 6),
20
+ financialWeek: (index + 1),
21
+ financialYear: year,
22
+ };
23
+ });
24
+ return response;
25
+ };
26
+ exports.default = getFinancialYearWeeks;
@@ -0,0 +1,6 @@
1
+ import { TimeframeType } from './types';
2
+ /**
3
+ * Return an object of start/end predefined date of Last Week.
4
+ */
5
+ declare const getLastWeek: () => TimeframeType;
6
+ export default getLastWeek;
@@ -0,0 +1,16 @@
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
+ var getMonday_1 = __importDefault(require("./getMonday"));
7
+ var getNumber_1 = __importDefault(require("./getNumber"));
8
+ var getSunday_1 = __importDefault(require("./getSunday"));
9
+ /**
10
+ * Return an object of start/end predefined date of Last Week.
11
+ */
12
+ var getLastWeek = function () { return ({
13
+ end: (0, getNumber_1.default)({ input: (0, getSunday_1.default)({ weeksAgo: 0 }) }),
14
+ start: (0, getNumber_1.default)({ input: (0, getMonday_1.default)({ weeksAgo: 1 }) }),
15
+ }); };
16
+ exports.default = getLastWeek;
@@ -0,0 +1,8 @@
1
+ import { DateType } from './types';
2
+ /**
3
+ * Return the maximum date (up to Yesterday) as a formatted string.
4
+ */
5
+ declare const getMax: ({ input }: {
6
+ input: DateType;
7
+ }) => Date;
8
+ export default getMax;
@@ -0,0 +1,19 @@
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
+ var isAfter_1 = __importDefault(require("date-fns/isAfter"));
7
+ var getDate_1 = __importDefault(require("./getDate"));
8
+ var getYesterday_1 = __importDefault(require("./getYesterday"));
9
+ /**
10
+ * Return the maximum date (up to Yesterday) as a formatted string.
11
+ */
12
+ var getMax = function (_a) {
13
+ var input = _a.input;
14
+ var yesterday = (0, getYesterday_1.default)();
15
+ var parsed = (0, getDate_1.default)({ input: input });
16
+ var max = (0, isAfter_1.default)(parsed, yesterday) ? yesterday : parsed;
17
+ return max;
18
+ };
19
+ exports.default = getMax;
@@ -0,0 +1,11 @@
1
+ import { DateType } from './types';
2
+ /**
3
+ * Retrieve the closest last Monday relative to the input or today.
4
+ * 0 weeksAgo - Tuesday (10th), return Monday (8th)
5
+ * 1 weeksAgo - Tuesday (10th), return Monday (1st)
6
+ */
7
+ declare const getMonday: ({ weeksAgo, input }: {
8
+ weeksAgo: number;
9
+ input?: DateType;
10
+ }) => Date;
11
+ export default getMonday;
@@ -0,0 +1,29 @@
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
+ var getISODay_1 = __importDefault(require("date-fns/getISODay"));
7
+ var isMonday_1 = __importDefault(require("date-fns/isMonday"));
8
+ var subDays_1 = __importDefault(require("date-fns/subDays"));
9
+ var getDate_1 = __importDefault(require("./getDate"));
10
+ var getToday_1 = __importDefault(require("./getToday"));
11
+ /**
12
+ * Retrieve the closest last Monday relative to the input or today.
13
+ * 0 weeksAgo - Tuesday (10th), return Monday (8th)
14
+ * 1 weeksAgo - Tuesday (10th), return Monday (1st)
15
+ */
16
+ var getMonday = function (_a) {
17
+ var weeksAgo = _a.weeksAgo, input = _a.input;
18
+ var date = input ? (0, getDate_1.default)({ input: input }) : (0, getToday_1.default)();
19
+ if (!(0, isMonday_1.default)(date)) {
20
+ // Get the ISO Day of week (Monday - 1 to Sunday - 7)
21
+ var isoDay = (0, getISODay_1.default)(date);
22
+ // Move back to Monday
23
+ date = (0, subDays_1.default)(date, isoDay - 1);
24
+ }
25
+ // Move it back a given number of weeks
26
+ date = (0, subDays_1.default)(date, 7 * weeksAgo);
27
+ return date;
28
+ };
29
+ exports.default = getMonday;
@@ -0,0 +1,8 @@
1
+ import { DateType } from './types';
2
+ /**
3
+ * Convert a (number | string | Date) into a YYYYMMDD number.
4
+ */
5
+ declare const getNumber: ({ input }: {
6
+ input: DateType;
7
+ }) => number;
8
+ export default getNumber;
@@ -0,0 +1,16 @@
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
+ var format_1 = __importDefault(require("date-fns/format"));
7
+ var getDate_1 = __importDefault(require("./getDate"));
8
+ /**
9
+ * Convert a (number | string | Date) into a YYYYMMDD number.
10
+ */
11
+ var getNumber = function (_a) {
12
+ var input = _a.input;
13
+ var date = (0, getDate_1.default)({ input: input });
14
+ return Number((0, format_1.default)(date, 'yyyyMMdd'));
15
+ };
16
+ exports.default = getNumber;
@@ -0,0 +1,8 @@
1
+ import { TimeframePredefinedType, TimeframeType } from './types';
2
+ /**
3
+ * Check to see the date matches a predefined time frame
4
+ */
5
+ declare const getPredefinedTimeframe: ({ timeframe }: {
6
+ timeframe: TimeframeType;
7
+ }) => TimeframePredefinedType;
8
+ export default getPredefinedTimeframe;
@@ -0,0 +1,25 @@
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
+ var constants_1 = require("./constants");
7
+ var isLastWeek_1 = __importDefault(require("./isLastWeek"));
8
+ var isThisWeek_1 = __importDefault(require("./isThisWeek"));
9
+ /**
10
+ * Check to see the date matches a predefined time frame
11
+ */
12
+ var getPredefinedTimeframe = function (_a) {
13
+ var timeframe = _a.timeframe;
14
+ var response = constants_1.TimeframePredefined.CUSTOM;
15
+ // If the selected date matches last week
16
+ if ((0, isLastWeek_1.default)(timeframe)) {
17
+ response = constants_1.TimeframePredefined.LAST_WEEK;
18
+ }
19
+ // If the selected date matches this week
20
+ else if ((0, isThisWeek_1.default)(timeframe)) {
21
+ response = constants_1.TimeframePredefined.THIS_WEEK;
22
+ }
23
+ return response;
24
+ };
25
+ exports.default = getPredefinedTimeframe;
@@ -0,0 +1,11 @@
1
+ import { DateType } from './types';
2
+ /**
3
+ * Retrieve the closest last Sunday relative to the input or today.
4
+ * 0 weeksAgo - Tuesday (17th), return Sunday (14th)
5
+ * 1 weeksAgo - Tuesday (17th), return Monday (7th)
6
+ */
7
+ declare const getSunday: ({ weeksAgo, input }: {
8
+ weeksAgo: number;
9
+ input?: DateType;
10
+ }) => Date;
11
+ export default getSunday;
@@ -0,0 +1,29 @@
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
+ var getISODay_1 = __importDefault(require("date-fns/getISODay"));
7
+ var isSunday_1 = __importDefault(require("date-fns/isSunday"));
8
+ var subDays_1 = __importDefault(require("date-fns/subDays"));
9
+ var getDate_1 = __importDefault(require("./getDate"));
10
+ var getToday_1 = __importDefault(require("./getToday"));
11
+ /**
12
+ * Retrieve the closest last Sunday relative to the input or today.
13
+ * 0 weeksAgo - Tuesday (17th), return Sunday (14th)
14
+ * 1 weeksAgo - Tuesday (17th), return Monday (7th)
15
+ */
16
+ var getSunday = function (_a) {
17
+ var weeksAgo = _a.weeksAgo, input = _a.input;
18
+ var date = input ? (0, getDate_1.default)({ input: input }) : (0, getToday_1.default)();
19
+ if (!(0, isSunday_1.default)(date)) {
20
+ // Get the ISO Day of week (Monday - 1 to Sunday - 7)
21
+ var isoDay = (0, getISODay_1.default)(date);
22
+ // Move back to Monday
23
+ date = (0, subDays_1.default)(date, isoDay);
24
+ }
25
+ // Move it back a given number of weeks
26
+ date = (0, subDays_1.default)(date, 7 * weeksAgo);
27
+ return date;
28
+ };
29
+ exports.default = getSunday;
@@ -0,0 +1,6 @@
1
+ import { TimeframeType } from './types';
2
+ /**
3
+ * Return an object of start/end predefined date of This Week.
4
+ */
5
+ declare const getThisWeek: () => TimeframeType;
6
+ export default getThisWeek;
@@ -0,0 +1,16 @@
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
+ var getMonday_1 = __importDefault(require("./getMonday"));
7
+ var getNumber_1 = __importDefault(require("./getNumber"));
8
+ var getSunday_1 = __importDefault(require("./getSunday"));
9
+ /**
10
+ * Return an object of start/end predefined date of This Week.
11
+ */
12
+ var getThisWeek = function () { return ({
13
+ end: (0, getNumber_1.default)({ input: (0, getSunday_1.default)({ weeksAgo: -1 }) }),
14
+ start: (0, getNumber_1.default)({ input: (0, getMonday_1.default)({ weeksAgo: 0 }) }),
15
+ }); };
16
+ exports.default = getThisWeek;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Shortcut to get today's date.
3
+ * Set to 1am to prevent daylight savings causing issues
4
+ */
5
+ declare const getToday: () => Date;
6
+ export default getToday;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Shortcut to get today's date.
5
+ * Set to 1am to prevent daylight savings causing issues
6
+ */
7
+ var getToday = function () {
8
+ var today = new Date();
9
+ today.setUTCHours(0, 0, 0, 0);
10
+ return today;
11
+ };
12
+ exports.default = getToday;
@@ -0,0 +1,6 @@
1
+ import { TimeframeType } from './types';
2
+ /**
3
+ * Return an object of start/end predefined date of Two Weeks Ago.
4
+ */
5
+ declare const getTwoWeeksAgo: () => TimeframeType;
6
+ export default getTwoWeeksAgo;
@@ -0,0 +1,16 @@
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
+ var getMonday_1 = __importDefault(require("./getMonday"));
7
+ var getNumber_1 = __importDefault(require("./getNumber"));
8
+ var getSunday_1 = __importDefault(require("./getSunday"));
9
+ /**
10
+ * Return an object of start/end predefined date of Two Weeks Ago.
11
+ */
12
+ var getTwoWeeksAgo = function () { return ({
13
+ end: (0, getNumber_1.default)({ input: (0, getSunday_1.default)({ weeksAgo: 1 }) }),
14
+ start: (0, getNumber_1.default)({ input: (0, getMonday_1.default)({ weeksAgo: 2 }) }),
15
+ }); };
16
+ exports.default = getTwoWeeksAgo;
@@ -0,0 +1,6 @@
1
+ import { DateType } from './types';
2
+ /**
3
+ * From a given input, move the date back X weeksAgo
4
+ */
5
+ declare const getWeeksAgo: (input: DateType, weeksAgo?: number) => number;
6
+ export default getWeeksAgo;
@@ -0,0 +1,17 @@
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
+ var sub_1 = __importDefault(require("date-fns/sub"));
7
+ var getDate_1 = __importDefault(require("./getDate"));
8
+ var getNumber_1 = __importDefault(require("./getNumber"));
9
+ /**
10
+ * From a given input, move the date back X weeksAgo
11
+ */
12
+ var getWeeksAgo = function (input, weeksAgo) {
13
+ if (weeksAgo === void 0) { weeksAgo = 0; }
14
+ var response = (0, sub_1.default)((0, getDate_1.default)({ input: input }), { weeks: weeksAgo });
15
+ return (0, getNumber_1.default)({ input: response });
16
+ };
17
+ exports.default = getWeeksAgo;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shortcut to get yesterday's date.
3
+ */
4
+ declare const getYesterday: () => Date;
5
+ export default getYesterday;
@@ -0,0 +1,12 @@
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
+ var subDays_1 = __importDefault(require("date-fns/subDays"));
7
+ var getToday_1 = __importDefault(require("./getToday"));
8
+ /**
9
+ * Shortcut to get yesterday's date.
10
+ */
11
+ var getYesterday = function () { return (0, subDays_1.default)((0, getToday_1.default)(), 1); };
12
+ exports.default = getYesterday;
@@ -0,0 +1,24 @@
1
+ import { Duration, DurationComparison, Timeframe, TimeframePredefined } from './constants';
2
+ import format from './format';
3
+ import getDate from './getDate';
4
+ import getDurationHours from './getDurationHours';
5
+ import getDurationMinutes from './getDurationMinutes';
6
+ import getFinancialYear from './getFinancialYear';
7
+ import getFinancialYearToDate from './getFinancialYearToDate';
8
+ import getLastWeek from './getLastWeek';
9
+ import getMax from './getMax';
10
+ import getMonday from './getMonday';
11
+ import getNumber from './getNumber';
12
+ import getPredefinedTimeframe from './getPredefinedTimeframe';
13
+ import getSunday from './getSunday';
14
+ import getThisWeek from './getThisWeek';
15
+ import getToday from './getToday';
16
+ import getTwoWeeksAgo from './getTwoWeeksAgo';
17
+ import getYesterday from './getYesterday';
18
+ import isDateValid from './isDateValid';
19
+ import isLastWeek from './isLastWeek';
20
+ import isThisWeek from './isThisWeek';
21
+ import parseExcelDate from './parseExcelDate';
22
+ import { DateType, FinancialYearType, FinancialYearWeekType, TimeframePredefinedType, TimeframeType } from './types';
23
+ export type { DateType, FinancialYearType, FinancialYearWeekType, TimeframeType, TimeframePredefinedType, };
24
+ export { Duration, DurationComparison, Timeframe, TimeframePredefined, format, getDate, getDurationHours, getDurationMinutes, getFinancialYear, getFinancialYearToDate, getLastWeek, getMax, getMonday, getNumber, getPredefinedTimeframe, getSunday, getThisWeek, getToday, getTwoWeeksAgo, getYesterday, isDateValid, isLastWeek, isThisWeek, parseExcelDate, };
@@ -0,0 +1,51 @@
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.parseExcelDate = exports.isThisWeek = exports.isLastWeek = exports.isDateValid = exports.getYesterday = exports.getTwoWeeksAgo = exports.getToday = exports.getThisWeek = exports.getSunday = exports.getPredefinedTimeframe = exports.getNumber = exports.getMonday = exports.getMax = exports.getLastWeek = exports.getFinancialYearToDate = exports.getFinancialYear = exports.getDurationMinutes = exports.getDurationHours = exports.getDate = exports.format = exports.TimeframePredefined = exports.Timeframe = exports.DurationComparison = exports.Duration = void 0;
7
+ var constants_1 = require("./constants");
8
+ Object.defineProperty(exports, "Duration", { enumerable: true, get: function () { return constants_1.Duration; } });
9
+ Object.defineProperty(exports, "DurationComparison", { enumerable: true, get: function () { return constants_1.DurationComparison; } });
10
+ Object.defineProperty(exports, "Timeframe", { enumerable: true, get: function () { return constants_1.Timeframe; } });
11
+ Object.defineProperty(exports, "TimeframePredefined", { enumerable: true, get: function () { return constants_1.TimeframePredefined; } });
12
+ var format_1 = __importDefault(require("./format"));
13
+ exports.format = format_1.default;
14
+ var getDate_1 = __importDefault(require("./getDate"));
15
+ exports.getDate = getDate_1.default;
16
+ var getDurationHours_1 = __importDefault(require("./getDurationHours"));
17
+ exports.getDurationHours = getDurationHours_1.default;
18
+ var getDurationMinutes_1 = __importDefault(require("./getDurationMinutes"));
19
+ exports.getDurationMinutes = getDurationMinutes_1.default;
20
+ var getFinancialYear_1 = __importDefault(require("./getFinancialYear"));
21
+ exports.getFinancialYear = getFinancialYear_1.default;
22
+ var getFinancialYearToDate_1 = __importDefault(require("./getFinancialYearToDate"));
23
+ exports.getFinancialYearToDate = getFinancialYearToDate_1.default;
24
+ var getLastWeek_1 = __importDefault(require("./getLastWeek"));
25
+ exports.getLastWeek = getLastWeek_1.default;
26
+ var getMax_1 = __importDefault(require("./getMax"));
27
+ exports.getMax = getMax_1.default;
28
+ var getMonday_1 = __importDefault(require("./getMonday"));
29
+ exports.getMonday = getMonday_1.default;
30
+ var getNumber_1 = __importDefault(require("./getNumber"));
31
+ exports.getNumber = getNumber_1.default;
32
+ var getPredefinedTimeframe_1 = __importDefault(require("./getPredefinedTimeframe"));
33
+ exports.getPredefinedTimeframe = getPredefinedTimeframe_1.default;
34
+ var getSunday_1 = __importDefault(require("./getSunday"));
35
+ exports.getSunday = getSunday_1.default;
36
+ var getThisWeek_1 = __importDefault(require("./getThisWeek"));
37
+ exports.getThisWeek = getThisWeek_1.default;
38
+ var getToday_1 = __importDefault(require("./getToday"));
39
+ exports.getToday = getToday_1.default;
40
+ var getTwoWeeksAgo_1 = __importDefault(require("./getTwoWeeksAgo"));
41
+ exports.getTwoWeeksAgo = getTwoWeeksAgo_1.default;
42
+ var getYesterday_1 = __importDefault(require("./getYesterday"));
43
+ exports.getYesterday = getYesterday_1.default;
44
+ var isDateValid_1 = __importDefault(require("./isDateValid"));
45
+ exports.isDateValid = isDateValid_1.default;
46
+ var isLastWeek_1 = __importDefault(require("./isLastWeek"));
47
+ exports.isLastWeek = isLastWeek_1.default;
48
+ var isThisWeek_1 = __importDefault(require("./isThisWeek"));
49
+ exports.isThisWeek = isThisWeek_1.default;
50
+ var parseExcelDate_1 = __importDefault(require("./parseExcelDate"));
51
+ exports.parseExcelDate = parseExcelDate_1.default;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Ensure the date string provided is in YYYY-MM-DD format and is a valid date.
3
+ */
4
+ declare const isDateValid: ({ input }: {
5
+ input: string;
6
+ }) => boolean;
7
+ export default isDateValid;
@@ -0,0 +1,24 @@
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
+ var isValid_1 = __importDefault(require("date-fns/isValid"));
7
+ var parseISO_1 = __importDefault(require("date-fns/parseISO"));
8
+ /**
9
+ * Ensure the date string provided is in YYYY-MM-DD format and is a valid date.
10
+ */
11
+ var isDateValid = function (_a) {
12
+ var input = _a.input;
13
+ var cleanInput = input.trim();
14
+ var parsedInput = (0, parseISO_1.default)(cleanInput);
15
+ if ((0, isValid_1.default)(parsedInput)) {
16
+ var matches = cleanInput.match(/^([0-9]{4}-[0-9]{2}-[0-9]{2})$/);
17
+ if (matches) {
18
+ return matches.length ? true : false;
19
+ }
20
+ return false;
21
+ }
22
+ return false;
23
+ };
24
+ exports.default = isDateValid;
@@ -0,0 +1,6 @@
1
+ import { TimeframeType } from './types';
2
+ /**
3
+ * Check to see if a given timeframe is Last Week.
4
+ */
5
+ declare const isLastWeek: ({ end, start }: TimeframeType) => boolean;
6
+ export default isLastWeek;
@@ -0,0 +1,15 @@
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
+ var getLastWeek_1 = __importDefault(require("./getLastWeek"));
7
+ /**
8
+ * Check to see if a given timeframe is Last Week.
9
+ */
10
+ var isLastWeek = function (_a) {
11
+ var end = _a.end, start = _a.start;
12
+ var lastWeek = (0, getLastWeek_1.default)();
13
+ return start === lastWeek.start && end === lastWeek.end;
14
+ };
15
+ exports.default = isLastWeek;
@@ -0,0 +1,6 @@
1
+ import { TimeframeType } from './types';
2
+ /**
3
+ * Check to see if a given timeframe is Last Week.
4
+ */
5
+ declare const isThisWeek: ({ end, start }: TimeframeType) => boolean;
6
+ export default isThisWeek;
@@ -0,0 +1,15 @@
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
+ var getThisWeek_1 = __importDefault(require("./getThisWeek"));
7
+ /**
8
+ * Check to see if a given timeframe is Last Week.
9
+ */
10
+ var isThisWeek = function (_a) {
11
+ var end = _a.end, start = _a.start;
12
+ var thisWeek = (0, getThisWeek_1.default)();
13
+ return start === thisWeek.start && end === thisWeek.end;
14
+ };
15
+ exports.default = isThisWeek;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Convert an excel date "e.g. 44216" into a JavaScript date object.
3
+ * https://stackoverflow.com/questions/16229494/converting-excel-date-serial-number-to-date-using-javascript
4
+ */
5
+ declare const parseExcelDate: ({ serial }: {
6
+ serial: number;
7
+ }) => Date;
8
+ export default parseExcelDate;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Convert an excel date "e.g. 44216" into a JavaScript date object.
5
+ * https://stackoverflow.com/questions/16229494/converting-excel-date-serial-number-to-date-using-javascript
6
+ */
7
+ var parseExcelDate = function (_a) {
8
+ var serial = _a.serial;
9
+ var utcDates = Math.floor(serial - 25569);
10
+ var utcValue = utcDates * 86400;
11
+ var dateInfo = new Date(utcValue * 1000);
12
+ var fractionalDay = serial - Math.floor(serial) + 0.0000001;
13
+ var totalSeconds = Math.floor(86400 * fractionalDay);
14
+ var seconds = totalSeconds % 60;
15
+ totalSeconds -= seconds;
16
+ var hours = Math.floor(totalSeconds / (60 * 60));
17
+ var minutes = Math.floor(totalSeconds / 60) % 60;
18
+ return new Date(dateInfo.getFullYear(), dateInfo.getMonth(), dateInfo.getDate(), hours, minutes, seconds);
19
+ };
20
+ exports.default = parseExcelDate;