zeed 0.7.82 → 0.7.86

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.
@@ -1,3 +1,3 @@
1
- export { B as BinInput, bd as Channel, bc as ChannelMessageEvent, bq as CryptoEncoder, W as Currency, T as CurrencyInput, a6 as DAY_MS, a8 as Day, a7 as DayInput, bj as DefaultListener, b0 as Disposable, a$ as Disposer, a_ as DisposerFunction, bk as Emitter, bh as EmitterAllHandler, bg as EmitterHandler, bo as Encoder, c9 as Json, bp as JsonEncoder, bi as ListenerSignature, be as LocalChannel, b8 as LoggerConsoleHandler, c2 as MemStorage, c1 as MemStorageOptions, bt as Message, br as MessageAction, bx as MessageDefinitions, by as MessageHub, bs as MessageResult, bv as MessagesDefaultMethods, bw as MessagesMethods, bu as MessagesOptions, bD as Mutex, cb as NestedArray, ca as ObjectStorage, bB as PubSub, R as RenderMessagesOptions, X as RoundingMode, c0 as SerialQueue, ao as SortableItem, y as Uint8ArrayToJson, U as Uint8ArrayToString, aL as arrayEmptyInPlace, aJ as arrayFilterInPlace, aE as arrayFlatten, aF as arrayIntersection, aO as arrayIsEqual, aT as arrayMax, aU as arrayMin, aC as arrayMinus, aS as arrayRandomElement, aH as arrayRemoveElement, aI as arraySetElement, aQ as arrayShuffle, aR as arrayShuffleForce, aP as arrayShuffleInPlace, aM as arraySorted, aN as arraySortedNumbers, aG as arraySymmetricDifference, aK as arrayToggleInPlace, aD as arrayUnion, aB as arrayUnique, b1 as callDisposer, aA as cloneObject, ak as cmp, aj as composeOrderby, aV as createArray, bE as createMutex, bz as createPromiseProxy, c as csv, V as currency, ab as day, c4 as debounce, g as decodeBase16, i as decodeBase32, k as decodeBase58, m as decodeBase62, o as decodeBase64, b as decrypt, aY as deepEqual, aZ as deepMerge, a as deriveKeyPbkdf2, bO as detect, d as digest, az as empty, f as encodeBase16, h as encodeBase32, j as encodeBase58, l as encodeBase62, n as encodeBase64, av as encodeQuery, e as encrypt, aq as endSortWeight, w as equalBinary, ac as escapeHTML, an as escapeRegExp, bf as fakeWorkerPair, bG as fetchBasic, bH as fetchJson, bI as fetchOptionsFormURLEncoded, bJ as fetchOptionsJson, bK as fetchText, S as fixBrokenUth8String, a9 as forEachDay, P as formatMessages, c7 as formatMilliseconds, D as fromCamelCase, bN as getGlobal, b6 as getGlobalContext, bl as getGlobalEmitter, b9 as getNamespaceFilterString, bM as getNavigator, c6 as getTimestamp, bL as getWindow, bF as httpMethod, bT as immediate, bP as isBrowser, Z as isEven, Y as isHalf, b7 as isLocalHost, aW as isObject, aX as isPrimitive, b_ as isPromise, bX as isTimeout, ae as jsonStringify, x as jsonToUint8Array, ay as last, bn as lazyListener, at as linkifyPlainText, bm as messages, ar as moveSortWeight, c8 as parseDate, ai as parseOrderby, aw as parseQuery, bQ as platform, b$ as promisify, cg as qid, af as randomBoolean, ah as randomFloat, ag as randomInt, r as randomUint8Array, Q as renderMessages, $ as roundDown, a2 as roundHalfAwayFromZero, a3 as roundHalfDown, a4 as roundHalfEven, a1 as roundHalfOdd, a5 as roundHalfTowardsZero, a0 as roundHalfUp, _ as roundUp, ax as size, bS as sleep, as as sortedItems, al as sortedOrderby, ap as startSortWeight, E as stringToBoolean, G as stringToFloat, F as stringToInteger, s as stringToUInt8Array, cj as suid, ci as suidBytes, cl as suidBytesDate, ck as suidDate, c3 as throttle, c5 as throttleAnimationFrame, bV as timeout, bU as timeoutReached, bW as timoutError, q as toBase64, v as toBase64Url, O as toBool, z as toCamelCase, A as toCapitalize, C as toCapitalizeWords, L as toFloat, p as toHex, au as toHumanReadableUrl, M as toInt, N as toString, t as toUint8Array, am as toValidFilename, aa as today, bY as tryTimeout, cf as uname, ad as unescapeHTML, u as useBase, b2 as useDisposer, b5 as useEventListener, bR as useExitHandler, b4 as useInterval, bb as useLevelFilter, bA as useMessageHub, ba as useNamespaceFilter, bC as usePubSub, b3 as useTimeout, cd as uuid, ce as uuidB32, cc as uuidBytes, ch as uuidv4, H as valueToBoolean, J as valueToFloat, I as valueToInteger, K as valueToString, bZ as waitOn } from './uuid-3a56498e';
1
+ export { M as BinInput, be as Channel, bd as ChannelMessageEvent, br as CryptoEncoder, af as Currency, ad as CurrencyInput, ar as DAY_MS, at as Day, as as DayInput, bk as DefaultListener, b1 as Disposable, b0 as Disposer, a$ as DisposerFunction, bl as Emitter, bi as EmitterAllHandler, bh as EmitterHandler, bp as Encoder, cc as Json, bq as JsonEncoder, bj as ListenerSignature, bf as LocalChannel, b9 as LoggerConsoleHandler, c5 as MemStorage, c4 as MemStorageOptions, bu as Message, bs as MessageAction, by as MessageDefinitions, bz as MessageHub, bt as MessageResult, bw as MessagesDefaultMethods, bx as MessagesMethods, bv as MessagesOptions, bE as Mutex, ce as NestedArray, cd as ObjectStorage, bC as PubSub, c2 as QueueTask, a9 as RenderMessagesOptions, ag as RoundingMode, c3 as SerialQueue, aO 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, aH as between, b2 as callDisposer, a_ as cloneObject, aK as cmp, aJ as composeOrderby, A as createArray, bF as createMutex, bA as createPromiseProxy, c as csv, ae as currency, aw as day, c7 as debounce, D as decodeBase16, F as decodeBase32, H as decodeBase58, J as decodeBase62, L as decodeBase64, b as decrypt, az as deepEqual, aA as deepMerge, a as deriveKeyPbkdf2, bP as detect, d as digest, aZ as empty, C as encodeBase16, E as encodeBase32, G as encodeBase58, I as encodeBase62, K as encodeBase64, aV as encodeQuery, e as encrypt, aQ as endSortWeight, S as equalBinary, aB as escapeHTML, aN as escapeRegExp, bg as fakeWorkerPair, bH as fetchBasic, bI as fetchJson, bJ as fetchOptionsFormURLEncoded, bK as fetchOptionsJson, bL as fetchText, ac as fixBrokenUth8String, au as forEachDay, aa as formatMessages, ca as formatMilliseconds, Z as fromCamelCase, bO as getGlobal, b7 as getGlobalContext, bm as getGlobalEmitter, ba as getNamespaceFilterString, bN as getNavigator, c9 as getTimestamp, bM as getWindow, bG as httpMethod, bV as immediate, bQ as isBrowser, ai as isEven, ah as isHalf, b8 as isLocalHost, ax as isObject, ay as isPrimitive, c0 as isPromise, bZ as isTimeout, aD as jsonStringify, T as jsonToUint8Array, aY as last, bo as lazyListener, aT as linkifyPlainText, bn as messages, aR as moveSortWeight, cb as parseDate, aI as parseOrderby, aW as parseQuery, bR as platform, c1 as promisify, cj as qid, aE as randomBoolean, aG as randomFloat, aF 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, aX as size, bU as sleep, aS as sortedItems, aL as sortedOrderby, aP as startSortWeight, _ as stringToBoolean, a0 as stringToFloat, $ as stringToInteger, N as stringToUInt8Array, cm as suid, cl as suidBytes, co as suidBytesDate, cn as suidDate, c6 as throttle, c8 as throttleAnimationFrame, bX as timeout, bW as timeoutReached, bY 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, aU as toHumanReadableUrl, a6 as toInt, a7 as toString, O as toUint8Array, aM as toValidFilename, av as today, b_ as tryTimeout, ci as uname, aC as unescapeHTML, B as useBase, b3 as useDisposer, b6 as useEventListener, bS as useExitHandler, b5 as useInterval, bc as useLevelFilter, bB as useMessageHub, bb as useNamespaceFilter, bT as usePool, bD as usePubSub, b4 as useTimeout, cg as uuid, ch as uuidB32, cf as uuidBytes, ck as uuidv4, a1 as valueToBoolean, a3 as valueToFloat, a2 as valueToInteger, a4 as valueToString, b$ as waitOn } from './uuid-225a32e5';
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, _ as _dirname, 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 './path-5976780b';
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-f9f40183';
@@ -1,2 +1,2 @@
1
- import{FileStorage,LoggerFileHandler,LoggerNodeHandler,_dirname,colorString,colorStringList,getSourceLocation,getSourceLocationByPrecedingPattern,getStack,getStackLlocationList,isTTY,loggerStackTraceDebug,setupEnv,stringToPath,toPath,valueToPath}from"./chunk-43KBTXPD.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,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,usePubSub,useTimeout,uuid,uuidB32,uuidBytes,uuidv4,valueToBoolean,valueToFloat,valueToInteger,valueToString,waitOn}from"./chunk-YDFVWINQ.js";import{LogLevel,LogLevelAlias,Logger,LoggerConsoleHandler,LoggerContext,deepEqual,deepMerge,formatMilliseconds,getGlobalContext,getNamespaceFilterString,getTimestamp,isObject,isPrimitive,parseDate,useLevelFilter,useNamespaceFilter}from"./chunk-VC3ZJA4S.js";export{Channel,CryptoEncoder,Currency,DAY_MS,Day,Emitter,FileStorage,JsonEncoder,LocalChannel,LogLevel,LogLevelAlias,Logger,LoggerConsoleHandler,LoggerContext,LoggerFileHandler,LoggerNodeHandler,MemStorage,PubSub,SerialQueue,Uint8ArrayToJson,Uint8ArrayToString,_dirname,arrayEmptyInPlace,arrayFilterInPlace,arrayFlatten,arrayIntersection,arrayIsEqual,arrayMax,arrayMin,arrayMinus,arrayRandomElement,arrayRemoveElement,arraySetElement,arrayShuffle,arrayShuffleForce,arrayShuffleInPlace,arraySorted,arraySortedNumbers,arraySymmetricDifference,arrayToggleInPlace,arrayUnion,arrayUnique,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,isBrowser,isEven,isHalf,isLocalHost,isObject,isPrimitive,isPromise,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,usePubSub,useTimeout,uuid,uuidB32,uuidBytes,uuidv4,valueToBoolean,valueToFloat,valueToInteger,valueToPath,valueToString,waitOn};
1
+ import{FileStorage,LoggerFileHandler,LoggerNodeHandler,colorString,colorStringList,getSourceLocation,getSourceLocationByPrecedingPattern,getStack,getStackLlocationList,isTTY,loggerStackTraceDebug,setupEnv,stringToPath,toPath,valueToPath}from"./chunk-LSYZR2RW.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-KTPVWZUV.js";import{LogLevel,LogLevelAlias,Logger,LoggerConsoleHandler,LoggerContext,deepEqual,deepMerge,formatMilliseconds,getGlobalContext,getNamespaceFilterString,getTimestamp,isObject,isPrimitive,parseDate,useLevelFilter,useNamespaceFilter}from"./chunk-NZSIXVWC.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,isBrowser,isEven,isHalf,isLocalHost,isObject,isPrimitive,isPromise,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
2
  //# sourceMappingURL=index.node.js.map
@@ -1,4 +1,4 @@
1
- import { c9 as Json, ca as ObjectStorage } from './uuid-3a56498e';
1
+ import { cc as Json, cd as ObjectStorage } from './uuid-225a32e5';
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;
@@ -1,4 +1,4 @@
1
- import { c9 as Json, ca as ObjectStorage } from './uuid-3a56498e';
1
+ import { cc as Json, cd as ObjectStorage } from './uuid-225a32e5';
2
2
  import { g as LogHandlerOptions, c as LogMessage, d as LogHandler } from './log-7206a2fe';
3
3
 
