@lighthouse/common 6.5.0 → 6.6.0-canary.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 (242) hide show
  1. package/dist/constants.js +7 -13
  2. package/dist/errors/DomainError.js +2 -4
  3. package/dist/errors/ValidationError.js +0 -8
  4. package/dist/errors/index.js +1 -5
  5. package/dist/helpers/build-fetch-url/index.js +0 -5
  6. package/dist/helpers/fetch-image/index.js +16 -32
  7. package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +7 -40
  8. package/dist/helpers/fetch-image-for-web/index.js +0 -9
  9. package/dist/helpers/fetch-lighthouse-logo/index.js +2 -13
  10. package/dist/helpers/floatify/index.js +0 -1
  11. package/dist/helpers/get-assignees-full-names/index.js +0 -4
  12. package/dist/helpers/get-audit-entry-details/index.js +0 -3
  13. package/dist/helpers/get-audit-items-data/index.js +2 -6
  14. package/dist/helpers/get-geometry-geocoded-string/index.js +0 -3
  15. package/dist/helpers/get-issue-details/index.js +0 -7
  16. package/dist/helpers/get-job-details/index.js +0 -7
  17. package/dist/helpers/get-location-reference/index.js +18 -21
  18. package/dist/helpers/get-pretty-duration/index.js +0 -5
  19. package/dist/helpers/get-reference-details/index.js +0 -4
  20. package/dist/helpers/get-status-details/index.js +2 -9
  21. package/dist/helpers/get-task-entry-details/index.js +0 -3
  22. package/dist/helpers/get-timezone-abbr/index.js +0 -4
  23. package/dist/helpers/get-timezone-datetime/index.js +0 -5
  24. package/dist/helpers/get-user-full-name/index.js +0 -1
  25. package/dist/helpers/get-value-as-percentage/index.js +0 -1
  26. package/dist/helpers/image-validators/index.js +8 -9
  27. package/dist/helpers/index.js +16 -33
  28. package/dist/images/index.js +5 -9
  29. package/dist/index.js +4 -20
  30. package/dist/pdf/activity-report/index.js +41 -62
  31. package/dist/pdf/audit/index.js +0 -14
  32. package/dist/pdf/helpers/build-audit-content/index.js +4 -15
  33. package/dist/pdf/helpers/build-audit-follow-ups/index.js +4 -14
  34. package/dist/pdf/helpers/build-location-scans-content/index.js +4 -17
  35. package/dist/pdf/helpers/build-template-content/index.js +5 -14
  36. package/dist/pdf/helpers/default-footer/index.js +2 -3
  37. package/dist/pdf/helpers/default-header/index.js +0 -2
  38. package/dist/pdf/helpers/default-styles/index.js +2 -3
  39. package/dist/pdf/helpers/fields/index.js +21 -51
  40. package/dist/pdf/helpers/format-location-address/index.js +0 -3
  41. package/dist/pdf/helpers/generate-definition/index.js +0 -12
  42. package/dist/pdf/helpers/horizontal-line/index.js +0 -1
  43. package/dist/pdf/helpers/html-transformer/index.js +11 -23
  44. package/dist/pdf/helpers/index.js +40 -55
  45. package/dist/pdf/helpers/parse-value/index.js +2 -6
  46. package/dist/pdf/helpers/table/index.js +13 -31
  47. package/dist/pdf/helpers/text/index.js +0 -1
  48. package/dist/pdf/icons/index.js +3 -5
  49. package/dist/pdf/index.js +4 -10
  50. package/dist/pdf/issue/index.js +17 -16
  51. package/dist/pdf/job/index.js +1 -13
  52. package/dist/pdf/shift-report/emptyFixtures.js +4 -6
  53. package/dist/pdf/shift-report/index.js +2 -25
  54. package/dist/pdf/task/index.js +0 -13
  55. package/dist/scheduling/generators/index.js +0 -6
  56. package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +1 -6
  57. package/dist/scheduling/generators/scheduleIntervalsGenerator.js +0 -5
  58. package/dist/scheduling/generators/serviceIntervalsGenerator.js +13 -27
  59. package/dist/scheduling/helpers/convertToTimezone.js +1 -6
  60. package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +3 -9
  61. package/dist/scheduling/helpers/generateRepeatingSchedule.js +11 -18
  62. package/dist/scheduling/helpers/generateScheduleEnd.js +2 -8
  63. package/dist/scheduling/helpers/hasValidStartAndEnd.js +0 -6
  64. package/dist/scheduling/helpers/index.js +0 -28
  65. package/dist/scheduling/helpers/intervalCovers.js +0 -1
  66. package/dist/scheduling/helpers/intervalIntersectsEnd.js +0 -1
  67. package/dist/scheduling/helpers/intervalIntersectsStart.js +0 -1
  68. package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +1 -3
  69. package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +0 -3
  70. package/dist/scheduling/helpers/intervalOutside.js +0 -1
  71. package/dist/scheduling/helpers/intervalWithin.js +0 -1
  72. package/dist/scheduling/helpers/mergeIntervals.js +0 -4
  73. package/dist/scheduling/helpers/splitIntervals.js +0 -3
  74. package/dist/scheduling/index.js +0 -6
  75. package/dist/scheduling/scheduling.types.js +10 -18
  76. package/dist/scheduling/strategies/getNext.js +2 -13
  77. package/dist/scheduling/strategies/getNextExactDateOfMonth.js +0 -12
  78. package/dist/scheduling/strategies/getNextLastDayOfMonth.js +0 -10
  79. package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +0 -11
  80. package/dist/scheduling/strategies/getNextNoRepeat.js +0 -7
  81. package/dist/scheduling/strategies/getNextWeekday.js +0 -10
  82. package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +0 -12
  83. package/dist/scheduling/strategies/index.js +0 -14
  84. package/dist/schema/index.js +0 -2
  85. package/dist/schema/schema.js +2 -7
  86. package/dist/service-hours/__helpers__/calculate-hours.js +4 -13
  87. package/dist/service-hours/__helpers__/isOpen.js +0 -9
  88. package/dist/service-hours/index.js +0 -4
  89. package/dist/service-hours/schema.js +20 -43
  90. package/lib/constants.js.map +1 -1
  91. package/lib/errors/DomainError.js +11 -47
  92. package/lib/errors/DomainError.js.map +1 -1
  93. package/lib/errors/ValidationError.js +15 -52
  94. package/lib/errors/ValidationError.js.map +1 -1
  95. package/lib/errors/index.js.map +1 -1
  96. package/lib/helpers/build-fetch-url/index.js +14 -20
  97. package/lib/helpers/build-fetch-url/index.js.map +1 -1
  98. package/lib/helpers/fetch-image/index.js +20 -27
  99. package/lib/helpers/fetch-image/index.js.map +1 -1
  100. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +187 -239
  101. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
  102. package/lib/helpers/fetch-image-for-web/index.js +50 -66
  103. package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
  104. package/lib/helpers/fetch-lighthouse-logo/index.js +47 -59
  105. package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
  106. package/lib/helpers/floatify/index.js.map +1 -1
  107. package/lib/helpers/get-assignees-full-names/index.js +0 -1
  108. package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
  109. package/lib/helpers/get-audit-entry-details/index.js +8 -8
  110. package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
  111. package/lib/helpers/get-audit-items-data/index.js +16 -19
  112. package/lib/helpers/get-audit-items-data/index.js.map +1 -1
  113. package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
  114. package/lib/helpers/get-issue-details/index.js +11 -11
  115. package/lib/helpers/get-issue-details/index.js.map +1 -1
  116. package/lib/helpers/get-job-details/index.js +12 -12
  117. package/lib/helpers/get-job-details/index.js.map +1 -1
  118. package/lib/helpers/get-location-reference/index.js +32 -36
  119. package/lib/helpers/get-location-reference/index.js.map +1 -1
  120. package/lib/helpers/get-pretty-duration/index.js +0 -4
  121. package/lib/helpers/get-pretty-duration/index.js.map +1 -1
  122. package/lib/helpers/get-reference-details/index.js +1 -3
  123. package/lib/helpers/get-reference-details/index.js.map +1 -1
  124. package/lib/helpers/get-status-details/index.js +0 -4
  125. package/lib/helpers/get-status-details/index.js.map +1 -1
  126. package/lib/helpers/get-task-entry-details/index.js +5 -5
  127. package/lib/helpers/get-task-entry-details/index.js.map +1 -1
  128. package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
  129. package/lib/helpers/get-timezone-datetime/index.js +6 -6
  130. package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
  131. package/lib/helpers/get-user-full-name/index.js.map +1 -1
  132. package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
  133. package/lib/helpers/image-validators/index.js +8 -7
  134. package/lib/helpers/image-validators/index.js.map +1 -1
  135. package/lib/helpers/index.js.map +1 -1
  136. package/lib/images/index.js.map +1 -1
  137. package/lib/index.js.map +1 -1
  138. package/lib/pdf/activity-report/index.js +360 -416
  139. package/lib/pdf/activity-report/index.js.map +1 -1
  140. package/lib/pdf/audit/index.js +25 -36
  141. package/lib/pdf/audit/index.js.map +1 -1
  142. package/lib/pdf/fonts/index.js.map +1 -1
  143. package/lib/pdf/helpers/build-audit-content/index.js +3 -5
  144. package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
  145. package/lib/pdf/helpers/build-audit-follow-ups/index.js +5 -12
  146. package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
  147. package/lib/pdf/helpers/build-location-scans-content/index.js +4 -9
  148. package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
  149. package/lib/pdf/helpers/build-template-content/index.js +7 -9
  150. package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
  151. package/lib/pdf/helpers/default-footer/index.js +9 -8
  152. package/lib/pdf/helpers/default-footer/index.js.map +1 -1
  153. package/lib/pdf/helpers/default-header/index.js +5 -5
  154. package/lib/pdf/helpers/default-header/index.js.map +1 -1
  155. package/lib/pdf/helpers/default-styles/index.js.map +1 -1
  156. package/lib/pdf/helpers/fields/index.js +48 -81
  157. package/lib/pdf/helpers/fields/index.js.map +1 -1
  158. package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
  159. package/lib/pdf/helpers/generate-definition/index.js +22 -29
  160. package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
  161. package/lib/pdf/helpers/horizontal-line/index.js +1 -1
  162. package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
  163. package/lib/pdf/helpers/html-transformer/index.js +19 -30
  164. package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
  165. package/lib/pdf/helpers/index.js.map +1 -1
  166. package/lib/pdf/helpers/parse-value/index.js +2 -4
  167. package/lib/pdf/helpers/parse-value/index.js.map +1 -1
  168. package/lib/pdf/helpers/table/index.js +78 -84
  169. package/lib/pdf/helpers/table/index.js.map +1 -1
  170. package/lib/pdf/helpers/text/index.js +2 -5
  171. package/lib/pdf/helpers/text/index.js.map +1 -1
  172. package/lib/pdf/icons/index.js.map +1 -1
  173. package/lib/pdf/index.js.map +1 -1
  174. package/lib/pdf/issue/index.js +36 -30
  175. package/lib/pdf/issue/index.js.map +1 -1
  176. package/lib/pdf/job/index.js +12 -19
  177. package/lib/pdf/job/index.js.map +1 -1
  178. package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
  179. package/lib/pdf/shift-report/index.js +308 -374
  180. package/lib/pdf/shift-report/index.js.map +1 -1
  181. package/lib/pdf/task/index.js +11 -19
  182. package/lib/pdf/task/index.js.map +1 -1
  183. package/lib/scheduling/generators/index.js.map +1 -1
  184. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +27 -38
  185. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
  186. package/lib/scheduling/generators/scheduleIntervalsGenerator.js +19 -30
  187. package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
  188. package/lib/scheduling/generators/serviceIntervalsGenerator.js +139 -181
  189. package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
  190. package/lib/scheduling/helpers/convertToTimezone.js +1 -1
  191. package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
  192. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +84 -124
  193. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
  194. package/lib/scheduling/helpers/generateRepeatingSchedule.js +107 -175
  195. package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
  196. package/lib/scheduling/helpers/generateScheduleEnd.js +6 -6
  197. package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
  198. package/lib/scheduling/helpers/hasValidStartAndEnd.js +1 -2
  199. package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
  200. package/lib/scheduling/helpers/index.js.map +1 -1
  201. package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
  202. package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
  203. package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
  204. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +1 -0
  205. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
  206. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +1 -1
  207. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
  208. package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
  209. package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
  210. package/lib/scheduling/helpers/mergeIntervals.js +0 -3
  211. package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
  212. package/lib/scheduling/helpers/splitIntervals.js +1 -1
  213. package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
  214. package/lib/scheduling/index.js.map +1 -1
  215. package/lib/scheduling/scheduling.types.js +9 -14
  216. package/lib/scheduling/scheduling.types.js.map +1 -1
  217. package/lib/scheduling/strategies/getNext.js +22 -30
  218. package/lib/scheduling/strategies/getNext.js.map +1 -1
  219. package/lib/scheduling/strategies/getNextExactDateOfMonth.js +22 -31
  220. package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
  221. package/lib/scheduling/strategies/getNextLastDayOfMonth.js +21 -28
  222. package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
  223. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +21 -28
  224. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
  225. package/lib/scheduling/strategies/getNextNoRepeat.js +15 -23
  226. package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
  227. package/lib/scheduling/strategies/getNextWeekday.js +43 -78
  228. package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
  229. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +21 -28
  230. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
  231. package/lib/scheduling/strategies/index.js.map +1 -1
  232. package/lib/schema/index.js.map +1 -1
  233. package/lib/schema/schema.js +22 -30
  234. package/lib/schema/schema.js.map +1 -1
  235. package/lib/service-hours/__helpers__/calculate-hours.js +4 -13
  236. package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
  237. package/lib/service-hours/__helpers__/isOpen.js +3 -7
  238. package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
  239. package/lib/service-hours/index.js.map +1 -1
  240. package/lib/service-hours/schema.js +21 -36
  241. package/lib/service-hours/schema.js.map +1 -1
  242. package/package.json +1 -1
