react-native-roster 0.0.0 → 0.1.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.
- package/NOTICE.md +29 -0
- package/README.md +455 -2
- package/dist/src/adapters/rrule/cache.d.ts +15 -0
- package/dist/src/adapters/rrule/cache.d.ts.map +1 -0
- package/dist/src/adapters/rrule/cache.js +53 -0
- package/dist/src/adapters/rrule/cache.js.map +1 -0
- package/dist/src/adapters/rrule/envelope.d.ts +3 -0
- package/dist/src/adapters/rrule/envelope.d.ts.map +1 -0
- package/dist/src/adapters/rrule/envelope.js +9 -0
- package/dist/src/adapters/rrule/envelope.js.map +1 -0
- package/dist/src/adapters/rrule/expand.d.ts +4 -0
- package/dist/src/adapters/rrule/expand.d.ts.map +1 -0
- package/dist/src/adapters/rrule/expand.js +92 -0
- package/dist/src/adapters/rrule/expand.js.map +1 -0
- package/dist/src/adapters/rrule/hash.d.ts +3 -0
- package/dist/src/adapters/rrule/hash.d.ts.map +1 -0
- package/dist/src/adapters/rrule/hash.js +15 -0
- package/dist/src/adapters/rrule/hash.js.map +1 -0
- package/dist/src/adapters/rrule/index.d.ts +5 -0
- package/dist/src/adapters/rrule/index.d.ts.map +1 -0
- package/dist/src/adapters/rrule/index.js +12 -0
- package/dist/src/adapters/rrule/index.js.map +1 -0
- package/dist/src/adapters/rrule/net.d.ts +6 -0
- package/dist/src/adapters/rrule/net.d.ts.map +1 -0
- package/dist/src/adapters/rrule/net.js +31 -0
- package/dist/src/adapters/rrule/net.js.map +1 -0
- package/dist/src/adapters/rrule/occurrences.d.ts +6 -0
- package/dist/src/adapters/rrule/occurrences.d.ts.map +1 -0
- package/dist/src/adapters/rrule/occurrences.js +252 -0
- package/dist/src/adapters/rrule/occurrences.js.map +1 -0
- package/dist/src/adapters/rrule/types.d.ts +62 -0
- package/dist/src/adapters/rrule/types.d.ts.map +1 -0
- package/dist/src/adapters/rrule/types.js +3 -0
- package/dist/src/adapters/rrule/types.js.map +1 -0
- package/dist/src/adapters/rrule/validate.d.ts +6 -0
- package/dist/src/adapters/rrule/validate.d.ts.map +1 -0
- package/dist/src/adapters/rrule/validate.js +64 -0
- package/dist/src/adapters/rrule/validate.js.map +1 -0
- package/dist/src/components/layers/layers.types.d.ts +15 -0
- package/dist/src/components/layers/layers.types.d.ts.map +1 -0
- package/dist/src/components/layers/layers.types.js +3 -0
- package/dist/src/components/layers/layers.types.js.map +1 -0
- package/dist/src/components/layers/parts/gap.d.ts +3 -0
- package/dist/src/components/layers/parts/gap.d.ts.map +1 -0
- package/dist/src/components/layers/parts/gap.js +7 -0
- package/dist/src/components/layers/parts/gap.js.map +1 -0
- package/dist/src/components/layers/parts/interval.d.ts +3 -0
- package/dist/src/components/layers/parts/interval.d.ts.map +1 -0
- package/dist/src/components/layers/parts/interval.js +22 -0
- package/dist/src/components/layers/parts/interval.js.map +1 -0
- package/dist/src/components/layers/utils/styles.d.ts +7 -0
- package/dist/src/components/layers/utils/styles.d.ts.map +1 -0
- package/dist/src/components/layers/utils/styles.js +24 -0
- package/dist/src/components/layers/utils/styles.js.map +1 -0
- package/dist/src/components/primitives/press-point.d.ts +3 -0
- package/dist/src/components/primitives/press-point.d.ts.map +1 -0
- package/dist/src/components/primitives/press-point.js +7 -0
- package/dist/src/components/primitives/press-point.js.map +1 -0
- package/dist/src/components/primitives/press-point.types.d.ts +14 -0
- package/dist/src/components/primitives/press-point.types.d.ts.map +1 -0
- package/dist/src/components/primitives/press-point.types.js +3 -0
- package/dist/src/components/primitives/press-point.types.js.map +1 -0
- package/dist/src/components/primitives/press-point.web.d.ts +3 -0
- package/dist/src/components/primitives/press-point.web.d.ts.map +1 -0
- package/dist/src/components/primitives/press-point.web.js +17 -0
- package/dist/src/components/primitives/press-point.web.js.map +1 -0
- package/dist/src/components/primitives/region-style.d.ts +9 -0
- package/dist/src/components/primitives/region-style.d.ts.map +1 -0
- package/dist/src/components/primitives/region-style.js +20 -0
- package/dist/src/components/primitives/region-style.js.map +1 -0
- package/dist/src/components/roster/body-layout.d.ts +9 -0
- package/dist/src/components/roster/body-layout.d.ts.map +1 -0
- package/dist/src/components/roster/body-layout.js +9 -0
- package/dist/src/components/roster/body-layout.js.map +1 -0
- package/dist/src/components/roster/index.d.ts +3 -0
- package/dist/src/components/roster/index.d.ts.map +1 -0
- package/dist/src/components/roster/index.js +40 -0
- package/dist/src/components/roster/index.js.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.d.ts +3 -0
- package/dist/src/components/roster/lanes/interval-hover.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.js +7 -0
- package/dist/src/components/roster/lanes/interval-hover.js.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.types.d.ts +15 -0
- package/dist/src/components/roster/lanes/interval-hover.types.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.types.js +3 -0
- package/dist/src/components/roster/lanes/interval-hover.types.js.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.web.d.ts +3 -0
- package/dist/src/components/roster/lanes/interval-hover.web.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.web.js +20 -0
- package/dist/src/components/roster/lanes/interval-hover.web.js.map +1 -0
- package/dist/src/components/roster/lanes/lane.d.ts +10 -0
- package/dist/src/components/roster/lanes/lane.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/lane.js +32 -0
- package/dist/src/components/roster/lanes/lane.js.map +1 -0
- package/dist/src/components/roster/lanes/parts/incomplete.d.ts +8 -0
- package/dist/src/components/roster/lanes/parts/incomplete.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/parts/incomplete.js +30 -0
- package/dist/src/components/roster/lanes/parts/incomplete.js.map +1 -0
- package/dist/src/components/roster/lanes/parts/lane-label.d.ts +3 -0
- package/dist/src/components/roster/lanes/parts/lane-label.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/parts/lane-label.js +18 -0
- package/dist/src/components/roster/lanes/parts/lane-label.js.map +1 -0
- package/dist/src/components/roster/layout.d.ts +17 -0
- package/dist/src/components/roster/layout.d.ts.map +1 -0
- package/dist/src/components/roster/layout.js +24 -0
- package/dist/src/components/roster/layout.js.map +1 -0
- package/dist/src/components/roster/parts/body.d.ts +7 -0
- package/dist/src/components/roster/parts/body.d.ts.map +1 -0
- package/dist/src/components/roster/parts/body.js +14 -0
- package/dist/src/components/roster/parts/body.js.map +1 -0
- package/dist/src/components/roster/parts/corner.d.ts +2 -0
- package/dist/src/components/roster/parts/corner.d.ts.map +1 -0
- package/dist/src/components/roster/parts/corner.js +7 -0
- package/dist/src/components/roster/parts/corner.js.map +1 -0
- package/dist/src/components/roster/parts/empty.d.ts +2 -0
- package/dist/src/components/roster/parts/empty.d.ts.map +1 -0
- package/dist/src/components/roster/parts/empty.js +9 -0
- package/dist/src/components/roster/parts/empty.js.map +1 -0
- package/dist/src/components/roster/parts/grid.d.ts +3 -0
- package/dist/src/components/roster/parts/grid.d.ts.map +1 -0
- package/dist/src/components/roster/parts/grid.js +16 -0
- package/dist/src/components/roster/parts/grid.js.map +1 -0
- package/dist/src/components/roster/parts/header-cell.d.ts +3 -0
- package/dist/src/components/roster/parts/header-cell.d.ts.map +1 -0
- package/dist/src/components/roster/parts/header-cell.js +9 -0
- package/dist/src/components/roster/parts/header-cell.js.map +1 -0
- package/dist/src/components/roster/parts/header.d.ts +3 -0
- package/dist/src/components/roster/parts/header.d.ts.map +1 -0
- package/dist/src/components/roster/parts/header.js +13 -0
- package/dist/src/components/roster/parts/header.js.map +1 -0
- package/dist/src/components/roster/parts/lane-label-column.d.ts +3 -0
- package/dist/src/components/roster/parts/lane-label-column.d.ts.map +1 -0
- package/dist/src/components/roster/parts/lane-label-column.js +18 -0
- package/dist/src/components/roster/parts/lane-label-column.js.map +1 -0
- package/dist/src/components/roster/parts/lane-list.d.ts +7 -0
- package/dist/src/components/roster/parts/lane-list.d.ts.map +1 -0
- package/dist/src/components/roster/parts/lane-list.js +25 -0
- package/dist/src/components/roster/parts/lane-list.js.map +1 -0
- package/dist/src/components/roster/roster.types.d.ts +145 -0
- package/dist/src/components/roster/roster.types.d.ts.map +1 -0
- package/dist/src/components/roster/roster.types.js +3 -0
- package/dist/src/components/roster/roster.types.js.map +1 -0
- package/dist/src/components/roster/use-roster.d.ts +3 -0
- package/dist/src/components/roster/use-roster.d.ts.map +1 -0
- package/dist/src/components/roster/use-roster.js +106 -0
- package/dist/src/components/roster/use-roster.js.map +1 -0
- package/dist/src/components/roster/utils/body-content-key.d.ts +3 -0
- package/dist/src/components/roster/utils/body-content-key.d.ts.map +1 -0
- package/dist/src/components/roster/utils/body-content-key.js +29 -0
- package/dist/src/components/roster/utils/body-content-key.js.map +1 -0
- package/dist/src/components/roster/utils/ticks.d.ts +4 -0
- package/dist/src/components/roster/utils/ticks.d.ts.map +1 -0
- package/dist/src/components/roster/utils/ticks.js +60 -0
- package/dist/src/components/roster/utils/ticks.js.map +1 -0
- package/dist/src/components/schedule/days/day.d.ts +20 -0
- package/dist/src/components/schedule/days/day.d.ts.map +1 -0
- package/dist/src/components/schedule/days/day.js +17 -0
- package/dist/src/components/schedule/days/day.js.map +1 -0
- package/dist/src/components/schedule/days/header-layout.d.ts +9 -0
- package/dist/src/components/schedule/days/header-layout.d.ts.map +1 -0
- package/dist/src/components/schedule/days/header-layout.js +9 -0
- package/dist/src/components/schedule/days/header-layout.js.map +1 -0
- package/dist/src/components/schedule/days/layout.d.ts +18 -0
- package/dist/src/components/schedule/days/layout.d.ts.map +1 -0
- package/dist/src/components/schedule/days/layout.js +9 -0
- package/dist/src/components/schedule/days/layout.js.map +1 -0
- package/dist/src/components/schedule/days/parts/column.d.ts +3 -0
- package/dist/src/components/schedule/days/parts/column.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/column.js +28 -0
- package/dist/src/components/schedule/days/parts/column.js.map +1 -0
- package/dist/src/components/schedule/days/parts/day-header.d.ts +5 -0
- package/dist/src/components/schedule/days/parts/day-header.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/day-header.js +10 -0
- package/dist/src/components/schedule/days/parts/day-header.js.map +1 -0
- package/dist/src/components/schedule/days/parts/grid.d.ts +3 -0
- package/dist/src/components/schedule/days/parts/grid.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/grid.js +14 -0
- package/dist/src/components/schedule/days/parts/grid.js.map +1 -0
- package/dist/src/components/schedule/days/parts/now-line.d.ts +5 -0
- package/dist/src/components/schedule/days/parts/now-line.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/now-line.js +9 -0
- package/dist/src/components/schedule/days/parts/now-line.js.map +1 -0
- package/dist/src/components/schedule/days/parts/skipped-date.d.ts +4 -0
- package/dist/src/components/schedule/days/parts/skipped-date.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/skipped-date.js +17 -0
- package/dist/src/components/schedule/days/parts/skipped-date.js.map +1 -0
- package/dist/src/components/schedule/days/parts/transition.d.ts +3 -0
- package/dist/src/components/schedule/days/parts/transition.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/transition.js +42 -0
- package/dist/src/components/schedule/days/parts/transition.js.map +1 -0
- package/dist/src/components/schedule/index.d.ts +3 -0
- package/dist/src/components/schedule/index.d.ts.map +1 -0
- package/dist/src/components/schedule/index.js +44 -0
- package/dist/src/components/schedule/index.js.map +1 -0
- package/dist/src/components/schedule/layout.d.ts +15 -0
- package/dist/src/components/schedule/layout.d.ts.map +1 -0
- package/dist/src/components/schedule/layout.js +10 -0
- package/dist/src/components/schedule/layout.js.map +1 -0
- package/dist/src/components/schedule/parts/gutter.d.ts +3 -0
- package/dist/src/components/schedule/parts/gutter.d.ts.map +1 -0
- package/dist/src/components/schedule/parts/gutter.js +9 -0
- package/dist/src/components/schedule/parts/gutter.js.map +1 -0
- package/dist/src/components/schedule/parts/incomplete.d.ts +6 -0
- package/dist/src/components/schedule/parts/incomplete.d.ts.map +1 -0
- package/dist/src/components/schedule/parts/incomplete.js +9 -0
- package/dist/src/components/schedule/parts/incomplete.js.map +1 -0
- package/dist/src/components/schedule/schedule.types.d.ts +109 -0
- package/dist/src/components/schedule/schedule.types.d.ts.map +1 -0
- package/dist/src/components/schedule/schedule.types.js +3 -0
- package/dist/src/components/schedule/schedule.types.js.map +1 -0
- package/dist/src/components/schedule/use-schedule-viewport.d.ts +7 -0
- package/dist/src/components/schedule/use-schedule-viewport.d.ts.map +1 -0
- package/dist/src/components/schedule/use-schedule-viewport.js +15 -0
- package/dist/src/components/schedule/use-schedule-viewport.js.map +1 -0
- package/dist/src/components/schedule/use-schedule.d.ts +3 -0
- package/dist/src/components/schedule/use-schedule.d.ts.map +1 -0
- package/dist/src/components/schedule/use-schedule.js +71 -0
- package/dist/src/components/schedule/use-schedule.js.map +1 -0
- package/dist/src/components/schedule/utils/days.d.ts +17 -0
- package/dist/src/components/schedule/utils/days.d.ts.map +1 -0
- package/dist/src/components/schedule/utils/days.js +49 -0
- package/dist/src/components/schedule/utils/days.js.map +1 -0
- package/dist/src/core/axis.d.ts +18 -0
- package/dist/src/core/axis.d.ts.map +1 -0
- package/dist/src/core/axis.js +58 -0
- package/dist/src/core/axis.js.map +1 -0
- package/dist/src/core/cache.d.ts +29 -0
- package/dist/src/core/cache.d.ts.map +1 -0
- package/dist/src/core/cache.js +33 -0
- package/dist/src/core/cache.js.map +1 -0
- package/dist/src/core/columns.d.ts +3 -0
- package/dist/src/core/columns.d.ts.map +1 -0
- package/dist/src/core/columns.js +45 -0
- package/dist/src/core/columns.js.map +1 -0
- package/dist/src/core/coverage.d.ts +3 -0
- package/dist/src/core/coverage.d.ts.map +1 -0
- package/dist/src/core/coverage.js +60 -0
- package/dist/src/core/coverage.js.map +1 -0
- package/dist/src/core/flag.d.ts +3 -0
- package/dist/src/core/flag.d.ts.map +1 -0
- package/dist/src/core/flag.js +17 -0
- package/dist/src/core/flag.js.map +1 -0
- package/dist/src/core/hash.d.ts +5 -0
- package/dist/src/core/hash.d.ts.map +1 -0
- package/dist/src/core/hash.js +29 -0
- package/dist/src/core/hash.js.map +1 -0
- package/dist/src/core/hit-test.d.ts +6 -0
- package/dist/src/core/hit-test.d.ts.map +1 -0
- package/dist/src/core/hit-test.js +23 -0
- package/dist/src/core/hit-test.js.map +1 -0
- package/dist/src/core/index.d.ts +12 -0
- package/dist/src/core/index.d.ts.map +1 -0
- package/dist/src/core/index.js +30 -0
- package/dist/src/core/index.js.map +1 -0
- package/dist/src/core/layout.d.ts +3 -0
- package/dist/src/core/layout.d.ts.map +1 -0
- package/dist/src/core/layout.js +96 -0
- package/dist/src/core/layout.js.map +1 -0
- package/dist/src/core/order.d.ts +7 -0
- package/dist/src/core/order.d.ts.map +1 -0
- package/dist/src/core/order.js +12 -0
- package/dist/src/core/order.js.map +1 -0
- package/dist/src/core/scale.d.ts +9 -0
- package/dist/src/core/scale.d.ts.map +1 -0
- package/dist/src/core/scale.js +41 -0
- package/dist/src/core/scale.js.map +1 -0
- package/dist/src/core/snap.d.ts +10 -0
- package/dist/src/core/snap.d.ts.map +1 -0
- package/dist/src/core/snap.js +43 -0
- package/dist/src/core/snap.js.map +1 -0
- package/dist/src/core/spans.d.ts +3 -0
- package/dist/src/core/spans.d.ts.map +1 -0
- package/dist/src/core/spans.js +60 -0
- package/dist/src/core/spans.js.map +1 -0
- package/dist/src/core/types.d.ts +104 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +3 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/core/zone.d.ts +10 -0
- package/dist/src/core/zone.d.ts.map +1 -0
- package/dist/src/core/zone.js +103 -0
- package/dist/src/core/zone.js.map +1 -0
- package/dist/src/index.d.ts +29 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +67 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/nativewind/index.d.ts +59 -0
- package/dist/src/nativewind/index.d.ts.map +1 -0
- package/dist/src/nativewind/index.js +24 -0
- package/dist/src/nativewind/index.js.map +1 -0
- package/docs/migrations.md +61 -0
- package/llms.txt +498 -0
- package/package.json +155 -8
- package/src/adapters/rrule/README.md +41 -0
- package/src/adapters/rrule/cache.ts +50 -0
- package/src/adapters/rrule/envelope.ts +7 -0
- package/src/adapters/rrule/expand.ts +105 -0
- package/src/adapters/rrule/hash.ts +13 -0
- package/src/adapters/rrule/index.ts +11 -0
- package/src/adapters/rrule/net.ts +30 -0
- package/src/adapters/rrule/occurrences.ts +288 -0
- package/src/adapters/rrule/types.ts +52 -0
- package/src/adapters/rrule/validate.ts +78 -0
- package/src/components/layers/README.md +15 -0
- package/src/components/layers/layers.types.ts +6 -0
- package/src/components/layers/parts/gap.tsx +5 -0
- package/src/components/layers/parts/interval.tsx +24 -0
- package/src/components/layers/utils/styles.ts +24 -0
- package/src/components/primitives/README.md +12 -0
- package/src/components/primitives/press-point.tsx +5 -0
- package/src/components/primitives/press-point.types.ts +5 -0
- package/src/components/primitives/press-point.web.tsx +19 -0
- package/src/components/primitives/region-style.ts +21 -0
- package/src/components/roster/README.md +29 -0
- package/src/components/roster/body-layout.tsx +32 -0
- package/src/components/roster/index.tsx +108 -0
- package/src/components/roster/lanes/interval-hover.tsx +5 -0
- package/src/components/roster/lanes/interval-hover.types.ts +11 -0
- package/src/components/roster/lanes/interval-hover.web.tsx +19 -0
- package/src/components/roster/lanes/lane.tsx +93 -0
- package/src/components/roster/lanes/parts/incomplete.tsx +44 -0
- package/src/components/roster/lanes/parts/lane-label.tsx +41 -0
- package/src/components/roster/layout.tsx +68 -0
- package/src/components/roster/parts/body.tsx +24 -0
- package/src/components/roster/parts/corner.tsx +3 -0
- package/src/components/roster/parts/empty.tsx +5 -0
- package/src/components/roster/parts/grid.tsx +26 -0
- package/src/components/roster/parts/header-cell.tsx +10 -0
- package/src/components/roster/parts/header.tsx +23 -0
- package/src/components/roster/parts/lane-label-column.tsx +31 -0
- package/src/components/roster/parts/lane-list.tsx +74 -0
- package/src/components/roster/roster.types.ts +156 -0
- package/src/components/roster/use-roster.ts +133 -0
- package/src/components/roster/utils/body-content-key.ts +46 -0
- package/src/components/roster/utils/ticks.ts +62 -0
- package/src/components/schedule/README.md +23 -0
- package/src/components/schedule/days/day.tsx +89 -0
- package/src/components/schedule/days/header-layout.tsx +12 -0
- package/src/components/schedule/days/layout.tsx +38 -0
- package/src/components/schedule/days/parts/column.tsx +59 -0
- package/src/components/schedule/days/parts/day-header.tsx +18 -0
- package/src/components/schedule/days/parts/grid.tsx +21 -0
- package/src/components/schedule/days/parts/now-line.tsx +11 -0
- package/src/components/schedule/days/parts/skipped-date.tsx +22 -0
- package/src/components/schedule/days/parts/transition.tsx +70 -0
- package/src/components/schedule/index.tsx +108 -0
- package/src/components/schedule/layout.tsx +42 -0
- package/src/components/schedule/parts/gutter.tsx +16 -0
- package/src/components/schedule/parts/incomplete.tsx +13 -0
- package/src/components/schedule/schedule.types.ts +103 -0
- package/src/components/schedule/use-schedule-viewport.ts +13 -0
- package/src/components/schedule/use-schedule.ts +75 -0
- package/src/components/schedule/utils/days.ts +54 -0
- package/src/core/README.md +25 -0
- package/src/core/axis.ts +58 -0
- package/src/core/cache.ts +38 -0
- package/src/core/columns.ts +49 -0
- package/src/core/coverage.ts +56 -0
- package/src/core/flag.ts +14 -0
- package/src/core/hash.ts +28 -0
- package/src/core/hit-test.ts +27 -0
- package/src/core/index.ts +34 -0
- package/src/core/layout.ts +101 -0
- package/src/core/order.ts +18 -0
- package/src/core/scale.ts +45 -0
- package/src/core/snap.ts +52 -0
- package/src/core/spans.ts +58 -0
- package/src/core/types.ts +92 -0
- package/src/core/zone.ts +100 -0
- package/src/index.ts +52 -0
- package/src/nativewind/README.md +14 -0
- package/src/nativewind/index.ts +30 -0
- package/index.js +0 -4
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expandRuleSet = expandRuleSet;
|
|
4
|
+
const cache_1 = require("./cache");
|
|
5
|
+
const envelope_1 = require("./envelope");
|
|
6
|
+
const hash_1 = require("./hash");
|
|
7
|
+
const net_1 = require("./net");
|
|
8
|
+
const occurrences_1 = require("./occurrences");
|
|
9
|
+
const validate_1 = require("./validate");
|
|
10
|
+
function expandRuleSet(set, window, options = {}) {
|
|
11
|
+
(0, validate_1.validateWindow)(window);
|
|
12
|
+
const maxEntries = (0, validate_1.nonnegativeInteger)(options.cache?.maxEntries ?? 2000, 'cache.maxEntries');
|
|
13
|
+
const maxEnvelopes = (0, validate_1.nonnegativeInteger)(options.cache?.maxEnvelopes ?? 4, 'cache.maxEnvelopes');
|
|
14
|
+
const cap = (0, validate_1.nonnegativeInteger)(options.caps?.perRuleOccurrences ?? 400, 'caps.perRuleOccurrences');
|
|
15
|
+
let remaining = (0, validate_1.nonnegativeInteger)(options.caps?.totalOccurrences ?? 10000, 'caps.totalOccurrences');
|
|
16
|
+
const rules = [...set.rules].sort(byId);
|
|
17
|
+
const dates = [...set.dates].sort(byId);
|
|
18
|
+
const ordered = [...rules, ...dates];
|
|
19
|
+
for (const input of ordered) {
|
|
20
|
+
(0, validate_1.validateInput)(input);
|
|
21
|
+
(0, occurrences_1.validateDates)(input);
|
|
22
|
+
}
|
|
23
|
+
const stats = {
|
|
24
|
+
rules: set.rules.length,
|
|
25
|
+
dates: set.dates.length,
|
|
26
|
+
expanded: 0,
|
|
27
|
+
cacheHits: 0,
|
|
28
|
+
cacheMisses: 0,
|
|
29
|
+
};
|
|
30
|
+
if (window.start === window.end) {
|
|
31
|
+
(0, cache_1.recordStats)(stats);
|
|
32
|
+
return {
|
|
33
|
+
intervals: [],
|
|
34
|
+
gaps: [],
|
|
35
|
+
envelope: (0, envelope_1.envelopeFor)(window),
|
|
36
|
+
complete: true,
|
|
37
|
+
truncated: [],
|
|
38
|
+
stats,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const envelope = (0, cache_1.retainedEnvelope)(window, maxEnvelopes);
|
|
42
|
+
(0, cache_1.trim)(cache_1.occurrences, maxEntries);
|
|
43
|
+
const includes = [];
|
|
44
|
+
const excludes = [];
|
|
45
|
+
const truncated = [];
|
|
46
|
+
let dropped = false;
|
|
47
|
+
for (const input of ordered) {
|
|
48
|
+
const key = JSON.stringify([(0, hash_1.bodyKey)(input), envelope.start, envelope.end, cap]);
|
|
49
|
+
let list = cache_1.occurrences.get(key);
|
|
50
|
+
if (list) {
|
|
51
|
+
(0, cache_1.touch)(cache_1.occurrences, key, list);
|
|
52
|
+
stats.cacheHits++;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
list = (0, occurrences_1.enumerate)(input, envelope, cap);
|
|
56
|
+
(0, cache_1.touch)(cache_1.occurrences, key, list);
|
|
57
|
+
(0, cache_1.trim)(cache_1.occurrences, maxEntries);
|
|
58
|
+
stats.expanded++;
|
|
59
|
+
stats.cacheMisses++;
|
|
60
|
+
}
|
|
61
|
+
// No partial admission: the first list that cannot fit ends the admitted
|
|
62
|
+
// prefix. Fetch all later lists anyway to report their exact retained counts.
|
|
63
|
+
dropped ||= list.spans.length > remaining;
|
|
64
|
+
if (dropped || list.capped) {
|
|
65
|
+
truncated.push({
|
|
66
|
+
id: input.id,
|
|
67
|
+
droppedAtLeast: list.capped ? 1 : list.spans.length,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (dropped)
|
|
71
|
+
continue;
|
|
72
|
+
remaining -= list.spans.length;
|
|
73
|
+
const source = { kind: 'date' in input ? 'date' : 'rule', id: input.id };
|
|
74
|
+
if ('date' in input && input.note !== undefined)
|
|
75
|
+
source.label = input.note;
|
|
76
|
+
const target = input.kind === 'include' ? includes : excludes;
|
|
77
|
+
for (const span of list.spans)
|
|
78
|
+
target.push({ ...span, sources: [source] });
|
|
79
|
+
}
|
|
80
|
+
(0, cache_1.recordStats)(stats);
|
|
81
|
+
return {
|
|
82
|
+
...(0, net_1.net)(includes, excludes, window),
|
|
83
|
+
envelope: { ...envelope },
|
|
84
|
+
complete: truncated.length === 0,
|
|
85
|
+
truncated,
|
|
86
|
+
stats,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function byId(a, b) {
|
|
90
|
+
return a.id < b.id ? -1 : a.id > b.id ? 1 : 0;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=expand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../../../src/adapters/rrule/expand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../../src/adapters/rrule/hash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAItD,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAO9D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bodyKey = bodyKey;
|
|
4
|
+
const hash_1 = require("../../core/hash");
|
|
5
|
+
// Use the core's collision-free canonical encoding as the content hash.
|
|
6
|
+
// Identity and display notes are attached fresh, never cached in occurrence lists.
|
|
7
|
+
function bodyKey(input) {
|
|
8
|
+
const { id: _id, ...body } = input;
|
|
9
|
+
if ('date' in body) {
|
|
10
|
+
const { note: _note, ...date } = body;
|
|
11
|
+
return (0, hash_1.structuralKey)(date);
|
|
12
|
+
}
|
|
13
|
+
return (0, hash_1.structuralKey)(body);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../../src/adapters/rrule/hash.ts"],"names":[],"mappings":";;;AAAA,0CAAgD;AAGhD,wEAAwE;AACxE,mFAAmF;AACnF,iBAAwB,KAA8B;IACpD,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACnC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACtC,OAAO,IAAA,oBAAa,EAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,IAAA,oBAAa,EAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { clearExpandCache, expandStats, resetExpandStats } from './cache';
|
|
2
|
+
export { envelopeFor } from './envelope';
|
|
3
|
+
export { expandRuleSet } from './expand';
|
|
4
|
+
export type { ExpandOptions, ExpandResult, ExpandStats, RosterDate, RosterRule, RuleSet, } from './types';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/rrule/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,OAAO,GACR,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expandRuleSet = exports.envelopeFor = exports.resetExpandStats = exports.expandStats = exports.clearExpandCache = void 0;
|
|
4
|
+
var cache_1 = require("./cache");
|
|
5
|
+
Object.defineProperty(exports, "clearExpandCache", { enumerable: true, get: function () { return cache_1.clearExpandCache; } });
|
|
6
|
+
Object.defineProperty(exports, "expandStats", { enumerable: true, get: function () { return cache_1.expandStats; } });
|
|
7
|
+
Object.defineProperty(exports, "resetExpandStats", { enumerable: true, get: function () { return cache_1.resetExpandStats; } });
|
|
8
|
+
var envelope_1 = require("./envelope");
|
|
9
|
+
Object.defineProperty(exports, "envelopeFor", { enumerable: true, get: function () { return envelope_1.envelopeFor; } });
|
|
10
|
+
var expand_1 = require("./expand");
|
|
11
|
+
Object.defineProperty(exports, "expandRuleSet", { enumerable: true, get: function () { return expand_1.expandRuleSet; } });
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/rrule/index.ts"],"names":[],"mappings":";;;AAAA,iCAA0E;AAAjE,yGAAA,gBAAgB,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AACxD,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AACpB,mCAAyC;AAAhC,uGAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"net.d.ts","sourceRoot":"","sources":["../../../../src/adapters/rrule/net.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGxD,wBAAgB,GAAG,CACjB,QAAQ,EAAE,QAAQ,EAAE,EACpB,QAAQ,EAAE,QAAQ,EAAE,EACpB,MAAM,EAAE,MAAM,GACb;IAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAsBxC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.net = net;
|
|
4
|
+
const spans_1 = require("../../core/spans");
|
|
5
|
+
function net(includes, excludes, window) {
|
|
6
|
+
const covered = (0, spans_1.sourceSpans)(includes, window);
|
|
7
|
+
const removed = (0, spans_1.sourceSpans)(excludes, window);
|
|
8
|
+
const intervals = [];
|
|
9
|
+
const gaps = [];
|
|
10
|
+
let first = 0;
|
|
11
|
+
for (const include of covered) {
|
|
12
|
+
let start = include.start;
|
|
13
|
+
while (first < removed.length && removed[first].end <= start)
|
|
14
|
+
first++;
|
|
15
|
+
for (let i = first; i < removed.length; i++) {
|
|
16
|
+
const exclude = removed[i];
|
|
17
|
+
if (exclude.start >= include.end)
|
|
18
|
+
break;
|
|
19
|
+
if (start < exclude.start)
|
|
20
|
+
intervals.push({ start, end: exclude.start, sources: include.sources });
|
|
21
|
+
const end = Math.min(include.end, exclude.end);
|
|
22
|
+
gaps.push({ start: Math.max(start, exclude.start), end, sources: exclude.sources });
|
|
23
|
+
start = end;
|
|
24
|
+
}
|
|
25
|
+
if (start < include.end)
|
|
26
|
+
intervals.push({ start, end: include.end, sources: include.sources });
|
|
27
|
+
}
|
|
28
|
+
// Include source changes cannot split an otherwise identical removed span.
|
|
29
|
+
return { intervals, gaps: (0, spans_1.sourceSpans)(gaps, window) };
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=net.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"net.js","sourceRoot":"","sources":["../../../../src/adapters/rrule/net.ts"],"names":[],"mappings":";;;AACA,4CAA+C;AAE/C,aACE,QAAoB,EACpB,QAAoB,EACpB,MAAc;IAEd,MAAM,OAAO,GAAG,IAAA,mBAAW,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAA,mBAAW,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1B,OAAO,KAAK,GAAG,OAAO,CAAC,MAAM,IAAK,OAAO,CAAC,KAAK,CAAS,CAAC,GAAG,IAAI,KAAK;YAAE,KAAK,EAAE,CAAC;QAC/E,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAQ,CAAC;YAClC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG;gBAAE,MAAM;YACxC,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK;gBACvB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACpF,KAAK,GAAG,GAAG,CAAC;QACd,CAAC;QACD,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,2EAA2E;IAC3E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAA,mBAAW,EAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Window } from '../../core';
|
|
2
|
+
import type { Occurrences } from './cache';
|
|
3
|
+
import type { RosterDate, RosterRule } from './types';
|
|
4
|
+
export declare function enumerate(input: RosterRule | RosterDate, envelope: Window, cap: number, advanceAnchor?: boolean): Occurrences;
|
|
5
|
+
export declare function validateDates(input: RosterRule | RosterDate): void;
|
|
6
|
+
//# sourceMappingURL=occurrences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"occurrences.d.ts","sourceRoot":"","sources":["../../../../src/adapters/rrule/occurrences.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAYtD,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,GAAG,UAAU,EAC9B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EAEX,aAAa,UAAO,GACnB,WAAW,CA2Kb;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAQlE"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enumerate = enumerate;
|
|
4
|
+
exports.validateDates = validateDates;
|
|
5
|
+
// 1.6.0 is an ES module package with a CommonJS build under its require condition
|
|
6
|
+
// and declarations resolved under import. Keep its actual types while selecting
|
|
7
|
+
// the require export for our CJS build and Metro source entry.
|
|
8
|
+
const { allowedWeekdays, RRuleTemporal } = require('rrule-temporal');
|
|
9
|
+
// Both engines must use the same polyfill export; mixed import/require copies
|
|
10
|
+
// fail the recurrence engine's ZonedDateTime instanceof check.
|
|
11
|
+
const { Temporal } = require('@js-temporal/polyfill');
|
|
12
|
+
function enumerate(input, envelope, cap,
|
|
13
|
+
// Internal reference path for testing against original-anchor enumeration.
|
|
14
|
+
advanceAnchor = true) {
|
|
15
|
+
const result = { spans: [], capped: false };
|
|
16
|
+
const admit = (date) => {
|
|
17
|
+
const span = hoursFor(date, input);
|
|
18
|
+
if (span.start >= envelope.end || span.end <= envelope.start || span.start >= span.end)
|
|
19
|
+
return true;
|
|
20
|
+
if (result.spans.length === cap) {
|
|
21
|
+
result.capped = true;
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
result.spans.push(span);
|
|
25
|
+
return true;
|
|
26
|
+
};
|
|
27
|
+
if ('date' in input) {
|
|
28
|
+
admit(Temporal.PlainDate.from(input.date));
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
const original = dateTime(input.dtstart, input.timezone);
|
|
32
|
+
const originalWall = plain(original);
|
|
33
|
+
// A cross-date rollback can leave the end on the preceding wall date.
|
|
34
|
+
// Include the following date completely; envelope clipping discards extra candidates.
|
|
35
|
+
const upper = Temporal.Instant.fromEpochMilliseconds(envelope.end)
|
|
36
|
+
.toZonedDateTimeISO(input.timezone)
|
|
37
|
+
.add({ days: 2 })
|
|
38
|
+
.startOfDay();
|
|
39
|
+
const until = input.until === undefined
|
|
40
|
+
? upper.toPlainDateTime()
|
|
41
|
+
: dateTime(input.until, input.timezone, true);
|
|
42
|
+
const untilDate = input.until !== undefined && /^\d{4}-\d{2}-\d{2}$/.test(input.until)
|
|
43
|
+
? Temporal.PlainDate.from(input.until)
|
|
44
|
+
: undefined;
|
|
45
|
+
if (!untilDate &&
|
|
46
|
+
(until instanceof Temporal.ZonedDateTime
|
|
47
|
+
? Temporal.ZonedDateTime.compare(until, anchorFor(original.toPlainDate(), original, input.timezone)) < 0
|
|
48
|
+
: Temporal.PlainDateTime.compare(until, originalWall) < 0))
|
|
49
|
+
return result;
|
|
50
|
+
const anchorWallTime = original.toPlainTime();
|
|
51
|
+
// Iterate wall dates in UTC so zone skips cannot normalize a candidate date.
|
|
52
|
+
// The callback applies the original date cutoff or the exact datetime UNTIL.
|
|
53
|
+
const untilDateEnd = (untilDate ?? until.toPlainDate())
|
|
54
|
+
// An instant after a midnight rollback can have the preceding local date.
|
|
55
|
+
// Keep the later wall date available for the callback's exact-instant filter.
|
|
56
|
+
.add({ days: until instanceof Temporal.ZonedDateTime ? 1 : 0 })
|
|
57
|
+
.toPlainDateTime('23:59:59.999')
|
|
58
|
+
.toZonedDateTime('UTC');
|
|
59
|
+
const upperDate = upper.toPlainDateTime().toZonedDateTime('UTC');
|
|
60
|
+
// Only midnight anchors with interval 1 and no COUNT may skip periods.
|
|
61
|
+
const anchor = advanceAnchor &&
|
|
62
|
+
(input.interval === undefined || input.interval === 1) &&
|
|
63
|
+
input.count === undefined &&
|
|
64
|
+
anchorWallTime.equals('00:00')
|
|
65
|
+
? advance(originalWall, envelope, input)
|
|
66
|
+
: originalWall;
|
|
67
|
+
const positional = !!input.bysetpos?.length;
|
|
68
|
+
const unit = periodUnit(input);
|
|
69
|
+
const firstPeriod = periodStart(anchor.toPlainDate(), input);
|
|
70
|
+
const bound = Temporal.ZonedDateTime.compare(untilDateEnd, upperDate) < 0 ? untilDateEnd : upperDate;
|
|
71
|
+
const lastPeriod = periodStart(bound.toPlainDate(), input);
|
|
72
|
+
if (Temporal.PlainDate.compare(firstPeriod, lastPeriod) > 0)
|
|
73
|
+
return result;
|
|
74
|
+
// 1.5.2 tests UNTIL only while visiting candidates in its monthly loop.
|
|
75
|
+
// Every supported loop advances at least one authored period per iteration.
|
|
76
|
+
// Exhaustion after the final query period is complete, even with no candidates.
|
|
77
|
+
const maxIterations = Math.floor(firstPeriod.until(lastPeriod, { largestUnit: unit })[unit] / (input.interval ?? 1)) +
|
|
78
|
+
1;
|
|
79
|
+
const engine = new RRuleTemporal({
|
|
80
|
+
freq: input.frequency,
|
|
81
|
+
dtstart: firstPeriod.toPlainDateTime(anchorWallTime).toZonedDateTime('UTC'),
|
|
82
|
+
// Positions must see the entire final period before UNTIL and envelope admission.
|
|
83
|
+
until: positional
|
|
84
|
+
? lastPeriod
|
|
85
|
+
.add({ [unit]: 1 })
|
|
86
|
+
.toZonedDateTime('UTC')
|
|
87
|
+
.subtract({ milliseconds: 1 })
|
|
88
|
+
: bound,
|
|
89
|
+
interval: input.interval,
|
|
90
|
+
wkst: allowedWeekdays[input.wkst ?? 0],
|
|
91
|
+
byDay: input.frequency !== 'DAILY' && input.byweekday?.length
|
|
92
|
+
? input.byweekday.map((day) => allowedWeekdays[day])
|
|
93
|
+
: input.frequency === 'WEEKLY' && !input.bymonthday?.length
|
|
94
|
+
? [allowedWeekdays[(original.dayOfWeek - 1)]]
|
|
95
|
+
: undefined,
|
|
96
|
+
byMonth: input.bymonth,
|
|
97
|
+
// Explicitly preserve the implicit monthly day; 1.5.2's fallback otherwise
|
|
98
|
+
// constrains a 31st through February and drifts subsequent months.
|
|
99
|
+
byMonthDay: input.bymonthday?.length
|
|
100
|
+
? input.bymonthday
|
|
101
|
+
: input.frequency === 'MONTHLY' && !input.byweekday?.length
|
|
102
|
+
? [original.day]
|
|
103
|
+
: undefined,
|
|
104
|
+
tzid: 'UTC',
|
|
105
|
+
includeDtstart: false,
|
|
106
|
+
maxIterations,
|
|
107
|
+
});
|
|
108
|
+
// Version 1.5.2 can replay the iterator when applying its final count filter.
|
|
109
|
+
// Admit each local date once so replay cannot consume COUNT or the cap twice.
|
|
110
|
+
const visited = new Set();
|
|
111
|
+
let admitted = 0;
|
|
112
|
+
const visit = (date) => {
|
|
113
|
+
if (result.capped || admitted === input.count)
|
|
114
|
+
return false;
|
|
115
|
+
if (Temporal.PlainDate.compare(date, original.toPlainDate()) < 0)
|
|
116
|
+
return true;
|
|
117
|
+
const key = date.toString();
|
|
118
|
+
if (visited.has(key))
|
|
119
|
+
return true;
|
|
120
|
+
visited.add(key);
|
|
121
|
+
if (untilDate) {
|
|
122
|
+
if (Temporal.PlainDate.compare(date, untilDate) > 0)
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
else if (until instanceof Temporal.ZonedDateTime
|
|
126
|
+
? Temporal.ZonedDateTime.compare(anchorFor(date, original, input.timezone), until) > 0
|
|
127
|
+
: Temporal.PlainDateTime.compare(date.toPlainDateTime(anchorWallTime), until) > 0)
|
|
128
|
+
return true;
|
|
129
|
+
if (!date.toZonedDateTime(input.timezone).toPlainDate().equals(date))
|
|
130
|
+
return true;
|
|
131
|
+
// Lifetime COUNT includes existing dates before the envelope, but never skipped dates.
|
|
132
|
+
admitted++;
|
|
133
|
+
return admit(date);
|
|
134
|
+
};
|
|
135
|
+
let candidateCount = 0;
|
|
136
|
+
let period = '';
|
|
137
|
+
let candidates = [];
|
|
138
|
+
const flush = () => {
|
|
139
|
+
const selected = candidates.filter((_, index) => input.bysetpos?.some((position) => position > 0 ? index === position - 1 : index === candidates.length + position));
|
|
140
|
+
candidates = [];
|
|
141
|
+
return selected.every(visit);
|
|
142
|
+
};
|
|
143
|
+
try {
|
|
144
|
+
engine.all((occurrence, index) => {
|
|
145
|
+
const date = occurrence.toPlainDate();
|
|
146
|
+
// Replayed callback indices restart at zero. They must not enlarge a
|
|
147
|
+
// buffered period, especially when the whole query has only one candidate.
|
|
148
|
+
if (positional && index < candidateCount)
|
|
149
|
+
return false;
|
|
150
|
+
candidateCount++;
|
|
151
|
+
// DAILY BYDAY re-anchors the engine; filter the authored sequence here.
|
|
152
|
+
if (input.frequency === 'DAILY' &&
|
|
153
|
+
input.byweekday?.length &&
|
|
154
|
+
!input.byweekday.includes((date.dayOfWeek - 1)))
|
|
155
|
+
return true;
|
|
156
|
+
if (!positional)
|
|
157
|
+
return visit(date);
|
|
158
|
+
const key = periodStart(date, input).toString();
|
|
159
|
+
if (key !== period) {
|
|
160
|
+
if (!flush())
|
|
161
|
+
return false;
|
|
162
|
+
period = key;
|
|
163
|
+
}
|
|
164
|
+
candidates.push(date);
|
|
165
|
+
return true;
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
if (!(error instanceof Error) ||
|
|
170
|
+
error.message !== `Maximum iterations (${maxIterations}) exceeded in all()`)
|
|
171
|
+
throw error;
|
|
172
|
+
}
|
|
173
|
+
flush();
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
// Validate temporal fields even when the display window has no elapsed time.
|
|
177
|
+
function validateDates(input) {
|
|
178
|
+
if ('date' in input) {
|
|
179
|
+
Temporal.PlainDate.from(input.date).toZonedDateTime(input.timezone);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
plain(dateTime(input.dtstart, input.timezone)).toZonedDateTime(input.timezone);
|
|
183
|
+
if (input.until !== undefined)
|
|
184
|
+
plain(dateTime(input.until, input.timezone, true)).toZonedDateTime(input.timezone);
|
|
185
|
+
}
|
|
186
|
+
function hoursFor(date, input) {
|
|
187
|
+
const midnight = date.toPlainDateTime();
|
|
188
|
+
const dayStart = date.toZonedDateTime(input.timezone);
|
|
189
|
+
if (!dayStart.toPlainDate().equals(date)) {
|
|
190
|
+
return { start: dayStart.epochMilliseconds, end: dayStart.epochMilliseconds };
|
|
191
|
+
}
|
|
192
|
+
const wholeDay = input.hourstart === undefined && input.hourend === undefined;
|
|
193
|
+
// Whole-day bounds resolve PlainDates to first instants. Explicit hours use
|
|
194
|
+
// compatible wall time, choosing the earlier repeat and advancing skips.
|
|
195
|
+
const at = (hour) => {
|
|
196
|
+
const wall = midnight.add({ milliseconds: Math.round(hour * 3_600_000) });
|
|
197
|
+
return (wholeDay ? wall.toPlainDate() : wall).toZonedDateTime(input.timezone).epochMilliseconds;
|
|
198
|
+
};
|
|
199
|
+
return { start: at(input.hourstart ?? 0), end: at(input.hourend ?? 24) };
|
|
200
|
+
}
|
|
201
|
+
function dateTime(value, timezone, endOfDate = false) {
|
|
202
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(value)) {
|
|
203
|
+
const date = Temporal.PlainDate.from(value);
|
|
204
|
+
return date.toPlainDateTime(endOfDate ? '23:59:59.999' : '00:00');
|
|
205
|
+
}
|
|
206
|
+
if (/(?:Z|[+-]\d{2}:?\d{2})(?:\[[^\]]*\])?$/i.test(value)) {
|
|
207
|
+
return Temporal.Instant.from(value).toZonedDateTimeISO(timezone);
|
|
208
|
+
}
|
|
209
|
+
return Temporal.PlainDateTime.from(value);
|
|
210
|
+
}
|
|
211
|
+
function plain(value) {
|
|
212
|
+
return value instanceof Temporal.ZonedDateTime ? value.toPlainDateTime() : value;
|
|
213
|
+
}
|
|
214
|
+
// Keep the original wall time and back up one period so WKST/BYDAY cannot lose
|
|
215
|
+
// an earlier candidate. A monthly jump must never constrain the 31st to the 28th.
|
|
216
|
+
function advance(original, envelope, input) {
|
|
217
|
+
// Include the local date crossing the left edge, regardless of anchor wall time.
|
|
218
|
+
const lower = Temporal.Instant.fromEpochMilliseconds(envelope.start)
|
|
219
|
+
.toZonedDateTimeISO(input.timezone)
|
|
220
|
+
.startOfDay();
|
|
221
|
+
const unit = input.frequency === 'MONTHLY' ? 'months' : input.frequency === 'WEEKLY' ? 'weeks' : 'days';
|
|
222
|
+
const originalDate = original.toPlainDate();
|
|
223
|
+
const interval = input.interval ?? 1;
|
|
224
|
+
const distance = originalDate.until(lower.toPlainDate(), { largestUnit: unit })[unit];
|
|
225
|
+
let steps = Math.max(0, Math.floor(distance / interval) - 1);
|
|
226
|
+
while (steps > 0) {
|
|
227
|
+
const candidate = originalDate.add({ [unit]: steps * interval });
|
|
228
|
+
if ((unit !== 'weeks' || candidate.dayOfWeek === originalDate.dayOfWeek) &&
|
|
229
|
+
(unit !== 'months' || candidate.day === originalDate.day) &&
|
|
230
|
+
candidate.toZonedDateTime(input.timezone).toPlainDate().equals(candidate))
|
|
231
|
+
return candidate.toPlainDateTime(original.toPlainTime());
|
|
232
|
+
steps--;
|
|
233
|
+
}
|
|
234
|
+
return original;
|
|
235
|
+
}
|
|
236
|
+
// Prefer the original offset in repeated time; otherwise resolve skips compatibly.
|
|
237
|
+
function anchorFor(date, original, timezone) {
|
|
238
|
+
return original instanceof Temporal.ZonedDateTime
|
|
239
|
+
? original.with({ year: date.year, month: date.month, day: date.day }, { offset: 'prefer' })
|
|
240
|
+
: date.toPlainDateTime(original.toPlainTime()).toZonedDateTime(timezone);
|
|
241
|
+
}
|
|
242
|
+
function periodUnit(input) {
|
|
243
|
+
return input.frequency === 'MONTHLY' ? 'months' : input.frequency === 'WEEKLY' ? 'weeks' : 'days';
|
|
244
|
+
}
|
|
245
|
+
function periodStart(date, input) {
|
|
246
|
+
if (input.frequency === 'MONTHLY')
|
|
247
|
+
return date.with({ day: 1 });
|
|
248
|
+
if (input.frequency === 'WEEKLY')
|
|
249
|
+
return date.subtract({ days: (date.dayOfWeek - 1 - (input.wkst ?? 0) + 7) % 7 });
|
|
250
|
+
return date;
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=occurrences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"occurrences.js","sourceRoot":"","sources":["../../../../src/adapters/rrule/occurrences.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { Gap, Interval, Weekday, Window } from '../../core';
|
|
2
|
+
export type RosterRule = {
|
|
3
|
+
id: string;
|
|
4
|
+
kind: 'include' | 'exclude';
|
|
5
|
+
frequency: 'DAILY' | 'WEEKLY' | 'MONTHLY';
|
|
6
|
+
dtstart: string;
|
|
7
|
+
until?: string;
|
|
8
|
+
count?: number;
|
|
9
|
+
interval?: number;
|
|
10
|
+
wkst?: Weekday;
|
|
11
|
+
byweekday?: Weekday[];
|
|
12
|
+
bymonth?: number[];
|
|
13
|
+
bymonthday?: number[];
|
|
14
|
+
bysetpos?: number[];
|
|
15
|
+
/** Local hours in timezone, end-exclusive; 24 means next local midnight. */
|
|
16
|
+
hourstart: number;
|
|
17
|
+
hourend: number;
|
|
18
|
+
timezone: string;
|
|
19
|
+
};
|
|
20
|
+
export type RosterDate = {
|
|
21
|
+
id: string;
|
|
22
|
+
kind: 'include' | 'exclude';
|
|
23
|
+
date: string;
|
|
24
|
+
timezone: string;
|
|
25
|
+
note?: string;
|
|
26
|
+
/** Both hours present for a partial day, or both absent for the whole day. */
|
|
27
|
+
hourstart?: number;
|
|
28
|
+
hourend?: number;
|
|
29
|
+
};
|
|
30
|
+
export type RuleSet = {
|
|
31
|
+
rules: RosterRule[];
|
|
32
|
+
dates: RosterDate[];
|
|
33
|
+
};
|
|
34
|
+
export type ExpandOptions = {
|
|
35
|
+
cache?: {
|
|
36
|
+
maxEntries?: number;
|
|
37
|
+
maxEnvelopes?: number;
|
|
38
|
+
};
|
|
39
|
+
caps?: {
|
|
40
|
+
perRuleOccurrences?: number;
|
|
41
|
+
totalOccurrences?: number;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export type ExpandStats = {
|
|
45
|
+
rules: number;
|
|
46
|
+
dates: number;
|
|
47
|
+
expanded: number;
|
|
48
|
+
cacheHits: number;
|
|
49
|
+
cacheMisses: number;
|
|
50
|
+
};
|
|
51
|
+
export type ExpandResult = {
|
|
52
|
+
intervals: Interval[];
|
|
53
|
+
gaps: Gap[];
|
|
54
|
+
envelope: Window;
|
|
55
|
+
complete: boolean;
|
|
56
|
+
truncated: Array<{
|
|
57
|
+
id: string;
|
|
58
|
+
droppedAtLeast: number;
|
|
59
|
+
}>;
|
|
60
|
+
stats: ExpandStats;
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/rrule/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,IAAI,CAAC,EAAE;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE,CAAC;AACF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/adapters/rrule/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Window } from '../../core';
|
|
2
|
+
import type { RosterDate, RosterRule } from './types';
|
|
3
|
+
export declare function validateWindow(window: Window): void;
|
|
4
|
+
export declare function nonnegativeInteger(value: number, name: string): number;
|
|
5
|
+
export declare function validateInput(input: RosterRule | RosterDate): void;
|
|
6
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/adapters/rrule/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEtD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQnD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAItE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CA0ClE"}
|