wickrserverdirectory 6.37.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.

Potentially problematic release.


This version of wickrserverdirectory might be problematic. Click here for more details.

@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2021-present Evernote Corporation. All rights reserved.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ var __importDefault = (this && this.__importDefault) || function (mod) {
29
+ return (mod && mod.__esModule) ? mod : { "default": mod };
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ const __1 = require("..");
33
+ const chai_1 = require("chai");
34
+ const uuid_1 = require("uuid");
35
+ const rrule_1 = require("rrule");
36
+ const utcToZonedTime_1 = __importDefault(require("date-fns-tz/utcToZonedTime"));
37
+ const format_1 = __importDefault(require("date-fns-tz/format"));
38
+ const sinon = __importStar(require("sinon"));
39
+ describe('outlier', () => {
40
+ it('sanity test on date-fns parsing and formatting', () => {
41
+ const testTime = new Date(Date.parse('Jan 25 2022 2:00:00 UTC'));
42
+ const twoAmUtc = (0, utcToZonedTime_1.default)(testTime, 'UTC');
43
+ (0, chai_1.expect)(twoAmUtc.toString()).equal((0, format_1.default)(twoAmUtc, 'eee MMM dd y HH:mm:ss \'GMT\'xx (zzzz)'));
44
+ });
45
+ describe('getDueDateByOutlierId', () => {
46
+ it('getDueDateByOutlierId, utc', () => {
47
+ const outlierId = `${(0, uuid_1.v4)()}_2022-02-12`;
48
+ const rrule = new __1.EnRRule({
49
+ dtstart: new Date('2022-01-01T12:00:00.000+00:00'),
50
+ until: new Date('2022-10-01T12:00:00.000+00:00'),
51
+ freq: rrule_1.Frequency.DAILY,
52
+ tzid: 'UTC',
53
+ });
54
+ const dueDate = (0, __1.getDueDateByOutlierId)(outlierId, rrule.toString());
55
+ (0, chai_1.expect)(new Date(dueDate).toISOString()).equal(new Date('2022-02-12T12:00:00.000+00:00').toISOString());
56
+ });
57
+ it('getDueDateByOutlierId, time zone', () => {
58
+ const dtstart = new Date('2022-11-01T09:00:00.000+09:00');
59
+ const until = new Date('2022-12-01T09:00:00.000+09:00');
60
+ const tzid = 'Asia/Tokyo';
61
+ const rrule = new __1.EnRRule({
62
+ dtstart,
63
+ freq: rrule_1.Frequency.DAILY,
64
+ tzid,
65
+ until
66
+ });
67
+ const outlierId = `${(0, uuid_1.v4)()}_2022-11-12`;
68
+ const dueDate = (0, __1.getDueDateByOutlierId)(outlierId, rrule.toString());
69
+ (0, chai_1.expect)(dueDate).equal(Date.parse('2022-11-12T09:00:00.000+09:00'));
70
+ (0, chai_1.expect)(new Date(dueDate).toISOString()).equal(new Date('2022-11-12T09:00:00.000+09:00').toISOString());
71
+ });
72
+ it('getDueDateByOutlierId, 2 instance on the same UTC date', () => {
73
+ const tzid = 'America/Los_Angeles';
74
+ const dtstart = new Date('2022-03-10T16:30:00.000-08:00');
75
+ const until = new Date('2022-03-20T16:30:00.000-08:00');
76
+ const rrule = new __1.EnRRule({
77
+ dtstart,
78
+ freq: rrule_1.Frequency.DAILY,
79
+ tzid,
80
+ until
81
+ });
82
+ let outlierId = `${(0, uuid_1.v4)()}_2022-03-13`;
83
+ let dueDate = (0, __1.getDueDateByOutlierId)(outlierId, rrule.toString());
84
+ (0, chai_1.expect)(new Date(dueDate).toISOString()).equal(new Date('2022-03-12T16:30:00.000-08:00').toISOString());
85
+ (0, chai_1.expect)(dueDate).equal(Date.parse('2022-03-12T16:30:00.000-08:00'));
86
+ outlierId = `${(0, uuid_1.v4)()}_2022-03-12`;
87
+ dueDate = (0, __1.getDueDateByOutlierId)(outlierId, rrule.toString());
88
+ (0, chai_1.expect)(new Date(dueDate).toISOString()).equal(new Date('2022-03-11T16:30:00.000-08:00').toISOString());
89
+ (0, chai_1.expect)(dueDate).equal(Date.parse('2022-03-11T16:30:00.000-08:00'));
90
+ });
91
+ it('getDueDateByOutlierId old date', () => {
92
+ const outlierId = `${(0, uuid_1.v4)()}_2020-10-10`;
93
+ const rrule = new rrule_1.RRule({
94
+ freq: rrule_1.Frequency.DAILY,
95
+ dtstart: (0, __1.toUTCDate)(new Date(Date.parse('01 Jan 2009 00:12:00 GMT')))
96
+ });
97
+ const dueDate = (0, __1.getDueDateByOutlierId)(outlierId, rrule.toString());
98
+ (0, chai_1.expect)(dueDate).not.be.null;
99
+ });
100
+ it('multiple conversion 1', () => {
101
+ const taskId = (0, uuid_1.v4)();
102
+ const rruleStr = 'DTSTART;TZID=America/Los_Angeles:20220201T143735\n' +
103
+ 'RRULE:FREQ=MONTHLY';
104
+ const rrule = __1.EnRRule.fromString(rruleStr);
105
+ const after = rrule.after(new Date(2022, 1, 1, 12, 0, 0));
106
+ const outlierID = (0, __1.getOutlierIdByDate)(taskId, after);
107
+ (0, chai_1.expect)(new Date((0, __1.getDueDateByOutlierId)(outlierID, rruleStr)).toISOString()).to.eq(after.toISOString());
108
+ (0, chai_1.expect)((0, __1.getDueDateByOutlierId)(outlierID, rruleStr)).to.eq(after.getTime());
109
+ });
110
+ it('multiple conversion 2', () => {
111
+ const taskId = (0, uuid_1.v4)();
112
+ const rrule = new __1.EnRRule({
113
+ dtstart: new Date(),
114
+ freq: rrule_1.Frequency.MONTHLY,
115
+ tzid: 'America/Los_Angeles',
116
+ });
117
+ const date1 = rrule.all()[0];
118
+ const outlierID = (0, __1.getOutlierIdByDate)(taskId, date1);
119
+ (0, chai_1.expect)(new Date((0, __1.getDueDateByOutlierId)(outlierID, rrule.toString())).toISOString()).to.eq(date1.toISOString());
120
+ (0, chai_1.expect)((0, __1.getDueDateByOutlierId)(outlierID, rrule.toString())).to.eq(date1.getTime());
121
+ });
122
+ });
123
+ describe('getLatestCompletedAction', () => {
124
+ const taskId = '123';
125
+ const oldDtstart = new Date('2020-01-01T16:30:00.000+09:00');
126
+ const dtstart = new Date('2022-01-01T16:30:00.000+09:00');
127
+ const rrule = new __1.EnRRule({
128
+ dtstart,
129
+ freq: rrule_1.Frequency.DAILY,
130
+ count: 100,
131
+ tzid: 'America/Los_Angeles',
132
+ });
133
+ describe('repeatAfterCompletion = false', () => {
134
+ it('existing LatestCompleted already latest', () => {
135
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: false }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[99]), dueDate: rrule.all()[99].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.completed });
136
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.DoNothing);
137
+ });
138
+ it('existing LatestCompleted is invalid', () => {
139
+ const rrule2 = new rrule_1.RRule({
140
+ dtstart,
141
+ freq: rrule_1.Frequency.DAILY,
142
+ count: 101,
143
+ });
144
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: false }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule2.all()[100]), dueDate: rrule2.all()[100].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.completed });
145
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithLatestOutlierInDb);
146
+ });
147
+ it('existing LatestCompleted is invalid and recently updated is newer', () => {
148
+ const rrule2 = new rrule_1.RRule({
149
+ dtstart,
150
+ freq: rrule_1.Frequency.DAILY,
151
+ count: 101,
152
+ });
153
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: false }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule2.all()[100]), dueDate: rrule2.all()[100].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.completed });
154
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithLatestOutlierInDb);
155
+ });
156
+ it('recently updated is newer', () => {
157
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: false }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[80]), dueDate: rrule.all()[80].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.completed });
158
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithRecentlyUpdatedOutlier);
159
+ });
160
+ it('no existing LatestCompleted', () => {
161
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: false }, null, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.completed });
162
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithRecentlyUpdatedOutlier);
163
+ });
164
+ it('recently is the same as existing latest and it is deleted', () => {
165
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: false }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[80]), dueDate: rrule.all()[80].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[80]), dueDate: rrule.all()[80].getTime(), status: __1.TaskStatus.deleted });
166
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithLatestOutlierInDb);
167
+ });
168
+ it('recently is not the same as existing latest and it is deleted', () => {
169
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: false }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[80]), dueDate: rrule.all()[80].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.deleted });
170
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.DoNothing);
171
+ });
172
+ it('recently just completed and there is no existing', () => {
173
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: false }, null, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[0]), dueDate: rrule.all()[0].getTime(), status: __1.TaskStatus.completed });
174
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithRecentlyUpdatedOutlier);
175
+ });
176
+ });
177
+ describe('repeatAfterCompletion = true', () => {
178
+ it('existing LatestCompleted already latest', () => {
179
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: true }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[99]), dueDate: rrule.all()[99].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.completed });
180
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.DoNothing);
181
+ });
182
+ it('existing LatestCompleted is invalid, recently updated is older', () => {
183
+ const rrule2 = new rrule_1.RRule({
184
+ dtstart,
185
+ freq: rrule_1.Frequency.DAILY,
186
+ count: 101,
187
+ });
188
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: true }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule2.all()[100]), dueDate: rrule2.all()[100].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.completed });
189
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.DoNothing);
190
+ });
191
+ it('existing LatestCompleted is invalid and recently updated is newer', () => {
192
+ const rrule2 = new rrule_1.RRule({
193
+ dtstart: oldDtstart,
194
+ freq: rrule_1.Frequency.DAILY,
195
+ count: 101,
196
+ });
197
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: true }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule2.all()[1]), dueDate: rrule2.all()[1].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.completed });
198
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithRecentlyUpdatedOutlier);
199
+ });
200
+ it('recently updated is newer', () => {
201
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: true }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[80]), dueDate: rrule.all()[80].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.completed });
202
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithRecentlyUpdatedOutlier);
203
+ });
204
+ it('no existing LatestCompleted', () => {
205
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: true }, null, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.completed });
206
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithRecentlyUpdatedOutlier);
207
+ });
208
+ it('recently is the same as existing latest and it is deleted', () => {
209
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: true }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[80]), dueDate: rrule.all()[80].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[80]), dueDate: rrule.all()[80].getTime(), status: __1.TaskStatus.deleted });
210
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithLatestOutlierInDb);
211
+ });
212
+ it('recently is not the same as existing latest and it is deleted', () => {
213
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: true }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[80]), dueDate: rrule.all()[80].getTime() }, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[90]), dueDate: rrule.all()[90].getTime(), status: __1.TaskStatus.deleted });
214
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.DoNothing);
215
+ });
216
+ it('recently just completed and there is no existing', () => {
217
+ const latestCompletedAction = (0, __1.getLatestCompletedAction)({ taskId, recurrence: rrule.toString(), repeatAfterCompletion: true }, null, { taskId: (0, __1.getOutlierIdByDate)(taskId, rrule.all()[0]), dueDate: rrule.all()[0].getTime(), status: __1.TaskStatus.completed });
218
+ (0, chai_1.expect)(latestCompletedAction).equal(__1.LatestCompletedAction.UpdateWithRecentlyUpdatedOutlier);
219
+ });
220
+ });
221
+ });
222
+ describe('getCalculatedOutlierId', () => {
223
+ it('daily task, until in the past', () => {
224
+ sinon.useFakeTimers(new Date(2022, 3, 10));
225
+ const recurrence = 'DTSTART;TZID=America/Los_Angeles:20220312T235900;RRULE:INTERVAL=1;UNTIL=20220312T225900;FREQ=DAILY';
226
+ const baseTaskId = (0, uuid_1.v4)();
227
+ const outlierId = (0, __1.getCalculatedOutlierId)({ recurrence, baseTaskId, repeatAfterCompletion: false });
228
+ (0, chai_1.expect)(outlierId).eq(`${baseTaskId}_2022-03-13`);
229
+ });
230
+ });
231
+ describe('getNewRACRecurrenceBasedOnOutlierId', () => {
232
+ it('daily never completed RAC task outlier (TK-4709)', () => {
233
+ const recurrence = 'DTSTART;TZID=Europe/Vienna:20230125T160000\nRRULE:FREQ=DAILY;INTERVAL=1';
234
+ const lastCompletedRecurrenceDueDate = undefined;
235
+ const baseTaskId = (0, uuid_1.v4)();
236
+ const outlierId = (0, __1.getCalculatedOutlierId)({ recurrence, baseTaskId, repeatAfterCompletion: true, lastCompletedRecurrenceDueDate });
237
+ (0, chai_1.expect)(outlierId).eq(`${baseTaskId}_2023-01-25`);
238
+ });
239
+ it('daily RAC task in different timezone completed the same UTC day (TK-4709)', () => {
240
+ const recurrence = 'DTSTART;TZID=Pacific/Tongatapu:20230117T120000\nRRULE:FREQ=DAILY;INTERVAL=1'; // GMT+13
241
+ const lastCompletedRecurrenceDueDate = 1673930207303; // Tue Jan 17 2023 05:36:47 GMT+0100
242
+ const baseTaskId = (0, uuid_1.v4)();
243
+ const outlierId = (0, __1.getCalculatedOutlierId)({ recurrence, baseTaskId, repeatAfterCompletion: true, lastCompletedRecurrenceDueDate });
244
+ (0, chai_1.expect)(outlierId).eq(`${baseTaskId}_2023-01-18`);
245
+ });
246
+ });
247
+ });
248
+ //# sourceMappingURL=outlier.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlier.spec.js","sourceRoot":"","sources":["../../../src/helpers/outlier.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rrule.d.ts","sourceRoot":"","sources":["../../../src/helpers/rrule.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAO9B,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/E,qBAAa,cAAc;gBACb,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAG1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,QAE7C;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAKnE;AACD;;IAEI;AACJ,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAM9D;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,GACf,cAAc,CAWhB;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,QAGpF;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAW1E"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2021-present Evernote Corporation. All rights reserved.
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.zonedDateToRecurrenceDate = exports.recurrenceDateToDate = exports.fromRRuleUTCToRecurrenceDate = exports.parseRRuleStr = exports.isValidTimestamp = exports.validateRRuleStr = exports.RecurrenceDate = void 0;
10
+ const rrule_1 = require("rrule");
11
+ const utcToZonedTime_1 = __importDefault(require("date-fns-tz/utcToZonedTime"));
12
+ const zonedTimeToUtc_1 = __importDefault(require("date-fns-tz/zonedTimeToUtc"));
13
+ const date_1 = require("./date");
14
+ const en_rrule_1 = require("../en-rrule");
15
+ class RecurrenceDate {
16
+ constructor(init) {
17
+ Object.assign(this, init);
18
+ }
19
+ }
20
+ exports.RecurrenceDate = RecurrenceDate;
21
+ function validateRRuleStr(rrule) {
22
+ rrule_1.RRule.fromString(rrule);
23
+ }
24
+ exports.validateRRuleStr = validateRRuleStr;
25
+ function isValidTimestamp(timestamp, rruleStr) {
26
+ timestamp = (0, date_1.removeMillisFromTimestamp)(timestamp);
27
+ const rrule = en_rrule_1.EnRRule.fromString(rruleStr);
28
+ const instances = rrule.between(new Date(timestamp), new Date(timestamp), true);
29
+ return instances && instances.length === 1 ? true : false;
30
+ }
31
+ exports.isValidTimestamp = isValidTimestamp;
32
+ /**
33
+ * @deprecated we should use EnRRule instead of RRule
34
+ * */
35
+ function parseRRuleStr(rrule) {
36
+ try {
37
+ return rrule_1.RRule.fromString(rrule);
38
+ }
39
+ catch {
40
+ return undefined;
41
+ }
42
+ }
43
+ exports.parseRRuleStr = parseRRuleStr;
44
+ function fromRRuleUTCToRecurrenceDate(date, timeZone) {
45
+ const zonedDate = (0, utcToZonedTime_1.default)(date, timeZone);
46
+ return new RecurrenceDate({
47
+ year: zonedDate.getFullYear(),
48
+ // getMonth starts from 0 so we need to add 1
49
+ month: zonedDate.getMonth() + 1,
50
+ day: zonedDate.getDate(),
51
+ hour: zonedDate.getHours(),
52
+ minute: zonedDate.getMinutes(),
53
+ second: zonedDate.getSeconds(),
54
+ });
55
+ }
56
+ exports.fromRRuleUTCToRecurrenceDate = fromRRuleUTCToRecurrenceDate;
57
+ function recurrenceDateToDate(recurrenceDate, timeZone) {
58
+ const date = new Date(recurrenceDate.year, recurrenceDate.month - 1, recurrenceDate.day, recurrenceDate.hour, recurrenceDate.minute, recurrenceDate.second);
59
+ return (0, zonedTimeToUtc_1.default)(date, timeZone);
60
+ }
61
+ exports.recurrenceDateToDate = recurrenceDateToDate;
62
+ function zonedDateToRecurrenceDate(zonedDate, timeZone) {
63
+ zonedDate = (0, date_1.toRRuleUTC)(zonedDate, timeZone);
64
+ return new RecurrenceDate({
65
+ year: zonedDate.getUTCFullYear(),
66
+ // getMonth starts from 0 so we need to add 1
67
+ month: zonedDate.getUTCMonth() + 1,
68
+ day: zonedDate.getUTCDate(),
69
+ hour: zonedDate.getUTCHours(),
70
+ minute: zonedDate.getUTCMinutes(),
71
+ second: zonedDate.getUTCSeconds(),
72
+ });
73
+ }
74
+ exports.zonedDateToRecurrenceDate = zonedDateToRecurrenceDate;
75
+ //# sourceMappingURL=rrule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rrule.js","sourceRoot":"","sources":["../../../src/helpers/rrule.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,iCAA8B;AAC9B,gFAAwD;AACxD,gFAAwD;AAExD,iCAA+D;AAC/D,0CAAsC;AAGtC,MAAa,cAAc;IACzB,YAAY,IAA8B;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CAOF;AAVD,wCAUC;AAGD,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,aAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAFD,4CAEC;AAED,SAAgB,gBAAgB,CAAC,SAAiB,EAAE,QAAgB;IAClE,SAAS,GAAG,IAAA,gCAAyB,EAAC,SAAS,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,kBAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;IAChF,OAAO,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5D,CAAC;AALD,4CAKC;AACD;;IAEI;AACJ,SAAgB,aAAa,CAAC,KAAa;IACzC,IAAI;QACF,OAAO,aAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KAChC;IAAC,MAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAND,sCAMC;AAED,SAAgB,4BAA4B,CAC1C,IAAU,EACV,QAAgB;IAEhB,MAAM,SAAS,GAAI,IAAA,wBAAc,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClD,OAAO,IAAI,cAAc,CAAC;QACxB,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE;QAC7B,6CAA6C;QAC7C,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAoB;QAClD,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE;QACxB,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE;QAC1B,MAAM,EAAE,SAAS,CAAC,UAAU,EAAE;QAC9B,MAAM,EAAE,SAAS,CAAC,UAAU,EAAE;KAC/B,CAAC,CAAC;AACL,CAAC;AAdD,oEAcC;AAED,SAAgB,oBAAoB,CAAC,cAA8B,EAAE,QAAgB;IACnF,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5J,OAAO,IAAA,wBAAc,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAHD,oDAGC;AAED,SAAgB,yBAAyB,CAAC,SAAe,EAAE,QAAgB;IACzE,SAAS,GAAG,IAAA,iBAAU,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,IAAI,cAAc,CAAC;QACxB,IAAI,EAAE,SAAS,CAAC,cAAc,EAAE;QAChC,6CAA6C;QAC7C,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,GAAG,CAAoB;QACrD,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE;QAC3B,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE;QAC7B,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE;QACjC,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE;KAClC,CAAC,CAAC;AACL,CAAC;AAXD,8DAWC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rrule.spec.d.ts","sourceRoot":"","sources":["../../../src/helpers/rrule.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2021-present Evernote Corporation. All rights reserved.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const __1 = require("..");
7
+ const chai_1 = require("chai");
8
+ const rrule_1 = require("rrule");
9
+ describe('rrule', () => {
10
+ it('isValidTimestamp - valid', () => {
11
+ const now = new Date();
12
+ const rrule = new rrule_1.RRule({
13
+ dtstart: now,
14
+ freq: rrule_1.Frequency.HOURLY,
15
+ });
16
+ const instances = rrule.between(now, new Date(new Date().setDate(new Date().getDate() + 10)));
17
+ let instancesValidated = false;
18
+ for (const instance of instances) {
19
+ instancesValidated = true;
20
+ (0, chai_1.expect)((0, __1.isValidTimestamp)(instance.getTime(), rrule.toString())).to.be.true;
21
+ }
22
+ (0, chai_1.expect)(instancesValidated).to.be.true;
23
+ });
24
+ it('isValidTimestamp - invalid', () => {
25
+ const now = new Date();
26
+ const rrule = new rrule_1.RRule({
27
+ dtstart: now,
28
+ freq: rrule_1.Frequency.HOURLY,
29
+ });
30
+ const instances = rrule.between(now, new Date(new Date().setDate(new Date().getDate() + 10)));
31
+ let instancesValidated = false;
32
+ for (const instance of instances) {
33
+ instancesValidated = true;
34
+ (0, chai_1.expect)((0, __1.isValidTimestamp)(instance.setMinutes(instance.getMinutes() + 20), rrule.toString())).to.be.false;
35
+ }
36
+ (0, chai_1.expect)(instancesValidated).to.be.true;
37
+ });
38
+ it('parseRRuleStr - valid ', () => {
39
+ const rule = (0, __1.parseRRuleStr)('DTSTART:20120201T023000Z\nRRULE:FREQ=MONTHLY;COUNT=5');
40
+ (0, chai_1.expect)(rule instanceof rrule_1.RRule).to.be.true;
41
+ });
42
+ it('parseRRuleStr - invalid', () => {
43
+ const rule = (0, __1.parseRRuleStr)('1');
44
+ (0, chai_1.expect)(rule).to.be.undefined;
45
+ });
46
+ it('fromRRuleUTCToRecurrenceDate', () => {
47
+ const tz = 'Asia/Tokyo';
48
+ let date = new Date('2021-12-04T09:00:00.000+09:00');
49
+ let recurrence = (0, __1.fromRRuleUTCToRecurrenceDate)(date, tz);
50
+ (0, chai_1.expect)(recurrence.year).to.eq(2021);
51
+ (0, chai_1.expect)(recurrence.month).to.eq(12);
52
+ (0, chai_1.expect)(recurrence.day).to.eq(4);
53
+ (0, chai_1.expect)(recurrence.hour).to.eq(9);
54
+ (0, chai_1.expect)(recurrence.minute).to.eq(0);
55
+ (0, chai_1.expect)(recurrence.second).to.eq(0);
56
+ date = new Date('2021-12-04T08:00:00.000+09:00');
57
+ recurrence = (0, __1.fromRRuleUTCToRecurrenceDate)(date, tz);
58
+ (0, chai_1.expect)(recurrence.year).to.eq(2021);
59
+ (0, chai_1.expect)(recurrence.month).to.eq(12);
60
+ (0, chai_1.expect)(recurrence.day).to.eq(4);
61
+ (0, chai_1.expect)(recurrence.hour).to.eq(8);
62
+ (0, chai_1.expect)(recurrence.minute).to.eq(0);
63
+ (0, chai_1.expect)(recurrence.second).to.eq(0);
64
+ });
65
+ it('recurrenceDateToDate', () => {
66
+ let tz = 'Asia/Tokyo';
67
+ let date = new Date('2021-12-04T09:00:00.000+09:00');
68
+ let convertedDate = (0, __1.recurrenceDateToDate)(new __1.RecurrenceDate({
69
+ year: 2021,
70
+ month: 12,
71
+ day: 4,
72
+ hour: 9,
73
+ minute: 0,
74
+ second: 0,
75
+ }), tz);
76
+ (0, chai_1.expect)(convertedDate.toISOString()).eq(date.toISOString());
77
+ date = new Date('2021-12-04T08:00:00.000+09:00');
78
+ convertedDate = (0, __1.recurrenceDateToDate)(new __1.RecurrenceDate({
79
+ year: 2021,
80
+ month: 12,
81
+ day: 4,
82
+ hour: 8,
83
+ minute: 0,
84
+ second: 0,
85
+ }), tz);
86
+ (0, chai_1.expect)(convertedDate.toISOString()).eq(date.toISOString());
87
+ tz = 'America/Los_Angeles';
88
+ date = new Date('2021-12-04T23:00:00.000-08:00');
89
+ convertedDate = (0, __1.recurrenceDateToDate)(new __1.RecurrenceDate({
90
+ year: 2021,
91
+ month: 12,
92
+ day: 4,
93
+ hour: 23,
94
+ minute: 0,
95
+ second: 0,
96
+ }), tz);
97
+ (0, chai_1.expect)(convertedDate.toISOString()).eq(date.toISOString());
98
+ });
99
+ });
100
+ //# sourceMappingURL=rrule.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rrule.spec.js","sourceRoot":"","sources":["../../../src/helpers/rrule.spec.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,0BAAyH;AACzH,+BAA8B;AAC9B,iCAAyC;AAEzC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC;YACtB,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,iBAAS,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9F,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,kBAAkB,GAAG,IAAI,CAAC;YAC1B,IAAA,aAAM,EAAC,IAAA,oBAAgB,EAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;SAC3E;QACD,IAAA,aAAM,EAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC;YACtB,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,iBAAS,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9F,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,kBAAkB,GAAG,IAAI,CAAC;YAC1B,IAAA,aAAM,EAAC,IAAA,oBAAgB,EAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;SACzG;QACD,IAAA,aAAM,EAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,IAAI,GAAG,IAAA,iBAAa,EAAC,sDAAsD,CAAC,CAAC;QACnF,IAAA,aAAM,EAAC,IAAI,YAAY,aAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,IAAI,GAAG,IAAA,iBAAa,EAAC,GAAG,CAAC,CAAC;QAChC,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAE,EAAE;QACrC,MAAM,EAAE,GAAG,YAAY,CAAC;QACxB,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACrD,IAAI,UAAU,GAAG,IAAA,gCAA4B,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxD,IAAA,aAAM,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACpC,IAAA,aAAM,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChC,IAAA,aAAM,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnC,IAAI,GAAG,IAAI,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACjD,UAAU,GAAG,IAAA,gCAA4B,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,IAAA,aAAM,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACpC,IAAA,aAAM,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChC,IAAA,aAAM,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAE,EAAE;QAC7B,IAAI,EAAE,GAAG,YAAY,CAAC;QACtB,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACrD,IAAI,aAAa,GAAG,IAAA,wBAAoB,EAAC,IAAI,kBAAc,CAAC;YAC1D,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;SACV,CAAC,EAAE,EAAE,CAAC,CAAC;QACR,IAAA,aAAM,EAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAE3D,IAAI,GAAG,IAAI,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACjD,aAAa,GAAG,IAAA,wBAAoB,EAAC,IAAI,kBAAc,CAAC;YACtD,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;SACV,CAAC,EAAE,EAAE,CAAC,CAAC;QACR,IAAA,aAAM,EAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAE3D,EAAE,GAAG,qBAAqB,CAAC;QAC3B,IAAI,GAAG,IAAI,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACjD,aAAa,GAAG,IAAA,wBAAoB,EAAC,IAAI,kBAAc,CAAC;YACtD,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;SACV,CAAC,EAAE,EAAE,CAAC,CAAC;QACR,IAAA,aAAM,EAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2021-present Evernote Corporation. All rights reserved.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./helpers/outlier"), exports);
21
+ __exportStar(require("./helpers/rrule"), exports);
22
+ __exportStar(require("./helpers/date"), exports);
23
+ __exportStar(require("./en-rrule"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,oDAAkC;AAClC,kDAAgC;AAChC,iDAA+B;AAC/B,6CAA2B"}