@lighthouse/common 5.0.0-canary-11 → 5.0.0-canary-13

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 (91) hide show
  1. package/dist/helpers/build-fetch-url/index.js +2 -2
  2. package/dist/helpers/fetch-image/index.js +1 -1
  3. package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +9 -9
  4. package/dist/helpers/fetch-image-for-web/index.js +3 -14
  5. package/dist/helpers/get-audit-entry-details/index.js +2 -0
  6. package/dist/helpers/get-issue-details/index.js +2 -0
  7. package/dist/helpers/get-task-entry-details/index.js +3 -1
  8. package/dist/pdf/helpers/fields/index.js +2 -2
  9. package/dist/scheduling/scheduling.types.js +9 -9
  10. package/dist/service-hours/schema.js +12 -12
  11. package/lib/errors/DomainError.js +7 -8
  12. package/lib/errors/DomainError.js.map +1 -1
  13. package/lib/errors/ValidationError.js +11 -9
  14. package/lib/errors/ValidationError.js.map +1 -1
  15. package/lib/helpers/build-fetch-url/index.js +2 -2
  16. package/lib/helpers/build-fetch-url/index.js.map +1 -1
  17. package/lib/helpers/fetch-image/index.js +1 -1
  18. package/lib/helpers/fetch-image/index.js.map +1 -1
  19. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +174 -180
  20. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
  21. package/lib/helpers/fetch-image-for-web/index.js +60 -74
  22. package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
  23. package/lib/helpers/fetch-lighthouse-logo/index.js +41 -43
  24. package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
  25. package/lib/helpers/get-audit-entry-details/index.js +2 -0
  26. package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
  27. package/lib/helpers/get-audit-items-data/index.js +8 -8
  28. package/lib/helpers/get-audit-items-data/index.js.map +1 -1
  29. package/lib/helpers/get-issue-details/index.js +2 -0
  30. package/lib/helpers/get-issue-details/index.js.map +1 -1
  31. package/lib/helpers/get-job-details/index.js.map +1 -1
  32. package/lib/helpers/get-location-reference/index.js +6 -4
  33. package/lib/helpers/get-location-reference/index.js.map +1 -1
  34. package/lib/helpers/get-reference-details/index.js.map +1 -1
  35. package/lib/helpers/get-task-entry-details/index.js +3 -1
  36. package/lib/helpers/get-task-entry-details/index.js.map +1 -1
  37. package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
  38. package/lib/pdf/activity-report/index.js +299 -311
  39. package/lib/pdf/activity-report/index.js.map +1 -1
  40. package/lib/pdf/audit/index.js.map +1 -1
  41. package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
  42. package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
  43. package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
  44. package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
  45. package/lib/pdf/helpers/fields/index.js +14 -14
  46. package/lib/pdf/helpers/fields/index.js.map +1 -1
  47. package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
  48. package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
  49. package/lib/pdf/helpers/html-transformer/index.js +1 -2
  50. package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
  51. package/lib/pdf/helpers/table/index.js +63 -65
  52. package/lib/pdf/helpers/table/index.js.map +1 -1
  53. package/lib/pdf/issue/index.js.map +1 -1
  54. package/lib/pdf/job/index.js.map +1 -1
  55. package/lib/pdf/shift-report/index.js +275 -291
  56. package/lib/pdf/shift-report/index.js.map +1 -1
  57. package/lib/pdf/task/index.js.map +1 -1
  58. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +27 -30
  59. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
  60. package/lib/scheduling/generators/scheduleIntervalsGenerator.js +19 -21
  61. package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
  62. package/lib/scheduling/generators/serviceIntervalsGenerator.js +134 -136
  63. package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
  64. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +81 -83
  65. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
  66. package/lib/scheduling/helpers/generateRepeatingSchedule.js +104 -106
  67. package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
  68. package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
  69. package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
  70. package/lib/scheduling/scheduling.types.js +9 -9
  71. package/lib/scheduling/scheduling.types.js.map +1 -1
  72. package/lib/scheduling/strategies/getNext.js +21 -17
  73. package/lib/scheduling/strategies/getNext.js.map +1 -1
  74. package/lib/scheduling/strategies/getNextExactDateOfMonth.js +21 -18
  75. package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
  76. package/lib/scheduling/strategies/getNextLastDayOfMonth.js +20 -17
  77. package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
  78. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +20 -17
  79. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
  80. package/lib/scheduling/strategies/getNextNoRepeat.js +15 -14
  81. package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
  82. package/lib/scheduling/strategies/getNextWeekday.js +36 -33
  83. package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
  84. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +20 -17
  85. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
  86. package/lib/schema/schema.js +21 -23
  87. package/lib/schema/schema.js.map +1 -1
  88. package/lib/service-hours/schema.js +15 -13
  89. package/lib/service-hours/schema.js.map +1 -1
  90. package/package.json +2 -2
  91. package/yarn-error.log +0 -13549
@@ -1,5 +1,4 @@
1
1
  import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- var _marked = /*#__PURE__*/_regeneratorRuntime.mark(getNextLastDayOfMonth);
