iamcal 3.1.0 → 4.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/lib/date.js CHANGED
@@ -33,7 +33,9 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CalendarDateTime = exports.CalendarDate = exports.ONE_DAY_MS = exports.ONE_HOUR_MS = exports.ONE_MINUTE_MS = exports.ONE_SECOND_MS = void 0;
36
+ exports.CalendarDateTime = exports.CalendarDate = exports.ONE_WEEK_SECONDS = exports.ONE_DAY_SECONDS = exports.ONE_HOUR_SECONDS = exports.ONE_MINUTE_SECONDS = exports.ONE_WEEK_MS = exports.ONE_DAY_MS = exports.ONE_HOUR_MS = exports.ONE_MINUTE_MS = exports.ONE_SECOND_MS = void 0;
37
+ exports.isDateObject = isDateObject;
38
+ exports.isCalendarDateOrTime = isCalendarDateOrTime;
37
39
  exports.padZeros = padZeros;
38
40
  exports.padYear = padYear;
39
41
  exports.padMonth = padMonth;
@@ -54,6 +56,11 @@ exports.ONE_SECOND_MS = 1000;
54
56
  exports.ONE_MINUTE_MS = 60 * exports.ONE_SECOND_MS;
55
57
  exports.ONE_HOUR_MS = 60 * exports.ONE_MINUTE_MS;
56
58
  exports.ONE_DAY_MS = 24 * exports.ONE_HOUR_MS;
59
+ exports.ONE_WEEK_MS = 7 * exports.ONE_DAY_MS;
60
+ exports.ONE_MINUTE_SECONDS = 60;
61
+ exports.ONE_HOUR_SECONDS = 60 * exports.ONE_MINUTE_SECONDS;
62
+ exports.ONE_DAY_SECONDS = 24 * exports.ONE_HOUR_SECONDS;
63
+ exports.ONE_WEEK_SECONDS = 7 * exports.ONE_DAY_SECONDS;
57
64
  /**
58
65
  * Represents a DATE value as defined by RFC5545.
59
66
  * This is a date without a time, representing a whole day.
@@ -62,11 +69,11 @@ class CalendarDate {
62
69
  date;
63
70
  constructor(date) {
64
71
  if (typeof date === 'object') {
65
- if (Object.prototype.toString.call(date) === '[object Date]') {
72
+ if (isDateObject(date)) {
66
73
  this.date = date;
67
74
  }
68
75
  else {
69
- this.date = date.getDate();
76
+ this.date = (date).getDate();
70
77
  }
71
78
  }
72
79
  else {
@@ -91,20 +98,50 @@ class CalendarDate {
91
98
  isFullDay() {
92
99
  return true;
93
100
  }
101
+ /**
102
+ * Get a new date offset by a duration.
103
+ * @param duration The duration to offset the date by.
104
+ * @returns A new {@link CalendarDate} offset by the duration.
105
+ */
106
+ offset(duration) {
107
+ const offsetMs = duration.floor('D').inMilliseconds();
108
+ const ms = this.getDate().getTime();
109
+ const time = new Date(ms + offsetMs);
110
+ return new CalendarDate(time);
111
+ }
112
+ [Symbol.toPrimitive](hint) {
113
+ if (hint === 'string') {
114
+ return this.getValue();
115
+ }
116
+ else if (hint === 'number') {
117
+ return this.date.getTime();
118
+ }
119
+ return null;
120
+ }
94
121
  }
95
122
  exports.CalendarDate = CalendarDate;