@@ -1,140 +1,100 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
-
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
3
  var _marked = /*#__PURE__*/_regeneratorRuntime.mark(generateNonRepeatingSchedule);
5
-
4
+ 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; } } }; }
5
+ 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; } }
6
+ 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; }
6
7
  import { isEmpty, first, last } from 'lodash/fp';
7
8
  import { hasValidStartAndEnd } from '.';
8
9
  import { IntervalTypes } from '../scheduling.types';
9
10
  import { occurrenceIntervalsGenerator, serviceIntervalsGenerator } from '../generators';
11
+
10
12
  /**
11
13
  * Generates non repeating schedule service and occurrence intervals
12
14
  */
13
-
14
15
  export function generateNonRepeatingSchedule(props) {
15
- var end, serviceHours, start, strategy, isStartAndEndValid, serviceIntervalSequence, hours, timezone, hasServiceHours, intervals, serviceIntervals, _i, _serviceIntervals, serviceInterval, occurrenceIntervalsSequence, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, occurrenceInterval;
16
-
17
- return _regeneratorRuntime.wrap(function generateNonRepeatingSchedule$(_context) {
18
- while (1) {
19
- switch (_context.prev = _context.next) {
20
- case 0:
21
- end = props.end, serviceHours = props.serviceHours, start = props.start, strategy = props.strategy;
22
- isStartAndEndValid = hasValidStartAndEnd({
23
- end: end,
24
- start: start
25
- });
26
-
27
- if (isStartAndEndValid) {
28
- _context.next = 4;
29
- break;
30
- }
31
-
32
- return _context.abrupt("return", []);
33
-
34
- case 4:
35
- serviceIntervalSequence = serviceIntervalsGenerator({
36
- end: end,
37
- serviceHours: serviceHours,
38
- start: start
39
- });
40
- hours = serviceHours.hours, timezone = serviceHours.timezone;
41
- hasServiceHours = !isEmpty(hours);
42
- intervals = _toConsumableArray(serviceIntervalSequence); // NOTE: when non repeating and has service hours the service interval is
43
- // from the first and last service interval otherwise from the start and end
44
-
45
- serviceIntervals = !hasServiceHours ? [[start, end]] : !isEmpty(intervals) ? [[first(intervals)[0], last(intervals)[1]]] : [];
46
- _i = 0, _serviceIntervals = serviceIntervals;
47
-
48
- case 10:
49
- if (!(_i < _serviceIntervals.length)) {
50
- _context.next = 44;
51
- break;
52
- }
53
-
54
- serviceInterval = _serviceIntervals[_i];
55
- _context.next = 14;
56
- return {
57
- interval: serviceInterval,
58
- type: IntervalTypes.Service
59
- };
60
-
61
- case 14:
62
- occurrenceIntervalsSequence = occurrenceIntervalsGenerator({
63
- // NOTE: as we only have one interval we should always set isInitial to
64
- // true
65
- isInitial: true,
66
- serviceInterval: serviceInterval,
67
- strategy: strategy,
68
- timezone: timezone
69
- });
70
- _iteratorNormalCompletion = true;
71
- _didIteratorError = false;
72
- _iteratorError = undefined;
73
- _context.prev = 18;
74
- _iterator = occurrenceIntervalsSequence[Symbol.iterator]();
75
-
76
- case 20:
77
- if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
78
- _context.next = 27;
79
- break;
80
- }
81
-
82
- occurrenceInterval = _step.value;
83
- _context.next = 24;
84
- return {
85
- interval: occurrenceInterval,
86
- type: IntervalTypes.Occurrence
87
- };
88
-
89
- case 24:
90
- _iteratorNormalCompletion = true;
91
- _context.next = 20;
16
+ var end, serviceHours, start, strategy, isStartAndEndValid, serviceIntervalSequence, hours, timezone, hasServiceHours, intervals, serviceIntervals, _i, _serviceIntervals, serviceInterval, occurrenceIntervalsSequence, _iterator, _step, occurrenceInterval, _t;
17
+ return _regeneratorRuntime.wrap(function (_context) {
18
+ while (1) switch (_context.prev = _context.next) {
19
+ case 0:
20
+ end = props.end, serviceHours = props.serviceHours, start = props.start, strategy = props.strategy;
21
+ isStartAndEndValid = hasValidStartAndEnd({
22
+ end: end,
23
+ start: start
24
+ });
25
+ if (isStartAndEndValid) {
26
+ _context.next = 1;
92
27
  break;
93
-
94
- case 27:
95
- _context.next = 33;
28
+ }
29
+ return _context.abrupt("return", []);
30
+ case 1:
31
+ serviceIntervalSequence = serviceIntervalsGenerator({
32
+ end: end,
33
+ serviceHours: serviceHours,
34
+ start: start
35
+ });
36
+ hours = serviceHours.hours, timezone = serviceHours.timezone;
37
+ hasServiceHours = !isEmpty(hours);
38
+ intervals = _toConsumableArray(serviceIntervalSequence); // NOTE: when non repeating and has service hours the service interval is
39
+ // from the first and last service interval otherwise from the start and end
40
+ serviceIntervals = !hasServiceHours ? [[start, end]] : !isEmpty(intervals) ? [[first(intervals)[0], last(intervals)[1]]] : [];
41
+ _i = 0, _serviceIntervals = serviceIntervals;
42
+ case 2:
43
+ if (!(_i < _serviceIntervals.length)) {
44
+ _context.next = 11;
96
45
  break;
97
-
98
- case 29:
99
- _context.prev = 29;
100
- _context.t0 = _context["catch"](18);
101
- _didIteratorError = true;
102
- _iteratorError = _context.t0;
103
-
104
- case 33:
105
- _context.prev = 33;
106
- _context.prev = 34;
107
-
108
- if (!_iteratorNormalCompletion && _iterator.return != null) {
109
- _iterator.return();
110
- }
111
-
112
- case 36:
113
- _context.prev = 36;
114
-
115
- if (!_didIteratorError) {
116
- _context.next = 39;
117
- break;
118
- }
119
-
120
- throw _iteratorError;
121
-
122
- case 39:
123
- return _context.finish(36);
124
-
125
- case 40:
126
- return _context.finish(33);
127
-
128
- case 41:
129
- _i++;
130
- _context.next = 10;
46
+ }
47
+ serviceInterval = _serviceIntervals[_i];
48
+ _context.next = 3;
49
+ return {
50
+ interval: serviceInterval,
51
+ type: IntervalTypes.Service
52
+ };
53
+ case 3:
54
+ occurrenceIntervalsSequence = occurrenceIntervalsGenerator({
55
+ // NOTE: as we only have one interval we should always set isInitial to
56
+ // true
57
+ isInitial: true,
58
+ serviceInterval: serviceInterval,
59
+ strategy: strategy,
60
+ timezone: timezone
61
+ });
62
+ _iterator = _createForOfIteratorHelper(occurrenceIntervalsSequence);
63
+ _context.prev = 4;
64
+ _iterator.s();
65
+ case 5:
66
+ if ((_step = _iterator.n()).done) {
67
+ _context.next = 7;
131
68
  break;
132
-
133
- case 44:
134
- case "end":
135
- return _context.stop();
136
- }
69
+ }
70
+ occurrenceInterval = _step.value;
71
+ _context.next = 6;
72
+ return {
73
+ interval: occurrenceInterval,
74
+ type: IntervalTypes.Occurrence
75
+ };
76
+ case 6:
77
+ _context.next = 5;
78
+ break;
79
+ case 7:
80
+ _context.next = 9;
81
+ break;
82
+ case 8:
83
+ _context.prev = 8;
84
+ _t = _context["catch"](4);
85
+ _iterator.e(_t);
86
+ case 9:
87
+ _context.prev = 9;
88
+ _iterator.f();
89
+ return _context.finish(9);
90
+ case 10:
91
+ _i++;
92
+ _context.next = 2;
93
+ break;
94
+ case 11:
95
+ case "end":
96
+ return _context.stop();
137
97
  }
138
- }, _marked, null, [[18, 29, 33, 41], [34,, 36, 40]]);
98
+ }, _marked, null, [[4, 8, 9, 10]]);
139
99
  }
