@lighthouse/common 6.10.0 → 6.10.1-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/.mise.toml +6 -6
  2. package/CHANGELOG.md +758 -758
  3. package/README.md +1 -1
  4. package/dist/errors/FetchImageError.js +3 -3
  5. package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +7 -7
  6. package/dist/helpers/floatify/index.js +6 -6
  7. package/dist/helpers/get-audit-items-data/index.js +47 -36
  8. package/dist/helpers/validate-url/index.js +4 -4
  9. package/dist/pdf/activity-report/index.js +32 -32
  10. package/dist/pdf/audit/index.js +23 -23
  11. package/dist/pdf/helpers/fields/index.js +47 -27
  12. package/dist/pdf/issue/index.js +23 -23
  13. package/dist/pdf/job/index.js +22 -22
  14. package/dist/pdf/shift-report/index.js +28 -28
  15. package/dist/pdf/task/index.js +23 -23
  16. package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +2 -2
  17. package/dist/scheduling/generators/scheduleIntervalsGenerator.js +2 -2
  18. package/dist/scheduling/generators/serviceIntervalsGenerator.js +2 -2
  19. package/dist/scheduling/helpers/convertToTimezone.js +6 -6
  20. package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +2 -2
  21. package/dist/scheduling/helpers/generateRepeatingSchedule.js +2 -2
  22. package/dist/scheduling/helpers/generateScheduleEnd.js +2 -2
  23. package/dist/scheduling/helpers/hasValidStartAndEnd.js +5 -5
  24. package/dist/scheduling/helpers/intervalCovers.js +6 -6
  25. package/dist/scheduling/helpers/intervalIntersectsEnd.js +6 -6
  26. package/dist/scheduling/helpers/intervalIntersectsStart.js +6 -6
  27. package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +6 -6
  28. package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +6 -6
  29. package/dist/scheduling/helpers/intervalOutside.js +6 -6
  30. package/dist/scheduling/helpers/intervalWithin.js +6 -6
  31. package/dist/scheduling/helpers/mergeIntervals.js +6 -6
  32. package/dist/scheduling/helpers/splitIntervals.js +6 -6
  33. package/dist/scheduling/strategies/getNext.js +2 -2
  34. package/dist/scheduling/strategies/getNextExactDateOfMonth.js +2 -2
  35. package/dist/scheduling/strategies/getNextLastDayOfMonth.js +2 -2
  36. package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +2 -2
  37. package/dist/scheduling/strategies/getNextNoRepeat.js +2 -2
  38. package/dist/scheduling/strategies/getNextWeekday.js +2 -2
  39. package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +2 -2
  40. package/dist/service-hours/__helpers__/calculate-hours.js +4 -4
  41. package/dist/service-hours/__helpers__/isOpen.js +2 -2
  42. package/dist/service-hours/schema.js +4 -4
  43. package/lib/constants.js +12 -6
  44. package/lib/constants.js.map +1 -1
  45. package/lib/errors/DomainError.js +14 -21
  46. package/lib/errors/DomainError.js.map +1 -1
  47. package/lib/errors/FetchImageError.js +17 -24
  48. package/lib/errors/FetchImageError.js.map +1 -1
  49. package/lib/errors/ValidationError.js +30 -36
  50. package/lib/errors/ValidationError.js.map +1 -1
  51. package/lib/errors/index.js +23 -5
  52. package/lib/errors/index.js.map +1 -1
  53. package/lib/helpers/build-fetch-url/index.js +43 -47
  54. package/lib/helpers/build-fetch-url/index.js.map +1 -1
  55. package/lib/helpers/fetch-image/index.js +83 -82
  56. package/lib/helpers/fetch-image/index.js.map +1 -1
  57. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +168 -243
  58. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
  59. package/lib/helpers/fetch-image-for-web/index.js +71 -94
  60. package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
  61. package/lib/helpers/fetch-lighthouse-logo/index.js +36 -61
  62. package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
  63. package/lib/helpers/floatify/index.js +13 -7
  64. package/lib/helpers/floatify/index.js.map +1 -1
  65. package/lib/helpers/get-assignees-full-names/index.js +11 -7
  66. package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
  67. package/lib/helpers/get-audit-entry-details/index.js +42 -32
  68. package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
  69. package/lib/helpers/get-audit-items-data/index.js +104 -83
  70. package/lib/helpers/get-audit-items-data/index.js.map +1 -1
  71. package/lib/helpers/get-geometry-geocoded-string/index.js +10 -5
  72. package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
  73. package/lib/helpers/get-issue-details/index.js +53 -43
  74. package/lib/helpers/get-issue-details/index.js.map +1 -1
  75. package/lib/helpers/get-job-details/index.js +49 -41
  76. package/lib/helpers/get-job-details/index.js.map +1 -1
  77. package/lib/helpers/get-location-reference/index.js +32 -34
  78. package/lib/helpers/get-location-reference/index.js.map +1 -1
  79. package/lib/helpers/get-pretty-duration/index.js +16 -10
  80. package/lib/helpers/get-pretty-duration/index.js.map +1 -1
  81. package/lib/helpers/get-reference-details/index.js +20 -10
  82. package/lib/helpers/get-reference-details/index.js.map +1 -1
  83. package/lib/helpers/get-status-details/index.js +8 -2
  84. package/lib/helpers/get-status-details/index.js.map +1 -1
  85. package/lib/helpers/get-task-entry-details/index.js +32 -23
  86. package/lib/helpers/get-task-entry-details/index.js.map +1 -1
  87. package/lib/helpers/get-timezone-abbr/index.js +11 -4
  88. package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
  89. package/lib/helpers/get-timezone-datetime/index.js +20 -13
  90. package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
  91. package/lib/helpers/get-user-full-name/index.js +9 -3
  92. package/lib/helpers/get-user-full-name/index.js.map +1 -1
  93. package/lib/helpers/get-value-as-percentage/index.js +9 -4
  94. package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
  95. package/lib/helpers/image-validators/index.js +18 -12
  96. package/lib/helpers/image-validators/index.js.map +1 -1
  97. package/lib/helpers/index.js +130 -18
  98. package/lib/helpers/index.js.map +1 -1
  99. package/lib/helpers/validate-url/index.js +11 -5
  100. package/lib/helpers/validate-url/index.js.map +1 -1
  101. package/lib/images/index.js +10 -4
  102. package/lib/images/index.js.map +1 -1
  103. package/lib/index.js +66 -10
  104. package/lib/index.js.map +1 -1
  105. package/lib/pdf/activity-report/index.js +407 -537
  106. package/lib/pdf/activity-report/index.js.map +1 -1
  107. package/lib/pdf/audit/index.js +137 -134
  108. package/lib/pdf/audit/index.js.map +1 -1
  109. package/lib/pdf/fonts/index.js +4 -2
  110. package/lib/pdf/fonts/index.js.map +1 -1
  111. package/lib/pdf/helpers/build-audit-content/index.js +57 -51
  112. package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
  113. package/lib/pdf/helpers/build-audit-follow-ups/index.js +52 -50
  114. package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
  115. package/lib/pdf/helpers/build-location-scans-content/index.js +22 -16
  116. package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
  117. package/lib/pdf/helpers/build-template-content/index.js +52 -51
  118. package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
  119. package/lib/pdf/helpers/default-footer/index.js +38 -35
  120. package/lib/pdf/helpers/default-footer/index.js.map +1 -1
  121. package/lib/pdf/helpers/default-header/index.js +40 -35
  122. package/lib/pdf/helpers/default-header/index.js.map +1 -1
  123. package/lib/pdf/helpers/default-styles/index.js +7 -1
  124. package/lib/pdf/helpers/default-styles/index.js.map +1 -1
  125. package/lib/pdf/helpers/fields/index.js +225 -214
  126. package/lib/pdf/helpers/fields/index.js.map +1 -1
  127. package/lib/pdf/helpers/format-location-address/index.js +14 -8
  128. package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
  129. package/lib/pdf/helpers/generate-definition/index.js +60 -65
  130. package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
  131. package/lib/pdf/helpers/horizontal-line/index.js +14 -14
  132. package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
  133. package/lib/pdf/helpers/html-transformer/index.js +45 -35
  134. package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
  135. package/lib/pdf/helpers/index.js +194 -15
  136. package/lib/pdf/helpers/index.js.map +1 -1
  137. package/lib/pdf/helpers/parse-value/index.js +10 -4
  138. package/lib/pdf/helpers/parse-value/index.js.map +1 -1
  139. package/lib/pdf/helpers/table/index.js +136 -205
  140. package/lib/pdf/helpers/table/index.js.map +1 -1
  141. package/lib/pdf/helpers/text/index.js +11 -8
  142. package/lib/pdf/helpers/text/index.js.map +1 -1
  143. package/lib/pdf/icons/index.js +8 -2
  144. package/lib/pdf/icons/index.js.map +1 -1
  145. package/lib/pdf/index.js +47 -6
  146. package/lib/pdf/index.js.map +1 -1
  147. package/lib/pdf/issue/index.js +141 -135
  148. package/lib/pdf/issue/index.js.map +1 -1
  149. package/lib/pdf/job/index.js +95 -81
  150. package/lib/pdf/job/index.js.map +1 -1
  151. package/lib/pdf/shift-report/emptyFixtures.js +8 -2
  152. package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
  153. package/lib/pdf/shift-report/index.js +399 -521
  154. package/lib/pdf/shift-report/index.js.map +1 -1
  155. package/lib/pdf/task/index.js +89 -83
  156. package/lib/pdf/task/index.js.map +1 -1
  157. package/lib/scheduling/generators/index.js +38 -3
  158. package/lib/scheduling/generators/index.js.map +1 -1
  159. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +44 -37
  160. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
  161. package/lib/scheduling/generators/scheduleIntervalsGenerator.js +20 -28
  162. package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
  163. package/lib/scheduling/generators/serviceIntervalsGenerator.js +120 -150
  164. package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
  165. package/lib/scheduling/helpers/convertToTimezone.js +18 -11
  166. package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
  167. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +57 -95
  168. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
  169. package/lib/scheduling/helpers/generateRepeatingSchedule.js +80 -119
  170. package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
  171. package/lib/scheduling/helpers/generateScheduleEnd.js +24 -14
  172. package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
  173. package/lib/scheduling/helpers/hasValidStartAndEnd.js +19 -11
  174. package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
  175. package/lib/scheduling/helpers/index.js +159 -14
  176. package/lib/scheduling/helpers/index.js.map +1 -1
  177. package/lib/scheduling/helpers/intervalCovers.js +13 -7
  178. package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
  179. package/lib/scheduling/helpers/intervalIntersectsEnd.js +13 -7
  180. package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
  181. package/lib/scheduling/helpers/intervalIntersectsStart.js +13 -7
  182. package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
  183. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +15 -10
  184. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
  185. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +15 -10
  186. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
  187. package/lib/scheduling/helpers/intervalOutside.js +15 -9
  188. package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
  189. package/lib/scheduling/helpers/intervalWithin.js +13 -7
  190. package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
  191. package/lib/scheduling/helpers/mergeIntervals.js +21 -17
  192. package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
  193. package/lib/scheduling/helpers/splitIntervals.js +24 -23
  194. package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
  195. package/lib/scheduling/index.js +38 -3
  196. package/lib/scheduling/index.js.map +1 -1
  197. package/lib/scheduling/scheduling.types.js +9 -3
  198. package/lib/scheduling/scheduling.types.js.map +1 -1
  199. package/lib/scheduling/strategies/getNext.js +57 -63
  200. package/lib/scheduling/strategies/getNext.js.map +1 -1
  201. package/lib/scheduling/strategies/getNextExactDateOfMonth.js +47 -56
  202. package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
  203. package/lib/scheduling/strategies/getNextLastDayOfMonth.js +43 -51
  204. package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
  205. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +49 -56
  206. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
  207. package/lib/scheduling/strategies/getNextNoRepeat.js +25 -36
  208. package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
  209. package/lib/scheduling/strategies/getNextWeekday.js +47 -79
  210. package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
  211. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +52 -58
  212. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
  213. package/lib/scheduling/strategies/index.js +82 -7
  214. package/lib/scheduling/strategies/index.js.map +1 -1
  215. package/lib/schema/index.js +16 -1
  216. package/lib/schema/index.js.map +1 -1
  217. package/lib/schema/schema.js +28 -34
  218. package/lib/schema/schema.js.map +1 -1
  219. package/lib/service-hours/__helpers__/calculate-hours.js +24 -22
  220. package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
  221. package/lib/service-hours/__helpers__/isOpen.js +25 -24
  222. package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
  223. package/lib/service-hours/index.js +27 -2
  224. package/lib/service-hours/index.js.map +1 -1
  225. package/lib/service-hours/schema.js +68 -55
  226. package/lib/service-hours/schema.js.map +1 -1
  227. package/package.json +86 -86
  228. package/vitest.config.ts +23 -23
  229. package/vitest.setup.js +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"getNext.js","names":["moment","StrategyTypes","Unit","getNext","_ref","end","isInitial","options","start","timezone","type","_regeneratorRuntime","mark","_callee","duration","frequency","durationUnit","durationValue","frequencyUnit","frequencyValue","initial","dateCursor","nextOccurrenceStart","nextOccurrenceEnd","nextOccurrenceStartByBackCalculation","earliestNextOccurrenceStart","nextOccurrence","wrap","_context","prev","next","unit","value","tz","valueOf","add","Millisecond","Stopwatch","subtract","max","abrupt","stop"],"sources":["../../../src/scheduling/strategies/getNext.ts"],"sourcesContent":["import moment from 'moment-timezone'\n\nimport { GetNext, Interval, StrategyTypes, Unit } from '../scheduling.types'\n\n/**\n * Generates next occurrence interval for stopwatch and window strategy\n */\nexport function* getNext({\n end,\n isInitial,\n options,\n start,\n timezone,\n type,\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 initial: boolean = isInitial\n\n let dateCursor: number = initial\n ? moment.tz(start, timezone).valueOf()\n : moment\n .tz(start, timezone)\n .add(1, Unit.Millisecond)\n .valueOf()\n\n while (dateCursor < end) {\n let nextOccurrenceStart: number\n let nextOccurrenceEnd: number\n\n if (type === StrategyTypes.Stopwatch) {\n nextOccurrenceStart = dateCursor\n nextOccurrenceEnd = moment\n .tz(dateCursor, timezone)\n .add(durationValue, durationUnit)\n .valueOf()\n\n } else {\n nextOccurrenceEnd = moment\n .tz(dateCursor, timezone)\n .add(frequencyValue, frequencyUnit)\n .valueOf()\n\n const nextOccurrenceStartByBackCalculation = moment\n .tz(nextOccurrenceEnd, timezone)\n .subtract(durationValue, durationUnit)\n\n const earliestNextOccurrenceStart = moment\n .tz(dateCursor, timezone)\n\n // NOTE: this is to ensure that the next occurrence start is always\n // greater than or equal to the date cursor. Moment js handles month addition and subtraction\n // with estimations (Dec 31st + 2 months gives Feb 28th/29th). This can lead to inaccurate start times when calculating forwards then backwards at the end of the month.\n nextOccurrenceStart =\n moment.max(\n earliestNextOccurrenceStart,\n nextOccurrenceStartByBackCalculation\n ).valueOf()\n }\n\n\n if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {\n return\n }\n\n if (nextOccurrenceStart >= start) {\n const nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1]\n\n yield nextOccurrence\n }\n\n dateCursor = nextOccurrenceEnd\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getNext.js","names":["_momentTimezone","_interopRequireDefault","require","_scheduling","getNext","end","isInitial","options","start","timezone","type","duration","frequency","unit","durationUnit","value","durationValue","frequencyUnit","frequencyValue","initial","dateCursor","moment","tz","valueOf","add","Unit","Millisecond","nextOccurrenceStart","nextOccurrenceEnd","StrategyTypes","Stopwatch","nextOccurrenceStartByBackCalculation","subtract","earliestNextOccurrenceStart","max","nextOccurrence"],"sources":["../../../src/scheduling/strategies/getNext.ts"],"sourcesContent":["import moment from 'moment-timezone'\r\n\r\nimport { GetNext, Interval, StrategyTypes, Unit } from '../scheduling.types'\r\n\r\n/**\r\n * Generates next occurrence interval for stopwatch and window strategy\r\n */\r\nexport function* getNext({\r\n end,\r\n isInitial,\r\n options,\r\n start,\r\n timezone,\r\n type,\r\n}: GetNext): IterableIterator<Interval> {\r\n const { duration, frequency } = options\r\n const { unit: durationUnit, value: durationValue } = duration\r\n const { unit: frequencyUnit, value: frequencyValue } = frequency\r\n\r\n let initial: boolean = isInitial\r\n\r\n let dateCursor: number = initial\r\n ? moment.tz(start, timezone).valueOf()\r\n : moment\r\n .tz(start, timezone)\r\n .add(1, Unit.Millisecond)\r\n .valueOf()\r\n\r\n while (dateCursor < end) {\r\n let nextOccurrenceStart: number\r\n let nextOccurrenceEnd: number\r\n\r\n if (type === StrategyTypes.Stopwatch) {\r\n nextOccurrenceStart = dateCursor\r\n nextOccurrenceEnd = moment\r\n .tz(dateCursor, timezone)\r\n .add(durationValue, durationUnit)\r\n .valueOf()\r\n\r\n } else {\r\n nextOccurrenceEnd = moment\r\n .tz(dateCursor, timezone)\r\n .add(frequencyValue, frequencyUnit)\r\n .valueOf()\r\n\r\n const nextOccurrenceStartByBackCalculation = moment\r\n .tz(nextOccurrenceEnd, timezone)\r\n .subtract(durationValue, durationUnit)\r\n\r\n const earliestNextOccurrenceStart = moment\r\n .tz(dateCursor, timezone)\r\n\r\n // NOTE: this is to ensure that the next occurrence start is always\r\n // greater than or equal to the date cursor. Moment js handles month addition and subtraction\r\n // with estimations (Dec 31st + 2 months gives Feb 28th/29th). This can lead to inaccurate start times when calculating forwards then backwards at the end of the month.\r\n nextOccurrenceStart =\r\n moment.max(\r\n earliestNextOccurrenceStart,\r\n nextOccurrenceStartByBackCalculation\r\n ).valueOf()\r\n }\r\n\r\n\r\n if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {\r\n return\r\n }\r\n\r\n if (nextOccurrenceStart >= start) {\r\n const nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1]\r\n\r\n yield nextOccurrence\r\n }\r\n\r\n dateCursor = nextOccurrenceEnd\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACO,UAAUE,OAAOA,CAAC;EACvBC,GAAG;EACHC,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC,QAAQ;EACRC;AACO,CAAC,EAA8B;EACtC,MAAM;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGL,OAAO;EACvC,MAAM;IAAEM,IAAI,EAAEC,YAAY;IAAEC,KAAK,EAAEC;EAAc,CAAC,GAAGL,QAAQ;EAC7D,MAAM;IAAEE,IAAI,EAAEI,aAAa;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAGN,SAAS;EAEhE,IAAIO,OAAgB,GAAGb,SAAS;EAEhC,IAAIc,UAAkB,GAAGD,OAAO,GAC5BE,uBAAM,CAACC,EAAE,CAACd,KAAK,EAAEC,QAAQ,CAAC,CAACc,OAAO,CAAC,CAAC,GACpCF,uBAAM,CACHC,EAAE,CAACd,KAAK,EAAEC,QAAQ,CAAC,CACnBe,GAAG,CAAC,CAAC,EAAEC,gBAAI,CAACC,WAAW,CAAC,CACxBH,OAAO,CAAC,CAAC;EAEhB,OAAOH,UAAU,GAAGf,GAAG,EAAE;IACvB,IAAIsB,mBAA2B;IAC/B,IAAIC,iBAAyB;IAE7B,IAAIlB,IAAI,KAAKmB,yBAAa,CAACC,SAAS,EAAE;MACpCH,mBAAmB,GAAGP,UAAU;MAChCQ,iBAAiB,GAAGP,uBAAM,CACvBC,EAAE,CAACF,UAAU,EAAEX,QAAQ,CAAC,CACxBe,GAAG,CAACR,aAAa,EAAEF,YAAY,CAAC,CAChCS,OAAO,CAAC,CAAC;IAEd,CAAC,MAAM;MACLK,iBAAiB,GAAGP,uBAAM,CACvBC,EAAE,CAACF,UAAU,EAAEX,QAAQ,CAAC,CACxBe,GAAG,CAACN,cAAc,EAAED,aAAa,CAAC,CAClCM,OAAO,CAAC,CAAC;MAEZ,MAAMQ,oCAAoC,GAAGV,uBAAM,CAChDC,EAAE,CAACM,iBAAiB,EAAEnB,QAAQ,CAAC,CAC/BuB,QAAQ,CAAChB,aAAa,EAAEF,YAAY,CAAC;MAExC,MAAMmB,2BAA2B,GAAGZ,uBAAM,CACvCC,EAAE,CAACF,UAAU,EAAEX,QAAQ,CAAC;;MAEzB;MACA;MACA;MACFkB,mBAAmB,GACjBN,uBAAM,CAACa,GAAG,CACVD,2BAA2B,EAC3BF,oCACF,CAAC,CAACR,OAAO,CAAC,CAAC;IACb;IAGA,IAAIK,iBAAiB,IAAID,mBAAmB,IAAIC,iBAAiB,GAAGvB,GAAG,EAAE;MACvE;IACF;IAEA,IAAIsB,mBAAmB,IAAInB,KAAK,EAAE;MAChC,MAAM2B,cAAc,GAAG,CAACR,mBAAmB,EAAEC,iBAAiB,GAAG,CAAC,CAAC;MAEnE,MAAMO,cAAc;IACtB;IAEAf,UAAU,GAAGQ,iBAAiB;EAChC;AACF","ignoreList":[]}
@@ -1,61 +1,52 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import moment from 'moment-timezone';
3
- import { Unit } from '../scheduling.types';
1
+ "use strict";
4
2
 
5
- /**
6
- * Generates next occurrence interval for exact date of month strategy
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getNextExactDateOfMonth = getNextExactDateOfMonth;
8
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
9
+ var _scheduling = require("../scheduling.types");
10
+ /**
11
+ * Generates next occurrence interval for exact date of month strategy
7
12
  */
8
- export function getNextExactDateOfMonth(_ref) {
9
- var end = _ref.end,
10
- isInitial = _ref.isInitial,
11
- options = _ref.options,
12
- start = _ref.start,
13
- timezone = _ref.timezone;
14
- return /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
15
- var date, duration, frequency, durationUnit, durationValue, frequencyUnit, frequencyValue, dateCursor, monthDate, hasExactDate, nextOccurrenceEnd, nextOccurrenceStart, nextOccurrence, nextDateCursor;
16
- return _regeneratorRuntime.wrap(function (_context) {
17
- while (1) switch (_context.prev = _context.next) {
18
- case 0:
19
- date = options.date, duration = options.duration, frequency = options.frequency;
20
- durationUnit = duration.unit, durationValue = duration.value;
21
- frequencyUnit = frequency.unit, frequencyValue = frequency.value;
22
- dateCursor = isInitial ? moment.tz(start, timezone).startOf(Unit.Month).valueOf() : moment.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(Unit.Month).valueOf();
23
- case 1:
24
- if (!(dateCursor < end)) {
25
- _context.next = 4;
26
- break;
27
- }
28
- monthDate = moment.tz(dateCursor, timezone).date(date).date();
29
- hasExactDate = monthDate === date;
30
- if (!hasExactDate) {
31
- _context.next = 3;
32
- break;
33
- }
34
- nextOccurrenceEnd = moment.tz(dateCursor, timezone).date(date).add(1, Unit.Day).valueOf();
35
- nextOccurrenceStart = moment.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
36
- if (!(nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end)) {
37
- _context.next = 2;
38
- break;
39
- }
40
- return _context.abrupt("return");
41
- case 2:
42
- if (!(nextOccurrenceStart >= start)) {
43
- _context.next = 3;
44
- break;
45
- }
46
- nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
47
- _context.next = 3;
48
- return nextOccurrence;
49
- case 3:
50
- nextDateCursor = moment.tz(dateCursor, timezone).add(1, Unit.Month).valueOf();
51
- dateCursor = nextDateCursor;
52
- _context.next = 1;
53
- break;
54
- case 4:
55
- case "end":
56
- return _context.stop();
13
+ function* getNextExactDateOfMonth({
14
+ end,
15
+ isInitial,
16
+ options,
17
+ start,
18
+ timezone
19
+ }) {
20
+ const {
21
+ date,
22
+ duration,
23
+ frequency
24
+ } = options;
25
+ const {
26
+ unit: durationUnit,
27
+ value: durationValue
28
+ } = duration;
29
+ const {
30
+ unit: frequencyUnit,
31
+ value: frequencyValue
32
+ } = frequency;
33
+ let dateCursor = isInitial ? _momentTimezone.default.tz(start, timezone).startOf(_scheduling.Unit.Month).valueOf() : _momentTimezone.default.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(_scheduling.Unit.Month).valueOf();
34
+ while (dateCursor < end) {
35
+ const monthDate = _momentTimezone.default.tz(dateCursor, timezone).date(date).date();
36
+ const hasExactDate = monthDate === date;
37
+ if (hasExactDate) {
38
+ const nextOccurrenceEnd = _momentTimezone.default.tz(dateCursor, timezone).date(date).add(1, _scheduling.Unit.Day).valueOf();
39
+ const nextOccurrenceStart = _momentTimezone.default.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
40
+ if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {
41
+ return;
57
42
  }
58
- }, _callee);
59
- })();
43
+ if (nextOccurrenceStart >= start) {
44
+ const nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
45
+ yield nextOccurrence;
46
+ }
47
+ }
48
+ const nextDateCursor = _momentTimezone.default.tz(dateCursor, timezone).add(1, _scheduling.Unit.Month).valueOf();
49
+ dateCursor = nextDateCursor;
50
+ }
60
51
  }
61
52
  //# sourceMappingURL=getNextExactDateOfMonth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNextExactDateOfMonth.js","names":["moment","Unit","getNextExactDateOfMonth","_ref","end","isInitial","options","start","timezone","_regeneratorRuntime","mark","_callee","date","duration","frequency","durationUnit","durationValue","frequencyUnit","frequencyValue","dateCursor","monthDate","hasExactDate","nextOccurrenceEnd","nextOccurrenceStart","nextOccurrence","nextDateCursor","wrap","_context","prev","next","unit","value","tz","startOf","Month","valueOf","add","Day","subtract","abrupt","stop"],"sources":["../../../src/scheduling/strategies/getNextExactDateOfMonth.ts"],"sourcesContent":["import moment from 'moment-timezone'\n\nimport { GetNext, Interval, Unit } from '../scheduling.types'\n\n/**\n * Generates next occurrence interval for exact date of month strategy\n */\nexport function* getNextExactDateOfMonth({\n end,\n isInitial,\n options,\n start,\n timezone,\n}: GetNext): IterableIterator<Interval> {\n const { date, 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 monthDate = moment\n .tz(dateCursor, timezone)\n .date(date)\n .date()\n\n const hasExactDate = monthDate === date\n\n if (hasExactDate) {\n const nextOccurrenceEnd: number = moment\n .tz(dateCursor, timezone)\n .date(date)\n .add(1, 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\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":"getNextExactDateOfMonth.js","names":["_momentTimezone","_interopRequireDefault","require","_scheduling","getNextExactDateOfMonth","end","isInitial","options","start","timezone","date","duration","frequency","unit","durationUnit","value","durationValue","frequencyUnit","frequencyValue","dateCursor","moment","tz","startOf","Unit","Month","valueOf","add","monthDate","hasExactDate","nextOccurrenceEnd","Day","nextOccurrenceStart","subtract","nextOccurrence","nextDateCursor"],"sources":["../../../src/scheduling/strategies/getNextExactDateOfMonth.ts"],"sourcesContent":["import moment from 'moment-timezone'\r\n\r\nimport { GetNext, Interval, Unit } from '../scheduling.types'\r\n\r\n/**\r\n * Generates next occurrence interval for exact date of month strategy\r\n */\r\nexport function* getNextExactDateOfMonth({\r\n end,\r\n isInitial,\r\n options,\r\n start,\r\n timezone,\r\n}: GetNext): IterableIterator<Interval> {\r\n const { date, duration, frequency } = options\r\n const { unit: durationUnit, value: durationValue } = duration\r\n const { unit: frequencyUnit, value: frequencyValue } = frequency\r\n\r\n let dateCursor: number = isInitial\r\n ? moment\r\n .tz(start, timezone)\r\n .startOf(Unit.Month)\r\n .valueOf()\r\n : moment\r\n .tz(start, timezone)\r\n .add(frequencyValue, frequencyUnit)\r\n .startOf(Unit.Month)\r\n .valueOf()\r\n\r\n while (dateCursor < end) {\r\n const monthDate = moment\r\n .tz(dateCursor, timezone)\r\n .date(date)\r\n .date()\r\n\r\n const hasExactDate = monthDate === date\r\n\r\n if (hasExactDate) {\r\n const nextOccurrenceEnd: number = moment\r\n .tz(dateCursor, timezone)\r\n .date(date)\r\n .add(1, Unit.Day)\r\n .valueOf()\r\n\r\n const nextOccurrenceStart: number = moment\r\n .tz(nextOccurrenceEnd, timezone)\r\n .subtract(durationValue, durationUnit)\r\n .valueOf()\r\n\r\n if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {\r\n return\r\n }\r\n\r\n if (nextOccurrenceStart >= start) {\r\n const nextOccurrence: Interval = [\r\n nextOccurrenceStart,\r\n nextOccurrenceEnd - 1,\r\n ]\r\n\r\n yield nextOccurrence\r\n }\r\n }\r\n\r\n const nextDateCursor: number = moment\r\n .tz(dateCursor, timezone)\r\n .add(1, Unit.Month)\r\n .valueOf()\r\n\r\n dateCursor = nextDateCursor\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACO,UAAUE,uBAAuBA,CAAC;EACvCC,GAAG;EACHC,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC;AACO,CAAC,EAA8B;EACtC,MAAM;IAAEC,IAAI;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGL,OAAO;EAC7C,MAAM;IAAEM,IAAI,EAAEC,YAAY;IAAEC,KAAK,EAAEC;EAAc,CAAC,GAAGL,QAAQ;EAC7D,MAAM;IAAEE,IAAI,EAAEI,aAAa;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAGN,SAAS;EAEhE,IAAIO,UAAkB,GAAGb,SAAS,GAC9Bc,uBAAM,CACHC,EAAE,CAACb,KAAK,EAAEC,QAAQ,CAAC,CACnBa,OAAO,CAACC,gBAAI,CAACC,KAAK,CAAC,CACnBC,OAAO,CAAC,CAAC,GACZL,uBAAM,CACHC,EAAE,CAACb,KAAK,EAAEC,QAAQ,CAAC,CACnBiB,GAAG,CAACR,cAAc,EAAED,aAAa,CAAC,CAClCK,OAAO,CAACC,gBAAI,CAACC,KAAK,CAAC,CACnBC,OAAO,CAAC,CAAC;EAEhB,OAAON,UAAU,GAAGd,GAAG,EAAE;IACvB,MAAMsB,SAAS,GAAGP,uBAAM,CACrBC,EAAE,CAACF,UAAU,EAAEV,QAAQ,CAAC,CACxBC,IAAI,CAACA,IAAI,CAAC,CACVA,IAAI,CAAC,CAAC;IAET,MAAMkB,YAAY,GAAGD,SAAS,KAAKjB,IAAI;IAEvC,IAAIkB,YAAY,EAAE;MAChB,MAAMC,iBAAyB,GAAGT,uBAAM,CACrCC,EAAE,CAACF,UAAU,EAAEV,QAAQ,CAAC,CACxBC,IAAI,CAACA,IAAI,CAAC,CACVgB,GAAG,CAAC,CAAC,EAAEH,gBAAI,CAACO,GAAG,CAAC,CAChBL,OAAO,CAAC,CAAC;MAEZ,MAAMM,mBAA2B,GAAGX,uBAAM,CACvCC,EAAE,CAACQ,iBAAiB,EAAEpB,QAAQ,CAAC,CAC/BuB,QAAQ,CAAChB,aAAa,EAAEF,YAAY,CAAC,CACrCW,OAAO,CAAC,CAAC;MAEZ,IAAII,iBAAiB,IAAIE,mBAAmB,IAAIF,iBAAiB,GAAGxB,GAAG,EAAE;QACvE;MACF;MAEA,IAAI0B,mBAAmB,IAAIvB,KAAK,EAAE;QAChC,MAAMyB,cAAwB,GAAG,CAC/BF,mBAAmB,EACnBF,iBAAiB,GAAG,CAAC,CACtB;QAED,MAAMI,cAAc;MACtB;IACF;IAEA,MAAMC,cAAsB,GAAGd,uBAAM,CAClCC,EAAE,CAACF,UAAU,EAAEV,QAAQ,CAAC,CACxBiB,GAAG,CAAC,CAAC,EAAEH,gBAAI,CAACC,KAAK,CAAC,CAClBC,OAAO,CAAC,CAAC;IAEZN,UAAU,GAAGe,cAAc;EAC7B;AACF","ignoreList":[]}
@@ -1,55 +1,47 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import moment from 'moment-timezone';
3
- import { Unit } from '../scheduling.types';
1
+ "use strict";
4
2
 
5
- /**
6
- * Generates next occurrence interval for last day of month strategy
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getNextLastDayOfMonth = getNextLastDayOfMonth;
8
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
9
+ var _scheduling = require("../scheduling.types");
10
+ /**
11
+ * Generates next occurrence interval for last day of month strategy
7
12
  */
8
- export function getNextLastDayOfMonth(_ref) {
9
- var end = _ref.end,
10
- isInitial = _ref.isInitial,
11
- options = _ref.options,
12
- start = _ref.start,
13
- timezone = _ref.timezone;
14
- return /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
15
- var 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) {
18
- case 0:
19
- duration = options.duration, frequency = options.frequency;
20
- durationUnit = duration.unit, durationValue = duration.value;
21
- frequencyUnit = frequency.unit, frequencyValue = frequency.value;
22
- dateCursor = isInitial ? moment.tz(start, timezone).startOf(Unit.Month).valueOf() : moment.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(Unit.Month).valueOf();
23
- case 1:
24
- if (!(dateCursor < end)) {
25
- _context.next = 4;
26
- break;
27
- }
28
- nextOccurrenceEnd = moment.tz(dateCursor, timezone).endOf(Unit.Month).add(1, Unit.Day).startOf(Unit.Day).valueOf();
29
- nextOccurrenceStart = moment.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
30
- if (!(nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end)) {
31
- _context.next = 2;
32
- break;
33
- }
34
- return _context.abrupt("return");
35
- case 2:
36
- if (!(nextOccurrenceStart >= start)) {
37
- _context.next = 3;
38
- break;
39
- }
40
- nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
41
- _context.next = 3;
42
- return nextOccurrence;
43
- case 3:
44
- nextDateCursor = moment.tz(dateCursor, timezone).add(1, Unit.Month).valueOf();
45
- dateCursor = nextDateCursor;
46
- _context.next = 1;
47
- break;
48
- case 4:
49
- case "end":
50
- return _context.stop();
51
- }
52
- }, _callee);
53
- })();
13
+ function* getNextLastDayOfMonth({
14
+ end,
15
+ isInitial,
16
+ options,
17
+ start,
18
+ timezone
19
+ }) {
20
+ const {
21
+ duration,
22
+ frequency
23
+ } = options;
24
+ const {
25
+ unit: durationUnit,
26
+ value: durationValue
27
+ } = duration;
28
+ const {
29
+ unit: frequencyUnit,
30
+ value: frequencyValue
31
+ } = frequency;
32
+ let dateCursor = isInitial ? _momentTimezone.default.tz(start, timezone).startOf(_scheduling.Unit.Month).valueOf() : _momentTimezone.default.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(_scheduling.Unit.Month).valueOf();
33
+ while (dateCursor < end) {
34
+ const nextOccurrenceEnd = _momentTimezone.default.tz(dateCursor, timezone).endOf(_scheduling.Unit.Month).add(1, _scheduling.Unit.Day).startOf(_scheduling.Unit.Day).valueOf();
35
+ const nextOccurrenceStart = _momentTimezone.default.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
36
+ if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {
37
+ return;
38
+ }
39
+ if (nextOccurrenceStart >= start) {
40
+ const nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
41
+ yield nextOccurrence;
42
+ }
43
+ const nextDateCursor = _momentTimezone.default.tz(dateCursor, timezone).add(1, _scheduling.Unit.Month).valueOf();
44
+ dateCursor = nextDateCursor;
45
+ }
54
46
  }
