@lighthouse/common 6.10.0 → 6.10.1-canary.0

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 (229) hide show
  1. package/.mise.toml +6 -6
  2. package/CHANGELOG.md +758 -758
  3. package/README.md +1 -1
  4. package/dist/errors/FetchImageError.js +3 -3
  5. package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +7 -7
  6. package/dist/helpers/floatify/index.js +6 -6
  7. package/dist/helpers/get-audit-items-data/index.js +47 -36
  8. package/dist/helpers/validate-url/index.js +4 -4
  9. package/dist/pdf/activity-report/index.js +32 -32
  10. package/dist/pdf/audit/index.js +23 -23
  11. package/dist/pdf/helpers/fields/index.js +47 -27
  12. package/dist/pdf/issue/index.js +23 -23
  13. package/dist/pdf/job/index.js +22 -22
  14. package/dist/pdf/shift-report/index.js +28 -28
  15. package/dist/pdf/task/index.js +23 -23
  16. package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +2 -2
  17. package/dist/scheduling/generators/scheduleIntervalsGenerator.js +2 -2
  18. package/dist/scheduling/generators/serviceIntervalsGenerator.js +2 -2
  19. package/dist/scheduling/helpers/convertToTimezone.js +6 -6
  20. package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +2 -2
  21. package/dist/scheduling/helpers/generateRepeatingSchedule.js +2 -2
  22. package/dist/scheduling/helpers/generateScheduleEnd.js +2 -2
  23. package/dist/scheduling/helpers/hasValidStartAndEnd.js +5 -5
  24. package/dist/scheduling/helpers/intervalCovers.js +6 -6
  25. package/dist/scheduling/helpers/intervalIntersectsEnd.js +6 -6
  26. package/dist/scheduling/helpers/intervalIntersectsStart.js +6 -6
  27. package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +6 -6
  28. package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +6 -6
  29. package/dist/scheduling/helpers/intervalOutside.js +6 -6
  30. package/dist/scheduling/helpers/intervalWithin.js +6 -6
  31. package/dist/scheduling/helpers/mergeIntervals.js +6 -6
  32. package/dist/scheduling/helpers/splitIntervals.js +6 -6
  33. package/dist/scheduling/strategies/getNext.js +2 -2
  34. package/dist/scheduling/strategies/getNextExactDateOfMonth.js +2 -2
  35. package/dist/scheduling/strategies/getNextLastDayOfMonth.js +2 -2
  36. package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +2 -2
  37. package/dist/scheduling/strategies/getNextNoRepeat.js +2 -2
  38. package/dist/scheduling/strategies/getNextWeekday.js +2 -2
  39. package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +2 -2
  40. package/dist/service-hours/__helpers__/calculate-hours.js +4 -4
  41. package/dist/service-hours/__helpers__/isOpen.js +2 -2
  42. package/dist/service-hours/schema.js +4 -4
  43. package/lib/constants.js +12 -6
  44. package/lib/constants.js.map +1 -1
  45. package/lib/errors/DomainError.js +14 -21
  46. package/lib/errors/DomainError.js.map +1 -1
  47. package/lib/errors/FetchImageError.js +17 -24
  48. package/lib/errors/FetchImageError.js.map +1 -1
  49. package/lib/errors/ValidationError.js +30 -36
  50. package/lib/errors/ValidationError.js.map +1 -1
  51. package/lib/errors/index.js +23 -5
  52. package/lib/errors/index.js.map +1 -1
  53. package/lib/helpers/build-fetch-url/index.js +43 -47
  54. package/lib/helpers/build-fetch-url/index.js.map +1 -1
  55. package/lib/helpers/fetch-image/index.js +83 -82
  56. package/lib/helpers/fetch-image/index.js.map +1 -1
  57. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +168 -243
  58. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
  59. package/lib/helpers/fetch-image-for-web/index.js +71 -94
  60. package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
  61. package/lib/helpers/fetch-lighthouse-logo/index.js +36 -61
  62. package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
  63. package/lib/helpers/floatify/index.js +13 -7
  64. package/lib/helpers/floatify/index.js.map +1 -1
  65. package/lib/helpers/get-assignees-full-names/index.js +11 -7
  66. package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
  67. package/lib/helpers/get-audit-entry-details/index.js +42 -32
  68. package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
  69. package/lib/helpers/get-audit-items-data/index.js +104 -83
  70. package/lib/helpers/get-audit-items-data/index.js.map +1 -1
  71. package/lib/helpers/get-geometry-geocoded-string/index.js +10 -5
  72. package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
  73. package/lib/helpers/get-issue-details/index.js +53 -43
  74. package/lib/helpers/get-issue-details/index.js.map +1 -1
  75. package/lib/helpers/get-job-details/index.js +49 -41
  76. package/lib/helpers/get-job-details/index.js.map +1 -1
  77. package/lib/helpers/get-location-reference/index.js +32 -34
  78. package/lib/helpers/get-location-reference/index.js.map +1 -1
  79. package/lib/helpers/get-pretty-duration/index.js +16 -10
  80. package/lib/helpers/get-pretty-duration/index.js.map +1 -1
  81. package/lib/helpers/get-reference-details/index.js +20 -10
  82. package/lib/helpers/get-reference-details/index.js.map +1 -1
  83. package/lib/helpers/get-status-details/index.js +8 -2
  84. package/lib/helpers/get-status-details/index.js.map +1 -1
  85. package/lib/helpers/get-task-entry-details/index.js +32 -23
  86. package/lib/helpers/get-task-entry-details/index.js.map +1 -1
  87. package/lib/helpers/get-timezone-abbr/index.js +11 -4
  88. package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
  89. package/lib/helpers/get-timezone-datetime/index.js +20 -13
  90. package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
  91. package/lib/helpers/get-user-full-name/index.js +9 -3
  92. package/lib/helpers/get-user-full-name/index.js.map +1 -1
  93. package/lib/helpers/get-value-as-percentage/index.js +9 -4
  94. package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
  95. package/lib/helpers/image-validators/index.js +18 -12
  96. package/lib/helpers/image-validators/index.js.map +1 -1
  97. package/lib/helpers/index.js +130 -18
  98. package/lib/helpers/index.js.map +1 -1
  99. package/lib/helpers/validate-url/index.js +11 -5
  100. package/lib/helpers/validate-url/index.js.map +1 -1
  101. package/lib/images/index.js +10 -4
  102. package/lib/images/index.js.map +1 -1
  103. package/lib/index.js +66 -10
  104. package/lib/index.js.map +1 -1
  105. package/lib/pdf/activity-report/index.js +407 -537
  106. package/lib/pdf/activity-report/index.js.map +1 -1
  107. package/lib/pdf/audit/index.js +137 -134
  108. package/lib/pdf/audit/index.js.map +1 -1
  109. package/lib/pdf/fonts/index.js +4 -2
  110. package/lib/pdf/fonts/index.js.map +1 -1
  111. package/lib/pdf/helpers/build-audit-content/index.js +57 -51
  112. package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
  113. package/lib/pdf/helpers/build-audit-follow-ups/index.js +52 -50
  114. package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
  115. package/lib/pdf/helpers/build-location-scans-content/index.js +22 -16
  116. package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
  117. package/lib/pdf/helpers/build-template-content/index.js +52 -51
  118. package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
  119. package/lib/pdf/helpers/default-footer/index.js +38 -35
  120. package/lib/pdf/helpers/default-footer/index.js.map +1 -1
  121. package/lib/pdf/helpers/default-header/index.js +40 -35
  122. package/lib/pdf/helpers/default-header/index.js.map +1 -1
  123. package/lib/pdf/helpers/default-styles/index.js +7 -1
  124. package/lib/pdf/helpers/default-styles/index.js.map +1 -1
  125. package/lib/pdf/helpers/fields/index.js +225 -214
  126. package/lib/pdf/helpers/fields/index.js.map +1 -1
  127. package/lib/pdf/helpers/format-location-address/index.js +14 -8
  128. package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
  129. package/lib/pdf/helpers/generate-definition/index.js +60 -65
  130. package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
  131. package/lib/pdf/helpers/horizontal-line/index.js +14 -14
  132. package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
  133. package/lib/pdf/helpers/html-transformer/index.js +45 -35
  134. package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
  135. package/lib/pdf/helpers/index.js +194 -15
  136. package/lib/pdf/helpers/index.js.map +1 -1
  137. package/lib/pdf/helpers/parse-value/index.js +10 -4
  138. package/lib/pdf/helpers/parse-value/index.js.map +1 -1
  139. package/lib/pdf/helpers/table/index.js +136 -205
  140. package/lib/pdf/helpers/table/index.js.map +1 -1
  141. package/lib/pdf/helpers/text/index.js +11 -8
  142. package/lib/pdf/helpers/text/index.js.map +1 -1
  143. package/lib/pdf/icons/index.js +8 -2
  144. package/lib/pdf/icons/index.js.map +1 -1
  145. package/lib/pdf/index.js +47 -6
  146. package/lib/pdf/index.js.map +1 -1
  147. package/lib/pdf/issue/index.js +141 -135
  148. package/lib/pdf/issue/index.js.map +1 -1
  149. package/lib/pdf/job/index.js +95 -81
  150. package/lib/pdf/job/index.js.map +1 -1
  151. package/lib/pdf/shift-report/emptyFixtures.js +8 -2
  152. package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
  153. package/lib/pdf/shift-report/index.js +399 -521
  154. package/lib/pdf/shift-report/index.js.map +1 -1
  155. package/lib/pdf/task/index.js +89 -83
  156. package/lib/pdf/task/index.js.map +1 -1
  157. package/lib/scheduling/generators/index.js +38 -3
  158. package/lib/scheduling/generators/index.js.map +1 -1
  159. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +44 -37
  160. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
  161. package/lib/scheduling/generators/scheduleIntervalsGenerator.js +20 -28
  162. package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
  163. package/lib/scheduling/generators/serviceIntervalsGenerator.js +120 -150
  164. package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
  165. package/lib/scheduling/helpers/convertToTimezone.js +18 -11
  166. package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
  167. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +57 -95
  168. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
  169. package/lib/scheduling/helpers/generateRepeatingSchedule.js +80 -119
  170. package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
  171. package/lib/scheduling/helpers/generateScheduleEnd.js +24 -14
  172. package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
  173. package/lib/scheduling/helpers/hasValidStartAndEnd.js +19 -11
  174. package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
  175. package/lib/scheduling/helpers/index.js +159 -14
  176. package/lib/scheduling/helpers/index.js.map +1 -1
  177. package/lib/scheduling/helpers/intervalCovers.js +13 -7
  178. package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
  179. package/lib/scheduling/helpers/intervalIntersectsEnd.js +13 -7
  180. package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
  181. package/lib/scheduling/helpers/intervalIntersectsStart.js +13 -7
  182. package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
  183. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +15 -10
  184. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
  185. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +15 -10
  186. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
  187. package/lib/scheduling/helpers/intervalOutside.js +15 -9
  188. package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
  189. package/lib/scheduling/helpers/intervalWithin.js +13 -7
  190. package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
  191. package/lib/scheduling/helpers/mergeIntervals.js +21 -17
  192. package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
  193. package/lib/scheduling/helpers/splitIntervals.js +24 -23
  194. package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
  195. package/lib/scheduling/index.js +38 -3
  196. package/lib/scheduling/index.js.map +1 -1
  197. package/lib/scheduling/scheduling.types.js +9 -3
  198. package/lib/scheduling/scheduling.types.js.map +1 -1
  199. package/lib/scheduling/strategies/getNext.js +57 -63
  200. package/lib/scheduling/strategies/getNext.js.map +1 -1
  201. package/lib/scheduling/strategies/getNextExactDateOfMonth.js +47 -56
  202. package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
  203. package/lib/scheduling/strategies/getNextLastDayOfMonth.js +43 -51
  204. package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
  205. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +49 -56
  206. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
  207. package/lib/scheduling/strategies/getNextNoRepeat.js +25 -36
  208. package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
  209. package/lib/scheduling/strategies/getNextWeekday.js +47 -79
  210. package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
  211. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +52 -58
  212. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
  213. package/lib/scheduling/strategies/index.js +82 -7
  214. package/lib/scheduling/strategies/index.js.map +1 -1
  215. package/lib/schema/index.js +16 -1
  216. package/lib/schema/index.js.map +1 -1
  217. package/lib/schema/schema.js +28 -34
  218. package/lib/schema/schema.js.map +1 -1
  219. package/lib/service-hours/__helpers__/calculate-hours.js +24 -22
  220. package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
  221. package/lib/service-hours/__helpers__/isOpen.js +25 -24
  222. package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
  223. package/lib/service-hours/index.js +27 -2
  224. package/lib/service-hours/index.js.map +1 -1
  225. package/lib/service-hours/schema.js +68 -55
  226. package/lib/service-hours/schema.js.map +1 -1
  227. package/package.json +86 -86
  228. package/vitest.config.ts +23 -23
  229. package/vitest.setup.js +7 -7
