iamcal 2.0.0 → 2.1.1

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 (50) hide show
  1. package/README.md +47 -11
  2. package/lib/component.d.ts +46 -9
  3. package/lib/component.d.ts.map +1 -1
  4. package/lib/component.js +105 -17
  5. package/lib/components/Calendar.d.ts +35 -14
  6. package/lib/components/Calendar.d.ts.map +1 -1
  7. package/lib/components/Calendar.js +43 -15
  8. package/lib/components/CalendarEvent.d.ts +84 -22
  9. package/lib/components/CalendarEvent.d.ts.map +1 -1
  10. package/lib/components/CalendarEvent.js +142 -67
  11. package/lib/components/TimeZone.d.ts +62 -39
  12. package/lib/components/TimeZone.d.ts.map +1 -1
  13. package/lib/components/TimeZone.js +81 -86
  14. package/lib/components/TimeZoneOffset.d.ts +103 -0
  15. package/lib/components/TimeZoneOffset.d.ts.map +1 -0
  16. package/lib/components/TimeZoneOffset.js +148 -0
  17. package/lib/components/index.d.ts +1 -0
  18. package/lib/components/index.d.ts.map +1 -1
  19. package/lib/components/index.js +2 -1
  20. package/lib/date.d.ts +165 -0
  21. package/lib/date.d.ts.map +1 -0
  22. package/lib/date.js +373 -0
  23. package/lib/index.d.ts +3 -1
  24. package/lib/index.d.ts.map +1 -1
  25. package/lib/index.js +4 -2
  26. package/lib/io.d.ts +9 -7
  27. package/lib/io.d.ts.map +1 -1
  28. package/lib/io.js +16 -11
  29. package/lib/parse.d.ts +32 -15
  30. package/lib/parse.d.ts.map +1 -1
  31. package/lib/parse.js +55 -53
  32. package/lib/patterns.d.ts +36 -0
  33. package/lib/patterns.d.ts.map +1 -0
  34. package/lib/patterns.js +50 -0
  35. package/lib/property.d.ts +149 -0
  36. package/lib/property.d.ts.map +1 -0
  37. package/lib/property.js +450 -0
  38. package/package.json +50 -38
  39. package/src/component.ts +132 -23
  40. package/src/components/Calendar.ts +58 -20
  41. package/src/components/CalendarEvent.ts +170 -66
  42. package/src/components/TimeZone.ts +86 -96
  43. package/src/components/TimeZoneOffset.ts +187 -0
  44. package/src/components/index.ts +2 -1
  45. package/src/date.ts +395 -0
  46. package/src/index.ts +3 -1
  47. package/src/io.ts +16 -11
  48. package/src/parse.ts +71 -51
  49. package/src/patterns.ts +69 -0
  50. package/src/property.ts +492 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":"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"}