55
47
  //# sourceMappingURL=getNextLastDayOfMonth.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"getNextLastDayOfMonth.js","names":["_momentTimezone","_interopRequireDefault","require","_scheduling","getNextLastDayOfMonth","end","isInitial","options","start","timezone","duration","frequency","unit","durationUnit","value","durationValue","frequencyUnit","frequencyValue","dateCursor","moment","tz","startOf","Unit","Month","valueOf","add","nextOccurrenceEnd","endOf","Day","nextOccurrenceStart","subtract","nextOccurrence","nextDateCursor"],"sources":["../../../src/scheduling/strategies/getNextLastDayOfMonth.ts"],"sourcesContent":["import moment from 'moment-timezone'\r\n\r\nimport { GetNext, Interval, Unit } from '../scheduling.types'\r\n\r\n/**\r\n * Generates next occurrence interval for last day of month strategy\r\n */\r\nexport function* getNextLastDayOfMonth({\r\n end,\r\n isInitial,\r\n options,\r\n start,\r\n timezone,\r\n}: GetNext): IterableIterator<Interval> {\r\n const { duration, frequency } = options\r\n const { unit: durationUnit, value: durationValue } = duration\r\n const { unit: frequencyUnit, value: frequencyValue } = frequency\r\n\r\n let dateCursor: number = isInitial\r\n ? moment\r\n .tz(start, timezone)\r\n .startOf(Unit.Month)\r\n .valueOf()\r\n : moment\r\n .tz(start, timezone)\r\n .add(frequencyValue, frequencyUnit)\r\n .startOf(Unit.Month)\r\n .valueOf()\r\n\r\n while (dateCursor < end) {\r\n const nextOccurrenceEnd: number = moment\r\n .tz(dateCursor, timezone)\r\n .endOf(Unit.Month)\r\n .add(1, Unit.Day)\r\n .startOf(Unit.Day)\r\n .valueOf()\r\n\r\n const nextOccurrenceStart: number = moment\r\n .tz(nextOccurrenceEnd, timezone)\r\n .subtract(durationValue, durationUnit)\r\n .valueOf()\r\n\r\n if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {\r\n return\r\n }\r\n\r\n if (nextOccurrenceStart >= start) {\r\n const nextOccurrence: Interval = [\r\n nextOccurrenceStart,\r\n nextOccurrenceEnd - 1,\r\n ]\r\n\r\n yield nextOccurrence\r\n }\r\n\r\n const nextDateCursor: number = moment\r\n .tz(dateCursor, timezone)\r\n .add(1, Unit.Month)\r\n .valueOf()\r\n\r\n dateCursor = nextDateCursor\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACO,UAAUE,qBAAqBA,CAAC;EACrCC,GAAG;EACHC,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC;AACO,CAAC,EAA8B;EACtC,MAAM;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGJ,OAAO;EACvC,MAAM;IAAEK,IAAI,EAAEC,YAAY;IAAEC,KAAK,EAAEC;EAAc,CAAC,GAAGL,QAAQ;EAC7D,MAAM;IAAEE,IAAI,EAAEI,aAAa;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAGN,SAAS;EAEhE,IAAIO,UAAkB,GAAGZ,SAAS,GAC9Ba,uBAAM,CACHC,EAAE,CAACZ,KAAK,EAAEC,QAAQ,CAAC,CACnBY,OAAO,CAACC,gBAAI,CAACC,KAAK,CAAC,CACnBC,OAAO,CAAC,CAAC,GACZL,uBAAM,CACHC,EAAE,CAACZ,KAAK,EAAEC,QAAQ,CAAC,CACnBgB,GAAG,CAACR,cAAc,EAAED,aAAa,CAAC,CAClCK,OAAO,CAACC,gBAAI,CAACC,KAAK,CAAC,CACnBC,OAAO,CAAC,CAAC;EAEhB,OAAON,UAAU,GAAGb,GAAG,EAAE;IACvB,MAAMqB,iBAAyB,GAAGP,uBAAM,CACrCC,EAAE,CAACF,UAAU,EAAET,QAAQ,CAAC,CACxBkB,KAAK,CAACL,gBAAI,CAACC,KAAK,CAAC,CACjBE,GAAG,CAAC,CAAC,EAAEH,gBAAI,CAACM,GAAG,CAAC,CAChBP,OAAO,CAACC,gBAAI,CAACM,GAAG,CAAC,CACjBJ,OAAO,CAAC,CAAC;IAEZ,MAAMK,mBAA2B,GAAGV,uBAAM,CACvCC,EAAE,CAACM,iBAAiB,EAAEjB,QAAQ,CAAC,CAC/BqB,QAAQ,CAACf,aAAa,EAAEF,YAAY,CAAC,CACrCW,OAAO,CAAC,CAAC;IAEZ,IAAIE,iBAAiB,IAAIG,mBAAmB,IAAIH,iBAAiB,GAAGrB,GAAG,EAAE;MACvE;IACF;IAEA,IAAIwB,mBAAmB,IAAIrB,KAAK,EAAE;MAChC,MAAMuB,cAAwB,GAAG,CAC/BF,mBAAmB,EACnBH,iBAAiB,GAAG,CAAC,CACtB;MAED,MAAMK,cAAc;IACtB;IAEA,MAAMC,cAAsB,GAAGb,uBAAM,CAClCC,EAAE,CAACF,UAAU,EAAET,QAAQ,CAAC,CACxBgB,GAAG,CAAC,CAAC,EAAEH,gBAAI,CAACC,KAAK,CAAC,CAClBC,OAAO,CAAC,CAAC;IAEZN,UAAU,GAAGc,cAAc;EAC7B;AACF","ignoreList":[]}
