zeed 0.8.2 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-5PI4S556.js +2 -0
- package/dist/chunk-5PI4S556.js.map +1 -0
- package/dist/chunk-I7COHPWN.js +2 -0
- package/dist/chunk-I7COHPWN.js.map +1 -0
- package/dist/chunk-QJ7QJLK2.js +8 -0
- package/dist/chunk-QJ7QJLK2.js.map +1 -0
- package/dist/chunk-UGK75LGZ.js +2 -0
- package/dist/chunk-UGK75LGZ.js.map +1 -0
- package/dist/chunk-UQUUBQPQ.js +7 -0
- package/dist/chunk-UQUUBQPQ.js.map +1 -0
- package/dist/index.all.cjs +12 -5031
- package/dist/index.all.cjs.map +1 -1
- package/dist/index.all.js +1 -5
- package/dist/index.all.js.map +1 -1
- package/dist/index.browser.cjs +7 -4383
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.js +1 -4
- package/dist/index.browser.js.map +1 -1
- package/dist/index.log.cjs +1 -655
- package/dist/index.log.cjs.map +1 -1
- package/dist/index.log.js +1 -2
- package/dist/index.log.js.map +1 -1
- package/dist/index.node.cjs +12 -4479
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.js +1 -3
- package/dist/index.node.js.map +1 -1
- package/package.json +15 -8
- package/dist/chunk-3LN7HI45.js +0 -3077
- package/dist/chunk-3LN7HI45.js.map +0 -1
- package/dist/chunk-AM7QCF4I.js +0 -486
- package/dist/chunk-AM7QCF4I.js.map +0 -1
- package/dist/chunk-HI3XD4NV.js +0 -603
- package/dist/chunk-HI3XD4NV.js.map +0 -1
- package/dist/chunk-IFNHRAHG.js +0 -306
- package/dist/chunk-IFNHRAHG.js.map +0 -1
- package/dist/chunk-OJCXV4BY.js +0 -246
- package/dist/chunk-OJCXV4BY.js.map +0 -1
package/dist/chunk-IFNHRAHG.js
DELETED
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
import { supportsColors, selectColor } from './chunk-OJCXV4BY.js';
|
|
2
|
-
import { Logger, __name, getTimestamp, useNamespaceFilter, useLevelFilter, formatMilliseconds } from './chunk-AM7QCF4I.js';
|
|
3
|
-
|
|
4
|
-
// src/browser/base64.ts
|
|
5
|
-
var { error } = Logger("zeed:base64");
|
|
6
|
-
function urlBase64ToUint8Array(base64String) {
|
|
7
|
-
try {
|
|
8
|
-
let padding = "=".repeat((4 - base64String.length % 4) % 4);
|
|
9
|
-
let base64 = (base64String + padding).replace(/-/g, "+").replace(/_/g, "/");
|
|
10
|
-
let rawData = window.atob(base64);
|
|
11
|
-
let outputArray = new Uint8Array(rawData.length);
|
|
12
|
-
for (let i = 0; i < rawData.length; ++i) {
|
|
13
|
-
outputArray[i] = rawData.charCodeAt(i);
|
|
14
|
-
}
|
|
15
|
-
return outputArray;
|
|
16
|
-
} catch (err) {
|
|
17
|
-
error(err, base64String);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
__name(urlBase64ToUint8Array, "urlBase64ToUint8Array");
|
|
21
|
-
|
|
22
|
-
// src/browser/gravatar.ts
|
|
23
|
-
var log = Logger("zeed:gravatar");
|
|
24
|
-
function gravatar(email, options) {
|
|
25
|
-
function md5cycle(e, t) {
|
|
26
|
-
var n = e[0], r = e[1], i = e[2], s = e[3];
|
|
27
|
-
n = ff(n, r, i, s, t[0], 7, -680876936);
|
|
28
|
-
s = ff(s, n, r, i, t[1], 12, -389564586);
|
|
29
|
-
i = ff(i, s, n, r, t[2], 17, 606105819);
|
|
30
|
-
r = ff(r, i, s, n, t[3], 22, -1044525330);
|
|
31
|
-
n = ff(n, r, i, s, t[4], 7, -176418897);
|
|
32
|
-
s = ff(s, n, r, i, t[5], 12, 1200080426);
|
|
33
|
-
i = ff(i, s, n, r, t[6], 17, -1473231341);
|
|
34
|
-
r = ff(r, i, s, n, t[7], 22, -45705983);
|
|
35
|
-
n = ff(n, r, i, s, t[8], 7, 1770035416);
|
|
36
|
-
s = ff(s, n, r, i, t[9], 12, -1958414417);
|
|
37
|
-
i = ff(i, s, n, r, t[10], 17, -42063);
|
|
38
|
-
r = ff(r, i, s, n, t[11], 22, -1990404162);
|
|
39
|
-
n = ff(n, r, i, s, t[12], 7, 1804603682);
|
|
40
|
-
s = ff(s, n, r, i, t[13], 12, -40341101);
|
|
41
|
-
i = ff(i, s, n, r, t[14], 17, -1502002290);
|
|
42
|
-
r = ff(r, i, s, n, t[15], 22, 1236535329);
|
|
43
|
-
n = gg(n, r, i, s, t[1], 5, -165796510);
|
|
44
|
-
s = gg(s, n, r, i, t[6], 9, -1069501632);
|
|
45
|
-
i = gg(i, s, n, r, t[11], 14, 643717713);
|
|
46
|
-
r = gg(r, i, s, n, t[0], 20, -373897302);
|
|
47
|
-
n = gg(n, r, i, s, t[5], 5, -701558691);
|
|
48
|
-
s = gg(s, n, r, i, t[10], 9, 38016083);
|
|
49
|
-
i = gg(i, s, n, r, t[15], 14, -660478335);
|
|
50
|
-
r = gg(r, i, s, n, t[4], 20, -405537848);
|
|
51
|
-
n = gg(n, r, i, s, t[9], 5, 568446438);
|
|
52
|
-
s = gg(s, n, r, i, t[14], 9, -1019803690);
|
|
53
|
-
i = gg(i, s, n, r, t[3], 14, -187363961);
|
|
54
|
-
r = gg(r, i, s, n, t[8], 20, 1163531501);
|
|
55
|
-
n = gg(n, r, i, s, t[13], 5, -1444681467);
|
|
56
|
-
s = gg(s, n, r, i, t[2], 9, -51403784);
|
|
57
|
-
i = gg(i, s, n, r, t[7], 14, 1735328473);
|
|
58
|
-
r = gg(r, i, s, n, t[12], 20, -1926607734);
|
|
59
|
-
n = hh(n, r, i, s, t[5], 4, -378558);
|
|
60
|
-
s = hh(s, n, r, i, t[8], 11, -2022574463);
|
|
61
|
-
i = hh(i, s, n, r, t[11], 16, 1839030562);
|
|
62
|
-
r = hh(r, i, s, n, t[14], 23, -35309556);
|
|
63
|
-
n = hh(n, r, i, s, t[1], 4, -1530992060);
|
|
64
|
-
s = hh(s, n, r, i, t[4], 11, 1272893353);
|
|
65
|
-
i = hh(i, s, n, r, t[7], 16, -155497632);
|
|
66
|
-
r = hh(r, i, s, n, t[10], 23, -1094730640);
|
|
67
|
-
n = hh(n, r, i, s, t[13], 4, 681279174);
|
|
68
|
-
s = hh(s, n, r, i, t[0], 11, -358537222);
|
|
69
|
-
i = hh(i, s, n, r, t[3], 16, -722521979);
|
|
70
|
-
r = hh(r, i, s, n, t[6], 23, 76029189);
|
|
71
|
-
n = hh(n, r, i, s, t[9], 4, -640364487);
|
|
72
|
-
s = hh(s, n, r, i, t[12], 11, -421815835);
|
|
73
|
-
i = hh(i, s, n, r, t[15], 16, 530742520);
|
|
74
|
-
r = hh(r, i, s, n, t[2], 23, -995338651);
|
|
75
|
-
n = ii(n, r, i, s, t[0], 6, -198630844);
|
|
76
|
-
s = ii(s, n, r, i, t[7], 10, 1126891415);
|
|
77
|
-
i = ii(i, s, n, r, t[14], 15, -1416354905);
|
|
78
|
-
r = ii(r, i, s, n, t[5], 21, -57434055);
|
|
79
|
-
n = ii(n, r, i, s, t[12], 6, 1700485571);
|
|
80
|
-
s = ii(s, n, r, i, t[3], 10, -1894986606);
|
|
81
|
-
i = ii(i, s, n, r, t[10], 15, -1051523);
|
|
82
|
-
r = ii(r, i, s, n, t[1], 21, -2054922799);
|
|
83
|
-
n = ii(n, r, i, s, t[8], 6, 1873313359);
|
|
84
|
-
s = ii(s, n, r, i, t[15], 10, -30611744);
|
|
85
|
-
i = ii(i, s, n, r, t[6], 15, -1560198380);
|
|
86
|
-
r = ii(r, i, s, n, t[13], 21, 1309151649);
|
|
87
|
-
n = ii(n, r, i, s, t[4], 6, -145523070);
|
|
88
|
-
s = ii(s, n, r, i, t[11], 10, -1120210379);
|
|
89
|
-
i = ii(i, s, n, r, t[2], 15, 718787259);
|
|
90
|
-
r = ii(r, i, s, n, t[9], 21, -343485551);
|
|
91
|
-
e[0] = add32(n, e[0]);
|
|
92
|
-
e[1] = add32(r, e[1]);
|
|
93
|
-
e[2] = add32(i, e[2]);
|
|
94
|
-
e[3] = add32(s, e[3]);
|
|
95
|
-
}
|
|
96
|
-
__name(md5cycle, "md5cycle");
|
|
97
|
-
function cmn(e, t, n, r, i, s) {
|
|
98
|
-
t = add32(add32(t, e), add32(r, s));
|
|
99
|
-
return add32(t << i | t >>> 32 - i, n);
|
|
100
|
-
}
|
|
101
|
-
__name(cmn, "cmn");
|
|
102
|
-
function ff(e, t, n, r, i, s, o) {
|
|
103
|
-
return cmn(t & n | ~t & r, e, t, i, s, o);
|
|
104
|
-
}
|
|
105
|
-
__name(ff, "ff");
|
|
106
|
-
function gg(e, t, n, r, i, s, o) {
|
|
107
|
-
return cmn(t & r | n & ~r, e, t, i, s, o);
|
|
108
|
-
}
|
|
109
|
-
__name(gg, "gg");
|
|
110
|
-
function hh(e, t, n, r, i, s, o) {
|
|
111
|
-
return cmn(t ^ n ^ r, e, t, i, s, o);
|
|
112
|
-
}
|
|
113
|
-
__name(hh, "hh");
|
|
114
|
-
function ii(e, t, n, r, i, s, o) {
|
|
115
|
-
return cmn(n ^ (t | ~r), e, t, i, s, o);
|
|
116
|
-
}
|
|
117
|
-
__name(ii, "ii");
|
|
118
|
-
function md51(e) {
|
|
119
|
-
var t = e.length, n = [1732584193, -271733879, -1732584194, 271733878], r;
|
|
120
|
-
for (r = 64; r <= e.length; r += 64) {
|
|
121
|
-
md5cycle(n, md5blk(e.substring(r - 64, r)));
|
|
122
|
-
}
|
|
123
|
-
e = e.substring(r - 64);
|
|
124
|
-
var i = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
125
|
-
for (r = 0; r < e.length; r++)
|
|
126
|
-
i[r >> 2] |= e.charCodeAt(r) << (r % 4 << 3);
|
|
127
|
-
i[r >> 2] |= 128 << (r % 4 << 3);
|
|
128
|
-
if (r > 55) {
|
|
129
|
-
md5cycle(n, i);
|
|
130
|
-
for (r = 0; r < 16; r++)
|
|
131
|
-
i[r] = 0;
|
|
132
|
-
}
|
|
133
|
-
i[14] = t * 8;
|
|
134
|
-
md5cycle(n, i);
|
|
135
|
-
return n;
|
|
136
|
-
}
|
|
137
|
-
__name(md51, "md51");
|
|
138
|
-
function md5blk(e) {
|
|
139
|
-
var t = [], n;
|
|
140
|
-
for (n = 0; n < 64; n += 4) {
|
|
141
|
-
t[n >> 2] = e.charCodeAt(n) + (e.charCodeAt(n + 1) << 8) + (e.charCodeAt(n + 2) << 16) + (e.charCodeAt(n + 3) << 24);
|
|
142
|
-
}
|
|
143
|
-
return t;
|
|
144
|
-
}
|
|
145
|
-
__name(md5blk, "md5blk");
|
|
146
|
-
function rhex(e) {
|
|
147
|
-
var t = "", n = 0;
|
|
148
|
-
for (; n < 4; n++)
|
|
149
|
-
t += hex_chr[e >> n * 8 + 4 & 15] + hex_chr[e >> n * 8 & 15];
|
|
150
|
-
return t;
|
|
151
|
-
}
|
|
152
|
-
__name(rhex, "rhex");
|
|
153
|
-
function hex(e) {
|
|
154
|
-
for (var t = 0; t < e.length; t++)
|
|
155
|
-
e[t] = rhex(e[t]);
|
|
156
|
-
return e.join("");
|
|
157
|
-
}
|
|
158
|
-
__name(hex, "hex");
|
|
159
|
-
function md5(e) {
|
|
160
|
-
return hex(md51(e));
|
|
161
|
-
}
|
|
162
|
-
__name(md5, "md5");
|
|
163
|
-
function add32(e, t) {
|
|
164
|
-
return e + t & 4294967295;
|
|
165
|
-
}
|
|
166
|
-
__name(add32, "add32");
|
|
167
|
-
var hex_chr = "0123456789abcdef".split("");
|
|
168
|
-
var options = options || {}, base, params = [];
|
|
169
|
-
options = {
|
|
170
|
-
size: options.size || "50",
|
|
171
|
-
rating: options.rating || "g",
|
|
172
|
-
secure: options.secure || location.protocol === "https:",
|
|
173
|
-
backup: options.backup || ""
|
|
174
|
-
};
|
|
175
|
-
email = email.trim().toLowerCase();
|
|
176
|
-
base = options.secure ? "https://secure.gravatar.com/avatar/" : "http://www.gravatar.com/avatar/";
|
|
177
|
-
if (options.rating) {
|
|
178
|
-
params.push("r=" + options.rating);
|
|
179
|
-
}
|
|
180
|
-
if (options.backup) {
|
|
181
|
-
params.push("d=" + encodeURIComponent(options.backup));
|
|
182
|
-
}
|
|
183
|
-
if (options.size) {
|
|
184
|
-
params.push("s=" + options.size);
|
|
185
|
-
}
|
|
186
|
-
return base + md5(email) + "?" + params.join("&");
|
|
187
|
-
}
|
|
188
|
-
__name(gravatar, "gravatar");
|
|
189
|
-
function gravatarURLByEmail(email, defaultURL = "") {
|
|
190
|
-
try {
|
|
191
|
-
return gravatar(email, {
|
|
192
|
-
size: 256,
|
|
193
|
-
backup: "monsterid",
|
|
194
|
-
secure: true
|
|
195
|
-
});
|
|
196
|
-
} catch (error2) {
|
|
197
|
-
log("Gravatar issue: Did not find an image for " + email);
|
|
198
|
-
return defaultURL;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
__name(gravatarURLByEmail, "gravatarURLByEmail");
|
|
202
|
-
|
|
203
|
-
// src/browser/localstorage.ts
|
|
204
|
-
var log2 = Logger("zeed:localstorage");
|
|
205
|
-
var LocalStorage = class {
|
|
206
|
-
constructor(opt) {
|
|
207
|
-
this.pretty = false;
|
|
208
|
-
log2.assert(opt.name, "name required");
|
|
209
|
-
this.name = opt.name;
|
|
210
|
-
this.prefix = `${opt.name}$`;
|
|
211
|
-
this.objectToString = opt.objectToString ?? ((data) => {
|
|
212
|
-
return this.pretty ? JSON.stringify(data, null, 2) : JSON.stringify(data);
|
|
213
|
-
});
|
|
214
|
-
this.objectFromString = opt.objectFromString ?? ((data) => {
|
|
215
|
-
try {
|
|
216
|
-
return JSON.parse(data);
|
|
217
|
-
} catch (err) {
|
|
218
|
-
log2.warn(`LocalStorage parse error '${err}' in`, data);
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
setItem(key, value) {
|
|
223
|
-
const data = this.objectToString(value);
|
|
224
|
-
localStorage.setItem(`${this.prefix}${key}`, data);
|
|
225
|
-
}
|
|
226
|
-
getItem(key) {
|
|
227
|
-
let value = localStorage.getItem(`${this.prefix}${key}`);
|
|
228
|
-
if (value != null) {
|
|
229
|
-
return this.objectFromString(value);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
removeItem(key) {
|
|
233
|
-
localStorage.removeItem(`${this.prefix}${key}`);
|
|
234
|
-
}
|
|
235
|
-
clear() {
|
|
236
|
-
Object.keys(localStorage).filter((key) => key.startsWith(this.prefix)).forEach((key) => {
|
|
237
|
-
localStorage.removeItem(key);
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
allKeys() {
|
|
241
|
-
const prefixLength = this.prefix.length;
|
|
242
|
-
return Object.keys(localStorage).filter((key) => key.startsWith(this.prefix)).map((key) => key.substr(prefixLength));
|
|
243
|
-
}
|
|
244
|
-
};
|
|
245
|
-
__name(LocalStorage, "LocalStorage");
|
|
246
|
-
|
|
247
|
-
// src/browser/log-browser-classic.ts
|
|
248
|
-
var namespaces = {};
|
|
249
|
-
var time = getTimestamp();
|
|
250
|
-
var useColors = supportsColors();
|
|
251
|
-
function LoggerBrowserClassicHandler(level, opt = {}) {
|
|
252
|
-
const { filter = void 0 } = opt;
|
|
253
|
-
const matchesNamespace = useNamespaceFilter(filter);
|
|
254
|
-
const matchesLevel = useLevelFilter(level);
|
|
255
|
-
return (msg) => {
|
|
256
|
-
if (!matchesLevel(msg.level))
|
|
257
|
-
return;
|
|
258
|
-
if (!matchesNamespace(msg.name))
|
|
259
|
-
return;
|
|
260
|
-
const timeNow = getTimestamp();
|
|
261
|
-
let name = msg.name || "";
|
|
262
|
-
let ninfo = namespaces[name || ""];
|
|
263
|
-
if (ninfo == null) {
|
|
264
|
-
ninfo = {
|
|
265
|
-
color: selectColor(name)
|
|
266
|
-
};
|
|
267
|
-
namespaces[name] = ninfo;
|
|
268
|
-
}
|
|
269
|
-
const diff = formatMilliseconds(timeNow - time);
|
|
270
|
-
let args;
|
|
271
|
-
if (opt.colors && useColors) {
|
|
272
|
-
args = opt.nameBrackets ? [`%c[${name}]`] : [`%c${name}`];
|
|
273
|
-
args.push(`color:${ninfo.color}`);
|
|
274
|
-
args.push(...msg.messages);
|
|
275
|
-
} else {
|
|
276
|
-
args = [name, ...msg.messages];
|
|
277
|
-
}
|
|
278
|
-
args.push(`+${diff}`);
|
|
279
|
-
switch (msg.level) {
|
|
280
|
-
case 1 /* info */:
|
|
281
|
-
if (opt.levelHelper)
|
|
282
|
-
args[0] = `I|* ` + args[0];
|
|
283
|
-
console.info(...args);
|
|
284
|
-
break;
|
|
285
|
-
case 2 /* warn */:
|
|
286
|
-
if (opt.levelHelper)
|
|
287
|
-
args[0] = `W|** ` + args[0];
|
|
288
|
-
console.warn(...args);
|
|
289
|
-
break;
|
|
290
|
-
case 3 /* error */:
|
|
291
|
-
if (opt.levelHelper)
|
|
292
|
-
args[0] = `E|*** ` + args[0];
|
|
293
|
-
console.error(...args);
|
|
294
|
-
break;
|
|
295
|
-
default:
|
|
296
|
-
if (opt.levelHelper)
|
|
297
|
-
args[0] = `D| ` + args[0];
|
|
298
|
-
console.debug(...args);
|
|
299
|
-
break;
|
|
300
|
-
}
|
|
301
|
-
};
|
|
302
|
-
}
|
|
303
|
-
__name(LoggerBrowserClassicHandler, "LoggerBrowserClassicHandler");
|
|
304
|
-
|
|
305
|
-
export { LocalStorage, LoggerBrowserClassicHandler, gravatarURLByEmail, urlBase64ToUint8Array };
|
|
306
|
-
//# sourceMappingURL=chunk-IFNHRAHG.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/browser/base64.ts","../src/browser/gravatar.ts","../src/browser/localstorage.ts","../src/browser/log-browser-classic.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"]}
|
package/dist/chunk-OJCXV4BY.js
DELETED
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
import { __name, getTimestamp, useNamespaceFilter, useLevelFilter, formatMilliseconds, deepEqual } from './chunk-AM7QCF4I.js';
|
|
2
|
-
|
|
3
|
-
// src/browser/log-colors.ts
|
|
4
|
-
var colors = [
|
|
5
|
-
"#0000CC",
|
|
6
|
-
"#0000FF",
|
|
7
|
-
"#0033CC",
|
|
8
|
-
"#0033FF",
|
|
9
|
-
"#0066CC",
|
|
10
|
-
"#0066FF",
|
|
11
|
-
"#0099CC",
|
|
12
|
-
"#0099FF",
|
|
13
|
-
"#00CC00",
|
|
14
|
-
"#00CC33",
|
|
15
|
-
"#00CC66",
|
|
16
|
-
"#00CC99",
|
|
17
|
-
"#00CCCC",
|
|
18
|
-
"#00CCFF",
|
|
19
|
-
"#3300CC",
|
|
20
|
-
"#3300FF",
|
|
21
|
-
"#3333CC",
|
|
22
|
-
"#3333FF",
|
|
23
|
-
"#3366CC",
|
|
24
|
-
"#3366FF",
|
|
25
|
-
"#3399CC",
|
|
26
|
-
"#3399FF",
|
|
27
|
-
"#33CC00",
|
|
28
|
-
"#33CC33",
|
|
29
|
-
"#33CC66",
|
|
30
|
-
"#33CC99",
|
|
31
|
-
"#33CCCC",
|
|
32
|
-
"#33CCFF",
|
|
33
|
-
"#6600CC",
|
|
34
|
-
"#6600FF",
|
|
35
|
-
"#6633CC",
|
|
36
|
-
"#6633FF",
|
|
37
|
-
"#66CC00",
|
|
38
|
-
"#66CC33",
|
|
39
|
-
"#9900CC",
|
|
40
|
-
"#9900FF",
|
|
41
|
-
"#9933CC",
|
|
42
|
-
"#9933FF",
|
|
43
|
-
"#99CC00",
|
|
44
|
-
"#99CC33",
|
|
45
|
-
"#CC0000",
|
|
46
|
-
"#CC0033",
|
|
47
|
-
"#CC0066",
|
|
48
|
-
"#CC0099",
|
|
49
|
-
"#CC00CC",
|
|
50
|
-
"#CC00FF",
|
|
51
|
-
"#CC3300",
|
|
52
|
-
"#CC3333",
|
|
53
|
-
"#CC3366",
|
|
54
|
-
"#CC3399",
|
|
55
|
-
"#CC33CC",
|
|
56
|
-
"#CC33FF",
|
|
57
|
-
"#CC6600",
|
|
58
|
-
"#CC6633",
|
|
59
|
-
"#CC9900",
|
|
60
|
-
"#CC9933",
|
|
61
|
-
"#CCCC00",
|
|
62
|
-
"#CCCC33",
|
|
63
|
-
"#FF0000",
|
|
64
|
-
"#FF0033",
|
|
65
|
-
"#FF0066",
|
|
66
|
-
"#FF0099",
|
|
67
|
-
"#FF00CC",
|
|
68
|
-
"#FF00FF",
|
|
69
|
-
"#FF3300",
|
|
70
|
-
"#FF3333",
|
|
71
|
-
"#FF3366",
|
|
72
|
-
"#FF3399",
|
|
73
|
-
"#FF33CC",
|
|
74
|
-
"#FF33FF",
|
|
75
|
-
"#FF6600",
|
|
76
|
-
"#FF6633",
|
|
77
|
-
"#FF9900",
|
|
78
|
-
"#FF9933",
|
|
79
|
-
"#FFCC00",
|
|
80
|
-
"#FFCC33"
|
|
81
|
-
];
|
|
82
|
-
function supportsColors() {
|
|
83
|
-
if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
|
|
84
|
-
return true;
|
|
85
|
-
}
|
|
86
|
-
if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
|
|
90
|
-
}
|
|
91
|
-
__name(supportsColors, "supportsColors");
|
|
92
|
-
function selectColor(namespace) {
|
|
93
|
-
let hash = 0;
|
|
94
|
-
for (let i = 0; i < namespace.length; i++) {
|
|
95
|
-
hash = (hash << 5) - hash + namespace.charCodeAt(i);
|
|
96
|
-
hash |= 0;
|
|
97
|
-
}
|
|
98
|
-
return colors[Math.abs(hash) % colors.length];
|
|
99
|
-
}
|
|
100
|
-
__name(selectColor, "selectColor");
|
|
101
|
-
|
|
102
|
-
// src/browser/log-browser.ts
|
|
103
|
-
var styleFont = `font-family: "JetBrains Mono", Menlo; font-size: 11px;`;
|
|
104
|
-
var styleDefault = `${styleFont}`;
|
|
105
|
-
var styleBold = `font-weight: 600; ${styleFont}`;
|
|
106
|
-
var useColors = supportsColors();
|
|
107
|
-
var namespaces = {};
|
|
108
|
-
var time = getTimestamp();
|
|
109
|
-
function LoggerBrowserHandler(opt = {}) {
|
|
110
|
-
const {
|
|
111
|
-
filter = void 0,
|
|
112
|
-
level = void 0,
|
|
113
|
-
colors: colors2 = true,
|
|
114
|
-
levelHelper = false,
|
|
115
|
-
nameBrackets = true,
|
|
116
|
-
padding = 16
|
|
117
|
-
} = opt;
|
|
118
|
-
const matchesNamespace = useNamespaceFilter(filter);
|
|
119
|
-
const matchesLevel = useLevelFilter(level);
|
|
120
|
-
return (msg) => {
|
|
121
|
-
var _a;
|
|
122
|
-
if (!matchesLevel(msg.level))
|
|
123
|
-
return;
|
|
124
|
-
if (!matchesNamespace(msg.name))
|
|
125
|
-
return;
|
|
126
|
-
const timeNow = getTimestamp();
|
|
127
|
-
let name = msg.name || "";
|
|
128
|
-
let ninfo = namespaces[name || ""];
|
|
129
|
-
if (ninfo == null) {
|
|
130
|
-
ninfo = {
|
|
131
|
-
color: selectColor(name)
|
|
132
|
-
};
|
|
133
|
-
namespaces[name] = ninfo;
|
|
134
|
-
}
|
|
135
|
-
const diff = formatMilliseconds(timeNow - time);
|
|
136
|
-
let args;
|
|
137
|
-
if (padding > 0) {
|
|
138
|
-
name = name.padEnd(16, " ");
|
|
139
|
-
}
|
|
140
|
-
if (colors2 && useColors) {
|
|
141
|
-
args = [`%c${name}%c %s %c+${diff}`];
|
|
142
|
-
args.push(`color:${ninfo.color}; ${styleBold}`);
|
|
143
|
-
args.push(styleDefault);
|
|
144
|
-
args.push(((_a = msg.messages) == null ? void 0 : _a[0]) ?? "");
|
|
145
|
-
args.push(`color:${ninfo.color};`);
|
|
146
|
-
args.push(...msg.messages.slice(1));
|
|
147
|
-
} else {
|
|
148
|
-
args = [name, ...msg.messages, `+${diff}`];
|
|
149
|
-
}
|
|
150
|
-
switch (msg.level) {
|
|
151
|
-
case 1 /* info */:
|
|
152
|
-
if (opt.levelHelper)
|
|
153
|
-
args[0] = `I|* ` + args[0];
|
|
154
|
-
console.info(...args);
|
|
155
|
-
break;
|
|
156
|
-
case 2 /* warn */:
|
|
157
|
-
if (opt.levelHelper)
|
|
158
|
-
args[0] = `W|** ` + args[0];
|
|
159
|
-
console.warn(...args);
|
|
160
|
-
break;
|
|
161
|
-
case 3 /* error */:
|
|
162
|
-
if (opt.levelHelper)
|
|
163
|
-
args[0] = `E|*** ` + args[0];
|
|
164
|
-
console.error(...args);
|
|
165
|
-
break;
|
|
166
|
-
default:
|
|
167
|
-
if (opt.levelHelper)
|
|
168
|
-
args[0] = `D| ` + args[0];
|
|
169
|
-
console.debug(...args);
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
__name(LoggerBrowserHandler, "LoggerBrowserHandler");
|
|
175
|
-
function LoggerBrowserSetupDebugFactory(opt = {}) {
|
|
176
|
-
const filter = opt.filter ?? localStorage.zeed ?? localStorage.debug;
|
|
177
|
-
return /* @__PURE__ */ __name(function LoggerBrowserDebugFactory(name = "") {
|
|
178
|
-
let log;
|
|
179
|
-
const matches = useNamespaceFilter(filter);
|
|
180
|
-
if (matches(name)) {
|
|
181
|
-
let fixedArgs = [];
|
|
182
|
-
if (useColors) {
|
|
183
|
-
const color = selectColor(name);
|
|
184
|
-
fixedArgs.push(`%c${name.padEnd(16, " ")}%c %s`);
|
|
185
|
-
fixedArgs.push(`color:${color}; ${styleBold}`);
|
|
186
|
-
fixedArgs.push(styleDefault);
|
|
187
|
-
} else {
|
|
188
|
-
fixedArgs.push(`[${name}] %s`);
|
|
189
|
-
}
|
|
190
|
-
log = console.debug.bind(console, ...fixedArgs);
|
|
191
|
-
log.debug = console.debug.bind(console, ...fixedArgs);
|
|
192
|
-
log.info = console.info.bind(console, ...fixedArgs);
|
|
193
|
-
log.warn = console.warn.bind(console, ...fixedArgs);
|
|
194
|
-
log.error = console.error.bind(console, ...fixedArgs);
|
|
195
|
-
log.assert = console.assert.bind(console);
|
|
196
|
-
log.assertEqual = function(value, expected, ...args) {
|
|
197
|
-
let equal = deepEqual(value, expected);
|
|
198
|
-
if (!equal) {
|
|
199
|
-
log.assert(
|
|
200
|
-
equal,
|
|
201
|
-
`Assert did fail. Expected ${expected} got ${value}`,
|
|
202
|
-
expected,
|
|
203
|
-
value,
|
|
204
|
-
...args
|
|
205
|
-
);
|
|
206
|
-
}
|
|
207
|
-
};
|
|
208
|
-
log.assertNotEqual = function(value, expected, ...args) {
|
|
209
|
-
let equal = deepEqual(value, expected);
|
|
210
|
-
if (equal) {
|
|
211
|
-
log.assert(
|
|
212
|
-
equal,
|
|
213
|
-
`Assert did fail. Expected ${expected} not to be equal with ${value}`,
|
|
214
|
-
expected,
|
|
215
|
-
value,
|
|
216
|
-
...args
|
|
217
|
-
);
|
|
218
|
-
}
|
|
219
|
-
};
|
|
220
|
-
} else {
|
|
221
|
-
const noop = /* @__PURE__ */ __name(() => {
|
|
222
|
-
}, "noop");
|
|
223
|
-
log = noop;
|
|
224
|
-
log.debug = noop;
|
|
225
|
-
log.info = noop;
|
|
226
|
-
log.warn = noop;
|
|
227
|
-
log.error = noop;
|
|
228
|
-
log.assert = noop;
|
|
229
|
-
log.assertEqual = noop;
|
|
230
|
-
log.assertNotEqual = noop;
|
|
231
|
-
}
|
|
232
|
-
log.extend = (subName) => {
|
|
233
|
-
return LoggerBrowserDebugFactory(name ? `${name}:${subName}` : subName);
|
|
234
|
-
};
|
|
235
|
-
log.label = name;
|
|
236
|
-
return log;
|
|
237
|
-
}, "LoggerBrowserDebugFactory");
|
|
238
|
-
}
|
|
239
|
-
__name(LoggerBrowserSetupDebugFactory, "LoggerBrowserSetupDebugFactory");
|
|
240
|
-
function activateConsoleDebug(opt = {}) {
|
|
241
|
-
console.info("activateConsoleDebug is activated by default in browsers");
|
|
242
|
-
}
|
|
243
|
-
__name(activateConsoleDebug, "activateConsoleDebug");
|
|
244
|
-
|
|
245
|
-
export { LoggerBrowserHandler, LoggerBrowserSetupDebugFactory, activateConsoleDebug, selectColor, supportsColors };
|
|
246
|
-
//# sourceMappingURL=chunk-OJCXV4BY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/browser/log-colors.ts","../src/browser/log-browser.ts"],"names":["colors"],"mappings":"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","sourcesContent":["// Taken from https://github.com/visionmedia/debug/blob/master/src/browser.js#L27\n\nconst colors = [\n \"#0000CC\",\n \"#0000FF\",\n \"#0033CC\",\n \"#0033FF\",\n \"#0066CC\",\n \"#0066FF\",\n \"#0099CC\",\n \"#0099FF\",\n \"#00CC00\",\n \"#00CC33\",\n \"#00CC66\",\n \"#00CC99\",\n \"#00CCCC\",\n \"#00CCFF\",\n \"#3300CC\",\n \"#3300FF\",\n \"#3333CC\",\n \"#3333FF\",\n \"#3366CC\",\n \"#3366FF\",\n \"#3399CC\",\n \"#3399FF\",\n \"#33CC00\",\n \"#33CC33\",\n \"#33CC66\",\n \"#33CC99\",\n \"#33CCCC\",\n \"#33CCFF\",\n \"#6600CC\",\n \"#6600FF\",\n \"#6633CC\",\n \"#6633FF\",\n \"#66CC00\",\n \"#66CC33\",\n \"#9900CC\",\n \"#9900FF\",\n \"#9933CC\",\n \"#9933FF\",\n \"#99CC00\",\n \"#99CC33\",\n \"#CC0000\",\n \"#CC0033\",\n \"#CC0066\",\n \"#CC0099\",\n \"#CC00CC\",\n \"#CC00FF\",\n \"#CC3300\",\n \"#CC3333\",\n \"#CC3366\",\n \"#CC3399\",\n \"#CC33CC\",\n \"#CC33FF\",\n \"#CC6600\",\n \"#CC6633\",\n \"#CC9900\",\n \"#CC9933\",\n \"#CCCC00\",\n \"#CCCC33\",\n \"#FF0000\",\n \"#FF0033\",\n \"#FF0066\",\n \"#FF0099\",\n \"#FF00CC\",\n \"#FF00FF\",\n \"#FF3300\",\n \"#FF3333\",\n \"#FF3366\",\n \"#FF3399\",\n \"#FF33CC\",\n \"#FF33FF\",\n \"#FF6600\",\n \"#FF6633\",\n \"#FF9900\",\n \"#FF9933\",\n \"#FFCC00\",\n \"#FFCC33\",\n]\n\nexport function supportsColors(): boolean {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (\n typeof window !== \"undefined\" &&\n window.process &&\n // @ts-ignore\n (window.process.type === \"renderer\" || window.process.__nwjs)\n ) {\n return true\n }\n\n // Internet Explorer and Edge do not support colors.\n if (\n typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)\n ) {\n return false\n }\n\n // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (\n (typeof document !== \"undefined\" &&\n document.documentElement &&\n document.documentElement.style &&\n // @ts-ignore\n document.documentElement.style.WebkitAppearance) ||\n // Is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== \"undefined\" &&\n window.console &&\n // @ts-ignore\n (window.console.firebug ||\n // @ts-ignore\n (window.console.exception && window.console.table))) ||\n // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) &&\n parseInt(RegExp.$1, 10) >= 31) ||\n // Double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/))\n )\n}\n\nexport function selectColor(namespace: string) {\n let hash = 0\n for (let i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n return colors[Math.abs(hash) % colors.length]\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { deepEqual } from \"../common/data/deep\"\nimport {\n LoggerInterface,\n LogHandler,\n LogHandlerOptions,\n LogLevel,\n LogMessage,\n} from \"../common/log-base\"\nimport { useLevelFilter, useNamespaceFilter } from \"../common/log-filter\"\nimport { formatMilliseconds, getTimestamp } from \"../common/time\"\nimport { selectColor, supportsColors } from \"./log-colors\"\n\nconst styleFont = `font-family: \"JetBrains Mono\", Menlo; font-size: 11px;`\nconst styleDefault = `${styleFont}`\nconst styleBold = `font-weight: 600; ${styleFont}`\nconst useColors = supportsColors()\n\nlet namespaces: Record<string, any> = {}\n\nlet time = getTimestamp()\n\nexport function LoggerBrowserHandler(opt: LogHandlerOptions = {}): LogHandler {\n const {\n filter = undefined,\n level = undefined,\n colors = true,\n levelHelper = false,\n nameBrackets = true,\n padding = 16,\n } = 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 const diff = formatMilliseconds(timeNow - time)\n let args: string[]\n\n if (padding > 0) {\n name = name.padEnd(16, \" \")\n }\n\n if (colors && useColors) {\n args = [`%c${name}%c \\t%s %c+${diff}`]\n args.push(`color:${ninfo.color}; ${styleBold}`)\n args.push(styleDefault)\n args.push(msg.messages?.[0] ?? \"\")\n args.push(`color:${ninfo.color};`)\n args.push(...msg.messages.slice(1))\n } else {\n args = [name, ...msg.messages, `+${diff}`]\n }\n\n // function consoleArgs(args: any[] = []): any[] {\n // return [\n // args\n // .filter((a) => typeof a === \"string\")\n // .map((a) => String(a))\n // .join(\" \"),\n // ...styles,\n // ...args.filter((a) => typeof a !== \"string\"),\n // ]\n // }\n\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\nexport function LoggerBrowserSetupDebugFactory(opt: LogHandlerOptions = {}) {\n const filter = opt.filter ?? localStorage.zeed ?? localStorage.debug\n\n /// The trick is, that console called directly provides a reference to the source code.\n /// For the regular implementation this information is lost. But this approach has other\n /// drawbacks, therefore only use it in the Browser when actively debugging.\n return function LoggerBrowserDebugFactory(\n name: string = \"\"\n ): LoggerInterface {\n let log: LoggerInterface\n\n const matches = useNamespaceFilter(filter)\n\n if (matches(name)) {\n let fixedArgs = []\n if (useColors) {\n const color = selectColor(name)\n fixedArgs.push(`%c${name.padEnd(16, \" \")}%c \\t%s`)\n fixedArgs.push(`color:${color}; ${styleBold}`)\n fixedArgs.push(styleDefault)\n } else {\n fixedArgs.push(`[${name}] \\t%s`)\n }\n\n // @ts-ignore\n // console.previous = {\n // debug: console.debug,\n // info: console.info,\n // warn: console.warn,\n // error: console.error,\n // assert: console.assert,\n // }\n\n log = console.debug.bind(console, ...fixedArgs) as LoggerInterface\n log.debug = console.debug.bind(console, ...fixedArgs)\n log.info = console.info.bind(console, ...fixedArgs)\n log.warn = console.warn.bind(console, ...fixedArgs)\n log.error = console.error.bind(console, ...fixedArgs)\n\n log.assert = console.assert.bind(console)\n\n log.assertEqual = function (value: any, expected: any, ...args: any[]) {\n let equal = deepEqual(value, expected)\n if (!equal) {\n log.assert(\n equal,\n `Assert did fail. Expected ${expected} got ${value}`,\n expected,\n value,\n ...args\n )\n }\n }\n\n log.assertNotEqual = function (\n value: any,\n expected: any,\n ...args: any[]\n ) {\n let equal = deepEqual(value, expected)\n if (equal) {\n log.assert(\n equal,\n `Assert did fail. Expected ${expected} not to be equal with ${value}`,\n expected,\n value,\n ...args\n )\n }\n }\n } else {\n const noop = () => {}\n log = noop as LoggerInterface\n log.debug = noop\n log.info = noop\n log.warn = noop\n log.error = noop\n\n log.assert = noop\n log.assertEqual = noop\n log.assertNotEqual = noop\n }\n\n log.extend = (subName: string) => {\n return LoggerBrowserDebugFactory(name ? `${name}:${subName}` : subName)\n }\n\n log.label = name\n\n return log\n }\n}\n\n/** @deprecated This output is default for initial use of Logger in browser environments. */\nexport function activateConsoleDebug(opt: LogHandlerOptions = {}) {\n console.info(\"activateConsoleDebug is activated by default in browsers\")\n // Logger.setHandlers([LoggerBrowserHandler(opt)]) // Fallback for previously registered Loggers\n // Logger.setFactory(LoggerBrowserSetupDebugFactory(opt))\n}\n\n// let klass = console\n// let debug = console.debug.bind(window.console, klass.toString() + \": \")\n\n// debug(\"test\")\n// console.debug(\"test2\")\n\n// let dd\n// if (Function.prototype.bind) {\n// dd = Function.prototype.bind.call(console.log, console)\n// } else {\n// dd = function () {\n// Function.prototype.apply.call(console.log, console, arguments)\n// }\n// }\n\n// dd(\"dd\")\n\n// let c = 1\n// Object.defineProperty(window, \"log2\", {\n// get: () => {\n// return console.log.bind(\n// window.console,\n// \"%c[log]%c %s\" + c++,\n// \"color:red\",\n// \"\"\n// )\n// },\n// })\n\n// // usage:\n// log2(\"Back to the future\")\n// log2(\"Back to the future\")\n\n// let plog = new Proxy(console.debug, {\n// apply: function (target, that, args) {\n// target.apply(that, args)\n// // base.apply(that, args);\n// },\n// })\n\n// let cons = console.debug\n// let plog = (...args) => {\n// cons.apply(window.console, [\"|\", ...args])\n// }\n\n// plog(\"xxx\")\n\n// function a() {\n// var err = new Error()\n// var caller_line = err.stack.split(\"\\n\")[2]\n// var index = caller_line.indexOf(\"at \")\n// var clean = caller_line.slice(index + 2, caller_line.length)\n// clean = clean.replace(/\\?t=\\d+/, \"\").replace(\"@fs/\", \"\")\n// console.log(clean)\n// console.log(\n// \"http://localhost:8080/Users/dirk/work/viidoo/lib/src/browser/log-browser.ts:188:1 log-browser.ts:291:10\"\n// )\n// }\n// function b() {\n// a()\n// }\n// b()\n"]}
|