3
2
  import moment from 'moment-timezone';
4
3
  import { Unit } from '../scheduling.types';
5
4
 
@@ -7,46 +6,50 @@ import { Unit } from '../scheduling.types';
7
6
  * Generates next occurrence interval for last day of month strategy
8
7
  */
9
8
  export function getNextLastDayOfMonth(_ref) {
10
- var end, isInitial, options, start, timezone, duration, frequency, durationUnit, durationValue, frequencyUnit, frequencyValue, dateCursor, nextOccurrenceEnd, nextOccurrenceStart, nextOccurrence, nextDateCursor;
11
- return _regeneratorRuntime.wrap(function getNextLastDayOfMonth$(_context) {
12
- while (1) {
13
- switch (_context.prev = _context.next) {
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 duration, frequency, durationUnit, durationValue, frequencyUnit, frequencyValue, dateCursor, nextOccurrenceEnd, nextOccurrenceStart, nextOccurrence, nextDateCursor;
16
+ return _regeneratorRuntime.wrap(function (_context) {
17
+ while (1) switch (_context.prev = _context.next) {
14
18
  case 0:
15
- end = _ref.end, isInitial = _ref.isInitial, options = _ref.options, start = _ref.start, timezone = _ref.timezone;
16
19
  duration = options.duration, frequency = options.frequency;
17
20
  durationUnit = duration.unit, durationValue = duration.value;
18
21
  frequencyUnit = frequency.unit, frequencyValue = frequency.value;
19
22
  dateCursor = isInitial ? moment.tz(start, timezone).startOf(Unit.Month).valueOf() : moment.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(Unit.Month).valueOf();
20
- case 5:
23
+ case 1:
21
24
  if (!(dateCursor < end)) {
22
- _context.next = 18;
25
+ _context.next = 4;
23
26
  break;
24
27
  }
25
28
  nextOccurrenceEnd = moment.tz(dateCursor, timezone).endOf(Unit.Month).add(1, Unit.Day).startOf(Unit.Day).valueOf();
26
29
  nextOccurrenceStart = moment.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
27
30
  if (!(nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end)) {
28
- _context.next = 10;
31
+ _context.next = 2;
29
32
  break;
30
33
  }
31
34
  return _context.abrupt("return");
32
- case 10:
35
+ case 2:
33
36
  if (!(nextOccurrenceStart >= start)) {
34
- _context.next = 14;
37
+ _context.next = 3;
35
38
  break;
36
39
  }
37
40
  nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
38
- _context.next = 14;
41
+ _context.next = 3;
39
42
  return nextOccurrence;
40
- case 14:
43
+ case 3:
41
44
  nextDateCursor = moment.tz(dateCursor, timezone).add(1, Unit.Month).valueOf();
42
45
  dateCursor = nextDateCursor;
43
- _context.next = 5;
46
+ _context.next = 1;
44
47
  break;
45
- case 18:
48
+ case 4:
46
49
  case "end":
47
50
  return _context.stop();
48
51
  }
49
- }
50
- }, _marked);
52
+ }, _callee);
53
+ })();
51
54
  }
52
55
  //# sourceMappingURL=getNextLastDayOfMonth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNextLastDayOfMonth.js","names":["getNextLastDayOfMonth","moment","Unit","_ref","end","isInitial","options","start","timezone","duration","frequency","durationUnit","durationValue","frequencyUnit","frequencyValue","dateCursor","nextOccurrenceEnd","nextOccurrenceStart","nextOccurrence","nextDateCursor","_regeneratorRuntime","wrap","getNextLastDayOfMonth$","_context","prev","next","unit","value","tz","startOf","Month","valueOf","add","endOf","Day","subtract","abrupt","stop","_marked"],"sources":["../../../src/scheduling/strategies/getNextLastDayOfMonth.ts"],"sourcesContent":["import moment from 'moment-timezone'\n\nimport { GetNext, Interval, Unit } from '../scheduling.types'\n\n/**\n * Generates next occurrence interval for last day of month strategy\n */\nexport function* getNextLastDayOfMonth({\n end,\n isInitial,\n options,\n start,\n timezone,\n}: GetNext): IterableIterator<Interval> {\n const { duration, frequency } = 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 nextOccurrenceEnd: number = moment\n .tz(dateCursor, timezone)\n .endOf(Unit.Month)\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":"getNextLastDayOfMonth.js","names":["moment","Unit","getNextLastDayOfMonth","_ref","end","isInitial","options","start","timezone","_regeneratorRuntime","mark","_callee","duration","frequency","durationUnit","durationValue","frequencyUnit","frequencyValue","dateCursor","nextOccurrenceEnd","nextOccurrenceStart","nextOccurrence","nextDateCursor","wrap","_context","prev","next","unit","value","tz","startOf","Month","valueOf","add","endOf","Day","subtract","abrupt","stop"],"sources":["../../../src/scheduling/strategies/getNextLastDayOfMonth.ts"],"sourcesContent":["import moment from 'moment-timezone'\n\nimport { GetNext, Interval, Unit } from '../scheduling.types'\n\n/**\n * Generates next occurrence interval for last day of month strategy\n */\nexport function* getNextLastDayOfMonth({\n end,\n isInitial,\n options,\n start,\n timezone,\n}: GetNext): IterableIterator<Interval> {\n const { duration, frequency } = 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 nextOccurrenceEnd: number = moment\n .tz(dateCursor, timezone)\n .endOf(Unit.Month)\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,5 +1,4 @@
