rrule-rust 3.0.0-alpha.7 → 3.0.0-alpha.8
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/dist/browser/dtstart.d.ts +1 -1
- package/dist/browser/exdate.d.ts +20 -0
- package/dist/browser/exdate.js +47 -0
- package/dist/browser/index.d.ts +2 -0
- package/dist/browser/index.js +2 -0
- package/dist/browser/rdate.d.ts +20 -0
- package/dist/browser/rdate.js +47 -0
- package/dist/browser/rrule-set.d.ts +12 -10
- package/dist/browser/rrule-set.js +11 -9
- package/dist/node/dtstart.d.ts +1 -1
- package/dist/node/exdate.d.ts +20 -0
- package/dist/node/exdate.js +51 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.js +2 -0
- package/dist/node/lib/index.js +2 -0
- package/dist/node/lib/rrule-rust.wasi.cjs +2 -0
- package/dist/node/rdate.d.ts +20 -0
- package/dist/node/rdate.js +51 -0
- package/dist/node/rrule-set.d.ts +12 -10
- package/dist/node/rrule-set.js +11 -9
- package/package.json +15 -15
|
@@ -10,7 +10,7 @@ export interface DtStartLike<DT extends DateTimeLike | DateLike> {
|
|
|
10
10
|
export declare class DtStart<DT extends DateTime<Time> | DateTime<undefined> = DateTime<Time>> {
|
|
11
11
|
readonly datetime: DT;
|
|
12
12
|
readonly tzid?: string;
|
|
13
|
-
constructor(datetime:
|
|
13
|
+
constructor(datetime: DT, tzid?: string);
|
|
14
14
|
constructor(options: DtStartOptions<DT>);
|
|
15
15
|
static fromPlain(plain: DtStartLike<DateTimeLike>): DtStart<DateTime<Time>>;
|
|
16
16
|
static fromPlain(plain: DtStartLike<DateLike>): DtStart<DateTime<undefined>>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DateTime, type Time, type DateTimeLike, type DateLike } from './datetime';
|
|
2
|
+
export interface ExDateOptions<DT extends DateTime<Time> | DateTime<undefined>> {
|
|
3
|
+
values: DT[];
|
|
4
|
+
tzid?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ExDateLike<DT extends DateTimeLike | DateLike> {
|
|
7
|
+
values: DT[];
|
|
8
|
+
tzid?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class ExDate<DT extends DateTime<Time> | DateTime<undefined> = DateTime<Time>> {
|
|
11
|
+
readonly values: DT[];
|
|
12
|
+
readonly tzid?: string;
|
|
13
|
+
constructor(values: DT[], tzid?: string);
|
|
14
|
+
constructor(options: ExDateOptions<DT>);
|
|
15
|
+
static fromPlain(plain: ExDateLike<DateTimeLike>): ExDate<DateTime<Time>>;
|
|
16
|
+
static fromPlain(plain: ExDateLike<DateLike>): ExDate<DateTime<undefined>>;
|
|
17
|
+
setTzid(tzid: string | undefined): ExDate<DT>;
|
|
18
|
+
setValues<NDT extends DateTime<Time> | DateTime<undefined>>(datetimes: NDT[]): ExDate<NDT>;
|
|
19
|
+
toPlain<DTL extends DateTimeLike | DateLike = DT extends DateTime<Time> ? DateTimeLike : DateLike>(): ExDateLike<DTL>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { DateTime, } from './datetime';
|
|
2
|
+
import { ExDate as Rust } from './lib';
|
|
3
|
+
export class ExDate {
|
|
4
|
+
constructor(valuesOrOptions, tzid) {
|
|
5
|
+
if (!Array.isArray(valuesOrOptions)) {
|
|
6
|
+
this.values = valuesOrOptions.values;
|
|
7
|
+
this.tzid = valuesOrOptions.tzid;
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
this.values = valuesOrOptions;
|
|
11
|
+
this.tzid = tzid;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
static fromRust(rust) {
|
|
18
|
+
const rrule = new this(rust.values.map((dt) => DateTime.fromNumeric(dt)), rust.tzid ?? undefined);
|
|
19
|
+
rrule.rust = rust;
|
|
20
|
+
return rrule;
|
|
21
|
+
}
|
|
22
|
+
static fromPlain(plain) {
|
|
23
|
+
return new this({
|
|
24
|
+
values: plain.values.map((dt) => DateTime.fromPlain(dt)),
|
|
25
|
+
tzid: plain.tzid,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
setTzid(tzid) {
|
|
29
|
+
return new ExDate(this.values, tzid);
|
|
30
|
+
}
|
|
31
|
+
setValues(datetimes) {
|
|
32
|
+
return new ExDate(datetimes, this.tzid);
|
|
33
|
+
}
|
|
34
|
+
toPlain() {
|
|
35
|
+
return {
|
|
36
|
+
values: this.values.map((dt) => dt.toPlain()),
|
|
37
|
+
tzid: this.tzid,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
toRust() {
|
|
44
|
+
this.rust ??= new Rust(this.values.map((dt) => dt.toNumeric()), this.tzid);
|
|
45
|
+
return this.rust;
|
|
46
|
+
}
|
|
47
|
+
}
|
package/dist/browser/index.d.ts
CHANGED
package/dist/browser/index.js
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DateTime, type Time, type DateTimeLike, type DateLike } from './datetime';
|
|
2
|
+
export interface RDateOptions<DT extends DateTime<Time> | DateTime<undefined>> {
|
|
3
|
+
values: DT[];
|
|
4
|
+
tzid?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface RDateLike<DT extends DateTimeLike | DateLike> {
|
|
7
|
+
values: DT[];
|
|
8
|
+
tzid?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class RDate<DT extends DateTime<Time> | DateTime<undefined> = DateTime<Time>> {
|
|
11
|
+
readonly values: DT[];
|
|
12
|
+
readonly tzid?: string;
|
|
13
|
+
constructor(values: DT[], tzid?: string);
|
|
14
|
+
constructor(options: RDateOptions<DT>);
|
|
15
|
+
static fromPlain(plain: RDateLike<DateTimeLike>): RDate<DateTime<Time>>;
|
|
16
|
+
static fromPlain(plain: RDateLike<DateLike>): RDate<DateTime<undefined>>;
|
|
17
|
+
setTzid(tzid: string | undefined): RDate<DT>;
|
|
18
|
+
setValues<NDT extends DateTime<Time> | DateTime<undefined>>(datetimes: NDT[]): RDate<NDT>;
|
|
19
|
+
toPlain<DTL extends DateTimeLike | DateLike = DT extends DateTime<Time> ? DateTimeLike : DateLike>(): RDateLike<DTL>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { DateTime, } from './datetime';
|
|
2
|
+
import { RDate as Rust } from './lib';
|
|
3
|
+
export class RDate {
|
|
4
|
+
constructor(valuesOrOptions, tzid) {
|
|
5
|
+
if (!Array.isArray(valuesOrOptions)) {
|
|
6
|
+
this.values = valuesOrOptions.values;
|
|
7
|
+
this.tzid = valuesOrOptions.tzid;
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
this.values = valuesOrOptions;
|
|
11
|
+
this.tzid = tzid;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
static fromRust(rust) {
|
|
18
|
+
const rrule = new this(rust.values.map((dt) => DateTime.fromNumeric(dt)), rust.tzid ?? undefined);
|
|
19
|
+
rrule.rust = rust;
|
|
20
|
+
return rrule;
|
|
21
|
+
}
|
|
22
|
+
static fromPlain(plain) {
|
|
23
|
+
return new this({
|
|
24
|
+
values: plain.values.map((dt) => DateTime.fromPlain(dt)),
|
|
25
|
+
tzid: plain.tzid,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
setTzid(tzid) {
|
|
29
|
+
return new RDate(this.values, tzid);
|
|
30
|
+
}
|
|
31
|
+
setValues(datetimes) {
|
|
32
|
+
return new RDate(datetimes, this.tzid);
|
|
33
|
+
}
|
|
34
|
+
toPlain() {
|
|
35
|
+
return {
|
|
36
|
+
values: this.values.map((dt) => dt.toPlain()),
|
|
37
|
+
tzid: this.tzid,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
toRust() {
|
|
44
|
+
this.rust ??= new Rust(this.values.map((dt) => dt.toNumeric()), this.tzid);
|
|
45
|
+
return this.rust;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { RRule, type RRuleLike } from './rrule';
|
|
2
2
|
import { type Time, DateTime, type DateTimeLike, type DateLike } from './datetime';
|
|
3
3
|
import { DtStart, type DtStartLike } from './dtstart';
|
|
4
|
+
import { ExDate, type ExDateLike } from './exdate';
|
|
5
|
+
import { RDate, type RDateLike } from './rdate';
|
|
4
6
|
export interface RRuleSetOptions<DT extends DateTime<Time> | DateTime<undefined> = DateTime<Time>> {
|
|
5
7
|
readonly dtstart: DtStart<DT>;
|
|
6
8
|
readonly rrules?: readonly RRule<DT>[];
|
|
7
9
|
readonly exrules?: readonly RRule<DT>[];
|
|
8
|
-
readonly exdates?: readonly DT[];
|
|
9
|
-
readonly rdates?: readonly DT[];
|
|
10
|
+
readonly exdates?: readonly ExDate<DT>[];
|
|
11
|
+
readonly rdates?: readonly RDate<DT>[];
|
|
10
12
|
}
|
|
11
13
|
export interface RRuleSetLike<DT extends DateTimeLike | DateLike> {
|
|
12
14
|
readonly dtstart: DtStartLike<DT>;
|
|
13
15
|
readonly rrules: readonly RRuleLike<DT>[];
|
|
14
16
|
readonly exrules: readonly RRuleLike<DT>[];
|
|
15
|
-
readonly exdates: readonly DT[];
|
|
16
|
-
readonly rdates: readonly DT[];
|
|
17
|
+
readonly exdates: readonly ExDateLike<DT>[];
|
|
18
|
+
readonly rdates: readonly RDateLike<DT>[];
|
|
17
19
|
}
|
|
18
20
|
export declare class RRuleSet<DT extends DateTime<Time> | DateTime<undefined>> implements Iterable<DateTime<Time> | DateTime<undefined>> {
|
|
19
21
|
readonly dtstart: DtStart<DT>;
|
|
20
22
|
readonly rrules: readonly RRule<DT>[];
|
|
21
23
|
readonly exrules: readonly RRule<DT>[];
|
|
22
|
-
readonly exdates: readonly DT[];
|
|
23
|
-
readonly rdates: readonly DT[];
|
|
24
|
+
readonly exdates: readonly ExDate<DT>[];
|
|
25
|
+
readonly rdates: readonly RDate<DT>[];
|
|
24
26
|
constructor(dtstart: DtStart<DT>);
|
|
25
27
|
constructor(options: RRuleSetOptions<DT>);
|
|
26
28
|
/**
|
|
@@ -34,10 +36,10 @@ export declare class RRuleSet<DT extends DateTime<Time> | DateTime<undefined>> i
|
|
|
34
36
|
setRrules(rrules: readonly RRule<DT>[]): RRuleSet<DT>;
|
|
35
37
|
addExrule(rrule: RRule<DT>): RRuleSet<DT>;
|
|
36
38
|
setExrules(rrules: readonly RRule<DT>[]): RRuleSet<DT>;
|
|
37
|
-
addExdate(
|
|
38
|
-
setExdates(
|
|
39
|
-
addRdate(datetime: DT): RRuleSet<DT>;
|
|
40
|
-
setRdates(datetimes: readonly DT[]): RRuleSet<DT>;
|
|
39
|
+
addExdate(exdate: ExDate<DT>): RRuleSet<DT>;
|
|
40
|
+
setExdates(exdates: readonly ExDate<DT>[]): RRuleSet<DT>;
|
|
41
|
+
addRdate(datetime: RDate<DT>): RRuleSet<DT>;
|
|
42
|
+
setRdates(datetimes: readonly RDate<DT>[]): RRuleSet<DT>;
|
|
41
43
|
/**
|
|
42
44
|
* Returns all the occurrences of the rrule.
|
|
43
45
|
*
|
|
@@ -2,6 +2,8 @@ import { RRule } from './rrule';
|
|
|
2
2
|
import { RRuleSet as Rust } from './lib';
|
|
3
3
|
import { DateTime, } from './datetime';
|
|
4
4
|
import { DtStart } from './dtstart';
|
|
5
|
+
import { ExDate } from './exdate';
|
|
6
|
+
import { RDate } from './rdate';
|
|
5
7
|
export class RRuleSet {
|
|
6
8
|
constructor(optionsOrDtstart) {
|
|
7
9
|
if ('dtstart' in optionsOrDtstart) {
|
|
@@ -30,8 +32,8 @@ export class RRuleSet {
|
|
|
30
32
|
dtstart: DtStart.fromPlain(plain.dtstart),
|
|
31
33
|
rrules: plain.rrules.map((rrule) => RRule.fromPlain(rrule)),
|
|
32
34
|
exrules: plain.exrules.map((rrule) => RRule.fromPlain(rrule)),
|
|
33
|
-
exdates: plain.exdates.map((datetime) =>
|
|
34
|
-
rdates: plain.rdates.map((datetime) =>
|
|
35
|
+
exdates: plain.exdates.map((datetime) => ExDate.fromPlain(datetime)),
|
|
36
|
+
rdates: plain.rdates.map((datetime) => RDate.fromPlain(datetime)),
|
|
35
37
|
});
|
|
36
38
|
}
|
|
37
39
|
/**
|
|
@@ -45,8 +47,8 @@ export class RRuleSet {
|
|
|
45
47
|
}),
|
|
46
48
|
rrules: rust.rrules.map((rrule) => RRule.fromRust(rrule)),
|
|
47
49
|
exrules: rust.exrules.map((rrule) => RRule.fromRust(rrule)),
|
|
48
|
-
exdates: rust.exdates.map((
|
|
49
|
-
rdates: rust.rdates.map((
|
|
50
|
+
exdates: rust.exdates.map((exdate) => ExDate.fromRust(exdate)),
|
|
51
|
+
rdates: rust.rdates.map((rdate) => RDate.fromRust(rdate)),
|
|
50
52
|
});
|
|
51
53
|
set.rust = rust;
|
|
52
54
|
return set;
|
|
@@ -81,16 +83,16 @@ export class RRuleSet {
|
|
|
81
83
|
exrules: rrules,
|
|
82
84
|
});
|
|
83
85
|
}
|
|
84
|
-
addExdate(
|
|
86
|
+
addExdate(exdate) {
|
|
85
87
|
return new RRuleSet({
|
|
86
88
|
...this.toOptions(),
|
|
87
|
-
exdates: [...this.exdates,
|
|
89
|
+
exdates: [...this.exdates, exdate],
|
|
88
90
|
});
|
|
89
91
|
}
|
|
90
|
-
setExdates(
|
|
92
|
+
setExdates(exdates) {
|
|
91
93
|
return new RRuleSet({
|
|
92
94
|
...this.toOptions(),
|
|
93
|
-
exdates:
|
|
95
|
+
exdates: exdates,
|
|
94
96
|
});
|
|
95
97
|
}
|
|
96
98
|
addRdate(datetime) {
|
|
@@ -139,7 +141,7 @@ export class RRuleSet {
|
|
|
139
141
|
* @internal
|
|
140
142
|
*/
|
|
141
143
|
toRust() {
|
|
142
|
-
this.rust ??= new Rust(this.dtstart.datetime.toNumeric(), this.dtstart.tzid, undefined, this.rrules.map((rrule) => rrule.toRust()), this.exrules.map((rrule) => rrule.toRust()), this.exdates.map((
|
|
144
|
+
this.rust ??= new Rust(this.dtstart.datetime.toNumeric(), this.dtstart.tzid, undefined, this.rrules.map((rrule) => rrule.toRust()), this.exrules.map((rrule) => rrule.toRust()), this.exdates.map((exdate) => exdate.toRust()), this.rdates.map((rdate) => rdate.toRust()));
|
|
143
145
|
return this.rust;
|
|
144
146
|
}
|
|
145
147
|
toString() {
|
package/dist/node/dtstart.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface DtStartLike<DT extends DateTimeLike | DateLike> {
|
|
|
10
10
|
export declare class DtStart<DT extends DateTime<Time> | DateTime<undefined> = DateTime<Time>> {
|
|
11
11
|
readonly datetime: DT;
|
|
12
12
|
readonly tzid?: string;
|
|
13
|
-
constructor(datetime:
|
|
13
|
+
constructor(datetime: DT, tzid?: string);
|
|
14
14
|
constructor(options: DtStartOptions<DT>);
|
|
15
15
|
static fromPlain(plain: DtStartLike<DateTimeLike>): DtStart<DateTime<Time>>;
|
|
16
16
|
static fromPlain(plain: DtStartLike<DateLike>): DtStart<DateTime<undefined>>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DateTime, type Time, type DateTimeLike, type DateLike } from './datetime';
|
|
2
|
+
export interface ExDateOptions<DT extends DateTime<Time> | DateTime<undefined>> {
|
|
3
|
+
values: DT[];
|
|
4
|
+
tzid?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ExDateLike<DT extends DateTimeLike | DateLike> {
|
|
7
|
+
values: DT[];
|
|
8
|
+
tzid?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class ExDate<DT extends DateTime<Time> | DateTime<undefined> = DateTime<Time>> {
|
|
11
|
+
readonly values: DT[];
|
|
12
|
+
readonly tzid?: string;
|
|
13
|
+
constructor(values: DT[], tzid?: string);
|
|
14
|
+
constructor(options: ExDateOptions<DT>);
|
|
15
|
+
static fromPlain(plain: ExDateLike<DateTimeLike>): ExDate<DateTime<Time>>;
|
|
16
|
+
static fromPlain(plain: ExDateLike<DateLike>): ExDate<DateTime<undefined>>;
|
|
17
|
+
setTzid(tzid: string | undefined): ExDate<DT>;
|
|
18
|
+
setValues<NDT extends DateTime<Time> | DateTime<undefined>>(datetimes: NDT[]): ExDate<NDT>;
|
|
19
|
+
toPlain<DTL extends DateTimeLike | DateLike = DT extends DateTime<Time> ? DateTimeLike : DateLike>(): ExDateLike<DTL>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExDate = void 0;
|
|
4
|
+
const datetime_1 = require("./datetime");
|
|
5
|
+
const lib_1 = require("./lib");
|
|
6
|
+
class ExDate {
|
|
7
|
+
constructor(valuesOrOptions, tzid) {
|
|
8
|
+
if (!Array.isArray(valuesOrOptions)) {
|
|
9
|
+
this.values = valuesOrOptions.values;
|
|
10
|
+
this.tzid = valuesOrOptions.tzid;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
this.values = valuesOrOptions;
|
|
14
|
+
this.tzid = tzid;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
static fromRust(rust) {
|
|
21
|
+
const rrule = new this(rust.values.map((dt) => datetime_1.DateTime.fromNumeric(dt)), rust.tzid ?? undefined);
|
|
22
|
+
rrule.rust = rust;
|
|
23
|
+
return rrule;
|
|
24
|
+
}
|
|
25
|
+
static fromPlain(plain) {
|
|
26
|
+
return new this({
|
|
27
|
+
values: plain.values.map((dt) => datetime_1.DateTime.fromPlain(dt)),
|
|
28
|
+
tzid: plain.tzid,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
setTzid(tzid) {
|
|
32
|
+
return new ExDate(this.values, tzid);
|
|
33
|
+
}
|
|
34
|
+
setValues(datetimes) {
|
|
35
|
+
return new ExDate(datetimes, this.tzid);
|
|
36
|
+
}
|
|
37
|
+
toPlain() {
|
|
38
|
+
return {
|
|
39
|
+
values: this.values.map((dt) => dt.toPlain()),
|
|
40
|
+
tzid: this.tzid,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
toRust() {
|
|
47
|
+
this.rust ??= new lib_1.ExDate(this.values.map((dt) => dt.toNumeric()), this.tzid);
|
|
48
|
+
return this.rust;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.ExDate = ExDate;
|
package/dist/node/index.d.ts
CHANGED
package/dist/node/index.js
CHANGED
|
@@ -18,3 +18,5 @@ __exportStar(require("./rrule-set"), exports);
|
|
|
18
18
|
__exportStar(require("./rrule"), exports);
|
|
19
19
|
__exportStar(require("./datetime"), exports);
|
|
20
20
|
__exportStar(require("./dtstart"), exports);
|
|
21
|
+
__exportStar(require("./exdate"), exports);
|
|
22
|
+
__exportStar(require("./rdate"), exports);
|
package/dist/node/lib/index.js
CHANGED
|
@@ -393,6 +393,8 @@ if (!nativeBinding) {
|
|
|
393
393
|
}
|
|
394
394
|
|
|
395
395
|
module.exports = nativeBinding
|
|
396
|
+
module.exports.ExDate = nativeBinding.ExDate
|
|
397
|
+
module.exports.RDate = nativeBinding.RDate
|
|
396
398
|
module.exports.RRule = nativeBinding.RRule
|
|
397
399
|
module.exports.RRuleSet = nativeBinding.RRuleSet
|
|
398
400
|
module.exports.RRuleSetIterator = nativeBinding.RRuleSetIterator
|
|
@@ -108,6 +108,8 @@ const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule
|
|
|
108
108
|
},
|
|
109
109
|
})
|
|
110
110
|
module.exports = __napiModule.exports
|
|
111
|
+
module.exports.ExDate = __napiModule.exports.ExDate
|
|
112
|
+
module.exports.RDate = __napiModule.exports.RDate
|
|
111
113
|
module.exports.RRule = __napiModule.exports.RRule
|
|
112
114
|
module.exports.RRuleSet = __napiModule.exports.RRuleSet
|
|
113
115
|
module.exports.RRuleSetIterator = __napiModule.exports.RRuleSetIterator
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DateTime, type Time, type DateTimeLike, type DateLike } from './datetime';
|
|
2
|
+
export interface RDateOptions<DT extends DateTime<Time> | DateTime<undefined>> {
|
|
3
|
+
values: DT[];
|
|
4
|
+
tzid?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface RDateLike<DT extends DateTimeLike | DateLike> {
|
|
7
|
+
values: DT[];
|
|
8
|
+
tzid?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class RDate<DT extends DateTime<Time> | DateTime<undefined> = DateTime<Time>> {
|
|
11
|
+
readonly values: DT[];
|
|
12
|
+
readonly tzid?: string;
|
|
13
|
+
constructor(values: DT[], tzid?: string);
|
|
14
|
+
constructor(options: RDateOptions<DT>);
|
|
15
|
+
static fromPlain(plain: RDateLike<DateTimeLike>): RDate<DateTime<Time>>;
|
|
16
|
+
static fromPlain(plain: RDateLike<DateLike>): RDate<DateTime<undefined>>;
|
|
17
|
+
setTzid(tzid: string | undefined): RDate<DT>;
|
|
18
|
+
setValues<NDT extends DateTime<Time> | DateTime<undefined>>(datetimes: NDT[]): RDate<NDT>;
|
|
19
|
+
toPlain<DTL extends DateTimeLike | DateLike = DT extends DateTime<Time> ? DateTimeLike : DateLike>(): RDateLike<DTL>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RDate = void 0;
|
|
4
|
+
const datetime_1 = require("./datetime");
|
|
5
|
+
const lib_1 = require("./lib");
|
|
6
|
+
class RDate {
|
|
7
|
+
constructor(valuesOrOptions, tzid) {
|
|
8
|
+
if (!Array.isArray(valuesOrOptions)) {
|
|
9
|
+
this.values = valuesOrOptions.values;
|
|
10
|
+
this.tzid = valuesOrOptions.tzid;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
this.values = valuesOrOptions;
|
|
14
|
+
this.tzid = tzid;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
static fromRust(rust) {
|
|
21
|
+
const rrule = new this(rust.values.map((dt) => datetime_1.DateTime.fromNumeric(dt)), rust.tzid ?? undefined);
|
|
22
|
+
rrule.rust = rust;
|
|
23
|
+
return rrule;
|
|
24
|
+
}
|
|
25
|
+
static fromPlain(plain) {
|
|
26
|
+
return new this({
|
|
27
|
+
values: plain.values.map((dt) => datetime_1.DateTime.fromPlain(dt)),
|
|
28
|
+
tzid: plain.tzid,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
setTzid(tzid) {
|
|
32
|
+
return new RDate(this.values, tzid);
|
|
33
|
+
}
|
|
34
|
+
setValues(datetimes) {
|
|
35
|
+
return new RDate(datetimes, this.tzid);
|
|
36
|
+
}
|
|
37
|
+
toPlain() {
|
|
38
|
+
return {
|
|
39
|
+
values: this.values.map((dt) => dt.toPlain()),
|
|
40
|
+
tzid: this.tzid,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
toRust() {
|
|
47
|
+
this.rust ??= new lib_1.RDate(this.values.map((dt) => dt.toNumeric()), this.tzid);
|
|
48
|
+
return this.rust;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.RDate = RDate;
|
package/dist/node/rrule-set.d.ts
CHANGED
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { RRule, type RRuleLike } from './rrule';
|
|
2
2
|
import { type Time, DateTime, type DateTimeLike, type DateLike } from './datetime';
|
|
3
3
|
import { DtStart, type DtStartLike } from './dtstart';
|
|
4
|
+
import { ExDate, type ExDateLike } from './exdate';
|
|
5
|
+
import { RDate, type RDateLike } from './rdate';
|
|
4
6
|
export interface RRuleSetOptions<DT extends DateTime<Time> | DateTime<undefined> = DateTime<Time>> {
|
|
5
7
|
readonly dtstart: DtStart<DT>;
|
|
6
8
|
readonly rrules?: readonly RRule<DT>[];
|
|
7
9
|
readonly exrules?: readonly RRule<DT>[];
|
|
8
|
-
readonly exdates?: readonly DT[];
|
|
9
|
-
readonly rdates?: readonly DT[];
|
|
10
|
+
readonly exdates?: readonly ExDate<DT>[];
|
|
11
|
+
readonly rdates?: readonly RDate<DT>[];
|
|
10
12
|
}
|
|
11
13
|
export interface RRuleSetLike<DT extends DateTimeLike | DateLike> {
|
|
12
14
|
readonly dtstart: DtStartLike<DT>;
|
|
13
15
|
readonly rrules: readonly RRuleLike<DT>[];
|
|
14
16
|
readonly exrules: readonly RRuleLike<DT>[];
|
|
15
|
-
readonly exdates: readonly DT[];
|
|
16
|
-
readonly rdates: readonly DT[];
|
|
17
|
+
readonly exdates: readonly ExDateLike<DT>[];
|
|
18
|
+
readonly rdates: readonly RDateLike<DT>[];
|
|
17
19
|
}
|
|
18
20
|
export declare class RRuleSet<DT extends DateTime<Time> | DateTime<undefined>> implements Iterable<DateTime<Time> | DateTime<undefined>> {
|
|
19
21
|
readonly dtstart: DtStart<DT>;
|
|
20
22
|
readonly rrules: readonly RRule<DT>[];
|
|
21
23
|
readonly exrules: readonly RRule<DT>[];
|
|
22
|
-
readonly exdates: readonly DT[];
|
|
23
|
-
readonly rdates: readonly DT[];
|
|
24
|
+
readonly exdates: readonly ExDate<DT>[];
|
|
25
|
+
readonly rdates: readonly RDate<DT>[];
|
|
24
26
|
constructor(dtstart: DtStart<DT>);
|
|
25
27
|
constructor(options: RRuleSetOptions<DT>);
|
|
26
28
|
/**
|
|
@@ -34,10 +36,10 @@ export declare class RRuleSet<DT extends DateTime<Time> | DateTime<undefined>> i
|
|
|
34
36
|
setRrules(rrules: readonly RRule<DT>[]): RRuleSet<DT>;
|
|
35
37
|
addExrule(rrule: RRule<DT>): RRuleSet<DT>;
|
|
36
38
|
setExrules(rrules: readonly RRule<DT>[]): RRuleSet<DT>;
|
|
37
|
-
addExdate(
|
|
38
|
-
setExdates(
|
|
39
|
-
addRdate(datetime: DT): RRuleSet<DT>;
|
|
40
|
-
setRdates(datetimes: readonly DT[]): RRuleSet<DT>;
|
|
39
|
+
addExdate(exdate: ExDate<DT>): RRuleSet<DT>;
|
|
40
|
+
setExdates(exdates: readonly ExDate<DT>[]): RRuleSet<DT>;
|
|
41
|
+
addRdate(datetime: RDate<DT>): RRuleSet<DT>;
|
|
42
|
+
setRdates(datetimes: readonly RDate<DT>[]): RRuleSet<DT>;
|
|
41
43
|
/**
|
|
42
44
|
* Returns all the occurrences of the rrule.
|
|
43
45
|
*
|
package/dist/node/rrule-set.js
CHANGED
|
@@ -5,6 +5,8 @@ const rrule_1 = require("./rrule");
|
|
|
5
5
|
const lib_1 = require("./lib");
|
|
6
6
|
const datetime_1 = require("./datetime");
|
|
7
7
|
const dtstart_1 = require("./dtstart");
|
|
8
|
+
const exdate_1 = require("./exdate");
|
|
9
|
+
const rdate_1 = require("./rdate");
|
|
8
10
|
class RRuleSet {
|
|
9
11
|
constructor(optionsOrDtstart) {
|
|
10
12
|
if ('dtstart' in optionsOrDtstart) {
|
|
@@ -33,8 +35,8 @@ class RRuleSet {
|
|
|
33
35
|
dtstart: dtstart_1.DtStart.fromPlain(plain.dtstart),
|
|
34
36
|
rrules: plain.rrules.map((rrule) => rrule_1.RRule.fromPlain(rrule)),
|
|
35
37
|
exrules: plain.exrules.map((rrule) => rrule_1.RRule.fromPlain(rrule)),
|
|
36
|
-
exdates: plain.exdates.map((datetime) =>
|
|
37
|
-
rdates: plain.rdates.map((datetime) =>
|
|
38
|
+
exdates: plain.exdates.map((datetime) => exdate_1.ExDate.fromPlain(datetime)),
|
|
39
|
+
rdates: plain.rdates.map((datetime) => rdate_1.RDate.fromPlain(datetime)),
|
|
38
40
|
});
|
|
39
41
|
}
|
|
40
42
|
/**
|
|
@@ -48,8 +50,8 @@ class RRuleSet {
|
|
|
48
50
|
}),
|
|
49
51
|
rrules: rust.rrules.map((rrule) => rrule_1.RRule.fromRust(rrule)),
|
|
50
52
|
exrules: rust.exrules.map((rrule) => rrule_1.RRule.fromRust(rrule)),
|
|
51
|
-
exdates: rust.exdates.map((
|
|
52
|
-
rdates: rust.rdates.map((
|
|
53
|
+
exdates: rust.exdates.map((exdate) => exdate_1.ExDate.fromRust(exdate)),
|
|
54
|
+
rdates: rust.rdates.map((rdate) => rdate_1.RDate.fromRust(rdate)),
|
|
53
55
|
});
|
|
54
56
|
set.rust = rust;
|
|
55
57
|
return set;
|
|
@@ -84,16 +86,16 @@ class RRuleSet {
|
|
|
84
86
|
exrules: rrules,
|
|
85
87
|
});
|
|
86
88
|
}
|
|
87
|
-
addExdate(
|
|
89
|
+
addExdate(exdate) {
|
|
88
90
|
return new RRuleSet({
|
|
89
91
|
...this.toOptions(),
|
|
90
|
-
exdates: [...this.exdates,
|
|
92
|
+
exdates: [...this.exdates, exdate],
|
|
91
93
|
});
|
|
92
94
|
}
|
|
93
|
-
setExdates(
|
|
95
|
+
setExdates(exdates) {
|
|
94
96
|
return new RRuleSet({
|
|
95
97
|
...this.toOptions(),
|
|
96
|
-
exdates:
|
|
98
|
+
exdates: exdates,
|
|
97
99
|
});
|
|
98
100
|
}
|
|
99
101
|
addRdate(datetime) {
|
|
@@ -142,7 +144,7 @@ class RRuleSet {
|
|
|
142
144
|
* @internal
|
|
143
145
|
*/
|
|
144
146
|
toRust() {
|
|
145
|
-
this.rust ??= new lib_1.RRuleSet(this.dtstart.datetime.toNumeric(), this.dtstart.tzid, undefined, this.rrules.map((rrule) => rrule.toRust()), this.exrules.map((rrule) => rrule.toRust()), this.exdates.map((
|
|
147
|
+
this.rust ??= new lib_1.RRuleSet(this.dtstart.datetime.toNumeric(), this.dtstart.tzid, undefined, this.rrules.map((rrule) => rrule.toRust()), this.exrules.map((rrule) => rrule.toRust()), this.exdates.map((exdate) => exdate.toRust()), this.rdates.map((rdate) => rdate.toRust()));
|
|
146
148
|
return this.rust;
|
|
147
149
|
}
|
|
148
150
|
toString() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rrule-rust",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.8",
|
|
4
4
|
"main": "dist/node/index.js",
|
|
5
5
|
"browser": "dist/browser/index.js",
|
|
6
6
|
"keywords": [
|
|
@@ -96,19 +96,19 @@
|
|
|
96
96
|
"prepublishOnly": "npm run build && napi prepublish -t npm"
|
|
97
97
|
},
|
|
98
98
|
"optionalDependencies": {
|
|
99
|
-
"@rrule-rust/lib-win32-x64-msvc": "3.0.0-alpha.
|
|
100
|
-
"@rrule-rust/lib-darwin-x64": "3.0.0-alpha.
|
|
101
|
-
"@rrule-rust/lib-linux-x64-gnu": "3.0.0-alpha.
|
|
102
|
-
"@rrule-rust/lib-linux-x64-musl": "3.0.0-alpha.
|
|
103
|
-
"@rrule-rust/lib-linux-arm64-gnu": "3.0.0-alpha.
|
|
104
|
-
"@rrule-rust/lib-win32-ia32-msvc": "3.0.0-alpha.
|
|
105
|
-
"@rrule-rust/lib-linux-arm-gnueabihf": "3.0.0-alpha.
|
|
106
|
-
"@rrule-rust/lib-darwin-arm64": "3.0.0-alpha.
|
|
107
|
-
"@rrule-rust/lib-android-arm64": "3.0.0-alpha.
|
|
108
|
-
"@rrule-rust/lib-freebsd-x64": "3.0.0-alpha.
|
|
109
|
-
"@rrule-rust/lib-linux-arm64-musl": "3.0.0-alpha.
|
|
110
|
-
"@rrule-rust/lib-win32-arm64-msvc": "3.0.0-alpha.
|
|
111
|
-
"@rrule-rust/lib-android-arm-eabi": "3.0.0-alpha.
|
|
112
|
-
"@rrule-rust/lib-wasm32-wasi": "3.0.0-alpha.
|
|
99
|
+
"@rrule-rust/lib-win32-x64-msvc": "3.0.0-alpha.8",
|
|
100
|
+
"@rrule-rust/lib-darwin-x64": "3.0.0-alpha.8",
|
|
101
|
+
"@rrule-rust/lib-linux-x64-gnu": "3.0.0-alpha.8",
|
|
102
|
+
"@rrule-rust/lib-linux-x64-musl": "3.0.0-alpha.8",
|
|
103
|
+
"@rrule-rust/lib-linux-arm64-gnu": "3.0.0-alpha.8",
|
|
104
|
+
"@rrule-rust/lib-win32-ia32-msvc": "3.0.0-alpha.8",
|
|
105
|
+
"@rrule-rust/lib-linux-arm-gnueabihf": "3.0.0-alpha.8",
|
|
106
|
+
"@rrule-rust/lib-darwin-arm64": "3.0.0-alpha.8",
|
|
107
|
+
"@rrule-rust/lib-android-arm64": "3.0.0-alpha.8",
|
|
108
|
+
"@rrule-rust/lib-freebsd-x64": "3.0.0-alpha.8",
|
|
109
|
+
"@rrule-rust/lib-linux-arm64-musl": "3.0.0-alpha.8",
|
|
110
|
+
"@rrule-rust/lib-win32-arm64-msvc": "3.0.0-alpha.8",
|
|
111
|
+
"@rrule-rust/lib-android-arm-eabi": "3.0.0-alpha.8",
|
|
112
|
+
"@rrule-rust/lib-wasm32-wasi": "3.0.0-alpha.8"
|
|
113
113
|
}
|
|
114
114
|
}
|