zeed 0.7.85 → 0.7.89
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-TYTPKZHF.js → chunk-2NDBQGO4.js} +2 -2
- package/dist/chunk-2NDBQGO4.js.map +1 -0
- package/dist/chunk-GHPIN4JT.js +2 -0
- package/dist/chunk-GHPIN4JT.js.map +1 -0
- package/dist/{chunk-BVGJQVUZ.js → chunk-MJ5I2MYY.js} +2 -2
- package/dist/chunk-MJ5I2MYY.js.map +1 -0
- package/dist/{chunk-72GMFXKL.js → chunk-QB7QN4PU.js} +2 -2
- package/dist/chunk-QB7QN4PU.js.map +1 -0
- package/dist/{chunk-OXB7DWYR.js → chunk-TKGXK4JN.js} +3 -3
- package/dist/chunk-TKGXK4JN.js.map +1 -0
- package/dist/index.all.cjs +3 -3
- package/dist/index.all.cjs.map +1 -7
- package/dist/index.all.d.ts +3 -3
- package/dist/index.all.js +2 -2
- package/dist/index.all.js.map +1 -7
- package/dist/index.browser.cjs +3 -3
- package/dist/index.browser.cjs.map +1 -7
- package/dist/index.browser.d.ts +2 -2
- package/dist/index.browser.js +2 -2
- package/dist/index.browser.js.map +1 -7
- package/dist/index.log.cjs +2 -2
- package/dist/index.log.cjs.map +1 -7
- package/dist/index.log.js +2 -2
- package/dist/index.log.js.map +1 -7
- package/dist/index.node.cjs +3 -3
- package/dist/index.node.cjs.map +1 -7
- package/dist/index.node.d.ts +2 -2
- package/dist/index.node.js +2 -2
- package/dist/index.node.js.map +1 -7
- package/dist/{log-colors-8289317d.d.ts → log-colors-104d1367.d.ts} +1 -1
- package/dist/{log-util-cc7d92e8.d.ts → log-util-f7135788.d.ts} +1 -1
- package/dist/{uuid-6bfbc6ff.d.ts → uuid-a44fa832.d.ts} +22 -3
- package/package.json +7 -7
- package/dist/chunk-72GMFXKL.js.map +0 -7
- package/dist/chunk-BVGJQVUZ.js.map +0 -7
- package/dist/chunk-NZSIXVWC.js +0 -2
- package/dist/chunk-NZSIXVWC.js.map +0 -7
- package/dist/chunk-OXB7DWYR.js.map +0 -7
- package/dist/chunk-TYTPKZHF.js.map +0 -7
package/dist/index.node.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { M as BinInput,
|
|
1
|
+
export { M as BinInput, bn as Channel, bm as ChannelMessageEvent, bA as CryptoEncoder, af as Currency, ad as CurrencyInput, ar as DAY_MS, at as Day, as as DayInput, bt as DefaultListener, ba as Disposable, b9 as Disposer, b8 as DisposerFunction, bu as Emitter, br as EmitterAllHandler, bq as EmitterHandler, by as Encoder, cm as Json, bz as JsonEncoder, bs as ListenerSignature, bo as LocalChannel, bi as LoggerConsoleHandler, cf as MemStorage, ce as MemStorageOptions, bD as Message, bB as MessageAction, bH as MessageDefinitions, bI as MessageHub, bC as MessageResult, bF as MessagesDefaultMethods, bG as MessagesMethods, bE as MessagesOptions, bN as Mutex, co as NestedArray, cn as ObjectStorage, c1 as Pool, aB as Primitive, bL as PubSub, cc as QueueTask, a9 as RenderMessagesOptions, ag as RoundingMode, cd as SerialQueue, aX as SortableItem, V as Uint8ArrayToJson, U as Uint8ArrayToString, p as arrayEmptyInPlace, n as arrayFilterInPlace, i as arrayFlatten, j as arrayIntersection, t as arrayIsEqual, y as arrayMax, z as arrayMin, g as arrayMinus, x as arrayRandomElement, l as arrayRemoveElement, m as arraySetElement, v as arrayShuffle, w as arrayShuffleForce, u as arrayShuffleInPlace, q as arraySorted, s as arraySortedNumbers, k as arraySymmetricDifference, o as arrayToggleInPlace, h as arrayUnion, f as arrayUnique, aQ as between, bb as callDisposer, b7 as cloneObject, aT as cmp, aS as composeOrderby, A as createArray, bO as createMutex, bJ as createPromiseProxy, c as csv, ae as currency, aw as day, ch as debounce, D as decodeBase16, F as decodeBase32, H as decodeBase58, J as decodeBase62, L as decodeBase64, b as decrypt, ax as deepEqual, ay as deepMerge, a as deriveKeyPbkdf2, bY as detect, d as digest, b6 as empty, C as encodeBase16, E as encodeBase32, G as encodeBase58, I as encodeBase62, K as encodeBase64, b2 as encodeQuery, e as encrypt, aZ as endSortWeight, S as equalBinary, az as escapeHTML, aW as escapeRegExp, bp as fakeWorkerPair, bQ as fetchBasic, bR as fetchJson, bS as fetchOptionsFormURLEncoded, bT as fetchOptionsJson, bU as fetchText, ac as fixBrokenUth8String, au as forEachDay, aa as formatMessages, ck as formatMilliseconds, Z as fromCamelCase, bX as getGlobal, bg as getGlobalContext, bv as getGlobalEmitter, bj as getNamespaceFilterString, bW as getNavigator, cj as getTimestamp, bV as getWindow, bP as httpMethod, c3 as immediate, aE as isArray, aK as isBoolean, bZ as isBrowser, ai as isEven, ah as isHalf, aI as isInteger, bh as isLocalHost, aL as isNullOrUndefined, aH as isNumber, aC as isObject, aD as isPrimitive, ca as isPromise, aF as isRecord, aJ as isSafeInteger, aG as isString, c7 as isTimeout, aM as jsonStringify, T as jsonToUint8Array, b5 as last, bx as lazyListener, b0 as linkifyPlainText, bw as messages, a_ as moveSortWeight, cl as parseDate, aR as parseOrderby, b3 as parseQuery, b_ as platform, cb as promisify, ct as qid, aN as randomBoolean, aP as randomFloat, aO as randomInt, r as randomUint8Array, ab as renderMessages, ak as roundDown, an as roundHalfAwayFromZero, ao as roundHalfDown, ap as roundHalfEven, am as roundHalfOdd, aq as roundHalfTowardsZero, al as roundHalfUp, aj as roundUp, b4 as size, c2 as sleep, a$ as sortedItems, aU as sortedOrderby, aY as startSortWeight, _ as stringToBoolean, a0 as stringToFloat, $ as stringToInteger, N as stringToUInt8Array, cw as suid, cv as suidBytes, cy as suidBytesDate, cx as suidDate, cg as throttle, ci as throttleAnimationFrame, c5 as timeout, c4 as timeoutReached, c6 as timoutError, Q as toBase64, R as toBase64Url, a8 as toBool, W as toCamelCase, X as toCapitalize, Y as toCapitalizeWords, a5 as toFloat, P as toHex, b1 as toHumanReadableUrl, a6 as toInt, a7 as toString, O as toUint8Array, aV as toValidFilename, av as today, c8 as tryTimeout, cs as uname, aA as unescapeHTML, B as useBase, bc as useDisposer, bf as useEventListener, b$ as useExitHandler, be as useInterval, bl as useLevelFilter, bK as useMessageHub, bk as useNamespaceFilter, c0 as usePool, bM as usePubSub, bd as useTimeout, cq as uuid, cr as uuidB32, cp as uuidBytes, cu as uuidv4, a1 as valueToBoolean, a3 as valueToFloat, a2 as valueToInteger, a4 as valueToString, c9 as waitOn } from './uuid-a44fa832';
|
|
2
2
|
export { d as LogHandler, g as LogHandlerOptions, a as LogLevel, b as LogLevelAlias, c as LogMessage, L as Logger, h as LoggerContext, f as LoggerContextInterface, e as LoggerInterface } from './log-7206a2fe';
|
|
3
|
-
export { b as FileStorage, F as FileStorageOptions, L as LoggerFileHandler, e as LoggerNodeHandler, c as colorString, d as colorStringList, f as getSourceLocation, j as getSourceLocationByPrecedingPattern, h as getStack, g as getStackLlocationList, i as isTTY, l as loggerStackTraceDebug, a as setupEnv, s as stringToPath, t as toPath, v as valueToPath } from './log-util-
|
|
3
|
+
export { b as FileStorage, F as FileStorageOptions, L as LoggerFileHandler, e as LoggerNodeHandler, c as colorString, d as colorStringList, f as getSourceLocation, j as getSourceLocationByPrecedingPattern, h as getStack, g as getStackLlocationList, i as isTTY, l as loggerStackTraceDebug, a as setupEnv, s as stringToPath, t as toPath, v as valueToPath } from './log-util-f7135788';
|
package/dist/index.node.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{FileStorage,LoggerFileHandler,LoggerNodeHandler,colorString,colorStringList,getSourceLocation,getSourceLocationByPrecedingPattern,getStack,getStackLlocationList,isTTY,loggerStackTraceDebug,setupEnv,stringToPath,toPath,valueToPath}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=index.node.js.map
|
|
1
|
+
import{FileStorage,LoggerFileHandler,LoggerNodeHandler,colorString,colorStringList,getSourceLocation,getSourceLocationByPrecedingPattern,getStack,getStackLlocationList,isTTY,loggerStackTraceDebug,setupEnv,stringToPath,toPath,valueToPath}from"./chunk-2NDBQGO4.js";import{Channel,CryptoEncoder,Currency,DAY_MS,Day,Emitter,JsonEncoder,LocalChannel,MemStorage,PubSub,SerialQueue,Uint8ArrayToJson,Uint8ArrayToString,arrayEmptyInPlace,arrayFilterInPlace,arrayFlatten,arrayIntersection,arrayIsEqual,arrayMax,arrayMin,arrayMinus,arrayRandomElement,arrayRemoveElement,arraySetElement,arrayShuffle,arrayShuffleForce,arrayShuffleInPlace,arraySorted,arraySortedNumbers,arraySymmetricDifference,arrayToggleInPlace,arrayUnion,arrayUnique,between,callDisposer,cloneObject,cmp,composeOrderby,createArray,createMutex,createPromiseProxy,csv,currency,day,debounce,decodeBase16,decodeBase32,decodeBase58,decodeBase62,decodeBase64,decrypt,deriveKeyPbkdf2,detect,digest,empty,encodeBase16,encodeBase32,encodeBase58,encodeBase62,encodeBase64,encodeQuery,encrypt,endSortWeight,equalBinary,escapeHTML,escapeRegExp,fakeWorkerPair,fetchBasic,fetchJson,fetchOptionsFormURLEncoded,fetchOptionsJson,fetchText,fixBrokenUth8String,forEachDay,formatMessages,fromCamelCase,getGlobal,getGlobalEmitter,getNavigator,getWindow,immediate,isBrowser,isEven,isHalf,isLocalHost,isPromise,isTimeout,jsonStringify,jsonToUint8Array,last,lazyListener,linkifyPlainText,messages,moveSortWeight,parseOrderby,parseQuery,platform,promisify,qid,randomBoolean,randomFloat,randomInt,randomUint8Array,renderMessages,roundDown,roundHalfAwayFromZero,roundHalfDown,roundHalfEven,roundHalfOdd,roundHalfTowardsZero,roundHalfUp,roundUp,size,sleep,sortedItems,sortedOrderby,startSortWeight,stringToBoolean,stringToFloat,stringToInteger,stringToUInt8Array,suid,suidBytes,suidBytesDate,suidDate,throttle,throttleAnimationFrame,timeout,timeoutReached,timoutError,toBase64,toBase64Url,toBool,toCamelCase,toCapitalize,toCapitalizeWords,toFloat,toHex,toHumanReadableUrl,toInt,toString,toUint8Array,toValidFilename,today,tryTimeout,uname,unescapeHTML,useBase,useDisposer,useEventListener,useExitHandler,useInterval,useMessageHub,usePool,usePubSub,useTimeout,uuid,uuidB32,uuidBytes,uuidv4,valueToBoolean,valueToFloat,valueToInteger,valueToString,waitOn}from"./chunk-TKGXK4JN.js";import{LogLevel,LogLevelAlias,Logger,LoggerConsoleHandler,LoggerContext,deepEqual,deepMerge,formatMilliseconds,getGlobalContext,getNamespaceFilterString,getTimestamp,isArray,isBoolean,isInteger,isNullOrUndefined,isNumber,isObject,isPrimitive,isRecord,isSafeInteger,isString,parseDate,useLevelFilter,useNamespaceFilter}from"./chunk-GHPIN4JT.js";export{Channel,CryptoEncoder,Currency,DAY_MS,Day,Emitter,FileStorage,JsonEncoder,LocalChannel,LogLevel,LogLevelAlias,Logger,LoggerConsoleHandler,LoggerContext,LoggerFileHandler,LoggerNodeHandler,MemStorage,PubSub,SerialQueue,Uint8ArrayToJson,Uint8ArrayToString,arrayEmptyInPlace,arrayFilterInPlace,arrayFlatten,arrayIntersection,arrayIsEqual,arrayMax,arrayMin,arrayMinus,arrayRandomElement,arrayRemoveElement,arraySetElement,arrayShuffle,arrayShuffleForce,arrayShuffleInPlace,arraySorted,arraySortedNumbers,arraySymmetricDifference,arrayToggleInPlace,arrayUnion,arrayUnique,between,callDisposer,cloneObject,cmp,colorString,colorStringList,composeOrderby,createArray,createMutex,createPromiseProxy,csv,currency,day,debounce,decodeBase16,decodeBase32,decodeBase58,decodeBase62,decodeBase64,decrypt,deepEqual,deepMerge,deriveKeyPbkdf2,detect,digest,empty,encodeBase16,encodeBase32,encodeBase58,encodeBase62,encodeBase64,encodeQuery,encrypt,endSortWeight,equalBinary,escapeHTML,escapeRegExp,fakeWorkerPair,fetchBasic,fetchJson,fetchOptionsFormURLEncoded,fetchOptionsJson,fetchText,fixBrokenUth8String,forEachDay,formatMessages,formatMilliseconds,fromCamelCase,getGlobal,getGlobalContext,getGlobalEmitter,getNamespaceFilterString,getNavigator,getSourceLocation,getSourceLocationByPrecedingPattern,getStack,getStackLlocationList,getTimestamp,getWindow,immediate,isArray,isBoolean,isBrowser,isEven,isHalf,isInteger,isLocalHost,isNullOrUndefined,isNumber,isObject,isPrimitive,isPromise,isRecord,isSafeInteger,isString,isTTY,isTimeout,jsonStringify,jsonToUint8Array,last,lazyListener,linkifyPlainText,loggerStackTraceDebug,messages,moveSortWeight,parseDate,parseOrderby,parseQuery,platform,promisify,qid,randomBoolean,randomFloat,randomInt,randomUint8Array,renderMessages,roundDown,roundHalfAwayFromZero,roundHalfDown,roundHalfEven,roundHalfOdd,roundHalfTowardsZero,roundHalfUp,roundUp,setupEnv,size,sleep,sortedItems,sortedOrderby,startSortWeight,stringToBoolean,stringToFloat,stringToInteger,stringToPath,stringToUInt8Array,suid,suidBytes,suidBytesDate,suidDate,throttle,throttleAnimationFrame,timeout,timeoutReached,timoutError,toBase64,toBase64Url,toBool,toCamelCase,toCapitalize,toCapitalizeWords,toFloat,toHex,toHumanReadableUrl,toInt,toPath,toString,toUint8Array,toValidFilename,today,tryTimeout,uname,unescapeHTML,useBase,useDisposer,useEventListener,useExitHandler,useInterval,useLevelFilter,useMessageHub,useNamespaceFilter,usePool,usePubSub,useTimeout,uuid,uuidB32,uuidBytes,uuidv4,valueToBoolean,valueToFloat,valueToInteger,valueToPath,valueToString,waitOn};
|
|
2
|
+
//# sourceMappingURL=index.node.js.map
|
package/dist/index.node.js.map
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { cm as Json, cn as ObjectStorage } from './uuid-a44fa832';
|
|
2
2
|
import { a as LogLevel, g as LogHandlerOptions, d as LogHandler } from './log-7206a2fe';
|
|
3
3
|
|
|
4
4
|
declare function urlBase64ToUint8Array(base64String: string): Uint8Array | undefined;
|
|
@@ -193,14 +193,24 @@ declare function forEachDay(from: DayInput, to: DayInput, handler: (date: Day) =
|
|
|
193
193
|
declare function today(): Day;
|
|
194
194
|
declare function day(days?: DayInput): Day;
|
|
195
195
|
|
|
196
|
-
declare const isObject: (obj: any) => any;
|
|
197
|
-
declare const isPrimitive: (obj: any) => boolean;
|
|
198
196
|
declare function deepEqual(a: any, b: any, hash?: WeakSet<object>): boolean;
|
|
199
197
|
declare function deepMerge(target: any, ...sources: any[]): any;
|
|
200
198
|
|
|
201
199
|
declare const escapeHTML: (s: string) => string;
|
|
202
200
|
declare const unescapeHTML: (s: string) => string;
|
|
203
201
|
|
|
202
|
+
declare type Primitive = null | undefined | string | number | boolean | symbol | bigint;
|
|
203
|
+
declare function isObject(obj: unknown): obj is object;
|
|
204
|
+
declare function isPrimitive(obj: unknown): obj is Primitive;
|
|
205
|
+
declare function isArray(obj: unknown): obj is Array<any>;
|
|
206
|
+
declare function isRecord(obj: unknown): obj is Record<string, any>;
|
|
207
|
+
declare function isString(obj: unknown): obj is string;
|
|
208
|
+
declare function isNumber(obj: unknown): obj is number;
|
|
209
|
+
declare function isInteger(obj: unknown): obj is number;
|
|
210
|
+
declare function isSafeInteger(obj: unknown): obj is number;
|
|
211
|
+
declare function isBoolean(obj: unknown): obj is boolean;
|
|
212
|
+
declare function isNullOrUndefined(obj: unknown): obj is null | undefined;
|
|
213
|
+
|
|
204
214
|
declare type EntryProcessor = (key: string, value: any) => any;
|
|
205
215
|
/**
|
|
206
216
|
* Similar to JSON.stringify but can handle circular references
|
|
@@ -529,6 +539,15 @@ declare const platform: {
|
|
|
529
539
|
*/
|
|
530
540
|
declare function useExitHandler(handler: () => void): void;
|
|
531
541
|
|
|
542
|
+
interface PoolConfig {
|
|
543
|
+
maxParallel?: number;
|
|
544
|
+
}
|
|
545
|
+
declare function usePool<T = any>(config?: PoolConfig): {
|
|
546
|
+
cancel: (id: string) => void;
|
|
547
|
+
enqueue(id: string, task: QueueTask<T>): () => void;
|
|
548
|
+
};
|
|
549
|
+
declare type Pool = ReturnType<typeof usePool>;
|
|
550
|
+
|
|
532
551
|
/** Sleep for `milliSeconds`. Example 1s: `await sleep(1000)` */
|
|
533
552
|
declare function sleep(milliSeconds: number): Promise<void>;
|
|
534
553
|
declare function immediate(): Promise<void>;
|
|
@@ -621,4 +640,4 @@ declare function suid(): string;
|
|
|
621
640
|
declare function suidDate(id: string): Date;
|
|
622
641
|
declare function suidBytesDate(id: Uint8Array): Date;
|
|
623
642
|
|
|
624
|
-
export { stringToInteger as $, createArray as A, useBase as B, encodeBase16 as C, decodeBase16 as D, encodeBase32 as E, decodeBase32 as F, encodeBase58 as G, decodeBase58 as H, encodeBase62 as I, decodeBase62 as J, encodeBase64 as K, decodeBase64 as L, BinInput as M, stringToUInt8Array as N, toUint8Array as O, toHex as P, toBase64 as Q, toBase64Url as R, equalBinary as S, jsonToUint8Array as T, Uint8ArrayToString as U, Uint8ArrayToJson as V, toCamelCase as W, toCapitalize as X, toCapitalizeWords as Y, fromCamelCase as Z, stringToBoolean as _, deriveKeyPbkdf2 as a,
|
|
643
|
+
export { stringToInteger as $, createArray as A, useBase as B, encodeBase16 as C, decodeBase16 as D, encodeBase32 as E, decodeBase32 as F, encodeBase58 as G, decodeBase58 as H, encodeBase62 as I, decodeBase62 as J, encodeBase64 as K, decodeBase64 as L, BinInput as M, stringToUInt8Array as N, toUint8Array as O, toHex as P, toBase64 as Q, toBase64Url as R, equalBinary as S, jsonToUint8Array as T, Uint8ArrayToString as U, Uint8ArrayToJson as V, toCamelCase as W, toCapitalize as X, toCapitalizeWords as Y, fromCamelCase as Z, stringToBoolean as _, deriveKeyPbkdf2 as a, sortedItems as a$, stringToFloat as a0, valueToBoolean as a1, valueToInteger as a2, valueToFloat as a3, valueToString as a4, toFloat as a5, toInt as a6, toString as a7, toBool as a8, RenderMessagesOptions as a9, unescapeHTML as aA, Primitive as aB, isObject as aC, isPrimitive as aD, isArray as aE, isRecord as aF, isString as aG, isNumber as aH, isInteger as aI, isSafeInteger as aJ, isBoolean as aK, isNullOrUndefined as aL, jsonStringify as aM, randomBoolean as aN, randomInt as aO, randomFloat as aP, between as aQ, parseOrderby as aR, composeOrderby as aS, cmp as aT, sortedOrderby as aU, toValidFilename as aV, escapeRegExp as aW, SortableItem as aX, startSortWeight as aY, endSortWeight as aZ, moveSortWeight as a_, formatMessages as aa, renderMessages as ab, fixBrokenUth8String as ac, CurrencyInput as ad, currency as ae, Currency as af, RoundingMode as ag, isHalf as ah, isEven as ai, roundUp as aj, roundDown as ak, roundHalfUp as al, roundHalfOdd as am, roundHalfAwayFromZero as an, roundHalfDown as ao, roundHalfEven as ap, roundHalfTowardsZero as aq, DAY_MS as ar, DayInput as as, Day as at, forEachDay as au, today as av, day as aw, deepEqual as ax, deepMerge as ay, escapeHTML as az, decrypt as b, useExitHandler as b$, linkifyPlainText as b0, toHumanReadableUrl as b1, encodeQuery as b2, parseQuery as b3, size as b4, last as b5, empty as b6, cloneObject as b7, DisposerFunction as b8, Disposer as b9, CryptoEncoder as bA, MessageAction as bB, MessageResult as bC, Message as bD, MessagesOptions as bE, MessagesDefaultMethods as bF, MessagesMethods as bG, MessageDefinitions as bH, MessageHub as bI, createPromiseProxy as bJ, useMessageHub as bK, PubSub as bL, usePubSub as bM, Mutex as bN, createMutex as bO, httpMethod as bP, fetchBasic as bQ, fetchJson as bR, fetchOptionsFormURLEncoded as bS, fetchOptionsJson as bT, fetchText as bU, getWindow as bV, getNavigator as bW, getGlobal as bX, detect as bY, isBrowser as bZ, platform as b_, Disposable as ba, callDisposer as bb, useDisposer as bc, useTimeout as bd, useInterval as be, useEventListener as bf, getGlobalContext as bg, isLocalHost as bh, LoggerConsoleHandler as bi, getNamespaceFilterString as bj, useNamespaceFilter as bk, useLevelFilter as bl, ChannelMessageEvent as bm, Channel as bn, LocalChannel as bo, fakeWorkerPair as bp, EmitterHandler as bq, EmitterAllHandler as br, ListenerSignature as bs, DefaultListener as bt, Emitter as bu, getGlobalEmitter as bv, messages as bw, lazyListener as bx, Encoder as by, JsonEncoder as bz, csv as c, usePool as c0, Pool as c1, sleep as c2, immediate as c3, timeoutReached as c4, timeout as c5, timoutError as c6, isTimeout as c7, tryTimeout as c8, waitOn as c9, isPromise as ca, promisify as cb, QueueTask as cc, SerialQueue as cd, MemStorageOptions as ce, MemStorage as cf, throttle as cg, debounce as ch, throttleAnimationFrame as ci, getTimestamp as cj, formatMilliseconds as ck, parseDate as cl, Json as cm, ObjectStorage as cn, NestedArray as co, uuidBytes as cp, uuid as cq, uuidB32 as cr, uname as cs, qid as ct, uuidv4 as cu, suidBytes as cv, suid as cw, suidDate as cx, suidBytesDate as cy, digest as d, encrypt as e, arrayUnique as f, arrayMinus as g, arrayUnion as h, arrayFlatten as i, arrayIntersection as j, arraySymmetricDifference as k, arrayRemoveElement as l, arraySetElement as m, arrayFilterInPlace as n, arrayToggleInPlace as o, arrayEmptyInPlace as p, arraySorted as q, randomUint8Array as r, arraySortedNumbers as s, arrayIsEqual as t, arrayShuffleInPlace as u, arrayShuffle as v, arrayShuffleForce as w, arrayRandomElement as x, arrayMax as y, arrayMin as z };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zeed",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.89",
|
|
4
4
|
"description": "🌱 Simple foundation library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"foundation",
|
|
@@ -42,15 +42,15 @@
|
|
|
42
42
|
"build:tsup": "tsup src/index.*.ts --dts --sourcemap --format esm,cjs --keep-names --minify-whitespace",
|
|
43
43
|
"watch": "npm run build:tsup -- --watch",
|
|
44
44
|
"prepublishOnly": "npm run build && npm test",
|
|
45
|
-
"test": "jest src"
|
|
45
|
+
"test": "jest src --coverage"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/jest": "^27.0.3",
|
|
49
|
-
"@types/node": "^
|
|
49
|
+
"@types/node": "^17.0.0",
|
|
50
50
|
"cross-fetch": "^3.1.4",
|
|
51
|
-
"jest": "^27.4.
|
|
52
|
-
"ts-jest": "^27.
|
|
53
|
-
"tsup": "^5.
|
|
54
|
-
"typescript": "^4.5.
|
|
51
|
+
"jest": "^27.4.5",
|
|
52
|
+
"ts-jest": "^27.1.2",
|
|
53
|
+
"tsup": "^5.11.6",
|
|
54
|
+
"typescript": "^4.5.4"
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/browser/log-colors.ts", "../src/browser/log-browser.ts"],
|
|
4
|
-
"sourcesContent": ["// Taken from https://github.com/visionmedia/debug/blob/master/src/browser.js#L27\n\nconst colors = [\n \"#0000CC\",\n \"#0000FF\",\n \"#0033CC\",\n \"#0033FF\",\n \"#0066CC\",\n \"#0066FF\",\n \"#0099CC\",\n \"#0099FF\",\n \"#00CC00\",\n \"#00CC33\",\n \"#00CC66\",\n \"#00CC99\",\n \"#00CCCC\",\n \"#00CCFF\",\n \"#3300CC\",\n \"#3300FF\",\n \"#3333CC\",\n \"#3333FF\",\n \"#3366CC\",\n \"#3366FF\",\n \"#3399CC\",\n \"#3399FF\",\n \"#33CC00\",\n \"#33CC33\",\n \"#33CC66\",\n \"#33CC99\",\n \"#33CCCC\",\n \"#33CCFF\",\n \"#6600CC\",\n \"#6600FF\",\n \"#6633CC\",\n \"#6633FF\",\n \"#66CC00\",\n \"#66CC33\",\n \"#9900CC\",\n \"#9900FF\",\n \"#9933CC\",\n \"#9933FF\",\n \"#99CC00\",\n \"#99CC33\",\n \"#CC0000\",\n \"#CC0033\",\n \"#CC0066\",\n \"#CC0099\",\n \"#CC00CC\",\n \"#CC00FF\",\n \"#CC3300\",\n \"#CC3333\",\n \"#CC3366\",\n \"#CC3399\",\n \"#CC33CC\",\n \"#CC33FF\",\n \"#CC6600\",\n \"#CC6633\",\n \"#CC9900\",\n \"#CC9933\",\n \"#CCCC00\",\n \"#CCCC33\",\n \"#FF0000\",\n \"#FF0033\",\n \"#FF0066\",\n \"#FF0099\",\n \"#FF00CC\",\n \"#FF00FF\",\n \"#FF3300\",\n \"#FF3333\",\n \"#FF3366\",\n \"#FF3399\",\n \"#FF33CC\",\n \"#FF33FF\",\n \"#FF6600\",\n \"#FF6633\",\n \"#FF9900\",\n \"#FF9933\",\n \"#FFCC00\",\n \"#FFCC33\",\n]\n\nexport function supportsColors(): boolean {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (\n typeof window !== \"undefined\" &&\n window.process &&\n // @ts-ignore\n (window.process.type === \"renderer\" || window.process.__nwjs)\n ) {\n return true\n }\n\n // Internet Explorer and Edge do not support colors.\n if (\n typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)\n ) {\n return false\n }\n\n // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (\n (typeof document !== \"undefined\" &&\n document.documentElement &&\n document.documentElement.style &&\n // @ts-ignore\n document.documentElement.style.WebkitAppearance) ||\n // Is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== \"undefined\" &&\n window.console &&\n // @ts-ignore\n (window.console.firebug ||\n // @ts-ignore\n (window.console.exception && window.console.table))) ||\n // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) &&\n parseInt(RegExp.$1, 10) >= 31) ||\n // Double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/))\n )\n}\n\nexport function selectColor(namespace: string) {\n let hash = 0\n for (let i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n return colors[Math.abs(hash) % colors.length]\n}\n", "// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport { deepEqual } from \"../common/data/deep\"\nimport {\n LoggerInterface,\n LogHandler,\n LogHandlerOptions,\n LogLevel,\n LogMessage,\n} from \"../common/log-base\"\nimport { useLevelFilter, useNamespaceFilter } from \"../common/log-filter\"\nimport { formatMilliseconds, getTimestamp } from \"../common/time\"\nimport { selectColor, supportsColors } from \"./log-colors\"\n\nconst styleFont = `font-family: \"JetBrains Mono\", Menlo; font-size: 11px;`\nconst styleDefault = `${styleFont}`\nconst styleBold = `font-weight: 600; ${styleFont}`\nconst useColors = supportsColors()\n\nlet namespaces: Record<string, any> = {}\n\nlet time = getTimestamp()\n\nexport function LoggerBrowserHandler(opt: LogHandlerOptions = {}): LogHandler {\n const {\n filter = undefined,\n level = undefined,\n colors = true,\n levelHelper = false,\n nameBrackets = true,\n padding = 16,\n } = opt\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level)) return\n if (!matchesNamespace(msg.name)) return\n\n const timeNow = getTimestamp()\n let name = msg.name || \"\"\n let ninfo = namespaces[name || \"\"]\n if (ninfo == null) {\n ninfo = {\n color: selectColor(name),\n // time: timeNow\n }\n namespaces[name] = ninfo\n }\n const diff = formatMilliseconds(timeNow - time)\n let args: string[]\n\n if (padding > 0) {\n name = name.padEnd(16, \" \")\n }\n\n if (colors && useColors) {\n args = [`%c${name}%c \\t%s %c+${diff}`]\n args.push(`color:${ninfo.color}; ${styleBold}`)\n args.push(styleDefault)\n args.push(msg.messages?.[0] ?? \"\")\n args.push(`color:${ninfo.color};`)\n args.push(...msg.messages.slice(1))\n } else {\n args = [name, ...msg.messages, `+${diff}`]\n }\n\n // function consoleArgs(args: any[] = []): any[] {\n // return [\n // args\n // .filter((a) => typeof a === \"string\")\n // .map((a) => String(a))\n // .join(\" \"),\n // ...styles,\n // ...args.filter((a) => typeof a !== \"string\"),\n // ]\n // }\n\n switch (msg.level) {\n case LogLevel.info:\n if (opt.levelHelper) args[0] = `I|* ` + args[0]\n console.info(...args)\n break\n case LogLevel.warn:\n if (opt.levelHelper) args[0] = `W|** ` + args[0]\n console.warn(...args)\n break\n case LogLevel.error:\n if (opt.levelHelper) args[0] = `E|*** ` + args[0]\n console.error(...args)\n break\n default:\n if (opt.levelHelper) args[0] = `D| ` + args[0]\n console.debug(...args)\n break\n }\n }\n}\n\nexport function LoggerBrowserSetupDebugFactory(opt: LogHandlerOptions = {}) {\n const filter = opt.filter ?? localStorage.zeed ?? localStorage.debug\n\n /// The trick is, that console called directly provides a reference to the source code.\n /// For the regular implementation this information is lost. But this approach has other\n /// drawbacks, therefore only use it in the Browser when actively debugging.\n return function LoggerBrowserDebugFactory(\n name: string = \"\"\n ): LoggerInterface {\n let log: LoggerInterface\n\n const matches = useNamespaceFilter(filter)\n\n if (matches(name)) {\n let fixedArgs = []\n if (useColors) {\n const color = selectColor(name)\n fixedArgs.push(`%c${name.padEnd(16, \" \")}%c \\t%s`)\n fixedArgs.push(`color:${color}; ${styleBold}`)\n fixedArgs.push(styleDefault)\n } else {\n fixedArgs.push(`[${name}] \\t%s`)\n }\n\n // @ts-ignore\n // console.previous = {\n // debug: console.debug,\n // info: console.info,\n // warn: console.warn,\n // error: console.error,\n // assert: console.assert,\n // }\n\n log = console.debug.bind(console, ...fixedArgs) as LoggerInterface\n log.debug = console.debug.bind(console, ...fixedArgs)\n log.info = console.info.bind(console, ...fixedArgs)\n log.warn = console.warn.bind(console, ...fixedArgs)\n log.error = console.error.bind(console, ...fixedArgs)\n\n log.assert = console.assert.bind(console)\n\n log.assertEqual = function (value: any, expected: any, ...args: any[]) {\n let equal = deepEqual(value, expected)\n if (!equal) {\n log.assert(\n equal,\n `Assert did fail. Expected ${expected} got ${value}`,\n expected,\n value,\n ...args\n )\n }\n }\n\n log.assertNotEqual = function (\n value: any,\n expected: any,\n ...args: any[]\n ) {\n let equal = deepEqual(value, expected)\n if (equal) {\n log.assert(\n equal,\n `Assert did fail. Expected ${expected} not to be equal with ${value}`,\n expected,\n value,\n ...args\n )\n }\n }\n } else {\n const noop = () => {}\n log = noop as LoggerInterface\n log.debug = noop\n log.info = noop\n log.warn = noop\n log.error = noop\n\n log.assert = noop\n log.assertEqual = noop\n log.assertNotEqual = noop\n }\n\n log.extend = (subName: string) => {\n return LoggerBrowserDebugFactory(name ? `${name}:${subName}` : subName)\n }\n\n return log\n }\n}\n\n/** @deprecated This output is default for initial use of Logger in browser environments. */\nexport function activateConsoleDebug(opt: LogHandlerOptions = {}) {\n console.info(\"activateConsoleDebug is activated by default in browsers\")\n // Logger.setHandlers([LoggerBrowserHandler(opt)]) // Fallback for previously registered Loggers\n // Logger.setFactory(LoggerBrowserSetupDebugFactory(opt))\n}\n\n// let klass = console\n// let debug = console.debug.bind(window.console, klass.toString() + \": \")\n\n// debug(\"test\")\n// console.debug(\"test2\")\n\n// let dd\n// if (Function.prototype.bind) {\n// dd = Function.prototype.bind.call(console.log, console)\n// } else {\n// dd = function () {\n// Function.prototype.apply.call(console.log, console, arguments)\n// }\n// }\n\n// dd(\"dd\")\n\n// let c = 1\n// Object.defineProperty(window, \"log2\", {\n// get: () => {\n// return console.log.bind(\n// window.console,\n// \"%c[log]%c %s\" + c++,\n// \"color:red\",\n// \"\"\n// )\n// },\n// })\n\n// // usage:\n// log2(\"Back to the future\")\n// log2(\"Back to the future\")\n\n// let plog = new Proxy(console.debug, {\n// apply: function (target, that, args) {\n// target.apply(that, args)\n// // base.apply(that, args);\n// },\n// })\n\n// let cons = console.debug\n// let plog = (...args) => {\n// cons.apply(window.console, [\"|\", ...args])\n// }\n\n// plog(\"xxx\")\n\n// function a() {\n// var err = new Error()\n// var caller_line = err.stack.split(\"\\n\")[2]\n// var index = caller_line.indexOf(\"at \")\n// var clean = caller_line.slice(index + 2, caller_line.length)\n// clean = clean.replace(/\\?t=\\d+/, \"\").replace(\"@fs/\", \"\")\n// console.log(clean)\n// console.log(\n// \"http://localhost:8080/Users/dirk/work/viidoo/lib/src/browser/log-browser.ts:188:1 log-browser.ts:291:10\"\n// )\n// }\n// function b() {\n// a()\n// }\n// b()\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
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"],
|
|
4
|
-
"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"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/chunk-NZSIXVWC.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var __defProp=Object.defineProperty;var __defProps=Object.defineProperties;var __getOwnPropDescs=Object.getOwnPropertyDescriptors;var __getOwnPropSymbols=Object.getOwnPropertySymbols;var __hasOwnProp=Object.prototype.hasOwnProperty;var __propIsEnum=Object.prototype.propertyIsEnumerable;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:true,configurable:true,writable:true,value}):obj[key]=value;var __spreadValues=(a,b)=>{for(var prop in b||(b={}))if(__hasOwnProp.call(b,prop))__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b)){if(__propIsEnum.call(b,prop))__defNormalProp(a,prop,b[prop])}return a};var __spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b));var __name=(target,value)=>__defProp(target,"name",{value,configurable:true});var isObject=__name(obj=>obj&&typeof obj==="object","isObject");var isPrimitive=__name(obj=>Object(obj)!==obj,"isPrimitive");function deepEqual(a,b,hash=new WeakSet){if(a===b){return true}if(hash.has(b)){return true}if(!isPrimitive(b)){hash.add(b)}if(!(a instanceof Object)||!(b instanceof Object)){return false}if(a.constructor!==b.constructor){return false}if(a.length!==b.length){return false}for(let p in a){if(!a.hasOwnProperty(p)){continue}if(!b.hasOwnProperty(p)){return false}let aa=a[p];let bb=b[p];if(!deepEqual(aa,bb,hash)){return false}}for(let p in b){if(b.hasOwnProperty(p)&&!a.hasOwnProperty(p)){return false}}return true}__name(deepEqual,"deepEqual");function deepMerge(target,...sources){for(let source of sources){if(!isObject(target)){target={}}if(source==null)continue;Object.keys(source).forEach(key=>{const targetValue=target[key];const sourceValue=source[key];if(Array.isArray(targetValue)&&Array.isArray(sourceValue)){target[key]=targetValue.concat(sourceValue)}else if(isObject(targetValue)&&isObject(sourceValue)){target[key]=deepMerge(Object.assign({},targetValue),sourceValue)}else{target[key]=sourceValue}})}return target}__name(deepMerge,"deepMerge");function LoggerConsoleHandler(opt={}){const{level=void 0,filter=void 0,colors=true,levelHelper=false,nameBrackets=true,padding=16}=opt;const matchesNamespace=useNamespaceFilter(filter);const matchesLevel=useLevelFilter(level);return msg=>{if(!matchesLevel(msg.level))return;if(!matchesNamespace(msg.name))return;let name=msg.name?`[${msg.name}]`:"";switch(msg.level){case LogLevel.info:console.info(`I|* ${name}`,...msg.messages);break;case LogLevel.warn:console.warn(`W|** ${name}`,...msg.messages);break;case LogLevel.error:console.error(`E|*** ${name}`,...msg.messages);break;default:console.debug(`D| ${name}`,...msg.messages);break}}}__name(LoggerConsoleHandler,"LoggerConsoleHandler");var LogLevel;(function(LogLevel2){LogLevel2[LogLevel2["all"]=-1]="all";LogLevel2[LogLevel2["debug"]=0]="debug";LogLevel2[LogLevel2["info"]=1]="info";LogLevel2[LogLevel2["warn"]=2]="warn";LogLevel2[LogLevel2["error"]=3]="error";LogLevel2[LogLevel2["fatal"]=4]="fatal";LogLevel2[LogLevel2["off"]=Infinity]="off"})(LogLevel||(LogLevel={}));var LogLevelAlias={"*":-1,a:-1,all:-1,d:0,dbg:0,debug:0,i:1,inf:1,info:1,w:2,warn:2,warning:2,e:3,err:3,error:3,fatal:4,off:Infinity,"-":Infinity};function LoggerContext(prefix=""){let logHandlers=[LoggerConsoleHandler()];let logAssertLevel=2;let logCheckNamespace=__name(name=>true,"logCheckNamespace");let logLock=false;let logFactory=LoggerBaseFactory;function LoggerBaseFactory(name=""){log.extend=function(prefix2){return logFactory(name?`${name}:${prefix2}`:prefix2)};const emit=__name(msg=>{if(log.active===true){if(msg.level>=Logger2.level&&msg.level>=log.level){if(logCheckNamespace(name)){for(let handler of logHandlers){if(handler)handler(msg)}}}}},"emit");function log(...messages){emit({name,messages,level:0})}__name(log,"log");log.active=true;log.level=-1;log.debug=function(...messages){emit({name,messages,level:0})};log.info=function(...messages){emit({name,messages,level:1})};log.warn=function(...messages){emit({name,messages,level:2})};log.error=function(...messages){emit({name,messages,level:3})};log.assert=function(cond,...messages){if(!cond){if(typeof console!==void 0){if(console.assert){console.assert(cond,...messages)}else{console.error(`Assert did fail with: ${cond}`,...messages)}}emit({name,messages:messages||[`Assert did fail with: ${cond}`],level:logAssertLevel})}};log.assertEqual=function(value,expected,...args){let equal=deepEqual(value,expected);if(!equal){log.assert(equal,`Assert did fail. Expected ${expected} got ${value}`,expected,value,...args)}};log.assertNotEqual=function(value,expected,...args){let equal=deepEqual(value,expected);if(equal){log.assert(equal,`Assert did fail. Expected ${expected} not to be equal with ${value}`,expected,value,...args)}};return log}__name(LoggerBaseFactory,"LoggerBaseFactory");function Logger2(name=""){return logFactory(name)}__name(Logger2,"Logger");Logger2.registerHandler=function(handler){logHandlers.push(handler)};Logger2.setFilter=function(namespaces){logCheckNamespace=useNamespaceFilter(namespaces)};Logger2.setLock=(lock=true)=>logLock=lock;Logger2.setHandlers=function(handlers=[]){if(logFactory!==LoggerBaseFactory){logFactory=LoggerBaseFactory}if(logLock)return;logHandlers=[...handlers].filter(h=>typeof h==="function")};Logger2.level=-1;Logger2.setLogLevel=function(level=-1){if(logLock)return;Logger2.level=level};Logger2.setFactory=function(factory){if(logLock)return;logFactory=factory};return Logger2}__name(LoggerContext,"LoggerContext");function getNamespaceFilterString(defaultNamespaceFilter2){if(defaultNamespaceFilter2===true||defaultNamespaceFilter2==="true"||defaultNamespaceFilter2==="1"||typeof defaultNamespaceFilter2==="number"&&defaultNamespaceFilter2!==0){defaultNamespaceFilter2="*"}else if(defaultNamespaceFilter2===false||defaultNamespaceFilter2==="false"||defaultNamespaceFilter2===0||defaultNamespaceFilter2==="0"||defaultNamespaceFilter2==null||defaultNamespaceFilter2==="null"||defaultNamespaceFilter2==="undefined"){defaultNamespaceFilter2=""}else{defaultNamespaceFilter2=String(defaultNamespaceFilter2)}return defaultNamespaceFilter2}__name(getNamespaceFilterString,"getNamespaceFilterString");var _a,_b;var defaultNamespaceFilter=getNamespaceFilterString(typeof process!=="undefined"?(_a=process.env.ZEED)!=null?_a:process.env.DEBUG:typeof localStorage!=="undefined"?(_b=localStorage.zeed)!=null?_b:localStorage.debug:"*");function useNamespaceFilter(filter=defaultNamespaceFilter){let fn;let reject=[];let accept=[];if(!filter){fn=__name(function(name){return false},"fn")}else if(filter==="*"){fn=__name(function(name){return true},"fn")}else{let i;const split=filter.split(/[\s,]+/);const len=split.length;for(i=0;i<len;i++){if(!split[i]){continue}let template=split[i].replace(/\*/g,".*?");if(template[0]==="-"){reject.push(new RegExp("^"+template.substr(1)+"$"))}else{accept.push(new RegExp("^"+template+"$"))}}fn=__name(function(name){if(reject.length===0&&accept.length===0){return true}let i2,len2;for(i2=0,len2=reject.length;i2<len2;i2++){if(reject[i2].test(name)){return false}}for(i2=0,len2=accept.length;i2<len2;i2++){if(accept[i2].test(name)){return true}}return false},"fn")}fn.accept=accept;fn.reject=reject;fn.filter=filter;return fn}__name(useNamespaceFilter,"useNamespaceFilter");var _a2,_b2,_c,_d;var defaultLevelFilter=typeof process!=="undefined"?(_b2=(_a2=process.env.ZEED_LEVEL)!=null?_a2:process.env.LEVEL)!=null?_b2:process.env.DEBUG_LEVEL:typeof localStorage!=="undefined"?(_d=(_c=localStorage.zeed_level)!=null?_c:localStorage.level)!=null?_d:localStorage.debug_level:void 0;function useLevelFilter(filter=defaultLevelFilter){let filterLevel=LogLevel.all;if(typeof filter==="string"){const l=LogLevelAlias[filter.toLocaleLowerCase().trim()];if(l!=null)filterLevel=l}else if(typeof filter==="number"){filterLevel=filter}return level=>level>=filterLevel}__name(useLevelFilter,"useLevelFilter");function _global(){if(typeof self!=="undefined")return self;if(typeof window!=="undefined")return window;if(typeof global!=="undefined")return global;if(typeof globalThis!=="undefined")return globalThis;throw new Error("unable to locate global object")}__name(_global,"_global");function getGlobalContext(){let gcontext=_global();if(gcontext._zeedGlobal==null){gcontext._zeedGlobal={}}return gcontext._zeedGlobal}__name(getGlobalContext,"getGlobalContext");var globalLogger;function getLoggerContext(){let logger=LoggerContext();logger.setHandlers([LoggerConsoleHandler()]);return logger}__name(getLoggerContext,"getLoggerContext");try{let _global2=getGlobalContext();if(_global2!=null){if((_global2==null?void 0:_global2.logger)==null){globalLogger=getLoggerContext();_global2.logger=globalLogger}else{globalLogger=_global2.logger}}else{globalLogger=getLoggerContext()}}catch(e){globalLogger=getLoggerContext()}var Logger=globalLogger;var getTimestamp=__name(()=>typeof performance!=="undefined"?performance.now():new Date().getTime(),"getTimestamp");function formatMilliseconds(ms){return ms>999?(ms/1e3).toFixed(1)+"s":ms.toFixed(2)+"ms"}__name(formatMilliseconds,"formatMilliseconds");function parseDate(...dateCandidates){for(let dateCandidate of dateCandidates){if(dateCandidate instanceof Date){return dateCandidate}if(typeof dateCandidate==="string"){let date=null;if(dateCandidate.includes(":")){try{date=new Date(dateCandidate)}catch(err){}}if(!(date instanceof Date)){let m=/(\d\d\d\d)-(\d\d)-(\d\d)/.exec(dateCandidate);if(m){date=new Date(+m[1],+m[2]-1,+m[3],12,0)}}if(date instanceof Date){return date}}}}__name(parseDate,"parseDate");export{__spreadValues,__spreadProps,__name,isObject,isPrimitive,deepEqual,deepMerge,getNamespaceFilterString,useNamespaceFilter,useLevelFilter,LogLevel,LogLevelAlias,LoggerContext,LoggerConsoleHandler,getGlobalContext,Logger,getTimestamp,formatMilliseconds,parseDate};
|
|
2
|
-
//# sourceMappingURL=chunk-NZSIXVWC.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../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"],
|
|
4
|
-
"sourcesContent": ["// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nexport const isObject = (obj: any) => obj && typeof obj === \"object\"\nexport const isPrimitive = (obj: any) => Object(obj) !== obj\n\n// export function deepClone(obj) {\n// return cloneDeep(obj)\n// }\n\n// // https://stackoverflow.com/a/40294058/140927\n// // Handles cyclic references\n// export function deepClone(obj, hash = new WeakMap()) {\n// return cloneDeep(obj)\n//\n// // primitives\n// if (Object(obj) !== 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// if (obj instanceof Set) {\n// result = new Set(obj)\n// } else if (obj instanceof Map) {\n// result = new Map(Array.from(obj, ([key, val]) =>\n// [key, deepClone(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 (obj.constructor) {\n// result = new obj.constructor()\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]: deepClone(obj[key], hash),\n// })),\n// )\n// }\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\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.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 log.assert = function (cond: any, ...messages: any[]) {\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 =>\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"],
|
|
5
|
-
"mappings": "2yBAEO,GAAM,UAAW,OAAC,KAAa,KAAO,MAAO,OAAQ,SAApC,YACjB,GAAM,aAAc,OAAC,KAAa,OAAO,OAAS,IAA9B,eAsHpB,mBAAmB,EAAQ,EAAQ,KAAO,GAAI,SAAW,CAE9D,GAAI,IAAM,EAAG,CACX,MAAO,MAIT,GAAI,KAAK,IAAI,GAAI,CAEf,MAAO,MAGT,GAAI,CAAC,YAAY,GAAI,CACnB,KAAK,IAAI,GAIX,GAAI,CAAE,aAAa,UAAW,CAAE,aAAa,SAAS,CACpD,MAAO,OAKT,GAAI,EAAE,cAAgB,EAAE,YAAa,CACnC,MAAO,OAIT,GAAI,EAAE,SAAW,EAAE,OAAQ,CACzB,MAAO,OAGT,OAAS,KAAK,GAAG,CAEf,GAAI,CAAC,EAAE,eAAe,GAAI,CACxB,SAIF,GAAI,CAAC,EAAE,eAAe,GAAI,CACxB,MAAO,OAGT,GAAI,IAAK,EAAE,GACX,GAAI,IAAK,EAAE,GAeX,GAAI,CAAC,UAAU,GAAI,GAAI,MAAO,CAC5B,MAAO,QAKX,OAAS,KAAK,GAAG,CACf,GAAI,EAAE,eAAe,IAAM,CAAC,EAAE,eAAe,GAAI,CAC/C,MAAO,QAIX,MAAO,MAvEO,8BA0ET,mBAAmB,UAAgB,QAAgB,CACxD,OAAS,UAAU,SAAS,CAC1B,GAAI,CAAC,SAAS,QAAS,CACrB,OAAS,GAGX,GAAI,QAAU,KAAM,SAEpB,OAAO,KAAK,QAAQ,QAAQ,AAAC,KAAQ,CACnC,KAAM,aAAc,OAAO,KAC3B,KAAM,aAAc,OAAO,KAE3B,GAAI,MAAM,QAAQ,cAAgB,MAAM,QAAQ,aAAc,CAC5D,OAAO,KAAO,YAAY,OAAO,qBACxB,SAAS,cAAgB,SAAS,aAAc,CACzD,OAAO,KAAO,UAAU,OAAO,OAAO,GAAI,aAAc,iBACnD,CACL,OAAO,KAAO,eAKpB,MAAO,QAtBO,8BCvLT,8BAA8B,IAAyB,GAAgB,CAC5E,KAAM,CACJ,MAAQ,OACR,OAAS,OACT,OAAS,KACT,YAAc,MACd,aAAe,KACf,QAAU,IACR,IACJ,KAAM,kBAAmB,mBAAmB,QAC5C,KAAM,cAAe,eAAe,OACpC,MAAO,AAAC,MAAoB,CAC1B,GAAI,CAAC,aAAa,IAAI,OAAQ,OAC9B,GAAI,CAAC,iBAAiB,IAAI,MAAO,OACjC,GAAI,MAAO,IAAI,KAAO,IAAI,IAAI,QAAU,GACxC,OAAQ,IAAI,WACL,UAAS,KACZ,QAAQ,KAAK,SAAS,OAAQ,GAAG,IAAI,UACrC,UACG,UAAS,KACZ,QAAQ,KAAK,SAAS,OAAQ,GAAG,IAAI,UACrC,UACG,UAAS,MACZ,QAAQ,MAAM,SAAS,OAAQ,GAAG,IAAI,UACtC,cAEA,QAAQ,MAAM,SAAS,OAAQ,GAAG,IAAI,UACtC,QA3BQ,oDCNT,GAAK,UAAL,UAAK,UAAL,CACL,2BAAM,IAAN,MACA,6BAAQ,GAAR,QACA,sCACA,sCACA,wCACA,wCACA,2BAAM,UAAN,QAPU,yBAUL,GAAM,eAA0C,CACrD,IAAK,GACL,EAAG,GACH,IAAK,GACL,EAAG,EACH,IAAK,EACL,MAAO,EACP,EAAG,EACH,IAAK,EACL,KAAM,EACN,EAAG,EACH,KAAM,EACN,QAAS,EACT,EAAG,EACH,IAAK,EACL,MAAO,EACP,MAAO,EACP,IAAK,SACL,IAAK,UAgEA,uBAAuB,OAAiB,GAA4B,CACzE,GAAI,aAA4B,CAAC,wBACjC,GAAI,gBAA2B,EAC/B,GAAI,mBAAoB,OAAC,MAAiB,KAAlB,qBACxB,GAAI,SAAU,MACd,GAAI,YAAa,kBAEjB,2BAA2B,KAAe,GAAqB,CAC7D,IAAI,OAAS,SAAU,QAAiC,CACtD,MAAO,YAAW,KAAO,GAAG,QAAQ,UAAW,UAGjD,KAAM,MAAO,OAAC,KAAoB,CAChC,GAAI,IAAI,SAAW,KAAM,CACvB,GAAI,IAAI,OAAS,QAAO,OAAS,IAAI,OAAS,IAAI,MAAO,CACvD,GAAI,kBAAkB,MAAO,CAC3B,OAAS,WAAW,aAAa,CAC/B,GAAI,QAAS,QAAQ,UALlB,QAYb,gBAAgB,SAAiB,CAC/B,KAAK,CACH,KACA,SACA,MAAO,IAJF,kBAQT,IAAI,OAAS,KACb,IAAI,MAAQ,GAEZ,IAAI,MAAQ,YAAa,SAAiB,CACxC,KAAK,CACH,KACA,SACA,MAAO,KAIX,IAAI,KAAO,YAAa,SAAiB,CACvC,KAAK,CACH,KACA,SACA,MAAO,KAIX,IAAI,KAAO,YAAa,SAAiB,CACvC,KAAK,CACH,KACA,SACA,MAAO,KAIX,IAAI,MAAQ,YAAa,SAAiB,CACxC,KAAK,CACH,KACA,SACA,MAAO,KAQX,IAAI,OAAS,SAAU,QAAc,SAAiB,CACpD,GAAI,CAAC,KAAM,CACT,GAAI,MAAO,WAAY,OAAW,CAChC,GAAI,QAAQ,OAAQ,CAElB,QAAQ,OAAO,KAAM,GAAG,cACnB,CACL,QAAQ,MAAM,yBAAyB,OAAQ,GAAG,WAGtD,KAAK,CACH,KACA,SAAU,UAAY,CAAC,yBAAyB,QAChD,MAAO,mBAYb,IAAI,YAAc,SAAU,MAAY,YAAkB,KAAa,CACrE,GAAI,OAAQ,UAAU,MAAO,UAC7B,GAAI,CAAC,MAAO,CACV,IAAI,OACF,MACA,6BAA6B,gBAAgB,QAC7C,SACA,MACA,GAAG,QAOT,IAAI,eAAiB,SAAU,MAAY,YAAkB,KAAa,CACxE,GAAI,OAAQ,UAAU,MAAO,UAC7B,GAAI,MAAO,CACT,IAAI,OACF,MACA,6BAA6B,iCAAiC,QAC9D,SACA,MACA,GAAG,QAOT,MAAO,KAvHA,8CA0HT,iBAAgB,KAAe,GAAqB,CAClD,MAAO,YAAW,MADX,yBAIT,QAAO,gBAAkB,SAAU,QAAqB,CACtD,YAAY,KAAK,UAGnB,QAAO,UAAY,SAAU,WAAoB,CAC/C,kBAAoB,mBAAmB,aAGzC,QAAO,QAAU,CAAC,KAAgB,OAAU,QAAU,KAEtD,QAAO,YAAc,SAAU,SAAyB,GAAI,CAC1D,GAAI,aAAe,kBAAmB,CACpC,WAAa,kBAEf,GAAI,QAAS,OACb,YAAc,CAAC,GAAG,UAAU,OAAO,AAAC,GAAM,MAAO,KAAM,aAGzD,QAAO,MAAQ,GAGf,QAAO,YAAc,SAAU,MAAkB,GAAc,CAC7D,GAAI,QAAS,OACb,QAAO,MAAQ,OAGjB,QAAO,WAAa,SAClB,QACM,CACN,GAAI,QAAS,OACb,WAAa,SAGf,MAAO,SAtKO,sCCvFT,kCAAkC,wBAAqC,CAC5E,GACE,0BAA2B,MAC3B,0BAA2B,QAC3B,0BAA2B,KAC1B,MAAO,2BAA2B,UAAY,0BAA2B,EAC1E,CACA,wBAAyB,YAEzB,0BAA2B,OAC3B,0BAA2B,SAC3B,0BAA2B,GAC3B,0BAA2B,KAC3B,yBAA0B,MAC1B,0BAA2B,QAC3B,0BAA2B,YAC3B,CACA,wBAAyB,OACpB,CACL,wBAAyB,OAAO,yBAElC,MAAO,yBArBO,4DAXhB,UAmCA,GAAM,wBAAiC,yBACrC,MAAO,WAAY,YACf,YAAQ,IAAI,OAAZ,QAAoB,QAAQ,IAAI,MAChC,MAAO,gBAAiB,YACxB,iBAAa,OAAb,QAAqB,aAAa,MAClC,KASC,4BACL,OAAiB,uBACA,CACjB,GAAI,IACJ,GAAI,QAAS,GACb,GAAI,QAAS,GAEb,GAAI,CAAC,OAAQ,CACX,GAAK,gBAAU,KAAc,CAC3B,MAAO,QADJ,cAGI,SAAW,IAAK,CACzB,GAAK,gBAAU,KAAc,CAC3B,MAAO,OADJ,UAGA,CACL,GAAI,GACJ,KAAM,OAAQ,OAAO,MAAM,UAC3B,KAAM,KAAM,MAAM,OAClB,IAAK,EAAI,EAAG,EAAI,IAAK,IAAK,CACxB,GAAI,CAAC,MAAM,GAAI,CAEb,SAEF,GAAI,UAAW,MAAM,GAAG,QAAQ,MAAO,OACvC,GAAI,SAAS,KAAO,IAAK,CACvB,OAAO,KAAK,GAAI,QAAO,IAAM,SAAS,OAAO,GAAK,UAC7C,CACL,OAAO,KAAK,GAAI,QAAO,IAAM,SAAW,OAI5C,GAAK,gBAAU,KAAc,CAC3B,GAAI,OAAO,SAAW,GAAK,OAAO,SAAW,EAAG,CAC9C,MAAO,MAET,GAAI,IAAG,KACP,IAAK,GAAI,EAAG,KAAM,OAAO,OAAQ,GAAI,KAAK,KAAK,CAC7C,GAAI,OAAO,IAAG,KAAK,MAAO,CACxB,MAAO,QAGX,IAAK,GAAI,EAAG,KAAM,OAAO,OAAQ,GAAI,KAAK,KAAK,CAC7C,GAAI,OAAO,IAAG,KAAK,MAAO,CACxB,MAAO,OAGX,MAAO,QAfJ,MAkBP,GAAG,OAAS,OACZ,GAAG,OAAS,OACZ,GAAG,OAAS,OACZ,MAAO,IArDO,gDAjDhB,kBAyGA,GAAM,oBACJ,MAAO,WAAY,YACf,kBAAQ,IAAI,aAAZ,SAA0B,QAAQ,IAAI,QAAtC,SAA+C,QAAQ,IAAI,YAC3D,MAAO,gBAAiB,YACxB,qBAAa,aAAb,QAA2B,aAAa,QAAxC,QAAiD,aAAa,YAC9D,OAEC,wBACL,OAA0B,mBACI,CAC9B,GAAI,aAAwB,SAAS,IACrC,GAAI,MAAO,UAAW,SAAU,CAC9B,KAAM,GAAI,cAAc,OAAO,oBAAoB,QACnD,GAAI,GAAK,KAAM,YAAc,UACpB,MAAO,UAAW,SAAU,CACrC,YAAc,OAEhB,MAAO,AAAC,QAAU,OAAS,YAVb,wCCtGhB,kBAA0C,CACxC,GAAI,MAAO,QAAS,YAAa,MAAO,MACxC,GAAI,MAAO,UAAW,YAAa,MAAO,QAC1C,GAAI,MAAO,UAAW,YAAa,MAAO,QAC1C,GAAI,MAAO,cAAe,YACxB,MAAO,YACT,KAAM,IAAI,OAAM,kCANT,0BASF,2BAA+C,CACpD,GAAI,UAAW,UACf,GAAI,SAAS,aAAe,KAAM,CAChC,SAAS,YAAc,GAEzB,MAAO,UAAS,YALF,4CCXhB,GAAI,cAQJ,2BAA4B,CAC1B,GAAI,QAAS,gBACb,OAAO,YAAY,CAAC,yBACpB,MAAO,QAHA,4CAMT,GAAI,CACF,GAAI,UAAU,mBACd,GAAI,UAAW,KAAM,CACnB,GAAI,gCAAS,SAAU,KAAM,CAC3B,aAAe,mBACf,SAAQ,OAAS,iBACZ,CACL,aAAe,SAAQ,YAEpB,CACL,aAAe,0BAEV,EAAP,CACA,aAAe,mBAMV,GAAM,QAAS,aCpCf,GAAM,cAAe,WAE1B,MAAO,eAAgB,YAAc,YAAY,MAAQ,GAAI,QAAO,UAF1C,gBAIrB,4BAA4B,GAAoB,CACrD,MAAO,IAAK,IAAO,IAAK,KAAM,QAAQ,GAAK,IAAM,GAAG,QAAQ,GAAK,KADnD,gDAIT,sBACF,eACe,CAClB,OAAS,iBAAiB,gBAAgB,CACxC,GAAI,wBAAyB,MAAM,CACjC,MAAO,eAET,GAAI,MAAO,iBAAkB,SAAU,CACrC,GAAI,MAAO,KACX,GAAI,cAAc,SAAS,KAAM,CAC/B,GAAI,CACF,KAAO,GAAI,MAAK,qBACT,IAAP,GAEJ,GAAI,CAAE,gBAAgB,OAAO,CAC3B,GAAI,GAAI,2BAA2B,KAAK,eACxC,GAAI,EAAG,CACL,KAAO,GAAI,MAAK,CAAC,EAAE,GAAI,CAAC,EAAE,GAAK,EAAG,CAAC,EAAE,GAAI,GAAI,IAGjD,GAAI,eAAgB,MAAM,CACxB,MAAO,SArBC",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|