140
100
  //# sourceMappingURL=generateNonRepeatingSchedule.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/scheduling/helpers/generateNonRepeatingSchedule.ts"],"names":["generateNonRepeatingSchedule","isEmpty","first","last","hasValidStartAndEnd","IntervalTypes","occurrenceIntervalsGenerator","serviceIntervalsGenerator","props","end","serviceHours","start","strategy","isStartAndEndValid","serviceIntervalSequence","hours","timezone","hasServiceHours","intervals","serviceIntervals","serviceInterval","interval","type","Service","occurrenceIntervalsSequence","isInitial","occurrenceInterval","Occurrence"],"mappings":";;;oDAYiBA,4B;;AAZjB,SAASC,OAAT,EAAkBC,KAAlB,EAAyBC,IAAzB,QAAqC,WAArC;AAEA,SAASC,mBAAT,QAAoC,GAApC;AACA,SAASC,aAAT,QAA0D,qBAA1D;AACA,SACEC,4BADF,EAEEC,yBAFF,QAGO,eAHP;AAKA;;;;AAGA,OAAO,SAAUP,4BAAV,CACLQ,KADK;AAAA;;AAAA;AAAA;AAAA;AAAA;AAGGC,UAAAA,GAHH,GAG0CD,KAH1C,CAGGC,GAHH,EAGQC,YAHR,GAG0CF,KAH1C,CAGQE,YAHR,EAGsBC,KAHtB,GAG0CH,KAH1C,CAGsBG,KAHtB,EAG6BC,QAH7B,GAG0CJ,KAH1C,CAG6BI,QAH7B;AAKCC,UAAAA,kBALD,GAKsBT,mBAAmB,CAAC;AAAEK,YAAAA,GAAG,EAAHA,GAAF;AAAOE,YAAAA,KAAK,EAALA;AAAP,WAAD,CALzC;;AAAA,cAMAE,kBANA;AAAA;AAAA;AAAA;;AAAA,2CAM2B,EAN3B;;AAAA;AAQCC,UAAAA,uBARD,GAQ2BP,yBAAyB,CAAC;AACxDE,YAAAA,GAAG,EAAHA,GADwD;AAExDC,YAAAA,YAAY,EAAZA,YAFwD;AAGxDC,YAAAA,KAAK,EAALA;AAHwD,WAAD,CARpD;AAcGI,UAAAA,KAdH,GAcuBL,YAdvB,CAcGK,KAdH,EAcUC,QAdV,GAcuBN,YAdvB,CAcUM,QAdV;AAeCC,UAAAA,eAfD,GAemB,CAAChB,OAAO,CAACc,KAAD,CAf3B;AAgBCG,UAAAA,SAhBD,sBAgBiBJ,uBAhBjB,GAkBL;AACA;;AACMK,UAAAA,gBApBD,GAoBoB,CAACF,eAAD,GACrB,CAAC,CAACN,KAAD,EAAQF,GAAR,CAAD,CADqB,GAErB,CAACR,OAAO,CAACiB,SAAD,CAAR,GACA,CAAC,CAAChB,KAAK,CAACgB,SAAD,CAAL,CAAiB,CAAjB,CAAD,EAAsBf,IAAI,CAACe,SAAD,CAAJ,CAAgB,CAAhB,CAAtB,CAAD,CADA,GAEA,EAxBC;AAAA,sCA0ByBC,gBA1BzB;;AAAA;AAAA;AAAA;AAAA;AAAA;;AA0BMC,UAAAA,eA1BN;AAAA;AA2BH,iBAAM;AAAEC,YAAAA,QAAQ,EAAED,eAAZ;AAA6BE,YAAAA,IAAI,EAAEjB,aAAa,CAACkB;AAAjD,WAAN;;AA3BG;AA6BGC,UAAAA,2BA7BH,GA6BiClB,4BAA4B,CAAC;AAC/D;AACA;AACAmB,YAAAA,SAAS,EAAE,IAHoD;AAI/DL,YAAAA,eAAe,EAAfA,eAJ+D;AAK/DR,YAAAA,QAAQ,EAARA,QAL+D;AAM/DI,YAAAA,QAAQ,EAARA;AAN+D,WAAD,CA7B7D;AAAA;AAAA;AAAA;AAAA;AAAA,sBAsC8BQ,2BAtC9B;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAsCQE,UAAAA,kBAtCR;AAAA;AAuCD,iBAAM;AAAEL,YAAAA,QAAQ,EAAEK,kBAAZ;AAAgCJ,YAAAA,IAAI,EAAEjB,aAAa,CAACsB;AAApD,WAAN;;AAvCC;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["import { isEmpty, first, last } from 'lodash/fp'\n\nimport { hasValidStartAndEnd } from '.'\nimport { IntervalTypes, ScheduleIntervalsGenerator } from '../scheduling.types'\nimport {\n occurrenceIntervalsGenerator,\n serviceIntervalsGenerator,\n} from '../generators'\n\n/**\n * Generates non repeating schedule service and occurrence intervals\n */\nexport function* generateNonRepeatingSchedule(\n props: ScheduleIntervalsGenerator\n) {\n const { end, serviceHours, start, strategy } = props\n\n const isStartAndEndValid = hasValidStartAndEnd({ end, start })\n if (!isStartAndEndValid) return []\n\n const serviceIntervalSequence = serviceIntervalsGenerator({\n end,\n serviceHours,\n start,\n })\n\n const { hours, timezone } = serviceHours\n const hasServiceHours = !isEmpty(hours)\n const intervals = [...serviceIntervalSequence]\n\n // NOTE: when non repeating and has service hours the service interval is\n // from the first and last service interval otherwise from the start and end\n const serviceIntervals = !hasServiceHours\n ? [[start, end]]\n : !isEmpty(intervals)\n ? [[first(intervals)[0], last(intervals)[1]]]\n : []\n\n for (const serviceInterval of serviceIntervals) {\n yield { interval: serviceInterval, type: IntervalTypes.Service }\n\n const occurrenceIntervalsSequence = occurrenceIntervalsGenerator({\n // NOTE: as we only have one interval we should always set isInitial to\n // true\n isInitial: true,\n serviceInterval,\n strategy,\n timezone,\n })\n\n for (const occurrenceInterval of occurrenceIntervalsSequence) {\n yield { interval: occurrenceInterval, type: IntervalTypes.Occurrence }\n }\n }\n}\n"],"file":"generateNonRepeatingSchedule.js"}