@@ -1,60 +1,53 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import moment from 'moment-timezone';
3
- import { Unit } from '../scheduling.types';
1
+ "use strict";
4
2
 
5
- /**
6
- * Generates next occurrence interval for last weekday of month strategy
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getNextLastWeekdayOfMonth = getNextLastWeekdayOfMonth;
8
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
9
+ var _scheduling = require("../scheduling.types");
10
+ /**
11
+ * Generates next occurrence interval for last weekday of month strategy
7
12
  */
8
- export function getNextLastWeekdayOfMonth(_ref) {
9
- var end = _ref.end,
10
- isInitial = _ref.isInitial,
11
- options = _ref.options,
12
- start = _ref.start,
13
- timezone = _ref.timezone;
14
- return /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
15
- var 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) {
18
- case 0:
19
- duration = options.duration, frequency = options.frequency, weekday = options.weekday;
20
- durationUnit = duration.unit, durationValue = duration.value;
21
- frequencyUnit = frequency.unit, frequencyValue = frequency.value;
22
- dateCursor = isInitial ? moment.tz(start, timezone).startOf(Unit.Month).valueOf() : moment.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(Unit.Month).valueOf();
23
- case 1:
24
- if (!(dateCursor < end)) {
25
- _context.next = 4;
26
- break;
27
- }
28
- mStartOfMonth = moment.tz(dateCursor, timezone).add(1, Unit.Month);
29
- year = mStartOfMonth.year();
30
- month = mStartOfMonth.month();
31
- startDay = mStartOfMonth.isoWeekday();
32
- date = startDay > weekday ? weekday - startDay + 8 : weekday - startDay + 1;
33
- nextOccurrenceEnd = moment.tz(timezone).year(year).month(month).date(date).add(1, Unit.Day).startOf(Unit.Day).subtract(1, Unit.Week).valueOf();
34
- nextOccurrenceStart = moment.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
35
- if (!(nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end)) {
36
- _context.next = 2;
37
- break;
38
- }
39
- return _context.abrupt("return");
40
- case 2:
41
- if (!(nextOccurrenceStart >= start)) {
42
- _context.next = 3;
43
- break;
44
- }
45
- nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
46
- _context.next = 3;
47
- return nextOccurrence;
48
- case 3:
49
- nextDateCursor = mStartOfMonth.valueOf();
50
- dateCursor = nextDateCursor;
51
- _context.next = 1;
52
- break;
53
- case 4:
54
- case "end":
55
- return _context.stop();
56
- }
57
- }, _callee);
58
- })();
13
+ function* getNextLastWeekdayOfMonth({
14
+ end,
15
+ isInitial,
16
+ options,
17
+ start,
18
+ timezone
19
+ }) {
20
+ const {
21
+ duration,
22
+ frequency,
23
+ weekday
24
+ } = options;
25
+ const {
26
+ unit: durationUnit,
27
+ value: durationValue
28
+ } = duration;
29
+ const {
30
+ unit: frequencyUnit,
31
+ value: frequencyValue
32
+ } = frequency;
33
+ let dateCursor = isInitial ? _momentTimezone.default.tz(start, timezone).startOf(_scheduling.Unit.Month).valueOf() : _momentTimezone.default.tz(start, timezone).add(frequencyValue, frequencyUnit).startOf(_scheduling.Unit.Month).valueOf();
34
+ while (dateCursor < end) {
35
+ const mStartOfMonth = _momentTimezone.default.tz(dateCursor, timezone).add(1, _scheduling.Unit.Month);
36
+ const year = mStartOfMonth.year();
37
+ const month = mStartOfMonth.month();
38
+ const startDay = mStartOfMonth.isoWeekday();
39
+ const date = startDay > weekday ? weekday - startDay + 8 : weekday - startDay + 1;
40
+ const nextOccurrenceEnd = _momentTimezone.default.tz(timezone).year(year).month(month).date(date).add(1, _scheduling.Unit.Day).startOf(_scheduling.Unit.Day).subtract(1, _scheduling.Unit.Week).valueOf();
41
+ const nextOccurrenceStart = _momentTimezone.default.tz(nextOccurrenceEnd, timezone).subtract(durationValue, durationUnit).valueOf();
42
+ if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {
43
+ return;
44
+ }
45
+ if (nextOccurrenceStart >= start) {
46
+ const nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd - 1];
47
+ yield nextOccurrence;
48
+ }
49
+ const nextDateCursor = mStartOfMonth.valueOf();
50
+ dateCursor = nextDateCursor;
51
+ }
59
52
  }