1
1
  import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- var _marked = /*#__PURE__*/_regeneratorRuntime.mark(getNextLastWeekdayOfMonth);
3
2
  import moment from 'moment-timezone';
4
3
  import { Unit } from '../scheduling.types';
5
4
 
@@ -7,19 +6,23 @@ import { Unit } from '../scheduling.types';
7
6
  * Generates next occurrence interval for last weekday of month strategy
8
7
  */
9
8
  export function getNextLastWeekdayOfMonth(_ref) {
10
- var end, isInitial, options, start, timezone, duration, frequency, weekday, durationUnit, durationValue, frequencyUnit, frequencyValue, dateCursor, mStartOfMonth, year, month, startDay, date, nextOccurrenceEnd, nextOccurrenceStart, nextOccurrence, nextDateCursor;
11
- return _regeneratorRuntime.wrap(function getNextLastWeekdayOfMonth$(_context) {
12
- while (1) {
13
- switch (_context.prev = _context.next) {
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 duration, frequency, weekday, durationUnit, durationValue, frequencyUnit, frequencyValue, dateCursor, mStartOfMonth, year, month, startDay, date, nextOccurrenceEnd, nextOccurrenceStart, nextOccurrence, nextDateCursor;
16
+ return _regeneratorRuntime.wrap(function (_context) {
17
+ while (1) switch (_context.prev = _context.next) {
14
18
  case 0:
15
- end = _ref.end, isInitial = _ref.isInitial, options = _ref.options, start = _ref.start, timezone = _ref.timezone;
16
19
  duration = options.duration, frequency = options.frequency, weekday = options.weekday;
17
20
  durationUnit = duration.unit, durationValue = duration.value;
18
21
  frequencyUnit = frequency.unit, frequencyValue = frequency.value;
19
22
  dateCursor = isInitial ? moment.tz(start, timezone).startOf(Unit.Month).valueOf() : moment.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(Unit.Month).valueOf();
20
- case 5:
23
+ case 1:
21
24
  if (!(dateCursor < end)) {
22
- _context.next = 23;
25
+ _context.next = 4;
23
26
  break;
24
27
  }
25
28
  mStartOfMonth = moment.tz(dateCursor, timezone).add(1, Unit.Month);
@@ -30,28 +33,28 @@ export function getNextLastWeekdayOfMonth(_ref) {
30
33
  nextOccurrenceEnd = moment.tz(timezone).year(year).month(month).date(date).add(1, Unit.Day).startOf(Unit.Day).subtract(1, Unit.Week).valueOf();
31
34
  nextOccurrenceStart = moment.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
32
35
  if (!(nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end)) {
33
- _context.next = 15;
36
+ _context.next = 2;
34
37
  break;
35
38
  }
36
39
  return _context.abrupt("return");
37
- case 15:
40
+ case 2:
38
41
  if (!(nextOccurrenceStart >= start)) {
39
- _context.next = 19;
42
+ _context.next = 3;
40
43
  break;
41
44
  }
42
45
  nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
43
- _context.next = 19;
46
+ _context.next = 3;
44
47
  return nextOccurrence;
45
- case 19:
48
+ case 3:
46
49
  nextDateCursor = mStartOfMonth.valueOf();
47
50
  dateCursor = nextDateCursor;
48
- _context.next = 5;
51
+ _context.next = 1;
49
52
  break;
50
- case 23:
53
+ case 4:
51
54
  case "end":
52
55
  return _context.stop();
53
56
  }
54
- }
55
- }, _marked);
57
+ }, _callee);
58
+ })();
56
59
  }