1
+ {"version":3,"file":"generateNonRepeatingSchedule.js","names":["generateNonRepeatingSchedule","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","isEmpty","first","last","hasValidStartAndEnd","IntervalTypes","occurrenceIntervalsGenerator","serviceIntervalsGenerator","props","end","serviceHours","start","strategy","isStartAndEndValid","serviceIntervalSequence","hours","timezone","hasServiceHours","intervals","serviceIntervals","_i","_serviceIntervals","serviceInterval","occurrenceIntervalsSequence","_iterator","_step","occurrenceInterval","_t","_regeneratorRuntime","wrap","_context","prev","abrupt","_toConsumableArray","interval","type","Service","isInitial","Occurrence","finish","stop","_marked"],"sources":["../../../src/scheduling/helpers/generateNonRepeatingSchedule.ts"],"sourcesContent":["import { isEmpty, first, last } from 'lodash/fp'\n\nimport { hasValidStartAndEnd } from '.'\nimport { IntervalTypes, ScheduleIntervalsGenerator } from '../scheduling.types'\nimport {\n occurrenceIntervalsGenerator,\n serviceIntervalsGenerator,\n} from '../generators'\n\n/**\n * Generates non repeating schedule service and occurrence intervals\n */\nexport function* generateNonRepeatingSchedule(\n props: ScheduleIntervalsGenerator\n) {\n const { end, serviceHours, start, strategy } = props\n\n const isStartAndEndValid = hasValidStartAndEnd({ end, start })\n if (!isStartAndEndValid) return []\n\n const serviceIntervalSequence = serviceIntervalsGenerator({\n end,\n serviceHours,\n start,\n })\n\n const { hours, timezone } = serviceHours\n const hasServiceHours = !isEmpty(hours)\n const intervals = [...serviceIntervalSequence]\n\n // NOTE: when non repeating and has service hours the service interval is\n // from the first and last service interval otherwise from the start and end\n const serviceIntervals = !hasServiceHours\n ? [[start, end]]\n : !isEmpty(intervals)\n ? [[first(intervals)[0], last(intervals)[1]]]\n : []\n\n for (const serviceInterval of serviceIntervals) {\n yield { interval: serviceInterval, type: IntervalTypes.Service }\n\n const occurrenceIntervalsSequence = occurrenceIntervalsGenerator({\n // NOTE: as we only have one interval we should always set isInitial to\n // true\n isInitial: true,\n serviceInterval,\n strategy,\n timezone,\n })\n\n for (const occurrenceInterval of occurrenceIntervalsSequence) {\n yield { interval: occurrenceInterval, type: IntervalTypes.Occurrence }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,192 +1,124 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
-
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
3
  var _marked = /*#__PURE__*/_regeneratorRuntime.mark(generateRepeatingSchedule);
5
-
4
+ 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; } } }; }
5
+ 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; } }
6
+ 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; }
6
7
  import { includes } from 'lodash/fp';
