iamcal 1.0.2 → 1.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/README.md +7 -3
- package/lib/index.d.ts +130 -16
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +356 -20
- package/lib/parse.d.ts +5 -0
- package/lib/parse.d.ts.map +1 -1
- package/lib/parse.js +25 -1
- package/lib/types.d.ts +6 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +3 -0
- package/package.json +16 -5
- package/src/index.ts +445 -33
- package/src/parse.ts +24 -0
- package/src/types.ts +5 -0
package/README.md
CHANGED
|
@@ -10,9 +10,11 @@ A library for reading, modifying and writing [ICalendar](https://en.wikipedia.or
|
|
|
10
10
|
npm install iamcal
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
## Getting started
|
|
13
|
+
## Getting started
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
### Parsing and editing a calendar
|
|
16
|
+
|
|
17
|
+
This code:
|
|
16
18
|
|
|
17
19
|
```typescript
|
|
18
20
|
import { Calendar } from 'iamcal'
|
|
@@ -58,4 +60,6 @@ DTSTART:20241211T200000Z
|
|
|
58
60
|
DTEND:20241211T230000Z
|
|
59
61
|
END:VEVENT
|
|
60
62
|
END:VCALENDAR
|
|
61
|
-
```
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Creating a new calendar
|
package/lib/index.d.ts
CHANGED
|
@@ -1,36 +1,150 @@
|
|
|
1
|
-
|
|
2
|
-
name: string;
|
|
3
|
-
params: string[];
|
|
4
|
-
value: string;
|
|
5
|
-
}
|
|
1
|
+
import { Property } from './types';
|
|
6
2
|
export declare class Component {
|
|
7
3
|
name: string;
|
|
8
|
-
properties:
|
|
9
|
-
components:
|
|
10
|
-
constructor(name: string, properties?:
|
|
4
|
+
properties: Property[];
|
|
5
|
+
components: Component[];
|
|
6
|
+
constructor(name: string, properties?: Property[], components?: Component[]);
|
|
11
7
|
serialize(): string;
|
|
12
8
|
getProperty(name: string): Property | null;
|
|
13
|
-
setProperty(name: string, value: string):
|
|
9
|
+
setProperty(name: string, value: string): this;
|
|
10
|
+
removePropertiesWithName(name: string): this | undefined;
|
|
14
11
|
getPropertyParams(name: string): string[] | null;
|
|
15
|
-
setPropertyParams(name: string, params: string[]):
|
|
12
|
+
setPropertyParams(name: string, params: string[]): this;
|
|
13
|
+
addComponent(component: Component): this;
|
|
14
|
+
/**
|
|
15
|
+
* Remove a component from this component
|
|
16
|
+
* @returns `true` if the component was removed. `false` if the component was not present
|
|
17
|
+
*/
|
|
18
|
+
removeComponent(component: Component): boolean;
|
|
19
|
+
getComponents(name: string): Component[];
|
|
16
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Represents a VCALENDAR component, the root component of an iCalendar file.
|
|
23
|
+
*/
|
|
17
24
|
export declare class Calendar extends Component {
|
|
18
25
|
name: string;
|
|
26
|
+
/**
|
|
27
|
+
* @param prodid A unique identifier of the program creating the calendar.
|
|
28
|
+
*
|
|
29
|
+
* Example: `-//Google Inc//Google Calendar 70.9054//EN`
|
|
30
|
+
*/
|
|
31
|
+
constructor(prodid: string);
|
|
32
|
+
/**
|
|
33
|
+
* @param prodid A unique identifier of the program creating the calendar.
|
|
34
|
+
*
|
|
35
|
+
* Example: `-//Google Inc//Google Calendar 70.9054//EN`
|
|
36
|
+
* @param version The version of the iCalendar specification that this calendar uses.
|
|
37
|
+
*/
|
|
38
|
+
constructor(prodid: string, version: string);
|
|
39
|
+
/**
|
|
40
|
+
* @param component A VCALENDAR component.
|
|
41
|
+
*/
|
|
42
|
+
constructor(component: Component);
|
|
43
|
+
events(): CalendarEvent[];
|
|
44
|
+
removeEvent(event: CalendarEvent): boolean;
|
|
45
|
+
removeEvent(uid: string): boolean;
|
|
46
|
+
prodId(): string;
|
|
47
|
+
setProdId(value: string): this;
|
|
48
|
+
version(): string;
|
|
49
|
+
setVersion(value: string): this;
|
|
50
|
+
calScale(): string | undefined;
|
|
51
|
+
setCalScale(value: string): this;
|
|
52
|
+
removeCalScale(): void;
|
|
53
|
+
method(): string | undefined;
|
|
54
|
+
setMethod(value: string): void;
|
|
55
|
+
removeMethod(): void;
|
|
56
|
+
calendarName(): string | undefined;
|
|
57
|
+
setCalendarName(value: string): void;
|
|
58
|
+
removeCalendarName(): void;
|
|
59
|
+
calendarDescription(): string | undefined;
|
|
60
|
+
setCalendarDescription(value: string): this;
|
|
61
|
+
removeCalendarDescription(): void;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Represents a VTIMEZONE component, containing time zone definitions.
|
|
65
|
+
*/
|
|
66
|
+
export declare class TimeZone extends Component {
|
|
67
|
+
constructor(id: string);
|
|
19
68
|
constructor(component: Component);
|
|
20
|
-
|
|
69
|
+
id(): string;
|
|
70
|
+
setId(value: string): this;
|
|
71
|
+
lastMod(): Date | undefined;
|
|
72
|
+
setLastMod(value: Date): this;
|
|
73
|
+
removeLastMod(): void;
|
|
74
|
+
url(): string | undefined;
|
|
75
|
+
setUrl(value: string): this;
|
|
76
|
+
removeUrl(): void;
|
|
77
|
+
/** Get all time offsets. */
|
|
78
|
+
offsets(): TimeZoneOffset[];
|
|
79
|
+
/** Get standard/winter time offsets. */
|
|
80
|
+
standardOffsets(): TimeZoneOffset[];
|
|
81
|
+
/** Get daylight savings time offsets. */
|
|
82
|
+
daylightOffsets(): TimeZoneOffset[];
|
|
83
|
+
}
|
|
84
|
+
export type OffsetType = 'DAYLIGHT' | 'STANDARD';
|
|
85
|
+
type Digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
|
|
86
|
+
export type Offset = `${'-' | '+'}${Digit}${Digit}${Digit}${Digit}`;
|
|
87
|
+
/** Represents a STANDARD or DAYLIGHT component, defining a time zone offset. */
|
|
88
|
+
declare class TimeZoneOffset extends Component {
|
|
89
|
+
/**
|
|
90
|
+
*
|
|
91
|
+
* @param type If this is a STANDARD or DAYLIGHT component.
|
|
92
|
+
* @param start From when this offset is active.
|
|
93
|
+
* @param offsetFrom The offset that is in use prior to this time zone observance.
|
|
94
|
+
* @param offsetTo The offset that is in use during this time zone observance.
|
|
95
|
+
*/
|
|
96
|
+
constructor(type: OffsetType, start: Date, offsetFrom: Offset, offsetTo: Offset);
|
|
97
|
+
constructor(component: Component);
|
|
98
|
+
start(): Date;
|
|
99
|
+
setStart(value: Date, fullDay?: boolean): this;
|
|
100
|
+
offsetFrom(): Offset;
|
|
101
|
+
setOffsetFrom(value: Offset): this;
|
|
102
|
+
offsetTo(): Offset;
|
|
103
|
+
setOffsetTo(value: Offset): this;
|
|
104
|
+
comment(): string | undefined;
|
|
105
|
+
setComment(value: string): this;
|
|
106
|
+
removeComment(): void;
|
|
107
|
+
timeZoneName(): string | undefined;
|
|
108
|
+
setTimeZoneName(value: string): this;
|
|
109
|
+
removeTimeZoneName(): void;
|
|
21
110
|
}
|
|
22
111
|
export declare class CalendarEvent extends Component {
|
|
23
112
|
name: string;
|
|
113
|
+
constructor(uid: string, dtstamp: Date);
|
|
24
114
|
constructor(component: Component);
|
|
115
|
+
stamp(): Date;
|
|
116
|
+
setStamp(value: Date, fullDay?: boolean): this;
|
|
117
|
+
uid(): string;
|
|
118
|
+
setUid(value: string): this;
|
|
25
119
|
summary(): string;
|
|
26
|
-
setSummary(value: string):
|
|
120
|
+
setSummary(value: string): this;
|
|
121
|
+
removeSummary(): void;
|
|
27
122
|
description(): string;
|
|
28
|
-
setDescription(value: string):
|
|
123
|
+
setDescription(value: string): this;
|
|
124
|
+
removeDescription(): void;
|
|
29
125
|
location(): string | undefined;
|
|
30
|
-
setLocation(value: string):
|
|
126
|
+
setLocation(value: string): this;
|
|
127
|
+
removeLocation(): void;
|
|
128
|
+
/**
|
|
129
|
+
* Get the start of the event.
|
|
130
|
+
* If set as a full day the time will be at the start of the day.
|
|
131
|
+
*/
|
|
31
132
|
start(): Date;
|
|
32
|
-
setStart(value: Date):
|
|
133
|
+
setStart(value: Date, fullDay?: boolean): this;
|
|
134
|
+
removeStart(): void;
|
|
135
|
+
/**
|
|
136
|
+
* Get the end of the event.
|
|
137
|
+
* If set as a full day the time will be at the end of the day.
|
|
138
|
+
*/
|
|
33
139
|
end(): Date;
|
|
34
|
-
setEnd(value: Date):
|
|
140
|
+
setEnd(value: Date, fullDay?: boolean): this;
|
|
141
|
+
removeEnd(): void;
|
|
142
|
+
created(): Date | undefined;
|
|
143
|
+
setCreated(value: Date): this;
|
|
144
|
+
removeCreated(): void;
|
|
145
|
+
geo(): [number, number] | undefined;
|
|
146
|
+
setGeo(latitude: number, longitude: number): this;
|
|
147
|
+
removeGeo(): void;
|
|
35
148
|
}
|
|
149
|
+
export {};
|
|
36
150
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|