package/lib/date.js ADDED
@@ -0,0 +1,373 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
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;
37
+ exports.padZeros = padZeros;
38
+ exports.padYear = padYear;
39
+ exports.padMonth = padMonth;
40
+ exports.padDay = padDay;
41
+ exports.padHours = padHours;
42
+ exports.padMinutes = padMinutes;
43
+ exports.padSeconds = padSeconds;
44
+ exports.parseDateProperty = parseDateProperty;
45
+ exports.toTimeString = toTimeString;
46
+ exports.toDateString = toDateString;
47
+ exports.toDateTimeString = toDateTimeString;
48
+ exports.toDateTimeStringUTC = toDateTimeStringUTC;
49
+ exports.parseDateTimeString = parseDateTimeString;
50
+ exports.parseDateString = parseDateString;
51
+ exports.convertDate = convertDate;
52
+ const patterns = __importStar(require("./patterns"));
53
+ const property_1 = require("./property");
54
+ exports.ONE_SECOND_MS = 1000;
55
+ exports.ONE_MINUTE_MS = 60 * exports.ONE_SECOND_MS;
56
+ exports.ONE_HOUR_MS = 60 * exports.ONE_MINUTE_MS;
57
+ exports.ONE_DAY_MS = 24 * exports.ONE_HOUR_MS;
58
+ /**
59
+ * Represents a DATE value as defined by RFC5545.
60
+ * This is a date without a time, representing a whole day.
61
+ */
62
+ class CalendarDate {
63
+ date;
64
+ constructor(date) {
65
+ if (typeof date === 'object') {
66
+ if (Object.prototype.toString.call(date) === '[object Date]') {
67
+ this.date = date;
68
+ }
69
+ else {
70
+ this.date = date.getDate();
71
+ }
72
+ }
73
+ else {
74
+ try {
75
+ this.date = parseDateString(date);
76
+ }
77
+ catch {
78
+ this.date = new Date(date);
79
+ }
80
+ }
81
+ if (!this.date || isNaN(this.date.getTime())) {
82
+ throw new Error('Invalid date provided');
83
+ }
84
+ this.date.setHours(0, 0, 0, 0);
85
+ }
86
+ toProperty(name) {
87
+ return {
88
+ name,
89
+ params: ['VALUE=DATE'],
90
+ value: this.getValue(),
91
+ };
92
+ }
93
+ getValue() {
94
+ return toDateString(this.date);
95
+ }
96
+ getDate() {
97
+ return new Date(this.date);
98
+ }
99
+ isFullDay() {
100
+ return true;
101
+ }
102
+ }
103
+ exports.CalendarDate = CalendarDate;
104
+ class CalendarDateTime {
105
+ date;
106
+ constructor(date) {
107
+ if (typeof date === 'object') {
108
+ if (Object.prototype.toString.call(date) === '[object Date]') {
109
+ this.date = date;
110
+ }
111
+ else {
112
+ this.date = date.getDate();
113
+ }
114
+ }
115
+ else {
116
+ try {
117
+ this.date = parseDateTimeString(date);
118
+ }
119
+ catch {
120
+ this.date = new Date(date);
121
+ }
122
+ }
123
+ if (!this.date || isNaN(this.date.getTime())) {
124
+ throw new Error('Invalid date provided');
125
+ }
126
+ }
127
+ toProperty(name) {
128
+ return {
129
+ name,
130
+ params: [],
131
+ value: this.getValue(),
132
+ };
133
+ }
134
+ getValue() {
135
+ return toDateTimeString(this.date);
136
+ }
137
+ getDate() {
138
+ return new Date(this.date);
139
+ }
140
+ isFullDay() {
141
+ return false;
142
+ }
143
+ }
144
+ exports.CalendarDateTime = CalendarDateTime;
145
+ /**
146
+ * Pad a number with leading zeros.
147
+ * @param num The number to pad with zeros.
148
+ * @param length How many digits the resulting string should have.
149
+ * @returns The padded string.
150
+ * @throws If the digits of `num` is greater than `length`.
151
+ * @throws If `num` is NaN, a decimal or negative.
152
+ * @throws If `length` is not NaN, a decimal or less than 1.
153
+ */
154
+ function padZeros(num, length) {
155
+ if (isNaN(num))
156
+ throw new Error('Number must not be NaN');
157
+ if (isNaN(length))
158
+ throw new Error('Length must not be NaN');
159
+ if (num < 0)
160
+ throw new Error('Number must not be negative');
161
+ if (length <= 0)
162
+ throw new Error('Length must not be less than 1');
163
+ if (num % 1 !== 0)
164
+ throw new Error('Number must be an integer');
165
+ if (length % 1 !== 0)
166
+ throw new Error('Length must be an integer');
167
+ const digits = Math.floor(Math.log10(num)) + 1;
168
+ if (num !== 0 && digits > length)
169
+ throw new Error('Number must not have more digits than length');
170
+ return String(num).padStart(length, '0');
171
+ }
172
+ /**
173
+ * Pad zeros for the year component of a date string.
174
+ * @param year The year, should be positive.
175
+ * @returns The 4-digit padded year.
176
+ */
177
+ function padYear(year) {
178
+ return padZeros(year, 4);
179
+ }
180
+ /**
181
+ * Pad zeros for the month component of a date string.
182
+ * @param month The month, should be between 1 and 12.
183
+ * @returns The 2-digit padded month.
184
+ */
185
+ function padMonth(month) {
186
+ return padZeros(month, 2);
187
+ }
188
+ /**
189
+ * Pad zeros for the day component of a date string.
190
+ * @param day The day, should be between 1 and 31.
191
+ * @returns The 2-digit padded day.
192
+ */
193
+ function padDay(day) {
194
+ return padZeros(day, 2);
195
+ }
196
+ /**
197
+ * Pad zeros for the hours component of a time string.
198
+ * @param hours The hours, should be between 0 and 23.
199
+ * @returns The 2-digit padded hours.
200
+ */
201
+ function padHours(hours) {
202
+ return padZeros(hours, 2);
203
+ }
204
+ /**
205
+ * Pad zeros for the minutes component of a time string.
206
+ * @param minutes The minutes, should be between 0 and 59.
207
+ * @returns The 2-digit padded minutes.
208
+ */
209
+ function padMinutes(minutes) {
210
+ return padZeros(minutes, 2);
211
+ }
212
+ /**
213
+ * Pad zeros for the seconds component of a time string.
214
+ * @param seconds The seconds, should be between 0 and 59.
215
+ * @returns The 2-digit padded seconds.
216
+ */
217
+ function padSeconds(seconds) {
218
+ return padZeros(seconds, 2);
219
+ }
220
+ /**
221
+ * Parse a date property into a {@link CalendarDateOrTime}.
222
+ * @param dateProperty The property to parse.
223
+ * @param defaultType The default value type to be used if the property does not have an explicit value type.
224
+ * @returns The parsed date as a {@link CalendarDateOrTime}.
225
+ * @throws If the value is invalid for the value type.
226
+ * @throws If the value type is not `DATE-TIME` or `DATE`.
227
+ */
228
+ function parseDateProperty(dateProperty, defaultType = 'DATE-TIME') {
229
+ const value = dateProperty.value;
230
+ const valueType = (0, property_1.getPropertyValueType)(dateProperty, defaultType);
231
+ if (valueType === 'DATE-TIME') {
232
+ return new CalendarDateTime(value);
233
+ }
234
+ else if (valueType === 'DATE') {
235
+ return new CalendarDate(value);
236
+ }
237
+ else {
238
+ throw new Error(`Illegal value type for date '${valueType}'`);
239
+ }
240
+ }
241
+ /**
242
+ * Format a date as an iCalendar compatible time string. The day of the date is
243
+ * ignored.
244
+ * @param date The date to convert to a time string.
245
+ * @returns The time of the date formatted according to the iCalendar specification.
246
+ * @throws If the date is invalid.
247
+ */
248
+ function toTimeString(date) {
249
+ if (isNaN(date.getTime()))
250
+ throw new Error('Date is invalid');
251
+ return `${padHours(date.getHours())}${padMinutes(date.getMinutes())}${padSeconds(date.getSeconds())}`;
252
+ }
253
+ /**
254
+ * Format a date as an iCalendar compatible date string.
255
+ * @param date The date to convert to a date string.
256
+ * @returns A date string formatted according to the iCalendar specification.
257
+ * @throws If the date is invalid.
258
+ */
259
+ function toDateString(date) {
260
+ if (isNaN(date.getTime()))
261
+ throw new Error('Date is invalid');
262
+ return `${padYear(date.getFullYear())}${padMonth(date.getMonth() + 1)}${padDay(date.getDate())}`;
263
+ }
264
+ /**
265
+ * Format a date as an iCalendar compatible date-time string.
266
+ * @param date The date to convert to a date-time string.
267
+ * @returns A date-time string formatted according to the iCalendar specification.
268
+ * @throws If the date is invalid.
269
+ */
270
+ function toDateTimeString(date) {
271
+ if (isNaN(date.getTime()))
272
+ throw new Error('Date is invalid');
273
+ return `${toDateString(date)}T${toTimeString(date)}`;
274
+ }
275
+ /**
276
+ * Format a date as an iCalendar compatible date-time string. Offsets the date
277
+ * to UTC using `timeZoneOffset`.
278
+ * @param date The date in local time to convert to UTC and a date-time string.
279
+ * @param timeZoneOffset The timezone offset in minutes.
280
+ * @returns A UTC date-time string formatted according to the iCalendar specification.
281
+ * @throws If the date is invalid.
282
+ * @throws If the offset is invalid.
283
+ * @example
284
+ * // The timezone offset for CET (Central European Time)
285
+ * const timeZoneOffsetCET = -60 // +01:00
286
+ * const date = new Date('2025-08-07T12:00:00') // The time in CET
287
+ * // Returns "20250807T110000Z"
288
+ * const utcDate = toDateTimeStringUTC(date, timeZoneOffsetCET)
289
+ */
290
+ function toDateTimeStringUTC(date, timeZoneOffset) {
291
+ if (isNaN(date.getTime()))
292
+ throw new Error('Date is invalid');
293
+ if (isNaN(timeZoneOffset))
294
+ throw new Error('Time zone offset cannot be NaN');
295
+ const utcDate = new Date(date.getTime() + timeZoneOffset * exports.ONE_MINUTE_MS);
296
+ return `${toDateString(utcDate)}T${toTimeString(utcDate)}Z`;
297
+ }
298
+ /**
299
+ * Parse a date-time string to a `Date`.
300
+ * @param dateTime A date-time string formatted according to the iCalendar specification.
301
+ * @returns The parsed date-time.
302
+ * @throws If the date is invalid.
303
+ */
304
+ function parseDateTimeString(dateTime) {
305
+ if (!patterns.valueTypeDateTime.test(dateTime)) {
306
+ throw new Error('Date-time has invalid format');
307
+ }
308
+ const year = parseInt(dateTime.substring(0, 4));
309
+ const monthIndex = parseInt(dateTime.substring(4, 6)) - 1;
310
+ const day = parseInt(dateTime.substring(6, 8));
311
+ if (monthIndex < 0 || monthIndex > 11) {
312
+ throw new Error('Date-time is invalid');
313
+ }
314
+ const daysInMonth = new Date(year, monthIndex + 1, 0).getDate();
315
+ if (day < 1 || day > daysInMonth) {
316
+ throw new Error('Date-time is invalid');
317
+ }
318
+ const hours = parseInt(dateTime.substring(9, 11));
319
+ if (hours < 0 || hours > 23) {
320
+ throw new Error('Date-time is invalid');
321
+ }
322
+ const minutes = parseInt(dateTime.substring(11, 13));
323
+ if (minutes < 0 || minutes > 59) {
324
+ throw new Error('Date-time is invalid');
325
+ }
326
+ const seconds = parseInt(dateTime.substring(13, 15));
327
+ if (seconds < 0 || seconds > 59) {
328
+ throw new Error('Date-time is invalid');
329
+ }
330
+ if (dateTime.endsWith('Z')) {
331
+ const time = Date.UTC(year, monthIndex, day, hours, minutes, seconds);
332
+ return new Date(time);
333
+ }
334
+ else {
335
+ const parsedDate = new Date(year, monthIndex, day, hours, minutes, seconds);
336
+ return parsedDate;
337
+ }
338
+ }
339
+ /**
340
+ * Parse a date string to a `Date`.
341
+ * @param date A date-time string formatted according to the iCalendar specification.
342
+ * @returns The parsed date.
343
+ * @throws If the date is invalid.
344
+ */
345
+ function parseDateString(date) {
346
+ if (!patterns.matchesWholeString(patterns.valueTypeDate, date)) {
347
+ throw new Error('Date has invalid format');
348
+ }
349
+ const year = parseInt(date.substring(0, 4));
350
+ const monthIndex = parseInt(date.substring(4, 6)) - 1;
351
+ const day = parseInt(date.substring(6, 8));
352
+ if (monthIndex < 0 || monthIndex > 11) {
353
+ throw new Error('Date is invalid');
354
+ }
355
+ const daysInMonth = new Date(year, monthIndex + 1, 0).getDate();
356
+ if (day < 1 || day > daysInMonth) {
357
+ throw new Error('Date is invalid');
358
+ }
359
+ const parsedDate = new Date(year, monthIndex, day);
360
+ return parsedDate;
361
+ }
362
+ function convertDate(date, fullDay = false) {
363
+ if (Object.prototype.toString.call(date) === '[object Date]') {
364
+ if (fullDay)
365
+ return new CalendarDate(date);
366
+ else
367
+ return new CalendarDateTime(date);
368
+ }
369
+ else {
370
+ return date;
371
+ }
372
+ }
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBJQSw0QkFhQztBQU9ELDBCQUVDO0FBT0QsNEJBRUM7QUFPRCx3QkFFQztBQU9ELDRCQUVDO0FBT0QsZ0NBRUM7QUFPRCxnQ0FFQztBQVVELDhDQWNDO0FBU0Qsb0NBR0M7QUFRRCxvQ0FHQztBQVFELDRDQUdDO0FBaUJELGtEQVFDO0FBUUQsa0RBNENDO0FBUUQsMENBbUJDO0FBaUJELGtDQVVDO0FBMVlELHFEQUFzQztBQUN0Qyx5Q0FBZ0U7QUFFbkQsUUFBQSxhQUFhLEdBQUcsSUFBSSxDQUFBO0FBQ3BCLFFBQUEsYUFBYSxHQUFHLEVBQUUsR0FBRyxxQkFBYSxDQUFBO0FBQ2xDLFFBQUEsV0FBVyxHQUFHLEVBQUUsR0FBRyxxQkFBYSxDQUFBO0FBQ2hDLFFBQUEsVUFBVSxHQUFHLEVBQUUsR0FBRyxtQkFBVyxDQUFBO0FBNkIxQzs7O0dBR0c7QUFDSCxNQUFhLFlBQVk7SUFDYixJQUFJLENBQU07SUFFbEIsWUFBWSxJQUF3QztRQUNoRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLGVBQWUsRUFBRSxDQUFDO2dCQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQVksQ0FBQTtZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLElBQUksR0FBSSxJQUEyQixDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3RELENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQztnQkFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNyQyxDQUFDO1lBQUMsTUFBTSxD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
package/lib/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './component';
2
+ export * from './components';
3
+ export * from './date';
2
4
  export * from './io';