@@ -1,84 +1,52 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
3
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
- import moment from 'moment-timezone';
6
- import { Unit } from '../scheduling.types';
1
+ "use strict";
7
2
 
8
- /**
9
- * Generates next occurrence interval for weekdays strategy
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getNextWeekday = getNextWeekday;
8
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
9
+ var _scheduling = require("../scheduling.types");
10
+ /**
11
+ * Generates next occurrence interval for weekdays strategy
10
12
  */
11
- export function getNextWeekday(_ref) {
12
- var end = _ref.end,
13
- isInitial = _ref.isInitial,
14
- options = _ref.options,
15
- start = _ref.start,
16
- timezone = _ref.timezone;
17
- return /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
18
- var duration, frequency, weekdays, durationUnit, durationValue, frequencyUnit, frequencyValue, initial, dateCursor, _iterator, _step, weekday, nextOccurrenceEnd, nextOccurrenceStart, nextOccurrence, nextDateCursor, _t;
19
- return _regeneratorRuntime.wrap(function (_context) {
20
- while (1) switch (_context.prev = _context.next) {
21
- case 0:
22
- duration = options.duration, frequency = options.frequency, weekdays = options.weekdays;
23
- durationUnit = duration.unit, durationValue = duration.value;
24
- frequencyUnit = frequency.unit, frequencyValue = frequency.value;
25
- initial = isInitial;
26
- dateCursor = initial ? moment.tz(start, timezone).startOf(Unit.Week).valueOf() : moment.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(Unit.Week).valueOf();
27
- case 1:
28
- if (!(dateCursor < end)) {
29
- _context.next = 11;
30
- break;
31
- }
32
- _iterator = _createForOfIteratorHelper(weekdays);
33
- _context.prev = 2;
34
- _iterator.s();
35
- case 3:
36
- if ((_step = _iterator.n()).done) {
37
- _context.next = 7;
38
- break;
39
- }
40
- weekday = _step.value;
41
- nextOccurrenceEnd = moment.tz(dateCursor, timezone).isoWeekday(weekday).add(1, Unit.Day).startOf(Unit.Day).valueOf();
42
- nextOccurrenceStart = moment.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
43
- if (!(nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end)) {
44
- _context.next = 4;
45
- break;
46
- }
47
- return _context.abrupt("return");
48
- case 4:
49
- if (!(nextOccurrenceStart >= start)) {
50
- _context.next = 6;
51
- break;
52
- }
53
- nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
54
- _context.next = 5;
55
- return nextOccurrence;
56
- case 5:
57
- initial = false;
58
- case 6:
59
- _context.next = 3;
60
- break;
61
- case 7:
62
- _context.next = 9;
63
- break;
64
- case 8:
65
- _context.prev = 8;
66
- _t = _context["catch"](2);
67
- _iterator.e(_t);
68
- case 9:
69
- _context.prev = 9;
70
- _iterator.f();
71
- return _context.finish(9);
72
- case 10:
73
- nextDateCursor = moment.tz(dateCursor, timezone).add(1, Unit.Week).valueOf();
74
- dateCursor = nextDateCursor;
75
- _context.next = 1;
76
- break;
77
- case 11:
78
- case "end":
79
- return _context.stop();
13
+ function* getNextWeekday({
14
+ end,
15
+ isInitial,
16
+ options,
17
+ start,
18
+ timezone
19
+ }) {
20
+ const {
21
+ duration,
22
+ frequency,
23
+ weekdays
24
+ } = options;
25
+ const {
26
+ unit: durationUnit,
27
+ value: durationValue
28
+ } = duration;
29
+ const {
30
+ unit: frequencyUnit,
31
+ value: frequencyValue
32
+ } = frequency;
33
+ let initial = isInitial;
34
+ let dateCursor = initial ? _momentTimezone.default.tz(start, timezone).startOf(_scheduling.Unit.Week).valueOf() : _momentTimezone.default.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(_scheduling.Unit.Week).valueOf();
35
+ while (dateCursor < end) {
36
+ for (const weekday of weekdays) {
37
+ const nextOccurrenceEnd = _momentTimezone.default.tz(dateCursor, timezone).isoWeekday(weekday).add(1, _scheduling.Unit.Day).startOf(_scheduling.Unit.Day).valueOf();
38
+ const nextOccurrenceStart = _momentTimezone.default.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
39
+ if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {
40
+ return;
80
41
  }
81
- }, _callee, null, [[2, 8, 9, 10]]);
82
- })();
42
+ if (nextOccurrenceStart >= start) {
43
+ const nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
44
+ yield nextOccurrence;
45
+ initial = false;
46
+ }
47
+ }
48
+ const nextDateCursor = _momentTimezone.default.tz(dateCursor, timezone).add(1, _scheduling.Unit.Week).valueOf();
49
+ dateCursor = nextDateCursor;
50
+ }
83
51
  }