57
60
  //# sourceMappingURL=getNextLastWeekdayOfMonth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNextLastWeekdayOfMonth.js","names":["getNextLastWeekdayOfMonth","moment","Unit","_ref","end","isInitial","options","start","timezone","duration","frequency","weekday","durationUnit","durationValue","frequencyUnit","frequencyValue","dateCursor","mStartOfMonth","year","month","startDay","date","nextOccurrenceEnd","nextOccurrenceStart","nextOccurrence","nextDateCursor","_regeneratorRuntime","wrap","getNextLastWeekdayOfMonth$","_context","prev","next","unit","value","tz","startOf","Month","valueOf","add","isoWeekday","Day","subtract","Week","abrupt","stop","_marked"],"sources":["../../../src/scheduling/strategies/getNextLastWeekdayOfMonth.ts"],"sourcesContent":["import moment from 'moment-timezone'\n\nimport { GetNext, Interval, Unit } from '../scheduling.types'\n\n/**\n * Generates next occurrence interval for last weekday of month strategy\n */\nexport function* getNextLastWeekdayOfMonth({\n end,\n isInitial,\n options,\n start,\n timezone,\n}: GetNext): IterableIterator<Interval> {\n const { duration, frequency, weekday } = 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).add(1, Unit.Month)\n\n const year: number = mStartOfMonth.year()\n const month: number = mStartOfMonth.month()\n const startDay: number = mStartOfMonth.isoWeekday()\n const date: number =\n startDay > weekday ? weekday - startDay + 8 : weekday - startDay + 1\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 .subtract(1, Unit.Week)\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 = mStartOfMonth.valueOf()\n\n dateCursor = nextDateCursor\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getNextLastWeekdayOfMonth.js","names":["moment","Unit","getNextLastWeekdayOfMonth","_ref","end","isInitial","options","start","timezone","_regeneratorRuntime","mark","_callee","duration","frequency","weekday","durationUnit","durationValue","frequencyUnit","frequencyValue","dateCursor","mStartOfMonth","year","month","startDay","date","nextOccurrenceEnd","nextOccurrenceStart","nextOccurrence","nextDateCursor","wrap","_context","prev","next","unit","value","tz","startOf","Month","valueOf","add","isoWeekday","Day","subtract","Week","abrupt","stop"],"sources":["../../../src/scheduling/strategies/getNextLastWeekdayOfMonth.ts"],"sourcesContent":["import moment from 'moment-timezone'\n\nimport { GetNext, Interval, Unit } from '../scheduling.types'\n\n/**\n * Generates next occurrence interval for last weekday of month strategy\n */\nexport function* getNextLastWeekdayOfMonth({\n end,\n isInitial,\n options,\n start,\n timezone,\n}: GetNext): IterableIterator<Interval> {\n const { duration, frequency, weekday } = 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).add(1, Unit.Month)\n\n const year: number = mStartOfMonth.year()\n const month: number = mStartOfMonth.month()\n const startDay: number = mStartOfMonth.isoWeekday()\n const date: number =\n startDay > weekday ? weekday - startDay + 8 : weekday - startDay + 1\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 .subtract(1, Unit.Week)\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 = mStartOfMonth.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,yBAAyBA,CAAAC,IAAA;EAAA,IACxCC,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,OAAA,EAAAC,YAAA,EAAAC,aAAA,EAAAC,aAAA,EAAAC,cAAA,EAAAC,UAAA,EAAAC,aAAA,EAAAC,IAAA,EAAAC,KAAA,EAAAC,QAAA,EAAAC,IAAA,EAAAC,iBAAA,EAAAC,mBAAA,EAAAC,cAAA,EAAAC,cAAA;IAAA,OAAAnB,mBAAA,CAAAoB,IAAA,WAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAEApB,QAAQ,GAAyBN,OAAO,CAAxCM,QAAQ,EAAEC,SAAS,GAAcP,OAAO,CAA9BO,SAAS,EAAEC,OAAO,GAAKR,OAAO,CAAnBQ,OAAO;UACtBC,YAAY,GAA2BH,QAAQ,CAArDqB,IAAI,EAAuBjB,aAAa,GAAKJ,QAAQ,CAAjCsB,KAAK;UACnBjB,aAAa,GAA4BJ,SAAS,CAAxDoB,IAAI,EAAwBf,cAAc,GAAKL,SAAS,CAAnCqB,KAAK;UAE9Bf,UAAkB,GAAGd,SAAS,GAC9BL,MAAM,CACHmC,EAAE,CAAC5B,KAAK,EAAEC,QAAQ,CAAC,CACnB4B,OAAO,CAACnC,IAAI,CAACoC,KAAK,CAAC,CACnBC,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,KAAK,CAAC,CACnBC,OAAO,CAAC,CAAC;QAAA;UAAA,MAETnB,UAAU,GAAGf,GAAG;YAAA0B,QAAA,CAAAE,IAAA;YAAA;UAAA;UACfZ,aAAa,GAAGpB,MAAM,CAACmC,EAAE,CAAChB,UAAU,EAAEX,QAAQ,CAAC,CAAC+B,GAAG,CAAC,CAAC,EAAEtC,IAAI,CAACoC,KAAK,CAAC;UAElEhB,IAAY,GAAGD,aAAa,CAACC,IAAI,CAAC,CAAC;UACnCC,KAAa,GAAGF,aAAa,CAACE,KAAK,CAAC,CAAC;UACrCC,QAAgB,GAAGH,aAAa,CAACoB,UAAU,CAAC,CAAC;UAC7ChB,IAAY,GAChBD,QAAQ,GAAGT,OAAO,GAAGA,OAAO,GAAGS,QAAQ,GAAG,CAAC,GAAGT,OAAO,GAAGS,QAAQ,GAAG,CAAC;UAEhEE,iBAAyB,GAAGzB,MAAM,CACrCmC,EAAE,CAAC3B,QAAQ,CAAC,CACZa,IAAI,CAACA,IAAI,CAAC,CACVC,KAAK,CAACA,KAAK,CAAC,CACZE,IAAI,CAACA,IAAI,CAAC,CACVe,GAAG,CAAC,CAAC,EAAEtC,IAAI,CAACwC,GAAG,CAAC,CAChBL,OAAO,CAACnC,IAAI,CAACwC,GAAG,CAAC,CACjBC,QAAQ,CAAC,CAAC,EAAEzC,IAAI,CAAC0C,IAAI,CAAC,CACtBL,OAAO,CAAC,CAAC;UAENZ,mBAA2B,GAAG1B,MAAM,CACvCmC,EAAE,CAACV,iBAAiB,EAAEjB,QAAQ,CAAC,CAC/BkC,QAAQ,CAAC1B,aAAa,EAAED,YAAY,CAAC,CACrCuB,OAAO,CAAC,CAAC;UAAA,MAERb,iBAAiB,IAAIC,mBAAmB,IAAID,iBAAiB,GAAGrB,GAAG;YAAA0B,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAc,MAAA;QAAA;UAAA,MAInElB,mBAAmB,IAAInB,KAAK;YAAAuB,QAAA,CAAAE,IAAA;YAAA;UAAA;UACxBL,cAAwB,GAAG,CAC/BD,mBAAmB,EACnBD,iBAAiB,GAAG,CAAC,CACtB;UAAAK,QAAA,CAAAE,IAAA;UAED,OAAML,cAAc;QAAA;UAGhBC,cAAc,GAAGR,aAAa,CAACkB,OAAO,CAAC,CAAC;UAE9CnB,UAAU,GAAGS,cAAc;UAAAE,QAAA,CAAAE,IAAA;UAAA;QAAA;QAAA;UAAA,OAAAF,QAAA,CAAAe,IAAA;MAAA;IAAA,GAAAlC,OAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,38 +1,39 @@
