zeed 0.7.148 → 0.7.149
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-7W3LTMPP.js → chunk-ANAAXFIQ.js} +14 -17
- package/dist/{chunk-7W3LTMPP.js.map → chunk-ANAAXFIQ.js.map} +1 -1
- package/dist/{chunk-WG7HOP7M.js → chunk-BCBCSLCF.js} +8 -9
- package/dist/{chunk-WG7HOP7M.js.map → chunk-BCBCSLCF.js.map} +1 -1
- package/dist/{chunk-Z7MQRVMT.js → chunk-EUP2OO6U.js} +22 -32
- package/dist/chunk-EUP2OO6U.js.map +1 -0
- package/dist/{chunk-XWMV2GEI.js → chunk-LMZGFDSJ.js} +3 -5
- package/dist/{chunk-XWMV2GEI.js.map → chunk-LMZGFDSJ.js.map} +1 -1
- package/dist/{chunk-2KDHZAAM.js → chunk-T5YP6WMZ.js} +5 -6
- package/dist/{chunk-2KDHZAAM.js.map → chunk-T5YP6WMZ.js.map} +1 -1
- package/dist/index.all.cjs +60 -77
- package/dist/index.all.cjs.map +1 -1
- package/dist/index.all.d.ts +3 -3
- package/dist/index.all.js +5 -5
- package/dist/index.browser.cjs +40 -54
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.d.ts +2 -2
- package/dist/index.browser.js +4 -4
- package/dist/index.log.cjs +5 -8
- package/dist/index.log.cjs.map +1 -1
- package/dist/index.log.js +2 -2
- package/dist/index.node.cjs +53 -68
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.ts +2 -2
- package/dist/index.node.js +3 -3
- package/dist/{log-colors-7dcdbd62.d.ts → log-colors-4e257513.d.ts} +1 -1
- package/dist/{log-util-5f7dcfd6.d.ts → log-util-5e3baa4e.d.ts} +1 -1
- package/dist/{uuid-19af3724.d.ts → uuid-7d71e140.d.ts} +2 -2
- package/package.json +4 -3
- package/dist/chunk-Z7MQRVMT.js.map +0 -1
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
cloneObject,
|
|
3
3
|
renderMessages,
|
|
4
4
|
toValidFilename
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-EUP2OO6U.js";
|
|
6
6
|
import {
|
|
7
7
|
Logger,
|
|
8
8
|
__name,
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
getTimestamp,
|
|
11
11
|
useLevelFilter,
|
|
12
12
|
useNamespaceFilter
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-LMZGFDSJ.js";
|
|
14
14
|
|
|
15
15
|
// src/node/clipboard.ts
|
|
16
16
|
import { spawn } from "child_process";
|
|
@@ -60,7 +60,7 @@ function parse(src, options = {}) {
|
|
|
60
60
|
}
|
|
61
61
|
__name(parse, "parse");
|
|
62
62
|
function stringToPath(value, defaultValue = ".") {
|
|
63
|
-
return resolve(process.cwd(), value
|
|
63
|
+
return resolve(process.cwd(), value ?? defaultValue);
|
|
64
64
|
}
|
|
65
65
|
__name(stringToPath, "stringToPath");
|
|
66
66
|
function valueToPath(value, defaultValue = "") {
|
|
@@ -71,9 +71,8 @@ function valueToPath(value, defaultValue = "") {
|
|
|
71
71
|
__name(valueToPath, "valueToPath");
|
|
72
72
|
var toPath = valueToPath;
|
|
73
73
|
function setupEnv(options = {}) {
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
const encoding = (_c = options == null ? void 0 : options.encoding) != null ? _c : "utf8";
|
|
74
|
+
const dotenvPath = (options == null ? void 0 : options.path) ?? toPath((options == null ? void 0 : options.filename) ?? ".env");
|
|
75
|
+
const encoding = (options == null ? void 0 : options.encoding) ?? "utf8";
|
|
77
76
|
const debug = (options == null ? void 0 : options.debug) || false;
|
|
78
77
|
if (debug !== true)
|
|
79
78
|
log.level = Infinity /* off */;
|
|
@@ -81,7 +80,7 @@ function setupEnv(options = {}) {
|
|
|
81
80
|
const parsedEnv = fs.existsSync(dotenvPath) ? parse(fs.readFileSync(dotenvPath, { encoding }), { debug }) : {};
|
|
82
81
|
const parsedEnvLocal = fs.existsSync(dotenvPath + ".local") ? parse(fs.readFileSync(dotenvPath + ".local", { encoding }), { debug }) : {};
|
|
83
82
|
const parsed = Object.assign({}, parsedEnv, parsedEnvLocal);
|
|
84
|
-
let env = (
|
|
83
|
+
let env = (options == null ? void 0 : options.env) ?? process.env;
|
|
85
84
|
Object.entries(parsed).forEach(([key, value]) => {
|
|
86
85
|
if (typeof (options == null ? void 0 : options.prefix) === "string") {
|
|
87
86
|
key = (options == null ? void 0 : options.prefix) + key;
|
|
@@ -119,25 +118,24 @@ var FileStorage = class {
|
|
|
119
118
|
this.store = {};
|
|
120
119
|
this.fileKeys = void 0;
|
|
121
120
|
this.pretty = false;
|
|
122
|
-
var _a2, _b2, _c, _d;
|
|
123
121
|
this.dirname = resolve2(process.cwd(), opt.path || ".fileStorage");
|
|
124
122
|
this.pretty = !!opt.pretty;
|
|
125
|
-
this.extension =
|
|
123
|
+
this.extension = opt.extension ?? ".json";
|
|
126
124
|
if (opt.extension && !this.extension.startsWith(".")) {
|
|
127
125
|
this.extension = "." + this.extension;
|
|
128
126
|
}
|
|
129
127
|
this.extensionLength = this.extension.length;
|
|
130
|
-
this.objectToString =
|
|
128
|
+
this.objectToString = opt.objectToString ?? ((data) => {
|
|
131
129
|
return this.pretty ? JSON.stringify(data, null, 2) : JSON.stringify(data);
|
|
132
|
-
};
|
|
133
|
-
this.objectFromString =
|
|
130
|
+
});
|
|
131
|
+
this.objectFromString = opt.objectFromString ?? ((data) => {
|
|
134
132
|
try {
|
|
135
133
|
return JSON.parse(data);
|
|
136
134
|
} catch (err) {
|
|
137
135
|
log2.warn(`fileStorage parse error '${err}' in`, data);
|
|
138
136
|
}
|
|
139
|
-
};
|
|
140
|
-
this.keyToFilename =
|
|
137
|
+
});
|
|
138
|
+
this.keyToFilename = opt.keyToFilename ?? toValidFilename;
|
|
141
139
|
}
|
|
142
140
|
setItem(key, value) {
|
|
143
141
|
this.store[key] = cloneObject(value);
|
|
@@ -539,14 +537,13 @@ try {
|
|
|
539
537
|
|
|
540
538
|
// src/node/log-context-node.ts
|
|
541
539
|
function setupLogContextNode() {
|
|
542
|
-
var _a2;
|
|
543
540
|
let handlers = [
|
|
544
541
|
LoggerNodeHandler({
|
|
545
542
|
padding: 32,
|
|
546
543
|
nameBrackets: false
|
|
547
544
|
})
|
|
548
545
|
];
|
|
549
|
-
let logFilePath =
|
|
546
|
+
let logFilePath = process.env.ZEED_LOG ?? process.env.LOG;
|
|
550
547
|
if (logFilePath) {
|
|
551
548
|
handlers.unshift(LoggerFileHandler(toPath(logFilePath)));
|
|
552
549
|
}
|
|
@@ -576,4 +573,4 @@ export {
|
|
|
576
573
|
loggerStackTraceDebug,
|
|
577
574
|
LoggerNodeHandler
|
|
578
575
|
};
|
|
579
|
-
//# sourceMappingURL=chunk-
|
|
576
|
+
//# sourceMappingURL=chunk-ANAAXFIQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/node/clipboard.ts","../src/node/env.ts","../src/node/filestorage.ts","../src/node/fs.ts","../src/node/log-file.ts","../src/node/log-util.ts","../src/node/log-node.ts","../src/node/crypto.ts","../src/node/log-context-node.ts"],"sourcesContent":["import { spawn } from \"child_process\"\n\n/** Copy string to clipboard */\nexport function pbcopy(data: string) {\n return new Promise(async (resolve, reject) => {\n const proc = spawn(\"pbcopy\")\n proc.on(\"error\", (err: any) => reject(err))\n proc.on(\"close\", () => resolve(data))\n proc.stdin.write(data)\n proc.stdin.end()\n })\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\n// Adopted from https://github.com/motdotla/dotenv BSD-2\n\nimport { LogLevel } from \"../common/log-base\"\nimport { Logger } from \"../common/log\"\n\nimport fs from \"fs\"\nimport { resolve } from \"path\"\n\nconst log = Logger(\"zeed:env\")\n\nconst NEWLINE = \"\\n\"\nconst RE_INI_KEY_VAL = /^\\s*([\\w_.-]+)\\s*=\\s*(.*)?\\s*$/\nconst RE_NEWLINES = /\\\\n/g\nconst NEWLINES_MATCH = /\\n|\\r|\\r\\n/\n\ntype csvOptions = {\n /** @deprecated will probably be replaced by logLevel */\n debug?: boolean\n path?: string\n filename?: string\n encoding?: BufferEncoding\n prefix?: string\n env?: Record<string, string>\n}\n\n// Parses src into an Object\nfunction parse(src: string, options: csvOptions = {}) {\n let obj: Record<string, string> = {}\n\n // convert Buffers before splitting into lines and processing\n String(src)\n .split(NEWLINES_MATCH)\n .forEach(function (line, idx) {\n // matching \"KEY' and 'VAL' in 'KEY=VAL'\n const keyValueArr = line.match(RE_INI_KEY_VAL)\n // matched?\n\n // log.debug(\"keyValueArr\", keyValueArr)\n\n if (keyValueArr != null) {\n const key = keyValueArr[1]\n // default undefined or missing values to empty string\n let val = keyValueArr[2] || \"\"\n const end = val.length - 1\n const isDoubleQuoted = val[0] === '\"' && val[end] === '\"'\n const isSingleQuoted = val[0] === \"'\" && val[end] === \"'\"\n\n // if single or double quoted, remove quotes\n if (isSingleQuoted || isDoubleQuoted) {\n val = val.substring(1, end)\n\n // if double quoted, expand newlines\n if (isDoubleQuoted) {\n val = val.replace(RE_NEWLINES, NEWLINE)\n }\n } else {\n // remove surrounding whitespace\n val = val.trim()\n }\n obj[key] = val\n } else {\n log.debug(\n `did not match key and value when parsing line ${idx + 1}: ${line}`\n )\n }\n })\n\n // log.debug(\"obj\", obj)\n return obj\n}\n\n/**\n * Return a path relative to the current working directory\n */\nexport function stringToPath(\n value?: string,\n defaultValue: string = \".\"\n): string {\n return resolve(process.cwd(), value ?? defaultValue)\n}\n\nexport function valueToPath(value?: any, defaultValue = \"\"): string {\n if (value == null) value = defaultValue\n return stringToPath(String(value).trim(), defaultValue)\n}\n\nexport const toPath = valueToPath\n\n// Populates process.env from .env file\nexport function setupEnv(options: csvOptions = {}) {\n const dotenvPath: string =\n options?.path ?? toPath(options?.filename ?? \".env\")\n const encoding: BufferEncoding = options?.encoding ?? \"utf8\"\n const debug = options?.debug || false\n\n if (debug !== true) log.level = LogLevel.off\n\n try {\n // specifying an encoding returns a string instead of a buffer\n const parsedEnv = fs.existsSync(dotenvPath)\n ? parse(fs.readFileSync(dotenvPath, { encoding }), { debug })\n : {}\n const parsedEnvLocal = fs.existsSync(dotenvPath + \".local\")\n ? parse(fs.readFileSync(dotenvPath + \".local\", { encoding }), { debug })\n : {}\n\n const parsed: Record<string, string> = Object.assign(\n {},\n parsedEnv,\n parsedEnvLocal\n )\n let env = options?.env ?? process.env\n\n Object.entries(parsed).forEach(([key, value]) => {\n if (typeof options?.prefix === \"string\") {\n key = options?.prefix + key\n }\n if (!Object.prototype.hasOwnProperty.call(env, key)) {\n if (value != null) {\n log.info(`set env.${key} = ${value}`)\n env[key] = value\n }\n } else {\n log.debug(`\"${key}\" is already defined and will not be overwritten`)\n }\n })\n return { parsed }\n } catch (e) {\n log.error(e)\n return { error: e }\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport {\n mkdirSync,\n readdirSync,\n readFileSync,\n rmSync,\n unlinkSync,\n writeFileSync,\n} from \"fs\"\nimport { dirname, resolve } from \"path\"\nimport { toValidFilename } from \"../common/data/path\"\nimport { cloneObject } from \"../common/data/utils\"\nimport { Logger } from \"../common/log\"\nimport { Json, ObjectStorage } from \"../common/types\"\n\nconst log = Logger(\"zeed:filestorage\")\n\nexport interface FileStorageOptions {\n pretty?: boolean\n path?: string\n extension?: string\n objectFromString?: (data: string) => any\n objectToString?: (data: any) => string\n keyToFilename?: (key: string) => string\n}\n\nexport class FileStorage<T = Json> implements ObjectStorage<T> {\n private store: Record<string, T | null> = {}\n private dirname: string\n private fileKeys?: string[] = undefined\n private pretty: boolean = false\n private extension: string\n private extensionLength: number\n private objectFromString: (data: string) => any\n private objectToString: (data: any) => string\n private keyToFilename: (key: string) => string\n\n constructor(opt: FileStorageOptions = {}) {\n this.dirname = resolve(process.cwd(), opt.path || \".fileStorage\")\n this.pretty = !!opt.pretty\n this.extension = opt.extension ?? \".json\"\n\n if (opt.extension && !this.extension.startsWith(\".\")) {\n this.extension = \".\" + this.extension\n }\n this.extensionLength = this.extension.length\n\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(`fileStorage parse error '${err}' in`, data)\n }\n })\n\n this.keyToFilename = opt.keyToFilename ?? toValidFilename\n }\n\n setItem(key: string, value: T): void {\n this.store[key] = cloneObject(value)\n try {\n const data = this.objectToString(value)\n const path = this.getPath(key)\n mkdirSync(dirname(path), { recursive: true })\n writeFileSync(path, data, \"utf8\")\n } catch (err) {\n log.error(\"setItem error\", err)\n }\n }\n\n getPath(key: string): string {\n return resolve(this.dirname, this.keyToFilename(key) + this.extension)\n }\n\n getBuffer(key: string): Buffer {\n const path = this.getPath(key)\n return Buffer.from(readFileSync(path))\n }\n\n getItem(key: string): T | undefined {\n let value = this.store[key]\n\n // null is an indicator for not existing!\n if (value === null) return\n\n if (value != null) {\n return cloneObject(value) // this.objectFromString(value)\n }\n\n try {\n const path = this.getPath(key)\n const data = readFileSync(path, \"utf8\")\n if (data != null) {\n const value = this.objectFromString(data)\n this.store[key] = value\n return value\n }\n } catch (err) {\n log.warn(\"getItem error\", err)\n this.store[key] = null // do not retry next time\n }\n }\n\n removeItem(key: string): void {\n delete this.store[key]\n if (this.fileKeys != null) {\n const index: number = this.fileKeys.indexOf(key)\n if (index !== -1) {\n this.fileKeys.splice(index, 1)\n }\n }\n try {\n const path = this.getPath(key)\n unlinkSync(path)\n } catch (err) {}\n }\n\n clear(): void {\n this.fileKeys = []\n this.store = {}\n rmSync(this.dirname, { recursive: true, force: true })\n }\n\n allKeys(): string[] {\n if (this.fileKeys == null) {\n try {\n this.fileKeys =\n readdirSync(this.dirname, { withFileTypes: true })\n .filter(\n (item) =>\n !item.isDirectory() && item.name.endsWith(this.extension)\n )\n .map((item) => item.name.slice(0, -this.extensionLength)) || []\n } catch (err) {}\n }\n let keys = [...(this.fileKeys || [])]\n for (let key of Object.keys(this.store)) {\n if (!keys.includes(key)) {\n keys.push(key)\n }\n }\n keys.sort()\n return keys\n }\n}\n","import { mkdir, rm, stat } from \"node:fs/promises\"\nimport { join as joinPath } from \"node:path\"\n\nexport async function exists(path: string): Promise<boolean> {\n try {\n await stat(path)\n } catch (err) {\n return false\n }\n return true\n}\n\nexport async function ensureFolder(...parts: string[]): Promise<string> {\n const path = joinPath(...parts)\n if (!(await exists(path))) {\n await mkdir(path, { recursive: true })\n }\n return path\n}\n\nexport async function removeFolder(...parts: string[]): Promise<string> {\n const path = joinPath(...parts)\n if (await exists(path)) {\n await rm(path, { recursive: true })\n }\n return path\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { createWriteStream, mkdirSync } from \"fs\"\nimport { dirname, resolve } from \"path\"\nimport { renderMessages } from \"../common/data/convert\"\nimport { LogHandlerOptions, LogLevel, LogMessage } from \"../common/log-base\"\nimport { useLevelFilter, useNamespaceFilter } from \"../common/log-filter\"\n\nlet namespaces: Record<string, any> = {}\n\nexport function LoggerFileHandler(path: string, opt: LogHandlerOptions = {}) {\n const { level = LogLevel.all, filter = \"*\" } = opt\n path = resolve(process.cwd(), path)\n mkdirSync(dirname(path), { recursive: true })\n var stream = createWriteStream(path, { flags: \"a\" })\n // stream.end()\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 time = new Date().toISOString()\n let name = msg.name || \"\"\n let ninfo = namespaces[name || \"\"]\n if (ninfo == null) {\n namespaces[name] = ninfo\n }\n\n let args: string[] = [\n `[${name || \"*\"}]`,\n renderMessages(msg.messages, { pretty: false }),\n ]\n\n function write(...args: string[]): void {\n stream.write(args.join(\"\\t\") + \"\\n\")\n }\n\n switch (msg.level) {\n case LogLevel.info:\n write(time, `I|* `, ...args)\n break\n case LogLevel.warn:\n write(time, `W|** `, ...args)\n break\n case LogLevel.error:\n write(time, `E|***`, ...args)\n break\n default:\n write(time, `D| `, ...args)\n break\n }\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { resolve } from \"path\"\n\nexport function getStackLlocationList(stack: string): any[] {\n if (typeof stack !== \"string\") return []\n // console.log(\"stack\", stack)\n return (\n stack\n ?.split(\"\\n\")\n ?.map((rawLine) => {\n let m = rawLine.match(\n /^\\s+at.*(\\((.*)\\)|file:\\/\\/(.*)$)|\\s*at\\s(\\/.*)$/\n )\n if (m) {\n let line = m[3] || m[2] || m[4]\n if (line.endsWith(\")\")) line = line.slice(0, -1)\n return line\n }\n })\n ?.filter((v) => v != null) || []\n )\n}\n\nconst cwd = resolve(process.cwd())\nconst home = process.env?.HOME ? resolve(process.env?.HOME) : \"\"\n// console.log(`cwd = ${cwd}, home = ${home}}`)\n\nfunction pathStripCwd(path: string) {\n // console.log(\">\", path)\n\n if (path.includes(\"/node_modules/\")) {\n return \"\"\n }\n\n const fileURL = \"file://\"\n if (path.startsWith(fileURL)) {\n return path.substr(fileURL.length)\n }\n\n if (cwd && path.startsWith(cwd)) {\n return path.substr(cwd.length + 1)\n }\n\n if (home && path.startsWith(home)) {\n path = \"~/\" + path.substr(home.length + 1)\n }\n\n return path\n}\n\nfunction extractFileInfo(stackLine: string): string {\n let m = stackLine.match(/^\\s*at.*(\\((.*)\\)|file:\\/\\/(.*)$)|\\s*at\\s(\\/.*)$/)\n if (m) {\n let line = m[3] || m[2] || m[4]\n if (line.endsWith(\")\")) line = line.slice(0, -1)\n return line\n }\n return \"\"\n}\n\n/**\n * Get the source code location of the caller\n * https://stackoverflow.com/a/47296370/140927\n *\n * @param level Number of levels to go down the stack trace\n * @param stripCwd Strip the current working directory, only reasonable for Node.js environment\n * @returns\n */\nexport function getSourceLocation(level = 2, stripCwd = true): string {\n let stack = new Error().stack || \"\"\n let line: string | undefined = getStackLlocationList(stack)?.[level]\n if (line && stripCwd) {\n line = pathStripCwd(line)\n }\n return line || \"\"\n}\n\nexport function getStack(): string {\n return new Error().stack || \"\"\n}\n\nexport function getSourceLocationByPrecedingPattern(\n patterns: string[],\n stripCwd = true\n) {\n let line = \"\"\n let stack = new Error().stack || \"\"\n if (typeof stack === \"string\") {\n const lines = stack.split(\"\\n\").map((l) => l.trim())\n // console.log(lines)\n const index = lines.findIndex((l) => patterns.some((p) => l.startsWith(p)))\n line = lines[index + 1]\n if (line) {\n line = extractFileInfo(line)\n }\n if (line && stripCwd) {\n line = pathStripCwd(line)\n }\n }\n return line\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport tty from \"tty\"\nimport { renderMessages } from \"../common/data/convert\"\nimport {\n LogHandler,\n LogHandlerOptions,\n LogLevel,\n LogMessage,\n} from \"../common/log-base\"\nimport { useLevelFilter, useNamespaceFilter } from \"../common/log-filter\"\nimport {\n getSourceLocation,\n getSourceLocationByPrecedingPattern,\n getStack,\n} from \"./log-util\"\nimport { formatMilliseconds, getTimestamp } from \"../common/time\"\n\nexport function isTTY(): boolean {\n try {\n return tty.isatty(process.stdout.fd)\n } catch (err) {}\n return false\n}\n\nconst colors = [6, 2, 3, 4, 5, 1]\n\nfunction 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\nlet namespaces: Record<string, any> = {}\n\nlet time = getTimestamp()\n\nconst useColors = tty.isatty(process.stderr.fd)\n\nfunction log(...args: any[]) {\n return process.stderr.write(renderMessages(args) + \"\\n\")\n}\n\n// export const BOLD = Symbol()\n// export const UNBOLD = Symbol()\n// export const BLUE = Symbol()\n// export const GREY = Symbol()\n// export const GREEN = Symbol()\n// export const RED = Symbol()\n// export const PURPLE = Symbol()\n// export const ORANGE = Symbol()\n// export const UNCOLOR = Symbol()\n\n// const _browserStyleMap = {\n// [BOLD]: pair.create(\"font-weight\", \"bold\"),\n// [UNBOLD]: pair.create(\"font-weight\", \"normal\"),\n// [BLUE]: pair.create(\"color\", \"blue\"),\n// [GREEN]: pair.create(\"color\", \"green\"),\n// [GREY]: pair.create(\"color\", \"grey\"),\n// [RED]: pair.create(\"color\", \"red\"),\n// [PURPLE]: pair.create(\"color\", \"purple\"),\n// [ORANGE]: pair.create(\"color\", \"orange\"), // not well supported in chrome when debugging node with inspector - TODO: deprecate\n// [UNCOLOR]: pair.create(\"color\", \"black\"),\n// }\n\nconst TTY_STYLE = {\n BOLD: \"\\u001b[1m\",\n UNBOLD: \"\\u001b[2m\",\n RED: \"\\u001b[31m\",\n GREEN: \"\\u001b[32m\",\n BLUE: \"\\u001b[34m\",\n PURPLE: \"\\u001b[35m\",\n GRAY: \"\\u001b[37m\",\n ORANGE: \"\\u001b[38;5;208m\",\n UNCOLOR: \"\\u001b[0m\",\n}\n\nenum COLOR {\n RED = 1,\n GREEN = 2,\n BLUE = 4,\n PURPLE = 5,\n GRAY = 7,\n ORANGE = 8,\n}\n\nconst colorEnd = \"\\u001B[0m\"\n\nexport function colorString(value: string, colorCode: number) {\n const colorStart =\n colorCode === COLOR.ORANGE\n ? TTY_STYLE.ORANGE\n : \"\\u001B[3\" + (colorCode < 8 ? colorCode : \"8;5;\" + colorCode) + \"m\"\n return `${colorStart}${value}${colorEnd}`\n}\n\nexport function colorStringList(\n list: Array<any>,\n style: string,\n bold: boolean = true\n) {\n return list.map((value) => {\n if (typeof value !== \"string\") return value\n let start = style\n let end = colorEnd\n if (bold) {\n start = `${TTY_STYLE.BOLD}${start}`\n end = `${end}${TTY_STYLE.BOLD}`\n }\n return `${start}${value}${end}`\n })\n}\n\nexport const loggerStackTraceDebug =\n \"loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485\"\n\nexport function LoggerNodeHandler(opt: LogHandlerOptions = {}): LogHandler {\n const {\n level = undefined,\n filter = undefined,\n colors = isTTY(),\n levelHelper = true,\n nameBrackets = true,\n padding = 0,\n fill = 0,\n stack = true,\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 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\n let args: string[]\n\n let displayName = nameBrackets ? `[${name}]` : name\n\n if (padding > 0) {\n displayName = displayName.padStart(padding, \" \")\n }\n\n if (fill > 0) {\n displayName = displayName.padEnd(fill, \" \")\n }\n\n if (colors && useColors) {\n const c = ninfo.color\n args = [colorString(displayName, c) + ` | `] // nameBrackets ? [`%c[${name}]`] : [`%c${name}`]\n if (msg.level === LogLevel.warn) {\n args.push(...colorStringList(msg.messages, TTY_STYLE.ORANGE))\n } else if (msg.level === LogLevel.error) {\n args.push(...colorStringList(msg.messages, TTY_STYLE.RED))\n } else {\n args.push(...msg.messages)\n }\n args.push(colorString(`+${diff}`, c))\n } else {\n args = [displayName, ...msg.messages]\n args.push(`+${diff}`)\n }\n\n if (msg.messages?.[0] === loggerStackTraceDebug) {\n console.log(getStack())\n }\n\n if (stack) {\n let line: string = \"\"\n if (typeof stack === \"boolean\") {\n line = getSourceLocationByPrecedingPattern(\n [\"at Function.\", \"at null.log (\", \"at log (\"],\n true\n )\n if (!line) {\n line = getSourceLocation(0, true)\n }\n } else {\n const depth = typeof stack === \"number\" ? stack : 3\n line = getSourceLocation(depth, true)\n }\n if (line) {\n args.push(colorString(`(${line})`, COLOR.GRAY))\n }\n }\n switch (msg.level) {\n case LogLevel.info:\n if (levelHelper) args[0] = `I|* ` + args[0]\n log(...args)\n break\n case LogLevel.warn:\n if (levelHelper)\n args[0] =\n (colors && useColors\n ? colorString(`W|** `, COLOR.ORANGE)\n : `W|** `) + args[0]\n log(...args)\n break\n case LogLevel.error:\n if (levelHelper)\n args[0] =\n (colors && useColors\n ? colorString(`E|*** `, COLOR.RED)\n : `E|*** `) + args[0]\n log(...args)\n break\n default:\n if (levelHelper) args[0] = `D| ` + args[0]\n log(...args)\n break\n }\n }\n}\n","// https://nodejs.org/api/webcrypto.html\nimport nodeCrypto from \"crypto\"\n\nexport {}\n\ndeclare module NodeJS {\n interface Global {\n crypto: Crypto\n }\n}\n\ntry {\n if (\n nodeCrypto &&\n nodeCrypto.webcrypto &&\n typeof globalThis !== \"undefined\" &&\n typeof globalThis.crypto === \"undefined\"\n ) {\n // @ts-ignore\n globalThis.crypto = nodeCrypto.webcrypto\n }\n} catch (err) {\n console.warn(\"Failed to polyfill webcrypto\", err)\n}\n","import { Logger } from \"../common/log\"\nimport { toPath } from \"./env\"\nimport { LoggerFileHandler } from \"./log-file\"\nimport { LoggerNodeHandler } from \"./log-node\"\n\nfunction setupLogContextNode() {\n let handlers = [\n LoggerNodeHandler({\n padding: 32,\n nameBrackets: false,\n // levelHelper: false,\n }),\n ]\n\n let logFilePath = process.env.ZEED_LOG ?? process.env.LOG\n if (logFilePath) {\n handlers.unshift(LoggerFileHandler(toPath(logFilePath)))\n }\n\n Logger.setHandlers(handlers)\n}\n\nsetupLogContextNode()\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/node/clipboard.ts","../src/node/env.ts","../src/node/filestorage.ts","../src/node/fs.ts","../src/node/log-file.ts","../src/node/log-util.ts","../src/node/log-node.ts","../src/node/crypto.ts","../src/node/log-context-node.ts"],"sourcesContent":["import { spawn } from \"child_process\"\n\n/** Copy string to clipboard */\nexport function pbcopy(data: string) {\n return new Promise(async (resolve, reject) => {\n const proc = spawn(\"pbcopy\")\n proc.on(\"error\", (err: any) => reject(err))\n proc.on(\"close\", () => resolve(data))\n proc.stdin.write(data)\n proc.stdin.end()\n })\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\n// Adopted from https://github.com/motdotla/dotenv BSD-2\n\nimport { LogLevel } from \"../common/log-base\"\nimport { Logger } from \"../common/log\"\n\nimport fs from \"fs\"\nimport { resolve } from \"path\"\n\nconst log = Logger(\"zeed:env\")\n\nconst NEWLINE = \"\\n\"\nconst RE_INI_KEY_VAL = /^\\s*([\\w_.-]+)\\s*=\\s*(.*)?\\s*$/\nconst RE_NEWLINES = /\\\\n/g\nconst NEWLINES_MATCH = /\\n|\\r|\\r\\n/\n\ntype csvOptions = {\n /** @deprecated will probably be replaced by logLevel */\n debug?: boolean\n path?: string\n filename?: string\n encoding?: BufferEncoding\n prefix?: string\n env?: Record<string, string>\n}\n\n// Parses src into an Object\nfunction parse(src: string, options: csvOptions = {}) {\n let obj: Record<string, string> = {}\n\n // convert Buffers before splitting into lines and processing\n String(src)\n .split(NEWLINES_MATCH)\n .forEach(function (line, idx) {\n // matching \"KEY' and 'VAL' in 'KEY=VAL'\n const keyValueArr = line.match(RE_INI_KEY_VAL)\n // matched?\n\n // log.debug(\"keyValueArr\", keyValueArr)\n\n if (keyValueArr != null) {\n const key = keyValueArr[1]\n // default undefined or missing values to empty string\n let val = keyValueArr[2] || \"\"\n const end = val.length - 1\n const isDoubleQuoted = val[0] === '\"' && val[end] === '\"'\n const isSingleQuoted = val[0] === \"'\" && val[end] === \"'\"\n\n // if single or double quoted, remove quotes\n if (isSingleQuoted || isDoubleQuoted) {\n val = val.substring(1, end)\n\n // if double quoted, expand newlines\n if (isDoubleQuoted) {\n val = val.replace(RE_NEWLINES, NEWLINE)\n }\n } else {\n // remove surrounding whitespace\n val = val.trim()\n }\n obj[key] = val\n } else {\n log.debug(\n `did not match key and value when parsing line ${idx + 1}: ${line}`\n )\n }\n })\n\n // log.debug(\"obj\", obj)\n return obj\n}\n\n/**\n * Return a path relative to the current working directory\n */\nexport function stringToPath(\n value?: string,\n defaultValue: string = \".\"\n): string {\n return resolve(process.cwd(), value ?? defaultValue)\n}\n\nexport function valueToPath(value?: any, defaultValue = \"\"): string {\n if (value == null) value = defaultValue\n return stringToPath(String(value).trim(), defaultValue)\n}\n\nexport const toPath = valueToPath\n\n// Populates process.env from .env file\nexport function setupEnv(options: csvOptions = {}) {\n const dotenvPath: string =\n options?.path ?? toPath(options?.filename ?? \".env\")\n const encoding: BufferEncoding = options?.encoding ?? \"utf8\"\n const debug = options?.debug || false\n\n if (debug !== true) log.level = LogLevel.off\n\n try {\n // specifying an encoding returns a string instead of a buffer\n const parsedEnv = fs.existsSync(dotenvPath)\n ? parse(fs.readFileSync(dotenvPath, { encoding }), { debug })\n : {}\n const parsedEnvLocal = fs.existsSync(dotenvPath + \".local\")\n ? parse(fs.readFileSync(dotenvPath + \".local\", { encoding }), { debug })\n : {}\n\n const parsed: Record<string, string> = Object.assign(\n {},\n parsedEnv,\n parsedEnvLocal\n )\n let env = options?.env ?? process.env\n\n Object.entries(parsed).forEach(([key, value]) => {\n if (typeof options?.prefix === \"string\") {\n key = options?.prefix + key\n }\n if (!Object.prototype.hasOwnProperty.call(env, key)) {\n if (value != null) {\n log.info(`set env.${key} = ${value}`)\n env[key] = value\n }\n } else {\n log.debug(`\"${key}\" is already defined and will not be overwritten`)\n }\n })\n return { parsed }\n } catch (e) {\n log.error(e)\n return { error: e }\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport {\n mkdirSync,\n readdirSync,\n readFileSync,\n rmSync,\n unlinkSync,\n writeFileSync,\n} from \"fs\"\nimport { dirname, resolve } from \"path\"\nimport { toValidFilename } from \"../common/data/path\"\nimport { cloneObject } from \"../common/data/utils\"\nimport { Logger } from \"../common/log\"\nimport { Json, ObjectStorage } from \"../common/types\"\n\nconst log = Logger(\"zeed:filestorage\")\n\nexport interface FileStorageOptions {\n pretty?: boolean\n path?: string\n extension?: string\n objectFromString?: (data: string) => any\n objectToString?: (data: any) => string\n keyToFilename?: (key: string) => string\n}\n\nexport class FileStorage<T = Json> implements ObjectStorage<T> {\n private store: Record<string, T | null> = {}\n private dirname: string\n private fileKeys?: string[] = undefined\n private pretty: boolean = false\n private extension: string\n private extensionLength: number\n private objectFromString: (data: string) => any\n private objectToString: (data: any) => string\n private keyToFilename: (key: string) => string\n\n constructor(opt: FileStorageOptions = {}) {\n this.dirname = resolve(process.cwd(), opt.path || \".fileStorage\")\n this.pretty = !!opt.pretty\n this.extension = opt.extension ?? \".json\"\n\n if (opt.extension && !this.extension.startsWith(\".\")) {\n this.extension = \".\" + this.extension\n }\n this.extensionLength = this.extension.length\n\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(`fileStorage parse error '${err}' in`, data)\n }\n })\n\n this.keyToFilename = opt.keyToFilename ?? toValidFilename\n }\n\n setItem(key: string, value: T): void {\n this.store[key] = cloneObject(value)\n try {\n const data = this.objectToString(value)\n const path = this.getPath(key)\n mkdirSync(dirname(path), { recursive: true })\n writeFileSync(path, data, \"utf8\")\n } catch (err) {\n log.error(\"setItem error\", err)\n }\n }\n\n getPath(key: string): string {\n return resolve(this.dirname, this.keyToFilename(key) + this.extension)\n }\n\n getBuffer(key: string): Buffer {\n const path = this.getPath(key)\n return Buffer.from(readFileSync(path))\n }\n\n getItem(key: string): T | undefined {\n let value = this.store[key]\n\n // null is an indicator for not existing!\n if (value === null) return\n\n if (value != null) {\n return cloneObject(value) // this.objectFromString(value)\n }\n\n try {\n const path = this.getPath(key)\n const data = readFileSync(path, \"utf8\")\n if (data != null) {\n const value = this.objectFromString(data)\n this.store[key] = value\n return value\n }\n } catch (err) {\n log.warn(\"getItem error\", err)\n this.store[key] = null // do not retry next time\n }\n }\n\n removeItem(key: string): void {\n delete this.store[key]\n if (this.fileKeys != null) {\n const index: number = this.fileKeys.indexOf(key)\n if (index !== -1) {\n this.fileKeys.splice(index, 1)\n }\n }\n try {\n const path = this.getPath(key)\n unlinkSync(path)\n } catch (err) {}\n }\n\n clear(): void {\n this.fileKeys = []\n this.store = {}\n rmSync(this.dirname, { recursive: true, force: true })\n }\n\n allKeys(): string[] {\n if (this.fileKeys == null) {\n try {\n this.fileKeys =\n readdirSync(this.dirname, { withFileTypes: true })\n .filter(\n (item) =>\n !item.isDirectory() && item.name.endsWith(this.extension)\n )\n .map((item) => item.name.slice(0, -this.extensionLength)) || []\n } catch (err) {}\n }\n let keys = [...(this.fileKeys || [])]\n for (let key of Object.keys(this.store)) {\n if (!keys.includes(key)) {\n keys.push(key)\n }\n }\n keys.sort()\n return keys\n }\n}\n","import { mkdir, rm, stat } from \"node:fs/promises\"\nimport { join as joinPath } from \"node:path\"\n\nexport async function exists(path: string): Promise<boolean> {\n try {\n await stat(path)\n } catch (err) {\n return false\n }\n return true\n}\n\nexport async function ensureFolder(...parts: string[]): Promise<string> {\n const path = joinPath(...parts)\n if (!(await exists(path))) {\n await mkdir(path, { recursive: true })\n }\n return path\n}\n\nexport async function removeFolder(...parts: string[]): Promise<string> {\n const path = joinPath(...parts)\n if (await exists(path)) {\n await rm(path, { recursive: true })\n }\n return path\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { createWriteStream, mkdirSync } from \"fs\"\nimport { dirname, resolve } from \"path\"\nimport { renderMessages } from \"../common/data/convert\"\nimport { LogHandlerOptions, LogLevel, LogMessage } from \"../common/log-base\"\nimport { useLevelFilter, useNamespaceFilter } from \"../common/log-filter\"\n\nlet namespaces: Record<string, any> = {}\n\nexport function LoggerFileHandler(path: string, opt: LogHandlerOptions = {}) {\n const { level = LogLevel.all, filter = \"*\" } = opt\n path = resolve(process.cwd(), path)\n mkdirSync(dirname(path), { recursive: true })\n var stream = createWriteStream(path, { flags: \"a\" })\n // stream.end()\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 time = new Date().toISOString()\n let name = msg.name || \"\"\n let ninfo = namespaces[name || \"\"]\n if (ninfo == null) {\n namespaces[name] = ninfo\n }\n\n let args: string[] = [\n `[${name || \"*\"}]`,\n renderMessages(msg.messages, { pretty: false }),\n ]\n\n function write(...args: string[]): void {\n stream.write(args.join(\"\\t\") + \"\\n\")\n }\n\n switch (msg.level) {\n case LogLevel.info:\n write(time, `I|* `, ...args)\n break\n case LogLevel.warn:\n write(time, `W|** `, ...args)\n break\n case LogLevel.error:\n write(time, `E|***`, ...args)\n break\n default:\n write(time, `D| `, ...args)\n break\n }\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { resolve } from \"path\"\n\nexport function getStackLlocationList(stack: string): any[] {\n if (typeof stack !== \"string\") return []\n // console.log(\"stack\", stack)\n return (\n stack\n ?.split(\"\\n\")\n ?.map((rawLine) => {\n let m = rawLine.match(\n /^\\s+at.*(\\((.*)\\)|file:\\/\\/(.*)$)|\\s*at\\s(\\/.*)$/\n )\n if (m) {\n let line = m[3] || m[2] || m[4]\n if (line.endsWith(\")\")) line = line.slice(0, -1)\n return line\n }\n })\n ?.filter((v) => v != null) || []\n )\n}\n\nconst cwd = resolve(process.cwd())\nconst home = process.env?.HOME ? resolve(process.env?.HOME) : \"\"\n// console.log(`cwd = ${cwd}, home = ${home}}`)\n\nfunction pathStripCwd(path: string) {\n // console.log(\">\", path)\n\n if (path.includes(\"/node_modules/\")) {\n return \"\"\n }\n\n const fileURL = \"file://\"\n if (path.startsWith(fileURL)) {\n return path.substr(fileURL.length)\n }\n\n if (cwd && path.startsWith(cwd)) {\n return path.substr(cwd.length + 1)\n }\n\n if (home && path.startsWith(home)) {\n path = \"~/\" + path.substr(home.length + 1)\n }\n\n return path\n}\n\nfunction extractFileInfo(stackLine: string): string {\n let m = stackLine.match(/^\\s*at.*(\\((.*)\\)|file:\\/\\/(.*)$)|\\s*at\\s(\\/.*)$/)\n if (m) {\n let line = m[3] || m[2] || m[4]\n if (line.endsWith(\")\")) line = line.slice(0, -1)\n return line\n }\n return \"\"\n}\n\n/**\n * Get the source code location of the caller\n * https://stackoverflow.com/a/47296370/140927\n *\n * @param level Number of levels to go down the stack trace\n * @param stripCwd Strip the current working directory, only reasonable for Node.js environment\n * @returns\n */\nexport function getSourceLocation(level = 2, stripCwd = true): string {\n let stack = new Error().stack || \"\"\n let line: string | undefined = getStackLlocationList(stack)?.[level]\n if (line && stripCwd) {\n line = pathStripCwd(line)\n }\n return line || \"\"\n}\n\nexport function getStack(): string {\n return new Error().stack || \"\"\n}\n\nexport function getSourceLocationByPrecedingPattern(\n patterns: string[],\n stripCwd = true\n) {\n let line = \"\"\n let stack = new Error().stack || \"\"\n if (typeof stack === \"string\") {\n const lines = stack.split(\"\\n\").map((l) => l.trim())\n // console.log(lines)\n const index = lines.findIndex((l) => patterns.some((p) => l.startsWith(p)))\n line = lines[index + 1]\n if (line) {\n line = extractFileInfo(line)\n }\n if (line && stripCwd) {\n line = pathStripCwd(line)\n }\n }\n return line\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport tty from \"tty\"\nimport { renderMessages } from \"../common/data/convert\"\nimport {\n LogHandler,\n LogHandlerOptions,\n LogLevel,\n LogMessage,\n} from \"../common/log-base\"\nimport { useLevelFilter, useNamespaceFilter } from \"../common/log-filter\"\nimport {\n getSourceLocation,\n getSourceLocationByPrecedingPattern,\n getStack,\n} from \"./log-util\"\nimport { formatMilliseconds, getTimestamp } from \"../common/time\"\n\nexport function isTTY(): boolean {\n try {\n return tty.isatty(process.stdout.fd)\n } catch (err) {}\n return false\n}\n\nconst colors = [6, 2, 3, 4, 5, 1]\n\nfunction 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\nlet namespaces: Record<string, any> = {}\n\nlet time = getTimestamp()\n\nconst useColors = tty.isatty(process.stderr.fd)\n\nfunction log(...args: any[]) {\n return process.stderr.write(renderMessages(args) + \"\\n\")\n}\n\n// export const BOLD = Symbol()\n// export const UNBOLD = Symbol()\n// export const BLUE = Symbol()\n// export const GREY = Symbol()\n// export const GREEN = Symbol()\n// export const RED = Symbol()\n// export const PURPLE = Symbol()\n// export const ORANGE = Symbol()\n// export const UNCOLOR = Symbol()\n\n// const _browserStyleMap = {\n// [BOLD]: pair.create(\"font-weight\", \"bold\"),\n// [UNBOLD]: pair.create(\"font-weight\", \"normal\"),\n// [BLUE]: pair.create(\"color\", \"blue\"),\n// [GREEN]: pair.create(\"color\", \"green\"),\n// [GREY]: pair.create(\"color\", \"grey\"),\n// [RED]: pair.create(\"color\", \"red\"),\n// [PURPLE]: pair.create(\"color\", \"purple\"),\n// [ORANGE]: pair.create(\"color\", \"orange\"), // not well supported in chrome when debugging node with inspector - TODO: deprecate\n// [UNCOLOR]: pair.create(\"color\", \"black\"),\n// }\n\nconst TTY_STYLE = {\n BOLD: \"\\u001b[1m\",\n UNBOLD: \"\\u001b[2m\",\n RED: \"\\u001b[31m\",\n GREEN: \"\\u001b[32m\",\n BLUE: \"\\u001b[34m\",\n PURPLE: \"\\u001b[35m\",\n GRAY: \"\\u001b[37m\",\n ORANGE: \"\\u001b[38;5;208m\",\n UNCOLOR: \"\\u001b[0m\",\n}\n\nenum COLOR {\n RED = 1,\n GREEN = 2,\n BLUE = 4,\n PURPLE = 5,\n GRAY = 7,\n ORANGE = 8,\n}\n\nconst colorEnd = \"\\u001B[0m\"\n\nexport function colorString(value: string, colorCode: number) {\n const colorStart =\n colorCode === COLOR.ORANGE\n ? TTY_STYLE.ORANGE\n : \"\\u001B[3\" + (colorCode < 8 ? colorCode : \"8;5;\" + colorCode) + \"m\"\n return `${colorStart}${value}${colorEnd}`\n}\n\nexport function colorStringList(\n list: Array<any>,\n style: string,\n bold: boolean = true\n) {\n return list.map((value) => {\n if (typeof value !== \"string\") return value\n let start = style\n let end = colorEnd\n if (bold) {\n start = `${TTY_STYLE.BOLD}${start}`\n end = `${end}${TTY_STYLE.BOLD}`\n }\n return `${start}${value}${end}`\n })\n}\n\nexport const loggerStackTraceDebug =\n \"loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485\"\n\nexport function LoggerNodeHandler(opt: LogHandlerOptions = {}): LogHandler {\n const {\n level = undefined,\n filter = undefined,\n colors = isTTY(),\n levelHelper = true,\n nameBrackets = true,\n padding = 0,\n fill = 0,\n stack = true,\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 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\n let args: string[]\n\n let displayName = nameBrackets ? `[${name}]` : name\n\n if (padding > 0) {\n displayName = displayName.padStart(padding, \" \")\n }\n\n if (fill > 0) {\n displayName = displayName.padEnd(fill, \" \")\n }\n\n if (colors && useColors) {\n const c = ninfo.color\n args = [colorString(displayName, c) + ` | `] // nameBrackets ? [`%c[${name}]`] : [`%c${name}`]\n if (msg.level === LogLevel.warn) {\n args.push(...colorStringList(msg.messages, TTY_STYLE.ORANGE))\n } else if (msg.level === LogLevel.error) {\n args.push(...colorStringList(msg.messages, TTY_STYLE.RED))\n } else {\n args.push(...msg.messages)\n }\n args.push(colorString(`+${diff}`, c))\n } else {\n args = [displayName, ...msg.messages]\n args.push(`+${diff}`)\n }\n\n if (msg.messages?.[0] === loggerStackTraceDebug) {\n console.log(getStack())\n }\n\n if (stack) {\n let line: string = \"\"\n if (typeof stack === \"boolean\") {\n line = getSourceLocationByPrecedingPattern(\n [\"at Function.\", \"at null.log (\", \"at log (\"],\n true\n )\n if (!line) {\n line = getSourceLocation(0, true)\n }\n } else {\n const depth = typeof stack === \"number\" ? stack : 3\n line = getSourceLocation(depth, true)\n }\n if (line) {\n args.push(colorString(`(${line})`, COLOR.GRAY))\n }\n }\n switch (msg.level) {\n case LogLevel.info:\n if (levelHelper) args[0] = `I|* ` + args[0]\n log(...args)\n break\n case LogLevel.warn:\n if (levelHelper)\n args[0] =\n (colors && useColors\n ? colorString(`W|** `, COLOR.ORANGE)\n : `W|** `) + args[0]\n log(...args)\n break\n case LogLevel.error:\n if (levelHelper)\n args[0] =\n (colors && useColors\n ? colorString(`E|*** `, COLOR.RED)\n : `E|*** `) + args[0]\n log(...args)\n break\n default:\n if (levelHelper) args[0] = `D| ` + args[0]\n log(...args)\n break\n }\n }\n}\n","// https://nodejs.org/api/webcrypto.html\nimport nodeCrypto from \"crypto\"\n\nexport {}\n\ndeclare module NodeJS {\n interface Global {\n crypto: Crypto\n }\n}\n\ntry {\n if (\n nodeCrypto &&\n nodeCrypto.webcrypto &&\n typeof globalThis !== \"undefined\" &&\n typeof globalThis.crypto === \"undefined\"\n ) {\n // @ts-ignore\n globalThis.crypto = nodeCrypto.webcrypto\n }\n} catch (err) {\n console.warn(\"Failed to polyfill webcrypto\", err)\n}\n","import { Logger } from \"../common/log\"\nimport { toPath } from \"./env\"\nimport { LoggerFileHandler } from \"./log-file\"\nimport { LoggerNodeHandler } from \"./log-node\"\n\nfunction setupLogContextNode() {\n let handlers = [\n LoggerNodeHandler({\n padding: 32,\n nameBrackets: false,\n // levelHelper: false,\n }),\n ]\n\n let logFilePath = process.env.ZEED_LOG ?? process.env.LOG\n if (logFilePath) {\n handlers.unshift(LoggerFileHandler(toPath(logFilePath)))\n }\n\n Logger.setHandlers(handlers)\n}\n\nsetupLogContextNode()\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAGO,gBAAgB,MAAc;AACnC,SAAO,IAAI,QAAQ,OAAO,UAAS,WAAW;AAC5C,UAAM,OAAO,MAAM,QAAQ;AAC3B,SAAK,GAAG,SAAS,CAAC,QAAa,OAAO,GAAG,CAAC;AAC1C,SAAK,GAAG,SAAS,MAAM,SAAQ,IAAI,CAAC;AACpC,SAAK,MAAM,MAAM,IAAI;AACrB,SAAK,MAAM,IAAI;AAAA,EACjB,CAAC;AACH;AARgB;;;ACIhB;AACA;AAEA,IAAM,MAAM,OAAO,UAAU;AAE7B,IAAM,UAAU;AAChB,IAAM,iBAAiB;AACvB,IAAM,cAAc;AACpB,IAAM,iBAAiB;AAavB,eAAe,KAAa,UAAsB,CAAC,GAAG;AACpD,MAAI,MAA8B,CAAC;AAGnC,SAAO,GAAG,EACP,MAAM,cAAc,EACpB,QAAQ,SAAU,MAAM,KAAK;AAE5B,UAAM,cAAc,KAAK,MAAM,cAAc;AAK7C,QAAI,eAAe,MAAM;AACvB,YAAM,MAAM,YAAY;AAExB,UAAI,MAAM,YAAY,MAAM;AAC5B,YAAM,MAAM,IAAI,SAAS;AACzB,YAAM,iBAAiB,IAAI,OAAO,OAAO,IAAI,SAAS;AACtD,YAAM,iBAAiB,IAAI,OAAO,OAAO,IAAI,SAAS;AAGtD,UAAI,kBAAkB,gBAAgB;AACpC,cAAM,IAAI,UAAU,GAAG,GAAG;AAG1B,YAAI,gBAAgB;AAClB,gBAAM,IAAI,QAAQ,aAAa,OAAO;AAAA,QACxC;AAAA,MACF,OAAO;AAEL,cAAM,IAAI,KAAK;AAAA,MACjB;AACA,UAAI,OAAO;AAAA,IACb,OAAO;AACL,UAAI,MACF,iDAAiD,MAAM,MAAM,MAC/D;AAAA,IACF;AAAA,EACF,CAAC;AAGH,SAAO;AACT;AA3CS;AAgDF,sBACL,OACA,eAAuB,KACf;AACR,SAAO,QAAQ,QAAQ,IAAI,GAAG,SAAS,YAAY;AACrD;AALgB;AAOT,qBAAqB,OAAa,eAAe,IAAY;AAClE,MAAI,SAAS;AAAM,YAAQ;AAC3B,SAAO,aAAa,OAAO,KAAK,EAAE,KAAK,GAAG,YAAY;AACxD;AAHgB;AAKT,IAAM,SAAS;AAGf,kBAAkB,UAAsB,CAAC,GAAG;AACjD,QAAM,aACJ,oCAAS,SAAQ,OAAO,oCAAS,aAAY,MAAM;AACrD,QAAM,WAA2B,oCAAS,aAAY;AACtD,QAAM,QAAQ,oCAAS,UAAS;AAEhC,MAAI,UAAU;AAAM,QAAI,QAAQ;AAEhC,MAAI;AAEF,UAAM,YAAY,GAAG,WAAW,UAAU,IACtC,MAAM,GAAG,aAAa,YAAY,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,IAC1D,CAAC;AACL,UAAM,iBAAiB,GAAG,WAAW,aAAa,QAAQ,IACtD,MAAM,GAAG,aAAa,aAAa,UAAU,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,IACrE,CAAC;AAEL,UAAM,SAAiC,OAAO,OAC5C,CAAC,GACD,WACA,cACF;AACA,QAAI,MAAM,oCAAS,QAAO,QAAQ;AAElC,WAAO,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,WAAW;AAC/C,UAAI,OAAO,oCAAS,YAAW,UAAU;AACvC,cAAM,oCAAS,UAAS;AAAA,MAC1B;AACA,UAAI,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG,GAAG;AACnD,YAAI,SAAS,MAAM;AACjB,cAAI,KAAK,WAAW,SAAS,OAAO;AACpC,cAAI,OAAO;AAAA,QACb;AAAA,MACF,OAAO;AACL,YAAI,MAAM,IAAI,qDAAqD;AAAA,MACrE;AAAA,IACF,CAAC;AACD,WAAO,EAAE,OAAO;AAAA,EAClB,SAAS,GAAP;AACA,QAAI,MAAM,CAAC;AACX,WAAO,EAAE,OAAO,EAAE;AAAA,EACpB;AACF;AA1CgB;;;ACzFhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA;AAMA,IAAM,OAAM,OAAO,kBAAkB;AAW9B,wBAAwD;AAAA,EAW7D,YAAY,MAA0B,CAAC,GAAG;AAVlC,iBAAkC,CAAC;AAEnC,oBAAsB;AACtB,kBAAkB;AAQxB,SAAK,UAAU,SAAQ,QAAQ,IAAI,GAAG,IAAI,QAAQ,cAAc;AAChE,SAAK,SAAS,CAAC,CAAC,IAAI;AACpB,SAAK,YAAY,IAAI,aAAa;AAElC,QAAI,IAAI,aAAa,CAAC,KAAK,UAAU,WAAW,GAAG,GAAG;AACpD,WAAK,YAAY,MAAM,KAAK;AAAA,IAC9B;AACA,SAAK,kBAAkB,KAAK,UAAU;AAEtC,SAAK,iBACH,IAAI,kBACH,EAAC,SAAsB;AACtB,aAAO,KAAK,SACR,KAAK,UAAU,MAAM,MAAM,CAAC,IAC5B,KAAK,UAAU,IAAI;AAAA,IACzB;AAEF,SAAK,mBACH,IAAI,oBACH,EAAC,SAAiB;AACjB,UAAI;AACF,eAAO,KAAK,MAAM,IAAI;AAAA,MACxB,SAAS,KAAP;AACA,aAAI,KAAK,4BAA4B,WAAW,IAAI;AAAA,MACtD;AAAA,IACF;AAEF,SAAK,gBAAgB,IAAI,iBAAiB;AAAA,EAC5C;AAAA,EAEA,QAAQ,KAAa,OAAgB;AACnC,SAAK,MAAM,OAAO,YAAY,KAAK;AACnC,QAAI;AACF,YAAM,OAAO,KAAK,eAAe,KAAK;AACtC,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,gBAAU,QAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;AAC5C,oBAAc,MAAM,MAAM,MAAM;AAAA,IAClC,SAAS,KAAP;AACA,WAAI,MAAM,iBAAiB,GAAG;AAAA,IAChC;AAAA,EACF;AAAA,EAEA,QAAQ,KAAqB;AAC3B,WAAO,SAAQ,KAAK,SAAS,KAAK,cAAc,GAAG,IAAI,KAAK,SAAS;AAAA,EACvE;AAAA,EAEA,UAAU,KAAqB;AAC7B,UAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,WAAO,OAAO,KAAK,aAAa,IAAI,CAAC;AAAA,EACvC;AAAA,EAEA,QAAQ,KAA4B;AAClC,QAAI,QAAQ,KAAK,MAAM;AAGvB,QAAI,UAAU;AAAM;AAEpB,QAAI,SAAS,MAAM;AACjB,aAAO,YAAY,KAAK;AAAA,IAC1B;AAEA,QAAI;AACF,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,OAAO,aAAa,MAAM,MAAM;AACtC,UAAI,QAAQ,MAAM;AAChB,cAAM,SAAQ,KAAK,iBAAiB,IAAI;AACxC,aAAK,MAAM,OAAO;AAClB,eAAO;AAAA,MACT;AAAA,IACF,SAAS,KAAP;AACA,WAAI,KAAK,iBAAiB,GAAG;AAC7B,WAAK,MAAM,OAAO;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,WAAW,KAAmB;AAC5B,WAAO,KAAK,MAAM;AAClB,QAAI,KAAK,YAAY,MAAM;AACzB,YAAM,QAAgB,KAAK,SAAS,QAAQ,GAAG;AAC/C,UAAI,UAAU,IAAI;AAChB,aAAK,SAAS,OAAO,OAAO,CAAC;AAAA,MAC/B;AAAA,IACF;AACA,QAAI;AACF,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,iBAAW,IAAI;AAAA,IACjB,SAAS,KAAP;AAAA,IAAa;AAAA,EACjB;AAAA,EAEA,QAAc;AACZ,SAAK,WAAW,CAAC;AACjB,SAAK,QAAQ,CAAC;AACd,WAAO,KAAK,SAAS,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,EACvD;AAAA,EAEA,UAAoB;AAClB,QAAI,KAAK,YAAY,MAAM;AACzB,UAAI;AACF,aAAK,WACH,YAAY,KAAK,SAAS,EAAE,eAAe,KAAK,CAAC,EAC9C,OACC,CAAC,SACC,CAAC,KAAK,YAAY,KAAK,KAAK,KAAK,SAAS,KAAK,SAAS,CAC5D,EACC,IAAI,CAAC,SAAS,KAAK,KAAK,MAAM,GAAG,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC;AAAA,MACpE,SAAS,KAAP;AAAA,MAAa;AAAA,IACjB;AACA,QAAI,OAAO,CAAC,GAAI,KAAK,YAAY,CAAC,CAAE;AACpC,aAAS,OAAO,OAAO,KAAK,KAAK,KAAK,GAAG;AACvC,UAAI,CAAC,KAAK,SAAS,GAAG,GAAG;AACvB,aAAK,KAAK,GAAG;AAAA,MACf;AAAA,IACF;AACA,SAAK,KAAK;AACV,WAAO;AAAA,EACT;AACF;AAhIO;;;AC3BP;AACA;AAEA,sBAA6B,MAAgC;AAC3D,MAAI;AACF,UAAM,KAAK,IAAI;AAAA,EACjB,SAAS,KAAP;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAPsB;AAStB,+BAAsC,OAAkC;AACtE,QAAM,OAAO,SAAS,GAAG,KAAK;AAC9B,MAAI,CAAE,MAAM,OAAO,IAAI,GAAI;AACzB,UAAM,MAAM,MAAM,EAAE,WAAW,KAAK,CAAC;AAAA,EACvC;AACA,SAAO;AACT;AANsB;AAQtB,+BAAsC,OAAkC;AACtE,QAAM,OAAO,SAAS,GAAG,KAAK;AAC9B,MAAI,MAAM,OAAO,IAAI,GAAG;AACtB,UAAM,GAAG,MAAM,EAAE,WAAW,KAAK,CAAC;AAAA,EACpC;AACA,SAAO;AACT;AANsB;;;AClBtB;AACA;AAKA,IAAI,aAAkC,CAAC;AAEhC,2BAA2B,MAAc,MAAyB,CAAC,GAAG;AAC3E,QAAM,EAAE,QAAQ,cAAc,SAAS,QAAQ;AAC/C,SAAO,SAAQ,QAAQ,IAAI,GAAG,IAAI;AAClC,aAAU,SAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;AAC5C,MAAI,SAAS,kBAAkB,MAAM,EAAE,OAAO,IAAI,CAAC;AAEnD,QAAM,mBAAmB,mBAAmB,MAAM;AAClD,QAAM,eAAe,eAAe,KAAK;AACzC,SAAO,CAAC,QAAoB;AAC1B,QAAI,CAAC,aAAa,IAAI,KAAK;AAAG;AAC9B,QAAI,CAAC,iBAAiB,IAAI,IAAI;AAAG;AAEjC,UAAM,QAAO,IAAI,KAAK,EAAE,YAAY;AACpC,QAAI,OAAO,IAAI,QAAQ;AACvB,QAAI,QAAQ,WAAW,QAAQ;AAC/B,QAAI,SAAS,MAAM;AACjB,iBAAW,QAAQ;AAAA,IACrB;AAEA,QAAI,OAAiB;AAAA,MACnB,IAAI,QAAQ;AAAA,MACZ,eAAe,IAAI,UAAU,EAAE,QAAQ,MAAM,CAAC;AAAA,IAChD;AAEA,sBAAkB,OAAsB;AACtC,aAAO,MAAM,MAAK,KAAK,GAAI,IAAI,IAAI;AAAA,IACrC;AAFS;AAIT,YAAQ,IAAI;AAAA,WACL;AACH,cAAM,OAAM,SAAS,GAAG,IAAI;AAC5B;AAAA,WACG;AACH,cAAM,OAAM,SAAS,GAAG,IAAI;AAC5B;AAAA,WACG;AACH,cAAM,OAAM,SAAS,GAAG,IAAI;AAC5B;AAAA;AAEA,cAAM,OAAM,SAAS,GAAG,IAAI;AAC5B;AAAA;AAAA,EAEN;AACF;AA3CgB;;;ACRhB;AAEO,+BAA+B,OAAsB;AAJ5D;AAKE,MAAI,OAAO,UAAU;AAAU,WAAO,CAAC;AAEvC,SACE,8CACI,MAAM,UADV,oBAEI,IAAI,CAAC,YAAY;AACjB,QAAI,IAAI,QAAQ,MACd,kDACF;AACA,QAAI,GAAG;AACL,UAAI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7B,UAAI,KAAK,SAAS,GAAG;AAAG,eAAO,KAAK,MAAM,GAAG,EAAE;AAC/C,aAAO;AAAA,IACT;AAAA,EACF,OAXF,oBAYI,OAAO,CAAC,MAAM,KAAK,UAAS,CAAC;AAErC;AAlBgB;AAoBhB,IAAM,MAAM,SAAQ,QAAQ,IAAI,CAAC;AAxBjC;AAyBA,IAAM,OAAO,eAAQ,QAAR,mBAAa,QAAO,SAAQ,cAAQ,QAAR,mBAAa,IAAI,IAAI;AAG9D,sBAAsB,MAAc;AAGlC,MAAI,KAAK,SAAS,gBAAgB,GAAG;AACnC,WAAO;AAAA,EACT;AAEA,QAAM,UAAU;AAChB,MAAI,KAAK,WAAW,OAAO,GAAG;AAC5B,WAAO,KAAK,OAAO,QAAQ,MAAM;AAAA,EACnC;AAEA,MAAI,OAAO,KAAK,WAAW,GAAG,GAAG;AAC/B,WAAO,KAAK,OAAO,IAAI,SAAS,CAAC;AAAA,EACnC;AAEA,MAAI,QAAQ,KAAK,WAAW,IAAI,GAAG;AACjC,WAAO,OAAO,KAAK,OAAO,KAAK,SAAS,CAAC;AAAA,EAC3C;AAEA,SAAO;AACT;AArBS;AAuBT,yBAAyB,WAA2B;AAClD,MAAI,IAAI,UAAU,MAAM,kDAAkD;AAC1E,MAAI,GAAG;AACL,QAAI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7B,QAAI,KAAK,SAAS,GAAG;AAAG,aAAO,KAAK,MAAM,GAAG,EAAE;AAC/C,WAAO;AAAA,EACT;AACA,SAAO;AACT;AARS;AAkBF,2BAA2B,QAAQ,GAAG,WAAW,MAAc;AArEtE;AAsEE,MAAI,QAAQ,IAAI,MAAM,EAAE,SAAS;AACjC,MAAI,OAA2B,6BAAsB,KAAK,MAA3B,oBAA+B;AAC9D,MAAI,QAAQ,UAAU;AACpB,WAAO,aAAa,IAAI;AAAA,EAC1B;AACA,SAAO,QAAQ;AACjB;AAPgB;AAST,oBAA4B;AACjC,SAAO,IAAI,MAAM,EAAE,SAAS;AAC9B;AAFgB;AAIT,6CACL,UACA,WAAW,MACX;AACA,MAAI,OAAO;AACX,MAAI,QAAQ,IAAI,MAAM,EAAE,SAAS;AACjC,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,QAAQ,MAAM,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAEnD,UAAM,QAAQ,MAAM,UAAU,CAAC,MAAM,SAAS,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAC1E,WAAO,MAAM,QAAQ;AACrB,QAAI,MAAM;AACR,aAAO,gBAAgB,IAAI;AAAA,IAC7B;AACA,QAAI,QAAQ,UAAU;AACpB,aAAO,aAAa,IAAI;AAAA,IAC1B;AAAA,EACF;AACA,SAAO;AACT;AAnBgB;;;AChFhB;AAgBO,iBAA0B;AAC/B,MAAI;AACF,WAAO,IAAI,OAAO,QAAQ,OAAO,EAAE;AAAA,EACrC,SAAS,KAAP;AAAA,EAAa;AACf,SAAO;AACT;AALgB;AAOhB,IAAM,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhC,qBAAqB,WAAmB;AACtC,MAAI,OAAO;AACX,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,WAAQ,SAAQ,KAAK,OAAO,UAAU,WAAW,CAAC;AAClD,YAAQ;AAAA,EACV;AACA,SAAO,OAAO,KAAK,IAAI,IAAI,IAAI,OAAO;AACxC;AAPS;AAST,IAAI,cAAkC,CAAC;AAEvC,IAAI,OAAO,aAAa;AAExB,IAAM,YAAY,IAAI,OAAO,QAAQ,OAAO,EAAE;AAE9C,iBAAgB,MAAa;AAC3B,SAAO,QAAQ,OAAO,MAAM,eAAe,IAAI,IAAI,IAAI;AACzD;AAFS;AA0BT,IAAM,YAAY;AAAA,EAChB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX;AAWA,IAAM,WAAW;AAEV,qBAAqB,OAAe,WAAmB;AAC5D,QAAM,aACJ,cAAc,iBACV,UAAU,SACV,WAAc,aAAY,IAAI,YAAY,SAAS,aAAa;AACtE,SAAO,GAAG,aAAa,QAAQ;AACjC;AANgB;AAQT,yBACL,MACA,OACA,OAAgB,MAChB;AACA,SAAO,KAAK,IAAI,CAAC,UAAU;AACzB,QAAI,OAAO,UAAU;AAAU,aAAO;AACtC,QAAI,QAAQ;AACZ,QAAI,MAAM;AACV,QAAI,MAAM;AACR,cAAQ,GAAG,UAAU,OAAO;AAC5B,YAAM,GAAG,MAAM,UAAU;AAAA,IAC3B;AACA,WAAO,GAAG,QAAQ,QAAQ;AAAA,EAC5B,CAAC;AACH;AAfgB;AAiBT,IAAM,wBACX;AAEK,2BAA2B,MAAyB,CAAC,GAAe;AACzE,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,kBAAS,MAAM;AAAA,IACf,cAAc;AAAA,IACd,eAAe;AAAA,IACf,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,MACN;AACJ,QAAM,mBAAmB,mBAAmB,MAAM;AAClD,QAAM,eAAe,eAAe,KAAK;AACzC,SAAO,CAAC,QAAoB;AApI9B;AAqII,QAAI,CAAC,aAAa,IAAI,KAAK;AAAG;AAC9B,QAAI,CAAC,iBAAiB,IAAI,IAAI;AAAG;AACjC,UAAM,UAAU,aAAa;AAC7B,QAAI,OAAO,IAAI,QAAQ;AACvB,QAAI,QAAQ,YAAW,QAAQ;AAC/B,QAAI,SAAS,MAAM;AACjB,cAAQ;AAAA,QACN,OAAO,YAAY,IAAI;AAAA,MAEzB;AACA,kBAAW,QAAQ;AAAA,IACrB;AACA,UAAM,OAAO,mBAAmB,UAAU,IAAI;AAE9C,QAAI;AAEJ,QAAI,cAAc,eAAe,IAAI,UAAU;AAE/C,QAAI,UAAU,GAAG;AACf,oBAAc,YAAY,SAAS,SAAS,GAAG;AAAA,IACjD;AAEA,QAAI,OAAO,GAAG;AACZ,oBAAc,YAAY,OAAO,MAAM,GAAG;AAAA,IAC5C;AAEA,QAAI,WAAU,WAAW;AACvB,YAAM,IAAI,MAAM;AAChB,aAAO,CAAC,YAAY,aAAa,CAAC,IAAI,KAAK;AAC3C,UAAI,IAAI,UAAU,cAAe;AAC/B,aAAK,KAAK,GAAG,gBAAgB,IAAI,UAAU,UAAU,MAAM,CAAC;AAAA,MAC9D,WAAW,IAAI,UAAU,eAAgB;AACvC,aAAK,KAAK,GAAG,gBAAgB,IAAI,UAAU,UAAU,GAAG,CAAC;AAAA,MAC3D,OAAO;AACL,aAAK,KAAK,GAAG,IAAI,QAAQ;AAAA,MAC3B;AACA,WAAK,KAAK,YAAY,IAAI,QAAQ,CAAC,CAAC;AAAA,IACtC,OAAO;AACL,aAAO,CAAC,aAAa,GAAG,IAAI,QAAQ;AACpC,WAAK,KAAK,IAAI,MAAM;AAAA,IACtB;AAEA,QAAI,YAAI,aAAJ,oBAAe,QAAO,uBAAuB;AAC/C,cAAQ,IAAI,SAAS,CAAC;AAAA,IACxB;AAEA,QAAI,OAAO;AACT,UAAI,OAAe;AACnB,UAAI,OAAO,UAAU,WAAW;AAC9B,eAAO,oCACL,CAAC,gBAAgB,iBAAiB,UAAU,GAC5C,IACF;AACA,YAAI,CAAC,MAAM;AACT,iBAAO,kBAAkB,GAAG,IAAI;AAAA,QAClC;AAAA,MACF,OAAO;AACL,cAAM,QAAQ,OAAO,UAAU,WAAW,QAAQ;AAClD,eAAO,kBAAkB,OAAO,IAAI;AAAA,MACtC;AACA,UAAI,MAAM;AACR,aAAK,KAAK,YAAY,IAAI,SAAS,YAAU,CAAC;AAAA,MAChD;AAAA,IACF;AACA,YAAQ,IAAI;AAAA,WACL;AACH,YAAI;AAAa,eAAK,KAAK,WAAW,KAAK;AAC3C,aAAI,GAAG,IAAI;AACX;AAAA,WACG;AACH,YAAI;AACF,eAAK,KACF,YAAU,YACP,YAAY,UAAU,cAAY,IAClC,YAAY,KAAK;AACzB,aAAI,GAAG,IAAI;AACX;AAAA,WACG;AACH,YAAI;AACF,eAAK,KACF,YAAU,YACP,YAAY,UAAU,WAAS,IAC/B,YAAY,KAAK;AACzB,aAAI,GAAG,IAAI;AACX;AAAA;AAEA,YAAI;AAAa,eAAK,KAAK,WAAW,KAAK;AAC3C,aAAI,GAAG,IAAI;AACX;AAAA;AAAA,EAEN;AACF;AAzGgB;;;ACtHhB;AAUA,IAAI;AACF,MACE,cACA,WAAW,aACX,OAAO,eAAe,eACtB,OAAO,WAAW,WAAW,aAC7B;AAEA,eAAW,SAAS,WAAW;AAAA,EACjC;AACF,SAAS,KAAP;AACA,UAAQ,KAAK,gCAAgC,GAAG;AAClD;;;AClBA,+BAA+B;AAC7B,MAAI,WAAW;AAAA,IACb,kBAAkB;AAAA,MAChB,SAAS;AAAA,MACT,cAAc;AAAA,IAEhB,CAAC;AAAA,EACH;AAEA,MAAI,cAAc,QAAQ,IAAI,YAAY,QAAQ,IAAI;AACtD,MAAI,aAAa;AACf,aAAS,QAAQ,kBAAkB,OAAO,WAAW,CAAC,CAAC;AAAA,EACzD;AAEA,SAAO,YAAY,QAAQ;AAC7B;AAfS;AAiBT,oBAAoB;","names":[]}
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
LoggerBrowserSetupDebugFactory,
|
|
4
4
|
selectColor,
|
|
5
5
|
supportsColors
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-T5YP6WMZ.js";
|
|
7
7
|
import {
|
|
8
8
|
isBrowser
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EUP2OO6U.js";
|
|
10
10
|
import {
|
|
11
11
|
Logger,
|
|
12
12
|
__name,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
getTimestamp,
|
|
15
15
|
useLevelFilter,
|
|
16
16
|
useNamespaceFilter
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-LMZGFDSJ.js";
|
|
18
18
|
|
|
19
19
|
// src/browser/base64.ts
|
|
20
20
|
var { error } = Logger("zeed:base64");
|
|
@@ -220,20 +220,19 @@ var log2 = Logger("zeed:localstorage");
|
|
|
220
220
|
var LocalStorage = class {
|
|
221
221
|
constructor(opt) {
|
|
222
222
|
this.pretty = false;
|
|
223
|
-
var _a, _b;
|
|
224
223
|
log2.assert(opt.name, "name required");
|
|
225
224
|
this.name = opt.name;
|
|
226
225
|
this.prefix = `${opt.name}$`;
|
|
227
|
-
this.objectToString =
|
|
226
|
+
this.objectToString = opt.objectToString ?? ((data) => {
|
|
228
227
|
return this.pretty ? JSON.stringify(data, null, 2) : JSON.stringify(data);
|
|
229
|
-
};
|
|
230
|
-
this.objectFromString =
|
|
228
|
+
});
|
|
229
|
+
this.objectFromString = opt.objectFromString ?? ((data) => {
|
|
231
230
|
try {
|
|
232
231
|
return JSON.parse(data);
|
|
233
232
|
} catch (err) {
|
|
234
233
|
log2.warn(`LocalStorage parse error '${err}' in`, data);
|
|
235
234
|
}
|
|
236
|
-
};
|
|
235
|
+
});
|
|
237
236
|
}
|
|
238
237
|
setItem(key, value) {
|
|
239
238
|
const data = this.objectToString(value);
|
|
@@ -330,4 +329,4 @@ export {
|
|
|
330
329
|
LocalStorage,
|
|
331
330
|
LoggerBrowserClassicHandler
|
|
332
331
|
};
|
|
333
|
-
//# sourceMappingURL=chunk-
|
|
332
|
+
//# sourceMappingURL=chunk-BCBCSLCF.js.map
|
|
@@ -1 +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"],"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\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"],"mappings":"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","names":[]}
|
|
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"],"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\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"],"mappings":"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","names":[]}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
getTimestamp,
|
|
8
8
|
useLevelFilter,
|
|
9
9
|
useNamespaceFilter
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-LMZGFDSJ.js";
|
|
11
11
|
|
|
12
12
|
// src/common/data/bin.ts
|
|
13
13
|
var log = Logger("bin");
|
|
@@ -171,13 +171,12 @@ async function digest(message, algorithm = DEFAULT_HASH_ALG) {
|
|
|
171
171
|
}
|
|
172
172
|
__name(digest, "digest");
|
|
173
173
|
async function deriveKeyPbkdf2(secret, opt = {}) {
|
|
174
|
-
var _a;
|
|
175
174
|
const secretBuffer = toUint8Array(secret);
|
|
176
175
|
const keyMaterial = await crypto.subtle.importKey("raw", secretBuffer, DEFAULT_DERIVE_ALG, false, ["deriveKey"]);
|
|
177
176
|
return await crypto.subtle.deriveKey({
|
|
178
177
|
name: DEFAULT_DERIVE_ALG,
|
|
179
178
|
salt: opt.salt ? toUint8Array(opt.salt) : new Uint8Array(0),
|
|
180
|
-
iterations:
|
|
179
|
+
iterations: opt.iterations ?? 1e5,
|
|
181
180
|
hash: DEFAULT_HASH_ALG
|
|
182
181
|
}, keyMaterial, {
|
|
183
182
|
name: DEFAULT_CRYPTO_ALG,
|
|
@@ -666,17 +665,15 @@ function stringToBoolean(value, defaultValue = false) {
|
|
|
666
665
|
}
|
|
667
666
|
__name(stringToBoolean, "stringToBoolean");
|
|
668
667
|
function stringToInteger(value, defaultValue = 0) {
|
|
669
|
-
var _a;
|
|
670
668
|
if (value == null || typeof value !== "string")
|
|
671
669
|
return defaultValue;
|
|
672
|
-
return
|
|
670
|
+
return parseInt(value.trim(), 10) ?? defaultValue;
|
|
673
671
|
}
|
|
674
672
|
__name(stringToInteger, "stringToInteger");
|
|
675
673
|
function stringToFloat(value, defaultValue = 0) {
|
|
676
|
-
var _a;
|
|
677
674
|
if (value == null || typeof value !== "string")
|
|
678
675
|
return defaultValue;
|
|
679
|
-
return
|
|
676
|
+
return parseFloat(value.trim()) ?? defaultValue;
|
|
680
677
|
}
|
|
681
678
|
__name(stringToFloat, "stringToFloat");
|
|
682
679
|
function valueToBoolean(value, defaultValue = false) {
|
|
@@ -690,32 +687,29 @@ function valueToBoolean(value, defaultValue = false) {
|
|
|
690
687
|
}
|
|
691
688
|
__name(valueToBoolean, "valueToBoolean");
|
|
692
689
|
function valueToInteger(value, defaultValue = 0) {
|
|
693
|
-
var _a;
|
|
694
690
|
if (value == null)
|
|
695
691
|
return defaultValue;
|
|
696
692
|
if (typeof value === "boolean")
|
|
697
693
|
return value ? 1 : 0;
|
|
698
694
|
if (typeof value === "number")
|
|
699
695
|
return Math.floor(value);
|
|
700
|
-
return
|
|
696
|
+
return parseInt(String(value).trim(), 10) ?? defaultValue;
|
|
701
697
|
}
|
|
702
698
|
__name(valueToInteger, "valueToInteger");
|
|
703
699
|
function valueToFloat(value, defaultValue = 0) {
|
|
704
|
-
var _a;
|
|
705
700
|
if (value == null)
|
|
706
701
|
return defaultValue;
|
|
707
702
|
if (typeof value === "boolean")
|
|
708
703
|
return value ? 1 : 0;
|
|
709
704
|
if (typeof value === "number")
|
|
710
705
|
return Math.floor(value);
|
|
711
|
-
return
|
|
706
|
+
return parseFloat(String(value).trim()) ?? defaultValue;
|
|
712
707
|
}
|
|
713
708
|
__name(valueToFloat, "valueToFloat");
|
|
714
709
|
function valueToString(value, defaultValue = "") {
|
|
715
|
-
var _a;
|
|
716
710
|
if (value == null)
|
|
717
711
|
return defaultValue;
|
|
718
|
-
return
|
|
712
|
+
return String(value) ?? defaultValue;
|
|
719
713
|
}
|
|
720
714
|
__name(valueToString, "valueToString");
|
|
721
715
|
var toFloat = valueToFloat;
|
|
@@ -775,9 +769,8 @@ function currency(value, opts = {}) {
|
|
|
775
769
|
__name(currency, "currency");
|
|
776
770
|
var _Currency = class {
|
|
777
771
|
constructor(value, opts = {}) {
|
|
778
|
-
var _a;
|
|
779
772
|
let settings = Object.assign({}, defaults, opts);
|
|
780
|
-
let precision = pow(
|
|
773
|
+
let precision = pow(settings.precision ?? 2);
|
|
781
774
|
let v = parse(value, settings);
|
|
782
775
|
this.intValue = v;
|
|
783
776
|
this.value = v / precision;
|
|
@@ -1506,7 +1499,7 @@ var XRX = class {
|
|
|
1506
1499
|
constructor(pattern2, flags) {
|
|
1507
1500
|
this.namedGroups = {};
|
|
1508
1501
|
this.names = [];
|
|
1509
|
-
let _flags = flags
|
|
1502
|
+
let _flags = flags ?? "";
|
|
1510
1503
|
let _rx;
|
|
1511
1504
|
if (pattern2 instanceof RegExp) {
|
|
1512
1505
|
if (flags == null) {
|
|
@@ -1619,7 +1612,7 @@ async function callDisposer(disposable) {
|
|
|
1619
1612
|
}
|
|
1620
1613
|
__name(callDisposer, "callDisposer");
|
|
1621
1614
|
function useDispose(config) {
|
|
1622
|
-
const { name } = typeof config === "string" ? { name: config } : config
|
|
1615
|
+
const { name } = typeof config === "string" ? { name: config } : config ?? {};
|
|
1623
1616
|
let tracked = [];
|
|
1624
1617
|
const untrack = /* @__PURE__ */ __name(async (disposable) => {
|
|
1625
1618
|
if (disposable != null && tracked.includes(disposable)) {
|
|
@@ -2102,12 +2095,11 @@ function usePool(config = {}) {
|
|
|
2102
2095
|
}
|
|
2103
2096
|
__name(cancelAll, "cancelAll");
|
|
2104
2097
|
function enqueue(task, config2 = {}) {
|
|
2105
|
-
var _a, _b, _c, _d;
|
|
2106
2098
|
let done;
|
|
2107
2099
|
let promise = new Promise((resolve) => done = resolve);
|
|
2108
|
-
let id =
|
|
2100
|
+
let id = config2.id ?? uuid();
|
|
2109
2101
|
if (tasks[id] != null) {
|
|
2110
|
-
const resolution =
|
|
2102
|
+
const resolution = config2.idConflictResolution ?? 1 /* memoize */;
|
|
2111
2103
|
if (resolution === 0 /* replace */) {
|
|
2112
2104
|
cancel(id);
|
|
2113
2105
|
} else if (resolution === 1 /* memoize */) {
|
|
@@ -2131,8 +2123,8 @@ function usePool(config = {}) {
|
|
|
2131
2123
|
task,
|
|
2132
2124
|
priority: ++priority,
|
|
2133
2125
|
state: 0 /* waiting */,
|
|
2134
|
-
max:
|
|
2135
|
-
resolved:
|
|
2126
|
+
max: config2.max ?? 1,
|
|
2127
|
+
resolved: config2.resolved ?? 0,
|
|
2136
2128
|
done,
|
|
2137
2129
|
payload: config2.payload,
|
|
2138
2130
|
setMax(max) {
|
|
@@ -2182,7 +2174,7 @@ var SerialQueue = class extends Emitter {
|
|
|
2182
2174
|
const { name = uname("queue"), logLevel } = opt;
|
|
2183
2175
|
this.name = name;
|
|
2184
2176
|
this.log = Logger(`zeed:queue:${name}`);
|
|
2185
|
-
this.log.level = logLevel
|
|
2177
|
+
this.log.level = logLevel ?? Infinity /* off */;
|
|
2186
2178
|
}
|
|
2187
2179
|
async performNext() {
|
|
2188
2180
|
this.log(`performNext, queue.length =`, this.queue.length);
|
|
@@ -2380,7 +2372,7 @@ function debounce(callback, opt = {}) {
|
|
|
2380
2372
|
__name(debounce, "debounce");
|
|
2381
2373
|
|
|
2382
2374
|
// src/common/localhost.ts
|
|
2383
|
-
function isLocalHost(hostname = ((
|
|
2375
|
+
function isLocalHost(hostname = ((_a) => (_a = globalThis == null ? void 0 : globalThis.location) == null ? void 0 : _a.hostname)() ?? "") {
|
|
2384
2376
|
return ["localhost", "127.0.0.1", "", "::1", "::"].includes(hostname) || hostname.startsWith("192.168.") || hostname.startsWith("10.0.") || hostname.endsWith(".local");
|
|
2385
2377
|
}
|
|
2386
2378
|
__name(isLocalHost, "isLocalHost");
|
|
@@ -2611,7 +2603,6 @@ __name(useMessageHub, "useMessageHub");
|
|
|
2611
2603
|
// src/common/msg/pubsub.ts
|
|
2612
2604
|
var PubSub = class extends Emitter {
|
|
2613
2605
|
constructor(opt) {
|
|
2614
|
-
var _a;
|
|
2615
2606
|
super();
|
|
2616
2607
|
this.publish = this.emit;
|
|
2617
2608
|
this.subscribe = this.on;
|
|
@@ -2619,7 +2610,7 @@ var PubSub = class extends Emitter {
|
|
|
2619
2610
|
this.channel = channel;
|
|
2620
2611
|
this.encoder = encoder;
|
|
2621
2612
|
this.debug = debug;
|
|
2622
|
-
this.name =
|
|
2613
|
+
this.name = name ?? this.channel.id ?? uname("pubsub");
|
|
2623
2614
|
this.log = Logger(`${this.shortId}`);
|
|
2624
2615
|
if (this.debug) {
|
|
2625
2616
|
this.channel.on("connect", () => {
|
|
@@ -2650,9 +2641,9 @@ var PubSub = class extends Emitter {
|
|
|
2650
2641
|
async emit(event, ...args) {
|
|
2651
2642
|
try {
|
|
2652
2643
|
if (this.debug)
|
|
2653
|
-
this.log(`emit(${event})`, event);
|
|
2644
|
+
this.log(`emit(${String(event)})`, event);
|
|
2654
2645
|
else
|
|
2655
|
-
this.log(`emit(${event})`, args.length);
|
|
2646
|
+
this.log(`emit(${String(event)})`, args.length);
|
|
2656
2647
|
if (!this.channel.isConnected) {
|
|
2657
2648
|
this.log.warn("channel not connected");
|
|
2658
2649
|
return false;
|
|
@@ -2661,7 +2652,7 @@ var PubSub = class extends Emitter {
|
|
|
2661
2652
|
this.channel.postMessage(data);
|
|
2662
2653
|
return true;
|
|
2663
2654
|
} catch (err) {
|
|
2664
|
-
this.log.warn(`emit(${event})`, err);
|
|
2655
|
+
this.log.warn(`emit(${String(event)})`, err);
|
|
2665
2656
|
}
|
|
2666
2657
|
return false;
|
|
2667
2658
|
}
|
|
@@ -2821,8 +2812,7 @@ function getNavigator() {
|
|
|
2821
2812
|
}
|
|
2822
2813
|
__name(getNavigator, "getNavigator");
|
|
2823
2814
|
function getGlobal() {
|
|
2824
|
-
|
|
2825
|
-
return ((_a = getWindow()) != null ? _a : typeof WorkerGlobalScope !== "undefined") ? self : typeof global !== "undefined" ? global : Function("return this;")();
|
|
2815
|
+
return getWindow() ?? typeof WorkerGlobalScope !== "undefined" ? self : typeof global !== "undefined" ? global : Function("return this;")();
|
|
2826
2816
|
}
|
|
2827
2817
|
__name(getGlobal, "getGlobal");
|
|
2828
2818
|
var _navigator = getNavigator();
|
|
@@ -3127,4 +3117,4 @@ export {
|
|
|
3127
3117
|
useExitHandler,
|
|
3128
3118
|
MemStorage
|
|
3129
3119
|
};
|
|
3130
|
-
//# sourceMappingURL=chunk-
|
|
3120
|
+
//# sourceMappingURL=chunk-EUP2OO6U.js.map
|