3
5
  export * from './parse';
4
- export * from './components';
6
+ export * from './property';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,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,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
package/lib/index.js CHANGED
@@ -15,7 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./component"), exports);
18
+ __exportStar(require("./components"), exports);
19
+ __exportStar(require("./date"), exports);
18
20
  __exportStar(require("./io"), exports);
19
21
  __exportStar(require("./parse"), exports);
20
- __exportStar(require("./components"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUEyQjtBQUMzQix1Q0FBb0I7QUFDcEIsMENBQXVCO0FBQ3ZCLCtDQUE0QiJ9
22
+ __exportStar(require("./property"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUEyQjtBQUMzQiwrQ0FBNEI7QUFDNUIseUNBQXNCO0FBQ3RCLHVDQUFvQjtBQUNwQiwwQ0FBdUI7QUFDdkIsNkNBQTBCIn0=
package/lib/io.d.ts CHANGED
@@ -1,16 +1,18 @@
1
1
  import fs from 'fs';
2
2
  import { Calendar } from './components/Calendar';
3
3
  /**
4
- * Read a calendar from a .ical file
5
- * @param path Path to the file to read
6
- * @throws DeserializationError Component must be of valid format
7
- * @throws TypeError Component must be a `VCALENDAR`
4
+ * Read a calendar from a iCalendar file.
5
+ * @param path Path to the file.
6
+ * @returns The calendar deserialized from the file.
7
+ * @throws {DeserializationError} If the file content is not a valid calendar.
8
8
  */
9
9
  export declare function load(path: fs.PathLike): Promise<Calendar>;
10
10
  /**
11
- * Write a calendar to a .ical file
12
- * @param calendar The calendar
13
- * @param path Path to the file to write
11
+ * Write a calendar to a file.
12
+ * @param calendar The calendar to write to file.
13
+ * @param path Path to the file to write.
14
+ * @example
15
+ * dump(myCalendar, 'calendar.ics')
14
16
  */
15
17
  export declare function dump(calendar: Calendar, path: string): Promise<void>;
16
18
  //# sourceMappingURL=io.d.ts.map
package/lib/io.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGhD;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAW/D;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpE"}
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGhD;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAc/D;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpE"}
package/lib/io.js CHANGED
@@ -10,24 +10,29 @@ const readline_1 = __importDefault(require("readline"));
10
10
  const Calendar_1 = require("./components/Calendar");
11
11
  const parse_1 = require("./parse");
12
12
  /**
13
- * Read a calendar from a .ical file
14
- * @param path Path to the file to read
15
- * @throws DeserializationError Component must be of valid format
16
- * @throws TypeError Component must be a `VCALENDAR`
13
+ * Read a calendar from a iCalendar file.
14
+ * @param path Path to the file.
15
+ * @returns The calendar deserialized from the file.
16
+ * @throws {DeserializationError} If the file content is not a valid calendar.
17
17
  */
18
18
  async function load(path) {
19
19
  const stream = fs_1.default.createReadStream(path);
20
- const lines = readline_1.default.createInterface({ input: stream, crlfDelay: Infinity });
21
- const component = await (0, parse_1.deserialize)(lines);
20
+ const lines = readline_1.default.createInterface({
21
+ input: stream,
22
+ crlfDelay: Infinity,
23
+ });
24
+ const component = await (0, parse_1.deserializeComponent)(lines);
22
25
  if (component.name != 'VCALENDAR') {
23
- throw TypeError('Component is not a calendar');
26
+ throw new parse_1.DeserializationError('Component must be a VCALENDAR');
24
27
  }
25
28
  return new Calendar_1.Calendar(component);
26
29
  }
27
30
  /**
28
- * Write a calendar to a .ical file
29
- * @param calendar The calendar
30
- * @param path Path to the file to write
31
+ * Write a calendar to a file.
32
+ * @param calendar The calendar to write to file.
33
+ * @param path Path to the file to write.
34
+ * @example
35
+ * dump(myCalendar, 'calendar.ics')
31
36
  */
32
37
  function dump(calendar, path) {
33
38
  return new Promise(resolve => {
@@ -36,4 +41,4 @@ function dump(calendar, path) {
36
41
  });
37
42
  });
38
43
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFXQSxvQkFXQztBQU9ELG9CQU1DO0FBbkNELDRDQUFtQjtBQUNuQix3REFBK0I7QUFDL0Isb0RBQWdEO0FBQ2hELG1DQUFxQztBQUVyQzs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBaUI7SUFDeEMsTUFBTSxNQUFNLEdBQUcsWUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLGtCQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUU5RSxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsbUJBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQTtJQUUxQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsTUFBTSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsT0FBTyxJQUFJLG1CQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDbEMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixJQUFJLENBQUMsUUFBa0IsRUFBRSxJQUFZO0lBQ2pELE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDekIsWUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUMxQyxPQUFPLEVBQUUsQ0FBQTtRQUNiLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDIn0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFXQSxvQkFjQztBQVNELG9CQU1DO0FBeENELDRDQUFtQjtBQUNuQix3REFBK0I7QUFDL0Isb0RBQWdEO0FBQ2hELG1DQUFvRTtBQUVwRTs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBaUI7SUFDeEMsTUFBTSxNQUFNLEdBQUcsWUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLGtCQUFRLENBQUMsZUFBZSxDQUFDO1FBQ25DLEtBQUssRUFBRSxNQUFNO1FBQ2IsU0FBUyxFQUFFLFFBQVE7S0FDdEIsQ0FBQyxDQUFBO0lBRUYsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFBLDRCQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFBO0lBRW5ELElBQUksU0FBUyxDQUFDLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksNEJBQW9CLENBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBRUQsT0FBTyxJQUFJLG1CQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDbEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLElBQUksQ0FBQyxRQUFrQixFQUFFLElBQVk7SUFDakQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN6QixZQUFFLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFO1lBQzFDLE9BQU8sRUFBRSxDQUFBO1FBQ2IsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMifQ==
package/lib/parse.d.ts CHANGED
@@ -1,33 +1,50 @@
1
- import { Component, Property } from './component';
2
1
  import readline from 'readline';
2
+ import { Component } from './component';
3
3
  import { Calendar, CalendarEvent } from './components';
4
+ /** Represents an error that occurs when deserializing a calendar component. */
4
5
  export declare class DeserializationError extends Error {
5
6
  name: string;
6
7
  }
7
8
  /**
8
- * Deserialize a calendar component
9
- * @param lines the serialized component as a readline interface
9
+ * Deserialize a calendar component.
10
+ * @param lines The serialized component as a **readline** interface.
11
+ * @returns The deserialized calendar component object.
12
+ * @throws {DeserializationError} If the component is invalid.
13
+ */
14
+ export declare function deserializeComponent(lines: readline.Interface): Promise<Component>;
15
+ /**
16
+ * Deserialize a calendar component.
17
+ * @param lines The serialized component as a **readline** interface.
18
+ * @returns The deserialized calendar component object.
19
+ * @throws {DeserializationError} If the component is invalid.
20
+ * @deprecated Use {@link deserializeComponent} instead.
10
21
  */
11
22
  export declare function deserialize(lines: readline.Interface): Promise<Component>;
12
23
  /**
13
- * Deserialize a calendar component
14
- * @param text the serialized component
24
+ * Deserialize a calendar component string.
25
+ * @param text The serialized component.
26
+ * @returns The deserialized component object.
27
+ * @throws {DeserializationError} If the component is invalid.
28
+ */
29
+ export declare function deserializeComponentString(text: string): Promise<Component>;
30
+ /**
31
+ * Deserialize a calendar component string.
32
+ * @param text The serialized component.
33
+ * @returns The deserialized component object.
34
+ * @throws {DeserializationError} If the component is invalid.
35
+ * @deprecated Use {@link deserializeComponentString} instead.
15
36
  */
16
37
  export declare function deserializeString(text: string): Promise<Component>;
17
38
  /**
18
- * Parse a calendar in ICalendar format
19
- * @param text the serialized calendar
20
- * @returns the parsed calendar
39
+ * Parse a serialized calendar.
40
+ * @param text A serialized calendar as you would see in an iCalendar file.
41
+ * @returns The parsed calendar object.
21
42
  */
22
43
  export declare function parseCalendar(text: string): Promise<Calendar>;
23
44
  /**
24
- * Parse an event in ICalendar format
25
- * @param text the serialized event
26
- * @returns the parsed event
45
+ * Parse a serialized calendar event.
46
+ * @param text A serialized event as you would see in an iCalendar file.
47
+ * @returns The parsed event object.
27
48
  */
28
49
  export declare function parseEvent(text: string): Promise<CalendarEvent>;
29
- export declare function parseDate(dateProperty: Property): Date;
30
- export declare function toTimeString(date: Date): string;
31
- export declare function toDateString(date: Date): string;
32
- export declare function toDateTimeString(date: Date): string;
33
50
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,QAAQ,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEtD,qBAAa,oBAAqB,SAAQ,KAAK;IAC3C,IAAI,SAAyB;CAChC;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAsH/E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAIxE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAKnE;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKrE;AAED,wBAAgB,SAAS,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAStD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE/C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE/C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEnD"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEtD,+EAA+E;AAC/E,qBAAa,oBAAqB,SAAQ,KAAK;IAC3C,IAAI,SAAyB;CAChC;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACtC,KAAK,EAAE,QAAQ,CAAC,SAAS,GAC1B,OAAO,CAAC,SAAS,CAAC,CAiIpB;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC7B,KAAK,EAAE,QAAQ,CAAC,SAAS,GAC1B,OAAO,CAAC,SAAS,CAAC,CAEpB;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC5C,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAOpB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAExE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAGnE;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAGrE"}