1
1
  import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- var _marked = /*#__PURE__*/_regeneratorRuntime.mark(getNextNoRepeat);
3
2
  import moment from 'moment-timezone';
4
3
  /**
5
4
  * Generates next occurrence interval for non repeat strategy
6
5
  */
7
6
  export function getNextNoRepeat(_ref) {
8
- var start, end, timezone, nextOccurrenceStart, nextOccurrenceEnd, nextOccurrence;
9
- return _regeneratorRuntime.wrap(function getNextNoRepeat$(_context) {
10
- while (1) {
11
- switch (_context.prev = _context.next) {
7
+ var start = _ref.start,
8
+ end = _ref.end,
9
+ timezone = _ref.timezone;
10
+ return /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
11
+ var nextOccurrenceStart, nextOccurrenceEnd, nextOccurrence;
12
+ return _regeneratorRuntime.wrap(function (_context) {
13
+ while (1) switch (_context.prev = _context.next) {
12
14
  case 0:
13
- start = _ref.start, end = _ref.end, timezone = _ref.timezone;
14
15
  nextOccurrenceStart = moment.tz(start, timezone).valueOf();
15
16
  nextOccurrenceEnd = moment.tz(end, timezone).valueOf() - 1;
16
17
  if (!(nextOccurrenceStart < start)) {
17
- _context.next = 5;
18
+ _context.next = 1;
18
19
  break;
19
20
  }
20
21
  return _context.abrupt("return");
21
- case 5:
22
+ case 1:
22
23
  if (!(nextOccurrenceEnd <= nextOccurrenceStart)) {
23
- _context.next = 7;
24
+ _context.next = 2;
24
25
  break;
25
26
  }
26
27
  return _context.abrupt("return");
27
- case 7:
28
+ case 2:
28
29
  nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd];
29
- _context.next = 10;
30
+ _context.next = 3;
30
31
  return nextOccurrence;
31
- case 10:
32
+ case 3:
32
33
  case "end":
33
34
  return _context.stop();
34
35
  }
35
- }
36
- }, _marked);
36
+ }, _callee);
37
+ })();
37
38
  }