84
52
  //# sourceMappingURL=getNextWeekday.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNextWeekday.js","names":["moment","Unit","getNextWeekday","_ref","end","isInitial","options","start","timezone","_regeneratorRuntime","mark","_callee","duration","frequency","weekdays","durationUnit","durationValue","frequencyUnit","frequencyValue","initial","dateCursor","_iterator","_step","weekday","nextOccurrenceEnd","nextOccurrenceStart","nextOccurrence","nextDateCursor","_t","wrap","_context","prev","next","unit","value","tz","startOf","Week","valueOf","add","_createForOfIteratorHelper","s","n","done","isoWeekday","Day","subtract","abrupt","e","f","finish","stop"],"sources":["../../../src/scheduling/strategies/getNextWeekday.ts"],"sourcesContent":["import moment from 'moment-timezone'\n\nimport { GetNext, Interval, Unit } from '../scheduling.types'\n\n/**\n * Generates next occurrence interval for weekdays strategy\n */\nexport function* getNextWeekday({\n end,\n isInitial,\n options,\n start,\n timezone,\n}: GetNext): IterableIterator<Interval> {\n const { duration, frequency, weekdays } = options\n const { unit: durationUnit, value: durationValue } = duration\n const { unit: frequencyUnit, value: frequencyValue } = frequency\n\n let initial: boolean = isInitial\n\n let dateCursor: number = initial\n ? moment\n .tz(start, timezone)\n .startOf(Unit.Week)\n .valueOf()\n : moment\n .tz(start, timezone)\n .add(frequencyValue, frequencyUnit)\n .startOf(Unit.Week)\n .valueOf()\n\n while (dateCursor < end) {\n for (const weekday of weekdays) {\n const nextOccurrenceEnd: number = moment\n .tz(dateCursor, timezone)\n .isoWeekday(weekday)\n .add(1, Unit.Day)\n .startOf(Unit.Day)\n .valueOf()\n\n const nextOccurrenceStart: number = moment\n .tz(nextOccurrenceEnd, timezone)\n .subtract(durationValue, durationUnit)\n .valueOf()\n\n if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {\n return\n }\n\n if (nextOccurrenceStart >= start) {\n const nextOccurrence: Interval = [\n nextOccurrenceStart,\n nextOccurrenceEnd - 1,\n ]\n\n yield nextOccurrence\n\n initial = false\n }\n }\n\n const nextDateCursor: number = moment\n .tz(dateCursor, timezone)\n .add(1, Unit.Week)\n .valueOf()\n\n dateCursor = nextDateCursor\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,MAAM,MAAM,iBAAiB;AAEpC,SAA4BC,IAAI,QAAQ,qBAAqB;;AAE7D;AACA;AACA;AACA,OAAO,SAAUC,cAAcA,CAAAC,IAAA;EAAA,IAC7BC,GAAG,GAAAD,IAAA,CAAHC,GAAG;IACHC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IACLC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;EAAA,oBAAAC,mBAAA,CAAAC,IAAA,UAAAC,QAAA;IAAA,IAAAC,QAAA,EAAAC,SAAA,EAAAC,QAAA,EAAAC,YAAA,EAAAC,aAAA,EAAAC,aAAA,EAAAC,cAAA,EAAAC,OAAA,EAAAC,UAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAC,OAAA,EAAAC,iBAAA,EAAAC,mBAAA,EAAAC,cAAA,EAAAC,cAAA,EAAAC,EAAA;IAAA,OAAAnB,mBAAA,CAAAoB,IAAA,WAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAEApB,QAAQ,GAA0BN,OAAO,CAAzCM,QAAQ,EAAEC,SAAS,GAAeP,OAAO,CAA/BO,SAAS,EAAEC,QAAQ,GAAKR,OAAO,CAApBQ,QAAQ;UACvBC,YAAY,GAA2BH,QAAQ,CAArDqB,IAAI,EAAuBjB,aAAa,GAAKJ,QAAQ,CAAjCsB,KAAK;UACnBjB,aAAa,GAA4BJ,SAAS,CAAxDoB,IAAI,EAAwBf,cAAc,GAAKL,SAAS,CAAnCqB,KAAK;UAE9Bf,OAAgB,GAAGd,SAAS;UAE5Be,UAAkB,GAAGD,OAAO,GAC5BnB,MAAM,CACHmC,EAAE,CAAC5B,KAAK,EAAEC,QAAQ,CAAC,CACnB4B,OAAO,CAACnC,IAAI,CAACoC,IAAI,CAAC,CAClBC,OAAO,CAAC,CAAC,GACZtC,MAAM,CACHmC,EAAE,CAAC5B,KAAK,EAAEC,QAAQ,CAAC,CACnB+B,GAAG,CAACrB,cAAc,EAAED,aAAa,CAAC,CAClCmB,OAAO,CAACnC,IAAI,CAACoC,IAAI,CAAC,CAClBC,OAAO,CAAC,CAAC;QAAA;UAAA,MAETlB,UAAU,GAAGhB,GAAG;YAAA0B,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAX,SAAA,GAAAmB,0BAAA,CACC1B,QAAQ;UAAAgB,QAAA,CAAAC,IAAA;UAAAV,SAAA,CAAAoB,CAAA;QAAA;UAAA,KAAAnB,KAAA,GAAAD,SAAA,CAAAqB,CAAA,IAAAC,IAAA;YAAAb,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAnBT,OAAO,GAAAD,KAAA,CAAAY,KAAA;UACVV,iBAAyB,GAAGxB,MAAM,CACrCmC,EAAE,CAACf,UAAU,EAAEZ,QAAQ,CAAC,CACxBoC,UAAU,CAACrB,OAAO,CAAC,CACnBgB,GAAG,CAAC,CAAC,EAAEtC,IAAI,CAAC4C,GAAG,CAAC,CAChBT,OAAO,CAACnC,IAAI,CAAC4C,GAAG,CAAC,CACjBP,OAAO,CAAC,CAAC;UAENb,mBAA2B,GAAGzB,MAAM,CACvCmC,EAAE,CAACX,iBAAiB,EAAEhB,QAAQ,CAAC,CAC/BsC,QAAQ,CAAC9B,aAAa,EAAED,YAAY,CAAC,CACrCuB,OAAO,CAAC,CAAC;UAAA,MAERd,iBAAiB,IAAIC,mBAAmB,IAAID,iBAAiB,GAAGpB,GAAG;YAAA0B,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAiB,MAAA;QAAA;UAAA,MAInEtB,mBAAmB,IAAIlB,KAAK;YAAAuB,QAAA,CAAAE,IAAA;YAAA;UAAA;UACxBN,cAAwB,GAAG,CAC/BD,mBAAmB,EACnBD,iBAAiB,GAAG,CAAC,CACtB;UAAAM,QAAA,CAAAE,IAAA;UAED,OAAMN,cAAc;QAAA;UAEpBP,OAAO,GAAG,KAAK;QAAA;UAAAW,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAH,EAAA,GAAAE,QAAA;UAAAT,SAAA,CAAA2B,CAAA,CAAApB,EAAA;QAAA;UAAAE,QAAA,CAAAC,IAAA;UAAAV,SAAA,CAAA4B,CAAA;UAAA,OAAAnB,QAAA,CAAAoB,MAAA;QAAA;UAIbvB,cAAsB,GAAG3B,MAAM,CAClCmC,EAAE,CAACf,UAAU,EAAEZ,QAAQ,CAAC,CACxB+B,GAAG,CAAC,CAAC,EAAEtC,IAAI,CAACoC,IAAI,CAAC,CACjBC,OAAO,CAAC,CAAC;UAEZlB,UAAU,GAAGO,cAAc;UAAAG,QAAA,CAAAE,IAAA;UAAA;QAAA;QAAA;UAAA,OAAAF,QAAA,CAAAqB,IAAA;MAAA;IAAA,GAAAxC,OAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"getNextWeekday.js","names":["_momentTimezone","_interopRequireDefault","require","_scheduling","getNextWeekday","end","isInitial","options","start","timezone","duration","frequency","weekdays","unit","durationUnit","value","durationValue","frequencyUnit","frequencyValue","initial","dateCursor","moment","tz","startOf","Unit","Week","valueOf","add","weekday","nextOccurrenceEnd","isoWeekday","Day","nextOccurrenceStart","subtract","nextOccurrence","nextDateCursor"],"sources":["../../../src/scheduling/strategies/getNextWeekday.ts"],"sourcesContent":["import moment from 'moment-timezone'\r\n\r\nimport { GetNext, Interval, Unit } from '../scheduling.types'\r\n\r\n/**\r\n * Generates next occurrence interval for weekdays strategy\r\n */\r\nexport function* getNextWeekday({\r\n end,\r\n isInitial,\r\n options,\r\n start,\r\n timezone,\r\n}: GetNext): IterableIterator<Interval> {\r\n const { duration, frequency, weekdays } = options\r\n const { unit: durationUnit, value: durationValue } = duration\r\n const { unit: frequencyUnit, value: frequencyValue } = frequency\r\n\r\n let initial: boolean = isInitial\r\n\r\n let dateCursor: number = initial\r\n ? moment\r\n .tz(start, timezone)\r\n .startOf(Unit.Week)\r\n .valueOf()\r\n : moment\r\n .tz(start, timezone)\r\n .add(frequencyValue, frequencyUnit)\r\n .startOf(Unit.Week)\r\n .valueOf()\r\n\r\n while (dateCursor < end) {\r\n for (const weekday of weekdays) {\r\n const nextOccurrenceEnd: number = moment\r\n .tz(dateCursor, timezone)\r\n .isoWeekday(weekday)\r\n .add(1, Unit.Day)\r\n .startOf(Unit.Day)\r\n .valueOf()\r\n\r\n const nextOccurrenceStart: number = moment\r\n .tz(nextOccurrenceEnd, timezone)\r\n .subtract(durationValue, durationUnit)\r\n .valueOf()\r\n\r\n if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {\r\n return\r\n }\r\n\r\n if (nextOccurrenceStart >= start) {\r\n const nextOccurrence: Interval = [\r\n nextOccurrenceStart,\r\n nextOccurrenceEnd - 1,\r\n ]\r\n\r\n yield nextOccurrence\r\n\r\n initial = false\r\n }\r\n }\r\n\r\n const nextDateCursor: number = moment\r\n .tz(dateCursor, timezone)\r\n .add(1, Unit.Week)\r\n .valueOf()\r\n\r\n dateCursor = nextDateCursor\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACO,UAAUE,cAAcA,CAAC;EAC9BC,GAAG;EACHC,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC;AACO,CAAC,EAA8B;EACtC,MAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAS,CAAC,GAAGL,OAAO;EACjD,MAAM;IAAEM,IAAI,EAAEC,YAAY;IAAEC,KAAK,EAAEC;EAAc,CAAC,GAAGN,QAAQ;EAC7D,MAAM;IAAEG,IAAI,EAAEI,aAAa;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAGP,SAAS;EAEhE,IAAIQ,OAAgB,GAAGb,SAAS;EAEhC,IAAIc,UAAkB,GAAGD,OAAO,GAC5BE,uBAAM,CACHC,EAAE,CAACd,KAAK,EAAEC,QAAQ,CAAC,CACnBc,OAAO,CAACC,gBAAI,CAACC,IAAI,CAAC,CAClBC,OAAO,CAAC,CAAC,GACZL,uBAAM,CACHC,EAAE,CAACd,KAAK,EAAEC,QAAQ,CAAC,CACnBkB,GAAG,CAACT,cAAc,EAAED,aAAa,CAAC,CAClCM,OAAO,CAACC,gBAAI,CAACC,IAAI,CAAC,CAClBC,OAAO,CAAC,CAAC;EAEhB,OAAON,UAAU,GAAGf,GAAG,EAAE;IACvB,KAAK,MAAMuB,OAAO,IAAIhB,QAAQ,EAAE;MAC9B,MAAMiB,iBAAyB,GAAGR,uBAAM,CACrCC,EAAE,CAACF,UAAU,EAAEX,QAAQ,CAAC,CACxBqB,UAAU,CAACF,OAAO,CAAC,CACnBD,GAAG,CAAC,CAAC,EAAEH,gBAAI,CAACO,GAAG,CAAC,CAChBR,OAAO,CAACC,gBAAI,CAACO,GAAG,CAAC,CACjBL,OAAO,CAAC,CAAC;MAEZ,MAAMM,mBAA2B,GAAGX,uBAAM,CACvCC,EAAE,CAACO,iBAAiB,EAAEpB,QAAQ,CAAC,CAC/BwB,QAAQ,CAACjB,aAAa,EAAEF,YAAY,CAAC,CACrCY,OAAO,CAAC,CAAC;MAEZ,IAAIG,iBAAiB,IAAIG,mBAAmB,IAAIH,iBAAiB,GAAGxB,GAAG,EAAE;QACvE;MACF;MAEA,IAAI2B,mBAAmB,IAAIxB,KAAK,EAAE;QAChC,MAAM0B,cAAwB,GAAG,CAC/BF,mBAAmB,EACnBH,iBAAiB,GAAG,CAAC,CACtB;QAED,MAAMK,cAAc;QAEpBf,OAAO,GAAG,KAAK;MACjB;IACF;IAEA,MAAMgB,cAAsB,GAAGd,uBAAM,CAClCC,EAAE,CAACF,UAAU,EAAEX,QAAQ,CAAC,CACxBkB,GAAG,CAAC,CAAC,EAAEH,gBAAI,CAACC,IAAI,CAAC,CACjBC,OAAO,CAAC,CAAC;IAEZN,UAAU,GAAGe,cAAc;EAC7B;AACF","ignoreList":[]}