60
53
  //# sourceMappingURL=getNextLastWeekdayOfMonth.js.map
@@ -1 +1 @@
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":"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","ignoreList":[]}
1
+ {"version":3,"file":"getNextLastWeekdayOfMonth.js","names":["_momentTimezone","_interopRequireDefault","require","_scheduling","getNextLastWeekdayOfMonth","end","isInitial","options","start","timezone","duration","frequency","weekday","unit","durationUnit","value","durationValue","frequencyUnit","frequencyValue","dateCursor","moment","tz","startOf","Unit","Month","valueOf","add","mStartOfMonth","year","month","startDay","isoWeekday","date","nextOccurrenceEnd","Day","subtract","Week","nextOccurrenceStart","nextOccurrence","nextDateCursor"],"sources":["../../../src/scheduling/strategies/getNextLastWeekdayOfMonth.ts"],"sourcesContent":["import moment from 'moment-timezone'\r\n\r\nimport { GetNext, Interval, Unit } from '../scheduling.types'\r\n\r\n/**\r\n * Generates next occurrence interval for last weekday of month strategy\r\n */\r\nexport function* getNextLastWeekdayOfMonth({\r\n end,\r\n isInitial,\r\n options,\r\n start,\r\n timezone,\r\n}: GetNext): IterableIterator<Interval> {\r\n const { duration, frequency, weekday } = options\r\n const { unit: durationUnit, value: durationValue } = duration\r\n const { unit: frequencyUnit, value: frequencyValue } = frequency\r\n\r\n let dateCursor: number = isInitial\r\n ? moment\r\n .tz(start, timezone)\r\n .startOf(Unit.Month)\r\n .valueOf()\r\n : moment\r\n .tz(start, timezone)\r\n .add(frequencyValue, frequencyUnit)\r\n .startOf(Unit.Month)\r\n .valueOf()\r\n\r\n while (dateCursor < end) {\r\n const mStartOfMonth = moment.tz(dateCursor, timezone).add(1, Unit.Month)\r\n\r\n const year: number = mStartOfMonth.year()\r\n const month: number = mStartOfMonth.month()\r\n const startDay: number = mStartOfMonth.isoWeekday()\r\n const date: number =\r\n startDay > weekday ? weekday - startDay + 8 : weekday - startDay + 1\r\n\r\n const nextOccurrenceEnd: number = moment\r\n .tz(timezone)\r\n .year(year)\r\n .month(month)\r\n .date(date)\r\n .add(1, Unit.Day)\r\n .startOf(Unit.Day)\r\n .subtract(1, Unit.Week)\r\n .valueOf()\r\n\r\n const nextOccurrenceStart: number = moment\r\n .tz(nextOccurrenceEnd, timezone)\r\n .subtract(durationValue, durationUnit)\r\n .valueOf()\r\n\r\n if (nextOccurrenceEnd <= nextOccurrenceStart || nextOccurrenceEnd > end) {\r\n return\r\n }\r\n\r\n if (nextOccurrenceStart >= start) {\r\n const nextOccurrence: Interval = [\r\n nextOccurrenceStart,\r\n nextOccurrenceEnd - 1,\r\n ]\r\n\r\n yield nextOccurrence\r\n }\r\n\r\n const nextDateCursor = mStartOfMonth.valueOf()\r\n\r\n dateCursor = nextDateCursor\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACO,UAAUE,yBAAyBA,CAAC;EACzCC,GAAG;EACHC,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC;AACO,CAAC,EAA8B;EACtC,MAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAGL,OAAO;EAChD,MAAM;IAAEM,IAAI,EAAEC,YAAY;IAAEC,KAAK,EAAEC;EAAc,CAAC,GAAGN,QAAQ;EAC7D,MAAM;IAAEG,IAAI,EAAEI,aAAa;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAGP,SAAS;EAEhE,IAAIQ,UAAkB,GAAGb,SAAS,GAC9Bc,uBAAM,CACHC,EAAE,CAACb,KAAK,EAAEC,QAAQ,CAAC,CACnBa,OAAO,CAACC,gBAAI,CAACC,KAAK,CAAC,CACnBC,OAAO,CAAC,CAAC,GACZL,uBAAM,CACHC,EAAE,CAACb,KAAK,EAAEC,QAAQ,CAAC,CACnBiB,GAAG,CAACR,cAAc,EAAED,aAAa,CAAC,CAClCK,OAAO,CAACC,gBAAI,CAACC,KAAK,CAAC,CACnBC,OAAO,CAAC,CAAC;EAEhB,OAAON,UAAU,GAAGd,GAAG,EAAE;IACvB,MAAMsB,aAAa,GAAGP,uBAAM,CAACC,EAAE,CAACF,UAAU,EAAEV,QAAQ,CAAC,CAACiB,GAAG,CAAC,CAAC,EAAEH,gBAAI,CAACC,KAAK,CAAC;IAExE,MAAMI,IAAY,GAAGD,aAAa,CAACC,IAAI,CAAC,CAAC;IACzC,MAAMC,KAAa,GAAGF,aAAa,CAACE,KAAK,CAAC,CAAC;IAC3C,MAAMC,QAAgB,GAAGH,aAAa,CAACI,UAAU,CAAC,CAAC;IACnD,MAAMC,IAAY,GAChBF,QAAQ,GAAGlB,OAAO,GAAGA,OAAO,GAAGkB,QAAQ,GAAG,CAAC,GAAGlB,OAAO,GAAGkB,QAAQ,GAAG,CAAC;IAEtE,MAAMG,iBAAyB,GAAGb,uBAAM,CACrCC,EAAE,CAACZ,QAAQ,CAAC,CACZmB,IAAI,CAACA,IAAI,CAAC,CACVC,KAAK,CAACA,KAAK,CAAC,CACZG,IAAI,CAACA,IAAI,CAAC,CACVN,GAAG,CAAC,CAAC,EAAEH,gBAAI,CAACW,GAAG,CAAC,CAChBZ,OAAO,CAACC,gBAAI,CAACW,GAAG,CAAC,CACjBC,QAAQ,CAAC,CAAC,EAAEZ,gBAAI,CAACa,IAAI,CAAC,CACtBX,OAAO,CAAC,CAAC;IAEZ,MAAMY,mBAA2B,GAAGjB,uBAAM,CACvCC,EAAE,CAACY,iBAAiB,EAAExB,QAAQ,CAAC,CAC/B0B,QAAQ,CAACnB,aAAa,EAAEF,YAAY,CAAC,CACrCW,OAAO,CAAC,CAAC;IAEZ,IAAIQ,iBAAiB,IAAII,mBAAmB,IAAIJ,iBAAiB,GAAG5B,GAAG,EAAE;MACvE;IACF;IAEA,IAAIgC,mBAAmB,IAAI7B,KAAK,EAAE;MAChC,MAAM8B,cAAwB,GAAG,CAC/BD,mBAAmB,EACnBJ,iBAAiB,GAAG,CAAC,CACtB;MAED,MAAMK,cAAc;IACtB;IAEA,MAAMC,cAAc,GAAGZ,aAAa,CAACF,OAAO,CAAC,CAAC;IAE9CN,UAAU,GAAGoB,cAAc;EAC7B;AACF","ignoreList":[]}
@@ -1,39 +1,28 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import moment from 'moment-timezone';
3
- /**
4
- * Generates next occurrence interval for non repeat strategy
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getNextNoRepeat = getNextNoRepeat;
8
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
9
+ /**
10
+ * Generates next occurrence interval for non repeat strategy
5
11
  */
6
- export function getNextNoRepeat(_ref) {
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) {
14
- case 0:
15
- nextOccurrenceStart = moment.tz(start, timezone).valueOf();
16
- nextOccurrenceEnd = moment.tz(end, timezone).valueOf() - 1;
17
- if (!(nextOccurrenceStart < start)) {
18
- _context.next = 1;
19
- break;
20
- }
21
- return _context.abrupt("return");
22
- case 1:
23
- if (!(nextOccurrenceEnd <= nextOccurrenceStart)) {
24
- _context.next = 2;
25
- break;
26
- }
27
- return _context.abrupt("return");
28
- case 2:
29
- nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd];
30
- _context.next = 3;
31
- return nextOccurrence;
32
- case 3:
33
- case "end":
34
- return _context.stop();
35
- }
36
- }, _callee);
37
- })();
12
+ function* getNextNoRepeat({
13
+ start,
14
+ end,
15
+ timezone
16
+ }) {
17
+ const nextOccurrenceStart = _momentTimezone.default.tz(start, timezone).valueOf();
18
+ const nextOccurrenceEnd = _momentTimezone.default.tz(end, timezone).valueOf() - 1;
19
+ if (nextOccurrenceStart < start) {
20
+ return;
21
+ }
22
+ if (nextOccurrenceEnd <= nextOccurrenceStart) {
23
+ return;
24
+ }
25
+ const nextOccurrence = [nextOccurrenceStart, nextOccurrenceEnd];
26
+ yield nextOccurrence;
38
27
  }