38
39
  //# sourceMappingURL=getNextNoRepeat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNextNoRepeat.js","names":["getNextNoRepeat","moment","_ref","start","end","timezone","nextOccurrenceStart","nextOccurrenceEnd","nextOccurrence","_regeneratorRuntime","wrap","getNextNoRepeat$","_context","prev","next","tz","valueOf","abrupt","stop","_marked"],"sources":["../../../src/scheduling/strategies/getNextNoRepeat.ts"],"sourcesContent":["import moment from 'moment-timezone'\n\nimport { GetNext, Interval } from '../scheduling.types'\n\n/**\n * Generates next occurrence interval for non repeat strategy\n */\nexport function* getNextNoRepeat({\n start,\n end,\n timezone,\n}: GetNext): IterableIterator<Interval> {\n const nextOccurrenceStart: number = moment.tz(start, timezone).valueOf()\n const nextOccurrenceEnd: number = moment.tz(end, timezone).valueOf() - 1\n\n if (nextOccurrenceStart < start) {\n return\n }\n\n if (nextOccurrenceEnd <= nextOccurrenceStart) {\n return\n }\n\n const nextOccurrence: Interval = [nextOccurrenceStart, nextOccurrenceEnd]\n\n yield nextOccurrence\n}\n"],"mappings":";oDAOiBA,eAAe;AAPhC,OAAOC,MAAM,MAAM,iBAAiB;AAIpC;AACA;AACA;AACA,OAAO,SAAUD,eAAeA,CAAAE,IAAA;EAAA,IAAAC,KAAA,EAAAC,GAAA,EAAAC,QAAA,EAAAC,mBAAA,EAAAC,iBAAA,EAAAC,cAAA;EAAA,OAAAC,mBAAA,CAAAC,IAAA,UAAAC,iBAAAC,QAAA;IAAA;MAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAC9BX,KAAK,GAAAD,IAAA,CAALC,KAAK,EACLC,GAAG,GAAAF,IAAA,CAAHE,GAAG,EACHC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;UAEFC,mBAA2B,GAAGL,MAAM,CAACc,EAAE,CAACZ,KAAK,EAAEE,QAAQ,CAAC,CAACW,OAAO,CAAC,CAAC;UAClET,iBAAyB,GAAGN,MAAM,CAACc,EAAE,CAACX,GAAG,EAAEC,QAAQ,CAAC,CAACW,OAAO,CAAC,CAAC,GAAG,CAAC;UAAA,MAEpEV,mBAAmB,GAAGH,KAAK;YAAAS,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAK,MAAA;QAAA;UAAA,MAI3BV,iBAAiB,IAAID,mBAAmB;YAAAM,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAK,MAAA;QAAA;UAItCT,cAAwB,GAAG,CAACF,mBAAmB,EAAEC,iBAAiB,CAAC;UAAAK,QAAA,CAAAE,IAAA;UAEzE,OAAMN,cAAc;QAAA;QAAA;UAAA,OAAAI,QAAA,CAAAM,IAAA;MAAA;IAAA;EAAA,GAAAC,OAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"getNextNoRepeat.js","names":["moment","getNextNoRepeat","_ref","start","end","timezone","_regeneratorRuntime","mark","_callee","nextOccurrenceStart","nextOccurrenceEnd","nextOccurrence","wrap","_context","prev","next","tz","valueOf","abrupt","stop"],"sources":["../../../src/scheduling/strategies/getNextNoRepeat.ts"],"sourcesContent":["import moment from 'moment-timezone'\n\nimport { GetNext, Interval } from '../scheduling.types'\n\n/**\n * Generates next occurrence interval for non repeat strategy\n */\nexport function* getNextNoRepeat({\n start,\n end,\n timezone,\n}: GetNext): IterableIterator<Interval> {\n const nextOccurrenceStart: number = moment.tz(start, timezone).valueOf()\n const nextOccurrenceEnd: number = moment.tz(end, timezone).valueOf() - 1\n\n if (nextOccurrenceStart < start) {\n return\n }\n\n if (nextOccurrenceEnd <= nextOccurrenceStart) {\n return\n }\n\n const nextOccurrence: Interval = [nextOccurrenceStart, nextOccurrenceEnd]\n\n yield nextOccurrence\n}\n"],"mappings":";AAAA,OAAOA,MAAM,MAAM,iBAAiB;AAIpC;AACA;AACA;AACA,OAAO,SAAUC,eAAeA,CAAAC,IAAA;EAAA,IAC9BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IACHC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;EAAA,oBAAAC,mBAAA,CAAAC,IAAA,UAAAC,QAAA;IAAA,IAAAC,mBAAA,EAAAC,iBAAA,EAAAC,cAAA;IAAA,OAAAL,mBAAA,CAAAM,IAAA,WAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAEFN,mBAA2B,GAAGT,MAAM,CAACgB,EAAE,CAACb,KAAK,EAAEE,QAAQ,CAAC,CAACY,OAAO,CAAC,CAAC;UAClEP,iBAAyB,GAAGV,MAAM,CAACgB,EAAE,CAACZ,GAAG,EAAEC,QAAQ,CAAC,CAACY,OAAO,CAAC,CAAC,GAAG,CAAC;UAAA,MAEpER,mBAAmB,GAAGN,KAAK;YAAAU,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAK,MAAA;QAAA;UAAA,MAI3BR,iBAAiB,IAAID,mBAAmB;YAAAI,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAK,MAAA;QAAA;UAItCP,cAAwB,GAAG,CAACF,mBAAmB,EAAEC,iBAAiB,CAAC;UAAAG,QAAA,CAAAE,IAAA;UAEzE,OAAMJ,cAAc;QAAA;QAAA;UAAA,OAAAE,QAAA,CAAAM,IAAA;MAAA;IAAA,GAAAX,OAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,8 +1,7 @@
1
1
  import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- var _marked = /*#__PURE__*/_regeneratorRuntime.mark(getNextWeekday);
3
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; } } }; }
4
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; } }
5
- 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; }
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; }
6
5
  import moment from 'moment-timezone';
7
6
  import { Unit } from '../scheduling.types';
8
7
 