@@ -1,62 +1,56 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import moment from 'moment-timezone';
3
- import { Unit } from '../scheduling.types';
1
+ "use strict";
4
2
 
5
- /**
6
- * Generates next occurrence interval for x day of x week of month strategy
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getNextXDayOfXWeekOfMonth = getNextXDayOfXWeekOfMonth;
8
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
9
+ var _scheduling = require("../scheduling.types");
10
+ /**
11
+ * Generates next occurrence interval for x day of x week of month strategy
7
12
  */
8
- export function getNextXDayOfXWeekOfMonth(_ref) {
9
- var end = _ref.end,
10
- isInitial = _ref.isInitial,
11
- options = _ref.options,
12
- start = _ref.start,
13
- timezone = _ref.timezone;
14
- return /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
15
- var dayOfWeek, duration, frequency, weekOfMonth, durationUnit, durationValue, frequencyUnit, frequencyValue, dateCursor, mStartOfMonth, year, month, startDayOfMonth, weekOffset, day, date, nextOccurrenceEnd, nextOccurrenceStart, nextOccurrence, nextDateCursor;
16
- return _regeneratorRuntime.wrap(function (_context) {
17
- while (1) switch (_context.prev = _context.next) {
18
- case 0:
19
- dayOfWeek = options.dayOfWeek, duration = options.duration, frequency = options.frequency, weekOfMonth = options.weekOfMonth;
20
- durationUnit = duration.unit, durationValue = duration.value;
21
- frequencyUnit = frequency.unit, frequencyValue = frequency.value;
22
- dateCursor = isInitial ? moment.tz(start, timezone).startOf(Unit.Month).valueOf() : moment.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(Unit.Month).valueOf();
23
- case 1:
24
- if (!(dateCursor < end)) {
25
- _context.next = 4;
26
- break;
27
- }
28
- mStartOfMonth = moment.tz(dateCursor, timezone);
29
- year = mStartOfMonth.year();
30
- month = mStartOfMonth.month();
31
- startDayOfMonth = mStartOfMonth.isoWeekday();
32
- weekOffset = (weekOfMonth - 1) * 7;
33
- day = startDayOfMonth > dayOfWeek ? dayOfWeek - startDayOfMonth + 8 : dayOfWeek - startDayOfMonth + 1;
34
- date = weekOffset + day;
35
- nextOccurrenceEnd = moment.tz(timezone).year(year).month(month).date(date).add(1, Unit.Day).startOf(Unit.Day).valueOf();
36
- nextOccurrenceStart = moment.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
37
- if (!(nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end)) {
38
- _context.next = 2;
39
- break;
40
- }
41
- return _context.abrupt("return");
42
- case 2:
43
- if (!(nextOccurrenceStart >= start)) {
44
- _context.next = 3;
45
- break;
46
- }
47
- nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
48
- _context.next = 3;
49
- return nextOccurrence;
50
- case 3:
51
- nextDateCursor = moment.tz(dateCursor, timezone).add(1, Unit.Month).valueOf();
52
- dateCursor = nextDateCursor;
53
- _context.next = 1;
54
- break;
55
- case 4:
56
- case "end":
57
- return _context.stop();
58
- }
59
- }, _callee);
60
- })();
13
+ function* getNextXDayOfXWeekOfMonth({
14
+ end,
15
+ isInitial,
16
+ options,
17
+ start,
18
+ timezone
19
+ }) {
20
+ const {
21
+ dayOfWeek,
22
+ duration,
23
+ frequency,
24
+ weekOfMonth
25
+ } = options;
26
+ const {
27
+ unit: durationUnit,
28
+ value: durationValue
29
+ } = duration;
30
+ const {
31
+ unit: frequencyUnit,
32
+ value: frequencyValue
33
+ } = frequency;
34
+ let dateCursor = isInitial ? _momentTimezone.default.tz(start, timezone).startOf(_scheduling.Unit.Month).valueOf() : _momentTimezone.default.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(_scheduling.Unit.Month).valueOf();
35
+ while (dateCursor < end) {
36
+ const mStartOfMonth = _momentTimezone.default.tz(dateCursor, timezone);
37
+ const year = mStartOfMonth.year();
38
+ const month = mStartOfMonth.month();
39
+ const startDayOfMonth = mStartOfMonth.isoWeekday();
40
+ const weekOffset = (weekOfMonth - 1) * 7;
41
+ const day = startDayOfMonth > dayOfWeek ? dayOfWeek - startDayOfMonth + 8 : dayOfWeek - startDayOfMonth + 1;
42
+ const date = weekOffset + day;
43
+ const nextOccurrenceEnd = _momentTimezone.default.tz(timezone).year(year).month(month).date(date).add(1, _scheduling.Unit.Day).startOf(_scheduling.Unit.Day).valueOf();
44
+ const nextOccurrenceStart = _momentTimezone.default.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
45
+ if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {
46
+ return;
47
+ }
48
+ if (nextOccurrenceStart >= start) {
49
+ const nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
50
+ yield nextOccurrence;
51
+ }
52
+ const nextDateCursor = _momentTimezone.default.tz(dateCursor, timezone).add(1, _scheduling.Unit.Month).valueOf();
53
+ dateCursor = nextDateCursor;
54
+ }
61
55
  }