96
123
  class CalendarDateTime {
97
124
  date;
98
- constructor(date) {
125
+ absolute;
126
+ constructor(date, absolute) {
99
127
  if (typeof date === 'object') {
100
- if (Object.prototype.toString.call(date) === '[object Date]') {
128
+ if (isDateObject(date)) {
101
129
  this.date = date;
130
+ this.absolute = false;
102
131
  }
103
132
  else {
104
133
  this.date = date.getDate();
134
+ this.absolute = date.isFullDay() ? false : date.isAbsolute();
105
135
  }
106
136
  }
107
137
  else {
138
+ this.absolute = absolute ?? date.endsWith('Z');
139
+ if (date.endsWith('Z') && !this.absolute) {
140
+ date = date.substring(0, date.length - 1);
141
+ }
142
+ else if (!date.endsWith('Z') && this.absolute) {
143
+ date += 'Z';
144
+ }
108
145
  try {
109
146
  this.date = parseDateTimeString(date);
110
147
  }
@@ -115,9 +152,14 @@ class CalendarDateTime {
115
152
  if (!this.date || isNaN(this.date.getTime())) {
116
153
  throw new Error('Invalid date provided');
117
154
  }
155
+ if (absolute !== undefined) {
156
+ this.absolute = absolute;
157
+ }
118
158
  }
119
159
  getValue() {
120
- return toDateTimeString(this.date);
160
+ return this.absolute
161
+ ? toDateTimeStringUTC(this.date, this.date.getTimezoneOffset())
162
+ : toDateTimeString(this.date);
121
163
  }
122
164
  getDate() {
123
165
  return new Date(this.date);
@@ -125,8 +167,56 @@ class CalendarDateTime {
125
167
  isFullDay() {
126
168
  return false;
127
169
  }
170
+ /**
171
+ * Check if this datetime is absolute, i.e. if it is represented in UTC.
172
+ * @returns If the datetime is absolute.
173
+ */
174
+ isAbsolute() {
175
+ return this.absolute;
176
+ }
177
+ /**
178
+ * Get a new time offset by a duration.
179
+ * @param duration The duration to offset the time by.
180
+ * @returns A new {@link CalendarDateTime} offset by the duration.
181
+ */
182
+ offset(duration) {
183
+ const offsetMs = duration.inMilliseconds();
184
+ const ms = this.getDate().getTime();
185
+ const time = new Date(ms + offsetMs);
186
+ return new CalendarDateTime(time);
187
+ }
188
+ [Symbol.toPrimitive](hint) {
189
+ if (hint === 'string') {
190
+ return this.getValue();
191
+ }
192
+ else if (hint === 'number') {
193
+ return this.date.getTime();
194
+ }
195
+ return null;
196
+ }
128
197
  }
129
198
  exports.CalendarDateTime = CalendarDateTime;
199
+ /**
200
+ * Check if an object is a JavaScript `Date`.
201
+ * @param maybeDate The object to check.
202
+ * @returns `true` if the object is a `Date`, `false` otherwise.
203
+ */
204
+ function isDateObject(maybeDate) {
205
+ return Object.prototype.toString.call(maybeDate) === '[object Date]';
206
+ }
207
+ /**
208
+ * Check if an object is a `CalendarDateOrTime`.
209
+ * @param maybeDate The object to check.
210
+ * @returns `true` if the object is a `CalendarDateOrTime`, `false` otherwise.
211
+ */
212
+ function isCalendarDateOrTime(maybeDate) {
213
+ return (maybeDate != null &&
214
+ typeof maybeDate === "object" &&
215
+ typeof maybeDate.getValue === "function" &&
216
+ typeof maybeDate.getDate === "function" &&
217
+ typeof maybeDate.isFullDay === "function" &&
218
+ typeof maybeDate.offset === "function");
219
+ }
130
220
  /**
131
221
  * Pad a number with leading zeros.
132
222
  * @param num The number to pad with zeros.
@@ -355,7 +445,7 @@ function parseDateString(date) {
355
445
  return parsedDate;
356
446
  }
357
447
  function convertDate(date, fullDay = false) {
358
- if (Object.prototype.toString.call(date) === '[object Date]') {
448
+ if (isDateObject(date)) {
359
449
  if (fullDay)
360
450
  return new CalendarDate(date);
361
451
  else
@@ -365,4 +455,4 @@ function convertDate(date, fullDay = false) {
365
455
  return date;
366
456
  }
367
457
  }
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9IQSw0QkFhQztBQU9ELDBCQUVDO0FBT0QsNEJBRUM7QUFPRCx3QkFFQztBQU9ELDRCQUVDO0FBT0QsZ0NBRUM7QUFPRCxnQ0FFQztBQVNELDhDQXFCQztBQVNELG9DQUdDO0FBUUQsb0NBR0M7QUFRRCw0Q0FHQztBQWlCRCxrREFRQztBQVFELGtEQTRDQztBQVFELDBDQW1CQztBQWlCRCxrQ0FVQztBQTFYRCxxREFBc0M7QUFHekIsUUFBQSxhQUFhLEdBQUcsSUFBSSxDQUFBO0FBQ3BCLFFBQUEsYUFBYSxHQUFHLEVBQUUsR0FBRyxxQkFBYSxDQUFBO0FBQ2xDLFFBQUEsV0FBVyxHQUFHLEVBQUUsR0FBRyxxQkFBYSxDQUFBO0FBQ2hDLFFBQUEsVUFBVSxHQUFHLEVBQUUsR0FBRyxtQkFBVyxDQUFBO0FBdUIxQzs7O0dBR0c7QUFDSCxNQUFhLFlBQVk7SUFDYixJQUFJLENBQU07SUFFbEIsWUFBWSxJQUF3QztRQUNoRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLGVBQWUsRUFBRSxDQUFDO2dCQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQVksQ0FBQTtZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLElBQUksR0FBSSxJQUEyQixDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3RELENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQztnQkFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNyQyxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNMLElB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
458
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdNQSxvQ0FFQztBQU9ELG9EQVdDO0FBV0QsNEJBYUM7QUFPRCwwQkFFQztBQU9ELDRCQUVDO0FBT0Qsd0JBRUM7QUFPRCw0QkFFQztBQU9ELGdDQUVDO0FBT0QsZ0NBRUM7QUFTRCw4Q0FxQkM7QUFTRCxvQ0FHQztBQVFELG9DQUdDO0FBUUQsNENBR0M7QUFpQkQsa0RBUUM7QUFRRCxrREE0Q0M7QUFRRCwwQ0FtQkM7QUFpQkQsa0NBVUM7QUFyZUQscURBQXNDO0FBSXpCLFFBQUEsYUFBYSxHQUFHLElBQUksQ0FBQTtBQUNwQixRQUFBLGFBQWEsR0FBRyxFQUFFLEdBQUcscUJBQWEsQ0FBQTtBQUNsQyxRQUFBLFdBQVcsR0FBRyxFQUFFLEdBQUcscUJBQWEsQ0FBQTtBQUNoQyxRQUFBLFVBQVUsR0FBRyxFQUFFLEdBQUcsbUJBQVcsQ0FBQTtBQUM3QixRQUFBLFdBQVcsR0FBRyxDQUFDLEdBQUcsa0JBQVUsQ0FBQTtBQUU1QixRQUFBLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtBQUN2QixRQUFBLGdCQUFnQixHQUFHLEVBQUUsR0FBRywwQkFBa0IsQ0FBQTtBQUMxQyxRQUFBLGVBQWUsR0FBRyxFQUFFLEdBQUcsd0JBQWdCLENBQUE7QUFDdkMsUUFBQSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsdUJBQWUsQ0FBQTtBQThCbkQ7OztHQUdHO0FBQ0gsTUFBYSxZQUFZO0lBQ2IsSUFBSSxDQUFNO0lBRWxCLFlBQVksSUFBd0M7UUFDaEQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtZQUNwQixDQUFDO2lCQUFN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LENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRTlDLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxVQUFVLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUMvRCxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDakQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3BELElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNwRCxJQUFJLE9BQU8sR0FBRyxDQUFDLElBQUksT0FBTyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ3JFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekIsQ0FBQztTQUFNLENBQUM7UUFDSixNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FDdkIsSUFBSSxFQUNKLFVBQVUsRUFDVixHQUFHLEVBQ0gsS0FBSyxFQUNMLE9BQU8sRUFDUCxPQUFPLENBQ1YsQ0FBQTtRQUNELE9BQU8sVUFBVSxDQUFBO0lBQ3JCLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsSUFBWTtJQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzNDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNyRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUUxQyxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksVUFBVSxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDL0QsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDbEQsT0FBTyxVQUFVLENBQUE7QUFDckIsQ0FBQztBQWlCRCxTQUFnQixXQUFXLENBQ3ZCLElBQStCLEVBQy9CLFVBQW1CLEtBQUs7SUFFeEIsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLE9BQU87WUFBRSxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBOztZQUNyQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDMUMsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7QUFDTCxDQUFDIn0=
@@ -0,0 +1,106 @@
1
+ import { CalendarDateOrTime } from './date';
2
+ export type DurationUnit = 'W' | 'D' | 'H' | 'M' | 'S';
3
+ /**
4
+ * Represents a DURATION value as defined by RFC5545.
5
+ */
6
+ export declare class CalendarDuration {
7
+ weeks?: number;
8
+ days?: number;
9
+ hours?: number;
10
+ minutes?: number;
11
+ seconds?: number;
12
+ constructor(duration: string | CalendarDuration);
13
+ /**
14
+ * Get the length of this duration object in seconds.
15
+ * @returns The total number of seconds represented by this duration.
16
+ */
17
+ inSeconds(): number;
18
+ /**
19
+ * Get the length of this duration object in milliseconds.
20
+ *
21
+ * Note that this will always return whole seconds, as durations do not
22
+ * support milliseconds.
23
+ * @returns The total number of milliseconds represented by this duration.
24
+ */
25
+ inMilliseconds(): number;
26
+ /**
27
+ * Get the duration string that represents this duration.
28
+ * @returns A duration string in the format `P[n]W` for weeks, or `P[n]DT[n]H[n]M[n]S` for days, hours, minutes and seconds. Prefixed with a `-` if negative.
29
+ */
30
+ getValue(): string;
31
+ /**
32
+ * Get the floor the duration to the nearest of a given unit.
33
+ * @param unit The unit to floor to.
34
+ * @returns The duration with units smaller than `unit` removed.
35
+ * @example
36
+ * const duration = new CalendarDuration("1W2D5H30M")
37
+ * const days = duration.floor("D") // Floor to days
38
+ * console.log(days.getValue()) // "1W2D"
39
+ */
40
+ floor(unit: DurationUnit): CalendarDuration;
41
+ /**
42
+ * Create a duration from a number of seconds.
43
+ * @param seconds How many seconds the duration should represent.
44
+ * @returns A {@link CalendarDuration} representing the specified number of seconds.
45
+ * @throws {Error} If seconds is NaN.
46
+ */
47
+ static fromSeconds(seconds: number): CalendarDuration;
48
+ /**
49
+ * Create a duration from a number of days.
50
+ * @param days How many days the duration should represent.
51
+ * @returns A {@link CalendarDuration} representing the specified number of days.
52
+ * @throws {Error} If days is NaN.
53
+ */
54
+ static fromDays(days: number): CalendarDuration;
55
+ /**
56
+ * Create a duration from a number of weeks.
57
+ * @param weeks How many weeks the duration should represent.
58
+ * @returns A {@link CalendarDuration} representing the specified number of weeks.
59
+ * @throws {Error} If weeks is NaN.
60
+ */
61
+ static fromWeeks(weeks: number): CalendarDuration;
62
+ /**
63
+ * Creates a duration from the difference between two dates.
64
+ * @param start The start date or time.
65
+ * @param end The end date or time.
66
+ * @returns A {@link CalendarDuration} representing the difference between the two dates.
67
+ * @throws {Error} If the start date and end date have different types.
68
+ */
69
+ static fromDifference(start: Date | CalendarDateOrTime, end: Date | CalendarDateOrTime): CalendarDuration;
70
+ }
71
+ /**
72
+ * Convert time units to a duration string.
73
+ *
74
+ * A duration is considered negative if any unit is less than 0.
75
+ * @param weeks How many weeks the duration should represent.
76
+ * @param days The days part of the duration.
77
+ * @param hours The hours part of the duration.
78
+ * @param minutes The minutes part of the duration.
79
+ * @param seconds The seconds part of the duration.
80
+ * @returns A string representing the duration in the format `P[n]W` or `P[n]DT[n]H[n]M[n]S` where values may be omitted if 0, prefixed with `-` if negative.
81
+ * @throws {Error} If weeks are combined with other values.
82
+ * @throws {Error} If any unit is NaN.
83
+ */
84
+ export declare function formatDurationString(weeks: number | undefined, days: number | undefined, hours: number | undefined, minutes: number | undefined, seconds: number | undefined): string;
85
+ /**
86
+ * Convert a number of seconds to a duration string.
87
+ * @param seconds How many seconds the duration should represent.
88
+ * @returns A string representing the duration in the format `PT[n]H[n]M[n]S` where values may be omitted if 0, prefixed with `-` if negative.
89
+ * @throws {Error} If seconds is NaN.
90
+ */
91
+ export declare function secondsToDurationString(seconds: number): string;
92
+ /**
93
+ * Convert a number of days to a duration string.
94
+ * @param days How many days the duration should represent.
95
+ * @returns A string representing the duration in the format `P[n]D`, prefixed with `-` if negative.
96
+ * @throws {Error} If days is NaN.
97
+ */
98
+ export declare function daysToDurationString(days: number): string;
99
+ /**
100
+ * Convert a number of weeks to a duration string.
101
+ * @param weeks How many weeks the duration should represent.
102
+ * @returns A string representing the duration in the format `P[n]W`, prefixed with `-` if negative.
103
+ * @throws {Error} If weeks is NaN.
104
+ */
105
+ export declare function weeksToDurationString(weeks: number): string;
106
+ //# sourceMappingURL=duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../src/duration.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,kBAAkB,EASrB,MAAM,QAAQ,CAAA;AAGf,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAEtD;;GAEG;AACH,qBAAa,gBAAgB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;gBAEJ,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAqC/C;;;OAGG;IACH,SAAS,IAAI,MAAM;IAUnB;;;;;;OAMG;IACH,cAAc,IAAI,MAAM;IAIxB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAUlB;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB;IAiB3C;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAIrD;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAI/C;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB;IAIjD;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CACjB,KAAK,EAAE,IAAI,GAAG,kBAAkB,EAChC,GAAG,EAAE,IAAI,GAAG,kBAAkB,GAC/B,gBAAgB;CA4BtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAkDR;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsB/D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ3D"}
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CalendarDuration = void 0;
4
+ exports.formatDurationString = formatDurationString;
5
+ exports.secondsToDurationString = secondsToDurationString;
6
+ exports.daysToDurationString = daysToDurationString;
7
+ exports.weeksToDurationString = weeksToDurationString;
8
+ const date_1 = require("./date");
9
+ const property_1 = require("./property");
10
+ /**
11
+ * Represents a DURATION value as defined by RFC5545.
12
+ */
13
+ class CalendarDuration {
14
+ weeks;
15
+ days;
16
+ hours;
17
+ minutes;
18
+ seconds;
19
+ constructor(duration) {
20
+ if (typeof duration === 'string') {
21
+ (0, property_1.validateDuration)(duration);
22
+ const negativeMultiplier = duration.startsWith('-') ? -1 : 1;
23
+ const findParts = /(\d+)([WDHMS])/g;
24
+ const parts = duration.matchAll(findParts);
25
+ for (const part of parts) {
26
+ const value = parseInt(part[1], 10);
27
+ const name = part[2];
28
+ switch (name) {
29
+ case 'W':
30
+ this.weeks = value * negativeMultiplier;
31
+ break;
32
+ case 'D':
33
+ this.days = value * negativeMultiplier;
34
+ break;
35
+ case 'H':
36
+ this.hours = value * negativeMultiplier;
37
+ break;
38
+ case 'M':
39
+ this.minutes = value * negativeMultiplier;
40
+ break;
41
+ case 'S':
42
+ this.seconds = value * negativeMultiplier;
43
+ break;
44
+ }
45
+ }
46
+ }
47
+ else {
48
+ this.weeks = duration.weeks;
49
+ this.days = duration.days;
50
+ this.hours = duration.hours;
51
+ this.minutes = duration.minutes;
52
+ this.seconds = duration.seconds;
53
+ }
54
+ }
55
+ /**
56
+ * Get the length of this duration object in seconds.
57
+ * @returns The total number of seconds represented by this duration.
58
+ */
59
+ inSeconds() {
60
+ return ((this.weeks ?? 0) * date_1.ONE_WEEK_SECONDS +
61
+ (this.days ?? 0) * date_1.ONE_DAY_SECONDS +
62
+ (this.hours ?? 0) * date_1.ONE_HOUR_SECONDS +
63
+ (this.minutes ?? 0) * date_1.ONE_MINUTE_SECONDS +
64
+ (this.seconds ?? 0));
65
+ }
66
+ /**
67
+ * Get the length of this duration object in milliseconds.
68
+ *
69
+ * Note that this will always return whole seconds, as durations do not
70
+ * support milliseconds.
71
+ * @returns The total number of milliseconds represented by this duration.
72
+ */
73
+ inMilliseconds() {
74
+ return this.inSeconds() * date_1.ONE_SECOND_MS;
75
+ }
76
+ /**
77
+ * Get the duration string that represents this duration.
78
+ * @returns A duration string in the format `P[n]W` for weeks, or `P[n]DT[n]H[n]M[n]S` for days, hours, minutes and seconds. Prefixed with a `-` if negative.
79
+ */
80
+ getValue() {
81
+ return formatDurationString(this.weeks, this.days, this.hours, this.minutes, this.seconds);
82
+ }
83
+ /**
84
+ * Get the floor the duration to the nearest of a given unit.
85
+ * @param unit The unit to floor to.
86
+ * @returns The duration with units smaller than `unit` removed.
87
+ * @example
88
+ * const duration = new CalendarDuration("1W2D5H30M")
89
+ * const days = duration.floor("D") // Floor to days
90
+ * console.log(days.getValue()) // "1W2D"
91
+ */
92
+ floor(unit) {
93
+ const result = new CalendarDuration(this);
94
+ /* eslint-disable no-fallthrough */
95
+ switch (unit) {
96
+ case 'W':
97
+ result.days = undefined;
98
+ case 'D':
99
+ result.hours = undefined;
100
+ case 'H':
101
+ result.minutes = undefined;
102
+ case 'M':
103
+ result.seconds = undefined;
104
+ }
105
+ /* eslint-enable no-fallthrough */
106
+ return result;
107
+ }
108
+ /**
109
+ * Create a duration from a number of seconds.
110
+ * @param seconds How many seconds the duration should represent.
111
+ * @returns A {@link CalendarDuration} representing the specified number of seconds.
112
+ * @throws {Error} If seconds is NaN.
113
+ */
114
+ static fromSeconds(seconds) {
115
+ return new CalendarDuration(secondsToDurationString(seconds));
116
+ }
117
+ /**
118
+ * Create a duration from a number of days.
119
+ * @param days How many days the duration should represent.
120
+ * @returns A {@link CalendarDuration} representing the specified number of days.
121
+ * @throws {Error} If days is NaN.
122
+ */
123
+ static fromDays(days) {
124
+ return new CalendarDuration(daysToDurationString(days));
125
+ }
126
+ /**
127
+ * Create a duration from a number of weeks.
128
+ * @param weeks How many weeks the duration should represent.
129
+ * @returns A {@link CalendarDuration} representing the specified number of weeks.
130
+ * @throws {Error} If weeks is NaN.
131
+ */
132
+ static fromWeeks(weeks) {
133
+ return new CalendarDuration(weeksToDurationString(weeks));
134
+ }
135
+ /**
136
+ * Creates a duration from the difference between two dates.
137
+ * @param start The start date or time.
138
+ * @param end The end date or time.
139
+ * @returns A {@link CalendarDuration} representing the difference between the two dates.
140
+ * @throws {Error} If the start date and end date have different types.
141
+ */
142
+ static fromDifference(start, end) {
143
+ if ((0, date_1.isDateObject)(start)) {
144
+ // Date
145
+ if ((0, date_1.isDateObject)(end)) {
146
+ const differenceSeconds = (end.getTime() - start.getTime()) / date_1.ONE_SECOND_MS;
147
+ return CalendarDuration.fromSeconds(differenceSeconds);
148
+ }
149
+ }
150
+ else if (start.isFullDay()) {
151
+ // CalendarDate
152
+ if ((0, date_1.isCalendarDateOrTime)(end) && end.isFullDay()) {
153
+ const startMs = start.getDate().getTime();
154
+ const endMs = end.getDate().getTime();
155
+ const differenceDays = (endMs - startMs) / date_1.ONE_DAY_MS;
156
+ return CalendarDuration.fromDays(differenceDays);
157
+ }
158
+ }
159
+ else {
160
+ // CalendarDateTime
161
+ if ((0, date_1.isCalendarDateOrTime)(end) && !end.isFullDay()) {
162
+ const startMs = start.getDate().getTime();
163
+ const endMs = end.getDate().getTime();
164
+ const differenceSeconds = (endMs - startMs) / date_1.ONE_SECOND_MS;
165
+ return CalendarDuration.fromSeconds(differenceSeconds);
166
+ }
167
+ }
168
+ throw new Error('Start and end dates must be of the same type');
169
+ }
170
+ }
171
+ exports.CalendarDuration = CalendarDuration;
172
+ /**
173
+ * Convert time units to a duration string.
174
+ *
175
+ * A duration is considered negative if any unit is less than 0.
176
+ * @param weeks How many weeks the duration should represent.
177
+ * @param days The days part of the duration.
178
+ * @param hours The hours part of the duration.
179
+ * @param minutes The minutes part of the duration.
180
+ * @param seconds The seconds part of the duration.
181
+ * @returns A string representing the duration in the format `P[n]W` or `P[n]DT[n]H[n]M[n]S` where values may be omitted if 0, prefixed with `-` if negative.
182
+ * @throws {Error} If weeks are combined with other values.
183
+ * @throws {Error} If any unit is NaN.
184
+ */
185
+ function formatDurationString(weeks, days, hours, minutes, seconds) {
186
+ let prefix = '';
187
+ let durationString = prefix + 'P';
188
+ let hasTime = false;
189
+ let isEmpty = true;
190
+ const appendUnit = (time, unit) => {
191
+ if (time === undefined)
192
+ return;
193
+ if (isNaN(time)) {
194
+ throw new Error(`${unit} must not be NaN`);
195
+ }
196
+ if (time < 0)
197
+ prefix = '-';
198
+ const absTime = Math.abs(Math.floor(time));
199
+ durationString += absTime + unit.charAt(0);
200
+ isEmpty = false;
201
+ };
202
+ const appendTimeUnit = (time, unit) => {
203
+ if (time === undefined)
204
+ return;
205
+ if (!hasTime) {
206
+ durationString += 'T';
207
+ hasTime = true;
208
+ }
209
+ appendUnit(time, unit);
210
+ };
211
+ // Add units
212
+ if (weeks !== undefined) {
213
+ if (days !== undefined ||
214
+ hours !== undefined ||
215
+ minutes !== undefined ||
216
+ seconds !== undefined) {
217
+ throw new Error('Cannot combine weeks with other units in duration string');
218
+ }
219
+ appendUnit(weeks, 'Weeks');
220
+ }
221
+ appendUnit(days, 'Days');
222
+ appendTimeUnit(hours, 'Hours');
223
+ if (minutes !== undefined) {
224
+ appendTimeUnit(minutes, 'Minutes');
225
+ }
226
+ else if (hours !== undefined && seconds !== undefined) {
227
+ appendTimeUnit(0, 'Minutes');
228
+ }
229
+ appendTimeUnit(seconds, 'Seconds');
230
+ if (isEmpty) {
231
+ throw new Error('Duration string must not be empty');
232
+ }
233
+ return prefix + durationString;
234
+ }
235
+ /**
236
+ * Convert a number of seconds to a duration string.
237
+ * @param seconds How many seconds the duration should represent.
238
+ * @returns A string representing the duration in the format `PT[n]H[n]M[n]S` where values may be omitted if 0, prefixed with `-` if negative.
239
+ * @throws {Error} If seconds is NaN.
240
+ */
241
+ function secondsToDurationString(seconds) {
242
+ if (isNaN(seconds))
243
+ throw new Error('Seconds must not be NaN');
244
+ seconds = Math.floor(seconds);
245
+ const absSeconds = Math.abs(seconds);
246
+ const minutes = Math.floor(absSeconds / 60);
247
+ const hours = Math.floor(minutes / 60);
248
+ let secondsValue = seconds % 60;
249
+ let minutesValue = minutes % 60;
250
+ let hoursValue = hours;
251
+ if (hoursValue === 0)
252
+ hoursValue = undefined;
253
+ if (minutesValue === 0)
254
+ minutesValue = undefined;
255
+ if (secondsValue === 0 && !(minutesValue === undefined && hoursValue === undefined))
256
+ secondsValue = undefined;
257
+ return formatDurationString(undefined, undefined, hoursValue, minutesValue, secondsValue);
258
+ }
259
+ /**
260
+ * Convert a number of days to a duration string.
261
+ * @param days How many days the duration should represent.
262
+ * @returns A string representing the duration in the format `P[n]D`, prefixed with `-` if negative.
263
+ * @throws {Error} If days is NaN.
264
+ */
265
+ function daysToDurationString(days) {
266
+ return formatDurationString(undefined, days, undefined, undefined, undefined);
267
+ }
268
+ /**
269
+ * Convert a number of weeks to a duration string.
270
+ * @param weeks How many weeks the duration should represent.
271
+ * @returns A string representing the duration in the format `P[n]W`, prefixed with `-` if negative.
272
+ * @throws {Error} If weeks is NaN.
273
+ */
274
+ function weeksToDurationString(weeks) {
275
+ return formatDurationString(weeks, undefined, undefined, undefined, undefined);
276
+ }
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZHVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa05BLG9EQXdEQztBQVFELDBEQXNCQztBQVFELG9EQVFDO0FBUUQsc0RBUUM7QUF4VUQsaUNBVWU7QUFDZix5Q0FBNkM7QUFJN0M7O0dBRUc7QUFDSCxNQUFhLGdCQUFnQjtJQUN6QixLQUFLLENBQVM7SUFDZCxJQUFJLENBQVM7SUFDYixLQUFLLENBQVM7SUFDZCxPQUFPLENBQVM7SUFDaEIsT0FBTyxDQUFTO0lBRWhCLFlBQVksUUFBbUM7UUFDM0MsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixJQUFBLDJCQUFnQixFQUFDLFFBQVEsQ0FBQyxDQUFBO1lBRTFCLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM1RCxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQTtZQUNuQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQzFDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7Z0JBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQWlCLENBQUE7Z0JBQ3BDLFFBQVEsSUFBSSxFQUFFLENBQUM7b0JBQ1gsS0FBSyxHQUFHO3dCQUNKLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLGtCQUFrQixDQUFBO3dCQUN2QyxNQUFLO29CQUNULEtBQUssR0FBRzt3QkFDSixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssR0FBRyxrQkFBa0IsQ0FB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
package/lib/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './component';
2
2
  export * from './components';
3
3
  export * from './date';
4
+ export * from './duration';
4
5
  export * from './io';
5
6
  export * from './parse';
6
7
  export * from './property';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
package/lib/index.js CHANGED
@@ -17,7 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./component"), exports);
18
18
  __exportStar(require("./components"), exports);
19
19
  __exportStar(require("./date"), exports);
20
+ __exportStar(require("./duration"), exports);
20
21
  __exportStar(require("./io"), exports);
21
22
  __exportStar(require("./parse"), exports);
22
23
  __exportStar(require("./property"), exports);
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUEyQjtBQUMzQiwrQ0FBNEI7QUFDNUIseUNBQXNCO0FBQ3RCLHVDQUFvQjtBQUNwQiwwQ0FBdUI7QUFDdkIsNkNBQTBCIn0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUEyQjtBQUMzQiwrQ0FBNEI7QUFDNUIseUNBQXNCO0FBQ3RCLDZDQUEwQjtBQUMxQix1Q0FBb0I7QUFDcEIsMENBQXVCO0FBQ3ZCLDZDQUEwQiJ9