@@ -10,72 +9,76 @@ import { Unit } from '../scheduling.types';
10
9
  * Generates next occurrence interval for weekdays strategy
11
10
  */
12
11
  export function getNextWeekday(_ref) {
13
- var end, isInitial, options, start, timezone, duration, frequency, weekdays, durationUnit, durationValue, frequencyUnit, frequencyValue, initial, dateCursor, _iterator, _step, weekday, nextOccurrenceEnd, nextOccurrenceStart, nextOccurrence, nextDateCursor;
14
- return _regeneratorRuntime.wrap(function getNextWeekday$(_context) {
15
- while (1) {
16
- switch (_context.prev = _context.next) {
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) {
17
21
  case 0:
18
- end = _ref.end, isInitial = _ref.isInitial, options = _ref.options, start = _ref.start, timezone = _ref.timezone;
19
22
  duration = options.duration, frequency = options.frequency, weekdays = options.weekdays;
20
23
  durationUnit = duration.unit, durationValue = duration.value;
21
24
  frequencyUnit = frequency.unit, frequencyValue = frequency.value;
22
25
  initial = isInitial;
23
26
  dateCursor = initial ? moment.tz(start, timezone).startOf(Unit.Week).valueOf() : moment.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(Unit.Week).valueOf();
24
- case 6:
27
+ case 1:
25
28
  if (!(dateCursor < end)) {
26
- _context.next = 35;
29
+ _context.next = 11;
27
30
  break;
28
31
  }
29
32
  _iterator = _createForOfIteratorHelper(weekdays);
30
- _context.prev = 8;
33
+ _context.prev = 2;
31
34
  _iterator.s();
32
- case 10:
35
+ case 3:
33
36
  if ((_step = _iterator.n()).done) {
34
- _context.next = 23;
37
+ _context.next = 7;
35
38
  break;
36
39
  }
37
40
  weekday = _step.value;
38
41
  nextOccurrenceEnd = moment.tz(dateCursor, timezone).isoWeekday(weekday).add(1, Unit.Day).startOf(Unit.Day).valueOf();
39
42
  nextOccurrenceStart = moment.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
40
43
  if (!(nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end)) {
41
- _context.next = 16;
44
+ _context.next = 4;
42
45
  break;
43
46
  }
44
47
  return _context.abrupt("return");
45
- case 16:
48
+ case 4:
46
49
  if (!(nextOccurrenceStart >= start)) {
47
- _context.next = 21;
50
+ _context.next = 6;
48
51
  break;
49
52
  }
50
53
  nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
51
- _context.next = 20;
54
+ _context.next = 5;
52
55
  return nextOccurrence;
53
- case 20:
56
+ case 5:
54
57
  initial = false;
55
- case 21:
56
- _context.next = 10;
58
+ case 6:
59
+ _context.next = 3;
57
60
  break;
58
- case 23:
59
- _context.next = 28;
61
+ case 7:
62
+ _context.next = 9;
60
63
  break;
61
- case 25:
62
- _context.prev = 25;
63
- _context.t0 = _context["catch"](8);
64
- _iterator.e(_context.t0);
65
- case 28:
66
- _context.prev = 28;
64
+ case 8:
65
+ _context.prev = 8;
66
+ _t = _context["catch"](2);
67
+ _iterator.e(_t);
68
+ case 9:
69
+ _context.prev = 9;
67
70
  _iterator.f();
68
- return _context.finish(28);
69
- case 31:
71
+ return _context.finish(9);
72
+ case 10:
70
73
  nextDateCursor = moment.tz(dateCursor, timezone).add(1, Unit.Week).valueOf();
71
74
  dateCursor = nextDateCursor;
72
- _context.next = 6;
75
+ _context.next = 1;
73
76
  break;
74
- case 35:
77
+ case 11:
75
78
  case "end":
76
79
  return _context.stop();
77
80
  }
78
- }
79
- }, _marked, null, [[8, 25, 28, 31]]);
81
+ }, _callee, null, [[2, 8, 9, 10]]);
82
+ })();
80
83
  }
81
84
  //# sourceMappingURL=getNextWeekday.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNextWeekday.js","names":["getNextWeekday","_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","moment","Unit","_ref","end","isInitial","options","start","timezone","duration","frequency","weekdays","durationUnit","durationValue","frequencyUnit","frequencyValue","initial","dateCursor","_iterator","_step","weekday","nextOccurrenceEnd","nextOccurrenceStart","nextOccurrence","nextDateCursor","_regeneratorRuntime","wrap","getNextWeekday$","_context","prev","unit","tz","startOf","Week","valueOf","add","isoWeekday","Day","subtract","abrupt","t0","finish","stop","_marked"],"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":"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","ignoreList":[]}
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":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- var _marked = /*#__PURE__*/_regeneratorRuntime.mark(getNextXDayOfXWeekOfMonth);
3
2
  import moment from 'moment-timezone';
4
3
  import { Unit } from '../scheduling.types';
5
4
 
@@ -7,19 +6,23 @@ import { Unit } from '../scheduling.types';
7
6
  * Generates next occurrence interval for x day of x week of month strategy
