zeed 0.8.2 → 0.8.3

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.
@@ -0,0 +1,320 @@
1
+ "use strict"; function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var chunkKG3OKVAH_cjs = require('./chunk-KG3OKVAH.cjs');
6
+ var chunkAITOWUS2_cjs = require('./chunk-AITOWUS2.cjs');
7
+ var chunkC66X5FP6_cjs = require('./chunk-C66X5FP6.cjs');
8
+
9
+ // src/browser/base64.ts
10
+ var { error } = chunkC66X5FP6_cjs.Logger("zeed:base64");
11
+ function urlBase64ToUint8Array(base64String) {
12
+ try {
13
+ let padding = "=".repeat((4 - base64String.length % 4) % 4);
14
+ let base64 = (base64String + padding).replace(/-/g, "+").replace(/_/g, "/");
15
+ let rawData = window.atob(base64);
16
+ let outputArray = new Uint8Array(rawData.length);
17
+ for (let i = 0; i < rawData.length; ++i) {
18
+ outputArray[i] = rawData.charCodeAt(i);
19
+ }
20
+ return outputArray;
21
+ } catch (err) {
22
+ error(err, base64String);
23
+ }
24
+ }
25
+ chunkC66X5FP6_cjs.__name(urlBase64ToUint8Array, "urlBase64ToUint8Array");
26
+
27
+ // src/browser/gravatar.ts
28
+ var log = chunkC66X5FP6_cjs.Logger("zeed:gravatar");
29
+ function gravatar(email, options) {
30
+ function md5cycle(e, t) {
31
+ var n = e[0], r = e[1], i = e[2], s = e[3];
32
+ n = ff(n, r, i, s, t[0], 7, -680876936);
33
+ s = ff(s, n, r, i, t[1], 12, -389564586);
34
+ i = ff(i, s, n, r, t[2], 17, 606105819);
35
+ r = ff(r, i, s, n, t[3], 22, -1044525330);
36
+ n = ff(n, r, i, s, t[4], 7, -176418897);
37
+ s = ff(s, n, r, i, t[5], 12, 1200080426);
38
+ i = ff(i, s, n, r, t[6], 17, -1473231341);
39
+ r = ff(r, i, s, n, t[7], 22, -45705983);
40
+ n = ff(n, r, i, s, t[8], 7, 1770035416);
41
+ s = ff(s, n, r, i, t[9], 12, -1958414417);
42
+ i = ff(i, s, n, r, t[10], 17, -42063);
43
+ r = ff(r, i, s, n, t[11], 22, -1990404162);
44
+ n = ff(n, r, i, s, t[12], 7, 1804603682);
45
+ s = ff(s, n, r, i, t[13], 12, -40341101);
46
+ i = ff(i, s, n, r, t[14], 17, -1502002290);
47
+ r = ff(r, i, s, n, t[15], 22, 1236535329);
48
+ n = gg(n, r, i, s, t[1], 5, -165796510);
49
+ s = gg(s, n, r, i, t[6], 9, -1069501632);
50
+ i = gg(i, s, n, r, t[11], 14, 643717713);
51
+ r = gg(r, i, s, n, t[0], 20, -373897302);
52
+ n = gg(n, r, i, s, t[5], 5, -701558691);
53
+ s = gg(s, n, r, i, t[10], 9, 38016083);
54
+ i = gg(i, s, n, r, t[15], 14, -660478335);
55
+ r = gg(r, i, s, n, t[4], 20, -405537848);
56
+ n = gg(n, r, i, s, t[9], 5, 568446438);
57
+ s = gg(s, n, r, i, t[14], 9, -1019803690);
58
+ i = gg(i, s, n, r, t[3], 14, -187363961);
59
+ r = gg(r, i, s, n, t[8], 20, 1163531501);
60
+ n = gg(n, r, i, s, t[13], 5, -1444681467);
61
+ s = gg(s, n, r, i, t[2], 9, -51403784);
62
+ i = gg(i, s, n, r, t[7], 14, 1735328473);
63
+ r = gg(r, i, s, n, t[12], 20, -1926607734);
64
+ n = hh(n, r, i, s, t[5], 4, -378558);
65
+ s = hh(s, n, r, i, t[8], 11, -2022574463);
66
+ i = hh(i, s, n, r, t[11], 16, 1839030562);
67
+ r = hh(r, i, s, n, t[14], 23, -35309556);
68
+ n = hh(n, r, i, s, t[1], 4, -1530992060);
69
+ s = hh(s, n, r, i, t[4], 11, 1272893353);
70
+ i = hh(i, s, n, r, t[7], 16, -155497632);
71
+ r = hh(r, i, s, n, t[10], 23, -1094730640);
72
+ n = hh(n, r, i, s, t[13], 4, 681279174);
73
+ s = hh(s, n, r, i, t[0], 11, -358537222);
74
+ i = hh(i, s, n, r, t[3], 16, -722521979);
75
+ r = hh(r, i, s, n, t[6], 23, 76029189);
76
+ n = hh(n, r, i, s, t[9], 4, -640364487);
77
+ s = hh(s, n, r, i, t[12], 11, -421815835);
78
+ i = hh(i, s, n, r, t[15], 16, 530742520);
79
+ r = hh(r, i, s, n, t[2], 23, -995338651);
80
+ n = ii(n, r, i, s, t[0], 6, -198630844);
81
+ s = ii(s, n, r, i, t[7], 10, 1126891415);
82
+ i = ii(i, s, n, r, t[14], 15, -1416354905);
83
+ r = ii(r, i, s, n, t[5], 21, -57434055);
84
+ n = ii(n, r, i, s, t[12], 6, 1700485571);
85
+ s = ii(s, n, r, i, t[3], 10, -1894986606);
86
+ i = ii(i, s, n, r, t[10], 15, -1051523);
87
+ r = ii(r, i, s, n, t[1], 21, -2054922799);
88
+ n = ii(n, r, i, s, t[8], 6, 1873313359);
89
+ s = ii(s, n, r, i, t[15], 10, -30611744);
90
+ i = ii(i, s, n, r, t[6], 15, -1560198380);
91
+ r = ii(r, i, s, n, t[13], 21, 1309151649);
92
+ n = ii(n, r, i, s, t[4], 6, -145523070);
93
+ s = ii(s, n, r, i, t[11], 10, -1120210379);
94
+ i = ii(i, s, n, r, t[2], 15, 718787259);
95
+ r = ii(r, i, s, n, t[9], 21, -343485551);
96
+ e[0] = add32(n, e[0]);
97
+ e[1] = add32(r, e[1]);
98
+ e[2] = add32(i, e[2]);
99
+ e[3] = add32(s, e[3]);
100
+ }
101
+ chunkC66X5FP6_cjs.__name(md5cycle, "md5cycle");
102
+ function cmn(e, t, n, r, i, s) {
103
+ t = add32(add32(t, e), add32(r, s));
104
+ return add32(t << i | t >>> 32 - i, n);
105
+ }
106
+ chunkC66X5FP6_cjs.__name(cmn, "cmn");
107
+ function ff(e, t, n, r, i, s, o) {
108
+ return cmn(t & n | ~t & r, e, t, i, s, o);
109
+ }
110
+ chunkC66X5FP6_cjs.__name(ff, "ff");
111
+ function gg(e, t, n, r, i, s, o) {
112
+ return cmn(t & r | n & ~r, e, t, i, s, o);
113
+ }
114
+ chunkC66X5FP6_cjs.__name(gg, "gg");
115
+ function hh(e, t, n, r, i, s, o) {
116
+ return cmn(t ^ n ^ r, e, t, i, s, o);
117
+ }
118
+ chunkC66X5FP6_cjs.__name(hh, "hh");
119
+ function ii(e, t, n, r, i, s, o) {
120
+ return cmn(n ^ (t | ~r), e, t, i, s, o);
121
+ }
122
+ chunkC66X5FP6_cjs.__name(ii, "ii");
123
+ function md51(e) {
124
+ var t = e.length, n = [1732584193, -271733879, -1732584194, 271733878], r;
125
+ for (r = 64; r <= e.length; r += 64) {
126
+ md5cycle(n, md5blk(e.substring(r - 64, r)));
127
+ }
128
+ e = e.substring(r - 64);
129
+ var i = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
130
+ for (r = 0; r < e.length; r++)
131
+ i[r >> 2] |= e.charCodeAt(r) << (r % 4 << 3);
132
+ i[r >> 2] |= 128 << (r % 4 << 3);
133
+ if (r > 55) {
134
+ md5cycle(n, i);
135
+ for (r = 0; r < 16; r++)
136
+ i[r] = 0;
137
+ }
138
+ i[14] = t * 8;
139
+ md5cycle(n, i);
140
+ return n;
141
+ }
142
+ chunkC66X5FP6_cjs.__name(md51, "md51");
143
+ function md5blk(e) {
144
+ var t = [], n;
145
+ for (n = 0; n < 64; n += 4) {
146
+ t[n >> 2] = e.charCodeAt(n) + (e.charCodeAt(n + 1) << 8) + (e.charCodeAt(n + 2) << 16) + (e.charCodeAt(n + 3) << 24);
147
+ }
148
+ return t;
149
+ }
150
+ chunkC66X5FP6_cjs.__name(md5blk, "md5blk");
151
+ function rhex(e) {
152
+ var t = "", n = 0;
153
+ for (; n < 4; n++)
154
+ t += hex_chr[e >> n * 8 + 4 & 15] + hex_chr[e >> n * 8 & 15];
155
+ return t;
156
+ }
157
+ chunkC66X5FP6_cjs.__name(rhex, "rhex");
158
+ function hex(e) {
159
+ for (var t = 0; t < e.length; t++)
160
+ e[t] = rhex(e[t]);
161
+ return e.join("");
162
+ }
163
+ chunkC66X5FP6_cjs.__name(hex, "hex");
164
+ function md5(e) {
165
+ return hex(md51(e));
166
+ }
167
+ chunkC66X5FP6_cjs.__name(md5, "md5");
168
+ function add32(e, t) {
169
+ return e + t & 4294967295;
170
+ }
171
+ chunkC66X5FP6_cjs.__name(add32, "add32");
172
+ var hex_chr = "0123456789abcdef".split("");
173
+ var options = options || {}, base, params = [];
174
+ options = {
175
+ size: options.size || "50",
176
+ rating: options.rating || "g",
177
+ secure: options.secure || location.protocol === "https:",
178
+ backup: options.backup || ""
179
+ };
180
+ email = email.trim().toLowerCase();
181
+ base = options.secure ? "https://secure.gravatar.com/avatar/" : "http://www.gravatar.com/avatar/";
182
+ if (options.rating) {
183
+ params.push("r=" + options.rating);
184
+ }
185
+ if (options.backup) {
186
+ params.push("d=" + encodeURIComponent(options.backup));
187
+ }
188
+ if (options.size) {
189
+ params.push("s=" + options.size);
190
+ }
191
+ return base + md5(email) + "?" + params.join("&");
192
+ }
193
+ chunkC66X5FP6_cjs.__name(gravatar, "gravatar");
194
+ function gravatarURLByEmail(email, defaultURL = "") {
195
+ try {
196
+ return gravatar(email, {
197
+ size: 256,
198
+ backup: "monsterid",
199
+ secure: true
200
+ });
201
+ } catch (error2) {
202
+ log("Gravatar issue: Did not find an image for " + email);
203
+ return defaultURL;
204
+ }
205
+ }
206
+ chunkC66X5FP6_cjs.__name(gravatarURLByEmail, "gravatarURLByEmail");
207
+
208
+ // src/browser/localstorage.ts
209
+ var log2 = chunkC66X5FP6_cjs.Logger("zeed:localstorage");
210
+ var LocalStorage = class {
211
+ constructor(opt) {
212
+ this.pretty = false;
213
+ log2.assert(opt.name, "name required");
214
+ this.name = opt.name;
215
+ this.prefix = `${opt.name}$`;
216
+ this.objectToString = _nullishCoalesce(opt.objectToString, () => ( ((data) => {
217
+ return this.pretty ? JSON.stringify(data, null, 2) : JSON.stringify(data);
218
+ })));
219
+ this.objectFromString = _nullishCoalesce(opt.objectFromString, () => ( ((data) => {
220
+ try {
221
+ return JSON.parse(data);
222
+ } catch (err) {
223
+ log2.warn(`LocalStorage parse error '${err}' in`, data);
224
+ }
225
+ })));
226
+ }
227
+ setItem(key, value) {
228
+ const data = this.objectToString(value);
229
+ localStorage.setItem(`${this.prefix}${key}`, data);
230
+ }
231
+ getItem(key) {
232
+ let value = localStorage.getItem(`${this.prefix}${key}`);
233
+ if (value != null) {
234
+ return this.objectFromString(value);
235
+ }
236
+ }
237
+ removeItem(key) {
238
+ localStorage.removeItem(`${this.prefix}${key}`);
239
+ }
240
+ clear() {
241
+ Object.keys(localStorage).filter((key) => key.startsWith(this.prefix)).forEach((key) => {
242
+ localStorage.removeItem(key);
243
+ });
244
+ }
245
+ allKeys() {
246
+ const prefixLength = this.prefix.length;
247
+ return Object.keys(localStorage).filter((key) => key.startsWith(this.prefix)).map((key) => key.substr(prefixLength));
248
+ }
249
+ };
250
+ chunkC66X5FP6_cjs.__name(LocalStorage, "LocalStorage");
251
+
252
+ // src/browser/log-browser-classic.ts
253
+ var namespaces = {};
254
+ var time = chunkC66X5FP6_cjs.getTimestamp();
255
+ var useColors = chunkKG3OKVAH_cjs.supportsColors();
256
+ function LoggerBrowserClassicHandler(level, opt = {}) {
257
+ const { filter = void 0 } = opt;
258
+ const matchesNamespace = chunkC66X5FP6_cjs.useNamespaceFilter(filter);
259
+ const matchesLevel = chunkC66X5FP6_cjs.useLevelFilter(level);
260
+ return (msg) => {
261
+ if (!matchesLevel(msg.level))
262
+ return;
263
+ if (!matchesNamespace(msg.name))
264
+ return;
265
+ const timeNow = chunkC66X5FP6_cjs.getTimestamp();
266
+ let name = msg.name || "";
267
+ let ninfo = namespaces[name || ""];
268
+ if (ninfo == null) {
269
+ ninfo = {
270
+ color: chunkKG3OKVAH_cjs.selectColor(name)
271
+ };
272
+ namespaces[name] = ninfo;
273
+ }
274
+ const diff = chunkC66X5FP6_cjs.formatMilliseconds(timeNow - time);
275
+ let args;
276
+ if (opt.colors && useColors) {
277
+ args = opt.nameBrackets ? [`%c[${name}]`] : [`%c${name}`];
278
+ args.push(`color:${ninfo.color}`);
279
+ args.push(...msg.messages);
280
+ } else {
281
+ args = [name, ...msg.messages];
282
+ }
283
+ args.push(`+${diff}`);
284
+ switch (msg.level) {
285
+ case 1 /* info */:
286
+ if (opt.levelHelper)
287
+ args[0] = `I|* ` + args[0];
288
+ console.info(...args);
289
+ break;
290
+ case 2 /* warn */:
291
+ if (opt.levelHelper)
292
+ args[0] = `W|** ` + args[0];
293
+ console.warn(...args);
294
+ break;
295
+ case 3 /* error */:
296
+ if (opt.levelHelper)
297
+ args[0] = `E|*** ` + args[0];
298
+ console.error(...args);
299
+ break;
300
+ default:
301
+ if (opt.levelHelper)
302
+ args[0] = `D| ` + args[0];
303
+ console.debug(...args);
304
+ break;
305
+ }
306
+ };
307
+ }
308
+ chunkC66X5FP6_cjs.__name(LoggerBrowserClassicHandler, "LoggerBrowserClassicHandler");
309
+
310
+ // src/browser/log-context-browser.ts
311
+ if (chunkAITOWUS2_cjs.isBrowser()) {
312
+ chunkC66X5FP6_cjs.Logger.setHandlers([chunkKG3OKVAH_cjs.LoggerBrowserHandler()]);
313
+ chunkC66X5FP6_cjs.Logger.setFactory(chunkKG3OKVAH_cjs.LoggerBrowserSetupDebugFactory({}));
314
+ }
315
+
316
+ exports.LocalStorage = LocalStorage;
317
+ exports.LoggerBrowserClassicHandler = LoggerBrowserClassicHandler;
318
+ exports.gravatarURLByEmail = gravatarURLByEmail;
319
+ exports.urlBase64ToUint8Array = urlBase64ToUint8Array;
320
+ //# sourceMappingURL=chunk-RHL3RQGE.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/browser/base64.ts","../src/browser/gravatar.ts","../src/browser/localstorage.ts","../src/browser/log-browser-classic.ts","../src/browser/log-context-browser.ts"],"names":["error","log"],"mappings":"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","sourcesContent":["// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { Logger } from \"../common/log\"\n\nconst { error } = Logger(\"zeed:base64\")\n\nexport function urlBase64ToUint8Array(\n base64String: string\n): Uint8Array | undefined {\n try {\n let padding = \"=\".repeat((4 - (base64String.length % 4)) % 4)\n let base64 = (base64String + padding).replace(/-/g, \"+\").replace(/_/g, \"/\")\n\n let rawData = window.atob(base64)\n let outputArray = new Uint8Array(rawData.length)\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i)\n }\n return outputArray\n } catch (err) {\n error(err, base64String)\n }\n}\n","// MIT licensed\n// https://github.com/mazondo/gravatarjs/blob/master/gravatar.js\n// https://en.gravatar.com/site/implement/images/\n\nimport { Logger } from \"../common/log\"\n\nconst log = Logger(\"zeed:gravatar\")\n\n/** @deprecated Due to privacy concerns. Prefer local or custom solutions. */\nfunction gravatar(\n email: string,\n options: { size?: any; backup?: any; secure?: any; rating?: any }\n) {\n // using md5() from here: http://www.myersdaily.org/joseph/javascript/md5-text.html\n function md5cycle(e: any[], t: any[]) {\n var n = e[0],\n r = e[1],\n i = e[2],\n s = e[3]\n n = ff(n, r, i, s, t[0], 7, -680876936)\n s = ff(s, n, r, i, t[1], 12, -389564586)\n i = ff(i, s, n, r, t[2], 17, 606105819)\n r = ff(r, i, s, n, t[3], 22, -1044525330)\n n = ff(n, r, i, s, t[4], 7, -176418897)\n s = ff(s, n, r, i, t[5], 12, 1200080426)\n i = ff(i, s, n, r, t[6], 17, -1473231341)\n r = ff(r, i, s, n, t[7], 22, -45705983)\n n = ff(n, r, i, s, t[8], 7, 1770035416)\n s = ff(s, n, r, i, t[9], 12, -1958414417)\n i = ff(i, s, n, r, t[10], 17, -42063)\n r = ff(r, i, s, n, t[11], 22, -1990404162)\n n = ff(n, r, i, s, t[12], 7, 1804603682)\n s = ff(s, n, r, i, t[13], 12, -40341101)\n i = ff(i, s, n, r, t[14], 17, -1502002290)\n r = ff(r, i, s, n, t[15], 22, 1236535329)\n n = gg(n, r, i, s, t[1], 5, -165796510)\n s = gg(s, n, r, i, t[6], 9, -1069501632)\n i = gg(i, s, n, r, t[11], 14, 643717713)\n r = gg(r, i, s, n, t[0], 20, -373897302)\n n = gg(n, r, i, s, t[5], 5, -701558691)\n s = gg(s, n, r, i, t[10], 9, 38016083)\n i = gg(i, s, n, r, t[15], 14, -660478335)\n r = gg(r, i, s, n, t[4], 20, -405537848)\n n = gg(n, r, i, s, t[9], 5, 568446438)\n s = gg(s, n, r, i, t[14], 9, -1019803690)\n i = gg(i, s, n, r, t[3], 14, -187363961)\n r = gg(r, i, s, n, t[8], 20, 1163531501)\n n = gg(n, r, i, s, t[13], 5, -1444681467)\n s = gg(s, n, r, i, t[2], 9, -51403784)\n i = gg(i, s, n, r, t[7], 14, 1735328473)\n r = gg(r, i, s, n, t[12], 20, -1926607734)\n n = hh(n, r, i, s, t[5], 4, -378558)\n s = hh(s, n, r, i, t[8], 11, -2022574463)\n i = hh(i, s, n, r, t[11], 16, 1839030562)\n r = hh(r, i, s, n, t[14], 23, -35309556)\n n = hh(n, r, i, s, t[1], 4, -1530992060)\n s = hh(s, n, r, i, t[4], 11, 1272893353)\n i = hh(i, s, n, r, t[7], 16, -155497632)\n r = hh(r, i, s, n, t[10], 23, -1094730640)\n n = hh(n, r, i, s, t[13], 4, 681279174)\n s = hh(s, n, r, i, t[0], 11, -358537222)\n i = hh(i, s, n, r, t[3], 16, -722521979)\n r = hh(r, i, s, n, t[6], 23, 76029189)\n n = hh(n, r, i, s, t[9], 4, -640364487)\n s = hh(s, n, r, i, t[12], 11, -421815835)\n i = hh(i, s, n, r, t[15], 16, 530742520)\n r = hh(r, i, s, n, t[2], 23, -995338651)\n n = ii(n, r, i, s, t[0], 6, -198630844)\n s = ii(s, n, r, i, t[7], 10, 1126891415)\n i = ii(i, s, n, r, t[14], 15, -1416354905)\n r = ii(r, i, s, n, t[5], 21, -57434055)\n n = ii(n, r, i, s, t[12], 6, 1700485571)\n s = ii(s, n, r, i, t[3], 10, -1894986606)\n i = ii(i, s, n, r, t[10], 15, -1051523)\n r = ii(r, i, s, n, t[1], 21, -2054922799)\n n = ii(n, r, i, s, t[8], 6, 1873313359)\n s = ii(s, n, r, i, t[15], 10, -30611744)\n i = ii(i, s, n, r, t[6], 15, -1560198380)\n r = ii(r, i, s, n, t[13], 21, 1309151649)\n n = ii(n, r, i, s, t[4], 6, -145523070)\n s = ii(s, n, r, i, t[11], 10, -1120210379)\n i = ii(i, s, n, r, t[2], 15, 718787259)\n r = ii(r, i, s, n, t[9], 21, -343485551)\n e[0] = add32(n, e[0])\n e[1] = add32(r, e[1])\n e[2] = add32(i, e[2])\n e[3] = add32(s, e[3])\n }\n function cmn(e: number, t: number, n: any, r: any, i: number, s: any) {\n t = add32(add32(t, e), add32(r, s))\n return add32((t << i) | (t >>> (32 - i)), n)\n }\n function ff(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number\n ) {\n return cmn((t & n) | (~t & r), e, t, i, s, o)\n }\n function gg(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number\n ) {\n return cmn((t & r) | (n & ~r), e, t, i, s, o)\n }\n function hh(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number\n ) {\n return cmn(t ^ n ^ r, e, t, i, s, o)\n }\n function ii(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number\n ) {\n return cmn(n ^ (t | ~r), e, t, i, s, o)\n }\n function md51(e: string) {\n var t = e.length,\n n = [1732584193, -271733879, -1732584194, 271733878],\n r: number\n for (r = 64; r <= e.length; r += 64) {\n md5cycle(n, md5blk(e.substring(r - 64, r)))\n }\n e = e.substring(r - 64)\n var i = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n for (r = 0; r < e.length; r++) i[r >> 2] |= e.charCodeAt(r) << (r % 4 << 3)\n i[r >> 2] |= 128 << (r % 4 << 3)\n if (r > 55) {\n md5cycle(n, i)\n for (r = 0; r < 16; r++) i[r] = 0\n }\n i[14] = t * 8\n md5cycle(n, i)\n return n\n }\n function md5blk(e: string) {\n var t = [],\n n: number\n for (n = 0; n < 64; n += 4) {\n t[n >> 2] =\n e.charCodeAt(n) +\n (e.charCodeAt(n + 1) << 8) +\n (e.charCodeAt(n + 2) << 16) +\n (e.charCodeAt(n + 3) << 24)\n }\n return t\n }\n function rhex(e: number) {\n var t = \"\",\n n = 0\n for (; n < 4; n++)\n t += hex_chr[(e >> (n * 8 + 4)) & 15] + hex_chr[(e >> (n * 8)) & 15]\n return t\n }\n function hex(e: any[]) {\n for (var t = 0; t < e.length; t++) e[t] = rhex(e[t])\n return e.join(\"\")\n }\n function md5(e: string) {\n return hex(md51(e))\n }\n function add32(e: number, t: number) {\n return (e + t) & 4294967295\n }\n var hex_chr = \"0123456789abcdef\".split(\"\")\n //check to make sure you gave us something\n var options = options || {},\n base: string,\n params = []\n\n //set some defaults, just in case\n options = {\n size: options.size || \"50\",\n rating: options.rating || \"g\",\n secure: options.secure || location.protocol === \"https:\",\n backup: options.backup || \"\",\n }\n\n //setup the email address\n email = email.trim().toLowerCase()\n\n //determine which base to use\n base = options.secure\n ? \"https://secure.gravatar.com/avatar/\"\n : \"http://www.gravatar.com/avatar/\"\n\n //add the params\n if (options.rating) {\n params.push(\"r=\" + options.rating)\n }\n if (options.backup) {\n params.push(\"d=\" + encodeURIComponent(options.backup))\n }\n if (options.size) {\n params.push(\"s=\" + options.size)\n }\n\n //now throw it all together\n return base + md5(email) + \"?\" + params.join(\"&\")\n}\n\nexport function gravatarURLByEmail(\n email: string,\n defaultURL: string = \"\"\n): string {\n try {\n return gravatar(email, {\n size: 256,\n backup: \"monsterid\",\n // backup: \"https://holtwick.de/download/user.png\", // \"retro\",\n secure: true,\n })\n } catch (error) {\n log(\"Gravatar issue: Did not find an image for \" + email)\n return defaultURL\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { Json, ObjectStorage } from \"../common/types\"\nimport { Logger } from \"../common/log\"\n\nconst log = Logger(\"zeed:localstorage\")\n\nexport interface LocalStorageOptions {\n name: string\n objectFromString?: (data: string) => any\n objectToString?: (data: any) => string\n}\n\nexport class LocalStorage<T = Json> implements ObjectStorage<T> {\n private name: string\n private prefix: string\n private pretty: boolean = false\n private objectFromString: (data: string) => any\n private objectToString: (data: any) => string\n\n constructor(opt: LocalStorageOptions) {\n log.assert(opt.name, \"name required\")\n this.name = opt.name\n this.prefix = `${opt.name}$`\n this.objectToString =\n opt.objectToString ??\n ((data: any): string => {\n return this.pretty\n ? JSON.stringify(data, null, 2)\n : JSON.stringify(data)\n })\n\n this.objectFromString =\n opt.objectFromString ??\n ((data: string) => {\n try {\n return JSON.parse(data)\n } catch (err) {\n log.warn(`LocalStorage parse error '${err}' in`, data)\n }\n })\n }\n\n setItem(key: string, value: T): void {\n const data = this.objectToString(value)\n localStorage.setItem(`${this.prefix}${key}`, data)\n }\n\n getItem(key: string): T | undefined {\n let value = localStorage.getItem(`${this.prefix}${key}`)\n if (value != null) {\n return this.objectFromString(value)\n }\n }\n\n removeItem(key: string): void {\n localStorage.removeItem(`${this.prefix}${key}`)\n }\n\n clear(): void {\n Object.keys(localStorage)\n .filter((key) => key.startsWith(this.prefix))\n .forEach((key) => {\n localStorage.removeItem(key)\n })\n }\n\n allKeys(): string[] {\n const prefixLength = this.prefix.length\n return Object.keys(localStorage)\n .filter((key) => key.startsWith(this.prefix))\n .map((key) => key.substr(prefixLength))\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { getTimestamp, formatMilliseconds } from \"../common/time\"\nimport {\n LogHandler,\n LogHandlerOptions,\n LogLevel,\n LogMessage,\n} from \"../common/log-base\"\nimport { selectColor, supportsColors } from \"./log-colors\"\nimport { useLevelFilter, useNamespaceFilter } from \"../common/log-filter\"\n\nlet namespaces: Record<string, any> = {}\n\nlet time = getTimestamp()\n\nconst useColors = supportsColors()\n\n/** @deprecated */\nexport function LoggerBrowserClassicHandler(\n level?: LogLevel,\n opt: LogHandlerOptions = {}\n): LogHandler {\n const { filter = undefined } = opt\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level)) return\n if (!matchesNamespace(msg.name)) return\n\n const timeNow = getTimestamp()\n let name = msg.name || \"\"\n let ninfo = namespaces[name || \"\"]\n if (ninfo == null) {\n ninfo = {\n color: selectColor(name),\n // time: timeNow\n }\n namespaces[name] = ninfo\n }\n\n const diff = formatMilliseconds(timeNow - time)\n\n let args: string[]\n if (opt.colors && useColors) {\n args = opt.nameBrackets ? [`%c[${name}]`] : [`%c${name}`]\n args.push(`color:${ninfo.color}`)\n args.push(...msg.messages)\n } else {\n args = [name, ...msg.messages]\n }\n args.push(`+${diff}`)\n switch (msg.level) {\n case LogLevel.info:\n if (opt.levelHelper) args[0] = `I|* ` + args[0]\n console.info(...args)\n break\n case LogLevel.warn:\n if (opt.levelHelper) args[0] = `W|** ` + args[0]\n console.warn(...args)\n break\n case LogLevel.error:\n if (opt.levelHelper) args[0] = `E|*** ` + args[0]\n console.error(...args)\n break\n default:\n if (opt.levelHelper) args[0] = `D| ` + args[0]\n console.debug(...args)\n break\n }\n }\n}\n","import { isBrowser } from \"../common/platform\"\nimport { Logger } from \"../common/log\"\nimport {\n LoggerBrowserHandler,\n LoggerBrowserSetupDebugFactory,\n} from \"./log-browser\"\n\nif (isBrowser()) {\n Logger.setHandlers([LoggerBrowserHandler()]) // Fallback for previously registered Loggers\n Logger.setFactory(LoggerBrowserSetupDebugFactory({}))\n}\n"]}
@@ -3074,4 +3074,4 @@ var MemStorage = class {
3074
3074
  __name(MemStorage, "MemStorage");
3075
3075
 
3076
3076
  export { Channel, CryptoEncoder, Currency, DAY_MS, Day, Emitter, JsonEncoder, LocalChannel, LoggerMemoryHandler, MemStorage, NoopEncoder, PoolTaskIdConflictResolution, PoolTaskState, PubSub, SerialQueue, Uint8ArrayToHexDump, Uint8ArrayToJson, Uint8ArrayToString, XRX, _decodeUtf8Polyfill, _encodeUtf8Polyfill, arrayAvg, arrayBatches, arrayEmptyInPlace, arrayFilterInPlace, arrayFlatten, arrayIntersection, arrayIsEqual, arrayMax, arrayMin, arrayMinus, arrayRandomElement, arrayRemoveElement, arraySetElement, arrayShuffle, arrayShuffleForce, arrayShuffleInPlace, arraySorted, arraySortedNumbers, arraySum, arraySymmetricDifference, arrayToggleInPlace, arrayUnion, arrayUnique, avg, between, cloneJsonObject, cloneObject, cmp, composeOrderby, createArray, createLocalChannelPair, createPromise, createPromiseProxy, csv, currency, dateStringToDays, day, dayDay, dayDiff, dayFromAny, dayFromDate, dayFromDateGMT, dayFromParts, dayFromString, dayFromTimestamp, dayFromToday, dayMonth, dayMonthStart, dayOffset, dayToDate, dayToDateGMT, dayToParts, dayToString, dayToTimestamp, dayYear, dayYearStart, debounce, decimal, decimalCentsPart, decimalFromCents, decimalToCents, decodeBase16, decodeBase32, decodeBase58, decodeBase62, decodeBase64, decrypt, deriveKeyPbkdf2, detect, digest, empty, encodeBase16, encodeBase32, encodeBase58, encodeBase62, encodeBase64, encodeQuery, encrypt, endSortWeight, ensureKey, ensureKeyAsync, equalBinary, escapeHTML, escapeRegExp, fetchBasic, fetchJson, fetchOptionsBasicAuth, fetchOptionsFormURLEncoded, fetchOptionsJson, fetchText, fixBrokenUth8String, forEachDay, forTimes, formatMessages, fromBase64, fromCamelCase, getGlobal, getGlobalEmitter, getNavigator, getSecureRandom, getSecureRandomIfPossible, getWindow, immediate, isBrowser, isEven, isHalf, isLocalHost, isPrime, isPrimeRX, isPromise, isTimeout, joinToUint8Array, jsonStringify, jsonToUint8Array, last, lazyListener, linkifyPlainText, memoize, messages, moveSortWeight, parseBasicAuth, parseOrderby, parseQuery, platform, promisify, qid, randomBoolean, randomFloat, randomInt, randomUint8Array, regExpEscape, regExpString, renderMessages, roundDown, roundHalfAwayFromZero, roundHalfDown, roundHalfEven, roundHalfOdd, roundHalfTowardsZero, roundHalfUp, roundUp, size, sleep, sortedItems, sortedOrderby, startSortWeight, stringToBoolean, stringToFloat, stringToInteger, stringToUInt8Array, suid, suidBytes, suidBytesDate, suidDate, sum, throttle, timeout, timeoutReached, timoutError, toBase64, toBase64Url, toBool, toCamelCase, toCapitalize, toCapitalizeWords, toFloat, toHex, toHumanReadableUrl, toInt, toString, toUint8Array, toValidFilename, today, tryTimeout, uname, unescapeHTML, useAsyncMutex, useBase, useDefer, useDispose, useDisposer, useEventListener, useExitHandler, useInterval, useMessageHub, useMutex, usePool, usePubSub, useRPC, useTimeout, uuid, uuid32Decode, uuid32Encode, uuid32bit, uuidB32, uuidBytes, uuidDecode, uuidEncode, uuidv4, valueToBoolean, valueToFloat, valueToInteger, valueToString, waitOn };
3077
- //# sourceMappingURL=chunk-3LN7HI45.js.map
3077
+ //# sourceMappingURL=chunk-RIAAIUAZ.js.map