@social-mail/shared 1.0.13 → 1.0.15
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/.vscode/settings.json +2 -0
- package/dist/ical-parser/Calender.d.ts +16 -0
- package/dist/ical-parser/Calender.d.ts.map +1 -0
- package/dist/ical-parser/Calender.js +162 -0
- package/dist/ical-parser/Calender.js.map +1 -0
- package/dist/ical-parser/parseDate.d.ts +2 -0
- package/dist/ical-parser/parseDate.d.ts.map +1 -0
- package/dist/ical-parser/parseDate.js +37 -0
- package/dist/ical-parser/parseDate.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/mime-parser/stream/LineStream.d.ts +4 -0
- package/dist/mime-parser/stream/LineStream.d.ts.map +1 -1
- package/dist/mime-parser/stream/LineStream.js +27 -0
- package/dist/mime-parser/stream/LineStream.js.map +1 -1
- package/dist/mime-parser/tokenizer.d.ts +1 -0
- package/dist/mime-parser/tokenizer.d.ts.map +1 -1
- package/dist/mime-parser/tokenizer.js +25 -0
- package/dist/mime-parser/tokenizer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/ical-parser/Calender.ts +127 -0
- package/src/ical-parser/parseDate.ts +50 -0
- package/src/mime-parser/stream/LineStream.js +25 -0
- package/src/mime-parser/tokenizer.js +26 -0
- package/src/tests/ical-parser/cal.test.js +54 -0
- package/dist/tests/mime/lines-test.d.ts +0 -2
- package/dist/tests/mime/lines-test.d.ts.map +0 -1
- package/dist/tests/mime/lines-test.js +0 -19
- package/dist/tests/mime/lines-test.js.map +0 -1
- package/dist/tests/mime/message1.d.ts +0 -2
- package/dist/tests/mime/message1.d.ts.map +0 -1
- package/dist/tests/mime/message1.js +0 -58
- package/dist/tests/mime/message1.js.map +0 -1
- package/dist/tests/mime/message2.d.ts +0 -2
- package/dist/tests/mime/message2.d.ts.map +0 -1
- package/dist/tests/mime/message2.js +0 -76
- package/dist/tests/mime/message2.js.map +0 -1
- package/dist/tests/mime/message3.d.ts +0 -2
- package/dist/tests/mime/message3.d.ts.map +0 -1
- package/dist/tests/mime/message3.js +0 -89
- package/dist/tests/mime/message3.js.map +0 -1
- package/dist/tests/mime/pairs.d.ts +0 -2
- package/dist/tests/mime/pairs.d.ts.map +0 -1
- package/dist/tests/mime/pairs.js +0 -33
- package/dist/tests/mime/pairs.js.map +0 -1
- package/dist/tests/mime/parse-headers.d.ts +0 -2
- package/dist/tests/mime/parse-headers.d.ts.map +0 -1
- package/dist/tests/mime/parse-headers.js +0 -104
- package/dist/tests/mime/parse-headers.js.map +0 -1
- package/dist/tests/mime/parse-headers2.d.ts +0 -2
- package/dist/tests/mime/parse-headers2.d.ts.map +0 -1
- package/dist/tests/mime/parse-headers2.js +0 -90
- package/dist/tests/mime/parse-headers2.js.map +0 -1
- package/dist/tests/mime/word-encoding-test.d.ts +0 -2
- package/dist/tests/mime/word-encoding-test.d.ts.map +0 -1
- package/dist/tests/mime/word-encoding-test.js +0 -21
- package/dist/tests/mime/word-encoding-test.js.map +0 -1
package/.vscode/settings.json
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import LineStream from "../mime-parser/stream/LineStream.js";
|
|
2
|
+
export declare class CalendarEvent {
|
|
3
|
+
#private;
|
|
4
|
+
static parse(text: string | string[]): CalendarEvent;
|
|
5
|
+
get startDate(): any;
|
|
6
|
+
get endDate(): any;
|
|
7
|
+
get timestamp(): any;
|
|
8
|
+
set timestamp(v: any);
|
|
9
|
+
get summary(): any;
|
|
10
|
+
set summary(v: any);
|
|
11
|
+
}
|
|
12
|
+
export default class Calendar {
|
|
13
|
+
static parse(stream: string | LineStream): Promise<Calendar>;
|
|
14
|
+
events: CalendarEvent[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=Calender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Calender.d.ts","sourceRoot":"","sources":["../../src/ical-parser/Calender.ts"],"names":[],"mappings":"AAAA,OAAO,UAAgC,MAAM,qCAAqC,CAAC;AAInF,qBAAa,aAAa;;IAEtB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAsCpC,IAAI,SAAS,QAGZ;IAED,IAAI,OAAO,QAEV;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,SAAS,CAAC,CAAC,KAAA,EAEd;IAED,IAAI,OAAO,QAEV;IAED,IAAI,OAAO,CAAC,CAAC,KAAA,EAEZ;CAEJ;AAED,MAAM,CAAC,OAAO,OAAO,QAAQ;WAEZ,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAmD9C,MAAM,EAAE,aAAa,EAAE,CAAM;CAEhC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
System.register(["tslib", "../mime-parser/stream/LineStream.js", "../mime-parser/tokenizer.js", "./parseDate.js"], function (_export, _context) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var __asyncValues, __awaiter, __classPrivateFieldGet, __classPrivateFieldSet, StringLineStream, tokenizeMax, tokenizeRFCHeaders, parseDate, CalendarEvent, Calendar, _CalendarEvent_startDate, _CalendarEvent_endDate, _CalendarEvent_timestamp;
|
|
5
|
+
_export({
|
|
6
|
+
CalendarEvent: void 0,
|
|
7
|
+
default: void 0
|
|
8
|
+
});
|
|
9
|
+
return {
|
|
10
|
+
setters: [function (_tslib) {
|
|
11
|
+
__asyncValues = _tslib.__asyncValues;
|
|
12
|
+
__awaiter = _tslib.__awaiter;
|
|
13
|
+
__classPrivateFieldGet = _tslib.__classPrivateFieldGet;
|
|
14
|
+
__classPrivateFieldSet = _tslib.__classPrivateFieldSet;
|
|
15
|
+
}, function (_mimeParserStreamLineStreamJs) {
|
|
16
|
+
StringLineStream = _mimeParserStreamLineStreamJs.StringLineStream;
|
|
17
|
+
}, function (_mimeParserTokenizerJs) {
|
|
18
|
+
tokenizeMax = _mimeParserTokenizerJs.tokenizeMax;
|
|
19
|
+
tokenizeRFCHeaders = _mimeParserTokenizerJs.tokenizeRFCHeaders;
|
|
20
|
+
}, function (_parseDateJs) {
|
|
21
|
+
parseDate = _parseDateJs.default;
|
|
22
|
+
}],
|
|
23
|
+
execute: function () {
|
|
24
|
+
_export("CalendarEvent", CalendarEvent = class CalendarEvent {
|
|
25
|
+
constructor() {
|
|
26
|
+
_CalendarEvent_startDate.set(this, void 0);
|
|
27
|
+
_CalendarEvent_endDate.set(this, void 0);
|
|
28
|
+
_CalendarEvent_timestamp.set(this, void 0);
|
|
29
|
+
}
|
|
30
|
+
static parse(text) {
|
|
31
|
+
const gen = typeof text === "string" ? tokenizeRFCHeaders(text) : text;
|
|
32
|
+
const ce = new CalendarEvent();
|
|
33
|
+
for (const line of gen) {
|
|
34
|
+
if (/^BEGIN\:\s*VEVENT$/.test(line)) {
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
for (const line of gen) {
|
|
39
|
+
const [key, value] = tokenizeMax(line, ":", 2);
|
|
40
|
+
if (key === "END" && value === "VEVENT") {
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
const subTokens = tokenizeMax(key, ";", 2);
|
|
44
|
+
if (subTokens.length > 1) {
|
|
45
|
+
const [k, suffix] = subTokens;
|
|
46
|
+
ce[k] = suffix + ":" + value;
|
|
47
|
+
} else {
|
|
48
|
+
ce[key] = value;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return ce;
|
|
52
|
+
}
|
|
53
|
+
get startDate() {
|
|
54
|
+
var _a;
|
|
55
|
+
return __classPrivateFieldSet(this, _CalendarEvent_startDate, (_a = __classPrivateFieldGet(this, _CalendarEvent_startDate, "f")) !== null && _a !== void 0 ? _a : parseDate(this["DTSTART"]), "f");
|
|
56
|
+
}
|
|
57
|
+
get endDate() {
|
|
58
|
+
var _a;
|
|
59
|
+
return __classPrivateFieldSet(this, _CalendarEvent_endDate, (_a = __classPrivateFieldGet(this, _CalendarEvent_endDate, "f")) !== null && _a !== void 0 ? _a : parseDate(this["DTEND"]), "f");
|
|
60
|
+
}
|
|
61
|
+
get timestamp() {
|
|
62
|
+
var _a;
|
|
63
|
+
return __classPrivateFieldSet(this, _CalendarEvent_timestamp, (_a = __classPrivateFieldGet(this, _CalendarEvent_timestamp, "f")) !== null && _a !== void 0 ? _a : parseDate(this["DTSTAMP"]), "f");
|
|
64
|
+
}
|
|
65
|
+
set timestamp(v) {
|
|
66
|
+
this["DTSTAMP"] = v.toJSON();
|
|
67
|
+
}
|
|
68
|
+
get summary() {
|
|
69
|
+
var _a;
|
|
70
|
+
return (_a = this["SUMMARY"]) !== null && _a !== void 0 ? _a : "";
|
|
71
|
+
}
|
|
72
|
+
set summary(v) {
|
|
73
|
+
this["SUMMARY"] = v;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
_CalendarEvent_startDate = new WeakMap(), _CalendarEvent_endDate = new WeakMap(), _CalendarEvent_timestamp = new WeakMap();
|
|
77
|
+
_export("default", Calendar = class Calendar {
|
|
78
|
+
constructor() {
|
|
79
|
+
this.events = [];
|
|
80
|
+
}
|
|
81
|
+
static parse(stream) {
|
|
82
|
+
var _a, e_1, _b, _c, _d, e_2, _e, _f;
|
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
+
if (typeof stream === "string") {
|
|
85
|
+
stream = new StringLineStream(stream);
|
|
86
|
+
}
|
|
87
|
+
const c = new Calendar();
|
|
88
|
+
try {
|
|
89
|
+
for (var _g = true, _h = __asyncValues(stream.read()), _j; _j = yield _h.next(), _a = _j.done, !_a;) {
|
|
90
|
+
_c = _j.value;
|
|
91
|
+
_g = false;
|
|
92
|
+
try {
|
|
93
|
+
const line = _c;
|
|
94
|
+
if (/^BEGIN\:\s*VCALENDAR$/.test(line)) {
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
} finally {
|
|
98
|
+
_g = true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
} catch (e_1_1) {
|
|
102
|
+
e_1 = {
|
|
103
|
+
error: e_1_1
|
|
104
|
+
};
|
|
105
|
+
} finally {
|
|
106
|
+
try {
|
|
107
|
+
if (!_g && !_a && (_b = _h.return)) yield _b.call(_h);
|
|
108
|
+
} finally {
|
|
109
|
+
if (e_1) throw e_1.error;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
let eventLines = null;
|
|
113
|
+
try {
|
|
114
|
+
for (var _k = true, _l = __asyncValues(stream.readRFCHeaders()), _m; _m = yield _l.next(), _d = _m.done, !_d;) {
|
|
115
|
+
_f = _m.value;
|
|
116
|
+
_k = false;
|
|
117
|
+
try {
|
|
118
|
+
const line = _f;
|
|
119
|
+
if (/^END\:\s*VCALENDAR$/.test(line)) {
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
if (/^BEGIN\:\s*VEVENT$/.test(line)) {
|
|
123
|
+
if (eventLines) {
|
|
124
|
+
throw new Error("Nested Events are not supported");
|
|
125
|
+
}
|
|
126
|
+
eventLines = [line];
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
if (eventLines) {
|
|
130
|
+
if (/^END\:\s*VEVENT$/.test(line)) {
|
|
131
|
+
c.events.push(CalendarEvent.parse(eventLines));
|
|
132
|
+
eventLines = null;
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
eventLines.push(line);
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
const [key, value] = tokenizeMax(line, ":", 2);
|
|
139
|
+
c[key] = value;
|
|
140
|
+
} finally {
|
|
141
|
+
_k = true;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
} catch (e_2_1) {
|
|
145
|
+
e_2 = {
|
|
146
|
+
error: e_2_1
|
|
147
|
+
};
|
|
148
|
+
} finally {
|
|
149
|
+
try {
|
|
150
|
+
if (!_k && !_d && (_e = _l.return)) yield _e.call(_l);
|
|
151
|
+
} finally {
|
|
152
|
+
if (e_2) throw e_2.error;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return c;
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
});
|
|
162
|
+
//# sourceMappingURL=Calender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CalendarEvent","Calendar","_CalendarEvent_startDate","_CalendarEvent_endDate","_CalendarEvent_timestamp","_export","default","setters","_tslib","StringLineStream","_mimeParserStreamLineStreamJs","_mimeParserTokenizerJs","tokenizeMax","tokenizeRFCHeaders","_parseDateJs","parseDate","execute","constructor","set","parse","text","gen","ce","line","test","key","value","subTokens","length","k","suffix","startDate","__classPrivateFieldSet","_a","__classPrivateFieldGet","endDate","timestamp","v","toJSON","summary","events","stream","c","_g","_h","__asyncValues","read","_j","next","done","_c","eventLines","_k","_l","readRFCHeaders","_m","_d","_f","Error","push"],"sources":["../../src/ical-parser/Calender.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseDate.d.ts","sourceRoot":"","sources":["../../src/ical-parser/parseDate.ts"],"names":[],"mappings":"AAwCA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,IAAI,EAAE,MAAM,QAS7C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
System.register([], function (_export, _context) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var changeTimezone, toDate;
|
|
5
|
+
function parseDate(text) {
|
|
6
|
+
const g = /TZID\=([^\:]+)\:(.*)/.exec(text);
|
|
7
|
+
if (g) {
|
|
8
|
+
const [_, timeZone, date] = g;
|
|
9
|
+
return changeTimezone(toDate(date), timeZone);
|
|
10
|
+
}
|
|
11
|
+
return toDate(text);
|
|
12
|
+
}
|
|
13
|
+
_export("default", parseDate);
|
|
14
|
+
return {
|
|
15
|
+
setters: [],
|
|
16
|
+
execute: function () {
|
|
17
|
+
changeTimezone = (date, ianatz) => {
|
|
18
|
+
var invdate = new Date(date.toLocaleString('en-US', {
|
|
19
|
+
timeZone: ianatz
|
|
20
|
+
}));
|
|
21
|
+
var diff = date.getTime() - invdate.getTime();
|
|
22
|
+
return new Date(date.getTime() - diff);
|
|
23
|
+
};
|
|
24
|
+
toDate = text => {
|
|
25
|
+
let g = /^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})(Z)?$/.exec(text);
|
|
26
|
+
if (g) {
|
|
27
|
+
return new Date(parseInt(g[1], 10), parseInt(g[2], 10) - 1, parseInt(g[3], 10), parseInt(g[4], 10), parseInt(g[5], 10), parseInt(g[6], 10));
|
|
28
|
+
}
|
|
29
|
+
g = /^(\d{4})(\d{2})(\d{2})$/.exec(text);
|
|
30
|
+
if (g) {
|
|
31
|
+
return new Date(parseInt(g[1], 10), parseInt(g[2], 10) - 1, parseInt(g[3], 10));
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=parseDate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parseDate","text","g","exec","_","timeZone","date","changeTimezone","toDate","_export","setters","execute","ianatz","invdate","Date","toLocaleString","diff","getTime","parseInt"],"sources":["../../src/ical-parser/parseDate.ts"],"sourcesContent":[null],"mappings":";;;;EAwCc,SAAUA,SAASA,CAACC,IAAY;IAC1C,MAAMC,CAAC,GAAG,sBAAsB,CAACC,IAAI,CAACF,IAAI,CAAC;IAC3C,IAAIC,CAAC,EAAE;MACH,MAAM,CAACE,CAAC,EAAEC,QAAQ,EAAEC,IAAI,CAAC,GAAGJ,CAAC;MAE7B,OAAOK,cAAc,CAACC,MAAM,CAACF,IAAI,CAAC,EAAED,QAAQ,CAAC;;IAGjD,OAAOG,MAAM,CAACP,IAAI,CAAC;EACvB;EAACQ,OAAA,YATuBT,SAAS;EAAA;IAAAU,OAAA;IAAAC,OAAA,WAAAA,CAAA;MAxC3BJ,cAAc,GAAGA,CAACD,IAAI,EAAEM,MAAM,KAAI;QAGpC,IAAIC,OAAO,GAAG,IAAIC,IAAI,CAACR,IAAI,CAACS,cAAc,CAAC,OAAO,EAAE;UACpDV,QAAQ,EAAEO;SACT,CAAC,CAAC;QAIH,IAAII,IAAI,GAAGV,IAAI,CAACW,OAAO,EAAE,GAAGJ,OAAO,CAACI,OAAO,EAAE;QAG7C,OAAO,IAAIH,IAAI,CAACR,IAAI,CAACW,OAAO,EAAE,GAAGD,IAAI,CAAC;MAE1C,CAAC;MAGKR,MAAM,GAAIP,IAAY,IAAI;QAE5B,IAAIC,CAAC,GAAG,mDAAmD,CAACC,IAAI,CAACF,IAAI,CAAC;QACtE,IAAIC,CAAC,EAAE;UACH,OAAO,IAAIY,IAAI,CACXI,QAAQ,CAAChB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAClBgB,QAAQ,CAAChB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAC,CAAC,EACpBgB,QAAQ,CAAChB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAClBgB,QAAQ,CAAChB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAClBgB,QAAQ,CAAChB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAClBgB,QAAQ,CAAChB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACrB;;QAELA,CAAC,GAAG,yBAAyB,CAACC,IAAI,CAACF,IAAI,CAAC;QACxC,IAAIC,CAAC,EAAE;UACH,OAAO,IAAIY,IAAI,CACXI,QAAQ,CAAChB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAClBgB,QAAQ,CAAChB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAC,CAAC,EACpBgB,QAAQ,CAAChB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB;;MAEX,CAAC;IAAA;EAAA;AAAA","ignoreList":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
declare module "src/mime-parser/tokenizer" {
|
|
2
2
|
export function tokenize(text: string, sep?: string): {};
|
|
3
|
+
export function tokenizeRFCHeaders(text: string): {};
|
|
3
4
|
export function tokenizeMax(text: string, sep: string, max?: number): string[];
|
|
4
5
|
}
|
|
5
6
|
declare module "src/mime-parser/stream/LineStream" {
|
|
@@ -9,6 +10,10 @@ declare module "src/mime-parser/stream/LineStream" {
|
|
|
9
10
|
* @returns {AsyncGenerator<string, any, any>}
|
|
10
11
|
*/
|
|
11
12
|
read(): AsyncGenerator<string, any, any>;
|
|
13
|
+
/**
|
|
14
|
+
* @returns {AsyncGenerator<string, any, any>}
|
|
15
|
+
*/
|
|
16
|
+
readRFCHeaders(): AsyncGenerator<string, any, any>;
|
|
12
17
|
/** @returns {AsyncGenerator<string, any,any>} */
|
|
13
18
|
lines(): AsyncGenerator<string, any, any>;
|
|
14
19
|
}
|
|
@@ -4,6 +4,10 @@ export default class LineStream {
|
|
|
4
4
|
* @returns {AsyncGenerator<string, any, any>}
|
|
5
5
|
*/
|
|
6
6
|
read(): AsyncGenerator<string, any, any>;
|
|
7
|
+
/**
|
|
8
|
+
* @returns {AsyncGenerator<string, any, any>}
|
|
9
|
+
*/
|
|
10
|
+
readRFCHeaders(): AsyncGenerator<string, any, any>;
|
|
7
11
|
/** @returns {AsyncGenerator<string, any,any>} */
|
|
8
12
|
lines(): AsyncGenerator<string, any, any>;
|
|
9
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineStream.d.ts","sourceRoot":"","sources":["../../../src/mime-parser/stream/LineStream.js"],"names":[],"mappings":"AAEA;IAEI,+CAA+C,CAAC,oCAAE;IAElD;;OAEG;IACH,yCASC;IAED,iDAAiD;IACjD,0CAEC;CACJ;AAED;IAII,kBAAwB,MAAM,EAG7B;IALD,qBAAqB,CAAC,MAAX,MAAM,CAAU;CAa9B;AAED;IAKI,sBAAwB,cAAc,EAGrC;IAND,6BAA6B;IAC7B,UADW,cAAc,CAChB;CAsCZ"}
|
|
1
|
+
{"version":3,"file":"LineStream.d.ts","sourceRoot":"","sources":["../../../src/mime-parser/stream/LineStream.js"],"names":[],"mappings":"AAEA;IAEI,+CAA+C,CAAC,oCAAE;IAElD;;OAEG;IACH,yCASC;IAED;;OAEG;IACH,mDAoBC;IAED,iDAAiD;IACjD,0CAEC;CACJ;AAED;IAII,kBAAwB,MAAM,EAG7B;IALD,qBAAqB,CAAC,MAAX,MAAM,CAAU;CAa9B;AAED;IAKI,sBAAwB,cAAc,EAGrC;IAND,6BAA6B;IAC7B,UADW,cAAc,CAChB;CAsCZ"}
|
|
@@ -32,6 +32,33 @@ System.register(["tslib", "../tokenizer.js"], function (_export, _context) {
|
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
+
readRFCHeaders() {
|
|
36
|
+
var _a;
|
|
37
|
+
return __asyncGenerator(this, arguments, function* readRFCHeaders_1() {
|
|
38
|
+
let last;
|
|
39
|
+
const g = (_a = this.g) !== null && _a !== void 0 ? _a : this.g = this.lines();
|
|
40
|
+
for (;;) {
|
|
41
|
+
const {
|
|
42
|
+
value,
|
|
43
|
+
done
|
|
44
|
+
} = yield __await(g.next());
|
|
45
|
+
if (done) {
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
if (/^\s+/i.test(value)) {
|
|
49
|
+
last += value.trimStart();
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (last) {
|
|
53
|
+
yield yield __await(last);
|
|
54
|
+
}
|
|
55
|
+
last = value;
|
|
56
|
+
}
|
|
57
|
+
if (last) {
|
|
58
|
+
yield yield __await(last);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
35
62
|
lines() {
|
|
36
63
|
throw new Error("Not Implemented");
|
|
37
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LineStream","StringLineStream","ReadableLineStream","_export","default","setters","_tslib","tokenize","_tokenizerJs","execute","read","g","_a","lines","value","done","__await","next","Error","constructor","text","iterator","readable","utf8Decoder","TextDecoder","reader","getReader","chunk","readerDone","decode","stream","re","startIndex","result","exec","remainder","substr","lastIndex","substring","index","length"],"sources":["../../../src/mime-parser/stream/LineStream.js"],"sourcesContent":[null],"mappings":";;;2CAEqBA,UAAU,
|
|
1
|
+
{"version":3,"names":["LineStream","StringLineStream","ReadableLineStream","_export","default","setters","_tslib","tokenize","_tokenizerJs","execute","read","g","_a","lines","value","done","__await","next","readRFCHeaders","last","test","trimStart","Error","constructor","text","iterator","readable","utf8Decoder","TextDecoder","reader","getReader","chunk","readerDone","decode","stream","re","startIndex","result","exec","remainder","substr","lastIndex","substring","index","length"],"sources":["../../../src/mime-parser/stream/LineStream.js"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export function tokenize(text: string, sep?: string): Generator<string, void, unknown>;
|
|
2
|
+
export function tokenizeRFCHeaders(text: string): Generator<string, void, unknown>;
|
|
2
3
|
export function tokenizeMax(text: string, sep: string, max?: number): string[];
|
|
3
4
|
//# sourceMappingURL=tokenizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/mime-parser/tokenizer.js"],"names":[],"mappings":"AAAA,+BACe,MAAM,QACN,MAAM,oCAWpB;AAGD,kCACe,MAAM,OACN,MAAM,QACN,MAAM,YAiBpB"}
|
|
1
|
+
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/mime-parser/tokenizer.js"],"names":[],"mappings":"AAAA,+BACe,MAAM,QACN,MAAM,oCAWpB;AAED,yCACe,MAAM,oCAuBpB;AAGD,kCACe,MAAM,OACN,MAAM,QACN,MAAM,YAiBpB"}
|
|
@@ -13,6 +13,29 @@ System.register([], function (_export, _context) {
|
|
|
13
13
|
}
|
|
14
14
|
yield text.substring(start);
|
|
15
15
|
}
|
|
16
|
+
function* tokenizeRFCHeaders(text) {
|
|
17
|
+
let start = 0;
|
|
18
|
+
const sep = "\n";
|
|
19
|
+
let last;
|
|
20
|
+
let stop = 0;
|
|
21
|
+
do {
|
|
22
|
+
const index = text.indexOf(sep, start);
|
|
23
|
+
stop = index === -1;
|
|
24
|
+
const line = stop ? text.substring(start) : text.substring(start, index);
|
|
25
|
+
if (/^\s+/i.test(line)) {
|
|
26
|
+
last += line.trimStart();
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (last) {
|
|
30
|
+
yield last;
|
|
31
|
+
}
|
|
32
|
+
last = line;
|
|
33
|
+
start = index + 1;
|
|
34
|
+
} while (stop);
|
|
35
|
+
if (last) {
|
|
36
|
+
yield last;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
16
39
|
function tokenizeMax(text, sep, max = Number.MAX_SAFE_INTEGER) {
|
|
17
40
|
let start = 0;
|
|
18
41
|
const items = [];
|
|
@@ -33,6 +56,7 @@ System.register([], function (_export, _context) {
|
|
|
33
56
|
}
|
|
34
57
|
_export({
|
|
35
58
|
tokenize: tokenize,
|
|
59
|
+
tokenizeRFCHeaders: tokenizeRFCHeaders,
|
|
36
60
|
tokenizeMax: tokenizeMax
|
|
37
61
|
});
|
|
38
62
|
return {
|
|
@@ -40,6 +64,7 @@ System.register([], function (_export, _context) {
|
|
|
40
64
|
execute: function () {
|
|
41
65
|
;
|
|
42
66
|
;
|
|
67
|
+
;
|
|
43
68
|
}
|
|
44
69
|
};
|
|
45
70
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tokenize","text","sep","start","index","indexOf","substring","tokenizeMax","max","Number","MAX_SAFE_INTEGER","items","push","_export","setters","execute"],"sources":["../../src/mime-parser/tokenizer.js"],"sourcesContent":[null],"mappings":";;;EAAM,UAAWA,QAAQA,CACCC,IAAI,EACJC,GAAG,GAAG,GAAG;IAC/B,IAAIC,KAAK,GAAG,CAAC;IACb,SAAQ;MACJ,MAAMC,KAAK,GAAGH,IAAI,CAACI,OAAO,CAACH,GAAG,EAAEC,KAAK,CAAC;MACtC,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;QACd;;MAEJ,MAAMH,IAAI,CAACK,SAAS,CAACH,KAAK,EAAEC,KAAK,CAAC;MAClCD,KAAK,GAAGC,KAAK,GAAG,CAAC;;IAErB,MAAMH,IAAI,CAACK,SAAS,CAACH,KAAK,CAAC;EAC/B;EAGM,
|
|
1
|
+
{"version":3,"names":["tokenize","text","sep","start","index","indexOf","substring","tokenizeRFCHeaders","last","stop","line","test","trimStart","tokenizeMax","max","Number","MAX_SAFE_INTEGER","items","push","_export","setters","execute"],"sources":["../../src/mime-parser/tokenizer.js"],"sourcesContent":[null],"mappings":";;;EAAM,UAAWA,QAAQA,CACCC,IAAI,EACJC,GAAG,GAAG,GAAG;IAC/B,IAAIC,KAAK,GAAG,CAAC;IACb,SAAQ;MACJ,MAAMC,KAAK,GAAGH,IAAI,CAACI,OAAO,CAACH,GAAG,EAAEC,KAAK,CAAC;MACtC,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;QACd;;MAEJ,MAAMH,IAAI,CAACK,SAAS,CAACH,KAAK,EAAEC,KAAK,CAAC;MAClCD,KAAK,GAAGC,KAAK,GAAG,CAAC;;IAErB,MAAMH,IAAI,CAACK,SAAS,CAACH,KAAK,CAAC;EAC/B;EAEM,UAAWI,kBAAkBA,CACTN,IAAI;IAE1B,IAAIE,KAAK,GAAG,CAAC;IACb,MAAMD,GAAG,GAAG,IAAI;IAChB,IAAIM,IAAI;IACR,IAAIC,IAAI,GAAG,CAAC;IACZ,GAAG;MACC,MAAML,KAAK,GAAGH,IAAI,CAACI,OAAO,CAACH,GAAG,EAAEC,KAAK,CAAC;MACtCM,IAAI,GAAGL,KAAK,KAAK,CAAC,CAAC;MACnB,MAAMM,IAAI,GAAGD,IAAI,GAAGR,IAAI,CAACK,SAAS,CAACH,KAAK,CAAC,GAAGF,IAAI,CAACK,SAAS,CAACH,KAAK,EAAEC,KAAK,CAAC;MACxE,IAAI,OAAO,CAACO,IAAI,CAACD,IAAI,CAAC,EAAE;QACpBF,IAAI,IAAIE,IAAI,CAACE,SAAS,EAAE;QACxB;;MAEJ,IAAIJ,IAAI,EAAE;QACN,MAAMA,IAAI;;MAEdA,IAAI,GAAGE,IAAI;MACXP,KAAK,GAAGC,KAAK,GAAG,CAAC;KACpB,QAAQK,IAAI;IACb,IAAID,IAAI,EAAE;MACN,MAAMA,IAAI;;EAElB;EAGM,SAAUK,WAAWA,CACDZ,IAAI,EACJC,GAAG,EACHY,GAAG,GAAGC,MAAM,CAACC,gBAAgB;IACnD,IAAIb,KAAK,GAAG,CAAC;IACb,MAAMc,KAAK,GAAG,EAAE;IAChBH,GAAG,EAAE;IACL,SAAQ;MACJ,MAAMV,KAAK,GAAGH,IAAI,CAACI,OAAO,CAACH,GAAG,EAAEC,KAAK,CAAC;MACtC,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;QACd;;MAEJa,KAAK,CAACC,IAAI,CAACjB,IAAI,CAACK,SAAS,CAACH,KAAK,EAAEC,KAAK,CAAC,CAAC;MACxCD,KAAK,GAAGC,KAAK,GAAG,CAAC;MACjB,IAAI,EAAEU,GAAG,KAAK,CAAC,EAAE;QACb;;;IAGRG,KAAK,CAACC,IAAI,CAACjB,IAAI,CAACK,SAAS,CAACH,KAAK,CAAC,CAAC;IACjC,OAAOc,KAAK;EAChB;EAACE,OAAA;IAAAnB,QAAA,EA9DgBA,QAAQ;IAAAO,kBAAA,EAeRA,kBAAkB;IAAAM,WAAA,EA2BnBA;EAAW;EAAA;IAAAO,OAAA;IAAAC,OAAA,WAAAA,CAAA;MA7B1B;MA0BA;MAuBA;IAAC;EAAA;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es6.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es5.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.dom.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.scripthost.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../src/QueryIterator.js","../src/mime-parser/tokenizer.js","../src/mime-parser/parsePairs.js","../src/mime-parser/HeaderContentType.js","../src/mime-parser/encoder/RawBuffer.js","../src/mime-parser/encoder/word-encoding.js","../src/mime-parser/HeaderContentDisposition.js","../src/mime-parser/encoder/base64-to-blob.js","../src/mime-parser/encoder/quoted-printable.js","../src/mime-parser/stream/
|
|
1
|
+
{"program":{"fileNames":["../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es6.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es5.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.dom.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.scripthost.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../../../../usr/lib/node_modules/@web-atoms/ts-to-systemjs/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../src/QueryIterator.js","../src/mime-parser/tokenizer.js","../src/mime-parser/stream/LineStream.js","../src/ical-parser/parseDate.ts","../src/ical-parser/Calender.ts","../src/mime-parser/parsePairs.js","../src/mime-parser/HeaderContentType.js","../src/mime-parser/encoder/RawBuffer.js","../src/mime-parser/encoder/word-encoding.js","../src/mime-parser/HeaderContentDisposition.js","../src/mime-parser/encoder/base64-to-blob.js","../src/mime-parser/encoder/quoted-printable.js","../src/mime-parser/stream/TextWriter.js","../src/mime-parser/MimeNode.js","../src/mime-parser/AttachmentFile.js","../src/mime-parser/MimeMessage.js","../src/tests/ical-parser/cal.test.js","../src/tests/mime/lines-test.js","../src/tests/mime/message1.js","../src/tests/mime/message2.js","../src/tests/mime/message3.js","../src/tests/mime/pairs.js","../src/tests/mime/parse-headers.js","../src/tests/mime/parse-headers2.js","../src/tests/mime/word-encoding-test.js"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"d78c310bfde534f8aef330e72d30fd96a07fa76364a5aa6f363a8760396475d0","signature":"701b83d6bc32d3d38914f4e1264f79fe911e1803454f9b46de0c46a4d6778fec"},{"version":"4f29f7c3d451d06d7ad03c87a4669feb88d40cd76e12196939bb4b64b3467dd4","signature":"aaedc1d2ee9a532850eb3c6473f0b14e4ac7316d90e4e3e3791e6bb1b82144db"},{"version":"04d26cf9075bc20fb07cb23d47a9dd9f8bd85a9bd62881fdbdde24eb3ac616aa","signature":"20f62f888c4d9a500e44ee4d5f4aa226752b80fa1f81726dc5ca3d1eb7898e06"},{"version":"e52e80bf274dc8192d7bf320b8e6478f1d1b0578db8bb5524a49a474106bfdc5","signature":"14eb4be0762dfc364626ae7b02afee2e5deae62cd65d474d6c7b4d4da6bd9bf5"},{"version":"3b6dbd9c3dcc907fe06358150ef8a8cef3cb063857727a80e0682554bc97e776","signature":"1cdd33c366b15dfa79757efa6a3c405b70a254e06bc9490352d3952adeb918a0"},{"version":"5a723fbf595f0207e35536889aeb6b644b0a71d0a16e434d3744880e312a99c0","signature":"afa45927c01d1168c72b47d88f35784a711ca30ec5b5666778d86165909b35b1"},{"version":"e95e3dff8b1cd0c17f9a71d71ab1a98e607ea2c95cee06a39682aae69e396504","signature":"72fe18ca34ce75033901b3cfb0ebe0baf88ee17911617e6dc75d652457ff48e7"},{"version":"b1ac01473d7b59a511d03771465b45888ccef606c559aea2ed295ddf30e8cde8","signature":"37a36b21d857864d74e09581e8d75f1fa2cc2540deb923248fcaf85e4a1aa0bf"},{"version":"fcbd8cef267c42627c36f166fd39018060cea39d66cdb91c9663eae7b64ac508","signature":"1b9195f02cf202a581081fbfdc420ea20450bb8eb63f2795d764a6dec46ca06e"},{"version":"890078d31cdc373d6380968af312d2b7ef7431545683533f06fed5b459ca63d1","signature":"95046d1643075e9c571c8c0eadf0cd66de3a685b003110c3557f375eacc5bcb8"},{"version":"e8b930f9788e5d77e44989c0f752ceba5416bca71475887f838f81f80b1ef25e","signature":"0cbc0627366f193bcf3d871db6d36c71765591a2c92980ffafb2f64bbe59043c"},{"version":"99439990bd6f9b0bca332c03be7b04de34605d4b3dcfe2ee7f5fc3a1d7531297","signature":"4855e2b5965f4f97c7d3cfcac1c2c0c8d1436ad1f53852d2ee2d1a35323dee6c"},{"version":"fba98c766168655d4efce14edbd3582274fa29cbf674ceb21879c46593ffa318","signature":"fb37ee443e39b3e968edc8a25b7108b9aef87bac53e565b1c732c988dfbb7c13"},{"version":"25fdcb657464f4f1c2a6c4d0b1f629207758773aee17eb874a6003da9e0cb390","signature":"669a13cccd95b8729ec6d7b9b22458bb5a27479eed69fe1d39c2b7081402289e"},{"version":"6eb51e78c64c343a9fa1f788df2d55d6a86caa07d924853ee283b8b27ae7894c","signature":"9ef7d5a8bab628a2f57d063d7e1ad6c87d2818ddec9304aecfe09df4cbbd103f"},{"version":"9a8fffce071de96d02ee972d30b233418f444f4191cf76facabb2b63fadae0c6","signature":"4626235edc0858f79baeee273aeb1fafc4217baa19cd7e940e6bd401e0f1dde1"},{"version":"eb7551454da25ec57660d910773565cf534615d18046711c038e83fc77d199b8","signature":"f7869333ff40017ca7c4a34473e68f902f6c6014891b58bfd452691696d0c72c"},{"version":"a48e6bd95e59152b69542e9251a3e8fed0c750cf3583307080c444c5f3fdbc25","signature":"1bdfaf1b6406e1b827be5487a79a1e10b86f2ff62a3cf05e7d03ee246f667ba6"},{"version":"dbc342f59aab0b7ccfeb1d9812128ea15542c2a5f64aa96e47cd2b4a41df5ff6","signature":"f7869333ff40017ca7c4a34473e68f902f6c6014891b58bfd452691696d0c72c"},{"version":"76fda9cdc01cb86c6c76cd91289b6abbcbddbaebb38abcbf61439460ebb14db0","signature":"f7869333ff40017ca7c4a34473e68f902f6c6014891b58bfd452691696d0c72c"},{"version":"c58f8a2de9aead7cfcec56588f647fa6f2cd40d7c02d07ea6d89e3212fc0d293","signature":"f7869333ff40017ca7c4a34473e68f902f6c6014891b58bfd452691696d0c72c"},{"version":"5c4df6ee2462a3f0508423c5c05f829c087174748345947f0ae9ace7ec965b1d","signature":"1bdfaf1b6406e1b827be5487a79a1e10b86f2ff62a3cf05e7d03ee246f667ba6"},{"version":"544eb3f9b9d8f8b3e6e34023fb648016d03683d736954adb4614372cc2b13253","signature":"f7869333ff40017ca7c4a34473e68f902f6c6014891b58bfd452691696d0c72c"},{"version":"f796a1ae605b610c7ac3bdf77b3d446bb7ff36409d76cc70e04b6caa2fadb1ca","signature":"f7869333ff40017ca7c4a34473e68f902f6c6014891b58bfd452691696d0c72c"},{"version":"994c0994ce06d4f5bd25386338d30085f9a8da84af83cdd09cc67b0b14065cad","signature":"1bdfaf1b6406e1b827be5487a79a1e10b86f2ff62a3cf05e7d03ee246f667ba6"}],"options":{"declaration":true,"declarationMap":true,"importHelpers":true,"module":99,"outDir":"./","skipDefaultLibCheck":true,"skipLibCheck":true,"sourceMap":true,"target":2},"fileIdsList":[[18,19,20],[30],[22,25],[22],[19,29,30,31],[19,23,24,25,26,27,28,29,31],[24],[18],[19,21],[19,30],[19,29,30],[25],[19]],"referencedMap":[[21,1],[31,2],[26,3],[23,4],[32,5],[30,6],[25,7],[22,8],[19,8],[33,9],[34,8],[35,10],[36,11],[37,11],[38,4],[39,10],[40,10],[41,12]],"exportedModulesMap":[[21,13]],"semanticDiagnosticsPerFile":[17,21,20,31,26,23,32,30,24,27,28,25,22,19,29,18,33,34,35,36,37,38,39,40,41,4,5,9,8,3,10,11,12,13,14,15,16,2,1,7,6]},"version":"4.9.5"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import LineStream, { StringLineStream } from "../mime-parser/stream/LineStream.js";
|
|
2
|
+
import { tokenize, tokenizeMax, tokenizeRFCHeaders } from "../mime-parser/tokenizer.js";
|
|
3
|
+
import parseDate from "./parseDate.js";
|
|
4
|
+
|
|
5
|
+
export class CalendarEvent {
|
|
6
|
+
|
|
7
|
+
static parse(text: string | string[]) {
|
|
8
|
+
const gen = typeof text === "string"
|
|
9
|
+
? tokenizeRFCHeaders(text)
|
|
10
|
+
: text;
|
|
11
|
+
const ce = new CalendarEvent();
|
|
12
|
+
|
|
13
|
+
for (const line of gen) {
|
|
14
|
+
// skip till BEGIN:VEVENT
|
|
15
|
+
if (/^BEGIN\:\s*VEVENT$/.test(line)) {
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// parse items... till end or END:VEVENT
|
|
21
|
+
for (const line of gen) {
|
|
22
|
+
const [ key, value ] = tokenizeMax(line, ":" , 2);
|
|
23
|
+
|
|
24
|
+
if (key === "END" && value === "VEVENT") {
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// update key..
|
|
29
|
+
const subTokens = tokenizeMax(key, ";", 2);
|
|
30
|
+
if (subTokens.length > 1) {
|
|
31
|
+
const [k, suffix] = subTokens;
|
|
32
|
+
ce[k] = suffix + ":" + value;
|
|
33
|
+
} else {
|
|
34
|
+
ce[key] = value;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return ce;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
#startDate;
|
|
42
|
+
#endDate;
|
|
43
|
+
#timestamp;
|
|
44
|
+
|
|
45
|
+
get startDate() {
|
|
46
|
+
// we will not cache the date
|
|
47
|
+
return this.#startDate ??= parseDate(this["DTSTART"]);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
get endDate() {
|
|
51
|
+
return this.#endDate ??= parseDate(this["DTEND"]);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
get timestamp() {
|
|
55
|
+
return this.#timestamp ??= parseDate(this["DTSTAMP"]);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
set timestamp(v) {
|
|
59
|
+
this["DTSTAMP"] = v.toJSON();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
get summary() {
|
|
63
|
+
return this["SUMMARY"] ?? "";
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
set summary(v) {
|
|
67
|
+
this["SUMMARY"] = v;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export default class Calendar {
|
|
73
|
+
|
|
74
|
+
static async parse(stream: string | LineStream) {
|
|
75
|
+
|
|
76
|
+
if (typeof stream === "string") {
|
|
77
|
+
stream = new StringLineStream(stream);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// skip till BEGIN:\s+VCALENDAR
|
|
81
|
+
const c = new Calendar();
|
|
82
|
+
|
|
83
|
+
for await (const line of stream.read()) {
|
|
84
|
+
if (/^BEGIN\:\s*VCALENDAR$/.test(line)) {
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
let eventLines = null as string[];
|
|
90
|
+
|
|
91
|
+
for await (const line of stream.readRFCHeaders()) {
|
|
92
|
+
if (/^END\:\s*VCALENDAR$/.test(line)) {
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (/^BEGIN\:\s*VEVENT$/.test(line)) {
|
|
97
|
+
if (eventLines) {
|
|
98
|
+
throw new Error("Nested Events are not supported");
|
|
99
|
+
}
|
|
100
|
+
eventLines = [line];
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (eventLines) {
|
|
105
|
+
// till end event
|
|
106
|
+
if (/^END\:\s*VEVENT$/.test(line)) {
|
|
107
|
+
|
|
108
|
+
c.events.push(CalendarEvent.parse(eventLines));
|
|
109
|
+
|
|
110
|
+
eventLines = null;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
eventLines.push(line);
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
const [ key, value ] = tokenizeMax(line, ":" , 2);
|
|
119
|
+
c[key] = value;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return c;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
events: CalendarEvent[] = [];
|
|
126
|
+
|
|
127
|
+
}
|