8
7
  */
9
8
  export function getNextXDayOfXWeekOfMonth(_ref) {
10
- var end, isInitial, options, start, timezone, dayOfWeek, duration, frequency, weekOfMonth, durationUnit, durationValue, frequencyUnit, frequencyValue, dateCursor, mStartOfMonth, year, month, startDayOfMonth, weekOffset, day, date, nextOccurrenceEnd, nextOccurrenceStart, nextOccurrence, nextDateCursor;
11
- return _regeneratorRuntime.wrap(function getNextXDayOfXWeekOfMonth$(_context) {
12
- while (1) {
13
- switch (_context.prev = _context.next) {
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) {
14
18
  case 0:
15
- end = _ref.end, isInitial = _ref.isInitial, options = _ref.options, start = _ref.start, timezone = _ref.timezone;
16
19
  dayOfWeek = options.dayOfWeek, duration = options.duration, frequency = options.frequency, weekOfMonth = options.weekOfMonth;
17
20
  durationUnit = duration.unit, durationValue = duration.value;
18
21
  frequencyUnit = frequency.unit, frequencyValue = frequency.value;
19
22
  dateCursor = isInitial ? moment.tz(start, timezone).startOf(Unit.Month).valueOf() : moment.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(Unit.Month).valueOf();
20
- case 5:
23
+ case 1:
21
24
  if (!(dateCursor < end)) {
22
- _context.next = 25;
25
+ _context.next = 4;
23
26
  break;
24
27
  }
25
28
  mStartOfMonth = moment.tz(dateCursor, timezone);
@@ -32,28 +35,28 @@ export function getNextXDayOfXWeekOfMonth(_ref) {
32
35
  nextOccurrenceEnd = moment.tz(timezone).year(year).month(month).date(date).add(1, Unit.Day).startOf(Unit.Day).valueOf();
33
36
  nextOccurrenceStart = moment.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
34
37
  if (!(nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end)) {
35
- _context.next = 17;
38
+ _context.next = 2;
36
39
  break;
37
40
  }
38
41
  return _context.abrupt("return");
39
- case 17:
42
+ case 2:
40
43
  if (!(nextOccurrenceStart >= start)) {
41
- _context.next = 21;
44
+ _context.next = 3;
42
45
  break;
43
46
  }
44
47
  nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
45
- _context.next = 21;
48
+ _context.next = 3;
46
49
  return nextOccurrence;
47
- case 21:
50
+ case 3:
48
51
  nextDateCursor = moment.tz(dateCursor, timezone).add(1, Unit.Month).valueOf();
49
52
  dateCursor = nextDateCursor;
50
- _context.next = 5;
53
+ _context.next = 1;
51
54
  break;
52
- case 25:
55
+ case 4:
53
56
  case "end":
54
57
  return _context.stop();
55
58
  }
56
- }
57
- }, _marked);
59
+ }, _callee);
60
+ })();
58
61
  }
59
62
  //# sourceMappingURL=getNextXDayOfXWeekOfMonth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNextXDayOfXWeekOfMonth.js","names":["getNextXDayOfXWeekOfMonth","moment","Unit","_ref","end","isInitial","options","start","timezone","dayOfWeek","duration","frequency","weekOfMonth","durationUnit","durationValue","frequencyUnit","frequencyValue","dateCursor","mStartOfMonth","year","month","startDayOfMonth","weekOffset","day","date","nextOccurrenceEnd","nextOccurrenceStart","nextOccurrence","nextDateCursor","_regeneratorRuntime","wrap","getNextXDayOfXWeekOfMonth$","_context","prev","next","unit","value","tz","startOf","Month","valueOf","add","isoWeekday","Day","subtract","abrupt","stop","_marked"],"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":["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,5 +1,5 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
3
  import { ValidationError } from '../errors';
4
4
  export { ValidationError };
5
5
  var defaultValidateOptions = {
@@ -11,29 +11,27 @@ export function validate(_x) {
11
11
  }
12
12
  function _validate() {
13
13
  _validate = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
14
- var schema, data, _ref$options, options;
15
- return _regeneratorRuntime.wrap(function _callee$(_context) {
16
- while (1) {
17
- switch (_context.prev = _context.next) {
18
- case 0:
19
- schema = _ref.schema, data = _ref.data, _ref$options = _ref.options, options = _ref$options === void 0 ? defaultValidateOptions : _ref$options;
20
- _context.prev = 1;
21
- _context.next = 4;
22
- return schema.validate(data, options);
23
- case 4:
24
- return _context.abrupt("return", _context.sent);
25
- case 7:
26
- _context.prev = 7;
27
- _context.t0 = _context["catch"](1);
28
- throw new ValidationError({
29
- data: _context.t0
30
- });
31
- case 10:
32
- case "end":
33
- return _context.stop();
34
- }
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();
35
33
  }
36
- }, _callee, null, [[1, 7]]);
34
+ }, _callee, null, [[1, 3]]);
37
35
  }));
38
36
  return _validate.apply(this, arguments);
39
37
  }