62
56
  //# sourceMappingURL=getNextXDayOfXWeekOfMonth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNextXDayOfXWeekOfMonth.js","names":["moment","Unit","getNextXDayOfXWeekOfMonth","_ref","end","isInitial","options","start","timezone","_regeneratorRuntime","mark","_callee","dayOfWeek","duration","frequency","weekOfMonth","durationUnit","durationValue","frequencyUnit","frequencyValue","dateCursor","mStartOfMonth","year","month","startDayOfMonth","weekOffset","day","date","nextOccurrenceEnd","nextOccurrenceStart","nextOccurrence","nextDateCursor","wrap","_context","prev","next","unit","value","tz","startOf","Month","valueOf","add","isoWeekday","Day","subtract","abrupt","stop"],"sources":["../../../src/scheduling/strategies/getNextXDayOfXWeekOfMonth.ts"],"sourcesContent":["import moment from 'moment-timezone'\n\nimport { GetNext, Interval, Unit } from '../scheduling.types'\n\n/**\n * Generates next occurrence interval for x day of x week of month strategy\n */\nexport function* getNextXDayOfXWeekOfMonth({\n end,\n isInitial,\n options,\n start,\n timezone,\n}: GetNext): IterableIterator<Interval> {\n const { dayOfWeek, duration, frequency, weekOfMonth } = options\n const { unit: durationUnit, value: durationValue } = duration\n const { unit: frequencyUnit, value: frequencyValue } = frequency\n\n let dateCursor: number = isInitial\n ? moment\n .tz(start, timezone)\n .startOf(Unit.Month)\n .valueOf()\n : moment\n .tz(start, timezone)\n .add(frequencyValue, frequencyUnit)\n .startOf(Unit.Month)\n .valueOf()\n\n while (dateCursor < end) {\n const mStartOfMonth = moment.tz(dateCursor, timezone)\n const year: number = mStartOfMonth.year()\n const month: number = mStartOfMonth.month()\n const startDayOfMonth: number = mStartOfMonth.isoWeekday()\n\n const weekOffset: number = (weekOfMonth - 1) * 7\n const day: number =\n startDayOfMonth > dayOfWeek\n ? dayOfWeek - startDayOfMonth + 8\n : dayOfWeek - startDayOfMonth + 1\n const date: number = weekOffset + day\n\n const nextOccurrenceEnd: number = moment\n .tz(timezone)\n .year(year)\n .month(month)\n .date(date)\n .add(1, Unit.Day)\n .startOf(Unit.Day)\n .valueOf()\n\n const nextOccurrenceStart: number = moment\n .tz(nextOccurrenceEnd, timezone)\n .subtract(durationValue, durationUnit)\n .valueOf()\n\n if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {\n return\n }\n\n if (nextOccurrenceStart >= start) {\n const nextOccurrence: Interval = [\n nextOccurrenceStart,\n nextOccurrenceEnd - 1,\n ]\n\n yield nextOccurrence\n }\n\n const nextDateCursor: number = moment\n .tz(dateCursor, timezone)\n .add(1, Unit.Month)\n .valueOf()\n\n dateCursor = nextDateCursor\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getNextXDayOfXWeekOfMonth.js","names":["_momentTimezone","_interopRequireDefault","require","_scheduling","getNextXDayOfXWeekOfMonth","end","isInitial","options","start","timezone","dayOfWeek","duration","frequency","weekOfMonth","unit","durationUnit","value","durationValue","frequencyUnit","frequencyValue","dateCursor","moment","tz","startOf","Unit","Month","valueOf","add","mStartOfMonth","year","month","startDayOfMonth","isoWeekday","weekOffset","day","date","nextOccurrenceEnd","Day","nextOccurrenceStart","subtract","nextOccurrence","nextDateCursor"],"sources":["../../../src/scheduling/strategies/getNextXDayOfXWeekOfMonth.ts"],"sourcesContent":["import moment from 'moment-timezone'\r\n\r\nimport { GetNext, Interval, Unit } from '../scheduling.types'\r\n\r\n/**\r\n * Generates next occurrence interval for x day of x week of month strategy\r\n */\r\nexport function* getNextXDayOfXWeekOfMonth({\r\n end,\r\n isInitial,\r\n options,\r\n start,\r\n timezone,\r\n}: GetNext): IterableIterator<Interval> {\r\n const { dayOfWeek, duration, frequency, weekOfMonth } = options\r\n const { unit: durationUnit, value: durationValue } = duration\r\n const { unit: frequencyUnit, value: frequencyValue } = frequency\r\n\r\n let dateCursor: number = isInitial\r\n ? moment\r\n .tz(start, timezone)\r\n .startOf(Unit.Month)\r\n .valueOf()\r\n : moment\r\n .tz(start, timezone)\r\n .add(frequencyValue, frequencyUnit)\r\n .startOf(Unit.Month)\r\n .valueOf()\r\n\r\n while (dateCursor < end) {\r\n const mStartOfMonth = moment.tz(dateCursor, timezone)\r\n const year: number = mStartOfMonth.year()\r\n const month: number = mStartOfMonth.month()\r\n const startDayOfMonth: number = mStartOfMonth.isoWeekday()\r\n\r\n const weekOffset: number = (weekOfMonth - 1) * 7\r\n const day: number =\r\n startDayOfMonth > dayOfWeek\r\n ? dayOfWeek - startDayOfMonth + 8\r\n : dayOfWeek - startDayOfMonth + 1\r\n const date: number = weekOffset + day\r\n\r\n const nextOccurrenceEnd: number = moment\r\n .tz(timezone)\r\n .year(year)\r\n .month(month)\r\n .date(date)\r\n .add(1, Unit.Day)\r\n .startOf(Unit.Day)\r\n .valueOf()\r\n\r\n const nextOccurrenceStart: number = moment\r\n .tz(nextOccurrenceEnd, timezone)\r\n .subtract(durationValue, durationUnit)\r\n .valueOf()\r\n\r\n if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {\r\n return\r\n }\r\n\r\n if (nextOccurrenceStart >= start) {\r\n const nextOccurrence: Interval = [\r\n nextOccurrenceStart,\r\n nextOccurrenceEnd - 1,\r\n ]\r\n\r\n yield nextOccurrence\r\n }\r\n\r\n const nextDateCursor: number = moment\r\n .tz(dateCursor, timezone)\r\n .add(1, Unit.Month)\r\n .valueOf()\r\n\r\n dateCursor = nextDateCursor\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACO,UAAUE,yBAAyBA,CAAC;EACzCC,GAAG;EACHC,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC;AACO,CAAC,EAA8B;EACtC,MAAM;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAY,CAAC,GAAGN,OAAO;EAC/D,MAAM;IAAEO,IAAI,EAAEC,YAAY;IAAEC,KAAK,EAAEC;EAAc,CAAC,GAAGN,QAAQ;EAC7D,MAAM;IAAEG,IAAI,EAAEI,aAAa;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAGP,SAAS;EAEhE,IAAIQ,UAAkB,GAAGd,SAAS,GAC9Be,uBAAM,CACHC,EAAE,CAACd,KAAK,EAAEC,QAAQ,CAAC,CACnBc,OAAO,CAACC,gBAAI,CAACC,KAAK,CAAC,CACnBC,OAAO,CAAC,CAAC,GACZL,uBAAM,CACHC,EAAE,CAACd,KAAK,EAAEC,QAAQ,CAAC,CACnBkB,GAAG,CAACR,cAAc,EAAED,aAAa,CAAC,CAClCK,OAAO,CAACC,gBAAI,CAACC,KAAK,CAAC,CACnBC,OAAO,CAAC,CAAC;EAEhB,OAAON,UAAU,GAAGf,GAAG,EAAE;IACvB,MAAMuB,aAAa,GAAGP,uBAAM,CAACC,EAAE,CAACF,UAAU,EAAEX,QAAQ,CAAC;IACrD,MAAMoB,IAAY,GAAGD,aAAa,CAACC,IAAI,CAAC,CAAC;IACzC,MAAMC,KAAa,GAAGF,aAAa,CAACE,KAAK,CAAC,CAAC;IAC3C,MAAMC,eAAuB,GAAGH,aAAa,CAACI,UAAU,CAAC,CAAC;IAE1D,MAAMC,UAAkB,GAAG,CAACpB,WAAW,GAAG,CAAC,IAAI,CAAC;IAChD,MAAMqB,GAAW,GACfH,eAAe,GAAGrB,SAAS,GACvBA,SAAS,GAAGqB,eAAe,GAAG,CAAC,GAC/BrB,SAAS,GAAGqB,eAAe,GAAG,CAAC;IACrC,MAAMI,IAAY,GAAGF,UAAU,GAAGC,GAAG;IAErC,MAAME,iBAAyB,GAAGf,uBAAM,CACrCC,EAAE,CAACb,QAAQ,CAAC,CACZoB,IAAI,CAACA,IAAI,CAAC,CACVC,KAAK,CAACA,KAAK,CAAC,CACZK,IAAI,CAACA,IAAI,CAAC,CACVR,GAAG,CAAC,CAAC,EAAEH,gBAAI,CAACa,GAAG,CAAC,CAChBd,OAAO,CAACC,gBAAI,CAACa,GAAG,CAAC,CACjBX,OAAO,CAAC,CAAC;IAEZ,MAAMY,mBAA2B,GAAGjB,uBAAM,CACvCC,EAAE,CAACc,iBAAiB,EAAE3B,QAAQ,CAAC,CAC/B8B,QAAQ,CAACtB,aAAa,EAAEF,YAAY,CAAC,CACrCW,OAAO,CAAC,CAAC;IAEZ,IAAIU,iBAAiB,IAAIE,mBAAmB,IAAIF,iBAAiB,GAAG/B,GAAG,EAAE;MACvE;IACF;IAEA,IAAIiC,mBAAmB,IAAI9B,KAAK,EAAE;MAChC,MAAMgC,cAAwB,GAAG,CAC/BF,mBAAmB,EACnBF,iBAAiB,GAAG,CAAC,CACtB;MAED,MAAMI,cAAc;IACtB;IAEA,MAAMC,cAAsB,GAAGpB,uBAAM,CAClCC,EAAE,CAACF,UAAU,EAAEX,QAAQ,CAAC,CACxBkB,GAAG,CAAC,CAAC,EAAEH,gBAAI,CAACC,KAAK,CAAC,CAClBC,OAAO,CAAC,CAAC;IAEZN,UAAU,GAAGqB,cAAc;EAC7B;AACF","ignoreList":[]}