4
4
  declare type csvOptions = {
@@ -73,6 +73,4 @@ declare function getSourceLocation(level?: number, stripCwd?: boolean): string;
73
73
  declare function getStack(): string;
74
74
  declare function getSourceLocationByPrecedingPattern(patterns: string[], stripCwd?: boolean): string;
75
75
 
76
- declare const _dirname: string;
77
-
78
- export { FileStorageOptions as F, LoggerFileHandler as L, _dirname as _, setupEnv as a, FileStorage as b, colorString as c, colorStringList as d, LoggerNodeHandler as e, getSourceLocation as f, getStackLlocationList as g, getStack as h, isTTY as i, getSourceLocationByPrecedingPattern as j, loggerStackTraceDebug as l, stringToPath as s, toPath as t, valueToPath as v };
76
+ export { FileStorageOptions as F, LoggerFileHandler as L, setupEnv as a, FileStorage as b, colorString as c, colorStringList as d, LoggerNodeHandler as e, getSourceLocation as f, getStackLlocationList as g, getStack as h, isTTY as i, getSourceLocationByPrecedingPattern as j, loggerStackTraceDebug as l, stringToPath as s, toPath as t, valueToPath as v };
@@ -23,6 +23,43 @@ declare function decrypt(data: Uint8Array, key: CryptoKey): Promise<Uint8Array>;
23
23
 
24
24
  declare function csv(data: any[], headerRow: string[]): string;
25
25
 
26
+ declare type Json = string | number | boolean | null | {
27
+ [property: string]: Json;
28
+ } | Json[];
29
+ interface ObjectStorage<T = any> {
30
+ setItem(key: string, value: T): void;
31
+ getItem(key: string): T | undefined;
32
+ removeItem(key: string): void;
33
+ clear(): void;
34
+ allKeys(): string[];
35
+ }
36
+ declare type NestedArray<T> = T | Array<NestedArray<T>>;
37
+
38
+ declare function arrayUnique<T>(x: T[]): T[];
39
+ declare function arrayMinus<T>(x: T[], y: T[]): T[];
40
+ declare function arrayUnion<T>(...a: T[][]): T[];
41
+ /** `[1,[2,3]]` becomes `[1,2,3]` */
42
+ declare function arrayFlatten<T>(...list: NestedArray<T>[]): T[];
43
+ declare function arrayIntersection<T>(x: T[], y: T[]): T[];
44
+ declare function arraySymmetricDifference<T>(x: T[], y: T[]): T[];
45
+ declare function arrayRemoveElement<T>(arr: T[], el: T): T[];
46
+ /** Only have it once in the set */
47
+ declare function arraySetElement<T>(arr: T[], el: T): T[];
48
+ declare function arrayFilterInPlace<T>(array: T[], fn: (el: T) => boolean): T[];
49
+ declare function arrayToggleInPlace<T>(array: T[], el: T): T[];
50
+ declare function arrayEmptyInPlace<T>(array: T[]): T[];
51
+ declare function arraySorted<T>(arr: Iterable<T> | ArrayLike<T>, cond?: ((a: T, b: T) => number) | undefined): T[];
52
+ declare function arraySortedNumbers(arr: number[]): number[];
53
+ declare function arrayIsEqual<T>(array1: T[], array2: T[]): boolean;
54
+ declare function arrayShuffleInPlace<T>(array: T[]): T[];
55
+ declare function arrayShuffle<T>(array: T[]): T[];
56
+ /** Randomly shuffle the order of the array's elements. Force to have a different order if array has more than one element. */
57
+ declare function arrayShuffleForce<T>(array: T[]): T[];
58
+ declare function arrayRandomElement<T>(array: T[]): T;
59
+ declare function arrayMax<T>(...array: NestedArray<T>[]): T;
60
+ declare function arrayMin<T>(...array: NestedArray<T>[]): T;
61
+ declare function createArray<T>(size?: number, item?: T | ((index: number) => T)): T[];
62
+
26
63
  declare function useBase(alphaOrBase: string | number): {
27
64
  encode: (source: BinInput, padToLength?: number) => string;
28
65
  decode: (source: string, padToLength?: number) => Uint8Array;
@@ -156,6 +193,11 @@ declare function forEachDay(from: DayInput, to: DayInput, handler: (date: Day) =
156
193
  declare function today(): Day;
157
194
  declare function day(days?: DayInput): Day;
158
195
 
196
+ declare const isObject: (obj: any) => any;
197
+ declare const isPrimitive: (obj: any) => boolean;
198
+ declare function deepEqual(a: any, b: any, hash?: WeakSet<object>): boolean;
199
+ declare function deepMerge(target: any, ...sources: any[]): any;
200
+
159
201
  declare const escapeHTML: (s: string) => string;
160
202
  declare const unescapeHTML: (s: string) => string;
161
203
 
@@ -169,6 +211,7 @@ declare function randomBoolean(bias?: number): 0 | 1;
169
211
  /** max is not included, min is included */
170
212
  declare function randomInt(max?: number, min?: number): number;
171
213
  declare function randomFloat(max?: number, min?: number): number;
214
+ declare function between(min: number, value: number, max: number): number;
172
215
 
173
216
  declare function parseOrderby(value?: string): {
174
217
  field: string;
@@ -202,48 +245,6 @@ declare function last<T>(array?: T[]): T | undefined;
202
245
  declare function empty(value: any): boolean;
203
246
  declare function cloneObject<T>(obj: T): T;
204
247
 
205
- declare type Json = string | number | boolean | null | {
206
- [property: string]: Json;
207
- } | Json[];
208
- interface ObjectStorage<T = any> {
209
- setItem(key: string, value: T): void;
210
- getItem(key: string): T | undefined;
211
- removeItem(key: string): void;
212
- clear(): void;
213
- allKeys(): string[];
214
- }
215
- declare type NestedArray<T> = T | Array<NestedArray<T>>;
216
-
217
- declare function arrayUnique<T>(x: T[]): T[];
218
- declare function arrayMinus<T>(x: T[], y: T[]): T[];
219
- declare function arrayUnion<T>(...a: T[][]): T[];
220
- /** `[1,[2,3]]` becomes `[1,2,3]` */
221
- declare function arrayFlatten<T>(...list: NestedArray<T>[]): T[];
222
- declare function arrayIntersection<T>(x: T[], y: T[]): T[];
223
- declare function arraySymmetricDifference<T>(x: T[], y: T[]): T[];
224
- declare function arrayRemoveElement<T>(arr: T[], el: T): T[];
225
- /** Only have it once in the set */
226
- declare function arraySetElement<T>(arr: T[], el: T): T[];
227
- declare function arrayFilterInPlace<T>(array: T[], fn: (el: T) => boolean): T[];
228
- declare function arrayToggleInPlace<T>(array: T[], el: T): T[];
229
- declare function arrayEmptyInPlace<T>(array: T[]): T[];
230
- declare function arraySorted<T>(arr: Iterable<T> | ArrayLike<T>, cond?: ((a: T, b: T) => number) | undefined): T[];
231
- declare function arraySortedNumbers(arr: number[]): number[];
232
- declare function arrayIsEqual<T>(array1: T[], array2: T[]): boolean;
233
- declare function arrayShuffleInPlace<T>(array: T[]): T[];
234
- declare function arrayShuffle<T>(array: T[]): T[];
235
- /** Randomly shuffle the order of the array's elements. Force to have a different order if array has more than one element. */
236
- declare function arrayShuffleForce<T>(array: T[]): T[];
237
- declare function arrayRandomElement<T>(array: T[]): T;
238
- declare function arrayMax<T>(...array: NestedArray<T>[]): T;
239
- declare function arrayMin<T>(...array: NestedArray<T>[]): T;
240
- declare function createArray<T>(size?: number, item?: T | ((index: number) => T)): T[];
241
-
242
- declare const isObject: (obj: any) => any;
243
- declare const isPrimitive: (obj: any) => boolean;
244
- declare function deepEqual(a: any, b: any, hash?: WeakSet<object>): boolean;
245
- declare function deepMerge(target: any, ...sources: any[]): any;
246
-
247
248
  declare type DisposerFunction = () => void | Promise<void>;
248
249
  declare type Disposer = DisposerFunction | {
249
250
  dispose?: Function | Promise<unknown>;
@@ -528,6 +529,14 @@ declare const platform: {
528
529
  */
529
530
  declare function useExitHandler(handler: () => void): void;
530
531
 
532
+ interface PoolConfig {
533
+ maxParallel?: number;
534
+ }
535
+ declare function usePool<T = any>(config?: PoolConfig): {
536
+ cancel: (id: string) => void;
537
+ enqueue(id: string, task: QueueTask<T>): () => void;
538
+ };
539
+
531
540
  /** Sleep for `milliSeconds`. Example 1s: `await sleep(1000)` */
532
541
  declare function sleep(milliSeconds: number): Promise<void>;
533
542
  declare function immediate(): Promise<void>;
@@ -620,4 +629,4 @@ declare function suid(): string;
620
629
  declare function suidDate(id: string): Date;
621
630
  declare function suidBytesDate(id: Uint8Array): Date;
622
631
 
623
- export { roundDown as $, toCapitalize as A, BinInput as B, toCapitalizeWords as C, fromCamelCase as D, stringToBoolean as E, stringToInteger as F, stringToFloat as G, valueToBoolean as H, valueToInteger as I, valueToFloat as J, valueToString as K, toFloat as L, toInt as M, toString as N, toBool as O, formatMessages as P, renderMessages as Q, RenderMessagesOptions as R, fixBrokenUth8String as S, CurrencyInput as T, Uint8ArrayToString as U, currency as V, Currency as W, RoundingMode as X, isHalf as Y, isEven as Z, roundUp as _, deriveKeyPbkdf2 as a, Disposer as a$, roundHalfUp as a0, roundHalfOdd as a1, roundHalfAwayFromZero as a2, roundHalfDown as a3, roundHalfEven as a4, roundHalfTowardsZero as a5, DAY_MS as a6, DayInput as a7, Day as a8, forEachDay as a9, cloneObject as aA, arrayUnique as aB, arrayMinus as aC, arrayUnion as aD, arrayFlatten as aE, arrayIntersection as aF, arraySymmetricDifference as aG, arrayRemoveElement as aH, arraySetElement as aI, arrayFilterInPlace as aJ, arrayToggleInPlace as aK, arrayEmptyInPlace as aL, arraySorted as aM, arraySortedNumbers as aN, arrayIsEqual as aO, arrayShuffleInPlace as aP, arrayShuffle as aQ, arrayShuffleForce as aR, arrayRandomElement as aS, arrayMax as aT, arrayMin as aU, createArray as aV, isObject as aW, isPrimitive as aX, deepEqual as aY, deepMerge as aZ, DisposerFunction as a_, today as aa, day as ab, escapeHTML as ac, unescapeHTML as ad, jsonStringify as ae, randomBoolean as af, randomInt as ag, randomFloat as ah, parseOrderby as ai, composeOrderby as aj, cmp as ak, sortedOrderby as al, toValidFilename as am, escapeRegExp as an, SortableItem as ao, startSortWeight as ap, endSortWeight as aq, moveSortWeight as ar, sortedItems as as, linkifyPlainText as at, toHumanReadableUrl as au, encodeQuery as av, parseQuery as aw, size as ax, last as ay, empty as az, decrypt as b, promisify as b$, Disposable as b0, callDisposer as b1, useDisposer as b2, useTimeout as b3, useInterval as b4, useEventListener as b5, getGlobalContext as b6, isLocalHost as b7, LoggerConsoleHandler as b8, getNamespaceFilterString as b9, useMessageHub as bA, PubSub as bB, usePubSub as bC, Mutex as bD, createMutex as bE, httpMethod as bF, fetchBasic as bG, fetchJson as bH, fetchOptionsFormURLEncoded as bI, fetchOptionsJson as bJ, fetchText as bK, getWindow as bL, getNavigator as bM, getGlobal as bN, detect as bO, isBrowser as bP, platform as bQ, useExitHandler as bR, sleep as bS, immediate as bT, timeoutReached as bU, timeout as bV, timoutError as bW, isTimeout as bX, tryTimeout as bY, waitOn as bZ, isPromise as b_, useNamespaceFilter as ba, useLevelFilter as bb, ChannelMessageEvent as bc, Channel as bd, LocalChannel as be, fakeWorkerPair as bf, EmitterHandler as bg, EmitterAllHandler as bh, ListenerSignature as bi, DefaultListener as bj, Emitter as bk, getGlobalEmitter as bl, messages as bm, lazyListener as bn, Encoder as bo, JsonEncoder as bp, CryptoEncoder as bq, MessageAction as br, MessageResult as bs, Message as bt, MessagesOptions as bu, MessagesDefaultMethods as bv, MessagesMethods as bw, MessageDefinitions as bx, MessageHub as by, createPromiseProxy as bz, csv as c, SerialQueue as c0, MemStorageOptions as c1, MemStorage as c2, throttle as c3, debounce as c4, throttleAnimationFrame as c5, getTimestamp as c6, formatMilliseconds as c7, parseDate as c8, Json as c9, ObjectStorage as ca, NestedArray as cb, uuidBytes as cc, uuid as cd, uuidB32 as ce, uname as cf, qid as cg, uuidv4 as ch, suidBytes as ci, suid as cj, suidDate as ck, suidBytesDate as cl, digest as d, encrypt as e, encodeBase16 as f, decodeBase16 as g, encodeBase32 as h, decodeBase32 as i, encodeBase58 as j, decodeBase58 as k, encodeBase62 as l, decodeBase62 as m, encodeBase64 as n, decodeBase64 as o, toHex as p, toBase64 as q, randomUint8Array as r, stringToUInt8Array as s, toUint8Array as t, useBase as u, toBase64Url as v, equalBinary as w, jsonToUint8Array as x, Uint8ArrayToJson as y, toCamelCase as z };
632
+ 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, DisposerFunction 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, deepMerge as aA, escapeHTML as aB, unescapeHTML as aC, jsonStringify as aD, randomBoolean as aE, randomInt as aF, randomFloat as aG, between as aH, parseOrderby as aI, composeOrderby as aJ, cmp as aK, sortedOrderby as aL, toValidFilename as aM, escapeRegExp as aN, SortableItem as aO, startSortWeight as aP, endSortWeight as aQ, moveSortWeight as aR, sortedItems as aS, linkifyPlainText as aT, toHumanReadableUrl as aU, encodeQuery as aV, parseQuery as aW, size as aX, last as aY, empty as aZ, cloneObject 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, isObject as ax, isPrimitive as ay, deepEqual as az, decrypt as b, waitOn as b$, Disposer as b0, Disposable as b1, callDisposer as b2, useDisposer as b3, useTimeout as b4, useInterval as b5, useEventListener as b6, getGlobalContext as b7, isLocalHost as b8, LoggerConsoleHandler as b9, createPromiseProxy as bA, useMessageHub as bB, PubSub as bC, usePubSub as bD, Mutex as bE, createMutex as bF, httpMethod as bG, fetchBasic as bH, fetchJson as bI, fetchOptionsFormURLEncoded as bJ, fetchOptionsJson as bK, fetchText as bL, getWindow as bM, getNavigator as bN, getGlobal as bO, detect as bP, isBrowser as bQ, platform as bR, useExitHandler as bS, usePool as bT, sleep as bU, immediate as bV, timeoutReached as bW, timeout as bX, timoutError as bY, isTimeout as bZ, tryTimeout as b_, getNamespaceFilterString as ba, useNamespaceFilter as bb, useLevelFilter as bc, ChannelMessageEvent as bd, Channel as be, LocalChannel as bf, fakeWorkerPair as bg, EmitterHandler as bh, EmitterAllHandler as bi, ListenerSignature as bj, DefaultListener as bk, Emitter as bl, getGlobalEmitter as bm, messages as bn, lazyListener as bo, Encoder as bp, JsonEncoder as bq, CryptoEncoder as br, MessageAction as bs, MessageResult as bt, Message as bu, MessagesOptions as bv, MessagesDefaultMethods as bw, MessagesMethods as bx, MessageDefinitions as by, MessageHub as bz, csv as c, isPromise as c0, promisify as c1, QueueTask as c2, SerialQueue as c3, MemStorageOptions as c4, MemStorage as c5, throttle as c6, debounce as c7, throttleAnimationFrame as c8, getTimestamp as c9, formatMilliseconds as ca, parseDate as cb, Json as cc, ObjectStorage as cd, NestedArray as ce, uuidBytes as cf, uuid as cg, uuidB32 as ch, uname as ci, qid as cj, uuidv4 as ck, suidBytes as cl, suid as cm, suidDate as cn, suidBytesDate as co, 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.82",
3
+ "version": "0.7.86",
4
4
  "description": "🌱 Simple foundation library",
5
5
  "keywords": [
6
6
  "foundation",
@@ -46,11 +46,11 @@
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/jest": "^27.0.3",
49
- "@types/node": "^16.11.10",
49
+ "@types/node": "^16.11.11",
50
50
  "cross-fetch": "^3.1.4",
51
- "jest": "^27.3.1",
51
+ "jest": "^27.4.3",
52
52
  "ts-jest": "^27.0.7",
53
- "tsup": "^5.10.0",
53
+ "tsup": "^5.10.1",
54
54
  "typescript": "^4.5.2"
55
55
  }
56
56
  }
@@ -1,2 +0,0 @@
1
- import{cloneObject,renderMessages,toValidFilename}from"./chunk-YDFVWINQ.js";import{LogLevel,Logger,__dirname,__name,formatMilliseconds,getTimestamp,useLevelFilter,useNamespaceFilter}from"./chunk-VC3ZJA4S.js";import fs from"fs";import{resolve}from"path";var log=Logger("zeed:env");var NEWLINE="\n";var RE_INI_KEY_VAL=/^\s*([\w_.-]+)\s*=\s*(.*)?\s*$/;var RE_NEWLINES=/\\n/g;var NEWLINES_MATCH=/\n|\r|\r\n/;function parse(src,options={}){let obj={};src.toString().split(NEWLINES_MATCH).forEach(function(line,idx){const keyValueArr=line.match(RE_INI_KEY_VAL);if(keyValueArr!=null){const key=keyValueArr[1];let val=keyValueArr[2]||"";const end=val.length-1;const isDoubleQuoted=val[0]==='"'&&val[end]==='"';const isSingleQuoted=val[0]==="'"&&val[end]==="'";if(isSingleQuoted||isDoubleQuoted){val=val.substring(1,end);if(isDoubleQuoted){val=val.replace(RE_NEWLINES,NEWLINE)}}else{val=val.trim()}obj[key]=val}else{log.debug(`did not match key and value when parsing line ${idx+1}: ${line}`)}});return obj}__name(parse,"parse");function stringToPath(value,defaultValue="."){return resolve(process.cwd(),value!=null?value:defaultValue)}__name(stringToPath,"stringToPath");function valueToPath(value,defaultValue=""){if(value==null)value=defaultValue;return stringToPath(String(value).trim(),defaultValue)}__name(valueToPath,"valueToPath");var toPath=valueToPath;function setupEnv(options={}){var _a2,_b2,_c,_d;const dotenvPath=(_b2=options==null?void 0:options.path)!=null?_b2:toPath((_a2=options==null?void 0:options.filename)!=null?_a2:".env");const encoding=(_c=options==null?void 0:options.encoding)!=null?_c:"utf8";const debug=(options==null?void 0:options.debug)||false;if(debug!==true)log.level=LogLevel.off;try{const parsedEnv=fs.existsSync(dotenvPath)?parse(fs.readFileSync(dotenvPath,{encoding}),{debug}):{};const parsedEnvLocal=fs.existsSync(dotenvPath+".local")?parse(fs.readFileSync(dotenvPath+".local",{encoding}),{debug}):{};const parsed=Object.assign({},parsedEnv,parsedEnvLocal);let env=(_d=options==null?void 0:options.env)!=null?_d:process.env;Object.entries(parsed).forEach(([key,value])=>{if(typeof(options==null?void 0:options.prefix)==="string"){key=(options==null?void 0:options.prefix)+key}if(!Object.prototype.hasOwnProperty.call(env,key)){if(value!=null){log.info(`set env.${key} = ${value}`);env[key]=value}}else{log.debug(`"${key}" is already defined and will not be overwritten`)}});return{parsed}}catch(e){log.error(e);return{error:e}}}__name(setupEnv,"setupEnv");import{mkdirSync,readdirSync,readFileSync,rmSync,unlinkSync,writeFileSync}from"fs";import{dirname,resolve as resolve2}from"path";var log2=Logger("zeed:filestorage");var FileStorage=class{constructor(opt={}){this.store={};this.fileKeys=void 0;this.pretty=false;var _a2,_b2,_c,_d;this.dirname=resolve2(process.cwd(),opt.path||".fileStorage");this.pretty=!!opt.pretty;this.extension=(_a2=opt.extension)!=null?_a2:".json";if(opt.extension&&!this.extension.startsWith(".")){this.extension="."+this.extension}this.extensionLength=this.extension.length;this.objectToString=(_b2=opt.objectToString)!=null?_b2:data=>{return this.pretty?JSON.stringify(data,null,2):JSON.stringify(data)};this.objectFromString=(_c=opt.objectFromString)!=null?_c:data=>{try{return JSON.parse(data)}catch(err){log2.warn(`fileStorage parse error '${err}' in`,data)}};this.keyToFilename=(_d=opt.keyToFilename)!=null?_d:toValidFilename}setItem(key,value){this.store[key]=cloneObject(value);try{const data=this.objectToString(value);const path=this.getPath(key);mkdirSync(dirname(path),{recursive:true});writeFileSync(path,data,"utf8")}catch(err){log2.error("setItem error",err)}}getPath(key){return resolve2(this.dirname,this.keyToFilename(key)+this.extension)}getBuffer(key){const path=this.getPath(key);return Buffer.from(readFileSync(path))}getItem(key){let value=this.store[key];if(value===null)return;if(value!=null){return cloneObject(value)}try{const path=this.getPath(key);const data=readFileSync(path,"utf8");if(data!=null){const value2=this.objectFromString(data);this.store[key]=value2;return value2}}catch(err){log2.warn("getItem error",err);this.store[key]=null}}removeItem(key){delete this.store[key];if(this.fileKeys!=null){const index=this.fileKeys.indexOf(key);if(index!==-1){this.fileKeys.splice(index,1)}}try{const path=this.getPath(key);unlinkSync(path)}catch(err){}}clear(){this.fileKeys=[];this.store={};rmSync(this.dirname,{recursive:true,force:true})}allKeys(){if(this.fileKeys==null){try{this.fileKeys=readdirSync(this.dirname,{withFileTypes:true}).filter(item=>!item.isDirectory()&&item.name.endsWith(this.extension)).map(item=>item.name.slice(0,-this.extensionLength))||[]}catch(err){}}let keys=[...this.fileKeys||[]];for(let key of Object.keys(this.store)){if(!keys.includes(key)){keys.push(key)}}keys.sort();return keys}};__name(FileStorage,"FileStorage");import{createWriteStream,mkdirSync as mkdirSync2}from"fs";import{dirname as dirname2,resolve as resolve3}from"path";var namespaces={};function LoggerFileHandler(path,opt={}){const{level=LogLevel.all,filter="*"}=opt;path=resolve3(process.cwd(),path);mkdirSync2(dirname2(path),{recursive:true});var stream=createWriteStream(path,{flags:"a"});const matchesNamespace=useNamespaceFilter(filter);const matchesLevel=useLevelFilter(level);return msg=>{if(!matchesLevel(msg.level))return;if(!matchesNamespace(msg.name))return;const time2=new Date().toISOString();let name=msg.name||"";let ninfo=namespaces[name||""];if(ninfo==null){namespaces[name]=ninfo}let args=[`[${name||"*"}]`,renderMessages(msg.messages,{pretty:false})];function write(...args2){stream.write(args2.join(" ")+"\n")}__name(write,"write");switch(msg.level){case LogLevel.info:write(time2,`I|* `,...args);break;case LogLevel.warn:write(time2,`W|** `,...args);break;case LogLevel.error:write(time2,`E|***`,...args);break;default:write(time2,`D| `,...args);break}}}__name(LoggerFileHandler,"LoggerFileHandler");import{resolve as resolve4}from"path";function getStackLlocationList(stack){var _a2,_b2;if(typeof stack!=="string")return[];return((_b2=(_a2=stack==null?void 0:stack.split("\n"))==null?void 0:_a2.map(rawLine=>{let m=rawLine.match(/^\s+at.*(\((.*)\)|file:\/\/(.*)$)/);if(m){let line=m[3]||m[2];if(line.endsWith(")"))line=line.slice(0,-1);return line}}))==null?void 0:_b2.filter(v=>v!=null))||[]}__name(getStackLlocationList,"getStackLlocationList");var cwd=resolve4(process.cwd());var _a,_b;var home=((_a=process.env)==null?void 0:_a.HOME)?resolve4((_b=process.env)==null?void 0:_b.HOME):"";function pathStripCwd(path){if(path.includes("/node_modules/")){return""}const fileURL="file://";if(path.startsWith(fileURL)){return path.substr(fileURL.length)}if(cwd&&path.startsWith(cwd)){return path.substr(cwd.length+1)}if(home&&path.startsWith(home)){path="~/"+path.substr(home.length+1)}return path}__name(pathStripCwd,"pathStripCwd");function extractFileInfo(stackLine){let m=stackLine.match(/^\s*at.*(\((.*)\)|file:\/\/(.*)$)/);if(m){let line=m[3]||m[2];if(line.endsWith(")"))line=line.slice(0,-1);return line}return""}__name(extractFileInfo,"extractFileInfo");function getSourceLocation(level=2,stripCwd=true){var _a2;let stack=new Error().stack||"";let line=(_a2=getStackLlocationList(stack))==null?void 0:_a2[level];if(line&&stripCwd){line=pathStripCwd(line)}return line||""}__name(getSourceLocation,"getSourceLocation");function getStack(){return new Error().stack||""}__name(getStack,"getStack");function getSourceLocationByPrecedingPattern(patterns,stripCwd=true){let line="";let stack=new Error().stack||"";if(typeof stack==="string"){const lines=stack.split("\n").map(l=>l.trim());const index=lines.findIndex(l=>patterns.some(p=>l.startsWith(p)));line=lines[index+1];if(line){line=extractFileInfo(line)}if(line&&stripCwd){line=pathStripCwd(line)}}return line}__name(getSourceLocationByPrecedingPattern,"getSourceLocationByPrecedingPattern");import tty from"tty";function isTTY(){try{return tty.isatty(process.stdout.fd)}catch(err){}return false}__name(isTTY,"isTTY");var colors=[6,2,3,4,5,1];function selectColor(namespace){let hash=0;for(let i=0;i<namespace.length;i++){hash=(hash<<5)-hash+namespace.charCodeAt(i);hash|=0}return colors[Math.abs(hash)%colors.length]}__name(selectColor,"selectColor");var namespaces2={};var time=getTimestamp();var useColors=tty.isatty(process.stderr.fd);function log3(...args){return process.stderr.write(renderMessages(args)+"\n")}__name(log3,"log");var TTY_STYLE={BOLD:"",UNBOLD:"",RED:"",GREEN:"",BLUE:"",PURPLE:"",GRAY:"",ORANGE:"",UNCOLOR:""};var COLOR;(function(COLOR2){COLOR2[COLOR2["RED"]=1]="RED";COLOR2[COLOR2["GREEN"]=2]="GREEN";COLOR2[COLOR2["BLUE"]=4]="BLUE";COLOR2[COLOR2["PURPLE"]=5]="PURPLE";COLOR2[COLOR2["GRAY"]=7]="GRAY";COLOR2[COLOR2["ORANGE"]=8]="ORANGE"})(COLOR||(COLOR={}));var colorEnd="";function colorString(value,colorCode){const colorStart=colorCode===8?TTY_STYLE.ORANGE:"[3"+(colorCode<8?colorCode:"8;5;"+colorCode)+"m";return`${colorStart}${value}${colorEnd}`}__name(colorString,"colorString");function colorStringList(list,style,bold=true){return list.map(value=>{if(typeof value!=="string")return value;let start=style;let end=colorEnd;if(bold){start=`${TTY_STYLE.BOLD}${start}`;end=`${end}${TTY_STYLE.BOLD}`}return`${start}${value}${end}`})}__name(colorStringList,"colorStringList");var loggerStackTraceDebug="loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485";function LoggerNodeHandler(opt={}){const{level=void 0,filter=void 0,colors:colors2=isTTY(),levelHelper=true,nameBrackets=true,padding=0,fill=0,stack=true}=opt;const matchesNamespace=useNamespaceFilter(filter);const matchesLevel=useLevelFilter(level);return msg=>{var _a2;if(!matchesLevel(msg.level))return;if(!matchesNamespace(msg.name))return;const timeNow=getTimestamp();let name=msg.name||"";let ninfo=namespaces2[name||""];if(ninfo==null){ninfo={color:selectColor(name)};namespaces2[name]=ninfo}const diff=formatMilliseconds(timeNow-time);let args;let displayName=nameBrackets?`[${name}]`:name;if(padding>0){displayName=displayName.padStart(padding," ")}if(fill>0){displayName=displayName.padEnd(fill," ")}if(colors2&&useColors){const c=ninfo.color;args=[colorString(displayName,c)+` | `];if(msg.level===LogLevel.warn){args.push(...colorStringList(msg.messages,TTY_STYLE.ORANGE))}else if(msg.level===LogLevel.error){args.push(...colorStringList(msg.messages,TTY_STYLE.RED))}else{args.push(...msg.messages)}args.push(colorString(`+${diff}`,c))}else{args=[displayName,...msg.messages];args.push(`+${diff}`)}if(((_a2=msg.messages)==null?void 0:_a2[0])===loggerStackTraceDebug){console.log(getStack())}if(stack){let line="";if(typeof stack==="boolean"){line=getSourceLocationByPrecedingPattern(["at Function.","at null.log (","at log ("],true);if(!line){line=getSourceLocation(0,true)}}else{const depth=typeof stack==="number"?stack:3;line=getSourceLocation(depth,true)}if(line){args.push(colorString(`(${line})`,7))}}switch(msg.level){case LogLevel.info:if(levelHelper)args[0]=`I|* `+args[0];log3(...args);break;case LogLevel.warn:if(levelHelper)args[0]=(colors2&&useColors?colorString(`W|** `,8):`W|** `)+args[0];log3(...args);break;case LogLevel.error:if(levelHelper)args[0]=(colors2&&useColors?colorString(`E|*** `,1):`E|*** `)+args[0];log3(...args);break;default:if(levelHelper)args[0]=`D| `+args[0];log3(...args);break}}}__name(LoggerNodeHandler,"LoggerNodeHandler");import{dirname as dirname3}from"path";import{fileURLToPath}from"url";var _dirname=typeof __dirname!=="undefined"?__dirname:dirname3(fileURLToPath(import.meta.url));import nodeCrypto from"crypto";try{if(nodeCrypto&&nodeCrypto.webcrypto&&typeof globalThis!=="undefined"&&typeof globalThis.crypto==="undefined"){globalThis.crypto=nodeCrypto.webcrypto}}catch(err){console.warn("Failed to polyfill webcrypto",err)}function setupLogContextNode(){var _a2;let handlers=[LoggerNodeHandler({padding:32,nameBrackets:false})];let logFilePath=(_a2=process.env.ZEED_LOG)!=null?_a2:process.env.LOG;if(logFilePath){handlers.unshift(LoggerFileHandler(toPath(logFilePath)))}Logger.setHandlers(handlers)}__name(setupLogContextNode,"setupLogContextNode");setupLogContextNode();export{stringToPath,valueToPath,toPath,setupEnv,FileStorage,LoggerFileHandler,getStackLlocationList,getSourceLocation,getStack,getSourceLocationByPrecedingPattern,isTTY,colorString,colorStringList,loggerStackTraceDebug,LoggerNodeHandler,_dirname};
2
- //# sourceMappingURL=chunk-43KBTXPD.js.map
@@ -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});import{fileURLToPath}from"url";import path from"path";var __filename=fileURLToPath(import.meta.url);var __dirname=path.dirname(__filename);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,__dirname,isObject,isPrimitive,deepEqual,deepMerge,getNamespaceFilterString,useNamespaceFilter,useLevelFilter,LogLevel,LogLevelAlias,LoggerContext,LoggerConsoleHandler,getGlobalContext,Logger,getTimestamp,formatMilliseconds,parseDate};
2
- //# sourceMappingURL=chunk-VC3ZJA4S.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../node_modules/tsup/assets/esm_shims.js", "../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": ["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst __filename = fileURLToPath(import.meta.url)\nconst __dirname = path.dirname(__filename)\n\nexport { __dirname, __filename }\n", "// (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": "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",
6
- "names": []
7
- }
@@ -1,3 +0,0 @@
1
- import{LogLevel,Logger,__name,__spreadProps,__spreadValues,getGlobalContext,getTimestamp}from"./chunk-VC3ZJA4S.js";var log=Logger("bin");var _textEncoder=new TextEncoder;function stringToUInt8Array(text){const textEncoder=_textEncoder!=null?_textEncoder:_textEncoder=new TextEncoder;return textEncoder.encode(text.normalize("NFC"))}__name(stringToUInt8Array,"stringToUInt8Array");var _textDecoder=new TextDecoder;function Uint8ArrayToString(bin){const textDecoder=_textDecoder!=null?_textDecoder:_textDecoder=new TextDecoder("utf-8",{ignoreBOM:true});return textDecoder.decode(bin).normalize("NFC")}__name(Uint8ArrayToString,"Uint8ArrayToString");function toUint8Array(data){if(data instanceof ArrayBuffer)return new Uint8Array(data);if(typeof data==="string")return stringToUInt8Array(data);if(data.length)return new Uint8Array(data);return data}__name(toUint8Array,"toUint8Array");function toHex(bin){if(typeof Buffer!=="undefined"){return Buffer.from(toUint8Array(bin)).toString("hex")}const h="0123456789abcdef";let s="";for(const v of[...toUint8Array(bin)]){s+=h[v>>4]+h[v&15]}return s}__name(toHex,"toHex");function toBase64(bin){const bytes=toUint8Array(bin);if(typeof Buffer!=="undefined"){return Buffer.from(bytes).toString("base64")}let s="";for(let i=0;i<bytes.byteLength;i++){s+=String.fromCharCode(bytes[i])}return btoa(s)}__name(toBase64,"toBase64");function toBase64Url(bin){const bytes=toUint8Array(bin);if(typeof Buffer!=="undefined"){return Buffer.from(bytes).toString("base64url")}let s="";for(let i=0;i<bytes.byteLength;i++){s+=String.fromCharCode(bytes[i])}return btoa(s).replace(/\+/g,"-").replace(/\//g,"_")}__name(toBase64Url,"toBase64Url");function equalBinary(a,b){if(a.byteLength!==b.byteLength)return false;const aa=toUint8Array(a);const bb=toUint8Array(b);for(let i=0;i<aa.length;i++){if(aa[i]!==bb[i]){return false}}return true}__name(equalBinary,"equalBinary");function jsonToUint8Array(json){try{return stringToUInt8Array(JSON.stringify(json))}catch(err){log.warn("jsonToUint8Array",json);throw err}}__name(jsonToUint8Array,"jsonToUint8Array");function Uint8ArrayToJson(data){try{return JSON.parse(Uint8ArrayToString(data))}catch(err){log.warn("Uint8ArrayToJson",data);throw err}}__name(Uint8ArrayToJson,"Uint8ArrayToJson");function randomUint8Array(length=16){let randomBytes=new Uint8Array(length);if(typeof crypto!=="undefined"&&crypto.getRandomValues){crypto.getRandomValues(randomBytes)}else{for(let i=0;i<length;i++){randomBytes[i]=Math.floor(Math.random()*256)}}return randomBytes}__name(randomUint8Array,"randomUint8Array");var DEFAULT_HASH_ALG="SHA-256";var DEFAULT_CRYPTO_ALG="AES-GCM";var DEFAULT_DERIVE_ALG="PBKDF2";async function digest(message,algorithm=DEFAULT_HASH_ALG){return await crypto.subtle.digest(algorithm,toUint8Array(message))}__name(digest,"digest");async function deriveKeyPbkdf2(secret,opt={}){var _a;const secretBuffer=toUint8Array(secret);const keyMaterial=await crypto.subtle.importKey("raw",secretBuffer,DEFAULT_DERIVE_ALG,false,["deriveKey"]);return await crypto.subtle.deriveKey({name:DEFAULT_DERIVE_ALG,salt:opt.salt?toUint8Array(opt.salt):new Uint8Array(0),iterations:(_a=opt.iterations)!=null?_a:1e5,hash:DEFAULT_HASH_ALG},keyMaterial,{name:DEFAULT_CRYPTO_ALG,length:256},true,["encrypt","decrypt"])}__name(deriveKeyPbkdf2,"deriveKeyPbkdf2");var MAGIC_ID=new Uint8Array([1,1]);async function encrypt(data,key){const iv=randomUint8Array(12);const cipher=await crypto.subtle.encrypt({name:DEFAULT_CRYPTO_ALG,iv},key,data);const binCypher=new Uint8Array(cipher);const bufferLength=MAGIC_ID.length+iv.length+binCypher.length;const buffer=new Uint8Array(bufferLength);let pos=0;buffer.set(MAGIC_ID,pos);pos+=MAGIC_ID.length;buffer.set(iv,pos);pos+=iv.length;buffer.set(binCypher,pos);return buffer}__name(encrypt,"encrypt");async function decrypt(data,key){let magic=data.subarray(0,2);if(!equalBinary(magic,MAGIC_ID)){return Promise.reject(`Unknown magic ${magic}`)}let iv=data.subarray(2,2+12);let cipher=data.subarray(2+12,data.length);const plain=await crypto.subtle.decrypt({name:DEFAULT_CRYPTO_ALG,iv},key,cipher);return new Uint8Array(plain)}__name(decrypt,"decrypt");var separator=",";var preventCast=false;var ignoreNullOrUndefined=true;function filterFloat(value){if(/^([-+])?([0-9]+(\.[0-9]+)?|Infinity)$/.test(value)){return Number(value)}return NaN}__name(filterFloat,"filterFloat");function escape2(field){if(ignoreNullOrUndefined&&field==void 0){return""}if(preventCast){return'="'+String(field).replace(/"/g,'""')+'"'}if(!isNaN(filterFloat(field))&&isFinite(field)){return parseFloat(field)}return'"'+String(field).replace(/"/g,'""')+'"'}__name(escape2,"escape");function csv(data,headerRow){let body="";if(headerRow){body=headerRow.join(separator)+"\r\n"}for(let i=0;i<data.length;i++){body+=data[i].map(escape2).join(separator)+"\r\n"}return body}__name(csv,"csv");var log2=Logger("zeed:basex");var alphabets={"2":"01","8":"01234567","11":"0123456789a","16":"0123456789abcdef","32":"0123456789ABCDEFGHJKMNPQRSTVWXYZ","32-rfc":"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567","32-hex":"0123456789ABCDEFGHIJKLMNOPQRSTUV","32-zbase":"ybndrfg8ejkmcpqxot1uwisza345h769","36":"0123456789abcdefghijklmnopqrstuvwxyz","58":"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz","62":"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz","64":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/","64-url":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_","66":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~","85":"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~"};function useBase(alphaOrBase){let ALPHABET;if(typeof alphaOrBase==="string"){ALPHABET=alphaOrBase}else{ALPHABET=alphabets[alphaOrBase.toString()];if(ALPHABET==null)throw new Error(`Unknown base ${alphaOrBase}`)}if(ALPHABET.length>=255)throw new TypeError("Alphabet too long");const BASE_MAP=new Uint8Array(256);for(let j=0;j<BASE_MAP.length;j++){BASE_MAP[j]=255}for(let i=0;i<ALPHABET.length;i++){const x=ALPHABET.charAt(i);const xc=x.charCodeAt(0);if(BASE_MAP[xc]!==255)throw new TypeError(x+" is ambiguous");BASE_MAP[xc]=i}const BASE=ALPHABET.length;const LEADER=ALPHABET.charAt(0);const FACTOR=Math.log(BASE)/Math.log(256);const iFACTOR=Math.log(256)/Math.log(BASE);function encode(source,padToLength=-1){let data=toUint8Array(source);if(data.byteLength===0)return"";let length=0;let pbegin=0;const pend=data.byteLength;while(pbegin!==pend&&data[pbegin]===0)pbegin++;const size2=(pend-pbegin)*iFACTOR+1>>>0;const dataEncoded=new Uint8Array(size2);while(pbegin!==pend){let carry=data[pbegin];let i=0;for(let it1=size2-1;(carry!==0||i<length)&&it1!==-1;it1--,i++){carry+=256*dataEncoded[it1]>>>0;dataEncoded[it1]=carry%BASE>>>0;carry=carry/BASE>>>0}if(carry!==0){log2.warn("Non-zero carry",data,padToLength,i,size2);throw new Error("Non-zero carry")}length=i;pbegin++}let it2=size2-length;while(it2!==size2&&dataEncoded[it2]===0){it2++}let str="";for(;it2<size2;++it2)str+=ALPHABET.charAt(dataEncoded[it2]);if(padToLength>0){return str.padStart(padToLength,LEADER)}return str}__name(encode,"encode");function decode(source,padToLength=-1){if(typeof source!=="string")throw new TypeError("Expected String");if(source.length===0)return new Uint8Array;source=source.replace(/\s+/gi,"");let psz=0;let length=0;while(source[psz]===LEADER){psz++}const size2=(source.length-psz)*FACTOR+1>>>0;const dataDecoded=new Uint8Array(size2);while(source[psz]){let carry=BASE_MAP[source.charCodeAt(psz)];if(carry===255)throw new Error(`Unsupported character "${source[psz]}"`);let i=0;for(let it3=size2-1;(carry!==0||i<length)&&it3!==-1;it3--,i++){carry+=BASE*dataDecoded[it3]>>>0;dataDecoded[it3]=carry%256>>>0;carry=carry/256>>>0}if(carry!==0)throw new Error("Non-zero carry");length=i;psz++}let it4=size2-length;while(it4!==size2&&dataDecoded[it4]===0){it4++}if(padToLength>0){return new Uint8Array([...new Uint8Array(padToLength-dataDecoded.length+it4),...dataDecoded.slice(it4)])}return dataDecoded.slice(it4)}__name(decode,"decode");return{encode,decode}}__name(useBase,"useBase");var{encode:encodeBase16,decode:decodeBase16}=useBase(16);var{encode:encodeBase32,decode:decodeBase32}=useBase(32);var{encode:encodeBase58,decode:decodeBase58}=useBase(58);var{encode:encodeBase62,decode:decodeBase62}=useBase(62);var{encode:encodeBase64,decode:decodeBase64}=useBase(62);var toCamelCase=__name(s=>{if(s.length>0){if(/^[A-Z0-9_\-\ ]*$/g.test(s)){s=s.toLowerCase()}s=s.replace(/^[-_\ ]+/gi,"").replace(/[-_\ ]+$/gi,"").replace(/[-_\ ]+([a-z0-9])/gi,($0,$1)=>$1.toUpperCase());s=s[0].toLowerCase()+s.substring(1)}return s},"toCamelCase");function toCapitalize(s){return s.charAt(0).toUpperCase()+s.toLowerCase().slice(1)}__name(toCapitalize,"toCapitalize");function toCapitalizeWords(s){return s.replace(/\w\S*/g,toCapitalize)}__name(toCapitalizeWords,"toCapitalizeWords");function fromCamelCase(str,separator2="-"){separator2=typeof separator2==="undefined"?"_":separator2;return str.replace(/([a-z\d])([A-Z])/g,"$1"+separator2+"$2").replace(/([A-Z]+)([A-Z][a-z\d]+)/g,"$1"+separator2+"$2").toLowerCase()}__name(fromCamelCase,"fromCamelCase");function serializer(replacer,cycleReplacer){var stack=[],keys=[];if(cycleReplacer==null)cycleReplacer=__name(function(key,value){if(stack[0]===value)return"[Circular ~]";return"[Circular ~."+keys.slice(0,stack.indexOf(value)).join(".")+"]"},"cycleReplacer");return function(key,value){if(stack.length>0){var thisPos=stack.indexOf(this);~thisPos?stack.splice(thisPos+1):stack.push(this);~thisPos?keys.splice(thisPos,Infinity,key):keys.push(key);if(~stack.indexOf(value))value=cycleReplacer==null?void 0:cycleReplacer.call(this,key,value)}else stack.push(value);return replacer==null?value:replacer.call(this,key,value)}}__name(serializer,"serializer");function jsonStringify(obj,replacer,spaces,cycleReplacer){return JSON.stringify(obj,serializer(replacer,cycleReplacer),spaces)}__name(jsonStringify,"jsonStringify");var TRUE_VALUES_LIST=["1","true","yes","y","on"];function stringToBoolean(value,defaultValue=false){if(value==null||typeof value!=="string")return defaultValue;return TRUE_VALUES_LIST.includes(String(value).trim().toLowerCase())}__name(stringToBoolean,"stringToBoolean");function stringToInteger(value,defaultValue=0){var _a;if(value==null||typeof value!=="string")return defaultValue;return(_a=parseInt(value.trim(),10))!=null?_a:defaultValue}__name(stringToInteger,"stringToInteger");function stringToFloat(value,defaultValue=0){var _a;if(value==null||typeof value!=="string")return defaultValue;return(_a=parseFloat(value.trim()))!=null?_a:defaultValue}__name(stringToFloat,"stringToFloat");function valueToBoolean(value,defaultValue=false){if(value==null)return defaultValue;if(typeof value==="boolean")return value;if(typeof value==="number")return value!==0;return TRUE_VALUES_LIST.includes(String(value).trim().toLowerCase())}__name(valueToBoolean,"valueToBoolean");function valueToInteger(value,defaultValue=0){var _a;if(value==null)return defaultValue;if(typeof value==="boolean")return value?1:0;if(typeof value==="number")return Math.floor(value);return(_a=parseInt(String(value).trim(),10))!=null?_a:defaultValue}__name(valueToInteger,"valueToInteger");function valueToFloat(value,defaultValue=0){var _a;if(value==null)return defaultValue;if(typeof value==="boolean")return value?1:0;if(typeof value==="number")return Math.floor(value);return(_a=parseFloat(String(value).trim()))!=null?_a:defaultValue}__name(valueToFloat,"valueToFloat");function valueToString(value,defaultValue=""){var _a;if(value==null)return defaultValue;return(_a=String(value))!=null?_a:defaultValue}__name(valueToString,"valueToString");var toFloat=valueToFloat;var toInt=valueToInteger;var toString=valueToString;var toBool=valueToBoolean;function formatMessages(messages2,opt={}){const{trace=true,pretty=true}=opt;return messages2.map(obj=>{if(obj&&typeof obj==="object"){if(obj instanceof Error){if(!trace){return`${obj.name||"Error"}: ${obj.message}`}return`${obj.name||"Error"}: ${obj.message}
2
- ${obj.stack}`}return pretty?jsonStringify(obj,null,2):jsonStringify(obj)}return String(obj)})}__name(formatMessages,"formatMessages");function renderMessages(messages2,opt={}){return formatMessages(messages2,opt).join(" ")}__name(renderMessages,"renderMessages");function fixBrokenUth8String(brokenString){try{return decodeURIComponent(escape(brokenString))}catch(e){}return brokenString}__name(fixBrokenUth8String,"fixBrokenUth8String");function parseOrderby(value=""){let[field="",orderby="asc"]=value.split(" ");orderby=orderby.toLowerCase();return{field,orderby,asc:orderby!=="desc",desc:orderby==="desc"}}__name(parseOrderby,"parseOrderby");function composeOrderby(field,asc=true){return`${field} ${asc?"asc":"desc"}`}__name(composeOrderby,"composeOrderby");function cmp(a,b,asc=true){const aa=a||0;const bb=b||0;return aa>bb?asc?1:-1:aa<bb?asc?-1:1:0}__name(cmp,"cmp");function sortedOrderby(values,...orderby){if(orderby.length>0){let orderByList=orderby.map(parseOrderby);let sortValues=Array.from(values);sortValues.sort((a,b)=>{for(let{field,asc}of orderByList){const result=cmp(a[field],b[field],asc);if(result!==0)return result}return 0});return sortValues}return values}__name(sortedOrderby,"sortedOrderby");function arrayUnique(x){return x.filter((n,index)=>x.indexOf(n)===index)}__name(arrayUnique,"arrayUnique");function arrayMinus(x,y){return arrayUnique(x.filter(n=>!y.includes(n)))}__name(arrayMinus,"arrayMinus");function arrayUnion(...a){return arrayUnique(a.reduce((acc=[],value)=>acc.concat(value),[]))}__name(arrayUnion,"arrayUnion");function arrayFlatten(...list){return list.flat(Infinity)}__name(arrayFlatten,"arrayFlatten");function arrayIntersection(x,y){return arrayUnique(x).filter(n=>y.includes(n))}__name(arrayIntersection,"arrayIntersection");function arraySymmetricDifference(x,y){return arrayMinus(arrayUnion(x,y),arrayIntersection(x,y))}__name(arraySymmetricDifference,"arraySymmetricDifference");function arrayRemoveElement(arr,el){if(arr&&Array.isArray(arr)){let index;while((index=arr.indexOf(el))!==-1){arr.splice(index,1)}return arr}return[]}__name(arrayRemoveElement,"arrayRemoveElement");function arraySetElement(arr,el){if(!arr.includes(el))arr.push(el);return arr}__name(arraySetElement,"arraySetElement");function arrayFilterInPlace(array,fn){array.splice(0,array.length,...array.filter(fn));return array}__name(arrayFilterInPlace,"arrayFilterInPlace");function arrayToggleInPlace(array,el){const index=array.findIndex(e=>e===el);if(index>=0)array.splice(index,1);else array.push(el);return array}__name(arrayToggleInPlace,"arrayToggleInPlace");function arrayEmptyInPlace(array){array.splice(0,array.length);return array}__name(arrayEmptyInPlace,"arrayEmptyInPlace");function arraySorted(arr,cond=cmp){return Array.from(arr).sort(cond)}__name(arraySorted,"arraySorted");function arraySortedNumbers(arr){return arraySorted(arr,(l,r)=>l-r)}__name(arraySortedNumbers,"arraySortedNumbers");function arrayIsEqual(array1,array2){return array1.length===array2.length&&array1.every((value,index)=>value===array2[index])}__name(arrayIsEqual,"arrayIsEqual");function arrayShuffleInPlace(array){array.sort(()=>Math.random()>.5?1:-1);return array}__name(arrayShuffleInPlace,"arrayShuffleInPlace");function arrayShuffle(array){return arrayShuffleInPlace(Array.from(array))}__name(arrayShuffle,"arrayShuffle");function arrayShuffleForce(array){while(array.length>1){const copy=Array.from(array);arrayShuffleInPlace(copy);if(!arrayIsEqual(array,copy))return copy}return array}__name(arrayShuffleForce,"arrayShuffleForce");function arrayRandomElement(array){return array[Math.floor(Math.random()*array.length)]}__name(arrayRandomElement,"arrayRandomElement");function arrayMax(...array){return arrayFlatten(array).reduce((acc,value)=>acc!=null?value>acc?value:acc:value,void 0)}__name(arrayMax,"arrayMax");function arrayMin(...array){return arrayFlatten(array).reduce((acc,value)=>acc!=null?value<acc?value:acc:value,void 0)}__name(arrayMin,"arrayMin");function createArray(size2=0,item){if(size2<=0)return[];let arr=new Array(size2);for(let i=0;i<size2;i++){arr[i]=item instanceof Function?item(i):item}return arr}__name(createArray,"createArray");var defaults={symbol:"$",separator:",",decimal:".",errorOnInvalid:false,precision:2,pattern:"!#",negativePattern:"-!#",format,fromCents:false};var round=__name(v=>Math.round(v),"round");var pow=__name(p=>Math.pow(10,p),"pow");var rounding=__name((value,increment)=>round(value/increment)*increment,"rounding");var groupRegex=/(\d)(?=(\d{3})+\b)/g;var vedicRegex=/(\d)(?=(\d\d)+\d\b)/g;function currency(value,opts={}){return new Currency(value,opts)}__name(currency,"currency");var _Currency=class{constructor(value,opts={}){var _a;let settings=Object.assign({},defaults,opts);let precision=pow((_a=settings.precision)!=null?_a:2);let v=parse(value,settings);this.intValue=v;this.value=v/precision;settings.increment=settings.increment||1/precision;if(settings.useVedic){settings.groups=vedicRegex}else{settings.groups=groupRegex}this._settings=settings;this._precision=precision}add(number){let{intValue,_settings,_precision}=this;return currency((intValue+=parse(number,_settings))/(_settings.fromCents?1:_precision),_settings)}subtract(number){let{intValue,_settings,_precision}=this;return currency((intValue-=parse(number,_settings))/(_settings.fromCents?1:_precision),_settings)}multiply(number){let{intValue,_settings,_precision}=this;return currency((intValue*=number)/(_settings.fromCents?1:pow(_precision)),_settings)}divide(number){let{intValue,_settings}=this;return currency(intValue/=parse(number,_settings,false),_settings)}distribute(count){let{intValue,_precision,_settings}=this,distribution=[],split=Math[intValue>=0?"floor":"ceil"](intValue/count),pennies=Math.abs(intValue-split*count),precision=_settings.fromCents?1:_precision;for(;count!==0;count--){let item=currency(split/precision,_settings);pennies-- >0&&(item=item[intValue>=0?"add":"subtract"](1/precision));distribution.push(item)}return distribution}dollars(){return~~this.value}cents(){let{intValue,_precision}=this;return~~(intValue%_precision)}format(options){let{_settings}=this;if(typeof options==="function"){return options(this,_settings)}return _settings.format(this,Object.assign({},_settings,options))}toString(){let{intValue,_precision,_settings}=this;return rounding(intValue/_precision,_settings.increment).toFixed(_settings.precision)}toJSON(){return this.value}static sum(...array){return arrayFlatten(array).reduce((acc,value)=>currency(acc).add(value),this.zero)}static avg(...array){let arr=arrayFlatten(array);return arr.reduce((acc,value)=>currency(acc).add(value),this.zero).divide(arr.length)}};var Currency=_Currency;__name(Currency,"Currency");Currency.zero=new _Currency(0);Currency.one=new _Currency(1);function parse(value,opts,useRounding=true){let v=0,{decimal,errorOnInvalid,precision:decimals,fromCents}=opts,precision=pow(decimals),isNumber=typeof value==="number";if(value instanceof Currency&&fromCents){return value.intValue}if(isNumber||value instanceof Currency){v=value instanceof Currency?value.value:value}else if(typeof value==="string"){let regex=new RegExp("[^-\\d"+decimal+"]","g"),decimalString=new RegExp("\\"+decimal,"g");v=value.replace(/\((.*)\)/,"-$1").replace(regex,"").replace(decimalString,".");v=v||0}else{if(errorOnInvalid){throw Error("Invalid Input")}v=0}if(!fromCents){v*=precision;v=v.toFixed(4)}return useRounding?round(v):v}__name(parse,"parse");function format(currency2,settings){let{pattern:pattern2,negativePattern,symbol,separator:separator2,decimal,groups}=settings,split=(""+currency2).replace(/^-/,"").split("."),dollars=split[0],cents=split[1];return(currency2.value>=0?pattern2:negativePattern).replace("!",symbol).replace("#",dollars.replace(groups,"$1"+separator2)+(cents?decimal+cents:""))}__name(format,"format");var isHalf=__name(value=>Math.abs(value)%1===.5,"isHalf");var isEven=__name(value=>value%2===0,"isEven");var roundUp=__name(value=>Math.ceil(value),"roundUp");var roundDown=__name(value=>Math.floor(value),"roundDown");var roundHalfUp=__name(value=>Math.round(value),"roundHalfUp");var roundHalfOdd=__name(value=>{const rounded=Math.round(value);if(!isHalf(value)){return rounded}return isEven(rounded)?rounded-1:rounded},"roundHalfOdd");var roundHalfAwayFromZero=__name(value=>{return isHalf(value)?Math.sign(value)*Math.ceil(Math.abs(value)):Math.round(value)},"roundHalfAwayFromZero");var roundHalfDown=__name(value=>isHalf(value)?Math.floor(value):Math.round(value),"roundHalfDown");var roundHalfEven=__name(value=>{const rounded=Math.round(value);if(!isHalf(value)){return rounded}return isEven(rounded)?rounded:rounded-1},"roundHalfEven");var roundHalfTowardsZero=__name(value=>isHalf(value)?Math.sign(value)*Math.floor(Math.abs(value)):Math.round(value),"roundHalfTowardsZero");var{warn}=Logger("zeed:promise");async function sleep(milliSeconds){return new Promise(resolve=>setTimeout(resolve,milliSeconds))}__name(sleep,"sleep");async function immediate(){return new Promise(resolve=>setTimeout(resolve,0))}__name(immediate,"immediate");var timeoutReached=Symbol("timeout");async function timeout(promise,milliSeconds,timeoutValue=timeoutReached){return new Promise(async(resolve,reject)=>{let done=false;const timeout2=setTimeout(()=>{done=true;resolve(timeoutValue)},milliSeconds);try{let result=await promise;clearTimeout(timeout2);if(!done)resolve(result)}catch(err){clearTimeout(timeout2);if(!done)reject(err)}})}__name(timeout,"timeout");var timoutError=new Error("Timeout reached");function isTimeout(value){return value===timeoutReached||value===timoutError}__name(isTimeout,"isTimeout");async function tryTimeout(promise,milliSeconds){if(milliSeconds<=0){return await promise}return new Promise(async(resolve,reject)=>{let done=false;const timeout2=setTimeout(()=>{done=true;reject(timoutError)},milliSeconds);try{let result=await promise;clearTimeout(timeout2);if(!done)resolve(result)}catch(err){clearTimeout(timeout2);if(!done)reject(err)}})}__name(tryTimeout,"tryTimeout");function waitOn(obj,event,timeoutMS=1e3){return new Promise((resolve,reject)=>{let fn=__name(value=>{if(timer){clearTimeout(timer);done();resolve(value)}},"fn");let done=__name(()=>{timer=null;if(obj.off){obj.off(event,fn)}else if(obj.removeEventListener){obj.removeEventListener(event,fn)}else{warn("No remove listener method found for",obj,event)}},"done");let timer=setTimeout(()=>{done();reject(new Error(`Did not response in time`))},timeoutMS);if(obj.on){obj.on(event,fn)}else if(obj.addEventListener){obj.addEventListener(event,fn)}else{warn("No listener method found for",obj)}})}__name(waitOn,"waitOn");function isPromise(value){return Boolean(value&&(value instanceof Promise||typeof value.then==="function"))}__name(isPromise,"isPromise");function promisify(value){return Promise.resolve(value)}__name(promisify,"promisify");var DAY_MS=1e3*60*60*24;var Day=class{constructor(days){var _a;if(typeof days==="number"){this.days=days;return}if(days!=null){days=(_a=Day.from(days))==null?void 0:_a.days}if(days==null){const date=new Date;this.days=date.getFullYear()*1e4+(date.getMonth()+1)*100+date.getDate()}else{this.days=days}}static fromNumber(n){return new Day(n)}static fromString(dateString){return new Day(+dateString.replace(/[^0-9]/g,""))}static fromDate(date,gmt=false){return gmt?Day.fromString(date.toISOString().substr(0,10)):new Day(date.getFullYear()*1e4+(date.getMonth()+1)*100+date.getDate())}static fromDateGMT(date){return Day.fromDate(date,true)}static from(value,gmt=false){if(typeof value==="number"){return new Day(value)}else if(typeof value==="string"){return Day.fromString(value)}else if(value instanceof Date){return Day.fromDate(value,gmt)}else if(value instanceof Day){return value}}toNumber(){return this.days}toJson(){return this.days}toString(sep="-"){let baseString=String(this.days);return baseString.slice(0,4)+sep+baseString.slice(4,6)+sep+baseString.slice(6,8)}toDate(gmt=false){return gmt?new Date(`${this.toString()}T00:00:00.000Z`):new Date(this.days/1e4,this.days/100%100-1,this.days%100)}toDateGMT(){return this.toDate(true)}dayOffset(offset){return Day.fromDateGMT(new Date(this.toDateGMT().getTime()+offset*DAY_MS))}daysUntil(otherDay){var _a;return Math.round((((_a=new Day(otherDay))==null?void 0:_a.toDateGMT().getTime())-this.toDateGMT().getTime())/DAY_MS)}yesterday(){return this.dayOffset(-1)}tomorrow(){return this.dayOffset(1)}};__name(Day,"Day");async function forEachDay(from,to,handler){let start=Day.from(from);let end=Day.from(to);while(start&&end&&(start==null?void 0:start.days)<=(end==null?void 0:end.days)){let result=handler(start);if(isPromise(result)){await result}start=start.dayOffset(1)}}__name(forEachDay,"forEachDay");function today(){return new Day}__name(today,"today");function day(days){return new Day(days)}__name(day,"day");var escapeHTML=__name(s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&apos;").replace(/"/g,"&quot;"),"escapeHTML");var unescapeHTML=__name(s=>s.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&quot;/gi,'"').replace(/&apos;/gi,"'").replace(/&amp;/gi,"&"),"unescapeHTML");function randomBoolean(bias=.25){return Math.random()<bias?0:1}__name(randomBoolean,"randomBoolean");function randomInt(max=100,min=0){return min+Math.floor(Math.random()*(max-min))}__name(randomInt,"randomInt");function randomFloat(max=100,min=0){return min+Math.random()*(max-min)}__name(randomFloat,"randomFloat");var MAX_FILENAME_LENGTH=100;var reControlChars=/[\u0000-\u001F\u0080-\u009F]/g;var reRelativePath=/^\.+/;var reTrailingPeriods=/\.+$/;function filenameReservedRegex(){return/[<>:"/\\|?*\u0000-\u001F]/g}__name(filenameReservedRegex,"filenameReservedRegex");function windowsReservedNameRegex(){return/^(con|prn|aux|nul|com\d|lpt\d)$/i}__name(windowsReservedNameRegex,"windowsReservedNameRegex");function toValidFilename(string){if(typeof string!=="string"){throw new TypeError("Expected a string")}const replacement="_";if(filenameReservedRegex().test(replacement)&&reControlChars.test(replacement)){throw new Error("Replacement string cannot contain reserved filename characters")}string=string.replace(filenameReservedRegex(),replacement).replace(reControlChars,replacement).replace(reRelativePath,replacement).replace(reTrailingPeriods,"");string=windowsReservedNameRegex().test(string)?string+replacement:string;return string.slice(0,MAX_FILENAME_LENGTH)}__name(toValidFilename,"toValidFilename");var rxEscape=/[\\\-\[\]\/{}()*+?.^$|]/g;function escapeRegExp(value){if(!value)return"";if(value instanceof RegExp){return value.source}return value.replace(rxEscape,"\\$&")}__name(escapeRegExp,"escapeRegExp");function startSortWeight(items){return items.reduce((acc,item)=>Math.min(acc,item.sort_weight||0),0)-1-Math.random()}__name(startSortWeight,"startSortWeight");function endSortWeight(items){return items.reduce((acc,item)=>Math.max(acc,item.sort_weight||0),0)+1+Math.random()}__name(endSortWeight,"endSortWeight");function moveSortWeight(newIndex,oldIndex,items){let count=items.length;const moveLower=newIndex<oldIndex;if(count<=0||newIndex>=count-1){return endSortWeight(items)}if(newIndex<=0){return startSortWeight(items)}items=sortedItems([...items]);const step=moveLower?-1:0;const lower=items[newIndex+step].sort_weight||0;const upper=items[newIndex+step+1].sort_weight||0;const distance=upper-lower;if(distance===0){if(moveLower){return startSortWeight(items)}return endSortWeight(items)}const middle=lower+distance/2;const fuzzy=distance*.01*(Math.random()-.5);return middle+fuzzy}__name(moveSortWeight,"moveSortWeight");function sortedItems(items){items.sort((a,b)=>(a.sort_weight||0)-(b.sort_weight||0));return items}__name(sortedItems,"sortedItems");var findURL=/((?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?)/gim;function linkifyPlainText(text){return text.split(findURL).map((part,i)=>{const escapedPart=escapeHTML(part);return i%2?`<a target="_blank" href="${escapedPart}">${toHumanReadableUrl(escapedPart)}</a>`:escapedPart}).join("")}__name(linkifyPlainText,"linkifyPlainText");function toHumanReadableUrl(url){return url.replace(/^https?:\/\/(www\.)?/,"").replace(/\/$/,"")}__name(toHumanReadableUrl,"toHumanReadableUrl");function encodeQuery(data){let pairs=[];for(let[key,value]of Object.entries(data)){if(value!=null){if(!Array.isArray(value)){value=[value]}for(let v of value){if(v!=null){pairs.push(encodeURIComponent(key)+"="+encodeURIComponent(v.toString()||""))}}}}return pairs.join("&")}__name(encodeQuery,"encodeQuery");function parseQuery(queryString){let query={};let pairs=(queryString[0]==="?"?queryString.substr(1):queryString).split("&");for(let i=0;i<pairs.length;i++){let pair=pairs[i].split("=");let key=decodeURIComponent(pair[0]);let value=decodeURIComponent(pair[1]||"");if(query[key]!=null){if(!Array.isArray(query[key])){query[key]=[query[key]]}query[key].push(value)}else{query[key]=value}}return query}__name(parseQuery,"parseQuery");function size(obj){if(obj!=null){if(obj.size!=null){return obj.size}if(obj.length!=null){return obj.length}return Object.keys(obj).length}return 0}__name(size,"size");function last(array){return array!=null&&array.length>0?array[array.length-1]:void 0}__name(last,"last");function empty(value){try{if(value!=null){if(Array.isArray(value)){return value.length<=0}else if(typeof value==="string"){return value.length<=0}else if((value==null?void 0:value.size)!=null){return value.size<=0}else{return Object.keys(value).length<=0}}}catch(err){console.error("Failed to check if empty for",value,err)}return true}__name(empty,"empty");function cloneObject(obj){if(Object(obj)!==obj)return obj;return JSON.parse(JSON.stringify(obj))}__name(cloneObject,"cloneObject");async function callDisposer(disposable){if(typeof disposable==="function"){await promisify(disposable())}else if(isPromise(disposable)){await disposable}else if(typeof disposable.dispose==="function"){await promisify(disposable.dispose())}else if(isPromise(disposable.dispose)){await disposable.dispose}else if(typeof disposable.cleanup==="function"){await promisify(disposable.cleanup())}else if(isPromise(disposable.cleanup)){await disposable.cleanup}}__name(callDisposer,"callDisposer");function useDisposer(){let tracked=[];const untrack=__name(async disposable=>{if(tracked.includes(disposable)){arrayFilterInPlace(tracked,el=>el!==disposable);await callDisposer(disposable)}},"untrack");const dispose=__name(async()=>{while(tracked.length>0){await untrack(tracked[0])}},"dispose");const track=__name(obj=>{tracked.unshift(obj);return()=>untrack(obj)},"track");return Object.assign(dispose,{track,untrack,dispose,getSize(){return tracked.length}})}__name(useDisposer,"useDisposer");function useTimeout(fn,timeout2=0){let timeoutHandle=setTimeout(fn,timeout2);return()=>{if(timeoutHandle){clearTimeout(timeoutHandle);timeoutHandle=void 0}}}__name(useTimeout,"useTimeout");function useInterval(fn,interval){let intervalHandle=setInterval(fn,interval);return()=>{if(intervalHandle){clearInterval(intervalHandle);intervalHandle=void 0}}}__name(useInterval,"useInterval");function useEventListener(emitter,eventName,fn,...args){if(emitter==null)return()=>{};if(emitter.on){emitter.on(eventName,fn,...args)}else if(emitter.addEventListener){emitter.addEventListener(eventName,fn,...args)}return()=>{if(emitter.off){emitter.off(eventName,fn,...args)}else if(emitter.removeEventListener){emitter.removeEventListener(eventName,fn,...args)}}}__name(useEventListener,"useEventListener");function isLocalHost(hostname=window.location.hostname){return["localhost","127.0.0.1","","::1","::"].includes(hostname)||hostname.startsWith("192.168.")||hostname.startsWith("10.0.")||hostname.endsWith(".local")}__name(isLocalHost,"isLocalHost");var{encode:encode62,decode:decode62}=useBase(62);var{encode:encode32}=useBase(32);function uuidBytes(){return randomUint8Array(16)}__name(uuidBytes,"uuidBytes");function uuid(){return encode62(uuidBytes(),22)}__name(uuid,"uuid");function uuidB32(){return encode32(uuidBytes(),26)}__name(uuidB32,"uuidB32");var _unameCounters={};function uname(name="id"){if(_unameCounters[name]==null){_unameCounters[name]=0}return`${name}-${_unameCounters[name]++}`}__name(uname,"uname");var _qid=0;function qid(){return`id-${_qid++}`}__name(qid,"qid");var pattern="10000000-1000-4000-8000-100000000000";var uuidv4=__name(()=>pattern.replace(/[018]/g,c=>(c^randomUint8Array(1)[0]&15>>c/4).toString(16)),"uuidv4");var ReferenceDateInMS=16e11;function longToByteArray(long){var byteArray=new Uint8Array([0,0,0,0,0,0]);const bytes=byteArray.length-1;for(var index=0;index<byteArray.length;index++){var byte=long&255;byteArray[bytes-index]=byte;long=(long-byte)/256}return byteArray}__name(longToByteArray,"longToByteArray");function suidBytes(){const ms=getTimestamp()-ReferenceDateInMS;return new Uint8Array([...longToByteArray(ms),...randomUint8Array(10)])}__name(suidBytes,"suidBytes");function suid(){return encode62(suidBytes(),22)}__name(suid,"suid");function suidDate(id){return suidBytesDate(decode62(id,16))}__name(suidDate,"suidDate");function suidBytesDate(id){return new Date(ReferenceDateInMS+id.slice(0,6).reduce((acc,byte)=>{return acc*256+byte},0))}__name(suidBytesDate,"suidBytesDate");var log3=Logger("zeed:emitter");var Emitter=class{constructor(){this.subscribers={};this.subscribersOnAny=[];this.call=new Proxy({},{get:(target,name)=>(...args)=>this.emit(name,...args)})}async emit(event,...args){let ok=false;try{let subscribers=this.subscribers[event]||[];this.subscribersOnAny.forEach(fn=>fn(event,...args));if(subscribers.length>0){let all=subscribers.map(fn=>{try{return promisify(fn(...args))}catch(err){log3.warn("emit warning:",err)}});ok=true;await Promise.all(all)}}catch(err){log3.error("emit exception",err)}return ok}onAny(fn){this.subscribersOnAny.push(fn)}on(event,listener){let subscribers=this.subscribers[event]||[];subscribers.push(listener);this.subscribers[event]=subscribers;return()=>{this.off(event,listener)}}onCall(handlers){for(const[name,handler]of Object.entries(handlers)){this.on(name,handler)}}once(event,listener){const onceListener=__name(async(...args)=>{this.off(event,onceListener);return await promisify(listener(...args))},"onceListener");this.on(event,onceListener);return()=>{this.off(event,listener)}}off(event,listener){this.subscribers[event]=(this.subscribers[event]||[]).filter(f=>listener&&f!==listener);return this}removeAllListeners(event){this.subscribers={};return this}dispose(){this.subscribers={};this.subscribersOnAny=[]}};__name(Emitter,"Emitter");function getGlobalEmitter(){let emitter=getGlobalContext().emitter;if(!emitter){emitter=new Emitter;getGlobalContext().emitter=emitter}return emitter}__name(getGlobalEmitter,"getGlobalEmitter");var messages=new Emitter;function lazyListener(emitter,listenerKey){const name=Math.round(Math.random()*100);var events=[];var lazyResolve;const incoming=__name((key,obj)=>{let ev={key,obj};events.push(ev);lazyResolve&&lazyResolve()},"incoming");if(listenerKey){if(emitter.on){emitter.on(listenerKey,obj=>{incoming(listenerKey,obj)})}else if(emitter.addEventListener){emitter.addEventListener(listenerKey,obj=>{incoming(listenerKey,obj)})}else{log3.error(name,"Cannot listen to key")}}else{if(emitter.onAny){emitter.onAny((key,obj)=>{incoming(key,obj)})}else{log3.error(name,"cannot listen to all for",emitter)}}let on=__name((key,skipUnmatched=true)=>{return new Promise((resolve,reject)=>{if(!key){key=listenerKey;if(!key){if(events.length){key=events[0].key}}}lazyResolve=__name(()=>{while(events.length>0){let ev=events.shift();if(ev.key===key){lazyResolve=void 0;resolve(ev.obj)}else{if(skipUnmatched){log3.warn(name,`Unhandled event ${key} with value: ${ev.obj}`);continue}reject(`Expected ${key}, but found ${ev.key} with value=${ev.obj}`);log3.error(name,`Unhandled event ${key} with value: ${ev.obj}`)}break}},"lazyResolve");lazyResolve()})},"on");return on}__name(lazyListener,"lazyListener");var Channel=class extends Emitter{constructor(){super(...arguments);this.id=uuid()}close(){}};__name(Channel,"Channel");var LocalChannel=class extends Channel{constructor(){super(...arguments);this.isConnected=true}postMessage(data){var _a;(_a=this.other)==null?void 0:_a.emit("message",{data,origin:"local",lastEventId:uuid()})}};__name(LocalChannel,"LocalChannel");function fakeWorkerPair(){let w1=new LocalChannel;let w2=new LocalChannel;w1.other=w2;w2.other=w1;return[w1,w2]}__name(fakeWorkerPair,"fakeWorkerPair");var JsonEncoder=class{async encode(data){return jsonToUint8Array(data)}async decode(data){return Uint8ArrayToJson(data)}};__name(JsonEncoder,"JsonEncoder");var CryptoEncoder=class{constructor(key){this.key=key}async encode(data){const plain=jsonToUint8Array(data);return await encrypt(plain,this.key)}async decode(data){const plain=await decrypt(data,this.key);return Uint8ArrayToJson(plain)}};__name(CryptoEncoder,"CryptoEncoder");var createPromiseProxy=__name((fn,opt,predefinedMethods={})=>new Proxy(predefinedMethods,{get:(target,name)=>{if(name in target)return target[name];return(...args)=>fn(name,args,opt)}}),"createPromiseProxy");function useMessageHub(opt={}){let{name=uname("hub"),encoder=new JsonEncoder,retryAfter=1e3,ignoreUnhandled=true}=opt;const log7=Logger(name);let handlers={};let channel;let queue=[];let queueRetryTimer;let waitingForResponse={};const dispose=__name(()=>{clearTimeout(queueRetryTimer)},"dispose");const postNext=__name(async()=>{clearTimeout(queueRetryTimer);if(channel){if(channel.isConnected){while(queue.length){let message=queue[0];try{channel.postMessage(await encoder.encode(message));queue.shift()}catch(err){log7.warn("postMessage",err);break}}}if(queue.length>0&&retryAfter>0){queueRetryTimer=setTimeout(postNext,retryAfter)}}},"postNext");const postMessage=__name(async message=>{log7("enqueue postMessage",message);queue.push(message);await postNext()},"postMessage");const connect=__name(async newChannel=>{channel=newChannel;channel.on("connect",postNext);channel.on("message",async msg=>{log7("onmessage",typeof msg);const{name:name2,args,id,result,error}=await encoder.decode(msg.data);if(name2){log7(`name ${name2} id ${id}`);try{if(handlers[name2]==null){throw new Error(`handler for ${name2} was not found`)}let result2=handlers[name2](...args);if(isPromise(result2))result2=await result2;log7(`result ${result2}`);if(id){postMessage({id,result:result2})}}catch(error2){let err=error2 instanceof Error?error2:new Error(valueToString(error2));log7.warn("execution error",err.name);postMessage({id,error:{message:err.message,stack:err.stack,name:err.name}})}}else if(id){log7(`response for id=${id}: result=${result}, error=${error}`);if(waitingForResponse[id]==null){if(result===void 0){log7(`skip response for ${id}`)}else{log7.warn(`no response hook for ${id}`)}}else{const[resolve,reject]=waitingForResponse[id];if(resolve&&reject){delete waitingForResponse[id];if(error){let err=new Error(error.message);err.stack=error.stack;err.name=error.name;log7.warn("reject",err.name);reject(err)}else{log7("resolve",result);resolve(result)}}}}else if(!ignoreUnhandled){log7.warn("Unhandled message",msg)}});postNext()},"connect");const fetchMessage=__name(async(name2,args,opt2={})=>{const{timeout:timeout2=5e3}=opt2;const id=uuid();postMessage({name:name2,args,id});return tryTimeout(new Promise((resolve,reject)=>waitingForResponse[id]=[resolve,reject]),timeout2)},"fetchMessage");if(opt.channel){connect(opt.channel)}return{dispose,connect,listen(newHandlers){Object.assign(handlers,newHandlers)},send(){return createPromiseProxy(fetchMessage,{},{options(perCallopt){return createPromiseProxy(fetchMessage,__spreadValues({},perCallopt))}})}}}__name(useMessageHub,"useMessageHub");var PubSub=class extends Emitter{constructor(opt){super();this.publish=this.emit;this.subscribe=this.on;var _a;let{name,encoder=new JsonEncoder,channel,debug=false}=opt;this.channel=channel;this.encoder=encoder;this.debug=debug;this.name=(_a=name!=null?name:this.channel.id)!=null?_a:uname("pubsub");this.log=Logger(`${this.shortId}`);if(this.debug){this.channel.on("connect",()=>{this.log("channel connected")});this.channel.on("disconnect",()=>{this.log("channel disconnected")})}this.channel.on("message",async({data})=>{let info=await this.encoder.decode(data);if(this.debug)this.log(`channel message, event=${info==null?void 0:info.event}, info=`,info);else this.log(`channel message, event=${info==null?void 0:info.event}`);if(info){const{event,args}=info;await this.emitSuper(event,...args)}})}get shortId(){return this.name.substr(0,6)}async emitSuper(event,...args){return await super.emit(event,...args)}async emit(event,...args){try{if(this.debug)this.log(`emit(${event})`,event);else this.log(`emit(${event})`,args.length);if(!this.channel.isConnected){this.log.warn("channel not connected");return false}const data=await this.encoder.encode({event,args});this.channel.postMessage(data);return true}catch(err){this.log.warn(`emit(${event})`,err)}return false}};__name(PubSub,"PubSub");function usePubSub(opt){return new PubSub(opt)}__name(usePubSub,"usePubSub");function createMutex(){let token=true;return(fn,elseFn)=>{let executed=false;if(token){token=false;try{fn();executed=true}finally{token=true}}else if(elseFn!==void 0){elseFn()}return executed}}__name(createMutex,"createMutex");var log4=Logger("network");var defaultOptions={cache:"no-cache",redirect:"follow"};async function fetchBasic(url,fetchOptions={},fetchFn=fetch){try{const response=await fetchFn(url,fetchOptions);if(response.status<400){return response}try{log4.warn(`Fetch of ${url} with ${fetchOptions} returned status=${response.status}`);log4.warn(`Response: ${await response.text()}`)}catch(err){log4.error("Exception:",err)}}catch(err){log4.error("fetchBasic",err)}}__name(fetchBasic,"fetchBasic");async function fetchJson(url,opts={},fetchFn=fetch){try{let res=await fetchBasic(url,__spreadValues(__spreadProps(__spreadValues({method:"GET"},defaultOptions),{headers:{}}),opts),fetchFn);if(res){return await res.json()}}catch(err){log4.error("fetchJSON error:",err)}}__name(fetchJson,"fetchJson");function fetchOptionsFormURLEncoded(data,method="POST"){return __spreadProps(__spreadValues({method},defaultOptions),{headers:{"Content-Type":"application/x-www-form-urlencoded; charset=utf-8"},body:encodeQuery(data)})}__name(fetchOptionsFormURLEncoded,"fetchOptionsFormURLEncoded");function fetchOptionsJson(data,method="POST"){return __spreadProps(__spreadValues({method},defaultOptions),{headers:{"Content-Type":"application/json; charset=utf-8",Accept:"application/json"},body:JSON.stringify(data)})}__name(fetchOptionsJson,"fetchOptionsJson");async function fetchText(url,opts={},fetchFn=fetch){try{let res=await fetchBasic(url,__spreadValues(__spreadProps(__spreadValues({method:"GET"},defaultOptions),{headers:{}}),opts),fetchFn);if(res){return await res.text()}}catch(err){log4.error("fetchHTML error:",err)}}__name(fetchText,"fetchText");function getWindow(){if(typeof window!=="undefined")return window}__name(getWindow,"getWindow");function getNavigator(){if(typeof navigator!=="undefined")return navigator}__name(getNavigator,"getNavigator");function getGlobal(){var _a;return((_a=getWindow())!=null?_a:typeof WorkerGlobalScope!=="undefined")?self:typeof global!=="undefined"?global:Function("return this;")()}__name(getGlobal,"getGlobal");var _navigator=getNavigator();var _window=getWindow();function detect(info={ios:false,macos:false,windows:false,beaker:false,electron:false,wkwebview:false,pwa:false,pwaInstalled:false,browser:false,node:false,worker:false,jest:false,macosNative:false,iosNative:false,appleNative:false,touch:false}){var _a,_b,_c,_d,_e,_f,_g,_h;info.ios=((_a=_navigator==null?void 0:_navigator.platform)==null?void 0:_a.match(/(iPhone|iPod|iPad)/i))!=null;info.macos=!!((_b=_navigator==null?void 0:_navigator.platform)==null?void 0:_b.startsWith("Mac"));info.windows=!!((_c=_navigator==null?void 0:_navigator.platform)==null?void 0:_c.startsWith("Win"));info.beaker=(_window==null?void 0:_window["beaker"])!=null;info.electron=(((_e=(_d=_navigator==null?void 0:_navigator.userAgent)==null?void 0:_d.toLowerCase())==null?void 0:_e.indexOf(" electron/"))||-1)>-1&&!info.beaker;info.wkwebview=((_f=_window==null?void 0:_window.webkit)==null?void 0:_f["messageHandlers"])!=null;info.pwa=(_navigator==null?void 0:_navigator.serviceWorker)!=null;info.pwaInstalled=(_navigator==null?void 0:_navigator.standalone)||((_g=_window==null?void 0:_window.matchMedia("(display-mode: standalone)"))==null?void 0:_g.matches);info.node=typeof process!=="undefined"&&((_h=process==null?void 0:process.release)==null?void 0:_h.name)==="node";info.browser=!info.electron&&!info.wkwebview&&!info.node;info.worker=typeof WorkerGlobalScope!=="undefined"&&self instanceof WorkerGlobalScope;info.jest=typeof jest!=="undefined";info.macosNative=info.wkwebview&&info.macos;info.iosNative=info.wkwebview&&info.ios;info.appleNative=info.wkwebview;info.touch=_window&&"ontouchstart"in _window||((_navigator==null?void 0:_navigator.maxTouchPoints)||0)>1||(_navigator==null?void 0:_navigator.msPointerEnabled)&&(_window==null?void 0:_window.MSGesture)||(_window==null?void 0:_window.DocumentTouch)&&document instanceof DocumentTouch;return info}__name(detect,"detect");var isBrowser=__name(()=>typeof window!=="undefined"&&globalThis===window,"isBrowser");var platform=detect();function useExitHandler(handler){if(isBrowser()){window.addEventListener("beforeunload",handler)}else if(typeof process!=="undefined"){process.on("exit",()=>handler)}}__name(useExitHandler,"useExitHandler");var log5=Logger("zeed:queue");var SerialQueue=class{constructor(opt={}){this.queue=[];this.isPaused=false;this.waitToFinish=[];const{name=uname("queue"),logLevel}=opt;this.name=name;this.log=Logger(`zeed:queue:${name}`);this.log.level=logLevel!=null?logLevel:LogLevel.off}async performNext(){this.log(`performNext, queue.length =`,this.queue.length);if(this.currentTask!=null){this.log(`performNext => skip while another task is running`);return}if(this.isPaused){this.log(`performNext => skip while is paused`);return}while(this.currentTask==null&&!this.isPaused){let info=this.queue.shift();this.log(`performNext => ${info==null?void 0:info.name}`);if(info==null){break}const{name,task,resolve}=info;this.currentTask=task();let result=void 0;try{this.log.info(`start task ${name}`);result=await this.currentTask;this.log(`finished task ${name} with result =`,result)}catch(err){log5.warn("Error performing task",err)}resolve(result);this.currentTask=void 0}while(this.waitToFinish.length>0){this.waitToFinish.shift()()}}async enqueue(task,opt={}){const{immediate:immediate2=false,name=uname(this.name)}=opt;if(immediate2){this.log.info(`immediate execution ${name}`);return await task()}this.log(`enqueue ${name}`);return new Promise(resolve=>{this.queue.push({name,task,resolve});this.performNext()})}async enqueueReentrant(task,opt={}){return this.enqueue(task,{immediate:this.currentTask!=null,name:opt.name})}async cancelAll(unblock=true){this.log(`cancelAll`);let resolver=this.queue.map(task=>task.resolve);this.queue=[];resolver.forEach(r=>r(void 0));await this.wait()}async pause(){this.log(`pause`);this.isPaused=true;await this.wait()}resume(){this.log(`resume`);this.isPaused=false;this.performNext()}async wait(){this.log(`wait`);if(this.currentTask==null&&(this.queue.length===0||this.isPaused)){return}return new Promise(resolve=>{this.waitToFinish.push(resolve)})}};__name(SerialQueue,"SerialQueue");var log6=Logger("zeed:memstorage");var MemStorage=class{constructor(opt={}){this.store={}}setItem(key,value){this.store[key]=cloneObject(value)}getItem(key){if(this.store.hasOwnProperty(key)){return cloneObject(this.store[key])}}removeItem(key){delete this.store[key]}clear(){this.store={}}allKeys(){return Object.keys(this.store)}};__name(MemStorage,"MemStorage");function throttle(callback,opt={}){const{delay=100,noTrailing=false,debounceMode=false}=opt;let timeoutID;let cancelled=false;let lastExec=0;function clearExistingTimeout(){if(timeoutID){clearTimeout(timeoutID)}}__name(clearExistingTimeout,"clearExistingTimeout");function cancel(){clearExistingTimeout();cancelled=true}__name(cancel,"cancel");function wrapper(...arguments_){let self2=this;let elapsed=Date.now()-lastExec;if(cancelled){return}function exec(){lastExec=Date.now();callback.apply(self2,arguments_)}__name(exec,"exec");function clear(){timeoutID=void 0}__name(clear,"clear");if(debounceMode&&!timeoutID){exec()}clearExistingTimeout();if(debounceMode===void 0&&elapsed>delay){exec()}else if(noTrailing!==true){timeoutID=setTimeout(debounceMode?clear:exec,debounceMode===void 0?delay-elapsed:delay)}}__name(wrapper,"wrapper");wrapper.cancel=cancel;wrapper.dispose=cancel;return wrapper}__name(throttle,"throttle");function debounce(callback,opt={}){opt.debounceMode=true;return throttle(callback,opt)}__name(debounce,"debounce");function throttleAnimationFrame(callback){let requestId;let lastArgs;const later=__name(context=>()=>{requestId=void 0;callback.apply(context,lastArgs)},"later");const throttled=__name(function(...args){lastArgs=args;if(requestId==null){requestId=requestAnimationFrame(later(this))}},"throttled");throttled.cancel=throttled.dispose=()=>{cancelAnimationFrame(requestId);requestId=void 0};return throttled}__name(throttleAnimationFrame,"throttleAnimationFrame");export{stringToUInt8Array,Uint8ArrayToString,toUint8Array,toHex,toBase64,toBase64Url,equalBinary,jsonToUint8Array,Uint8ArrayToJson,randomUint8Array,digest,deriveKeyPbkdf2,encrypt,decrypt,csv,useBase,encodeBase16,decodeBase16,encodeBase32,decodeBase32,encodeBase58,decodeBase58,encodeBase62,decodeBase62,encodeBase64,decodeBase64,toCamelCase,toCapitalize,toCapitalizeWords,fromCamelCase,jsonStringify,stringToBoolean,stringToInteger,stringToFloat,valueToBoolean,valueToInteger,valueToFloat,valueToString,toFloat,toInt,toString,toBool,formatMessages,renderMessages,fixBrokenUth8String,parseOrderby,composeOrderby,cmp,sortedOrderby,arrayUnique,arrayMinus,arrayUnion,arrayFlatten,arrayIntersection,arraySymmetricDifference,arrayRemoveElement,arraySetElement,arrayFilterInPlace,arrayToggleInPlace,arrayEmptyInPlace,arraySorted,arraySortedNumbers,arrayIsEqual,arrayShuffleInPlace,arrayShuffle,arrayShuffleForce,arrayRandomElement,arrayMax,arrayMin,createArray,currency,Currency,isHalf,isEven,roundUp,roundDown,roundHalfUp,roundHalfOdd,roundHalfAwayFromZero,roundHalfDown,roundHalfEven,roundHalfTowardsZero,sleep,immediate,timeoutReached,timeout,timoutError,isTimeout,tryTimeout,waitOn,isPromise,promisify,DAY_MS,Day,forEachDay,today,day,escapeHTML,unescapeHTML,randomBoolean,randomInt,randomFloat,toValidFilename,escapeRegExp,startSortWeight,endSortWeight,moveSortWeight,sortedItems,linkifyPlainText,toHumanReadableUrl,encodeQuery,parseQuery,size,last,empty,cloneObject,callDisposer,useDisposer,useTimeout,useInterval,useEventListener,isLocalHost,uuidBytes,uuid,uuidB32,uname,qid,uuidv4,suidBytes,suid,suidDate,suidBytesDate,Emitter,getGlobalEmitter,messages,lazyListener,Channel,LocalChannel,fakeWorkerPair,JsonEncoder,CryptoEncoder,createPromiseProxy,useMessageHub,PubSub,usePubSub,createMutex,fetchBasic,fetchJson,fetchOptionsFormURLEncoded,fetchOptionsJson,fetchText,getWindow,getNavigator,getGlobal,detect,isBrowser,platform,useExitHandler,SerialQueue,MemStorage,throttle,debounce,throttleAnimationFrame};
3
- //# sourceMappingURL=chunk-YDFVWINQ.js.map