39
28
  //# sourceMappingURL=getNextNoRepeat.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"getNextNoRepeat.js","names":["_momentTimezone","_interopRequireDefault","require","getNextNoRepeat","start","end","timezone","nextOccurrenceStart","moment","tz","valueOf","nextOccurrenceEnd","nextOccurrence"],"sources":["../../../src/scheduling/strategies/getNextNoRepeat.ts"],"sourcesContent":["import moment from 'moment-timezone'\r\n\r\nimport { GetNext, Interval } from '../scheduling.types'\r\n\r\n/**\r\n * Generates next occurrence interval for non repeat strategy\r\n */\r\nexport function* getNextNoRepeat({\r\n start,\r\n end,\r\n timezone,\r\n}: GetNext): IterableIterator<Interval> {\r\n const nextOccurrenceStart: number = moment.tz(start, timezone).valueOf()\r\n const nextOccurrenceEnd: number = moment.tz(end, timezone).valueOf() - 1\r\n\r\n if (nextOccurrenceStart < start) {\r\n return\r\n }\r\n\r\n if (nextOccurrenceEnd <= nextOccurrenceStart) {\r\n return\r\n }\r\n\r\n const nextOccurrence: Interval = [nextOccurrenceStart, nextOccurrenceEnd]\r\n\r\n yield nextOccurrence\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA;AACA;AACA;AACO,UAAUC,eAAeA,CAAC;EAC/BC,KAAK;EACLC,GAAG;EACHC;AACO,CAAC,EAA8B;EACtC,MAAMC,mBAA2B,GAAGC,uBAAM,CAACC,EAAE,CAACL,KAAK,EAAEE,QAAQ,CAAC,CAACI,OAAO,CAAC,CAAC;EACxE,MAAMC,iBAAyB,GAAGH,uBAAM,CAACC,EAAE,CAACJ,GAAG,EAAEC,QAAQ,CAAC,CAACI,OAAO,CAAC,CAAC,GAAG,CAAC;EAExE,IAAIH,mBAAmB,GAAGH,KAAK,EAAE;IAC/B;EACF;EAEA,IAAIO,iBAAiB,IAAIJ,mBAAmB,EAAE;IAC5C;EACF;EAEA,MAAMK,cAAwB,GAAG,CAACL,mBAAmB,EAAEI,iBAAiB,CAAC;EAEzE,MAAMC,cAAc;AACtB","ignoreList":[]}