@@ -1,8 +1,83 @@
1
- export * from './getNext';
2
- export * from './getNextExactDateOfMonth';
3
- export * from './getNextLastDayOfMonth';
4
- export * from './getNextLastWeekdayOfMonth';
5
- export * from './getNextNoRepeat';
6
- export * from './getNextWeekday';
7
- export * from './getNextXDayOfXWeekOfMonth';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _getNext = require("./getNext");
7
+ Object.keys(_getNext).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _getNext[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _getNext[key];
14
+ }
15
+ });
16
+ });
17
+ var _getNextExactDateOfMonth = require("./getNextExactDateOfMonth");
18
+ Object.keys(_getNextExactDateOfMonth).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _getNextExactDateOfMonth[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _getNextExactDateOfMonth[key];
25
+ }
26
+ });
27
+ });
28
+ var _getNextLastDayOfMonth = require("./getNextLastDayOfMonth");
29
+ Object.keys(_getNextLastDayOfMonth).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _getNextLastDayOfMonth[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _getNextLastDayOfMonth[key];
36
+ }
37
+ });
38
+ });
39
+ var _getNextLastWeekdayOfMonth = require("./getNextLastWeekdayOfMonth");
40
+ Object.keys(_getNextLastWeekdayOfMonth).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _getNextLastWeekdayOfMonth[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _getNextLastWeekdayOfMonth[key];
47
+ }
48
+ });
49
+ });
50
+ var _getNextNoRepeat = require("./getNextNoRepeat");
51
+ Object.keys(_getNextNoRepeat).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _getNextNoRepeat[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _getNextNoRepeat[key];
58
+ }
59
+ });
60
+ });
61
+ var _getNextWeekday = require("./getNextWeekday");
62
+ Object.keys(_getNextWeekday).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _getNextWeekday[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _getNextWeekday[key];
69
+ }
70
+ });
71
+ });
72
+ var _getNextXDayOfXWeekOfMonth = require("./getNextXDayOfXWeekOfMonth");
73
+ Object.keys(_getNextXDayOfXWeekOfMonth).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _getNextXDayOfXWeekOfMonth[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function () {
79
+ return _getNextXDayOfXWeekOfMonth[key];
80
+ }
81
+ });
82
+ });
8
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/scheduling/strategies/index.ts"],"sourcesContent":["export * from './getNext'\nexport * from './getNextExactDateOfMonth'\nexport * from './getNextLastDayOfMonth'\nexport * from './getNextLastWeekdayOfMonth'\nexport * from './getNextNoRepeat'\nexport * from './getNextWeekday'\nexport * from './getNextXDayOfXWeekOfMonth'\n"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,2BAA2B;AACzC,cAAc,yBAAyB;AACvC,cAAc,6BAA6B;AAC3C,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,6BAA6B","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_getNext","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getNextExactDateOfMonth","_getNextLastDayOfMonth","_getNextLastWeekdayOfMonth","_getNextNoRepeat","_getNextWeekday","_getNextXDayOfXWeekOfMonth"],"sources":["../../../src/scheduling/strategies/index.ts"],"sourcesContent":["export * from './getNext'\r\nexport * from './getNextExactDateOfMonth'\r\nexport * from './getNextLastDayOfMonth'\r\nexport * from './getNextLastWeekdayOfMonth'\r\nexport * from './getNextNoRepeat'\r\nexport * from './getNextWeekday'\r\nexport * from './getNextXDayOfXWeekOfMonth'\r\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,17 @@
1
- export * from './schema';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _schema = require("./schema");
7
+ Object.keys(_schema).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _schema[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _schema[key];
14
+ }
15
+ });
16
+ });
2
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/schema/index.ts"],"sourcesContent":["export * from './schema'\n"],"mappings":"AAAA,cAAc,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_schema","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../src/schema/index.ts"],"sourcesContent":["export * from './schema'\r\n"],"mappings":";;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,39 +1,33 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _regeneratorRuntime from "@babel/runtime/regenerator";
3
- import { ValidationError } from '../errors';
4
- export { ValidationError };
5
- var defaultValidateOptions = {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ValidationError", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _errors.ValidationError;
10
+ }
11
+ });
12
+ exports.default = void 0;
13
+ exports.validate = validate;
14
+ var _errors = require("../errors");
15
+ const defaultValidateOptions = {
6
16
  strict: true,
7
17
  stripUnknown: true
8
18
  };