7
8
  import { generateScheduleEnd, hasValidStartAndEnd } from '.';
8
9
  import { IntervalTypes, Unit } from '../scheduling.types';
9
10
  import { occurrenceIntervalsGenerator, serviceIntervalsGenerator } from '../generators';
10
11
  export var complyingServiceIntervalUnits = [Unit.Second, Unit.Minute, Unit.Hour];
12
+
11
13
  /**
12
14
  * Generates repeating schedule service and occurrence intervals
13
15
  */
14
-
15
16
  export function generateRepeatingSchedule(props) {
16
- var serviceHours, start, strategy, end, isInitial, frequency, frequencyUnit, timezone, isStartAndEndValid, serviceIntervalSequence, complyToServiceHours, serviceIntervals, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, serviceInterval, occurrenceIntervalsSequence, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, occurrenceInterval;
17
-
18
- return _regeneratorRuntime.wrap(function generateRepeatingSchedule$(_context) {
19
- while (1) {
20
- switch (_context.prev = _context.next) {
21
- case 0:
22
- serviceHours = props.serviceHours, start = props.start, strategy = props.strategy;
23
- end = props.end, isInitial = props.isInitial; // NOTE support never ending repeating schedule where no end date defined by
24
- // setting a custom end date using the frequency unit and value
25
-
26
- frequency = strategy.options.frequency;
27
- frequencyUnit = frequency.unit;
28
- timezone = serviceHours.timezone;
29
- end = end || generateScheduleEnd({
30
- frequency: frequency,
31
- start: start,
32
- timezone: timezone
33
- });
34
- isStartAndEndValid = hasValidStartAndEnd({
35
- end: end,
36
- start: start
37
- });
38
-
39
- if (isStartAndEndValid) {
40
- _context.next = 9;
41
- break;
42
- }
43
-
44
- return _context.abrupt("return", []);
45
-
46
- case 9:
47
- serviceIntervalSequence = serviceIntervalsGenerator({
48
- end: end,
49
- serviceHours: serviceHours,
50
- start: start
51
- }); // NOTE: when repeating and is complying to service hours we iterate through
52
- // all service intervals otherwise service interval is from the start and end
53
-
54
- complyToServiceHours = includes(frequencyUnit, complyingServiceIntervalUnits);
55
- serviceIntervals = complyToServiceHours ? _toConsumableArray(serviceIntervalSequence) : [[start, end]];
56
- _iteratorNormalCompletion = true;
57
- _didIteratorError = false;
58
- _iteratorError = undefined;
59
- _context.prev = 15;
60
- _iterator = serviceIntervals[Symbol.iterator]();
61
-
62
- case 17:
63
- if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
64
- _context.next = 52;
65
- break;
66
- }
67
-
68
- serviceInterval = _step.value;
69
- _context.next = 21;
70
- return {
71
- interval: serviceInterval,
72
- type: IntervalTypes.Service
73
- };
74
-
75
- case 21:
76
- occurrenceIntervalsSequence = occurrenceIntervalsGenerator({
77
- isInitial: isInitial,
78
- serviceInterval: serviceInterval,
79
- strategy: strategy,
80
- timezone: timezone
81
- });
82
- _iteratorNormalCompletion2 = true;
83
- _didIteratorError2 = false;
84
- _iteratorError2 = undefined;
85
- _context.prev = 25;
86
- _iterator2 = occurrenceIntervalsSequence[Symbol.iterator]();
87
-
88
- case 27:
89
- if (_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done) {
90
- _context.next = 34;
91
- break;
92
- }
93
-
94
- occurrenceInterval = _step2.value;
95
- _context.next = 31;
96
- return {
97
- interval: occurrenceInterval,
98
- type: IntervalTypes.Occurrence
99
- };
100
-
101
- case 31:
102
- _iteratorNormalCompletion2 = true;
103
- _context.next = 27;
104
- break;
105
-
106
- case 34:
107
- _context.next = 40;
17
+ var serviceHours, start, strategy, end, isInitial, frequency, frequencyUnit, timezone, isStartAndEndValid, serviceIntervalSequence, complyToServiceHours, serviceIntervals, _iterator, _step, serviceInterval, occurrenceIntervalsSequence, _iterator2, _step2, occurrenceInterval, _t, _t2;
18
+ return _regeneratorRuntime.wrap(function (_context) {
19
+ while (1) switch (_context.prev = _context.next) {
20
+ case 0:
21
+ serviceHours = props.serviceHours, start = props.start, strategy = props.strategy;
22
+ end = props.end, isInitial = props.isInitial; // NOTE support never ending repeating schedule where no end date defined by
23
+ // setting a custom end date using the frequency unit and value
24
+ frequency = strategy.options.frequency;
25
+ frequencyUnit = frequency.unit;
26
+ timezone = serviceHours.timezone;
27
+ end = end || generateScheduleEnd({
28
+ frequency: frequency,
29
+ start: start,
30
+ timezone: timezone
31
+ });
32
+ isStartAndEndValid = hasValidStartAndEnd({
33
+ end: end,
34
+ start: start
35
+ });
36
+ if (isStartAndEndValid) {
37
+ _context.next = 1;
108
38
  break;
109
-
110
- case 36:
111
- _context.prev = 36;
112
- _context.t0 = _context["catch"](25);
113
- _didIteratorError2 = true;
114
- _iteratorError2 = _context.t0;
115
-
116
- case 40:
117
- _context.prev = 40;
118
- _context.prev = 41;
119
-
120
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
121
- _iterator2.return();
122
- }
123
-
124
- case 43:
125
- _context.prev = 43;
126
-
127
- if (!_didIteratorError2) {
128
- _context.next = 46;
129
- break;
130
- }
131
-
132
- throw _iteratorError2;
133
-
134
- case 46:
135
- return _context.finish(43);
136
-
137
- case 47:
138
- return _context.finish(40);
139
-
140
- case 48:
141
- // NOTE: we must reset isInitial to true following the first service
142
- // interval otherwise the occurrence will not start exactly on the next
143
- // service interval start time
144
- isInitial = true;
145
-
146
- case 49:
147
- _iteratorNormalCompletion = true;
148
- _context.next = 17;
39
+ }
40
+ return _context.abrupt("return", []);
41
+ case 1:
42
+ serviceIntervalSequence = serviceIntervalsGenerator({
43
+ end: end,
44
+ serviceHours: serviceHours,
45
+ start: start
46
+ }); // NOTE: when repeating and is complying to service hours we iterate through
47
+ // all service intervals otherwise service interval is from the start and end
48
+ complyToServiceHours = includes(frequencyUnit, complyingServiceIntervalUnits);
49
+ serviceIntervals = complyToServiceHours ? _toConsumableArray(serviceIntervalSequence) : [[start, end]];
50
+ _iterator = _createForOfIteratorHelper(serviceIntervals);
51
+ _context.prev = 2;
52
+ _iterator.s();
53
+ case 3:
54
+ if ((_step = _iterator.n()).done) {
55
+ _context.next = 13;
149
56
  break;
150
-
151
- case 52:
152
- _context.next = 58;
57
+ }
58
+ serviceInterval = _step.value;
59
+ _context.next = 4;
60
+ return {
61
+ interval: serviceInterval,
62
+ type: IntervalTypes.Service
63
+ };
64
+ case 4:
65
+ occurrenceIntervalsSequence = occurrenceIntervalsGenerator({
66
+ isInitial: isInitial,
67
+ serviceInterval: serviceInterval,
68
+ strategy: strategy,
69
+ timezone: timezone
70
+ });
71
+ _iterator2 = _createForOfIteratorHelper(occurrenceIntervalsSequence);
72
+ _context.prev = 5;
73
+ _iterator2.s();
74
+ case 6:
75
+ if ((_step2 = _iterator2.n()).done) {
76
+ _context.next = 8;
153
77
  break;
154
-
155
- case 54:
156
- _context.prev = 54;
157
- _context.t1 = _context["catch"](15);
158
- _didIteratorError = true;
159
- _iteratorError = _context.t1;
160
-
161
- case 58:
162
- _context.prev = 58;
163
- _context.prev = 59;
164
-
165
- if (!_iteratorNormalCompletion && _iterator.return != null) {
166
- _iterator.return();
167
- }
168
-
169
- case 61:
170
- _context.prev = 61;
171
-
172
- if (!_didIteratorError) {
173
- _context.next = 64;
174
- break;
175
- }
176
-
177
- throw _iteratorError;
178
-
179
- case 64:
180
- return _context.finish(61);
181
-
182
- case 65:
183
- return _context.finish(58);
184
-
185
- case 66:
186
- case "end":
187
- return _context.stop();
188
- }
78
+ }
79
+ occurrenceInterval = _step2.value;
80
+ _context.next = 7;
81
+ return {
82
+ interval: occurrenceInterval,
83
+ type: IntervalTypes.Occurrence
84
+ };
85
+ case 7:
86
+ _context.next = 6;
87
+ break;
88
+ case 8:
89
+ _context.next = 10;
90
+ break;
91
+ case 9:
92
+ _context.prev = 9;
93
+ _t = _context["catch"](5);
94
+ _iterator2.e(_t);
95
+ case 10:
96
+ _context.prev = 10;
97
+ _iterator2.f();
98
+ return _context.finish(10);
99
+ case 11:
100
+ // NOTE: we must reset isInitial to true following the first service
101
+ // interval otherwise the occurrence will not start exactly on the next
102
+ // service interval start time
103
+ isInitial = true;
104
+ case 12:
105
+ _context.next = 3;
106
+ break;
107
+ case 13:
108
+ _context.next = 15;
109
+ break;
110
+ case 14:
111
+ _context.prev = 14;
112
+ _t2 = _context["catch"](2);
113
+ _iterator.e(_t2);
114
+ case 15:
115
+ _context.prev = 15;
116
+ _iterator.f();
117
+ return _context.finish(15);
118
+ case 16:
119
+ case "end":
120
+ return _context.stop();
189
121
  }
190
- }, _marked, null, [[15, 54, 58, 66], [25, 36, 40, 48], [41,, 43, 47], [59,, 61, 65]]);
122
+ }, _marked, null, [[2, 14, 15, 16], [5, 9, 10, 11]]);
191
123
  }
