@bryanhu/codexly 0.18.0 → 0.19.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 (223) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +4 -0
  3. package/README.zh-CN.md +4 -0
  4. package/dist/chunk-B2673ODM.js +260 -0
  5. package/dist/chunk-GT7XTSEG.js +56 -0
  6. package/dist/{chunk-NROPHBJ7.js → chunk-HMXTAIDF.js} +2467 -4020
  7. package/dist/{chunk-M6GWGUSX.js → chunk-X5JZ3VOF.js} +311 -77
  8. package/dist/{chunk-3PU3WPOK.js → chunk-YFWMYA6X.js} +658 -72
  9. package/dist/{chunk-2O7SN37L.js → chunk-ZUECHB6L.js} +1 -1
  10. package/dist/cli.js +113 -39
  11. package/dist/client/index.js +135 -11
  12. package/dist/core/index.js +1 -1
  13. package/dist/protocol/index.js +2 -1
  14. package/dist/providers/codex/index.js +4 -3
  15. package/dist/runtime-instance-worker.js +19 -0
  16. package/dist/scheduled-task-recurrence-worker.js +2969 -0
  17. package/dist/server/index.js +6 -5
  18. package/dist/sqlite-state-worker.js +156 -13
  19. package/dist/web/.vite/manifest.json +106 -106
  20. package/dist/web/.vite/manifest.json.br +0 -0
  21. package/dist/web/.vite/manifest.json.gz +0 -0
  22. package/dist/web/assets/{agent-settings-panel-BagNBAoe.js → agent-settings-panel-B3hoqvYI.js} +1 -1
  23. package/dist/web/assets/agent-settings-panel-B3hoqvYI.js.br +0 -0
  24. package/dist/web/assets/agent-settings-panel-B3hoqvYI.js.gz +0 -0
  25. package/dist/web/assets/background-image-picker-DV18Olkx.js +1 -0
  26. package/dist/web/assets/background-image-picker-DV18Olkx.js.br +0 -0
  27. package/dist/web/assets/background-image-picker-DV18Olkx.js.gz +0 -0
  28. package/dist/web/assets/{bing-wallpaper-queries-B-1L0OYP.js → bing-wallpaper-queries-CybCDdtr.js} +1 -1
  29. package/dist/web/assets/bing-wallpaper-queries-CybCDdtr.js.br +0 -0
  30. package/dist/web/assets/bing-wallpaper-queries-CybCDdtr.js.gz +0 -0
  31. package/dist/web/assets/{button-group-DIxa2Erp.js → button-group-DLm5MGrs.js} +1 -1
  32. package/dist/web/assets/button-group-DLm5MGrs.js.br +0 -0
  33. package/dist/web/assets/button-group-DLm5MGrs.js.gz +0 -0
  34. package/dist/web/assets/{commit-settings-panel-Co1u5Lzc.js → commit-settings-panel-RS1ax2vB.js} +1 -1
  35. package/dist/web/assets/commit-settings-panel-RS1ax2vB.js.br +0 -0
  36. package/dist/web/assets/commit-settings-panel-RS1ax2vB.js.gz +0 -0
  37. package/dist/web/assets/{context-menu-HaQeWpEd.js → context-menu-DP6ii80r.js} +1 -1
  38. package/dist/web/assets/context-menu-DP6ii80r.js.br +0 -0
  39. package/dist/web/assets/context-menu-DP6ii80r.js.gz +0 -0
  40. package/dist/web/assets/{file-review-dialog-B-0RkLZR.js → file-review-dialog-C3to4N_J.js} +1 -1
  41. package/dist/web/assets/file-review-dialog-C3to4N_J.js.br +0 -0
  42. package/dist/web/assets/file-review-dialog-C3to4N_J.js.gz +0 -0
  43. package/dist/web/assets/{git-history-panel-QiNKxo_n.js → git-history-panel-D2OdQ1Pg.js} +1 -1
  44. package/dist/web/assets/git-history-panel-D2OdQ1Pg.js.br +0 -0
  45. package/dist/web/assets/git-history-panel-D2OdQ1Pg.js.gz +0 -0
  46. package/dist/web/assets/{global-settings-about-DWXfIOas.js → global-settings-about-DYd77AOa.js} +1 -1
  47. package/dist/web/assets/global-settings-about-DYd77AOa.js.br +0 -0
  48. package/dist/web/assets/global-settings-about-DYd77AOa.js.gz +0 -0
  49. package/dist/web/assets/{global-settings-fields-CmEy5pOE.js → global-settings-fields-C0IfL3RQ.js} +1 -1
  50. package/dist/web/assets/global-settings-fields-C0IfL3RQ.js.br +0 -0
  51. package/dist/web/assets/global-settings-fields-C0IfL3RQ.js.gz +0 -0
  52. package/dist/web/assets/global-settings-model-dAGHIcU5.js +1 -0
  53. package/dist/web/assets/global-settings-model-dAGHIcU5.js.br +0 -0
  54. package/dist/web/assets/global-settings-model-dAGHIcU5.js.gz +0 -0
  55. package/dist/web/assets/global-settings-page-746-HK5D.js +2 -0
  56. package/dist/web/assets/global-settings-page-746-HK5D.js.br +0 -0
  57. package/dist/web/assets/global-settings-page-746-HK5D.js.gz +0 -0
  58. package/dist/web/assets/{global-settings-pets-DP2AxhJW.js → global-settings-pets-B6HRYnYq.js} +1 -1
  59. package/dist/web/assets/global-settings-pets-B6HRYnYq.js.br +0 -0
  60. package/dist/web/assets/global-settings-pets-B6HRYnYq.js.gz +0 -0
  61. package/dist/web/assets/{index-BGtID8VJ.css → index-DGp-a5pq.css} +1 -1
  62. package/dist/web/assets/index-DGp-a5pq.css.br +0 -0
  63. package/dist/web/assets/{index-BGtID8VJ.css.gz → index-DGp-a5pq.css.gz} +0 -0
  64. package/dist/web/assets/index-DwEl9mCY.js +4 -0
  65. package/dist/web/assets/index-DwEl9mCY.js.br +0 -0
  66. package/dist/web/assets/index-DwEl9mCY.js.gz +0 -0
  67. package/dist/web/assets/initial-deps-Bk3GSWTk.js +1 -0
  68. package/dist/web/assets/initial-deps-Bk3GSWTk.js.br +0 -0
  69. package/dist/web/assets/initial-deps-Bk3GSWTk.js.gz +0 -0
  70. package/dist/web/assets/installed-skills-pane-Gzaol8-B.js +1 -0
  71. package/dist/web/assets/installed-skills-pane-Gzaol8-B.js.br +0 -0
  72. package/dist/web/assets/installed-skills-pane-Gzaol8-B.js.gz +0 -0
  73. package/dist/web/assets/{lazy-message-response-3Fr_a8du.js → lazy-message-response-CZT51-go.js} +2 -2
  74. package/dist/web/assets/lazy-message-response-CZT51-go.js.br +0 -0
  75. package/dist/web/assets/lazy-message-response-CZT51-go.js.gz +0 -0
  76. package/dist/web/assets/mcp-management-pane-C0g0wk8t.js +1 -0
  77. package/dist/web/assets/mcp-management-pane-C0g0wk8t.js.br +0 -0
  78. package/dist/web/assets/mcp-management-pane-C0g0wk8t.js.gz +0 -0
  79. package/dist/web/assets/{message-response-D3YFwFiE.js → message-response-CA2hanqw.js} +1 -1
  80. package/dist/web/assets/message-response-CA2hanqw.js.br +0 -0
  81. package/dist/web/assets/message-response-CA2hanqw.js.gz +0 -0
  82. package/dist/web/assets/{official-plugins-pane-k8o9gVMR.js → official-plugins-pane-D6kbUBEm.js} +1 -1
  83. package/dist/web/assets/official-plugins-pane-D6kbUBEm.js.br +0 -0
  84. package/dist/web/assets/official-plugins-pane-D6kbUBEm.js.gz +0 -0
  85. package/dist/web/assets/personalization-settings-panel-DnWZEv6V.js +1 -0
  86. package/dist/web/assets/personalization-settings-panel-DnWZEv6V.js.br +0 -0
  87. package/dist/web/assets/personalization-settings-panel-DnWZEv6V.js.gz +0 -0
  88. package/dist/web/assets/{project-file-popup-page-0uRpUcFH.js → project-file-popup-page-C8zcwgkf.js} +1 -1
  89. package/dist/web/assets/project-file-popup-page-C8zcwgkf.js.br +0 -0
  90. package/dist/web/assets/project-file-popup-page-C8zcwgkf.js.gz +0 -0
  91. package/dist/web/assets/{project-source-panel-CEegjNVo.js → project-source-panel-ChVlP72p.js} +2 -2
  92. package/dist/web/assets/project-source-panel-ChVlP72p.js.br +0 -0
  93. package/dist/web/assets/project-source-panel-ChVlP72p.js.gz +0 -0
  94. package/dist/web/assets/{prompt-input-Bs_e51Ey.js → prompt-input-CcovKFMj.js} +1 -1
  95. package/dist/web/assets/prompt-input-CcovKFMj.js.br +0 -0
  96. package/dist/web/assets/prompt-input-CcovKFMj.js.gz +0 -0
  97. package/dist/web/assets/{prompt-input-controls-DMqyvYVY.js → prompt-input-controls-j_r9SnuL.js} +1 -1
  98. package/dist/web/assets/prompt-input-controls-j_r9SnuL.js.br +0 -0
  99. package/dist/web/assets/prompt-input-controls-j_r9SnuL.js.gz +0 -0
  100. package/dist/web/assets/{scheduled-task-date-time-picker-CHc9a7G1.js → scheduled-task-date-time-picker-CkLwYwGu.js} +1 -1
  101. package/dist/web/assets/scheduled-task-date-time-picker-CkLwYwGu.js.br +0 -0
  102. package/dist/web/assets/scheduled-task-date-time-picker-CkLwYwGu.js.gz +0 -0
  103. package/dist/web/assets/{scheduled-task-schedule-2Ugh5sqp.js → scheduled-task-schedule-f0nylWUa.js} +1 -1
  104. package/dist/web/assets/scheduled-task-schedule-f0nylWUa.js.br +0 -0
  105. package/dist/web/assets/scheduled-task-schedule-f0nylWUa.js.gz +0 -0
  106. package/dist/web/assets/scheduled-tasks-container-DxM30EEY.js +2 -0
  107. package/dist/web/assets/scheduled-tasks-container-DxM30EEY.js.br +0 -0
  108. package/dist/web/assets/scheduled-tasks-container-DxM30EEY.js.gz +0 -0
  109. package/dist/web/assets/{settings-personalization-b55VcvKr.js → settings-personalization-CPFvvwt7.js} +1 -1
  110. package/dist/web/assets/settings-personalization-CPFvvwt7.js.br +0 -0
  111. package/dist/web/assets/settings-personalization-CPFvvwt7.js.gz +0 -0
  112. package/dist/web/assets/{sheet-DbEBBgCs.js → sheet-Co357cup.js} +1 -1
  113. package/dist/web/assets/sheet-Co357cup.js.br +0 -0
  114. package/dist/web/assets/sheet-Co357cup.js.gz +0 -0
  115. package/dist/web/assets/{skills-market-container-BwT-U8XF.js → skills-market-container-CJ8k5fIO.js} +2 -2
  116. package/dist/web/assets/skills-market-container-CJ8k5fIO.js.br +0 -0
  117. package/dist/web/assets/skills-market-container-CJ8k5fIO.js.gz +0 -0
  118. package/dist/web/assets/{third-party-marketplace-pane-Cva9dfRn.js → third-party-marketplace-pane-BrosEBTn.js} +1 -1
  119. package/dist/web/assets/third-party-marketplace-pane-BrosEBTn.js.br +0 -0
  120. package/dist/web/assets/third-party-marketplace-pane-BrosEBTn.js.gz +0 -0
  121. package/dist/web/assets/workbench-composer-CxDyu4IJ.js +8 -0
  122. package/dist/web/assets/workbench-composer-CxDyu4IJ.js.br +0 -0
  123. package/dist/web/assets/workbench-composer-CxDyu4IJ.js.gz +0 -0
  124. package/dist/web/assets/workbench-inspector-changes-DXrYXxmV.js +2 -0
  125. package/dist/web/assets/workbench-inspector-changes-DXrYXxmV.js.br +0 -0
  126. package/dist/web/assets/workbench-inspector-changes-DXrYXxmV.js.gz +0 -0
  127. package/dist/web/assets/workbench-pet-canvas-C5NL9nOc.js +1 -0
  128. package/dist/web/assets/workbench-pet-canvas-C5NL9nOc.js.br +0 -0
  129. package/dist/web/assets/workbench-pet-canvas-C5NL9nOc.js.gz +0 -0
  130. package/dist/web/assets/workbench-shell-C3Zu4F9x.js +8 -0
  131. package/dist/web/assets/workbench-shell-C3Zu4F9x.js.br +0 -0
  132. package/dist/web/assets/workbench-shell-C3Zu4F9x.js.gz +0 -0
  133. package/dist/web/index.html +3 -3
  134. package/dist/web/index.html.br +0 -0
  135. package/dist/web/index.html.gz +0 -0
  136. package/package.json +1 -1
  137. package/dist/chunk-RNTA4MFS.js +0 -23
  138. package/dist/web/assets/agent-settings-panel-BagNBAoe.js.br +0 -0
  139. package/dist/web/assets/agent-settings-panel-BagNBAoe.js.gz +0 -0
  140. package/dist/web/assets/background-image-picker-CjpS0dIk.js +0 -1
  141. package/dist/web/assets/background-image-picker-CjpS0dIk.js.br +0 -0
  142. package/dist/web/assets/background-image-picker-CjpS0dIk.js.gz +0 -0
  143. package/dist/web/assets/bing-wallpaper-queries-B-1L0OYP.js.br +0 -0
  144. package/dist/web/assets/bing-wallpaper-queries-B-1L0OYP.js.gz +0 -0
  145. package/dist/web/assets/button-group-DIxa2Erp.js.br +0 -0
  146. package/dist/web/assets/button-group-DIxa2Erp.js.gz +0 -0
  147. package/dist/web/assets/commit-settings-panel-Co1u5Lzc.js.br +0 -0
  148. package/dist/web/assets/commit-settings-panel-Co1u5Lzc.js.gz +0 -0
  149. package/dist/web/assets/context-menu-HaQeWpEd.js.br +0 -0
  150. package/dist/web/assets/context-menu-HaQeWpEd.js.gz +0 -0
  151. package/dist/web/assets/file-review-dialog-B-0RkLZR.js.br +0 -0
  152. package/dist/web/assets/file-review-dialog-B-0RkLZR.js.gz +0 -0
  153. package/dist/web/assets/git-history-panel-QiNKxo_n.js.br +0 -0
  154. package/dist/web/assets/git-history-panel-QiNKxo_n.js.gz +0 -0
  155. package/dist/web/assets/global-settings-about-DWXfIOas.js.br +0 -0
  156. package/dist/web/assets/global-settings-about-DWXfIOas.js.gz +0 -0
  157. package/dist/web/assets/global-settings-fields-CmEy5pOE.js.br +0 -0
  158. package/dist/web/assets/global-settings-fields-CmEy5pOE.js.gz +0 -0
  159. package/dist/web/assets/global-settings-model-B49sZloO.js +0 -1
  160. package/dist/web/assets/global-settings-model-B49sZloO.js.br +0 -0
  161. package/dist/web/assets/global-settings-model-B49sZloO.js.gz +0 -0
  162. package/dist/web/assets/global-settings-page-DKXRkWmd.js +0 -2
  163. package/dist/web/assets/global-settings-page-DKXRkWmd.js.br +0 -0
  164. package/dist/web/assets/global-settings-page-DKXRkWmd.js.gz +0 -0
  165. package/dist/web/assets/global-settings-pets-DP2AxhJW.js.br +0 -0
  166. package/dist/web/assets/global-settings-pets-DP2AxhJW.js.gz +0 -0
  167. package/dist/web/assets/index-BGtID8VJ.css.br +0 -0
  168. package/dist/web/assets/index-mkWzMsjN.js +0 -4
  169. package/dist/web/assets/index-mkWzMsjN.js.br +0 -0
  170. package/dist/web/assets/index-mkWzMsjN.js.gz +0 -0
  171. package/dist/web/assets/initial-deps-CDAJF_GU.js +0 -1
  172. package/dist/web/assets/initial-deps-CDAJF_GU.js.br +0 -0
  173. package/dist/web/assets/initial-deps-CDAJF_GU.js.gz +0 -0
  174. package/dist/web/assets/installed-skills-pane-CR2LbYh9.js +0 -1
  175. package/dist/web/assets/installed-skills-pane-CR2LbYh9.js.br +0 -0
  176. package/dist/web/assets/installed-skills-pane-CR2LbYh9.js.gz +0 -0
  177. package/dist/web/assets/lazy-message-response-3Fr_a8du.js.br +0 -0
  178. package/dist/web/assets/lazy-message-response-3Fr_a8du.js.gz +0 -0
  179. package/dist/web/assets/mcp-management-pane-DEuUn7Y6.js +0 -1
  180. package/dist/web/assets/mcp-management-pane-DEuUn7Y6.js.br +0 -0
  181. package/dist/web/assets/mcp-management-pane-DEuUn7Y6.js.gz +0 -0
  182. package/dist/web/assets/message-response-D3YFwFiE.js.br +0 -0
  183. package/dist/web/assets/message-response-D3YFwFiE.js.gz +0 -0
  184. package/dist/web/assets/official-plugins-pane-k8o9gVMR.js.br +0 -0
  185. package/dist/web/assets/official-plugins-pane-k8o9gVMR.js.gz +0 -0
  186. package/dist/web/assets/personalization-settings-panel-Cl4_Y5Uk.js +0 -1
  187. package/dist/web/assets/personalization-settings-panel-Cl4_Y5Uk.js.br +0 -0
  188. package/dist/web/assets/personalization-settings-panel-Cl4_Y5Uk.js.gz +0 -0
  189. package/dist/web/assets/project-file-popup-page-0uRpUcFH.js.br +0 -0
  190. package/dist/web/assets/project-file-popup-page-0uRpUcFH.js.gz +0 -0
  191. package/dist/web/assets/project-source-panel-CEegjNVo.js.br +0 -0
  192. package/dist/web/assets/project-source-panel-CEegjNVo.js.gz +0 -0
  193. package/dist/web/assets/prompt-input-Bs_e51Ey.js.br +0 -0
  194. package/dist/web/assets/prompt-input-Bs_e51Ey.js.gz +0 -0
  195. package/dist/web/assets/prompt-input-controls-DMqyvYVY.js.br +0 -0
  196. package/dist/web/assets/prompt-input-controls-DMqyvYVY.js.gz +0 -0
  197. package/dist/web/assets/scheduled-task-date-time-picker-CHc9a7G1.js.br +0 -0
  198. package/dist/web/assets/scheduled-task-date-time-picker-CHc9a7G1.js.gz +0 -0
  199. package/dist/web/assets/scheduled-task-schedule-2Ugh5sqp.js.br +0 -0
  200. package/dist/web/assets/scheduled-task-schedule-2Ugh5sqp.js.gz +0 -0
  201. package/dist/web/assets/scheduled-tasks-container-Ddieo85Q.js +0 -2
  202. package/dist/web/assets/scheduled-tasks-container-Ddieo85Q.js.br +0 -0
  203. package/dist/web/assets/scheduled-tasks-container-Ddieo85Q.js.gz +0 -0
  204. package/dist/web/assets/settings-personalization-b55VcvKr.js.br +0 -0
  205. package/dist/web/assets/settings-personalization-b55VcvKr.js.gz +0 -0
  206. package/dist/web/assets/sheet-DbEBBgCs.js.br +0 -0
  207. package/dist/web/assets/sheet-DbEBBgCs.js.gz +0 -0
  208. package/dist/web/assets/skills-market-container-BwT-U8XF.js.br +0 -0
  209. package/dist/web/assets/skills-market-container-BwT-U8XF.js.gz +0 -0
  210. package/dist/web/assets/third-party-marketplace-pane-Cva9dfRn.js.br +0 -0
  211. package/dist/web/assets/third-party-marketplace-pane-Cva9dfRn.js.gz +0 -0
  212. package/dist/web/assets/workbench-composer-BxYlmKUq.js +0 -10
  213. package/dist/web/assets/workbench-composer-BxYlmKUq.js.br +0 -0
  214. package/dist/web/assets/workbench-composer-BxYlmKUq.js.gz +0 -0
  215. package/dist/web/assets/workbench-inspector-changes-DFZ_PDdt.js +0 -2
  216. package/dist/web/assets/workbench-inspector-changes-DFZ_PDdt.js.br +0 -0
  217. package/dist/web/assets/workbench-inspector-changes-DFZ_PDdt.js.gz +0 -0
  218. package/dist/web/assets/workbench-pet-canvas-DwkSGxpw.js +0 -1
  219. package/dist/web/assets/workbench-pet-canvas-DwkSGxpw.js.br +0 -0
  220. package/dist/web/assets/workbench-pet-canvas-DwkSGxpw.js.gz +0 -0
  221. package/dist/web/assets/workbench-shell-CnjG23lI.js +0 -8
  222. package/dist/web/assets/workbench-shell-CnjG23lI.js.br +0 -0
  223. package/dist/web/assets/workbench-shell-CnjG23lI.js.gz +0 -0
