zeed 0.7.113 → 0.7.117
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-MN2DIK4K.js → chunk-AYKBI7RN.js} +178 -4
- package/dist/chunk-AYKBI7RN.js.map +1 -0
- package/dist/{chunk-RR25VKTJ.js → chunk-BGJHXJ4O.js} +4 -4
- package/dist/{chunk-RR25VKTJ.js.map → chunk-BGJHXJ4O.js.map} +0 -0
- package/dist/{chunk-HERPZYOG.js → chunk-C3WHNRRT.js} +17 -3
- package/dist/chunk-C3WHNRRT.js.map +1 -0
- package/dist/{chunk-DUGVRMRT.js → chunk-G3LBBVZT.js} +9 -1
- package/dist/{chunk-DUGVRMRT.js.map → chunk-G3LBBVZT.js.map} +1 -1
- package/dist/{chunk-MYUIYPZU.js → chunk-QCK7R55W.js} +2 -2
- package/dist/{chunk-MYUIYPZU.js.map → chunk-QCK7R55W.js.map} +0 -0
- package/dist/index.all.cjs +199 -2
- package/dist/index.all.cjs.map +1 -1
- package/dist/index.all.d.ts +3 -3
- package/dist/index.all.js +25 -5
- package/dist/index.browser.cjs +185 -2
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.d.ts +2 -2
- package/dist/index.browser.js +22 -4
- package/dist/index.log.js +2 -2
- package/dist/index.node.cjs +199 -2
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.ts +2 -2
- package/dist/index.node.js +23 -3
- package/dist/{log-colors-8f1ba30e.d.ts → log-colors-7ad2cdf2.d.ts} +1 -1
- package/dist/{log-util-baebadc8.d.ts → log-util-42a95b2b.d.ts} +5 -2
- package/dist/{uuid-7c205442.d.ts → uuid-c834ecf8.d.ts} +39 -2
- package/package.json +27 -17
- package/dist/chunk-HERPZYOG.js.map +0 -1
- package/dist/chunk-MN2DIK4K.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/data/is.ts","../src/common/data/deep.ts","../src/common/log-console.ts","../src/common/log-base.ts","../src/common/log-filter.ts","../src/common/global.ts","../src/common/log.ts","../src/common/time.ts"],"sourcesContent":["// https://github.com/sindresorhus/is/ MIT\n// https://github.com/sindresorhus/ts-extras\n// https://github.com/sindresorhus/type-fest\n// https://github.com/antfu/utils\n\nexport type Primitive =\n | null\n | undefined\n | string\n | number\n | boolean\n | symbol\n | bigint\n\nexport function isObject(obj: unknown): obj is object {\n return obj != null && typeof obj === \"object\"\n}\n\nexport function isPrimitive(obj: unknown): obj is Primitive {\n return Object(obj) !== obj\n}\n\nexport function isArray(obj: unknown): obj is Array<any> {\n return Array.isArray(obj)\n}\n\nexport function isRecord(obj: unknown): obj is Record<string, any> {\n return isObject(obj) && !isArray(obj)\n}\n\nexport function isString(obj: unknown): obj is string {\n return typeof obj === \"string\"\n}\n\nexport function isNumber(obj: unknown): obj is number {\n return typeof obj === \"number\"\n}\n\nexport function isInteger(obj: unknown): obj is number {\n return typeof obj === \"number\" && Number.isInteger(obj)\n}\n\nexport function isSafeInteger(obj: unknown): obj is number {\n return typeof obj === \"number\" && Number.isSafeInteger(obj)\n}\n\nexport function isBoolean(obj: unknown): obj is boolean {\n return typeof obj === \"boolean\"\n}\n\nexport function isNullOrUndefined(obj: unknown): obj is null | undefined {\n return obj == null\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { isObject, isPrimitive } from \"./is\"\n\n// // https://stackoverflow.com/a/40294058/140927\n// // Handles cyclic references\n// export function deepClonePrimitives(obj, hash = new WeakMap()) {\n//\n// // primitives\n// if (Object(obj) !== obj) {\n// // log('Primitive', obj)\n// return obj\n// }\n//\n// // cyclic reference\n// if (hash.has(obj)) {\n// return hash.get(obj)\n// }\n//\n// let result\n//\n// // primitives as objects like new String(), new Number()\n// if (\n// obj instanceof String ||\n// obj instanceof Number ||\n// obj instanceof BigInt ||\n// obj instanceof Boolean ||\n// obj instanceof Symbol\n// ) {\n// result = new obj.constructor(obj.valueOf())\n// // hash.set(obj, result)\n// return result\n// }\n//\n// // log('Obj', obj)\n//\n// if (obj instanceof Set) {\n// result = new Set(obj)\n// } else if (obj instanceof Map) {\n// result = new Map(Array.from(obj, ([key, val]) => [key, deepClonePrimitives(val, hash)]))\n// } else if (obj instanceof Date) {\n// result = new Date(obj)\n// } else if (obj instanceof RegExp) {\n// result = new RegExp(obj.source, obj.flags)\n// } else if (Array.isArray(obj)) {\n// result = Array.from(obj, val => deepClonePrimitives(val, hash))\n// } else if (obj.constructor) {\n// result = new obj.constructor()\n// log('bj object', result)\n// } else if (obj instanceof Function || typeof obj === 'function') {\n// log('Keep object', obj, Object.getPrototypeOf(obj))\n// result = obj\n// } else {\n// result = Object.create(null)\n// }\n//\n// hash.set(obj, result)\n//\n// return Object.assign(result, ...Object.keys(obj).map(key => ({\n// [key]: deepClonePrimitives(obj[key], hash),\n// })))\n// }\n\nexport function deepEqual(a: any, b: any, hash = new WeakSet()) {\n // if both x and y are null or undefined and exactly the same\n if (a === b) {\n return true\n }\n\n // Cyclic\n if (hash.has(b)) {\n // console.log('cyclic')\n return true\n }\n\n if (!isPrimitive(b)) {\n hash.add(b)\n }\n\n // if they are not strictly equal, they both need to be Objects\n if (!(a instanceof Object) || !(b instanceof Object)) {\n return false\n }\n\n // they must have the exact same prototype chain, the closest we can do is\n // test there constructor.\n if (a.constructor !== b.constructor) {\n return false\n }\n\n // Shortcut to avoid to many loops\n if (a.length !== b.length) {\n return false\n }\n\n for (let p in a) {\n // other properties were tested using x.constructor === y.constructor\n if (!a.hasOwnProperty(p)) {\n continue\n }\n\n // allows to compare x[ p ] and y[ p ] when set to undefined\n if (!b.hasOwnProperty(p)) {\n return false\n }\n\n let aa = a[p]\n let bb = b[p]\n\n // if they have the same strict value or identity then they are equal\n // if (aa === bb) {\n // console.log('eq', typeof bb)\n // if (bb != null) hash.set(bb, true)\n // continue\n // }\n //\n // // Numbers, Strings, Functions, Booleans must be strictly equal\n // if (typeof (aa) !== 'object') {\n // return false\n // }\n\n // Objects and Arrays must be tested recursively\n if (!deepEqual(aa, bb, hash)) {\n return false\n }\n }\n\n // allows x[ p ] to be set to undefined\n for (let p in b) {\n if (b.hasOwnProperty(p) && !a.hasOwnProperty(p)) {\n return false\n }\n }\n\n return true\n}\n\nexport function deepMerge(target: any, ...sources: any[]) {\n for (let source of sources) {\n if (!isObject(target)) {\n target = {}\n }\n\n if (source == null) continue\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key]\n const sourceValue = source[key]\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue)\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = deepMerge(Object.assign({}, targetValue), sourceValue)\n } else {\n target[key] = sourceValue\n }\n })\n }\n\n return target\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { LogHandler, LogHandlerOptions, LogLevel, LogMessage } from \"./log-base\"\nimport { useLevelFilter, useNamespaceFilter } from \"./log-filter\"\n\n/**\n * Very basic logger. Please take a look at the browser and node\n * optimized loggers. This one is just the absolute fallback option.\n *\n * @param level Log level\n * @returns Logger\n */\nexport function LoggerConsoleHandler(opt: LogHandlerOptions = {}): LogHandler {\n const {\n level = undefined,\n filter = 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 let name = msg.name ? `[${msg.name}]` : \"\"\n switch (msg.level) {\n case LogLevel.info:\n console.info(`I|* ${name}`, ...msg.messages)\n break\n case LogLevel.warn:\n console.warn(`W|** ${name}`, ...msg.messages)\n break\n case LogLevel.error:\n console.error(`E|*** ${name}`, ...msg.messages)\n break\n default:\n console.debug(`D| ${name}`, ...msg.messages)\n break\n }\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { deepEqual } from \"./data/deep\"\nimport { LoggerConsoleHandler } from \"./log-console\"\nimport { useNamespaceFilter } from \"./log-filter\"\n\nexport enum LogLevel {\n all = -1,\n debug = 0,\n info,\n warn,\n error,\n fatal,\n off = Infinity,\n}\n\nexport const LogLevelAlias: Record<string, LogLevel> = {\n \"*\": LogLevel.all,\n a: LogLevel.all,\n all: LogLevel.all,\n d: LogLevel.debug,\n dbg: LogLevel.debug,\n debug: LogLevel.debug,\n i: LogLevel.info,\n inf: LogLevel.info,\n info: LogLevel.info,\n w: LogLevel.warn,\n warn: LogLevel.warn,\n warning: LogLevel.warn,\n e: LogLevel.error,\n err: LogLevel.error,\n error: LogLevel.error,\n fatal: LogLevel.fatal,\n off: LogLevel.off,\n \"-\": LogLevel.off,\n}\n\nexport interface LogMessage {\n level: LogLevel\n name: string\n messages: any[]\n line?: number\n file?: string\n timestamp?: number\n}\n\nexport type LogHandler = (msg: LogMessage) => void\n\nexport interface LoggerInterface {\n (...messages: any[]): void\n\n /** @deprecated use .level = LogLevel.off or LogLevel.all */\n active: boolean\n\n level: LogLevel\n\n debug(...messages: any[]): void\n\n info(...messages: any[]): void\n\n warn(...messages: any[]): void\n\n error(...messages: any[]): void\n\n assert(cond: any, ...messages: any[]): void\n\n /** @deprecated use .assert */\n assertEqual(value: any, expected: any, ...args: any[]): void\n\n /** @deprecated use .assert */\n assertNotEqual(value: any, expected: any, ...args: any[]): void\n\n extend(prefix: string): LoggerInterface\n\n factory?: LoggerContextInterface\n\n label: string\n}\n\nexport interface LoggerContextInterface {\n (name?: string): LoggerInterface\n registerHandler(handler: LogHandler): void\n setFilter(namespaces: string): void\n setHandlers(handlers?: (LogHandler | undefined | null)[]): void\n setLock(lock: boolean): void\n setLogLevel(level?: LogLevel): void\n setFactory(factory: (name?: string) => LoggerInterface): void\n}\n\nexport interface LogHandlerOptions {\n level?: LogLevel\n filter?: string\n colors?: boolean\n levelHelper?: boolean\n nameBrackets?: boolean\n padding?: number\n fill?: number\n stack?: boolean | number\n}\n\nexport function LoggerContext(prefix: string = \"\"): LoggerContextInterface {\n let logHandlers: LogHandler[] = [LoggerConsoleHandler()]\n let logAssertLevel: LogLevel = LogLevel.warn\n let logCheckNamespace = (name: string) => true\n let logLock = false\n let logFactory = LoggerBaseFactory\n\n function LoggerBaseFactory(name: string = \"\"): LoggerInterface {\n log.extend = function (prefix: string): LoggerInterface {\n return logFactory(name ? `${name}:${prefix}` : prefix)\n }\n\n const emit = (msg: LogMessage) => {\n if (log.active === true) {\n if (msg.level >= Logger.level && msg.level >= log.level) {\n if (logCheckNamespace(name)) {\n for (let handler of logHandlers) {\n if (handler) handler(msg)\n }\n }\n }\n }\n }\n\n function log(...messages: any[]) {\n emit({\n name,\n messages,\n level: LogLevel.debug,\n })\n }\n\n log.label = name\n log.active = true\n log.level = LogLevel.all\n\n log.debug = function (...messages: any[]) {\n emit({\n name,\n messages,\n level: LogLevel.debug,\n })\n }\n\n log.info = function (...messages: any[]) {\n emit({\n name,\n messages,\n level: LogLevel.info,\n })\n }\n\n log.warn = function (...messages: any[]) {\n emit({\n name,\n messages,\n level: LogLevel.warn,\n })\n }\n\n log.error = function (...messages: any[]) {\n emit({\n name,\n messages,\n level: LogLevel.error,\n })\n }\n\n // fatal(...args: any[]) {\n // console.error(...args)\n // },\n\n // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions\n log.assert = function (cond: any, ...messages: any[]): asserts cond {\n if (!cond) {\n if (typeof console !== undefined) {\n if (console.assert) {\n // https://developer.mozilla.org/de/docs/Web/API/Console/assert\n console.assert(cond, ...messages)\n } else {\n console.error(`Assert did fail with: ${cond}`, ...messages)\n }\n }\n emit({\n name,\n messages: messages || [`Assert did fail with: ${cond}`],\n level: logAssertLevel,\n })\n // try {\n // if (typeof expect !== undefined) {\n // expect(cond).toBeTruthy()\n // }\n // } catch (err) {\n // methods.warn(...args)\n // }\n }\n }\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 // } else {\n // methods.debug(`Passed equal`)\n }\n }\n\n log.assertNotEqual = 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} not to be equal with ${value}`,\n expected,\n value,\n ...args\n )\n // } else {\n // methods.debug(`Passed not equal check`)\n }\n }\n\n return log\n }\n\n function Logger(name: string = \"\"): LoggerInterface {\n return logFactory(name)\n }\n\n Logger.registerHandler = function (handler: LogHandler) {\n logHandlers.push(handler)\n }\n\n Logger.setFilter = function (namespaces: string) {\n logCheckNamespace = useNamespaceFilter(namespaces)\n }\n\n Logger.setLock = (lock: boolean = true) => (logLock = lock)\n\n Logger.setHandlers = function (handlers: LogHandler[] = []) {\n if (logFactory !== LoggerBaseFactory) {\n logFactory = LoggerBaseFactory\n }\n if (logLock) return\n logHandlers = [...handlers].filter((h) => typeof h === \"function\")\n }\n\n Logger.level = LogLevel.all\n\n /** @deprecated */\n Logger.setLogLevel = function (level: LogLevel = LogLevel.all) {\n if (logLock) return\n Logger.level = level\n }\n\n Logger.setFactory = function (\n factory: (name?: string) => LoggerInterface\n ): void {\n if (logLock) return\n logFactory = factory\n }\n\n return Logger\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { LogLevel, LogLevelAlias } from \"./log-base\"\n\ninterface NamespaceFilter {\n (name: string): boolean\n accept: RegExp[]\n reject: RegExp[]\n filter: string\n}\n\nexport function getNamespaceFilterString(defaultNamespaceFilter: any): string {\n if (\n defaultNamespaceFilter === true ||\n defaultNamespaceFilter === \"true\" ||\n defaultNamespaceFilter === \"1\" ||\n (typeof defaultNamespaceFilter === \"number\" && defaultNamespaceFilter !== 0)\n ) {\n defaultNamespaceFilter = \"*\"\n } else if (\n defaultNamespaceFilter === false ||\n defaultNamespaceFilter === \"false\" ||\n defaultNamespaceFilter === 0 ||\n defaultNamespaceFilter === \"0\" ||\n defaultNamespaceFilter == null ||\n defaultNamespaceFilter === \"null\" ||\n defaultNamespaceFilter === \"undefined\"\n ) {\n defaultNamespaceFilter = \"\"\n } else {\n defaultNamespaceFilter = String(defaultNamespaceFilter)\n }\n return defaultNamespaceFilter\n}\n\nconst defaultNamespaceFilter: string = getNamespaceFilterString(\n typeof process !== \"undefined\"\n ? process.env.ZEED ?? process.env.DEBUG\n : typeof localStorage !== \"undefined\"\n ? localStorage.zeed ?? localStorage.debug\n : \"*\"\n)\n\n/**\n * Filter as described here https://github.com/visionmedia/debug#wildcards\n *\n * @param filter Namespace filter\n * @returns Function to check if filter applies\n */\nexport function useNamespaceFilter(\n filter: string = defaultNamespaceFilter\n): NamespaceFilter {\n let fn: any // (name: string) => boolean\n let reject = [] as RegExp[]\n let accept = [] as RegExp[]\n\n if (!filter) {\n fn = function (name: string) {\n return false\n }\n } else if (filter === \"*\") {\n fn = function (name: string) {\n return true\n }\n } else {\n let i\n const split = filter.split(/[\\s,]+/)\n const len = split.length\n for (i = 0; i < len; i++) {\n if (!split[i]) {\n // ignore empty strings\n continue\n }\n let template = split[i].replace(/\\*/g, \".*?\")\n if (template[0] === \"-\") {\n reject.push(new RegExp(\"^\" + template.substr(1) + \"$\"))\n } else {\n accept.push(new RegExp(\"^\" + template + \"$\"))\n }\n }\n\n fn = function (name: string) {\n if (reject.length === 0 && accept.length === 0) {\n return true\n }\n let i, len\n for (i = 0, len = reject.length; i < len; i++) {\n if (reject[i].test(name)) {\n return false\n }\n }\n for (i = 0, len = accept.length; i < len; i++) {\n if (accept[i].test(name)) {\n return true\n }\n }\n return false\n }\n }\n fn.accept = accept\n fn.reject = reject\n fn.filter = filter\n return fn as NamespaceFilter\n}\n\nconst defaultLevelFilter: any =\n typeof process !== \"undefined\"\n ? process.env.ZEED_LEVEL ?? process.env.LEVEL ?? process.env.DEBUG_LEVEL\n : typeof localStorage !== \"undefined\"\n ? localStorage.zeed_level ?? localStorage.level ?? localStorage.debug_level\n : undefined\n\nexport function useLevelFilter(\n filter: string | number = defaultLevelFilter\n): (level: LogLevel) => boolean {\n let filterLevel: LogLevel = LogLevel.all\n if (typeof filter === \"string\") {\n const l = LogLevelAlias[filter.toLocaleLowerCase().trim()]\n if (l != null) filterLevel = l\n } else if (typeof filter === \"number\") {\n filterLevel = filter as number\n }\n return (level) => level >= filterLevel\n}\n","// Global context across build systems etc.\n\ndeclare global {\n interface ZeedGlobalContext {}\n}\n\ninterface ZeedGlobalIntegration {\n _zeedGlobal?: ZeedGlobalContext\n}\n\nfunction _global(): ZeedGlobalIntegration {\n if (typeof self !== \"undefined\") return self as ZeedGlobalIntegration\n if (typeof window !== \"undefined\") return window as ZeedGlobalIntegration\n if (typeof global !== \"undefined\") return global as ZeedGlobalIntegration\n if (typeof globalThis !== \"undefined\")\n return globalThis as ZeedGlobalIntegration\n throw new Error(\"unable to locate global object\")\n}\n\nexport function getGlobalContext(): ZeedGlobalContext {\n let gcontext = _global()\n if (gcontext._zeedGlobal == null) {\n gcontext._zeedGlobal = {}\n }\n return gcontext._zeedGlobal\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { LoggerConsoleHandler } from \"./log-console\"\nimport { getGlobalContext } from \"./global\"\nimport { LoggerContext, LoggerContextInterface } from \"./log-base\"\n\n// Global logger to guarantee all submodules use the same logger instance\n\nlet globalLogger: LoggerContextInterface\n\ndeclare global {\n interface ZeedGlobalContext {\n logger?: any // Should be LoggerContextInterface, but avoid compiler issues this way\n }\n}\n\nfunction getLoggerContext() {\n let logger = LoggerContext()\n logger.setHandlers([LoggerConsoleHandler()])\n return logger\n}\n\ntry {\n let _global = getGlobalContext()\n if (_global != null) {\n if (_global?.logger == null) {\n globalLogger = getLoggerContext()\n _global.logger = globalLogger\n } else {\n globalLogger = _global.logger\n }\n } else {\n globalLogger = getLoggerContext()\n }\n} catch (e) {\n globalLogger = getLoggerContext()\n}\n\n// /** @deprecated Use `Logger` instead, it is global as well */\n// export const GlobalLogger = globalLogger\n\nexport const Logger = globalLogger\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\n/**\n * @returns Timestamp in miliseconds\n */\nexport const getTimestamp = (): number => Date.now()\n// @ts-ignore\n// typeof performance !== \"undefined\" ? performance.now() : new Date().getTime()\n\nexport function formatMilliseconds(ms: number): string {\n return ms > 999 ? (ms / 1000).toFixed(1) + \"s\" : ms.toFixed(2) + \"ms\"\n}\n\nexport function parseDate(\n ...dateCandidates: (string | Date)[]\n): Date | undefined {\n for (let dateCandidate of dateCandidates) {\n if (dateCandidate instanceof Date) {\n return dateCandidate\n }\n if (typeof dateCandidate === \"string\") {\n let date = null\n if (dateCandidate.includes(\":\")) {\n try {\n date = new Date(dateCandidate)\n } catch (err) {}\n }\n if (!(date instanceof Date)) {\n let m = /(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)/.exec(dateCandidate)\n if (m) {\n date = new Date(+m[1], +m[2] - 1, +m[3], 12, 0)\n }\n }\n if (date instanceof Date) {\n return date\n }\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/common/data/is.ts","../src/common/data/deep.ts","../src/common/log-console.ts","../src/common/log-base.ts","../src/common/log-filter.ts","../src/common/global.ts","../src/common/log.ts","../src/common/time.ts"],"sourcesContent":["// https://github.com/sindresorhus/is/ MIT\n// https://github.com/sindresorhus/ts-extras\n// https://github.com/sindresorhus/type-fest\n// https://github.com/antfu/utils\n\nexport type Primitive =\n | null\n | undefined\n | string\n | number\n | boolean\n | symbol\n | bigint\n\nexport function isObject(obj: unknown): obj is object {\n return obj != null && typeof obj === \"object\"\n}\n\nexport function isPrimitive(obj: unknown): obj is Primitive {\n return Object(obj) !== obj\n}\n\nexport function isArray(obj: unknown): obj is Array<any> {\n return Array.isArray(obj)\n}\n\nexport function isRecord(obj: unknown): obj is Record<string, any> {\n return isObject(obj) && !isArray(obj)\n}\n\nexport function isString(obj: unknown): obj is string {\n return typeof obj === \"string\"\n}\n\nexport function isNumber(obj: unknown): obj is number {\n return typeof obj === \"number\"\n}\n\nexport function isInteger(obj: unknown): obj is number {\n return typeof obj === \"number\" && Number.isInteger(obj)\n}\n\nexport function isSafeInteger(obj: unknown): obj is number {\n return typeof obj === \"number\" && Number.isSafeInteger(obj)\n}\n\nexport function isBoolean(obj: unknown): obj is boolean {\n return typeof obj === \"boolean\"\n}\n\nexport function isNullOrUndefined(obj: unknown): obj is null | undefined {\n return obj == null\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { isObject, isPrimitive } from \"./is\"\n\n// // https://stackoverflow.com/a/40294058/140927\n// // Handles cyclic references\n// export function deepClonePrimitives(obj, hash = new WeakMap()) {\n//\n// // primitives\n// if (Object(obj) !== obj) {\n// // log('Primitive', obj)\n// return obj\n// }\n//\n// // cyclic reference\n// if (hash.has(obj)) {\n// return hash.get(obj)\n// }\n//\n// let result\n//\n// // primitives as objects like new String(), new Number()\n// if (\n// obj instanceof String ||\n// obj instanceof Number ||\n// obj instanceof BigInt ||\n// obj instanceof Boolean ||\n// obj instanceof Symbol\n// ) {\n// result = new obj.constructor(obj.valueOf())\n// // hash.set(obj, result)\n// return result\n// }\n//\n// // log('Obj', obj)\n//\n// if (obj instanceof Set) {\n// result = new Set(obj)\n// } else if (obj instanceof Map) {\n// result = new Map(Array.from(obj, ([key, val]) => [key, deepClonePrimitives(val, hash)]))\n// } else if (obj instanceof Date) {\n// result = new Date(obj)\n// } else if (obj instanceof RegExp) {\n// result = new RegExp(obj.source, obj.flags)\n// } else if (Array.isArray(obj)) {\n// result = Array.from(obj, val => deepClonePrimitives(val, hash))\n// } else if (obj.constructor) {\n// result = new obj.constructor()\n// log('bj object', result)\n// } else if (obj instanceof Function || typeof obj === 'function') {\n// log('Keep object', obj, Object.getPrototypeOf(obj))\n// result = obj\n// } else {\n// result = Object.create(null)\n// }\n//\n// hash.set(obj, result)\n//\n// return Object.assign(result, ...Object.keys(obj).map(key => ({\n// [key]: deepClonePrimitives(obj[key], hash),\n// })))\n// }\n\nexport function deepEqual(a: any, b: any, hash = new WeakSet()) {\n // if both x and y are null or undefined and exactly the same\n if (a === b) {\n return true\n }\n\n // Cyclic\n if (hash.has(b)) {\n // console.log('cyclic')\n return true\n }\n\n if (!isPrimitive(b)) {\n hash.add(b)\n }\n\n // if they are not strictly equal, they both need to be Objects\n if (!(a instanceof Object) || !(b instanceof Object)) {\n return false\n }\n\n // they must have the exact same prototype chain, the closest we can do is\n // test there constructor.\n if (a.constructor !== b.constructor) {\n return false\n }\n\n // Shortcut to avoid to many loops\n if (a.length !== b.length) {\n return false\n }\n\n for (let p in a) {\n // other properties were tested using x.constructor === y.constructor\n if (!a.hasOwnProperty(p)) {\n continue\n }\n\n // allows to compare x[ p ] and y[ p ] when set to undefined\n if (!b.hasOwnProperty(p)) {\n return false\n }\n\n let aa = a[p]\n let bb = b[p]\n\n // if they have the same strict value or identity then they are equal\n // if (aa === bb) {\n // console.log('eq', typeof bb)\n // if (bb != null) hash.set(bb, true)\n // continue\n // }\n //\n // // Numbers, Strings, Functions, Booleans must be strictly equal\n // if (typeof (aa) !== 'object') {\n // return false\n // }\n\n // Objects and Arrays must be tested recursively\n if (!deepEqual(aa, bb, hash)) {\n return false\n }\n }\n\n // allows x[ p ] to be set to undefined\n for (let p in b) {\n if (b.hasOwnProperty(p) && !a.hasOwnProperty(p)) {\n return false\n }\n }\n\n return true\n}\n\nexport function deepMerge(target: any, ...sources: any[]) {\n for (let source of sources) {\n if (!isObject(target)) {\n target = {}\n }\n\n if (source == null) continue\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key]\n const sourceValue = source[key]\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue)\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = deepMerge(Object.assign({}, targetValue), sourceValue)\n } else {\n target[key] = sourceValue\n }\n })\n }\n\n return target\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { LogHandler, LogHandlerOptions, LogLevel, LogMessage } from \"./log-base\"\nimport { useLevelFilter, useNamespaceFilter } from \"./log-filter\"\n\n/**\n * Very basic logger. Please take a look at the browser and node\n * optimized loggers. This one is just the absolute fallback option.\n *\n * @param level Log level\n * @returns Logger\n */\nexport function LoggerConsoleHandler(opt: LogHandlerOptions = {}): LogHandler {\n const {\n level = undefined,\n filter = 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 let name = msg.name ? `[${msg.name}]` : \"\"\n switch (msg.level) {\n case LogLevel.info:\n console.info(`I|* ${name}`, ...msg.messages)\n break\n case LogLevel.warn:\n console.warn(`W|** ${name}`, ...msg.messages)\n break\n case LogLevel.error:\n console.error(`E|*** ${name}`, ...msg.messages)\n break\n default:\n console.debug(`D| ${name}`, ...msg.messages)\n break\n }\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { deepEqual } from \"./data/deep\"\nimport { LoggerConsoleHandler } from \"./log-console\"\nimport { useNamespaceFilter } from \"./log-filter\"\n\nexport enum LogLevel {\n all = -1,\n debug = 0,\n info,\n warn,\n error,\n fatal,\n off = Infinity,\n}\n\nexport const LogLevelAlias: Record<string, LogLevel> = {\n \"*\": LogLevel.all,\n a: LogLevel.all,\n all: LogLevel.all,\n d: LogLevel.debug,\n dbg: LogLevel.debug,\n debug: LogLevel.debug,\n i: LogLevel.info,\n inf: LogLevel.info,\n info: LogLevel.info,\n w: LogLevel.warn,\n warn: LogLevel.warn,\n warning: LogLevel.warn,\n e: LogLevel.error,\n err: LogLevel.error,\n error: LogLevel.error,\n fatal: LogLevel.fatal,\n off: LogLevel.off,\n \"-\": LogLevel.off,\n}\n\nexport interface LogMessage {\n level: LogLevel\n name: string\n messages: any[]\n line?: number\n file?: string\n timestamp?: number\n}\n\nexport type LogHandler = (msg: LogMessage) => void\n\nexport interface LoggerInterface {\n (...messages: any[]): void\n\n /** @deprecated use .level = LogLevel.off or LogLevel.all */\n active: boolean\n\n level: LogLevel\n\n debug(...messages: any[]): void\n\n info(...messages: any[]): void\n\n warn(...messages: any[]): void\n\n error(...messages: any[]): void\n\n assert(cond: any, ...messages: any[]): void\n\n /** @deprecated use .assert */\n assertEqual(value: any, expected: any, ...args: any[]): void\n\n /** @deprecated use .assert */\n assertNotEqual(value: any, expected: any, ...args: any[]): void\n\n extend(prefix: string): LoggerInterface\n\n factory?: LoggerContextInterface\n\n label: string\n}\n\nexport interface LoggerContextInterface {\n (name?: string): LoggerInterface\n registerHandler(handler: LogHandler): void\n setFilter(namespaces: string): void\n setHandlers(handlers?: (LogHandler | undefined | null)[]): void\n setLock(lock: boolean): void\n setLogLevel(level?: LogLevel): void\n setFactory(factory: (name?: string) => LoggerInterface): void\n}\n\nexport interface LogHandlerOptions {\n level?: LogLevel\n filter?: string\n colors?: boolean\n levelHelper?: boolean\n nameBrackets?: boolean\n padding?: number\n fill?: number\n stack?: boolean | number\n}\n\nexport function LoggerContext(prefix: string = \"\"): LoggerContextInterface {\n let logHandlers: LogHandler[] = [LoggerConsoleHandler()]\n let logAssertLevel: LogLevel = LogLevel.warn\n let logCheckNamespace = (name: string) => true\n let logLock = false\n let logFactory = LoggerBaseFactory\n\n function LoggerBaseFactory(name: string = \"\"): LoggerInterface {\n log.extend = function (prefix: string): LoggerInterface {\n return logFactory(name ? `${name}:${prefix}` : prefix)\n }\n\n const emit = (msg: LogMessage) => {\n if (log.active === true) {\n if (msg.level >= Logger.level && msg.level >= log.level) {\n if (logCheckNamespace(name)) {\n for (let handler of logHandlers) {\n if (handler) handler(msg)\n }\n }\n }\n }\n }\n\n function log(...messages: any[]) {\n emit({\n name,\n messages,\n level: LogLevel.debug,\n })\n }\n\n log.label = name\n log.active = true\n log.level = LogLevel.all\n\n log.debug = function (...messages: any[]) {\n emit({\n name,\n messages,\n level: LogLevel.debug,\n })\n }\n\n log.info = function (...messages: any[]) {\n emit({\n name,\n messages,\n level: LogLevel.info,\n })\n }\n\n log.warn = function (...messages: any[]) {\n emit({\n name,\n messages,\n level: LogLevel.warn,\n })\n }\n\n log.error = function (...messages: any[]) {\n emit({\n name,\n messages,\n level: LogLevel.error,\n })\n }\n\n // fatal(...args: any[]) {\n // console.error(...args)\n // },\n\n // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions\n log.assert = function (cond: any, ...messages: any[]): asserts cond {\n if (!cond) {\n if (typeof console !== undefined) {\n if (console.assert) {\n // https://developer.mozilla.org/de/docs/Web/API/Console/assert\n console.assert(cond, ...messages)\n } else {\n console.error(`Assert did fail with: ${cond}`, ...messages)\n }\n }\n emit({\n name,\n messages: messages || [`Assert did fail with: ${cond}`],\n level: logAssertLevel,\n })\n // try {\n // if (typeof expect !== undefined) {\n // expect(cond).toBeTruthy()\n // }\n // } catch (err) {\n // methods.warn(...args)\n // }\n }\n }\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 // } else {\n // methods.debug(`Passed equal`)\n }\n }\n\n log.assertNotEqual = 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} not to be equal with ${value}`,\n expected,\n value,\n ...args\n )\n // } else {\n // methods.debug(`Passed not equal check`)\n }\n }\n\n return log\n }\n\n function Logger(name: string = \"\"): LoggerInterface {\n return logFactory(name)\n }\n\n Logger.registerHandler = function (handler: LogHandler) {\n logHandlers.push(handler)\n }\n\n Logger.setFilter = function (namespaces: string) {\n logCheckNamespace = useNamespaceFilter(namespaces)\n }\n\n Logger.setLock = (lock: boolean = true) => (logLock = lock)\n\n Logger.setHandlers = function (handlers: LogHandler[] = []) {\n if (logFactory !== LoggerBaseFactory) {\n logFactory = LoggerBaseFactory\n }\n if (logLock) return\n logHandlers = [...handlers].filter((h) => typeof h === \"function\")\n }\n\n Logger.level = LogLevel.all\n\n /** @deprecated */\n Logger.setLogLevel = function (level: LogLevel = LogLevel.all) {\n if (logLock) return\n Logger.level = level\n }\n\n Logger.setFactory = function (\n factory: (name?: string) => LoggerInterface\n ): void {\n if (logLock) return\n logFactory = factory\n }\n\n return Logger\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { LogLevel, LogLevelAlias } from \"./log-base\"\n\ninterface NamespaceFilter {\n (name: string): boolean\n accept: RegExp[]\n reject: RegExp[]\n filter: string\n}\n\nexport function getNamespaceFilterString(defaultNamespaceFilter: any): string {\n if (\n defaultNamespaceFilter === true ||\n defaultNamespaceFilter === \"true\" ||\n defaultNamespaceFilter === \"1\" ||\n (typeof defaultNamespaceFilter === \"number\" && defaultNamespaceFilter !== 0)\n ) {\n defaultNamespaceFilter = \"*\"\n } else if (\n defaultNamespaceFilter === false ||\n defaultNamespaceFilter === \"false\" ||\n defaultNamespaceFilter === 0 ||\n defaultNamespaceFilter === \"0\" ||\n defaultNamespaceFilter == null ||\n defaultNamespaceFilter === \"null\" ||\n defaultNamespaceFilter === \"undefined\"\n ) {\n defaultNamespaceFilter = \"\"\n } else {\n defaultNamespaceFilter = String(defaultNamespaceFilter)\n }\n return defaultNamespaceFilter\n}\n\nconst defaultNamespaceFilter: string = getNamespaceFilterString(\n typeof process !== \"undefined\"\n ? process.env.ZEED ?? process.env.DEBUG\n : typeof localStorage !== \"undefined\"\n ? localStorage.zeed ?? localStorage.debug\n : \"*\"\n)\n\n/**\n * Filter as described here https://github.com/visionmedia/debug#wildcards\n *\n * @param filter Namespace filter\n * @returns Function to check if filter applies\n */\nexport function useNamespaceFilter(\n filter: string = defaultNamespaceFilter\n): NamespaceFilter {\n let fn: any // (name: string) => boolean\n let reject = [] as RegExp[]\n let accept = [] as RegExp[]\n\n if (!filter) {\n fn = function (name: string) {\n return false\n }\n } else if (filter === \"*\") {\n fn = function (name: string) {\n return true\n }\n } else {\n let i\n const split = filter.split(/[\\s,]+/)\n const len = split.length\n for (i = 0; i < len; i++) {\n if (!split[i]) {\n // ignore empty strings\n continue\n }\n let template = split[i].replace(/\\*/g, \".*?\")\n if (template[0] === \"-\") {\n reject.push(new RegExp(\"^\" + template.substr(1) + \"$\"))\n } else {\n accept.push(new RegExp(\"^\" + template + \"$\"))\n }\n }\n\n fn = function (name: string) {\n if (reject.length === 0 && accept.length === 0) {\n return true\n }\n let i, len\n for (i = 0, len = reject.length; i < len; i++) {\n if (reject[i].test(name)) {\n return false\n }\n }\n for (i = 0, len = accept.length; i < len; i++) {\n if (accept[i].test(name)) {\n return true\n }\n }\n return false\n }\n }\n fn.accept = accept\n fn.reject = reject\n fn.filter = filter\n return fn as NamespaceFilter\n}\n\nconst defaultLevelFilter: any =\n typeof process !== \"undefined\"\n ? process.env.ZEED_LEVEL ?? process.env.LEVEL ?? process.env.DEBUG_LEVEL\n : typeof localStorage !== \"undefined\"\n ? localStorage.zeed_level ?? localStorage.level ?? localStorage.debug_level\n : undefined\n\nexport function useLevelFilter(\n filter: string | number = defaultLevelFilter\n): (level: LogLevel) => boolean {\n let filterLevel: LogLevel = LogLevel.all\n if (typeof filter === \"string\") {\n const l = LogLevelAlias[filter.toLocaleLowerCase().trim()]\n if (l != null) filterLevel = l\n } else if (typeof filter === \"number\") {\n filterLevel = filter as number\n }\n return (level) => level >= filterLevel\n}\n","// Global context across build systems etc.\n\ndeclare global {\n interface ZeedGlobalContext {}\n}\n\ninterface ZeedGlobalIntegration {\n _zeedGlobal?: ZeedGlobalContext\n}\n\nfunction _global(): ZeedGlobalIntegration {\n if (typeof self !== \"undefined\") return self as ZeedGlobalIntegration\n if (typeof window !== \"undefined\") return window as ZeedGlobalIntegration\n if (typeof global !== \"undefined\") return global as ZeedGlobalIntegration\n if (typeof globalThis !== \"undefined\")\n return globalThis as ZeedGlobalIntegration\n throw new Error(\"unable to locate global object\")\n}\n\nexport function getGlobalContext(): ZeedGlobalContext {\n let gcontext = _global()\n if (gcontext._zeedGlobal == null) {\n gcontext._zeedGlobal = {}\n }\n return gcontext._zeedGlobal\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { LoggerConsoleHandler } from \"./log-console\"\nimport { getGlobalContext } from \"./global\"\nimport { LoggerContext, LoggerContextInterface } from \"./log-base\"\n\n// Global logger to guarantee all submodules use the same logger instance\n\nlet globalLogger: LoggerContextInterface\n\ndeclare global {\n interface ZeedGlobalContext {\n logger?: any // Should be LoggerContextInterface, but avoid compiler issues this way\n }\n}\n\nfunction getLoggerContext() {\n let logger = LoggerContext()\n logger.setHandlers([LoggerConsoleHandler()])\n return logger\n}\n\ntry {\n let _global = getGlobalContext()\n if (_global != null) {\n if (_global?.logger == null) {\n globalLogger = getLoggerContext()\n _global.logger = globalLogger\n } else {\n globalLogger = _global.logger\n }\n } else {\n globalLogger = getLoggerContext()\n }\n} catch (e) {\n globalLogger = getLoggerContext()\n}\n\n// /** @deprecated Use `Logger` instead, it is global as well */\n// export const GlobalLogger = globalLogger\n\nexport const Logger = globalLogger\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\n/**\n * @returns Timestamp in miliseconds\n */\nexport const getTimestamp = (): number => Date.now()\n// @ts-ignore\n// typeof performance !== \"undefined\" ? performance.now() : new Date().getTime()\n\nexport function formatMilliseconds(ms: number): string {\n return ms > 999 ? (ms / 1000).toFixed(1) + \"s\" : ms.toFixed(2) + \"ms\"\n}\n\nexport function parseDate(\n ...dateCandidates: (string | Date)[]\n): Date | undefined {\n for (let dateCandidate of dateCandidates) {\n if (dateCandidate instanceof Date) {\n return dateCandidate\n }\n if (typeof dateCandidate === \"string\") {\n let date = null\n if (dateCandidate.includes(\":\")) {\n try {\n date = new Date(dateCandidate)\n } catch (err) {}\n }\n if (!(date instanceof Date)) {\n let m = /(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)/.exec(dateCandidate)\n if (m) {\n date = new Date(+m[1], +m[2] - 1, +m[3], 12, 0)\n }\n }\n if (date instanceof Date) {\n return date\n }\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getTimestamp,
|
|
6
6
|
useLevelFilter,
|
|
7
7
|
useNamespaceFilter
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-G3LBBVZT.js";
|
|
9
9
|
|
|
10
10
|
// src/browser/log-colors.ts
|
|
11
11
|
var colors = [
|
|
@@ -245,4 +245,4 @@ export {
|
|
|
245
245
|
LoggerBrowserSetupDebugFactory,
|
|
246
246
|
activateConsoleDebug
|
|
247
247
|
};
|
|
248
|
-
//# sourceMappingURL=chunk-
|
|
248
|
+
//# sourceMappingURL=chunk-QCK7R55W.js.map
|
|
File without changes
|
package/dist/index.all.cjs
CHANGED
|
@@ -73,9 +73,12 @@ __export(index_all_exports, {
|
|
|
73
73
|
SerialQueue: () => SerialQueue,
|
|
74
74
|
Uint8ArrayToJson: () => Uint8ArrayToJson,
|
|
75
75
|
Uint8ArrayToString: () => Uint8ArrayToString,
|
|
76
|
+
XRX: () => XRX,
|
|
76
77
|
_decodeUtf8Polyfill: () => _decodeUtf8Polyfill,
|
|
77
78
|
_encodeUtf8Polyfill: () => _encodeUtf8Polyfill,
|
|
78
79
|
activateConsoleDebug: () => activateConsoleDebug,
|
|
80
|
+
arrayAvg: () => arrayAvg,
|
|
81
|
+
arrayBatches: () => arrayBatches,
|
|
79
82
|
arrayEmptyInPlace: () => arrayEmptyInPlace,
|
|
80
83
|
arrayFilterInPlace: () => arrayFilterInPlace,
|
|
81
84
|
arrayFlatten: () => arrayFlatten,
|
|
@@ -92,10 +95,12 @@ __export(index_all_exports, {
|
|
|
92
95
|
arrayShuffleInPlace: () => arrayShuffleInPlace,
|
|
93
96
|
arraySorted: () => arraySorted,
|
|
94
97
|
arraySortedNumbers: () => arraySortedNumbers,
|
|
98
|
+
arraySum: () => arraySum,
|
|
95
99
|
arraySymmetricDifference: () => arraySymmetricDifference,
|
|
96
100
|
arrayToggleInPlace: () => arrayToggleInPlace,
|
|
97
101
|
arrayUnion: () => arrayUnion,
|
|
98
102
|
arrayUnique: () => arrayUnique,
|
|
103
|
+
avg: () => avg,
|
|
99
104
|
between: () => between,
|
|
100
105
|
cloneJsonObject: () => cloneJsonObject,
|
|
101
106
|
cloneObject: () => cloneObject,
|
|
@@ -184,11 +189,13 @@ __export(index_all_exports, {
|
|
|
184
189
|
lazyListener: () => lazyListener,
|
|
185
190
|
linkifyPlainText: () => linkifyPlainText,
|
|
186
191
|
loggerStackTraceDebug: () => loggerStackTraceDebug,
|
|
192
|
+
memoize: () => memoize,
|
|
187
193
|
messages: () => messages,
|
|
188
194
|
moveSortWeight: () => moveSortWeight,
|
|
189
195
|
parseDate: () => parseDate,
|
|
190
196
|
parseOrderby: () => parseOrderby,
|
|
191
197
|
parseQuery: () => parseQuery,
|
|
198
|
+
pbcopy: () => pbcopy,
|
|
192
199
|
platform: () => platform,
|
|
193
200
|
promisify: () => promisify,
|
|
194
201
|
qid: () => qid,
|
|
@@ -196,6 +203,8 @@ __export(index_all_exports, {
|
|
|
196
203
|
randomFloat: () => randomFloat,
|
|
197
204
|
randomInt: () => randomInt,
|
|
198
205
|
randomUint8Array: () => randomUint8Array,
|
|
206
|
+
regExpEscape: () => regExpEscape,
|
|
207
|
+
regExpString: () => regExpString,
|
|
199
208
|
renderMessages: () => renderMessages,
|
|
200
209
|
roundDown: () => roundDown,
|
|
201
210
|
roundHalfAwayFromZero: () => roundHalfAwayFromZero,
|
|
@@ -221,6 +230,7 @@ __export(index_all_exports, {
|
|
|
221
230
|
suidBytes: () => suidBytes,
|
|
222
231
|
suidBytesDate: () => suidBytesDate,
|
|
223
232
|
suidDate: () => suidDate,
|
|
233
|
+
sum: () => sum,
|
|
224
234
|
supportsColors: () => supportsColors,
|
|
225
235
|
throttle: () => throttle,
|
|
226
236
|
timeout: () => timeout,
|
|
@@ -967,6 +977,14 @@ function between(min, value, max) {
|
|
|
967
977
|
return Math.max(min, Math.min(max, value));
|
|
968
978
|
}
|
|
969
979
|
__name(between, "between");
|
|
980
|
+
function sum(array) {
|
|
981
|
+
return array.reduce((acc, value) => acc + value, 0);
|
|
982
|
+
}
|
|
983
|
+
__name(sum, "sum");
|
|
984
|
+
function avg(array) {
|
|
985
|
+
return sum(array) / array.length;
|
|
986
|
+
}
|
|
987
|
+
__name(avg, "avg");
|
|
970
988
|
|
|
971
989
|
// src/common/data/orderby.ts
|
|
972
990
|
function parseOrderby(value = "") {
|
|
@@ -1112,6 +1130,25 @@ function arrayMin(...array) {
|
|
|
1112
1130
|
return arrayFlatten(array).reduce((acc, value) => acc != null ? value < acc ? value : acc : value, void 0);
|
|
1113
1131
|
}
|
|
1114
1132
|
__name(arrayMin, "arrayMin");
|
|
1133
|
+
function arraySum(...array) {
|
|
1134
|
+
return arrayFlatten(array).reduce((acc, value) => acc + value, 0);
|
|
1135
|
+
}
|
|
1136
|
+
__name(arraySum, "arraySum");
|
|
1137
|
+
function arrayAvg(...array) {
|
|
1138
|
+
let flatArray = arrayFlatten(array);
|
|
1139
|
+
return flatArray.reduce((acc, value) => acc + value, 0) / flatArray.length;
|
|
1140
|
+
}
|
|
1141
|
+
__name(arrayAvg, "arrayAvg");
|
|
1142
|
+
function arrayBatches(array, chunckLength) {
|
|
1143
|
+
let chunks = [];
|
|
1144
|
+
let i = 0;
|
|
1145
|
+
const n = array.length;
|
|
1146
|
+
while (i < n) {
|
|
1147
|
+
chunks.push(array.slice(i, i += chunckLength));
|
|
1148
|
+
}
|
|
1149
|
+
return chunks;
|
|
1150
|
+
}
|
|
1151
|
+
__name(arrayBatches, "arrayBatches");
|
|
1115
1152
|
function createArray(size2 = 0, item) {
|
|
1116
1153
|
if (size2 <= 0)
|
|
1117
1154
|
return [];
|
|
@@ -1503,6 +1540,7 @@ var Currency = _Currency;
|
|
|
1503
1540
|
__name(Currency, "Currency");
|
|
1504
1541
|
Currency.zero = new _Currency(0);
|
|
1505
1542
|
Currency.one = new _Currency(1);
|
|
1543
|
+
Currency.hundred = new _Currency(100);
|
|
1506
1544
|
function parse(value, opts, useRounding = true) {
|
|
1507
1545
|
let v = 0, { decimal, errorOnInvalid, precision: decimals, fromCents } = opts, precision = pow(decimals), isNumber2 = typeof value === "number";
|
|
1508
1546
|
if (value instanceof Currency && fromCents) {
|
|
@@ -1741,7 +1779,6 @@ var Day = class {
|
|
|
1741
1779
|
if (mm === 0)
|
|
1742
1780
|
mm = 12;
|
|
1743
1781
|
let yy = Math.floor((m - 1) / 12);
|
|
1744
|
-
console.log("calc", m, mm, yy, [this.year + yy, mm, this.day]);
|
|
1745
1782
|
return Day.from([this.year + yy, mm, this.day]);
|
|
1746
1783
|
}
|
|
1747
1784
|
daysUntil(otherDay) {
|
|
@@ -1977,6 +2014,128 @@ function cloneJsonObject(obj) {
|
|
|
1977
2014
|
return JSON.parse(JSON.stringify(obj));
|
|
1978
2015
|
}
|
|
1979
2016
|
__name(cloneJsonObject, "cloneJsonObject");
|
|
2017
|
+
function memoize(fn) {
|
|
2018
|
+
let cache = /* @__PURE__ */ new Map();
|
|
2019
|
+
return (n) => {
|
|
2020
|
+
if (cache.has(n)) {
|
|
2021
|
+
return cache.get(n);
|
|
2022
|
+
}
|
|
2023
|
+
let result = fn(n);
|
|
2024
|
+
cache.set(n, result);
|
|
2025
|
+
return result;
|
|
2026
|
+
};
|
|
2027
|
+
}
|
|
2028
|
+
__name(memoize, "memoize");
|
|
2029
|
+
|
|
2030
|
+
// src/common/data/xrx.ts
|
|
2031
|
+
var RX_WHITESPACE = /\\\s|\s+|#[^\n]*\n?/gm;
|
|
2032
|
+
var RX_REAL_GROUPS = /\(\?P?<(\w[\w\d_]+)>|\((?!\?(:|\!|=|<=|<\!))/gm;
|
|
2033
|
+
var RX_LOOK_BEHIND = /^((?:\(\?[\w$]+\))?)\(\?<([=!])([\s\S]*?)\)/gm;
|
|
2034
|
+
function regExpString(rx) {
|
|
2035
|
+
return typeof rx === "string" ? rx : rx.source || "";
|
|
2036
|
+
}
|
|
2037
|
+
__name(regExpString, "regExpString");
|
|
2038
|
+
function regExpEscape(str) {
|
|
2039
|
+
return str.replace(/[-\[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
|
|
2040
|
+
}
|
|
2041
|
+
__name(regExpEscape, "regExpEscape");
|
|
2042
|
+
var XRX = class {
|
|
2043
|
+
constructor(pattern2, flags) {
|
|
2044
|
+
this.namedGroups = {};
|
|
2045
|
+
this.names = [];
|
|
2046
|
+
let _flags = flags != null ? flags : "";
|
|
2047
|
+
let _rx;
|
|
2048
|
+
if (pattern2 instanceof RegExp) {
|
|
2049
|
+
if (flags == null) {
|
|
2050
|
+
_flags = pattern2.flags;
|
|
2051
|
+
}
|
|
2052
|
+
_rx = pattern2.source;
|
|
2053
|
+
} else {
|
|
2054
|
+
_rx = pattern2;
|
|
2055
|
+
}
|
|
2056
|
+
const extended = _flags && _flags.indexOf("x") !== -1;
|
|
2057
|
+
if (extended) {
|
|
2058
|
+
_flags = _flags.replace("x", "");
|
|
2059
|
+
_rx = _rx.replace(RX_WHITESPACE, (r) => {
|
|
2060
|
+
return r[0] === "\\" ? r : "";
|
|
2061
|
+
});
|
|
2062
|
+
}
|
|
2063
|
+
if (!(pattern2 instanceof RegExp)) {
|
|
2064
|
+
let index = 0;
|
|
2065
|
+
_rx = _rx.replace(RX_REAL_GROUPS, (str, name) => {
|
|
2066
|
+
index += 1;
|
|
2067
|
+
if (name) {
|
|
2068
|
+
if (name !== "index" && name !== "length" && !this.namedGroups[name]) {
|
|
2069
|
+
this.namedGroups[name] = index;
|
|
2070
|
+
} else {
|
|
2071
|
+
console.error(`Unallowed or duplicate group name: ${name}`);
|
|
2072
|
+
}
|
|
2073
|
+
return "(";
|
|
2074
|
+
}
|
|
2075
|
+
return str;
|
|
2076
|
+
});
|
|
2077
|
+
this.names = Object.keys(this.namedGroups);
|
|
2078
|
+
}
|
|
2079
|
+
_rx = regExpString(_rx);
|
|
2080
|
+
RX_LOOK_BEHIND.lastIndex = 0;
|
|
2081
|
+
let parts = RX_LOOK_BEHIND.exec(_rx);
|
|
2082
|
+
if (parts) {
|
|
2083
|
+
this.lookBehind = {
|
|
2084
|
+
rx: new RegExp(`${parts[3]}$(?!\\s)`),
|
|
2085
|
+
expect: parts ? parts[2] === "=" : !parts
|
|
2086
|
+
};
|
|
2087
|
+
_rx = _rx.substr(parts[0].length);
|
|
2088
|
+
}
|
|
2089
|
+
this.rx = new RegExp(_rx, _flags);
|
|
2090
|
+
}
|
|
2091
|
+
get lastIndex() {
|
|
2092
|
+
return this.rx.lastIndex;
|
|
2093
|
+
}
|
|
2094
|
+
set lastIndex(index) {
|
|
2095
|
+
this.rx.lastIndex = index;
|
|
2096
|
+
}
|
|
2097
|
+
_handleMatch(m) {
|
|
2098
|
+
if (this.lookBehind) {
|
|
2099
|
+
let leftContext = m.input.slice(0, m.index);
|
|
2100
|
+
if (this.lookBehind.expect !== this.lookBehind.rx.test(leftContext)) {
|
|
2101
|
+
return null;
|
|
2102
|
+
}
|
|
2103
|
+
}
|
|
2104
|
+
for (let name of this.names) {
|
|
2105
|
+
m[name] = m[this.namedGroups[name]];
|
|
2106
|
+
}
|
|
2107
|
+
return m;
|
|
2108
|
+
}
|
|
2109
|
+
exec(str) {
|
|
2110
|
+
let m;
|
|
2111
|
+
while (m = this.rx.exec(str)) {
|
|
2112
|
+
if (this.rx.lastIndex === m.index) {
|
|
2113
|
+
this.rx.lastIndex++;
|
|
2114
|
+
}
|
|
2115
|
+
m = this._handleMatch(m);
|
|
2116
|
+
if (m != null) {
|
|
2117
|
+
return m;
|
|
2118
|
+
}
|
|
2119
|
+
}
|
|
2120
|
+
}
|
|
2121
|
+
execAll(str) {
|
|
2122
|
+
let matches = [];
|
|
2123
|
+
let m;
|
|
2124
|
+
this.rx.lastIndex = 0;
|
|
2125
|
+
while (m = this.exec(str)) {
|
|
2126
|
+
matches.push(m);
|
|
2127
|
+
}
|
|
2128
|
+
this.rx.lastIndex = 0;
|
|
2129
|
+
return matches;
|
|
2130
|
+
}
|
|
2131
|
+
replace(str, replacement) {
|
|
2132
|
+
let fn = typeof replacement === "function" ? replacement : () => replacement;
|
|
2133
|
+
return str.replace(this.rx, (m) => {
|
|
2134
|
+
return fn(m);
|
|
2135
|
+
});
|
|
2136
|
+
}
|
|
2137
|
+
};
|
|
2138
|
+
__name(XRX, "XRX");
|
|
1980
2139
|
|
|
1981
2140
|
// src/common/dispose-defer.ts
|
|
1982
2141
|
var log3 = Logger("dispose");
|
|
@@ -2944,11 +3103,14 @@ __name(usePool, "usePool");
|
|
|
2944
3103
|
|
|
2945
3104
|
// src/common/queue.ts
|
|
2946
3105
|
var log6 = Logger("zeed:queue");
|
|
2947
|
-
var SerialQueue = class {
|
|
3106
|
+
var SerialQueue = class extends Emitter {
|
|
2948
3107
|
constructor(opt = {}) {
|
|
3108
|
+
super();
|
|
2949
3109
|
this.queue = [];
|
|
2950
3110
|
this.isPaused = false;
|
|
2951
3111
|
this.waitToFinish = [];
|
|
3112
|
+
this.max = 0;
|
|
3113
|
+
this.resolved = 0;
|
|
2952
3114
|
const { name = uname("queue"), logLevel } = opt;
|
|
2953
3115
|
this.name = name;
|
|
2954
3116
|
this.log = Logger(`zeed:queue:${name}`);
|
|
@@ -2970,6 +3132,10 @@ var SerialQueue = class {
|
|
|
2970
3132
|
if (info == null) {
|
|
2971
3133
|
break;
|
|
2972
3134
|
}
|
|
3135
|
+
if (this.resolved === 0) {
|
|
3136
|
+
this.emit("didStart", this.max);
|
|
3137
|
+
this.emit("didUpdate", this.max, 0);
|
|
3138
|
+
}
|
|
2973
3139
|
const { name, task, resolve: resolve5 } = info;
|
|
2974
3140
|
this.currentTask = task();
|
|
2975
3141
|
let result = void 0;
|
|
@@ -2982,6 +3148,13 @@ var SerialQueue = class {
|
|
|
2982
3148
|
}
|
|
2983
3149
|
resolve5(result);
|
|
2984
3150
|
this.currentTask = void 0;
|
|
3151
|
+
this.resolved += 1;
|
|
3152
|
+
this.emit("didUpdate", this.max, this.resolved);
|
|
3153
|
+
}
|
|
3154
|
+
if (this.queue.length === 0) {
|
|
3155
|
+
this.emit("didFinish", this.max);
|
|
3156
|
+
this.max = 0;
|
|
3157
|
+
this.resolved = 0;
|
|
2985
3158
|
}
|
|
2986
3159
|
while (this.waitToFinish.length > 0) {
|
|
2987
3160
|
this.waitToFinish.shift()();
|
|
@@ -2993,6 +3166,7 @@ var SerialQueue = class {
|
|
|
2993
3166
|
this.log.info(`immediate execution ${name}`);
|
|
2994
3167
|
return await task();
|
|
2995
3168
|
}
|
|
3169
|
+
this.max += 1;
|
|
2996
3170
|
this.log(`enqueue ${name}`);
|
|
2997
3171
|
return new Promise((resolve5) => {
|
|
2998
3172
|
this.queue.push({
|
|
@@ -3011,6 +3185,7 @@ var SerialQueue = class {
|
|
|
3011
3185
|
}
|
|
3012
3186
|
async cancelAll(unblock = true) {
|
|
3013
3187
|
this.log(`cancelAll`);
|
|
3188
|
+
this.emit("didCancel", this.queue.length);
|
|
3014
3189
|
let resolver = this.queue.map((task) => task.resolve);
|
|
3015
3190
|
this.queue = [];
|
|
3016
3191
|
resolver.forEach((r) => r(void 0));
|
|
@@ -3154,6 +3329,18 @@ function debounce(callback, opt = {}) {
|
|
|
3154
3329
|
}
|
|
3155
3330
|
__name(debounce, "debounce");
|
|
3156
3331
|
|
|
3332
|
+
// src/node/clipboard.ts
|
|
3333
|
+
function pbcopy(data) {
|
|
3334
|
+
return new Promise(function(resolve5, reject) {
|
|
3335
|
+
const proc = require("child_process").spawn("pbcopy");
|
|
3336
|
+
proc.on("error", (err) => reject(err));
|
|
3337
|
+
proc.on("close", (err) => resolve5(data));
|
|
3338
|
+
proc.stdin.write(data);
|
|
3339
|
+
proc.stdin.end();
|
|
3340
|
+
});
|
|
3341
|
+
}
|
|
3342
|
+
__name(pbcopy, "pbcopy");
|
|
3343
|
+
|
|
3157
3344
|
// src/node/crypto.ts
|
|
3158
3345
|
var import_crypto3 = __toESM(require("crypto"), 1);
|
|
3159
3346
|
try {
|
|
@@ -4217,9 +4404,12 @@ module.exports = __toCommonJS(index_all_exports);
|
|
|
4217
4404
|
SerialQueue,
|
|
4218
4405
|
Uint8ArrayToJson,
|
|
4219
4406
|
Uint8ArrayToString,
|
|
4407
|
+
XRX,
|
|
4220
4408
|
_decodeUtf8Polyfill,
|
|
4221
4409
|
_encodeUtf8Polyfill,
|
|
4222
4410
|
activateConsoleDebug,
|
|
4411
|
+
arrayAvg,
|
|
4412
|
+
arrayBatches,
|
|
4223
4413
|
arrayEmptyInPlace,
|
|
4224
4414
|
arrayFilterInPlace,
|
|
4225
4415
|
arrayFlatten,
|
|
@@ -4236,10 +4426,12 @@ module.exports = __toCommonJS(index_all_exports);
|
|
|
4236
4426
|
arrayShuffleInPlace,
|
|
4237
4427
|
arraySorted,
|
|
4238
4428
|
arraySortedNumbers,
|
|
4429
|
+
arraySum,
|
|
4239
4430
|
arraySymmetricDifference,
|
|
4240
4431
|
arrayToggleInPlace,
|
|
4241
4432
|
arrayUnion,
|
|
4242
4433
|
arrayUnique,
|
|
4434
|
+
avg,
|
|
4243
4435
|
between,
|
|
4244
4436
|
cloneJsonObject,
|
|
4245
4437
|
cloneObject,
|
|
@@ -4328,11 +4520,13 @@ module.exports = __toCommonJS(index_all_exports);
|
|
|
4328
4520
|
lazyListener,
|
|
4329
4521
|
linkifyPlainText,
|
|
4330
4522
|
loggerStackTraceDebug,
|
|
4523
|
+
memoize,
|
|
4331
4524
|
messages,
|
|
4332
4525
|
moveSortWeight,
|
|
4333
4526
|
parseDate,
|
|
4334
4527
|
parseOrderby,
|
|
4335
4528
|
parseQuery,
|
|
4529
|
+
pbcopy,
|
|
4336
4530
|
platform,
|
|
4337
4531
|
promisify,
|
|
4338
4532
|
qid,
|
|
@@ -4340,6 +4534,8 @@ module.exports = __toCommonJS(index_all_exports);
|
|
|
4340
4534
|
randomFloat,
|
|
4341
4535
|
randomInt,
|
|
4342
4536
|
randomUint8Array,
|
|
4537
|
+
regExpEscape,
|
|
4538
|
+
regExpString,
|
|
4343
4539
|
renderMessages,
|
|
4344
4540
|
roundDown,
|
|
4345
4541
|
roundHalfAwayFromZero,
|
|
@@ -4365,6 +4561,7 @@ module.exports = __toCommonJS(index_all_exports);
|
|
|
4365
4561
|
suidBytes,
|
|
4366
4562
|
suidBytesDate,
|
|
4367
4563
|
suidDate,
|
|
4564
|
+
sum,
|
|
4368
4565
|
supportsColors,
|
|
4369
4566
|
throttle,
|
|
4370
4567
|
timeout,
|