192
124
  //# sourceMappingURL=generateRepeatingSchedule.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/scheduling/helpers/generateRepeatingSchedule.ts"],"names":["generateRepeatingSchedule","includes","generateScheduleEnd","hasValidStartAndEnd","IntervalTypes","Unit","occurrenceIntervalsGenerator","serviceIntervalsGenerator","complyingServiceIntervalUnits","Second","Minute","Hour","props","serviceHours","start","strategy","end","isInitial","frequency","options","frequencyUnit","unit","timezone","isStartAndEndValid","serviceIntervalSequence","complyToServiceHours","serviceIntervals","serviceInterval","interval","type","Service","occurrenceIntervalsSequence","occurrenceInterval","Occurrence"],"mappings":";;;oDAsBiBA,yB;;AAtBjB,SAASC,QAAT,QAAyB,WAAzB;AAEA,SAASC,mBAAT,EAA8BC,mBAA9B,QAAyD,GAAzD;AACA,SACEC,aADF,EAGEC,IAHF,QAIO,qBAJP;AAKA,SACEC,4BADF,EAEEC,yBAFF,QAGO,eAHP;AAKA,OAAO,IAAMC,6BAA6B,GAAG,CAC3CH,IAAI,CAACI,MADsC,EAE3CJ,IAAI,CAACK,MAFsC,EAG3CL,IAAI,CAACM,IAHsC,CAAtC;AAMP;;;;AAGA,OAAO,SAAUX,yBAAV,CAAoCY,KAApC;AAAA;;AAAA;AAAA;AAAA;AAAA;AACGC,UAAAA,YADH,GACqCD,KADrC,CACGC,YADH,EACiBC,KADjB,GACqCF,KADrC,CACiBE,KADjB,EACwBC,QADxB,GACqCH,KADrC,CACwBG,QADxB;AAECC,UAAAA,GAFD,GAEoBJ,KAFpB,CAECI,GAFD,EAEMC,SAFN,GAEoBL,KAFpB,CAEMK,SAFN,EAIL;AACA;;AAEaC,UAAAA,SAPR,GAQDH,QARC,CAOHI,OAPG,CAOQD,SAPR;AASSE,UAAAA,aATT,GAS2BF,SAT3B,CASGG,IATH;AAUGC,UAAAA,QAVH,GAUgBT,YAVhB,CAUGS,QAVH;AAYLN,UAAAA,GAAG,GAAGA,GAAG,IAAId,mBAAmB,CAAC;AAAEgB,YAAAA,SAAS,EAATA,SAAF;AAAaJ,YAAAA,KAAK,EAALA,KAAb;AAAoBQ,YAAAA,QAAQ,EAARA;AAApB,WAAD,CAAhC;AAEMC,UAAAA,kBAdD,GAcsBpB,mBAAmB,CAAC;AAAEa,YAAAA,GAAG,EAAHA,GAAF;AAAOF,YAAAA,KAAK,EAALA;AAAP,WAAD,CAdzC;;AAAA,cAgBAS,kBAhBA;AAAA;AAAA;AAAA;;AAAA,2CAgB2B,EAhB3B;;AAAA;AAkBCC,UAAAA,uBAlBD,GAkB2BjB,yBAAyB,CAAC;AACxDS,YAAAA,GAAG,EAAHA,GADwD;AAExDH,YAAAA,YAAY,EAAZA,YAFwD;AAGxDC,YAAAA,KAAK,EAALA;AAHwD,WAAD,CAlBpD,EAwBL;AACA;;AACMW,UAAAA,oBA1BD,GA0BwBxB,QAAQ,CACnCmB,aADmC,EAEnCZ,6BAFmC,CA1BhC;AA+BCkB,UAAAA,gBA/BD,GA+BoBD,oBAAoB,sBACrCD,uBADqC,IAEzC,CAAC,CAACV,KAAD,EAAQE,GAAR,CAAD,CAjCC;AAAA;AAAA;AAAA;AAAA;AAAA,sBAmCyBU,gBAnCzB;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAmCMC,UAAAA,eAnCN;AAAA;AAoCH,iBAAM;AAAEC,YAAAA,QAAQ,EAAED,eAAZ;AAA6BE,YAAAA,IAAI,EAAEzB,aAAa,CAAC0B;AAAjD,WAAN;;AApCG;AAsCGC,UAAAA,2BAtCH,GAsCiCzB,4BAA4B,CAAC;AAC/DW,YAAAA,SAAS,EAATA,SAD+D;AAE/DU,YAAAA,eAAe,EAAfA,eAF+D;AAG/DZ,YAAAA,QAAQ,EAARA,QAH+D;AAI/DO,YAAAA,QAAQ,EAARA;AAJ+D,WAAD,CAtC7D;AAAA;AAAA;AAAA;AAAA;AAAA,uBA6C8BS,2BA7C9B;;AAAA;AAAA;AAAA;AAAA;AAAA;;AA6CQC,UAAAA,kBA7CR;AAAA;AA8CD,iBAAM;AAAEJ,YAAAA,QAAQ,EAAEI,kBAAZ;AAAgCH,YAAAA,IAAI,EAAEzB,aAAa,CAAC6B;AAApD,WAAN;;AA9CC;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAiDH;AACA;AACA;AACAhB,UAAAA,SAAS,GAAG,IAAZ;;AApDG;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["import { includes } from 'lodash/fp'\n\nimport { generateScheduleEnd, hasValidStartAndEnd } from '.'\nimport {\n IntervalTypes,\n ScheduleIntervalsGenerator,\n Unit,\n} from '../scheduling.types'\nimport {\n occurrenceIntervalsGenerator,\n serviceIntervalsGenerator,\n} from '../generators'\n\nexport const complyingServiceIntervalUnits = [\n Unit.Second,\n Unit.Minute,\n Unit.Hour,\n]\n\n/**\n * Generates repeating schedule service and occurrence intervals\n */\nexport function* generateRepeatingSchedule(props: ScheduleIntervalsGenerator) {\n const { serviceHours, start, strategy } = props\n let { end, isInitial } = props\n\n // NOTE support never ending repeating schedule where no end date defined by\n // setting a custom end date using the frequency unit and value\n const {\n options: { frequency },\n } = strategy\n const { unit: frequencyUnit } = frequency\n const { timezone } = serviceHours\n\n end = end || generateScheduleEnd({ frequency, start, timezone })\n\n const isStartAndEndValid = hasValidStartAndEnd({ end, start })\n\n if (!isStartAndEndValid) return []\n\n const serviceIntervalSequence = serviceIntervalsGenerator({\n end,\n serviceHours,\n start,\n })\n\n // NOTE: when repeating and is complying to service hours we iterate through\n // all service intervals otherwise service interval is from the start and end\n const complyToServiceHours = includes(\n frequencyUnit,\n complyingServiceIntervalUnits\n )\n\n const serviceIntervals = complyToServiceHours\n ? [...serviceIntervalSequence]\n : [[start, end]]\n\n for (const serviceInterval of serviceIntervals) {\n yield { interval: serviceInterval, type: IntervalTypes.Service }\n\n const occurrenceIntervalsSequence = occurrenceIntervalsGenerator({\n isInitial,\n serviceInterval,\n strategy,\n timezone,\n })\n\n for (const occurrenceInterval of occurrenceIntervalsSequence) {\n yield { interval: occurrenceInterval, type: IntervalTypes.Occurrence }\n }\n\n // NOTE: we must reset isInitial to true following the first service\n // interval otherwise the occurrence will not start exactly on the next\n // service interval start time\n isInitial = true\n }\n}\n"],"file":"generateRepeatingSchedule.js"}