9
- export function validate(_x) {
10
- return _validate.apply(this, arguments);
19
+ async function validate({
20
+ schema,
21
+ data,
22
+ options = defaultValidateOptions
23
+ }) {
24
+ try {
25
+ return await schema.validate(data, options);
26
+ } catch (err) {
27
+ throw new _errors.ValidationError({
28
+ data: err
29
+ });
30
+ }
11
31
  }
12
- function _validate() {
13
- _validate = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
14
- var schema, data, _ref$options, options, _t;
15
- return _regeneratorRuntime.wrap(function (_context) {
16
- while (1) switch (_context.prev = _context.next) {
17
- case 0:
18
- schema = _ref.schema, data = _ref.data, _ref$options = _ref.options, options = _ref$options === void 0 ? defaultValidateOptions : _ref$options;
19
- _context.prev = 1;
20
- _context.next = 2;
21
- return schema.validate(data, options);
22
- case 2:
23
- return _context.abrupt("return", _context.sent);
24
- case 3:
25
- _context.prev = 3;
26
- _t = _context["catch"](1);
27
- throw new ValidationError({
28
- data: _t
29
- });
30
- case 4:
31
- case "end":
32
- return _context.stop();
33
- }
34
- }, _callee, null, [[1, 3]]);
35
- }));
36
- return _validate.apply(this, arguments);
37
- }
38
- export default validate;
32
+ var _default = exports.default = validate;
39
33
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":["ValidationError","defaultValidateOptions","strict","stripUnknown","validate","_x","_validate","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","schema","data","_ref$options","options","_t","wrap","_context","prev","next","abrupt","sent","stop"],"sources":["../../src/schema/schema.ts"],"sourcesContent":["import { Schema, ValidateOptions } from 'yup'\nimport { ValidationError } from '../errors'\n\nexport { ValidationError }\n\ninterface Validate {\n data: object\n options?: ValidateOptions\n schema: Schema<any>\n}\n\nconst defaultValidateOptions = {\n strict: true,\n stripUnknown: true,\n}\n\nexport async function validate({\n schema,\n data,\n options = defaultValidateOptions,\n}: Validate) {\n try {\n return await schema.validate(data, options)\n } catch (err) {\n throw new ValidationError({\n data: err,\n })\n }\n}\n\nexport default validate\n"],"mappings":";;AACA,SAASA,eAAe,QAAQ,WAAW;AAE3C,SAASA,eAAe;AAQxB,IAAMC,sBAAsB,GAAG;EAC7BC,MAAM,EAAE,IAAI;EACZC,YAAY,EAAE;AAChB,CAAC;AAED,gBAAsBC,QAAQA,CAAAC,EAAA;EAAA,OAAAC,SAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAY7B,SAAAF,UAAA;EAAAA,SAAA,GAAAG,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAZM,SAAAC,QAAAC,IAAA;IAAA,IAAAC,MAAA,EAAAC,IAAA,EAAAC,YAAA,EAAAC,OAAA,EAAAC,EAAA;IAAA,OAAAR,mBAAA,CAAAS,IAAA,WAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACLR,MAAM,GAAAD,IAAA,CAANC,MAAM,EACNC,IAAI,GAAAF,IAAA,CAAJE,IAAI,EAAAC,YAAA,GAAAH,IAAA,CACJI,OAAO,EAAPA,OAAO,GAAAD,YAAA,cAAGf,sBAAsB,GAAAe,YAAA;UAAAI,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAE,IAAA;UAAA,OAGjBR,MAAM,CAACV,QAAQ,CAACW,IAAI,EAAEE,OAAO,CAAC;QAAA;UAAA,OAAAG,QAAA,CAAAG,MAAA,WAAAH,QAAA,CAAAI,IAAA;QAAA;UAAAJ,QAAA,CAAAC,IAAA;UAAAH,EAAA,GAAAE,QAAA;UAAA,MAErC,IAAIpB,eAAe,CAAC;YACxBe,IAAI,EAAAG;UACN,CAAC,CAAC;QAAA;QAAA;UAAA,OAAAE,QAAA,CAAAK,IAAA;MAAA;IAAA,GAAAb,OAAA;EAAA,CAEL;EAAA,OAAAN,SAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,eAAeJ,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"schema.js","names":["_errors","require","defaultValidateOptions","strict","stripUnknown","validate","schema","data","options","err","ValidationError","_default","exports","default"],"sources":["../../src/schema/schema.ts"],"sourcesContent":["import { Schema, ValidateOptions } from 'yup'\r\nimport { ValidationError } from '../errors'\r\n\r\nexport { ValidationError }\r\n\r\ninterface Validate {\r\n data: object\r\n options?: ValidateOptions\r\n schema: Schema<any>\r\n}\r\n\r\nconst defaultValidateOptions = {\r\n strict: true,\r\n stripUnknown: true,\r\n}\r\n\r\nexport async function validate({\r\n schema,\r\n data,\r\n options = defaultValidateOptions,\r\n}: Validate) {\r\n try {\r\n return await schema.validate(data, options)\r\n } catch (err) {\r\n throw new ValidationError({\r\n data: err,\r\n })\r\n }\r\n}\r\n\r\nexport default validate\r\n"],"mappings":";;;;;;;;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAUA,MAAMC,sBAAsB,GAAG;EAC7BC,MAAM,EAAE,IAAI;EACZC,YAAY,EAAE;AAChB,CAAC;AAEM,eAAeC,QAAQA,CAAC;EAC7BC,MAAM;EACNC,IAAI;EACJC,OAAO,GAAGN;AACF,CAAC,EAAE;EACX,IAAI;IACF,OAAO,MAAMI,MAAM,CAACD,QAAQ,CAACE,IAAI,EAAEC,OAAO,CAAC;EAC7C,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAM,IAAIC,uBAAe,CAAC;MACxBH,IAAI,EAAEE;IACR,CAAC,CAAC;EACJ;AACF;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcR,QAAQ","ignoreList":[]}
@@ -1,10 +1,12 @@
1
- /**
2
- * Script to generate service hour definitions which is otherwise tedious to
3
- * calculate as we store them in millisecond offsets
4
- * Example Input: TUE 08:00 - TUE 17:00
1
+ "use strict";
2
+
3
+ /**
4
+ * Script to generate service hour definitions which is otherwise tedious to
5
+ * calculate as we store them in millisecond offsets
6
+ * Example Input: TUE 08:00 - TUE 17:00
5
7
  */