@@ -0,0 +1,2969 @@
1
+ import { createRequire } from 'node:module';
2
+ import { scheduled_task_wall_time_exports } from './chunk-GT7XTSEG.js';
3
+ import { __export } from './chunk-K6J42667.js';
4
+ import { workerData, parentPort } from 'worker_threads';
5
+
6
+ createRequire(import.meta.url);
7
+
8
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/index.js
9
+ var esm_exports = {};
10
+ __export(esm_exports, {
11
+ ALL_WEEKDAYS: () => ALL_WEEKDAYS,
12
+ Frequency: () => Frequency,
13
+ RRule: () => RRule,
14
+ RRuleSet: () => RRuleSet,
15
+ Weekday: () => Weekday,
16
+ datetime: () => datetime,
17
+ rrulestr: () => rrulestr
18
+ });
19
+
20
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/weekday.js
21
+ var ALL_WEEKDAYS = [
22
+ "MO",
23
+ "TU",
24
+ "WE",
25
+ "TH",
26
+ "FR",
27
+ "SA",
28
+ "SU"
29
+ ];
30
+ var Weekday = (
31
+ /** @class */
32
+ (function() {
33
+ function Weekday2(weekday, n) {
34
+ if (n === 0)
35
+ throw new Error("Can't create weekday with n == 0");
36
+ this.weekday = weekday;
37
+ this.n = n;
38
+ }
39
+ Weekday2.fromStr = function(str) {
40
+ return new Weekday2(ALL_WEEKDAYS.indexOf(str));
41
+ };
42
+ Weekday2.prototype.nth = function(n) {
43
+ return this.n === n ? this : new Weekday2(this.weekday, n);
44
+ };
45
+ Weekday2.prototype.equals = function(other) {
46
+ return this.weekday === other.weekday && this.n === other.n;
47
+ };
48
+ Weekday2.prototype.toString = function() {
49
+ var s = ALL_WEEKDAYS[this.weekday];
50
+ if (this.n)
51
+ s = (this.n > 0 ? "+" : "") + String(this.n) + s;
52
+ return s;
53
+ };
54
+ Weekday2.prototype.getJsWeekday = function() {
55
+ return this.weekday === 6 ? 0 : this.weekday + 1;
56
+ };
57
+ return Weekday2;
58
+ })()
59
+ );
60
+
61
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/helpers.js
62
+ var isPresent = function(value) {
63
+ return value !== null && value !== void 0;
64
+ };
65
+ var isNumber = function(value) {
66
+ return typeof value === "number";
67
+ };
68
+ var isWeekdayStr = function(value) {
69
+ return typeof value === "string" && ALL_WEEKDAYS.includes(value);
70
+ };
71
+ var isArray = Array.isArray;
72
+ var range = function(start, end) {
73
+ if (end === void 0) {
74
+ end = start;
75
+ }
76
+ if (arguments.length === 1) {
77
+ end = start;
78
+ start = 0;
79
+ }
80
+ var rang = [];
81
+ for (var i = start; i < end; i++)
82
+ rang.push(i);
83
+ return rang;
84
+ };
85
+ var repeat = function(value, times) {
86
+ var i = 0;
87
+ var array = [];
88
+ if (isArray(value)) {
89
+ for (; i < times; i++)
90
+ array[i] = [].concat(value);
91
+ } else {
92
+ for (; i < times; i++)
93
+ array[i] = value;
94
+ }
95
+ return array;
96
+ };
97
+ var toArray = function(item) {
98
+ if (isArray(item)) {
99
+ return item;
100
+ }
101
+ return [item];
102
+ };
103
+ function padStart(item, targetLength, padString) {
104
+ if (padString === void 0) {
105
+ padString = " ";
106
+ }
107
+ var str = String(item);
108
+ targetLength = targetLength >> 0;
109
+ if (str.length > targetLength) {
110
+ return String(str);
111
+ }
112
+ targetLength = targetLength - str.length;
113
+ if (targetLength > padString.length) {
114
+ padString += repeat(padString, targetLength / padString.length);
115
+ }
116
+ return padString.slice(0, targetLength) + String(str);
117
+ }
118
+ var split = function(str, sep, num) {
119
+ var splits = str.split(sep);
120
+ return num ? splits.slice(0, num).concat([splits.slice(num).join(sep)]) : splits;
121
+ };
122
+ var pymod = function(a, b) {
123
+ var r = a % b;
124
+ return r * b < 0 ? r + b : r;
125
+ };
126
+ var divmod = function(a, b) {
127
+ return { div: Math.floor(a / b), mod: pymod(a, b) };
128
+ };
129
+ var empty = function(obj) {
130
+ return !isPresent(obj) || obj.length === 0;
131
+ };
132
+ var notEmpty = function(obj) {
133
+ return !empty(obj);
134
+ };
135
+ var includes = function(arr, val) {
136
+ return notEmpty(arr) && arr.indexOf(val) !== -1;
137
+ };
138
+
139
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/dateutil.js
140
+ var datetime = function(y, m, d, h, i, s) {
141
+ if (h === void 0) {
142
+ h = 0;
143
+ }
144
+ if (i === void 0) {
145
+ i = 0;
146
+ }
147
+ if (s === void 0) {
148
+ s = 0;
149
+ }
150
+ return new Date(Date.UTC(y, m - 1, d, h, i, s));
151
+ };
152
+ var MONTH_DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
153
+ var ONE_DAY = 1e3 * 60 * 60 * 24;
154
+ var MAXYEAR = 9999;
155
+ var ORDINAL_BASE = datetime(1970, 1, 1);
156
+ var PY_WEEKDAYS = [6, 0, 1, 2, 3, 4, 5];
157
+ var isLeapYear = function(year) {
158
+ return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
159
+ };
160
+ var isDate = function(value) {
161
+ return value instanceof Date;
162
+ };
163
+ var isValidDate = function(value) {
164
+ return isDate(value) && !isNaN(value.getTime());
165
+ };
166
+ var daysBetween = function(date1, date2) {
167
+ var date1ms = date1.getTime();
168
+ var date2ms = date2.getTime();
169
+ var differencems = date1ms - date2ms;
170
+ return Math.round(differencems / ONE_DAY);
171
+ };
172
+ var toOrdinal = function(date) {
173
+ return daysBetween(date, ORDINAL_BASE);
174
+ };
175
+ var fromOrdinal = function(ordinal) {
176
+ return new Date(ORDINAL_BASE.getTime() + ordinal * ONE_DAY);
177
+ };
178
+ var getMonthDays = function(date) {
179
+ var month = date.getUTCMonth();
180
+ return month === 1 && isLeapYear(date.getUTCFullYear()) ? 29 : MONTH_DAYS[month];
181
+ };
182
+ var getWeekday = function(date) {
183
+ return PY_WEEKDAYS[date.getUTCDay()];
184
+ };
185
+ var monthRange = function(year, month) {
186
+ var date = datetime(year, month + 1, 1);
187
+ return [getWeekday(date), getMonthDays(date)];
188
+ };
189
+ var combine = function(date, time) {
190
+ time = time || date;
191
+ return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds()));
192
+ };
193
+ var clone = function(date) {
194
+ var dolly = new Date(date.getTime());
195
+ return dolly;
196
+ };
197
+ var cloneDates = function(dates) {
198
+ var clones = [];
199
+ for (var i = 0; i < dates.length; i++) {
200
+ clones.push(clone(dates[i]));
201
+ }
202
+ return clones;
203
+ };
204
+ var sort = function(dates) {
205
+ dates.sort(function(a, b) {
206
+ return a.getTime() - b.getTime();
207
+ });
208
+ };
209
+ var timeToUntilString = function(time, utc) {
210
+ if (utc === void 0) {
211
+ utc = true;
212
+ }
213
+ var date = new Date(time);
214
+ return [
215
+ padStart(date.getUTCFullYear().toString(), 4, "0"),
216
+ padStart(date.getUTCMonth() + 1, 2, "0"),
217
+ padStart(date.getUTCDate(), 2, "0"),
218
+ "T",
219
+ padStart(date.getUTCHours(), 2, "0"),
220
+ padStart(date.getUTCMinutes(), 2, "0"),
221
+ padStart(date.getUTCSeconds(), 2, "0"),
222
+ utc ? "Z" : ""
223
+ ].join("");
224
+ };
225
+ var untilStringToDate = function(until) {
226
+ var re = /^(\d{4})(\d{2})(\d{2})(T(\d{2})(\d{2})(\d{2})Z?)?$/;
227
+ var bits = re.exec(until);
228
+ if (!bits)
229
+ throw new Error("Invalid UNTIL value: ".concat(until));
230
+ return new Date(Date.UTC(parseInt(bits[1], 10), parseInt(bits[2], 10) - 1, parseInt(bits[3], 10), parseInt(bits[5], 10) || 0, parseInt(bits[6], 10) || 0, parseInt(bits[7], 10) || 0));
231
+ };
232
+ var dateTZtoISO8601 = function(date, timeZone) {
233
+ var dateStr = date.toLocaleString("sv-SE", { timeZone });
234
+ return dateStr.replace(" ", "T") + "Z";
235
+ };
236
+ var dateInTimeZone = function(date, timeZone) {
237
+ var localTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
238
+ var dateInLocalTZ = new Date(dateTZtoISO8601(date, localTimeZone));
239
+ var dateInTargetTZ = new Date(dateTZtoISO8601(date, timeZone !== null && timeZone !== void 0 ? timeZone : "UTC"));
240
+ var tzOffset = dateInTargetTZ.getTime() - dateInLocalTZ.getTime();
241
+ return new Date(date.getTime() - tzOffset);
242
+ };
243
+
244
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterresult.js
245
+ var IterResult = (
246
+ /** @class */
247
+ (function() {
248
+ function IterResult2(method, args) {
249
+ this.minDate = null;
250
+ this.maxDate = null;
251
+ this._result = [];
252
+ this.total = 0;
253
+ this.method = method;
254
+ this.args = args;
255
+ if (method === "between") {
256
+ this.maxDate = args.inc ? args.before : new Date(args.before.getTime() - 1);
257
+ this.minDate = args.inc ? args.after : new Date(args.after.getTime() + 1);
258
+ } else if (method === "before") {
259
+ this.maxDate = args.inc ? args.dt : new Date(args.dt.getTime() - 1);
260
+ } else if (method === "after") {
261
+ this.minDate = args.inc ? args.dt : new Date(args.dt.getTime() + 1);
262
+ }
263
+ }
264
+ IterResult2.prototype.accept = function(date) {
265
+ ++this.total;
266
+ var tooEarly = this.minDate && date < this.minDate;
267
+ var tooLate = this.maxDate && date > this.maxDate;
268
+ if (this.method === "between") {
269
+ if (tooEarly)
270
+ return true;
271
+ if (tooLate)
272
+ return false;
273
+ } else if (this.method === "before") {
274
+ if (tooLate)
275
+ return false;
276
+ } else if (this.method === "after") {
277
+ if (tooEarly)
278
+ return true;
279
+ this.add(date);
280
+ return false;
281
+ }
282
+ return this.add(date);
283
+ };
284
+ IterResult2.prototype.add = function(date) {
285
+ this._result.push(date);
286
+ return true;
287
+ };
288
+ IterResult2.prototype.getValue = function() {
289
+ var res = this._result;
290
+ switch (this.method) {
291
+ case "all":
292
+ case "between":
293
+ return res;
294
+ case "before":
295
+ case "after":
296
+ default:
297
+ return res.length ? res[res.length - 1] : null;
298
+ }
299
+ };
300
+ IterResult2.prototype.clone = function() {
301
+ return new IterResult2(this.method, this.args);
302
+ };
303
+ return IterResult2;
304
+ })()
305
+ );
306
+ var iterresult_default = IterResult;
307
+
308
+ // node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
309
+ var extendStatics = function(d, b) {
310
+ extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
311
+ d2.__proto__ = b2;
312
+ } || function(d2, b2) {
313
+ for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
314
+ };
315
+ return extendStatics(d, b);
316
+ };
317
+ function __extends(d, b) {
318
+ if (typeof b !== "function" && b !== null)
319
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
320
+ extendStatics(d, b);
321
+ function __() {
322
+ this.constructor = d;
323
+ }
324
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
325
+ }
326
+ var __assign = function() {
327
+ __assign = Object.assign || function __assign2(t) {
328
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
329
+ s = arguments[i];
330
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
331
+ }
332
+ return t;
333
+ };
334
+ return __assign.apply(this, arguments);
335
+ };
336
+ function __spreadArray(to, from, pack) {
337
+ for (var i = 0, l = from.length, ar; i < l; i++) {
338
+ if (ar || !(i in from)) {
339
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
340
+ ar[i] = from[i];
341
+ }
342
+ }
343
+ return to.concat(ar || Array.prototype.slice.call(from));
344
+ }
345
+
346
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/callbackiterresult.js
347
+ var CallbackIterResult = (
348
+ /** @class */
349
+ (function(_super) {
350
+ __extends(CallbackIterResult2, _super);
351
+ function CallbackIterResult2(method, args, iterator) {
352
+ var _this = _super.call(this, method, args) || this;
353
+ _this.iterator = iterator;
354
+ return _this;
355
+ }
356
+ CallbackIterResult2.prototype.add = function(date) {
357
+ if (this.iterator(date, this._result.length)) {
358
+ this._result.push(date);
359
+ return true;
360
+ }
361
+ return false;
362
+ };
363
+ return CallbackIterResult2;
364
+ })(iterresult_default)
365
+ );
366
+ var callbackiterresult_default = CallbackIterResult;
367
+
368
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/nlp/i18n.js
369
+ var ENGLISH = {
370
+ dayNames: [
371
+ "Sunday",
372
+ "Monday",
373
+ "Tuesday",
374
+ "Wednesday",
375
+ "Thursday",
376
+ "Friday",
377
+ "Saturday"
378
+ ],
379
+ monthNames: [
380
+ "January",
381
+ "February",
382
+ "March",
383
+ "April",
384
+ "May",
385
+ "June",
386
+ "July",
387
+ "August",
388
+ "September",
389
+ "October",
390
+ "November",
391
+ "December"
392
+ ],
393
+ tokens: {
394
+ SKIP: /^[ \r\n\t]+|^\.$/,
395
+ number: /^[1-9][0-9]*/,
396
+ numberAsText: /^(one|two|three)/i,
397
+ every: /^every/i,
398
+ "day(s)": /^days?/i,
399
+ "weekday(s)": /^weekdays?/i,
400
+ "week(s)": /^weeks?/i,
401
+ "hour(s)": /^hours?/i,
402
+ "minute(s)": /^minutes?/i,
403
+ "month(s)": /^months?/i,
404
+ "year(s)": /^years?/i,
405
+ on: /^(on|in)/i,
406
+ at: /^(at)/i,
407
+ the: /^the/i,
408
+ first: /^first/i,
409
+ second: /^second/i,
410
+ third: /^third/i,
411
+ nth: /^([1-9][0-9]*)(\.|th|nd|rd|st)/i,
412
+ last: /^last/i,
413
+ for: /^for/i,
414
+ "time(s)": /^times?/i,
415
+ until: /^(un)?til/i,
416
+ monday: /^mo(n(day)?)?/i,
417
+ tuesday: /^tu(e(s(day)?)?)?/i,
418
+ wednesday: /^we(d(n(esday)?)?)?/i,
419
+ thursday: /^th(u(r(sday)?)?)?/i,
420
+ friday: /^fr(i(day)?)?/i,
421
+ saturday: /^sa(t(urday)?)?/i,
422
+ sunday: /^su(n(day)?)?/i,
423
+ january: /^jan(uary)?/i,
424
+ february: /^feb(ruary)?/i,
425
+ march: /^mar(ch)?/i,
426
+ april: /^apr(il)?/i,
427
+ may: /^may/i,
428
+ june: /^june?/i,
429
+ july: /^july?/i,
430
+ august: /^aug(ust)?/i,
431
+ september: /^sep(t(ember)?)?/i,
432
+ october: /^oct(ober)?/i,
433
+ november: /^nov(ember)?/i,
434
+ december: /^dec(ember)?/i,
435
+ comma: /^(,\s*|(and|or)\s*)+/i
436
+ }
437
+ };
438
+ var i18n_default = ENGLISH;
439
+
440
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/nlp/totext.js
441
+ var contains = function(arr, val) {
442
+ return arr.indexOf(val) !== -1;
443
+ };
444
+ var defaultGetText = function(id) {
445
+ return id.toString();
446
+ };
447
+ var defaultDateFormatter = function(year, month, day) {
448
+ return "".concat(month, " ").concat(day, ", ").concat(year);
449
+ };
450
+ var ToText = (
451
+ /** @class */
452
+ (function() {
453
+ function ToText2(rrule, gettext, language, dateFormatter) {
454
+ if (gettext === void 0) {
455
+ gettext = defaultGetText;
456
+ }
457
+ if (language === void 0) {
458
+ language = i18n_default;
459
+ }
460
+ if (dateFormatter === void 0) {
461
+ dateFormatter = defaultDateFormatter;
462
+ }
463
+ this.text = [];
464
+ this.language = language || i18n_default;
465
+ this.gettext = gettext;
466
+ this.dateFormatter = dateFormatter;
467
+ this.rrule = rrule;
468
+ this.options = rrule.options;
469
+ this.origOptions = rrule.origOptions;
470
+ if (this.origOptions.bymonthday) {
471
+ var bymonthday = [].concat(this.options.bymonthday);
472
+ var bynmonthday = [].concat(this.options.bynmonthday);
473
+ bymonthday.sort(function(a, b) {
474
+ return a - b;
475
+ });
476
+ bynmonthday.sort(function(a, b) {
477
+ return b - a;
478
+ });
479
+ this.bymonthday = bymonthday.concat(bynmonthday);
480
+ if (!this.bymonthday.length)
481
+ this.bymonthday = null;
482
+ }
483
+ if (isPresent(this.origOptions.byweekday)) {
484
+ var byweekday = !isArray(this.origOptions.byweekday) ? [this.origOptions.byweekday] : this.origOptions.byweekday;
485
+ var days = String(byweekday);
486
+ this.byweekday = {
487
+ allWeeks: byweekday.filter(function(weekday) {
488
+ return !weekday.n;
489
+ }),
490
+ someWeeks: byweekday.filter(function(weekday) {
491
+ return Boolean(weekday.n);
492
+ }),
493
+ isWeekdays: days.indexOf("MO") !== -1 && days.indexOf("TU") !== -1 && days.indexOf("WE") !== -1 && days.indexOf("TH") !== -1 && days.indexOf("FR") !== -1 && days.indexOf("SA") === -1 && days.indexOf("SU") === -1,
494
+ isEveryDay: days.indexOf("MO") !== -1 && days.indexOf("TU") !== -1 && days.indexOf("WE") !== -1 && days.indexOf("TH") !== -1 && days.indexOf("FR") !== -1 && days.indexOf("SA") !== -1 && days.indexOf("SU") !== -1
495
+ };
496
+ var sortWeekDays = function(a, b) {
497
+ return a.weekday - b.weekday;
498
+ };
499
+ this.byweekday.allWeeks.sort(sortWeekDays);
500
+ this.byweekday.someWeeks.sort(sortWeekDays);
501
+ if (!this.byweekday.allWeeks.length)
502
+ this.byweekday.allWeeks = null;
503
+ if (!this.byweekday.someWeeks.length)
504
+ this.byweekday.someWeeks = null;
505
+ } else {
506
+ this.byweekday = null;
507
+ }
508
+ }
509
+ ToText2.isFullyConvertible = function(rrule) {
510
+ var canConvert = true;
511
+ if (!(rrule.options.freq in ToText2.IMPLEMENTED))
512
+ return false;
513
+ if (rrule.origOptions.until && rrule.origOptions.count)
514
+ return false;
515
+ for (var key in rrule.origOptions) {
516
+ if (contains(["dtstart", "tzid", "wkst", "freq"], key))
517
+ return true;
518
+ if (!contains(ToText2.IMPLEMENTED[rrule.options.freq], key))
519
+ return false;
520
+ }
521
+ return canConvert;
522
+ };
523
+ ToText2.prototype.isFullyConvertible = function() {
524
+ return ToText2.isFullyConvertible(this.rrule);
525
+ };
526
+ ToText2.prototype.toString = function() {
527
+ var gettext = this.gettext;
528
+ if (!(this.options.freq in ToText2.IMPLEMENTED)) {
529
+ return gettext("RRule error: Unable to fully convert this rrule to text");
530
+ }
531
+ this.text = [gettext("every")];
532
+ this[RRule.FREQUENCIES[this.options.freq]]();
533
+ if (this.options.until) {
534
+ this.add(gettext("until"));
535
+ var until = this.options.until;
536
+ this.add(this.dateFormatter(until.getUTCFullYear(), this.language.monthNames[until.getUTCMonth()], until.getUTCDate()));
537
+ } else if (this.options.count) {
538
+ this.add(gettext("for")).add(this.options.count.toString()).add(this.plural(this.options.count) ? gettext("times") : gettext("time"));
539
+ }
540
+ if (!this.isFullyConvertible())
541
+ this.add(gettext("(~ approximate)"));
542
+ return this.text.join("");
543
+ };
544
+ ToText2.prototype.HOURLY = function() {
545
+ var gettext = this.gettext;
546
+ if (this.options.interval !== 1)
547
+ this.add(this.options.interval.toString());
548
+ this.add(this.plural(this.options.interval) ? gettext("hours") : gettext("hour"));
549
+ };
550
+ ToText2.prototype.MINUTELY = function() {
551
+ var gettext = this.gettext;
552
+ if (this.options.interval !== 1)
553
+ this.add(this.options.interval.toString());
554
+ this.add(this.plural(this.options.interval) ? gettext("minutes") : gettext("minute"));
555
+ };
556
+ ToText2.prototype.DAILY = function() {
557
+ var gettext = this.gettext;
558
+ if (this.options.interval !== 1)
559
+ this.add(this.options.interval.toString());
560
+ if (this.byweekday && this.byweekday.isWeekdays) {
561
+ this.add(this.plural(this.options.interval) ? gettext("weekdays") : gettext("weekday"));
562
+ } else {
563
+ this.add(this.plural(this.options.interval) ? gettext("days") : gettext("day"));
564
+ }
565
+ if (this.origOptions.bymonth) {
566
+ this.add(gettext("in"));
567
+ this._bymonth();
568
+ }
569
+ if (this.bymonthday) {
570
+ this._bymonthday();
571
+ } else if (this.byweekday) {
572
+ this._byweekday();
573
+ } else if (this.origOptions.byhour) {
574
+ this._byhour();
575
+ }
576
+ };
577
+ ToText2.prototype.WEEKLY = function() {
578
+ var gettext = this.gettext;
579
+ if (this.options.interval !== 1) {
580
+ this.add(this.options.interval.toString()).add(this.plural(this.options.interval) ? gettext("weeks") : gettext("week"));
581
+ }
582
+ if (this.byweekday && this.byweekday.isWeekdays) {
583
+ if (this.options.interval === 1) {
584
+ this.add(this.plural(this.options.interval) ? gettext("weekdays") : gettext("weekday"));
585
+ } else {
586
+ this.add(gettext("on")).add(gettext("weekdays"));
587
+ }
588
+ } else if (this.byweekday && this.byweekday.isEveryDay) {
589
+ this.add(this.plural(this.options.interval) ? gettext("days") : gettext("day"));
590
+ } else {
591
+ if (this.options.interval === 1)
592
+ this.add(gettext("week"));
593
+ if (this.origOptions.bymonth) {
594
+ this.add(gettext("in"));
595
+ this._bymonth();
596
+ }
597
+ if (this.bymonthday) {
598
+ this._bymonthday();
599
+ } else if (this.byweekday) {
600
+ this._byweekday();
601
+ }
602
+ if (this.origOptions.byhour) {
603
+ this._byhour();
604
+ }
605
+ }
606
+ };
607
+ ToText2.prototype.MONTHLY = function() {
608
+ var gettext = this.gettext;
609
+ if (this.origOptions.bymonth) {
610
+ if (this.options.interval !== 1) {
611
+ this.add(this.options.interval.toString()).add(gettext("months"));
612
+ if (this.plural(this.options.interval))
613
+ this.add(gettext("in"));
614
+ }
615
+ this._bymonth();
616
+ } else {
617
+ if (this.options.interval !== 1) {
618
+ this.add(this.options.interval.toString());
619
+ }
620
+ this.add(this.plural(this.options.interval) ? gettext("months") : gettext("month"));
621
+ }
622
+ if (this.bymonthday) {
623
+ this._bymonthday();
624
+ } else if (this.byweekday && this.byweekday.isWeekdays) {
625
+ this.add(gettext("on")).add(gettext("weekdays"));
626
+ } else if (this.byweekday) {
627
+ this._byweekday();
628
+ }
629
+ };
630
+ ToText2.prototype.YEARLY = function() {
631
+ var gettext = this.gettext;
632
+ if (this.origOptions.bymonth) {
633
+ if (this.options.interval !== 1) {
634
+ this.add(this.options.interval.toString());
635
+ this.add(gettext("years"));
636
+ }
637
+ this._bymonth();
638
+ } else {
639
+ if (this.options.interval !== 1) {
640
+ this.add(this.options.interval.toString());
641
+ }
642
+ this.add(this.plural(this.options.interval) ? gettext("years") : gettext("year"));
643
+ }
644
+ if (this.bymonthday) {
645
+ this._bymonthday();
646
+ } else if (this.byweekday) {
647
+ this._byweekday();
648
+ }
649
+ if (this.options.byyearday) {
650
+ this.add(gettext("on the")).add(this.list(this.options.byyearday, this.nth, gettext("and"))).add(gettext("day"));
651
+ }
652
+ if (this.options.byweekno) {
653
+ this.add(gettext("in")).add(this.plural(this.options.byweekno.length) ? gettext("weeks") : gettext("week")).add(this.list(this.options.byweekno, void 0, gettext("and")));
654
+ }
655
+ };
656
+ ToText2.prototype._bymonthday = function() {
657
+ var gettext = this.gettext;
658
+ if (this.byweekday && this.byweekday.allWeeks) {
659
+ this.add(gettext("on")).add(this.list(this.byweekday.allWeeks, this.weekdaytext, gettext("or"))).add(gettext("the")).add(this.list(this.bymonthday, this.nth, gettext("or")));
660
+ } else {
661
+ this.add(gettext("on the")).add(this.list(this.bymonthday, this.nth, gettext("and")));
662
+ }
663
+ };
664
+ ToText2.prototype._byweekday = function() {
665
+ var gettext = this.gettext;
666
+ if (this.byweekday.allWeeks && !this.byweekday.isWeekdays) {
667
+ this.add(gettext("on")).add(this.list(this.byweekday.allWeeks, this.weekdaytext));
668
+ }
669
+ if (this.byweekday.someWeeks) {
670
+ if (this.byweekday.allWeeks)
671
+ this.add(gettext("and"));
672
+ this.add(gettext("on the")).add(this.list(this.byweekday.someWeeks, this.weekdaytext, gettext("and")));
673
+ }
674
+ };
675
+ ToText2.prototype._byhour = function() {
676
+ var gettext = this.gettext;
677
+ this.add(gettext("at")).add(this.list(this.origOptions.byhour, void 0, gettext("and")));
678
+ };
679
+ ToText2.prototype._bymonth = function() {
680
+ this.add(this.list(this.options.bymonth, this.monthtext, this.gettext("and")));
681
+ };
682
+ ToText2.prototype.nth = function(n) {
683
+ n = parseInt(n.toString(), 10);
684
+ var nth;
685
+ var gettext = this.gettext;
686
+ if (n === -1)
687
+ return gettext("last");
688
+ var npos = Math.abs(n);
689
+ switch (npos) {
690
+ case 1:
691
+ case 21:
692
+ case 31:
693
+ nth = npos + gettext("st");
694
+ break;
695
+ case 2:
696
+ case 22:
697
+ nth = npos + gettext("nd");
698
+ break;
699
+ case 3:
700
+ case 23:
701
+ nth = npos + gettext("rd");
702
+ break;
703
+ default:
704
+ nth = npos + gettext("th");
705
+ }
706
+ return n < 0 ? nth + " " + gettext("last") : nth;
707
+ };
708
+ ToText2.prototype.monthtext = function(m) {
709
+ return this.language.monthNames[m - 1];
710
+ };
711
+ ToText2.prototype.weekdaytext = function(wday) {
712
+ var weekday = isNumber(wday) ? (wday + 1) % 7 : wday.getJsWeekday();
713
+ return (wday.n ? this.nth(wday.n) + " " : "") + this.language.dayNames[weekday];
714
+ };
715
+ ToText2.prototype.plural = function(n) {
716
+ return n % 100 !== 1;
717
+ };
718
+ ToText2.prototype.add = function(s) {
719
+ this.text.push(" ");
720
+ this.text.push(s);
721
+ return this;
722
+ };
723
+ ToText2.prototype.list = function(arr, callback, finalDelim, delim) {
724
+ var _this = this;
725
+ if (delim === void 0) {
726
+ delim = ",";
727
+ }
728
+ if (!isArray(arr)) {
729
+ arr = [arr];
730
+ }
731
+ var delimJoin = function(array, delimiter, finalDelimiter) {
732
+ var list = "";
733
+ for (var i = 0; i < array.length; i++) {
734
+ if (i !== 0) {
735
+ if (i === array.length - 1) {
736
+ list += " " + finalDelimiter + " ";
737
+ } else {
738
+ list += delimiter + " ";
739
+ }
740
+ }
741
+ list += array[i];
742
+ }
743
+ return list;
744
+ };
745
+ callback = callback || function(o) {
746
+ return o.toString();
747
+ };
748
+ var realCallback = function(arg) {
749
+ return callback && callback.call(_this, arg);
750
+ };
751
+ if (finalDelim) {
752
+ return delimJoin(arr.map(realCallback), delim, finalDelim);
753
+ } else {
754
+ return arr.map(realCallback).join(delim + " ");
755
+ }
756
+ };
757
+ return ToText2;
758
+ })()
759
+ );
760
+ var totext_default = ToText;
761
+
762
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/nlp/parsetext.js
763
+ var Parser = (
764
+ /** @class */
765
+ (function() {
766
+ function Parser2(rules) {
767
+ this.done = true;
768
+ this.rules = rules;
769
+ }
770
+ Parser2.prototype.start = function(text) {
771
+ this.text = text;
772
+ this.done = false;
773
+ return this.nextSymbol();
774
+ };
775
+ Parser2.prototype.isDone = function() {
776
+ return this.done && this.symbol === null;
777
+ };
778
+ Parser2.prototype.nextSymbol = function() {
779
+ var best;
780
+ var bestSymbol;
781
+ this.symbol = null;
782
+ this.value = null;
783
+ do {
784
+ if (this.done)
785
+ return false;
786
+ var rule = void 0;
787
+ best = null;
788
+ for (var name_1 in this.rules) {
789
+ rule = this.rules[name_1];
790
+ var match = rule.exec(this.text);
791
+ if (match) {
792
+ if (best === null || match[0].length > best[0].length) {
793
+ best = match;
794
+ bestSymbol = name_1;
795
+ }
796
+ }
797
+ }
798
+ if (best != null) {
799
+ this.text = this.text.substr(best[0].length);
800
+ if (this.text === "")
801
+ this.done = true;
802
+ }
803
+ if (best == null) {
804
+ this.done = true;
805
+ this.symbol = null;
806
+ this.value = null;
807
+ return;
808
+ }
809
+ } while (bestSymbol === "SKIP");
810
+ this.symbol = bestSymbol;
811
+ this.value = best;
812
+ return true;
813
+ };
814
+ Parser2.prototype.accept = function(name) {
815
+ if (this.symbol === name) {
816
+ if (this.value) {
817
+ var v = this.value;
818
+ this.nextSymbol();
819
+ return v;
820
+ }
821
+ this.nextSymbol();
822
+ return true;
823
+ }
824
+ return false;
825
+ };
826
+ Parser2.prototype.acceptNumber = function() {
827
+ return this.accept("number");
828
+ };
829
+ Parser2.prototype.expect = function(name) {
830
+ if (this.accept(name))
831
+ return true;
832
+ throw new Error("expected " + name + " but found " + this.symbol);
833
+ };
834
+ return Parser2;
835
+ })()
836
+ );
837
+ function parseText(text, language) {
838
+ if (language === void 0) {
839
+ language = i18n_default;
840
+ }
841
+ var options = {};
842
+ var ttr = new Parser(language.tokens);
843
+ if (!ttr.start(text))
844
+ return null;
845
+ S();
846
+ return options;
847
+ function S() {
848
+ ttr.expect("every");
849
+ var n = ttr.acceptNumber();
850
+ if (n)
851
+ options.interval = parseInt(n[0], 10);
852
+ if (ttr.isDone())
853
+ throw new Error("Unexpected end");
854
+ switch (ttr.symbol) {
855
+ case "day(s)":
856
+ options.freq = RRule.DAILY;
857
+ if (ttr.nextSymbol()) {
858
+ AT();
859
+ F();
860
+ }
861
+ break;
862
+ // FIXME Note: every 2 weekdays != every two weeks on weekdays.
863
+ // DAILY on weekdays is not a valid rule
864
+ case "weekday(s)":
865
+ options.freq = RRule.WEEKLY;
866
+ options.byweekday = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR];
867
+ ttr.nextSymbol();
868
+ AT();
869
+ F();
870
+ break;
871
+ case "week(s)":
872
+ options.freq = RRule.WEEKLY;
873
+ if (ttr.nextSymbol()) {
874
+ ON();
875
+ AT();
876
+ F();
877
+ }
878
+ break;
879
+ case "hour(s)":
880
+ options.freq = RRule.HOURLY;
881
+ if (ttr.nextSymbol()) {
882
+ ON();
883
+ F();
884
+ }
885
+ break;
886
+ case "minute(s)":
887
+ options.freq = RRule.MINUTELY;
888
+ if (ttr.nextSymbol()) {
889
+ ON();
890
+ F();
891
+ }
892
+ break;
893
+ case "month(s)":
894
+ options.freq = RRule.MONTHLY;
895
+ if (ttr.nextSymbol()) {
896
+ ON();
897
+ F();
898
+ }
899
+ break;
900
+ case "year(s)":
901
+ options.freq = RRule.YEARLY;
902
+ if (ttr.nextSymbol()) {
903
+ ON();
904
+ F();
905
+ }
906
+ break;
907
+ case "monday":
908
+ case "tuesday":
909
+ case "wednesday":
910
+ case "thursday":
911
+ case "friday":
912
+ case "saturday":
913
+ case "sunday":
914
+ options.freq = RRule.WEEKLY;
915
+ var key = ttr.symbol.substr(0, 2).toUpperCase();
916
+ options.byweekday = [RRule[key]];
917
+ if (!ttr.nextSymbol())
918
+ return;
919
+ while (ttr.accept("comma")) {
920
+ if (ttr.isDone())
921
+ throw new Error("Unexpected end");
922
+ var wkd = decodeWKD();
923
+ if (!wkd) {
924
+ throw new Error("Unexpected symbol " + ttr.symbol + ", expected weekday");
925
+ }
926
+ options.byweekday.push(RRule[wkd]);
927
+ ttr.nextSymbol();
928
+ }
929
+ AT();
930
+ MDAYs();
931
+ F();
932
+ break;
933
+ case "january":
934
+ case "february":
935
+ case "march":
936
+ case "april":
937
+ case "may":
938
+ case "june":
939
+ case "july":
940
+ case "august":
941
+ case "september":
942
+ case "october":
943
+ case "november":
944
+ case "december":
945
+ options.freq = RRule.YEARLY;
946
+ options.bymonth = [decodeM()];
947
+ if (!ttr.nextSymbol())
948
+ return;
949
+ while (ttr.accept("comma")) {
950
+ if (ttr.isDone())
951
+ throw new Error("Unexpected end");
952
+ var m = decodeM();
953
+ if (!m) {
954
+ throw new Error("Unexpected symbol " + ttr.symbol + ", expected month");
955
+ }
956
+ options.bymonth.push(m);
957
+ ttr.nextSymbol();
958
+ }
959
+ ON();
960
+ F();
961
+ break;
962
+ default:
963
+ throw new Error("Unknown symbol");
964
+ }
965
+ }
966
+ function ON() {
967
+ var on = ttr.accept("on");
968
+ var the = ttr.accept("the");
969
+ if (!(on || the))
970
+ return;
971
+ do {
972
+ var nth = decodeNTH();
973
+ var wkd = decodeWKD();
974
+ var m = decodeM();
975
+ if (nth) {
976
+ if (wkd) {
977
+ ttr.nextSymbol();
978
+ if (!options.byweekday)
979
+ options.byweekday = [];
980
+ options.byweekday.push(RRule[wkd].nth(nth));
981
+ } else {
982
+ if (!options.bymonthday)
983
+ options.bymonthday = [];
984
+ options.bymonthday.push(nth);
985
+ ttr.accept("day(s)");
986
+ }
987
+ } else if (wkd) {
988
+ ttr.nextSymbol();
989
+ if (!options.byweekday)
990
+ options.byweekday = [];
991
+ options.byweekday.push(RRule[wkd]);
992
+ } else if (ttr.symbol === "weekday(s)") {
993
+ ttr.nextSymbol();
994
+ if (!options.byweekday) {
995
+ options.byweekday = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR];
996
+ }
997
+ } else if (ttr.symbol === "week(s)") {
998
+ ttr.nextSymbol();
999
+ var n = ttr.acceptNumber();
1000
+ if (!n) {
1001
+ throw new Error("Unexpected symbol " + ttr.symbol + ", expected week number");
1002
+ }
1003
+ options.byweekno = [parseInt(n[0], 10)];
1004
+ while (ttr.accept("comma")) {
1005
+ n = ttr.acceptNumber();
1006
+ if (!n) {
1007
+ throw new Error("Unexpected symbol " + ttr.symbol + "; expected monthday");
1008
+ }
1009
+ options.byweekno.push(parseInt(n[0], 10));
1010
+ }
1011
+ } else if (m) {
1012
+ ttr.nextSymbol();
1013
+ if (!options.bymonth)
1014
+ options.bymonth = [];
1015
+ options.bymonth.push(m);
1016
+ } else {
1017
+ return;
1018
+ }
1019
+ } while (ttr.accept("comma") || ttr.accept("the") || ttr.accept("on"));
1020
+ }
1021
+ function AT() {
1022
+ var at = ttr.accept("at");
1023
+ if (!at)
1024
+ return;
1025
+ do {
1026
+ var n = ttr.acceptNumber();
1027
+ if (!n) {
1028
+ throw new Error("Unexpected symbol " + ttr.symbol + ", expected hour");
1029
+ }
1030
+ options.byhour = [parseInt(n[0], 10)];
1031
+ while (ttr.accept("comma")) {
1032
+ n = ttr.acceptNumber();
1033
+ if (!n) {
1034
+ throw new Error("Unexpected symbol " + ttr.symbol + "; expected hour");
1035
+ }
1036
+ options.byhour.push(parseInt(n[0], 10));
1037
+ }
1038
+ } while (ttr.accept("comma") || ttr.accept("at"));
1039
+ }
1040
+ function decodeM() {
1041
+ switch (ttr.symbol) {
1042
+ case "january":
1043
+ return 1;
1044
+ case "february":
1045
+ return 2;
1046
+ case "march":
1047
+ return 3;
1048
+ case "april":
1049
+ return 4;
1050
+ case "may":
1051
+ return 5;
1052
+ case "june":
1053
+ return 6;
1054
+ case "july":
1055
+ return 7;
1056
+ case "august":
1057
+ return 8;
1058
+ case "september":
1059
+ return 9;
1060
+ case "october":
1061
+ return 10;
1062
+ case "november":
1063
+ return 11;
1064
+ case "december":
1065
+ return 12;
1066
+ default:
1067
+ return false;
1068
+ }
1069
+ }
1070
+ function decodeWKD() {
1071
+ switch (ttr.symbol) {
1072
+ case "monday":
1073
+ case "tuesday":
1074
+ case "wednesday":
1075
+ case "thursday":
1076
+ case "friday":
1077
+ case "saturday":
1078
+ case "sunday":
1079
+ return ttr.symbol.substr(0, 2).toUpperCase();
1080
+ default:
1081
+ return false;
1082
+ }
1083
+ }
1084
+ function decodeNTH() {
1085
+ switch (ttr.symbol) {
1086
+ case "last":
1087
+ ttr.nextSymbol();
1088
+ return -1;
1089
+ case "first":
1090
+ ttr.nextSymbol();
1091
+ return 1;
1092
+ case "second":
1093
+ ttr.nextSymbol();
1094
+ return ttr.accept("last") ? -2 : 2;
1095
+ case "third":
1096
+ ttr.nextSymbol();
1097
+ return ttr.accept("last") ? -3 : 3;
1098
+ case "nth":
1099
+ var v = parseInt(ttr.value[1], 10);
1100
+ if (v < -366 || v > 366)
1101
+ throw new Error("Nth out of range: " + v);
1102
+ ttr.nextSymbol();
1103
+ return ttr.accept("last") ? -v : v;
1104
+ default:
1105
+ return false;
1106
+ }
1107
+ }
1108
+ function MDAYs() {
1109
+ ttr.accept("on");
1110
+ ttr.accept("the");
1111
+ var nth = decodeNTH();
1112
+ if (!nth)
1113
+ return;
1114
+ options.bymonthday = [nth];
1115
+ ttr.nextSymbol();
1116
+ while (ttr.accept("comma")) {
1117
+ nth = decodeNTH();
1118
+ if (!nth) {
1119
+ throw new Error("Unexpected symbol " + ttr.symbol + "; expected monthday");
1120
+ }
1121
+ options.bymonthday.push(nth);
1122
+ ttr.nextSymbol();
1123
+ }
1124
+ }
1125
+ function F() {
1126
+ if (ttr.symbol === "until") {
1127
+ var date = Date.parse(ttr.text);
1128
+ if (!date)
1129
+ throw new Error("Cannot parse until date:" + ttr.text);
1130
+ options.until = new Date(date);
1131
+ } else if (ttr.accept("for")) {
1132
+ options.count = parseInt(ttr.value[0], 10);
1133
+ ttr.expect("number");
1134
+ }
1135
+ }
1136
+ }
1137
+
1138
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/types.js
1139
+ var Frequency;
1140
+ (function(Frequency2) {
1141
+ Frequency2[Frequency2["YEARLY"] = 0] = "YEARLY";
1142
+ Frequency2[Frequency2["MONTHLY"] = 1] = "MONTHLY";
1143
+ Frequency2[Frequency2["WEEKLY"] = 2] = "WEEKLY";
1144
+ Frequency2[Frequency2["DAILY"] = 3] = "DAILY";
1145
+ Frequency2[Frequency2["HOURLY"] = 4] = "HOURLY";
1146
+ Frequency2[Frequency2["MINUTELY"] = 5] = "MINUTELY";
1147
+ Frequency2[Frequency2["SECONDLY"] = 6] = "SECONDLY";
1148
+ })(Frequency || (Frequency = {}));
1149
+ function freqIsDailyOrGreater(freq) {
1150
+ return freq < Frequency.HOURLY;
1151
+ }
1152
+
1153
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/nlp/index.js
1154
+ var fromText = function(text, language) {
1155
+ if (language === void 0) {
1156
+ language = i18n_default;
1157
+ }
1158
+ return new RRule(parseText(text, language) || void 0);
1159
+ };
1160
+ var common = [
1161
+ "count",
1162
+ "until",
1163
+ "interval",
1164
+ "byweekday",
1165
+ "bymonthday",
1166
+ "bymonth"
1167
+ ];
1168
+ totext_default.IMPLEMENTED = [];
1169
+ totext_default.IMPLEMENTED[Frequency.HOURLY] = common;
1170
+ totext_default.IMPLEMENTED[Frequency.MINUTELY] = common;
1171
+ totext_default.IMPLEMENTED[Frequency.DAILY] = ["byhour"].concat(common);
1172
+ totext_default.IMPLEMENTED[Frequency.WEEKLY] = common;
1173
+ totext_default.IMPLEMENTED[Frequency.MONTHLY] = common;
1174
+ totext_default.IMPLEMENTED[Frequency.YEARLY] = ["byweekno", "byyearday"].concat(common);
1175
+ var toText = function(rrule, gettext, language, dateFormatter) {
1176
+ return new totext_default(rrule, gettext, language, dateFormatter).toString();
1177
+ };
1178
+ var isFullyConvertible = totext_default.isFullyConvertible;
1179
+
1180
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/datetime.js
1181
+ var Time = (
1182
+ /** @class */
1183
+ (function() {
1184
+ function Time2(hour, minute, second, millisecond) {
1185
+ this.hour = hour;
1186
+ this.minute = minute;
1187
+ this.second = second;
1188
+ this.millisecond = millisecond || 0;
1189
+ }
1190
+ Time2.prototype.getHours = function() {
1191
+ return this.hour;
1192
+ };
1193
+ Time2.prototype.getMinutes = function() {
1194
+ return this.minute;
1195
+ };
1196
+ Time2.prototype.getSeconds = function() {
1197
+ return this.second;
1198
+ };
1199
+ Time2.prototype.getMilliseconds = function() {
1200
+ return this.millisecond;
1201
+ };
1202
+ Time2.prototype.getTime = function() {
1203
+ return (this.hour * 60 * 60 + this.minute * 60 + this.second) * 1e3 + this.millisecond;
1204
+ };
1205
+ return Time2;
1206
+ })()
1207
+ );
1208
+ var DateTime = (
1209
+ /** @class */
1210
+ (function(_super) {
1211
+ __extends(DateTime2, _super);
1212
+ function DateTime2(year, month, day, hour, minute, second, millisecond) {
1213
+ var _this = _super.call(this, hour, minute, second, millisecond) || this;
1214
+ _this.year = year;
1215
+ _this.month = month;
1216
+ _this.day = day;
1217
+ return _this;
1218
+ }
1219
+ DateTime2.fromDate = function(date) {
1220
+ return new this(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.valueOf() % 1e3);
1221
+ };
1222
+ DateTime2.prototype.getWeekday = function() {
1223
+ return getWeekday(new Date(this.getTime()));
1224
+ };
1225
+ DateTime2.prototype.getTime = function() {
1226
+ return new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond)).getTime();
1227
+ };
1228
+ DateTime2.prototype.getDay = function() {
1229
+ return this.day;
1230
+ };
1231
+ DateTime2.prototype.getMonth = function() {
1232
+ return this.month;
1233
+ };
1234
+ DateTime2.prototype.getYear = function() {
1235
+ return this.year;
1236
+ };
1237
+ DateTime2.prototype.addYears = function(years) {
1238
+ this.year += years;
1239
+ };
1240
+ DateTime2.prototype.addMonths = function(months) {
1241
+ this.month += months;
1242
+ if (this.month > 12) {
1243
+ var yearDiv = Math.floor(this.month / 12);
1244
+ var monthMod = pymod(this.month, 12);
1245
+ this.month = monthMod;
1246
+ this.year += yearDiv;
1247
+ if (this.month === 0) {
1248
+ this.month = 12;
1249
+ --this.year;
1250
+ }
1251
+ }
1252
+ };
1253
+ DateTime2.prototype.addWeekly = function(days, wkst) {
1254
+ if (wkst > this.getWeekday()) {
1255
+ this.day += -(this.getWeekday() + 1 + (6 - wkst)) + days * 7;
1256
+ } else {
1257
+ this.day += -(this.getWeekday() - wkst) + days * 7;
1258
+ }
1259
+ this.fixDay();
1260
+ };
1261
+ DateTime2.prototype.addDaily = function(days) {
1262
+ this.day += days;
1263
+ this.fixDay();
1264
+ };
1265
+ DateTime2.prototype.addHours = function(hours, filtered, byhour) {
1266
+ if (filtered) {
1267
+ this.hour += Math.floor((23 - this.hour) / hours) * hours;
1268
+ }
1269
+ for (; ; ) {
1270
+ this.hour += hours;
1271
+ var _a = divmod(this.hour, 24), dayDiv = _a.div, hourMod = _a.mod;
1272
+ if (dayDiv) {
1273
+ this.hour = hourMod;
1274
+ this.addDaily(dayDiv);
1275
+ }
1276
+ if (empty(byhour) || includes(byhour, this.hour))
1277
+ break;
1278
+ }
1279
+ };
1280
+ DateTime2.prototype.addMinutes = function(minutes, filtered, byhour, byminute) {
1281
+ if (filtered) {
1282
+ this.minute += Math.floor((1439 - (this.hour * 60 + this.minute)) / minutes) * minutes;
1283
+ }
1284
+ for (; ; ) {
1285
+ this.minute += minutes;
1286
+ var _a = divmod(this.minute, 60), hourDiv = _a.div, minuteMod = _a.mod;
1287
+ if (hourDiv) {
1288
+ this.minute = minuteMod;
1289
+ this.addHours(hourDiv, false, byhour);
1290
+ }
1291
+ if ((empty(byhour) || includes(byhour, this.hour)) && (empty(byminute) || includes(byminute, this.minute))) {
1292
+ break;
1293
+ }
1294
+ }
1295
+ };
1296
+ DateTime2.prototype.addSeconds = function(seconds, filtered, byhour, byminute, bysecond) {
1297
+ if (filtered) {
1298
+ this.second += Math.floor((86399 - (this.hour * 3600 + this.minute * 60 + this.second)) / seconds) * seconds;
1299
+ }
1300
+ for (; ; ) {
1301
+ this.second += seconds;
1302
+ var _a = divmod(this.second, 60), minuteDiv = _a.div, secondMod = _a.mod;
1303
+ if (minuteDiv) {
1304
+ this.second = secondMod;
1305
+ this.addMinutes(minuteDiv, false, byhour, byminute);
1306
+ }
1307
+ if ((empty(byhour) || includes(byhour, this.hour)) && (empty(byminute) || includes(byminute, this.minute)) && (empty(bysecond) || includes(bysecond, this.second))) {
1308
+ break;
1309
+ }
1310
+ }
1311
+ };
1312
+ DateTime2.prototype.fixDay = function() {
1313
+ if (this.day <= 28) {
1314
+ return;
1315
+ }
1316
+ var daysinmonth = monthRange(this.year, this.month - 1)[1];
1317
+ if (this.day <= daysinmonth) {
1318
+ return;
1319
+ }
1320
+ while (this.day > daysinmonth) {
1321
+ this.day -= daysinmonth;
1322
+ ++this.month;
1323
+ if (this.month === 13) {
1324
+ this.month = 1;
1325
+ ++this.year;
1326
+ if (this.year > MAXYEAR) {
1327
+ return;
1328
+ }
1329
+ }
1330
+ daysinmonth = monthRange(this.year, this.month - 1)[1];
1331
+ }
1332
+ };
1333
+ DateTime2.prototype.add = function(options, filtered) {
1334
+ var freq = options.freq, interval = options.interval, wkst = options.wkst, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond;
1335
+ switch (freq) {
1336
+ case Frequency.YEARLY:
1337
+ return this.addYears(interval);
1338
+ case Frequency.MONTHLY:
1339
+ return this.addMonths(interval);
1340
+ case Frequency.WEEKLY:
1341
+ return this.addWeekly(interval, wkst);
1342
+ case Frequency.DAILY:
1343
+ return this.addDaily(interval);
1344
+ case Frequency.HOURLY:
1345
+ return this.addHours(interval, filtered, byhour);
1346
+ case Frequency.MINUTELY:
1347
+ return this.addMinutes(interval, filtered, byhour, byminute);
1348
+ case Frequency.SECONDLY:
1349
+ return this.addSeconds(interval, filtered, byhour, byminute, bysecond);
1350
+ }
1351
+ };
1352
+ return DateTime2;
1353
+ })(Time)
1354
+ );
1355
+
1356
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/parseoptions.js
1357
+ function initializeOptions(options) {
1358
+ var invalid = [];
1359
+ var keys = Object.keys(options);
1360
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
1361
+ var key = keys_1[_i];
1362
+ if (!includes(defaultKeys, key))
1363
+ invalid.push(key);
1364
+ if (isDate(options[key]) && !isValidDate(options[key])) {
1365
+ invalid.push(key);
1366
+ }
1367
+ }
1368
+ if (invalid.length) {
1369
+ throw new Error("Invalid options: " + invalid.join(", "));
1370
+ }
1371
+ return __assign({}, options);
1372
+ }
1373
+ function parseOptions(options) {
1374
+ var opts = __assign(__assign({}, DEFAULT_OPTIONS), initializeOptions(options));
1375
+ if (isPresent(opts.byeaster))
1376
+ opts.freq = RRule.YEARLY;
1377
+ if (!(isPresent(opts.freq) && RRule.FREQUENCIES[opts.freq])) {
1378
+ throw new Error("Invalid frequency: ".concat(opts.freq, " ").concat(options.freq));
1379
+ }
1380
+ if (!opts.dtstart)
1381
+ opts.dtstart = new Date((/* @__PURE__ */ new Date()).setMilliseconds(0));
1382
+ if (!isPresent(opts.wkst)) {
1383
+ opts.wkst = RRule.MO.weekday;
1384
+ } else if (isNumber(opts.wkst)) ; else {
1385
+ opts.wkst = opts.wkst.weekday;
1386
+ }
1387
+ if (isPresent(opts.bysetpos)) {
1388
+ if (isNumber(opts.bysetpos))
1389
+ opts.bysetpos = [opts.bysetpos];
1390
+ for (var i = 0; i < opts.bysetpos.length; i++) {
1391
+ var v = opts.bysetpos[i];
1392
+ if (v === 0 || !(v >= -366 && v <= 366)) {
1393
+ throw new Error("bysetpos must be between 1 and 366, or between -366 and -1");
1394
+ }
1395
+ }
1396
+ }
1397
+ if (!(Boolean(opts.byweekno) || notEmpty(opts.byweekno) || notEmpty(opts.byyearday) || Boolean(opts.bymonthday) || notEmpty(opts.bymonthday) || isPresent(opts.byweekday) || isPresent(opts.byeaster))) {
1398
+ switch (opts.freq) {
1399
+ case RRule.YEARLY:
1400
+ if (!opts.bymonth)
1401
+ opts.bymonth = opts.dtstart.getUTCMonth() + 1;
1402
+ opts.bymonthday = opts.dtstart.getUTCDate();
1403
+ break;
1404
+ case RRule.MONTHLY:
1405
+ opts.bymonthday = opts.dtstart.getUTCDate();
1406
+ break;
1407
+ case RRule.WEEKLY:
1408
+ opts.byweekday = [getWeekday(opts.dtstart)];
1409
+ break;
1410
+ }
1411
+ }
1412
+ if (isPresent(opts.bymonth) && !isArray(opts.bymonth)) {
1413
+ opts.bymonth = [opts.bymonth];
1414
+ }
1415
+ if (isPresent(opts.byyearday) && !isArray(opts.byyearday) && isNumber(opts.byyearday)) {
1416
+ opts.byyearday = [opts.byyearday];
1417
+ }
1418
+ if (!isPresent(opts.bymonthday)) {
1419
+ opts.bymonthday = [];
1420
+ opts.bynmonthday = [];
1421
+ } else if (isArray(opts.bymonthday)) {
1422
+ var bymonthday = [];
1423
+ var bynmonthday = [];
1424
+ for (var i = 0; i < opts.bymonthday.length; i++) {
1425
+ var v = opts.bymonthday[i];
1426
+ if (v > 0) {
1427
+ bymonthday.push(v);
1428
+ } else if (v < 0) {
1429
+ bynmonthday.push(v);
1430
+ }
1431
+ }
1432
+ opts.bymonthday = bymonthday;
1433
+ opts.bynmonthday = bynmonthday;
1434
+ } else if (opts.bymonthday < 0) {
1435
+ opts.bynmonthday = [opts.bymonthday];
1436
+ opts.bymonthday = [];
1437
+ } else {
1438
+ opts.bynmonthday = [];
1439
+ opts.bymonthday = [opts.bymonthday];
1440
+ }
1441
+ if (isPresent(opts.byweekno) && !isArray(opts.byweekno)) {
1442
+ opts.byweekno = [opts.byweekno];
1443
+ }
1444
+ if (!isPresent(opts.byweekday)) {
1445
+ opts.bynweekday = null;
1446
+ } else if (isNumber(opts.byweekday)) {
1447
+ opts.byweekday = [opts.byweekday];
1448
+ opts.bynweekday = null;
1449
+ } else if (isWeekdayStr(opts.byweekday)) {
1450
+ opts.byweekday = [Weekday.fromStr(opts.byweekday).weekday];
1451
+ opts.bynweekday = null;
1452
+ } else if (opts.byweekday instanceof Weekday) {
1453
+ if (!opts.byweekday.n || opts.freq > RRule.MONTHLY) {
1454
+ opts.byweekday = [opts.byweekday.weekday];
1455
+ opts.bynweekday = null;
1456
+ } else {
1457
+ opts.bynweekday = [[opts.byweekday.weekday, opts.byweekday.n]];
1458
+ opts.byweekday = null;
1459
+ }
1460
+ } else {
1461
+ var byweekday = [];
1462
+ var bynweekday = [];
1463
+ for (var i = 0; i < opts.byweekday.length; i++) {
1464
+ var wday = opts.byweekday[i];
1465
+ if (isNumber(wday)) {
1466
+ byweekday.push(wday);
1467
+ continue;
1468
+ } else if (isWeekdayStr(wday)) {
1469
+ byweekday.push(Weekday.fromStr(wday).weekday);
1470
+ continue;
1471
+ }
1472
+ if (!wday.n || opts.freq > RRule.MONTHLY) {
1473
+ byweekday.push(wday.weekday);
1474
+ } else {
1475
+ bynweekday.push([wday.weekday, wday.n]);
1476
+ }
1477
+ }
1478
+ opts.byweekday = notEmpty(byweekday) ? byweekday : null;
1479
+ opts.bynweekday = notEmpty(bynweekday) ? bynweekday : null;
1480
+ }
1481
+ if (!isPresent(opts.byhour)) {
1482
+ opts.byhour = opts.freq < RRule.HOURLY ? [opts.dtstart.getUTCHours()] : null;
1483
+ } else if (isNumber(opts.byhour)) {
1484
+ opts.byhour = [opts.byhour];
1485
+ }
1486
+ if (!isPresent(opts.byminute)) {
1487
+ opts.byminute = opts.freq < RRule.MINUTELY ? [opts.dtstart.getUTCMinutes()] : null;
1488
+ } else if (isNumber(opts.byminute)) {
1489
+ opts.byminute = [opts.byminute];
1490
+ }
1491
+ if (!isPresent(opts.bysecond)) {
1492
+ opts.bysecond = opts.freq < RRule.SECONDLY ? [opts.dtstart.getUTCSeconds()] : null;
1493
+ } else if (isNumber(opts.bysecond)) {
1494
+ opts.bysecond = [opts.bysecond];
1495
+ }
1496
+ return { parsedOptions: opts };
1497
+ }
1498
+ function buildTimeset(opts) {
1499
+ var millisecondModulo = opts.dtstart.getTime() % 1e3;
1500
+ if (!freqIsDailyOrGreater(opts.freq)) {
1501
+ return [];
1502
+ }
1503
+ var timeset = [];
1504
+ opts.byhour.forEach(function(hour) {
1505
+ opts.byminute.forEach(function(minute) {
1506
+ opts.bysecond.forEach(function(second) {
1507
+ timeset.push(new Time(hour, minute, second, millisecondModulo));
1508
+ });
1509
+ });
1510
+ });
1511
+ return timeset;
1512
+ }
1513
+
1514
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/parsestring.js
1515
+ function parseString(rfcString) {
1516
+ var options = rfcString.split("\n").map(parseLine).filter(function(x) {
1517
+ return x !== null;
1518
+ });
1519
+ return __assign(__assign({}, options[0]), options[1]);
1520
+ }
1521
+ function parseDtstart(line) {
1522
+ var options = {};
1523
+ var dtstartWithZone = /DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\s]+)/i.exec(line);
1524
+ if (!dtstartWithZone) {
1525
+ return options;
1526
+ }
1527
+ var tzid = dtstartWithZone[1], dtstart = dtstartWithZone[2];
1528
+ if (tzid) {
1529
+ options.tzid = tzid;
1530
+ }
1531
+ options.dtstart = untilStringToDate(dtstart);
1532
+ return options;
1533
+ }
1534
+ function parseLine(rfcString) {
1535
+ rfcString = rfcString.replace(/^\s+|\s+$/, "");
1536
+ if (!rfcString.length)
1537
+ return null;
1538
+ var header = /^([A-Z]+?)[:;]/.exec(rfcString.toUpperCase());
1539
+ if (!header) {
1540
+ return parseRrule(rfcString);
1541
+ }
1542
+ var key = header[1];
1543
+ switch (key.toUpperCase()) {
1544
+ case "RRULE":
1545
+ case "EXRULE":
1546
+ return parseRrule(rfcString);
1547
+ case "DTSTART":
1548
+ return parseDtstart(rfcString);
1549
+ default:
1550
+ throw new Error("Unsupported RFC prop ".concat(key, " in ").concat(rfcString));
1551
+ }
1552
+ }
1553
+ function parseRrule(line) {
1554
+ var strippedLine = line.replace(/^RRULE:/i, "");
1555
+ var options = parseDtstart(strippedLine);
1556
+ var attrs = line.replace(/^(?:RRULE|EXRULE):/i, "").split(";");
1557
+ attrs.forEach(function(attr) {
1558
+ var _a = attr.split("="), key = _a[0], value = _a[1];
1559
+ switch (key.toUpperCase()) {
1560
+ case "FREQ":
1561
+ options.freq = Frequency[value.toUpperCase()];
1562
+ break;
1563
+ case "WKST":
1564
+ options.wkst = Days[value.toUpperCase()];
1565
+ break;
1566
+ case "COUNT":
1567
+ case "INTERVAL":
1568
+ case "BYSETPOS":
1569
+ case "BYMONTH":
1570
+ case "BYMONTHDAY":
1571
+ case "BYYEARDAY":
1572
+ case "BYWEEKNO":
1573
+ case "BYHOUR":
1574
+ case "BYMINUTE":
1575
+ case "BYSECOND":
1576
+ var num = parseNumber(value);
1577
+ var optionKey = key.toLowerCase();
1578
+ options[optionKey] = num;
1579
+ break;
1580
+ case "BYWEEKDAY":
1581
+ case "BYDAY":
1582
+ options.byweekday = parseWeekday(value);
1583
+ break;
1584
+ case "DTSTART":
1585
+ case "TZID":
1586
+ var dtstart = parseDtstart(line);
1587
+ options.tzid = dtstart.tzid;
1588
+ options.dtstart = dtstart.dtstart;
1589
+ break;
1590
+ case "UNTIL":
1591
+ options.until = untilStringToDate(value);
1592
+ break;
1593
+ case "BYEASTER":
1594
+ options.byeaster = Number(value);
1595
+ break;
1596
+ default:
1597
+ throw new Error("Unknown RRULE property '" + key + "'");
1598
+ }
1599
+ });
1600
+ return options;
1601
+ }
1602
+ function parseNumber(value) {
1603
+ if (value.indexOf(",") !== -1) {
1604
+ var values = value.split(",");
1605
+ return values.map(parseIndividualNumber);
1606
+ }
1607
+ return parseIndividualNumber(value);
1608
+ }
1609
+ function parseIndividualNumber(value) {
1610
+ if (/^[+-]?\d+$/.test(value)) {
1611
+ return Number(value);
1612
+ }
1613
+ return value;
1614
+ }
1615
+ function parseWeekday(value) {
1616
+ var days = value.split(",");
1617
+ return days.map(function(day) {
1618
+ if (day.length === 2) {
1619
+ return Days[day];
1620
+ }
1621
+ var parts = day.match(/^([+-]?\d{1,2})([A-Z]{2})$/);
1622
+ if (!parts || parts.length < 3) {
1623
+ throw new SyntaxError("Invalid weekday string: ".concat(day));
1624
+ }
1625
+ var n = Number(parts[1]);
1626
+ var wdaypart = parts[2];
1627
+ var wday = Days[wdaypart].weekday;
1628
+ return new Weekday(wday, n);
1629
+ });
1630
+ }
1631
+
1632
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/datewithzone.js
1633
+ var DateWithZone = (
1634
+ /** @class */
1635
+ (function() {
1636
+ function DateWithZone2(date, tzid) {
1637
+ if (isNaN(date.getTime())) {
1638
+ throw new RangeError("Invalid date passed to DateWithZone");
1639
+ }
1640
+ this.date = date;
1641
+ this.tzid = tzid;
1642
+ }
1643
+ Object.defineProperty(DateWithZone2.prototype, "isUTC", {
1644
+ get: function() {
1645
+ return !this.tzid || this.tzid.toUpperCase() === "UTC";
1646
+ },
1647
+ enumerable: false,
1648
+ configurable: true
1649
+ });
1650
+ DateWithZone2.prototype.toString = function() {
1651
+ var datestr = timeToUntilString(this.date.getTime(), this.isUTC);
1652
+ if (!this.isUTC) {
1653
+ return ";TZID=".concat(this.tzid, ":").concat(datestr);
1654
+ }
1655
+ return ":".concat(datestr);
1656
+ };
1657
+ DateWithZone2.prototype.getTime = function() {
1658
+ return this.date.getTime();
1659
+ };
1660
+ DateWithZone2.prototype.rezonedDate = function() {
1661
+ if (this.isUTC) {
1662
+ return this.date;
1663
+ }
1664
+ return dateInTimeZone(this.date, this.tzid);
1665
+ };
1666
+ return DateWithZone2;
1667
+ })()
1668
+ );
1669
+
1670
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/optionstostring.js
1671
+ function optionsToString(options) {
1672
+ var rrule = [];
1673
+ var dtstart = "";
1674
+ var keys = Object.keys(options);
1675
+ var defaultKeys2 = Object.keys(DEFAULT_OPTIONS);
1676
+ for (var i = 0; i < keys.length; i++) {
1677
+ if (keys[i] === "tzid")
1678
+ continue;
1679
+ if (!includes(defaultKeys2, keys[i]))
1680
+ continue;
1681
+ var key = keys[i].toUpperCase();
1682
+ var value = options[keys[i]];
1683
+ var outValue = "";
1684
+ if (!isPresent(value) || isArray(value) && !value.length)
1685
+ continue;
1686
+ switch (key) {
1687
+ case "FREQ":
1688
+ outValue = RRule.FREQUENCIES[options.freq];
1689
+ break;
1690
+ case "WKST":
1691
+ if (isNumber(value)) {
1692
+ outValue = new Weekday(value).toString();
1693
+ } else {
1694
+ outValue = value.toString();
1695
+ }
1696
+ break;
1697
+ case "BYWEEKDAY":
1698
+ key = "BYDAY";
1699
+ outValue = toArray(value).map(function(wday) {
1700
+ if (wday instanceof Weekday) {
1701
+ return wday;
1702
+ }
1703
+ if (isArray(wday)) {
1704
+ return new Weekday(wday[0], wday[1]);
1705
+ }
1706
+ return new Weekday(wday);
1707
+ }).toString();
1708
+ break;
1709
+ case "DTSTART":
1710
+ dtstart = buildDtstart(value, options.tzid);
1711
+ break;
1712
+ case "UNTIL":
1713
+ outValue = timeToUntilString(value, !options.tzid);
1714
+ break;
1715
+ default:
1716
+ if (isArray(value)) {
1717
+ var strValues = [];
1718
+ for (var j = 0; j < value.length; j++) {
1719
+ strValues[j] = String(value[j]);
1720
+ }
1721
+ outValue = strValues.toString();
1722
+ } else {
1723
+ outValue = String(value);
1724
+ }
1725
+ }
1726
+ if (outValue) {
1727
+ rrule.push([key, outValue]);
1728
+ }
1729
+ }
1730
+ var rules = rrule.map(function(_a) {
1731
+ var key2 = _a[0], value2 = _a[1];
1732
+ return "".concat(key2, "=").concat(value2.toString());
1733
+ }).join(";");
1734
+ var ruleString = "";
1735
+ if (rules !== "") {
1736
+ ruleString = "RRULE:".concat(rules);
1737
+ }
1738
+ return [dtstart, ruleString].filter(function(x) {
1739
+ return !!x;
1740
+ }).join("\n");
1741
+ }
1742
+ function buildDtstart(dtstart, tzid) {
1743
+ if (!dtstart) {
1744
+ return "";
1745
+ }
1746
+ return "DTSTART" + new DateWithZone(new Date(dtstart), tzid).toString();
1747
+ }
1748
+
1749
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/cache.js
1750
+ function argsMatch(left, right) {
1751
+ if (Array.isArray(left)) {
1752
+ if (!Array.isArray(right))
1753
+ return false;
1754
+ if (left.length !== right.length)
1755
+ return false;
1756
+ return left.every(function(date, i) {
1757
+ return date.getTime() === right[i].getTime();
1758
+ });
1759
+ }
1760
+ if (left instanceof Date) {
1761
+ return right instanceof Date && left.getTime() === right.getTime();
1762
+ }
1763
+ return left === right;
1764
+ }
1765
+ var Cache = (
1766
+ /** @class */
1767
+ (function() {
1768
+ function Cache2() {
1769
+ this.all = false;
1770
+ this.before = [];
1771
+ this.after = [];
1772
+ this.between = [];
1773
+ }
1774
+ Cache2.prototype._cacheAdd = function(what, value, args) {
1775
+ if (value) {
1776
+ value = value instanceof Date ? clone(value) : cloneDates(value);
1777
+ }
1778
+ if (what === "all") {
1779
+ this.all = value;
1780
+ } else {
1781
+ args._value = value;
1782
+ this[what].push(args);
1783
+ }
1784
+ };
1785
+ Cache2.prototype._cacheGet = function(what, args) {
1786
+ var cached = false;
1787
+ var argsKeys = args ? Object.keys(args) : [];
1788
+ var findCacheDiff = function(item2) {
1789
+ for (var i2 = 0; i2 < argsKeys.length; i2++) {
1790
+ var key = argsKeys[i2];
1791
+ if (!argsMatch(args[key], item2[key])) {
1792
+ return true;
1793
+ }
1794
+ }
1795
+ return false;
1796
+ };
1797
+ var cachedObject = this[what];
1798
+ if (what === "all") {
1799
+ cached = this.all;
1800
+ } else if (isArray(cachedObject)) {
1801
+ for (var i = 0; i < cachedObject.length; i++) {
1802
+ var item = cachedObject[i];
1803
+ if (argsKeys.length && findCacheDiff(item))
1804
+ continue;
1805
+ cached = item._value;
1806
+ break;
1807
+ }
1808
+ }
1809
+ if (!cached && this.all) {
1810
+ var iterResult = new iterresult_default(what, args);
1811
+ for (var i = 0; i < this.all.length; i++) {
1812
+ if (!iterResult.accept(this.all[i]))
1813
+ break;
1814
+ }
1815
+ cached = iterResult.getValue();
1816
+ this._cacheAdd(what, cached, args);
1817
+ }
1818
+ return isArray(cached) ? cloneDates(cached) : cached instanceof Date ? clone(cached) : cached;
1819
+ };
1820
+ return Cache2;
1821
+ })()
1822
+ );
1823
+
1824
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/masks.js
1825
+ var M365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], repeat(1, 31), true), repeat(2, 28), true), repeat(3, 31), true), repeat(4, 30), true), repeat(5, 31), true), repeat(6, 30), true), repeat(7, 31), true), repeat(8, 31), true), repeat(9, 30), true), repeat(10, 31), true), repeat(11, 30), true), repeat(12, 31), true), repeat(1, 7));
1826
+ var M366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], repeat(1, 31), true), repeat(2, 29), true), repeat(3, 31), true), repeat(4, 30), true), repeat(5, 31), true), repeat(6, 30), true), repeat(7, 31), true), repeat(8, 31), true), repeat(9, 30), true), repeat(10, 31), true), repeat(11, 30), true), repeat(12, 31), true), repeat(1, 7));
1827
+ var M28 = range(1, 29);
1828
+ var M29 = range(1, 30);
1829
+ var M30 = range(1, 31);
1830
+ var M31 = range(1, 32);
1831
+ var MDAY366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], M31, true), M29, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31.slice(0, 7));
1832
+ var MDAY365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], M31, true), M28, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31.slice(0, 7));
1833
+ var NM28 = range(-28, 0);
1834
+ var NM29 = range(-29, 0);
1835
+ var NM30 = range(-30, 0);
1836
+ var NM31 = range(-31, 0);
1837
+ var NMDAY366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], NM31, true), NM29, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31.slice(0, 7));
1838
+ var NMDAY365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], NM31, true), NM28, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31.slice(0, 7));
1839
+ var M366RANGE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366];
1840
+ var M365RANGE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];
1841
+ var WDAYMASK = (function() {
1842
+ var wdaymask = [];
1843
+ for (var i = 0; i < 55; i++)
1844
+ wdaymask = wdaymask.concat(range(7));
1845
+ return wdaymask;
1846
+ })();
1847
+
1848
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterinfo/yearinfo.js
1849
+ function rebuildYear(year, options) {
1850
+ var firstyday = datetime(year, 1, 1);
1851
+ var yearlen = isLeapYear(year) ? 366 : 365;
1852
+ var nextyearlen = isLeapYear(year + 1) ? 366 : 365;
1853
+ var yearordinal = toOrdinal(firstyday);
1854
+ var yearweekday = getWeekday(firstyday);
1855
+ var result = __assign(__assign({ yearlen, nextyearlen, yearordinal, yearweekday }, baseYearMasks(year)), { wnomask: null });
1856
+ if (empty(options.byweekno)) {
1857
+ return result;
1858
+ }
1859
+ result.wnomask = repeat(0, yearlen + 7);
1860
+ var firstwkst;
1861
+ var wyearlen;
1862
+ var no1wkst = firstwkst = pymod(7 - yearweekday + options.wkst, 7);
1863
+ if (no1wkst >= 4) {
1864
+ no1wkst = 0;
1865
+ wyearlen = result.yearlen + pymod(yearweekday - options.wkst, 7);
1866
+ } else {
1867
+ wyearlen = yearlen - no1wkst;
1868
+ }
1869
+ var div = Math.floor(wyearlen / 7);
1870
+ var mod = pymod(wyearlen, 7);
1871
+ var numweeks = Math.floor(div + mod / 4);
1872
+ for (var j = 0; j < options.byweekno.length; j++) {
1873
+ var n = options.byweekno[j];
1874
+ if (n < 0) {
1875
+ n += numweeks + 1;
1876
+ }
1877
+ if (!(n > 0 && n <= numweeks)) {
1878
+ continue;
1879
+ }
1880
+ var i = void 0;
1881
+ if (n > 1) {
1882
+ i = no1wkst + (n - 1) * 7;
1883
+ if (no1wkst !== firstwkst) {
1884
+ i -= 7 - firstwkst;
1885
+ }
1886
+ } else {
1887
+ i = no1wkst;
1888
+ }
1889
+ for (var k = 0; k < 7; k++) {
1890
+ result.wnomask[i] = 1;
1891
+ i++;
1892
+ if (result.wdaymask[i] === options.wkst)
1893
+ break;
1894
+ }
1895
+ }
1896
+ if (includes(options.byweekno, 1)) {
1897
+ var i = no1wkst + numweeks * 7;
1898
+ if (no1wkst !== firstwkst)
1899
+ i -= 7 - firstwkst;
1900
+ if (i < yearlen) {
1901
+ for (var j = 0; j < 7; j++) {
1902
+ result.wnomask[i] = 1;
1903
+ i += 1;
1904
+ if (result.wdaymask[i] === options.wkst)
1905
+ break;
1906
+ }
1907
+ }
1908
+ }
1909
+ if (no1wkst) {
1910
+ var lnumweeks = void 0;
1911
+ if (!includes(options.byweekno, -1)) {
1912
+ var lyearweekday = getWeekday(datetime(year - 1, 1, 1));
1913
+ var lno1wkst = pymod(7 - lyearweekday.valueOf() + options.wkst, 7);
1914
+ var lyearlen = isLeapYear(year - 1) ? 366 : 365;
1915
+ var weekst = void 0;
1916
+ if (lno1wkst >= 4) {
1917
+ lno1wkst = 0;
1918
+ weekst = lyearlen + pymod(lyearweekday - options.wkst, 7);
1919
+ } else {
1920
+ weekst = yearlen - no1wkst;
1921
+ }
1922
+ lnumweeks = Math.floor(52 + pymod(weekst, 7) / 4);
1923
+ } else {
1924
+ lnumweeks = -1;
1925
+ }
1926
+ if (includes(options.byweekno, lnumweeks)) {
1927
+ for (var i = 0; i < no1wkst; i++)
1928
+ result.wnomask[i] = 1;
1929
+ }
1930
+ }
1931
+ return result;
1932
+ }
1933
+ function baseYearMasks(year) {
1934
+ var yearlen = isLeapYear(year) ? 366 : 365;
1935
+ var firstyday = datetime(year, 1, 1);
1936
+ var wday = getWeekday(firstyday);
1937
+ if (yearlen === 365) {
1938
+ return {
1939
+ mmask: M365MASK,
1940
+ mdaymask: MDAY365MASK,
1941
+ nmdaymask: NMDAY365MASK,
1942
+ wdaymask: WDAYMASK.slice(wday),
1943
+ mrange: M365RANGE
1944
+ };
1945
+ }
1946
+ return {
1947
+ mmask: M366MASK,
1948
+ mdaymask: MDAY366MASK,
1949
+ nmdaymask: NMDAY366MASK,
1950
+ wdaymask: WDAYMASK.slice(wday),
1951
+ mrange: M366RANGE
1952
+ };
1953
+ }
1954
+
1955
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterinfo/monthinfo.js
1956
+ function rebuildMonth(year, month, yearlen, mrange, wdaymask, options) {
1957
+ var result = {
1958
+ lastyear: year,
1959
+ lastmonth: month,
1960
+ nwdaymask: []
1961
+ };
1962
+ var ranges = [];
1963
+ if (options.freq === RRule.YEARLY) {
1964
+ if (empty(options.bymonth)) {
1965
+ ranges = [[0, yearlen]];
1966
+ } else {
1967
+ for (var j = 0; j < options.bymonth.length; j++) {
1968
+ month = options.bymonth[j];
1969
+ ranges.push(mrange.slice(month - 1, month + 1));
1970
+ }
1971
+ }
1972
+ } else if (options.freq === RRule.MONTHLY) {
1973
+ ranges = [mrange.slice(month - 1, month + 1)];
1974
+ }
1975
+ if (empty(ranges)) {
1976
+ return result;
1977
+ }
1978
+ result.nwdaymask = repeat(0, yearlen);
1979
+ for (var j = 0; j < ranges.length; j++) {
1980
+ var rang = ranges[j];
1981
+ var first = rang[0];
1982
+ var last = rang[1] - 1;
1983
+ for (var k = 0; k < options.bynweekday.length; k++) {
1984
+ var i = void 0;
1985
+ var _a = options.bynweekday[k], wday = _a[0], n = _a[1];
1986
+ if (n < 0) {
1987
+ i = last + (n + 1) * 7;
1988
+ i -= pymod(wdaymask[i] - wday, 7);
1989
+ } else {
1990
+ i = first + (n - 1) * 7;
1991
+ i += pymod(7 - wdaymask[i] + wday, 7);
1992
+ }
1993
+ if (first <= i && i <= last)
1994
+ result.nwdaymask[i] = 1;
1995
+ }
1996
+ }
1997
+ return result;
1998
+ }
1999
+
2000
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterinfo/easter.js
2001
+ function easter(y, offset) {
2002
+ if (offset === void 0) {
2003
+ offset = 0;
2004
+ }
2005
+ var a = y % 19;
2006
+ var b = Math.floor(y / 100);
2007
+ var c = y % 100;
2008
+ var d = Math.floor(b / 4);
2009
+ var e = b % 4;
2010
+ var f = Math.floor((b + 8) / 25);
2011
+ var g = Math.floor((b - f + 1) / 3);
2012
+ var h = Math.floor(19 * a + b - d - g + 15) % 30;
2013
+ var i = Math.floor(c / 4);
2014
+ var k = c % 4;
2015
+ var l = Math.floor(32 + 2 * e + 2 * i - h - k) % 7;
2016
+ var m = Math.floor((a + 11 * h + 22 * l) / 451);
2017
+ var month = Math.floor((h + l - 7 * m + 114) / 31);
2018
+ var day = (h + l - 7 * m + 114) % 31 + 1;
2019
+ var date = Date.UTC(y, month - 1, day + offset);
2020
+ var yearStart = Date.UTC(y, 0, 1);
2021
+ return [Math.ceil((date - yearStart) / (1e3 * 60 * 60 * 24))];
2022
+ }
2023
+
2024
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterinfo/index.js
2025
+ var Iterinfo = (
2026
+ /** @class */
2027
+ (function() {
2028
+ function Iterinfo2(options) {
2029
+ this.options = options;
2030
+ }
2031
+ Iterinfo2.prototype.rebuild = function(year, month) {
2032
+ var options = this.options;
2033
+ if (year !== this.lastyear) {
2034
+ this.yearinfo = rebuildYear(year, options);
2035
+ }
2036
+ if (notEmpty(options.bynweekday) && (month !== this.lastmonth || year !== this.lastyear)) {
2037
+ var _a = this.yearinfo, yearlen = _a.yearlen, mrange = _a.mrange, wdaymask = _a.wdaymask;
2038
+ this.monthinfo = rebuildMonth(year, month, yearlen, mrange, wdaymask, options);
2039
+ }
2040
+ if (isPresent(options.byeaster)) {
2041
+ this.eastermask = easter(year, options.byeaster);
2042
+ }
2043
+ };
2044
+ Object.defineProperty(Iterinfo2.prototype, "lastyear", {
2045
+ get: function() {
2046
+ return this.monthinfo ? this.monthinfo.lastyear : null;
2047
+ },
2048
+ enumerable: false,
2049
+ configurable: true
2050
+ });
2051
+ Object.defineProperty(Iterinfo2.prototype, "lastmonth", {
2052
+ get: function() {
2053
+ return this.monthinfo ? this.monthinfo.lastmonth : null;
2054
+ },
2055
+ enumerable: false,
2056
+ configurable: true
2057
+ });
2058
+ Object.defineProperty(Iterinfo2.prototype, "yearlen", {
2059
+ get: function() {
2060
+ return this.yearinfo.yearlen;
2061
+ },
2062
+ enumerable: false,
2063
+ configurable: true
2064
+ });
2065
+ Object.defineProperty(Iterinfo2.prototype, "yearordinal", {
2066
+ get: function() {
2067
+ return this.yearinfo.yearordinal;
2068
+ },
2069
+ enumerable: false,
2070
+ configurable: true
2071
+ });
2072
+ Object.defineProperty(Iterinfo2.prototype, "mrange", {
2073
+ get: function() {
2074
+ return this.yearinfo.mrange;
2075
+ },
2076
+ enumerable: false,
2077
+ configurable: true
2078
+ });
2079
+ Object.defineProperty(Iterinfo2.prototype, "wdaymask", {
2080
+ get: function() {
2081
+ return this.yearinfo.wdaymask;
2082
+ },
2083
+ enumerable: false,
2084
+ configurable: true
2085
+ });
2086
+ Object.defineProperty(Iterinfo2.prototype, "mmask", {
2087
+ get: function() {
2088
+ return this.yearinfo.mmask;
2089
+ },
2090
+ enumerable: false,
2091
+ configurable: true
2092
+ });
2093
+ Object.defineProperty(Iterinfo2.prototype, "wnomask", {
2094
+ get: function() {
2095
+ return this.yearinfo.wnomask;
2096
+ },
2097
+ enumerable: false,
2098
+ configurable: true
2099
+ });
2100
+ Object.defineProperty(Iterinfo2.prototype, "nwdaymask", {
2101
+ get: function() {
2102
+ return this.monthinfo ? this.monthinfo.nwdaymask : [];
2103
+ },
2104
+ enumerable: false,
2105
+ configurable: true
2106
+ });
2107
+ Object.defineProperty(Iterinfo2.prototype, "nextyearlen", {
2108
+ get: function() {
2109
+ return this.yearinfo.nextyearlen;
2110
+ },
2111
+ enumerable: false,
2112
+ configurable: true
2113
+ });
2114
+ Object.defineProperty(Iterinfo2.prototype, "mdaymask", {
2115
+ get: function() {
2116
+ return this.yearinfo.mdaymask;
2117
+ },
2118
+ enumerable: false,
2119
+ configurable: true
2120
+ });
2121
+ Object.defineProperty(Iterinfo2.prototype, "nmdaymask", {
2122
+ get: function() {
2123
+ return this.yearinfo.nmdaymask;
2124
+ },
2125
+ enumerable: false,
2126
+ configurable: true
2127
+ });
2128
+ Iterinfo2.prototype.ydayset = function() {
2129
+ return [range(this.yearlen), 0, this.yearlen];
2130
+ };
2131
+ Iterinfo2.prototype.mdayset = function(_, month) {
2132
+ var start = this.mrange[month - 1];
2133
+ var end = this.mrange[month];
2134
+ var set = repeat(null, this.yearlen);
2135
+ for (var i = start; i < end; i++)
2136
+ set[i] = i;
2137
+ return [set, start, end];
2138
+ };
2139
+ Iterinfo2.prototype.wdayset = function(year, month, day) {
2140
+ var set = repeat(null, this.yearlen + 7);
2141
+ var i = toOrdinal(datetime(year, month, day)) - this.yearordinal;
2142
+ var start = i;
2143
+ for (var j = 0; j < 7; j++) {
2144
+ set[i] = i;
2145
+ ++i;
2146
+ if (this.wdaymask[i] === this.options.wkst)
2147
+ break;
2148
+ }
2149
+ return [set, start, i];
2150
+ };
2151
+ Iterinfo2.prototype.ddayset = function(year, month, day) {
2152
+ var set = repeat(null, this.yearlen);
2153
+ var i = toOrdinal(datetime(year, month, day)) - this.yearordinal;
2154
+ set[i] = i;
2155
+ return [set, i, i + 1];
2156
+ };
2157
+ Iterinfo2.prototype.htimeset = function(hour, _, second, millisecond) {
2158
+ var _this = this;
2159
+ var set = [];
2160
+ this.options.byminute.forEach(function(minute) {
2161
+ set = set.concat(_this.mtimeset(hour, minute, second, millisecond));
2162
+ });
2163
+ sort(set);
2164
+ return set;
2165
+ };
2166
+ Iterinfo2.prototype.mtimeset = function(hour, minute, _, millisecond) {
2167
+ var set = this.options.bysecond.map(function(second) {
2168
+ return new Time(hour, minute, second, millisecond);
2169
+ });
2170
+ sort(set);
2171
+ return set;
2172
+ };
2173
+ Iterinfo2.prototype.stimeset = function(hour, minute, second, millisecond) {
2174
+ return [new Time(hour, minute, second, millisecond)];
2175
+ };
2176
+ Iterinfo2.prototype.getdayset = function(freq) {
2177
+ switch (freq) {
2178
+ case Frequency.YEARLY:
2179
+ return this.ydayset.bind(this);
2180
+ case Frequency.MONTHLY:
2181
+ return this.mdayset.bind(this);
2182
+ case Frequency.WEEKLY:
2183
+ return this.wdayset.bind(this);
2184
+ case Frequency.DAILY:
2185
+ return this.ddayset.bind(this);
2186
+ default:
2187
+ return this.ddayset.bind(this);
2188
+ }
2189
+ };
2190
+ Iterinfo2.prototype.gettimeset = function(freq) {
2191
+ switch (freq) {
2192
+ case Frequency.HOURLY:
2193
+ return this.htimeset.bind(this);
2194
+ case Frequency.MINUTELY:
2195
+ return this.mtimeset.bind(this);
2196
+ case Frequency.SECONDLY:
2197
+ return this.stimeset.bind(this);
2198
+ }
2199
+ };
2200
+ return Iterinfo2;
2201
+ })()
2202
+ );
2203
+ var iterinfo_default = Iterinfo;
2204
+
2205
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iter/poslist.js
2206
+ function buildPoslist(bysetpos, timeset, start, end, ii, dayset) {
2207
+ var poslist = [];
2208
+ for (var j = 0; j < bysetpos.length; j++) {
2209
+ var daypos = void 0;
2210
+ var timepos = void 0;
2211
+ var pos = bysetpos[j];
2212
+ if (pos < 0) {
2213
+ daypos = Math.floor(pos / timeset.length);
2214
+ timepos = pymod(pos, timeset.length);
2215
+ } else {
2216
+ daypos = Math.floor((pos - 1) / timeset.length);
2217
+ timepos = pymod(pos - 1, timeset.length);
2218
+ }
2219
+ var tmp = [];
2220
+ for (var k = start; k < end; k++) {
2221
+ var val = dayset[k];
2222
+ if (!isPresent(val))
2223
+ continue;
2224
+ tmp.push(val);
2225
+ }
2226
+ var i = void 0;
2227
+ if (daypos < 0) {
2228
+ i = tmp.slice(daypos)[0];
2229
+ } else {
2230
+ i = tmp[daypos];
2231
+ }
2232
+ var time = timeset[timepos];
2233
+ var date = fromOrdinal(ii.yearordinal + i);
2234
+ var res = combine(date, time);
2235
+ if (!includes(poslist, res))
2236
+ poslist.push(res);
2237
+ }
2238
+ sort(poslist);
2239
+ return poslist;
2240
+ }
2241
+
2242
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iter/index.js
2243
+ function iter(iterResult, options) {
2244
+ var dtstart = options.dtstart, freq = options.freq, interval = options.interval, until = options.until, bysetpos = options.bysetpos;
2245
+ var count = options.count;
2246
+ if (count === 0 || interval === 0) {
2247
+ return emitResult(iterResult);
2248
+ }
2249
+ var counterDate = DateTime.fromDate(dtstart);
2250
+ var ii = new iterinfo_default(options);
2251
+ ii.rebuild(counterDate.year, counterDate.month);
2252
+ var timeset = makeTimeset(ii, counterDate, options);
2253
+ for (; ; ) {
2254
+ var _a = ii.getdayset(freq)(counterDate.year, counterDate.month, counterDate.day), dayset = _a[0], start = _a[1], end = _a[2];
2255
+ var filtered = removeFilteredDays(dayset, start, end, ii, options);
2256
+ if (notEmpty(bysetpos)) {
2257
+ var poslist = buildPoslist(bysetpos, timeset, start, end, ii, dayset);
2258
+ for (var j = 0; j < poslist.length; j++) {
2259
+ var res = poslist[j];
2260
+ if (until && res > until) {
2261
+ return emitResult(iterResult);
2262
+ }
2263
+ if (res >= dtstart) {
2264
+ var rezonedDate = rezoneIfNeeded(res, options);
2265
+ if (!iterResult.accept(rezonedDate)) {
2266
+ return emitResult(iterResult);
2267
+ }
2268
+ if (count) {
2269
+ --count;
2270
+ if (!count) {
2271
+ return emitResult(iterResult);
2272
+ }
2273
+ }
2274
+ }
2275
+ }
2276
+ } else {
2277
+ for (var j = start; j < end; j++) {
2278
+ var currentDay = dayset[j];
2279
+ if (!isPresent(currentDay)) {
2280
+ continue;
2281
+ }
2282
+ var date = fromOrdinal(ii.yearordinal + currentDay);
2283
+ for (var k = 0; k < timeset.length; k++) {
2284
+ var time = timeset[k];
2285
+ var res = combine(date, time);
2286
+ if (until && res > until) {
2287
+ return emitResult(iterResult);
2288
+ }
2289
+ if (res >= dtstart) {
2290
+ var rezonedDate = rezoneIfNeeded(res, options);
2291
+ if (!iterResult.accept(rezonedDate)) {
2292
+ return emitResult(iterResult);
2293
+ }
2294
+ if (count) {
2295
+ --count;
2296
+ if (!count) {
2297
+ return emitResult(iterResult);
2298
+ }
2299
+ }
2300
+ }
2301
+ }
2302
+ }
2303
+ }
2304
+ if (options.interval === 0) {
2305
+ return emitResult(iterResult);
2306
+ }
2307
+ counterDate.add(options, filtered);
2308
+ if (counterDate.year > MAXYEAR) {
2309
+ return emitResult(iterResult);
2310
+ }
2311
+ if (!freqIsDailyOrGreater(freq)) {
2312
+ timeset = ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, 0);
2313
+ }
2314
+ ii.rebuild(counterDate.year, counterDate.month);
2315
+ }
2316
+ }
2317
+ function isFiltered(ii, currentDay, options) {
2318
+ var bymonth = options.bymonth, byweekno = options.byweekno, byweekday = options.byweekday, byeaster = options.byeaster, bymonthday = options.bymonthday, bynmonthday = options.bynmonthday, byyearday = options.byyearday;
2319
+ return notEmpty(bymonth) && !includes(bymonth, ii.mmask[currentDay]) || notEmpty(byweekno) && !ii.wnomask[currentDay] || notEmpty(byweekday) && !includes(byweekday, ii.wdaymask[currentDay]) || notEmpty(ii.nwdaymask) && !ii.nwdaymask[currentDay] || byeaster !== null && !includes(ii.eastermask, currentDay) || (notEmpty(bymonthday) || notEmpty(bynmonthday)) && !includes(bymonthday, ii.mdaymask[currentDay]) && !includes(bynmonthday, ii.nmdaymask[currentDay]) || notEmpty(byyearday) && (currentDay < ii.yearlen && !includes(byyearday, currentDay + 1) && !includes(byyearday, -ii.yearlen + currentDay) || currentDay >= ii.yearlen && !includes(byyearday, currentDay + 1 - ii.yearlen) && !includes(byyearday, -ii.nextyearlen + currentDay - ii.yearlen));
2320
+ }
2321
+ function rezoneIfNeeded(date, options) {
2322
+ return new DateWithZone(date, options.tzid).rezonedDate();
2323
+ }
2324
+ function emitResult(iterResult) {
2325
+ return iterResult.getValue();
2326
+ }
2327
+ function removeFilteredDays(dayset, start, end, ii, options) {
2328
+ var filtered = false;
2329
+ for (var dayCounter = start; dayCounter < end; dayCounter++) {
2330
+ var currentDay = dayset[dayCounter];
2331
+ filtered = isFiltered(ii, currentDay, options);
2332
+ if (filtered)
2333
+ dayset[currentDay] = null;
2334
+ }
2335
+ return filtered;
2336
+ }
2337
+ function makeTimeset(ii, counterDate, options) {
2338
+ var freq = options.freq, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond;
2339
+ if (freqIsDailyOrGreater(freq)) {
2340
+ return buildTimeset(options);
2341
+ }
2342
+ if (freq >= RRule.HOURLY && notEmpty(byhour) && !includes(byhour, counterDate.hour) || freq >= RRule.MINUTELY && notEmpty(byminute) && !includes(byminute, counterDate.minute) || freq >= RRule.SECONDLY && notEmpty(bysecond) && !includes(bysecond, counterDate.second)) {
2343
+ return [];
2344
+ }
2345
+ return ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, counterDate.millisecond);
2346
+ }
2347
+
2348
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/rrule.js
2349
+ var Days = {
2350
+ MO: new Weekday(0),
2351
+ TU: new Weekday(1),
2352
+ WE: new Weekday(2),
2353
+ TH: new Weekday(3),
2354
+ FR: new Weekday(4),
2355
+ SA: new Weekday(5),
2356
+ SU: new Weekday(6)
2357
+ };
2358
+ var DEFAULT_OPTIONS = {
2359
+ freq: Frequency.YEARLY,
2360
+ dtstart: null,
2361
+ interval: 1,
2362
+ wkst: Days.MO,
2363
+ count: null,
2364
+ until: null,
2365
+ tzid: null,
2366
+ bysetpos: null,
2367
+ bymonth: null,
2368
+ bymonthday: null,
2369
+ bynmonthday: null,
2370
+ byyearday: null,
2371
+ byweekno: null,
2372
+ byweekday: null,
2373
+ bynweekday: null,
2374
+ byhour: null,
2375
+ byminute: null,
2376
+ bysecond: null,
2377
+ byeaster: null
2378
+ };
2379
+ var defaultKeys = Object.keys(DEFAULT_OPTIONS);
2380
+ var RRule = (
2381
+ /** @class */
2382
+ (function() {
2383
+ function RRule3(options, noCache) {
2384
+ if (options === void 0) {
2385
+ options = {};
2386
+ }
2387
+ if (noCache === void 0) {
2388
+ noCache = false;
2389
+ }
2390
+ this._cache = noCache ? null : new Cache();
2391
+ this.origOptions = initializeOptions(options);
2392
+ var parsedOptions = parseOptions(options).parsedOptions;
2393
+ this.options = parsedOptions;
2394
+ }
2395
+ RRule3.parseText = function(text, language) {
2396
+ return parseText(text, language);
2397
+ };
2398
+ RRule3.fromText = function(text, language) {
2399
+ return fromText(text, language);
2400
+ };
2401
+ RRule3.fromString = function(str) {
2402
+ return new RRule3(RRule3.parseString(str) || void 0);
2403
+ };
2404
+ RRule3.prototype._iter = function(iterResult) {
2405
+ return iter(iterResult, this.options);
2406
+ };
2407
+ RRule3.prototype._cacheGet = function(what, args) {
2408
+ if (!this._cache)
2409
+ return false;
2410
+ return this._cache._cacheGet(what, args);
2411
+ };
2412
+ RRule3.prototype._cacheAdd = function(what, value, args) {
2413
+ if (!this._cache)
2414
+ return;
2415
+ return this._cache._cacheAdd(what, value, args);
2416
+ };
2417
+ RRule3.prototype.all = function(iterator) {
2418
+ if (iterator) {
2419
+ return this._iter(new callbackiterresult_default("all", {}, iterator));
2420
+ }
2421
+ var result = this._cacheGet("all");
2422
+ if (result === false) {
2423
+ result = this._iter(new iterresult_default("all", {}));
2424
+ this._cacheAdd("all", result);
2425
+ }
2426
+ return result;
2427
+ };
2428
+ RRule3.prototype.between = function(after, before, inc, iterator) {
2429
+ if (inc === void 0) {
2430
+ inc = false;
2431
+ }
2432
+ if (!isValidDate(after) || !isValidDate(before)) {
2433
+ throw new Error("Invalid date passed in to RRule.between");
2434
+ }
2435
+ var args = {
2436
+ before,
2437
+ after,
2438
+ inc
2439
+ };
2440
+ if (iterator) {
2441
+ return this._iter(new callbackiterresult_default("between", args, iterator));
2442
+ }
2443
+ var result = this._cacheGet("between", args);
2444
+ if (result === false) {
2445
+ result = this._iter(new iterresult_default("between", args));
2446
+ this._cacheAdd("between", result, args);
2447
+ }
2448
+ return result;
2449
+ };
2450
+ RRule3.prototype.before = function(dt, inc) {
2451
+ if (inc === void 0) {
2452
+ inc = false;
2453
+ }
2454
+ if (!isValidDate(dt)) {
2455
+ throw new Error("Invalid date passed in to RRule.before");
2456
+ }
2457
+ var args = { dt, inc };
2458
+ var result = this._cacheGet("before", args);
2459
+ if (result === false) {
2460
+ result = this._iter(new iterresult_default("before", args));
2461
+ this._cacheAdd("before", result, args);
2462
+ }
2463
+ return result;
2464
+ };
2465
+ RRule3.prototype.after = function(dt, inc) {
2466
+ if (inc === void 0) {
2467
+ inc = false;
2468
+ }
2469
+ if (!isValidDate(dt)) {
2470
+ throw new Error("Invalid date passed in to RRule.after");
2471
+ }
2472
+ var args = { dt, inc };
2473
+ var result = this._cacheGet("after", args);
2474
+ if (result === false) {
2475
+ result = this._iter(new iterresult_default("after", args));
2476
+ this._cacheAdd("after", result, args);
2477
+ }
2478
+ return result;
2479
+ };
2480
+ RRule3.prototype.count = function() {
2481
+ return this.all().length;
2482
+ };
2483
+ RRule3.prototype.toString = function() {
2484
+ return optionsToString(this.origOptions);
2485
+ };
2486
+ RRule3.prototype.toText = function(gettext, language, dateFormatter) {
2487
+ return toText(this, gettext, language, dateFormatter);
2488
+ };
2489
+ RRule3.prototype.isFullyConvertibleToText = function() {
2490
+ return isFullyConvertible(this);
2491
+ };
2492
+ RRule3.prototype.clone = function() {
2493
+ return new RRule3(this.origOptions);
2494
+ };
2495
+ RRule3.FREQUENCIES = [
2496
+ "YEARLY",
2497
+ "MONTHLY",
2498
+ "WEEKLY",
2499
+ "DAILY",
2500
+ "HOURLY",
2501
+ "MINUTELY",
2502
+ "SECONDLY"
2503
+ ];
2504
+ RRule3.YEARLY = Frequency.YEARLY;
2505
+ RRule3.MONTHLY = Frequency.MONTHLY;
2506
+ RRule3.WEEKLY = Frequency.WEEKLY;
2507
+ RRule3.DAILY = Frequency.DAILY;
2508
+ RRule3.HOURLY = Frequency.HOURLY;
2509
+ RRule3.MINUTELY = Frequency.MINUTELY;
2510
+ RRule3.SECONDLY = Frequency.SECONDLY;
2511
+ RRule3.MO = Days.MO;
2512
+ RRule3.TU = Days.TU;
2513
+ RRule3.WE = Days.WE;
2514
+ RRule3.TH = Days.TH;
2515
+ RRule3.FR = Days.FR;
2516
+ RRule3.SA = Days.SA;
2517
+ RRule3.SU = Days.SU;
2518
+ RRule3.parseString = parseString;
2519
+ RRule3.optionsToString = optionsToString;
2520
+ return RRule3;
2521
+ })()
2522
+ );
2523
+
2524
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterset.js
2525
+ function iterSet(iterResult, _rrule, _exrule, _rdate, _exdate, tzid) {
2526
+ var _exdateHash = {};
2527
+ var _accept = iterResult.accept;
2528
+ function evalExdate(after, before) {
2529
+ _exrule.forEach(function(rrule) {
2530
+ rrule.between(after, before, true).forEach(function(date) {
2531
+ _exdateHash[Number(date)] = true;
2532
+ });
2533
+ });
2534
+ }
2535
+ _exdate.forEach(function(date) {
2536
+ var zonedDate2 = new DateWithZone(date, tzid).rezonedDate();
2537
+ _exdateHash[Number(zonedDate2)] = true;
2538
+ });
2539
+ iterResult.accept = function(date) {
2540
+ var dt = Number(date);
2541
+ if (isNaN(dt))
2542
+ return _accept.call(this, date);
2543
+ if (!_exdateHash[dt]) {
2544
+ evalExdate(new Date(dt - 1), new Date(dt + 1));
2545
+ if (!_exdateHash[dt]) {
2546
+ _exdateHash[dt] = true;
2547
+ return _accept.call(this, date);
2548
+ }
2549
+ }
2550
+ return true;
2551
+ };
2552
+ if (iterResult.method === "between") {
2553
+ evalExdate(iterResult.args.after, iterResult.args.before);
2554
+ iterResult.accept = function(date) {
2555
+ var dt = Number(date);
2556
+ if (!_exdateHash[dt]) {
2557
+ _exdateHash[dt] = true;
2558
+ return _accept.call(this, date);
2559
+ }
2560
+ return true;
2561
+ };
2562
+ }
2563
+ for (var i = 0; i < _rdate.length; i++) {
2564
+ var zonedDate = new DateWithZone(_rdate[i], tzid).rezonedDate();
2565
+ if (!iterResult.accept(new Date(zonedDate.getTime())))
2566
+ break;
2567
+ }
2568
+ _rrule.forEach(function(rrule) {
2569
+ iter(iterResult, rrule.options);
2570
+ });
2571
+ var res = iterResult._result;
2572
+ sort(res);
2573
+ switch (iterResult.method) {
2574
+ case "all":
2575
+ case "between":
2576
+ return res;
2577
+ case "before":
2578
+ return res.length && res[res.length - 1] || null;
2579
+ case "after":
2580
+ default:
2581
+ return res.length && res[0] || null;
2582
+ }
2583
+ }
2584
+
2585
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/rrulestr.js
2586
+ var DEFAULT_OPTIONS2 = {
2587
+ dtstart: null,
2588
+ cache: false,
2589
+ unfold: false,
2590
+ forceset: false,
2591
+ compatible: false,
2592
+ tzid: null
2593
+ };
2594
+ function parseInput(s, options) {
2595
+ var rrulevals = [];
2596
+ var rdatevals = [];
2597
+ var exrulevals = [];
2598
+ var exdatevals = [];
2599
+ var parsedDtstart = parseDtstart(s);
2600
+ var dtstart = parsedDtstart.dtstart;
2601
+ var tzid = parsedDtstart.tzid;
2602
+ var lines = splitIntoLines(s, options.unfold);
2603
+ lines.forEach(function(line) {
2604
+ var _a;
2605
+ if (!line)
2606
+ return;
2607
+ var _b = breakDownLine(line), name = _b.name, parms = _b.parms, value = _b.value;
2608
+ switch (name.toUpperCase()) {
2609
+ case "RRULE":
2610
+ if (parms.length) {
2611
+ throw new Error("unsupported RRULE parm: ".concat(parms.join(",")));
2612
+ }
2613
+ rrulevals.push(parseString(line));
2614
+ break;
2615
+ case "RDATE":
2616
+ var _c = (_a = /RDATE(?:;TZID=([^:=]+))?/i.exec(line)) !== null && _a !== void 0 ? _a : [], rdateTzid = _c[1];
2617
+ if (rdateTzid && !tzid) {
2618
+ tzid = rdateTzid;
2619
+ }
2620
+ rdatevals = rdatevals.concat(parseRDate(value, parms));
2621
+ break;
2622
+ case "EXRULE":
2623
+ if (parms.length) {
2624
+ throw new Error("unsupported EXRULE parm: ".concat(parms.join(",")));
2625
+ }
2626
+ exrulevals.push(parseString(value));
2627
+ break;
2628
+ case "EXDATE":
2629
+ exdatevals = exdatevals.concat(parseRDate(value, parms));
2630
+ break;
2631
+ case "DTSTART":
2632
+ break;
2633
+ default:
2634
+ throw new Error("unsupported property: " + name);
2635
+ }
2636
+ });
2637
+ return {
2638
+ dtstart,
2639
+ tzid,
2640
+ rrulevals,
2641
+ rdatevals,
2642
+ exrulevals,
2643
+ exdatevals
2644
+ };
2645
+ }
2646
+ function buildRule(s, options) {
2647
+ var _a = parseInput(s, options), rrulevals = _a.rrulevals, rdatevals = _a.rdatevals, exrulevals = _a.exrulevals, exdatevals = _a.exdatevals, dtstart = _a.dtstart, tzid = _a.tzid;
2648
+ var noCache = options.cache === false;
2649
+ if (options.compatible) {
2650
+ options.forceset = true;
2651
+ options.unfold = true;
2652
+ }
2653
+ if (options.forceset || rrulevals.length > 1 || rdatevals.length || exrulevals.length || exdatevals.length) {
2654
+ var rset_1 = new RRuleSet(noCache);
2655
+ rset_1.dtstart(dtstart);
2656
+ rset_1.tzid(tzid || void 0);
2657
+ rrulevals.forEach(function(val2) {
2658
+ rset_1.rrule(new RRule(groomRruleOptions(val2, dtstart, tzid), noCache));
2659
+ });
2660
+ rdatevals.forEach(function(date) {
2661
+ rset_1.rdate(date);
2662
+ });
2663
+ exrulevals.forEach(function(val2) {
2664
+ rset_1.exrule(new RRule(groomRruleOptions(val2, dtstart, tzid), noCache));
2665
+ });
2666
+ exdatevals.forEach(function(date) {
2667
+ rset_1.exdate(date);
2668
+ });
2669
+ if (options.compatible && options.dtstart)
2670
+ rset_1.rdate(dtstart);
2671
+ return rset_1;
2672
+ }
2673
+ var val = rrulevals[0] || {};
2674
+ return new RRule(groomRruleOptions(val, val.dtstart || options.dtstart || dtstart, val.tzid || options.tzid || tzid), noCache);
2675
+ }
2676
+ function rrulestr(s, options) {
2677
+ if (options === void 0) {
2678
+ options = {};
2679
+ }
2680
+ return buildRule(s, initializeOptions2(options));
2681
+ }
2682
+ function groomRruleOptions(val, dtstart, tzid) {
2683
+ return __assign(__assign({}, val), { dtstart, tzid });
2684
+ }
2685
+ function initializeOptions2(options) {
2686
+ var invalid = [];
2687
+ var keys = Object.keys(options);
2688
+ var defaultKeys2 = Object.keys(DEFAULT_OPTIONS2);
2689
+ keys.forEach(function(key) {
2690
+ if (!includes(defaultKeys2, key))
2691
+ invalid.push(key);
2692
+ });
2693
+ if (invalid.length) {
2694
+ throw new Error("Invalid options: " + invalid.join(", "));
2695
+ }
2696
+ return __assign(__assign({}, DEFAULT_OPTIONS2), options);
2697
+ }
2698
+ function extractName(line) {
2699
+ if (line.indexOf(":") === -1) {
2700
+ return {
2701
+ name: "RRULE",
2702
+ value: line
2703
+ };
2704
+ }
2705
+ var _a = split(line, ":", 1), name = _a[0], value = _a[1];
2706
+ return {
2707
+ name,
2708
+ value
2709
+ };
2710
+ }
2711
+ function breakDownLine(line) {
2712
+ var _a = extractName(line), name = _a.name, value = _a.value;
2713
+ var parms = name.split(";");
2714
+ if (!parms)
2715
+ throw new Error("empty property name");
2716
+ return {
2717
+ name: parms[0].toUpperCase(),
2718
+ parms: parms.slice(1),
2719
+ value
2720
+ };
2721
+ }
2722
+ function splitIntoLines(s, unfold) {
2723
+ if (unfold === void 0) {
2724
+ unfold = false;
2725
+ }
2726
+ s = s && s.trim();
2727
+ if (!s)
2728
+ throw new Error("Invalid empty string");
2729
+ if (!unfold) {
2730
+ return s.split(/\s/);
2731
+ }
2732
+ var lines = s.split("\n");
2733
+ var i = 0;
2734
+ while (i < lines.length) {
2735
+ var line = lines[i] = lines[i].replace(/\s+$/g, "");
2736
+ if (!line) {
2737
+ lines.splice(i, 1);
2738
+ } else if (i > 0 && line[0] === " ") {
2739
+ lines[i - 1] += line.slice(1);
2740
+ lines.splice(i, 1);
2741
+ } else {
2742
+ i += 1;
2743
+ }
2744
+ }
2745
+ return lines;
2746
+ }
2747
+ function validateDateParm(parms) {
2748
+ parms.forEach(function(parm) {
2749
+ if (!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(parm)) {
2750
+ throw new Error("unsupported RDATE/EXDATE parm: " + parm);
2751
+ }
2752
+ });
2753
+ }
2754
+ function parseRDate(rdateval, parms) {
2755
+ validateDateParm(parms);
2756
+ return rdateval.split(",").map(function(datestr) {
2757
+ return untilStringToDate(datestr);
2758
+ });
2759
+ }
2760
+
2761
+ // node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/rruleset.js
2762
+ function createGetterSetter(fieldName) {
2763
+ var _this = this;
2764
+ return function(field) {
2765
+ if (field !== void 0) {
2766
+ _this["_".concat(fieldName)] = field;
2767
+ }
2768
+ if (_this["_".concat(fieldName)] !== void 0) {
2769
+ return _this["_".concat(fieldName)];
2770
+ }
2771
+ for (var i = 0; i < _this._rrule.length; i++) {
2772
+ var field_1 = _this._rrule[i].origOptions[fieldName];
2773
+ if (field_1) {
2774
+ return field_1;
2775
+ }
2776
+ }
2777
+ };
2778
+ }
2779
+ var RRuleSet = (
2780
+ /** @class */
2781
+ (function(_super) {
2782
+ __extends(RRuleSet2, _super);
2783
+ function RRuleSet2(noCache) {
2784
+ if (noCache === void 0) {
2785
+ noCache = false;
2786
+ }
2787
+ var _this = _super.call(this, {}, noCache) || this;
2788
+ _this.dtstart = createGetterSetter.apply(_this, ["dtstart"]);
2789
+ _this.tzid = createGetterSetter.apply(_this, ["tzid"]);
2790
+ _this._rrule = [];
2791
+ _this._rdate = [];
2792
+ _this._exrule = [];
2793
+ _this._exdate = [];
2794
+ return _this;
2795
+ }
2796
+ RRuleSet2.prototype._iter = function(iterResult) {
2797
+ return iterSet(iterResult, this._rrule, this._exrule, this._rdate, this._exdate, this.tzid());
2798
+ };
2799
+ RRuleSet2.prototype.rrule = function(rrule) {
2800
+ _addRule(rrule, this._rrule);
2801
+ };
2802
+ RRuleSet2.prototype.exrule = function(rrule) {
2803
+ _addRule(rrule, this._exrule);
2804
+ };
2805
+ RRuleSet2.prototype.rdate = function(date) {
2806
+ _addDate(date, this._rdate);
2807
+ };
2808
+ RRuleSet2.prototype.exdate = function(date) {
2809
+ _addDate(date, this._exdate);
2810
+ };
2811
+ RRuleSet2.prototype.rrules = function() {
2812
+ return this._rrule.map(function(e) {
2813
+ return rrulestr(e.toString());
2814
+ });
2815
+ };
2816
+ RRuleSet2.prototype.exrules = function() {
2817
+ return this._exrule.map(function(e) {
2818
+ return rrulestr(e.toString());
2819
+ });
2820
+ };
2821
+ RRuleSet2.prototype.rdates = function() {
2822
+ return this._rdate.map(function(e) {
2823
+ return new Date(e.getTime());
2824
+ });
2825
+ };
2826
+ RRuleSet2.prototype.exdates = function() {
2827
+ return this._exdate.map(function(e) {
2828
+ return new Date(e.getTime());
2829
+ });
2830
+ };
2831
+ RRuleSet2.prototype.valueOf = function() {
2832
+ var result = [];
2833
+ if (!this._rrule.length && this._dtstart) {
2834
+ result = result.concat(optionsToString({ dtstart: this._dtstart }));
2835
+ }
2836
+ this._rrule.forEach(function(rrule) {
2837
+ result = result.concat(rrule.toString().split("\n"));
2838
+ });
2839
+ this._exrule.forEach(function(exrule) {
2840
+ result = result.concat(exrule.toString().split("\n").map(function(line) {
2841
+ return line.replace(/^RRULE:/, "EXRULE:");
2842
+ }).filter(function(line) {
2843
+ return !/^DTSTART/.test(line);
2844
+ }));
2845
+ });
2846
+ if (this._rdate.length) {
2847
+ result.push(rdatesToString("RDATE", this._rdate, this.tzid()));
2848
+ }
2849
+ if (this._exdate.length) {
2850
+ result.push(rdatesToString("EXDATE", this._exdate, this.tzid()));
2851
+ }
2852
+ return result;
2853
+ };
2854
+ RRuleSet2.prototype.toString = function() {
2855
+ return this.valueOf().join("\n");
2856
+ };
2857
+ RRuleSet2.prototype.clone = function() {
2858
+ var rrs = new RRuleSet2(!!this._cache);
2859
+ this._rrule.forEach(function(rule) {
2860
+ return rrs.rrule(rule.clone());
2861
+ });
2862
+ this._exrule.forEach(function(rule) {
2863
+ return rrs.exrule(rule.clone());
2864
+ });
2865
+ this._rdate.forEach(function(date) {
2866
+ return rrs.rdate(new Date(date.getTime()));
2867
+ });
2868
+ this._exdate.forEach(function(date) {
2869
+ return rrs.exdate(new Date(date.getTime()));
2870
+ });
2871
+ return rrs;
2872
+ };
2873
+ return RRuleSet2;
2874
+ })(RRule)
2875
+ );
2876
+ function _addRule(rrule, collection) {
2877
+ if (!(rrule instanceof RRule)) {
2878
+ throw new TypeError(String(rrule) + " is not RRule instance");
2879
+ }
2880
+ if (!includes(collection.map(String), String(rrule))) {
2881
+ collection.push(rrule);
2882
+ }
2883
+ }
2884
+ function _addDate(date, collection) {
2885
+ if (!(date instanceof Date)) {
2886
+ throw new TypeError(String(date) + " is not Date instance");
2887
+ }
2888
+ if (!includes(collection.map(Number), Number(date))) {
2889
+ collection.push(date);
2890
+ sort(collection);
2891
+ }
2892
+ }
2893
+ function rdatesToString(param, rdates, tzid) {
2894
+ var isUTC = !tzid || tzid.toUpperCase() === "UTC";
2895
+ var header = isUTC ? "".concat(param, ":") : "".concat(param, ";TZID=").concat(tzid, ":");
2896
+ var dateString = rdates.map(function(rdate) {
2897
+ return timeToUntilString(rdate.valueOf(), isUTC);
2898
+ }).join(",");
2899
+ return "".concat(header).concat(dateString);
2900
+ }
2901
+
2902
+ // packages/server/src/scheduled-task-recurrence-engine.ts
2903
+ function normalizeModule(module) {
2904
+ return "default" in module ? module.default : module;
2905
+ }
2906
+ var { RRule: RRule2, rrulestr: rrulestr2 } = normalizeModule(esm_exports);
2907
+ var MIN_RECURRENCE_MS = 6e4;
2908
+ function previewScheduledTask(schedule, afterUnixMs, limit, { wallTimeToUnix, zonedDateTime }) {
2909
+ if (schedule.type === "once") return schedule.atUnixMs > afterUnixMs ? [schedule.atUnixMs] : [];
2910
+ const normalized = schedule.rrule.trim().replace(/^RRULE:/u, "");
2911
+ if (normalized === "" || /[\r\n]/u.test(normalized))
2912
+ throw new Error("Scheduled task RRULE is invalid");
2913
+ const start = zonedDateTime(schedule.startAtUnixMs, schedule.timezone).replace(/[-:]/gu, "");
2914
+ const rule = rrulestr2(`DTSTART:${start}Z
2915
+ RRULE:${normalized}`, { cache: false });
2916
+ const until = rule.options.until?.getTime();
2917
+ const count = rule.options.count;
2918
+ if (!Number.isInteger(rule.options.interval) || rule.options.interval < 1)
2919
+ throw new Error("Scheduled task interval must be a positive integer");
2920
+ if (count !== null && (!Number.isInteger(count) || count < 1 || count > 1e4))
2921
+ throw new Error("Scheduled task count must be between 1 and 10000");
2922
+ if (until !== void 0) {
2923
+ rule.options.until = /* @__PURE__ */ new Date(`${zonedDateTime(until, schedule.timezone)}Z`);
2924
+ }
2925
+ const first = rule.all((_date, index) => index < 2);
2926
+ if (first[0] !== void 0 && first[1] !== void 0 && first[1].getTime() - first[0].getTime() < MIN_RECURRENCE_MS) {
2927
+ throw new Error("Scheduled task recurrence must be at least one minute");
2928
+ }
2929
+ if (until !== void 0 && until <= afterUnixMs) return [];
2930
+ const dates = [];
2931
+ const afterWall = Date.parse(`${zonedDateTime(afterUnixMs, schedule.timezone)}Z`);
2932
+ const lower = new Date(afterWall - 2 * 864e5);
2933
+ if (count === null) {
2934
+ const unit = rule.options.freq === RRule2.HOURLY ? 36e5 : rule.options.freq === RRule2.DAILY ? 864e5 : rule.options.freq === RRule2.WEEKLY ? 7 * 864e5 : void 0;
2935
+ if (unit !== void 0) {
2936
+ const step = unit * rule.options.interval;
2937
+ const anchor = rule.options.dtstart.getTime();
2938
+ const cycles = Math.max(0, Math.floor((lower.getTime() - anchor) / step));
2939
+ rule.options.dtstart = new Date(anchor + cycles * step);
2940
+ }
2941
+ }
2942
+ if (count !== null) {
2943
+ rule.options.count = null;
2944
+ }
2945
+ let occurrences = 0;
2946
+ const accept = (date) => {
2947
+ const unixMs = wallTimeToUnix(date.toISOString().slice(0, 19), schedule.timezone);
2948
+ if (unixMs === void 0) return true;
2949
+ if (unixMs < schedule.startAtUnixMs) return true;
2950
+ if (until !== void 0 && unixMs > until) return false;
2951
+ occurrences += 1;
2952
+ if (unixMs > afterUnixMs) dates.push(unixMs);
2953
+ return dates.length < Math.min(limit, 5) && (count === null || occurrences < count);
2954
+ };
2955
+ if (count !== null) {
2956
+ rule.between(rule.options.dtstart, /* @__PURE__ */ new Date("9999-12-31T23:59:59Z"), true, accept);
2957
+ } else {
2958
+ rule.between(lower, /* @__PURE__ */ new Date("9999-12-31T23:59:59Z"), true, accept);
2959
+ }
2960
+ return dates;
2961
+ }
2962
+
2963
+ // packages/server/src/scheduled-task-recurrence-worker.js
2964
+ try {
2965
+ const { schedule, afterUnixMs, limit } = workerData;
2966
+ parentPort.postMessage({ dates: previewScheduledTask(schedule, afterUnixMs, limit, scheduled_task_wall_time_exports) });
2967
+ } catch (error) {
2968
+ parentPort.postMessage({ error: error instanceof Error ? error.message : String(error) });
2969
+ }