1
+ {"version":3,"file":"generateRepeatingSchedule.js","names":["generateRepeatingSchedule","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","includes","generateScheduleEnd","hasValidStartAndEnd","IntervalTypes","Unit","occurrenceIntervalsGenerator","serviceIntervalsGenerator","complyingServiceIntervalUnits","Second","Minute","Hour","props","serviceHours","start","strategy","end","isInitial","frequency","frequencyUnit","timezone","isStartAndEndValid","serviceIntervalSequence","complyToServiceHours","serviceIntervals","_iterator","_step","serviceInterval","occurrenceIntervalsSequence","_iterator2","_step2","occurrenceInterval","_t","_t2","_regeneratorRuntime","wrap","_context","prev","options","unit","abrupt","_toConsumableArray","interval","type","Service","Occurrence","finish","stop","_marked"],"sources":["../../../src/scheduling/helpers/generateRepeatingSchedule.ts"],"sourcesContent":["import { includes } from 'lodash/fp'\n\nimport { generateScheduleEnd, hasValidStartAndEnd } from '.'\nimport {\n IntervalTypes,\n ScheduleIntervalsGenerator,\n Unit,\n} from '../scheduling.types'\nimport {\n occurrenceIntervalsGenerator,\n serviceIntervalsGenerator,\n} from '../generators'\n\nexport const complyingServiceIntervalUnits = [\n Unit.Second,\n Unit.Minute,\n Unit.Hour,\n]\n\n/**\n * Generates repeating schedule service and occurrence intervals\n */\nexport function* generateRepeatingSchedule(props: ScheduleIntervalsGenerator) {\n const { serviceHours, start, strategy } = props\n let { end, isInitial } = props\n\n // NOTE support never ending repeating schedule where no end date defined by\n // setting a custom end date using the frequency unit and value\n const {\n options: { frequency },\n } = strategy\n const { unit: frequencyUnit } = frequency\n const { timezone } = serviceHours\n\n end = end || generateScheduleEnd({ frequency, start, timezone })\n\n const isStartAndEndValid = hasValidStartAndEnd({ end, start })\n\n if (!isStartAndEndValid) return []\n\n const serviceIntervalSequence = serviceIntervalsGenerator({\n end,\n serviceHours,\n start,\n })\n\n // NOTE: when repeating and is complying to service hours we iterate through\n // all service intervals otherwise service interval is from the start and end\n const complyToServiceHours = includes(\n frequencyUnit,\n complyingServiceIntervalUnits\n )\n\n const serviceIntervals = complyToServiceHours\n ? [...serviceIntervalSequence]\n : [[start, end]]\n\n for (const serviceInterval of serviceIntervals) {\n yield { interval: serviceInterval, type: IntervalTypes.Service }\n\n const occurrenceIntervalsSequence = occurrenceIntervalsGenerator({\n isInitial,\n serviceInterval,\n strategy,\n timezone,\n })\n\n for (const occurrenceInterval of occurrenceIntervalsSequence) {\n yield { interval: occurrenceInterval, type: IntervalTypes.Occurrence }\n }\n\n // NOTE: we must reset isInitial to true following the first service\n // interval otherwise the occurrence will not start exactly on the next\n // service interval start time\n isInitial = true\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,21 +1,21 @@
1
1
  import { includes } from 'lodash/fp';
2
2
  import moment from 'moment-timezone';
3
3
  import { Unit } from '../scheduling.types';
4
-
5
4
  /**
6
5
  * Generates a schedule end datetime based on the start and frequency
7
6
  */
8
7
  export function generateScheduleEnd(_ref) {
9
8
  var frequency = _ref.frequency,
10
- start = _ref.start,
11
- timezone = _ref.timezone;
9
+ start = _ref.start,
10
+ timezone = _ref.timezone;
12
11
  var frequencyUnit = frequency.unit,
13
- frequencyValue = frequency.value;
12
+ frequencyValue = frequency.value;
14
13
  var isFrequencyLessThanWeek = includes(frequencyUnit, [Unit.Millisecond, Unit.Second, Unit.Minute, Unit.Hour, Unit.Day]);
15
- var mStart = moment.tz(start, timezone); // NOTE: if frequency unit less than a week we must set end to jump a week
14
+ var mStart = moment.tz(start, timezone);
15
+
16
+ // NOTE: if frequency unit less than a week we must set end to jump a week
16
17
  // plus the interval length of the schedule frequency
17
18
  // so that we can ensure that we are within a service interval
18
-
19
19
  var end = isFrequencyLessThanWeek ? mStart.add(2, Unit.Week).valueOf() : mStart.add(frequencyValue * 2, frequencyUnit).valueOf();
20
20
  return end;
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/scheduling/helpers/generateScheduleEnd.ts"],"names":["includes","moment","Unit","generateScheduleEnd","frequency","start","timezone","frequencyUnit","unit","frequencyValue","value","isFrequencyLessThanWeek","Millisecond","Second","Minute","Hour","Day","mStart","tz","end","add","Week","valueOf"],"mappings":"AAAA,SAASA,QAAT,QAAyB,WAAzB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AAEA,SAAiBC,IAAjB,QAA6B,qBAA7B;;AAQA;;;AAGA,OAAO,SAASC,mBAAT,OAIyB;AAAA,MAH9BC,SAG8B,QAH9BA,SAG8B;AAAA,MAF9BC,KAE8B,QAF9BA,KAE8B;AAAA,MAD9BC,QAC8B,QAD9BA,QAC8B;AAAA,MAChBC,aADgB,GACyBH,SADzB,CACtBI,IADsB;AAAA,MACMC,cADN,GACyBL,SADzB,CACDM,KADC;AAG9B,MAAMC,uBAAuB,GAAGX,QAAQ,CAACO,aAAD,EAAgB,CACtDL,IAAI,CAACU,WADiD,EAEtDV,IAAI,CAACW,MAFiD,EAGtDX,IAAI,CAACY,MAHiD,EAItDZ,IAAI,CAACa,IAJiD,EAKtDb,IAAI,CAACc,GALiD,CAAhB,CAAxC;AAQA,MAAMC,MAAM,GAAGhB,MAAM,CAACiB,EAAP,CAAUb,KAAV,EAAiBC,QAAjB,CAAf,CAX8B,CAa9B;AACA;AACA;;AACA,MAAMa,GAAG,GAAGR,uBAAuB,GAC/BM,MAAM,CAACG,GAAP,CAAW,CAAX,EAAclB,IAAI,CAACmB,IAAnB,EAAyBC,OAAzB,EAD+B,GAE/BL,MAAM,CAACG,GAAP,CAAWX,cAAc,GAAG,CAA5B,EAA+BF,aAA/B,EAA8Ce,OAA9C,EAFJ;AAIA,SAAOH,GAAP;AACD","sourcesContent":["import { includes } from 'lodash/fp'\nimport moment from 'moment-timezone'\n\nimport { Period, Unit } from '../scheduling.types'\n\ninterface GenerateScheduleEnd {\n readonly frequency: Period\n readonly start: number\n readonly timezone: string\n}\n\n/**\n * Generates a schedule end datetime based on the start and frequency\n */\nexport function generateScheduleEnd({\n frequency,\n start,\n timezone,\n}: GenerateScheduleEnd): number {\n const { unit: frequencyUnit, value: frequencyValue } = frequency\n\n const isFrequencyLessThanWeek = includes(frequencyUnit, [\n Unit.Millisecond,\n Unit.Second,\n Unit.Minute,\n Unit.Hour,\n Unit.Day,\n ])\n\n const mStart = moment.tz(start, timezone)\n\n // NOTE: if frequency unit less than a week we must set end to jump a week\n // plus the interval length of the schedule frequency\n // so that we can ensure that we are within a service interval\n const end = isFrequencyLessThanWeek\n ? mStart.add(2, Unit.Week).valueOf()\n : mStart.add(frequencyValue * 2, frequencyUnit).valueOf()\n\n return end\n}\n"],"file":"generateScheduleEnd.js"}
1
+ {"version":3,"file":"generateScheduleEnd.js","names":["includes","moment","Unit","generateScheduleEnd","_ref","frequency","start","timezone","frequencyUnit","unit","frequencyValue","value","isFrequencyLessThanWeek","Millisecond","Second","Minute","Hour","Day","mStart","tz","end","add","Week","valueOf"],"sources":["../../../src/scheduling/helpers/generateScheduleEnd.ts"],"sourcesContent":["import { includes } from 'lodash/fp'\nimport moment from 'moment-timezone'\n\nimport { Period, Unit } from '../scheduling.types'\n\ninterface GenerateScheduleEnd {\n readonly frequency: Period\n readonly start: number\n readonly timezone: string\n}\n\n/**\n * Generates a schedule end datetime based on the start and frequency\n */\nexport function generateScheduleEnd({\n frequency,\n start,\n timezone,\n}: GenerateScheduleEnd): number {\n const { unit: frequencyUnit, value: frequencyValue } = frequency\n\n const isFrequencyLessThanWeek = includes(frequencyUnit, [\n Unit.Millisecond,\n Unit.Second,\n Unit.Minute,\n Unit.Hour,\n Unit.Day,\n ])\n\n const mStart = moment.tz(start, timezone)\n\n // NOTE: if frequency unit less than a week we must set end to jump a week\n // plus the interval length of the schedule frequency\n // so that we can ensure that we are within a service interval\n const end = isFrequencyLessThanWeek\n ? mStart.add(2, Unit.Week).valueOf()\n : mStart.add(frequencyValue * 2, frequencyUnit).valueOf()\n\n return end\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,WAAW;AACpC,OAAOC,MAAM,MAAM,iBAAiB;AAEpC,SAAiBC,IAAI,QAAQ,qBAAqB;AAQlD;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAAC,IAAA,EAIH;EAAA,IAH9BC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;EAER,IAAcC,aAAa,GAA4BH,SAAS,CAAxDI,IAAI;IAAwBC,cAAc,GAAKL,SAAS,CAAnCM,KAAK;EAElC,IAAMC,uBAAuB,GAAGZ,QAAQ,CAACQ,aAAa,EAAE,CACtDN,IAAI,CAACW,WAAW,EAChBX,IAAI,CAACY,MAAM,EACXZ,IAAI,CAACa,MAAM,EACXb,IAAI,CAACc,IAAI,EACTd,IAAI,CAACe,GAAG,CACT,CAAC;EAEF,IAAMC,MAAM,GAAGjB,MAAM,CAACkB,EAAE,CAACb,KAAK,EAAEC,QAAQ,CAAC;;EAEzC;EACA;EACA;EACA,IAAMa,GAAG,GAAGR,uBAAuB,GAC/BM,MAAM,CAACG,GAAG,CAAC,CAAC,EAAEnB,IAAI,CAACoB,IAAI,CAAC,CAACC,OAAO,CAAC,CAAC,GAClCL,MAAM,CAACG,GAAG,CAACX,cAAc,GAAG,CAAC,EAAEF,aAAa,CAAC,CAACe,OAAO,CAAC,CAAC;EAE3D,OAAOH,GAAG;AACZ","ignoreList":[]}