6
8
 
7
- var days = {
9
+ const days = {
8
10
  MON: 0,
9
11
  TUE: 1,
10
12
  WED: 2,
@@ -15,50 +17,50 @@ var days = {
15
17
  MON2: 7,
16
18
  TUE2: 8
17
19
  };
18
- var MINUTES = 60000;
19
- var HOURS = 60 * MINUTES;
20
- var DAYS = 24 * HOURS;
21
- var input = process.argv[2];
20
+ const MINUTES = 60000;
21
+ const HOURS = 60 * MINUTES;
22
+ const DAYS = 24 * HOURS;
23
+ const input = process.argv[2];
22
24
  if (!input) {
23
25
  throw new Error('invalid input');
24
26
  }
25
- var parts = input.split(' - ');
27
+ const parts = input.split(' - ');
26
28
  if (parts.length < 2) {
27
29
  throw new Error('invalid input');
28
30
  }
29
- var startOffset = parse(parts[0]);
30
- var endOffset = parse(parts[1]);
31
- var duration = endOffset - startOffset;
32
- var output = {
31
+ const startOffset = parse(parts[0]);
32
+ const endOffset = parse(parts[1]);
33
+ const duration = endOffset - startOffset;
34
+ const output = {
33
35
  type: 'DEFAULT',
34
36
  start: startOffset,
35
37
  end: endOffset,
36
- duration: duration,
38
+ duration,
37
39
  description: input
38
40
  };
39
41
  console.dir(output, {
40
42
  depth: null
41
43
  });
42
44
  function parse(def) {
43
- var parts = def.split(' ');
45
+ const parts = def.split(' ');
44
46
  if (parts.length < 2) {
45
47
  throw new Error('invalid parts');
46
48
  }
47
- var day = days[parts[0]];
48
- var time = parts[1];
49
+ const day = days[parts[0]];
50
+ const time = parts[1];
49
51
  if (day === undefined || day === null || !time) {
50
52
  throw new Error('invalid date/time');
51
53
  }
52
- var timeParts = time.split(':');
53
- var hour = timeParts[0];
54
- var minute = timeParts[1];
54
+ const timeParts = time.split(':');
55
+ const hour = timeParts[0];
56
+ const minute = timeParts[1];
55
57
  if (!hour || !minute) {
56
58
  throw new Error('invalid end time');
57
59
  }
58
60
 
59
61
  // NOTE this isn't taking into account actual end of time if you target the
60
62
  // end of a minute, e.g. 23:59
61
- var offset = day * DAYS + hour * HOURS + minute * MINUTES;
63
+ const offset = day * DAYS + hour * HOURS + minute * MINUTES;
62
64
  return offset;
63
65
  }
64
66
  //# sourceMappingURL=calculate-hours.js.map