zeed 0.7.76 → 0.7.80

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, b4 as Channel, b3 as ChannelMessageEvent, Q as Currency, O as CurrencyInput, a2 as DAY_MS, a4 as Day, a3 as DayInput, ba as DefaultListener, aT as Disposable, aS as Disposer, aR as DisposerFunction, bb as Emitter, b8 as EmitterAllHandler, b7 as EmitterHandler, bf as Encoder, bZ as Json, bg as JsonEncoder, b9 as ListenerSignature, b5 as LocalChannel, a$ as LoggerConsoleHandler, bS as MemStorage, bR as MemStorageOptions, bj as Message, bh as MessageAction, bn as MessageHub, bi as MessageResult, bl as MessagesDefaultMethods, bm as MessagesMethods, bk as MessagesOptions, bs as Mutex, b$ as NestedArray, b_ as ObjectStorage, bq as PubSub, R as RenderMessagesOptions, S as RoundingMode, bQ as SerialQueue, ag as SortableItem, U as UInt8ArrayToString, aD as arrayEmptyInPlace, aB as arrayFilterInPlace, aw as arrayFlatten, ax as arrayIntersection, aG as arrayIsEqual, aL as arrayMax, aM as arrayMin, au as arrayMinus, aK as arrayRandomElement, az as arrayRemoveElement, aA as arraySetElement, aI as arrayShuffle, aJ as arrayShuffleForce, aH as arrayShuffleInPlace, aE as arraySorted, aF as arraySortedNumbers, ay as arraySymmetricDifference, aC as arrayToggleInPlace, av as arrayUnion, at as arrayUnique, aU as callDisposer, as as cloneObject, ac as cmp, ab as composeOrderby, bt as createMutex, bo as createPromiseProxy, c as csv, P as currency, bU as debounce, b as decodeBase16, g as decodeBase32, i as decodeBase58, k as decodeBase62, m as decodeBase64, aP as deepEqual, aQ as deepMerge, a as deriveKeyPbkdf2, bC as detect, d as digest, ar as empty, e as encodeBase16, f as encodeBase32, h as encodeBase58, j as encodeBase62, l as encodeBase64, an as encodeQuery, ai as endSortWeight, q as equalBinary, a7 as escapeHTML, af as escapeRegExp, b6 as fakeWorkerPair, bu as fetchBasic, bv as fetchJson, bw as fetchOptionsFormURLEncoded, bx as fetchOptionsJson, by as fetchText, N as fixBrokenUth8String, a5 as forEachDay, L as formatMessages, bX as formatMilliseconds, y as fromCamelCase, bB as getGlobal, aZ as getGlobalContext, bc as getGlobalEmitter, b0 as getNamespaceFilterString, bA as getNavigator, bW as getTimestamp, bz as getWindow, bH as immediate, bD as isBrowser, V as isEven, T as isHalf, a_ as isLocalHost, aN as isObject, aO as isPrimitive, bO as isPromise, bL as isTimeout, a9 as jsonStringify, aq as last, be as lazyListener, al as linkifyPlainText, bd as messages, aj as moveSortWeight, bY as parseDate, aa as parseOrderby, ao as parseQuery, bE as platform, bP as promisify, c3 as qid, r as randomUint8Array, M as renderMessages, X as roundDown, _ as roundHalfAwayFromZero, $ as roundHalfDown, a0 as roundHalfEven, Z as roundHalfOdd, a1 as roundHalfTowardsZero, Y as roundHalfUp, W as roundUp, ap as size, bG as sleep, ak as sortedItems, ad as sortedOrderby, ah as startSortWeight, z as stringToBoolean, C as stringToFloat, A as stringToInteger, s as stringToUInt8Array, c6 as suid, c5 as suidBytes, c8 as suidBytesDate, c7 as suidDate, bT as throttle, bV as throttleAnimationFrame, bJ as timeout, bI as timeoutReached, bK as timoutError, o as toBase64, p as toBase64Url, K as toBool, v as toCamelCase, w as toCapitalize, x as toCapitalizeWords, H as toFloat, n as toHex, am as toHumanReadableUrl, I as toInt, J as toString, t as toUint8Array, ae as toValidFilename, a6 as today, bM as tryTimeout, c2 as uname, a8 as unescapeHTML, u as useBase, aV as useDisposer, aY as useEventListener, bF as useExitHandler, aX as useInterval, b2 as useLevelFilter, bp as useMessageHub, b1 as useNamespaceFilter, br as usePubSub, aW as useTimeout, c0 as uuid, c1 as uuidB32, c4 as uuidv4, D as valueToBoolean, F as valueToFloat, E as valueToInteger, G as valueToString, bN as waitOn } from './uuid-9dceb099';
1
+ export { B as BinInput, b8 as Channel, b7 as ChannelMessageEvent, bl as CryptoEncoder, W as Currency, T as CurrencyInput, a6 as DAY_MS, a8 as Day, a7 as DayInput, be as DefaultListener, aX as Disposable, aW as Disposer, aV as DisposerFunction, bf as Emitter, bc as EmitterAllHandler, bb as EmitterHandler, bj as Encoder, c4 as Json, bk as JsonEncoder, bd as ListenerSignature, b9 as LocalChannel, b3 as LoggerConsoleHandler, bZ as MemStorage, bY as MemStorageOptions, bo as Message, bm as MessageAction, bs as MessageDefinitions, bt as MessageHub, bn as MessageResult, bq as MessagesDefaultMethods, br as MessagesMethods, bp as MessagesOptions, by as Mutex, c6 as NestedArray, c5 as ObjectStorage, bw as PubSub, R as RenderMessagesOptions, X as RoundingMode, bX as SerialQueue, ak as SortableItem, y as Uint8ArrayToJson, U as Uint8ArrayToString, aH as arrayEmptyInPlace, aF as arrayFilterInPlace, aA as arrayFlatten, aB as arrayIntersection, aK as arrayIsEqual, aP as arrayMax, aQ as arrayMin, ay as arrayMinus, aO as arrayRandomElement, aD as arrayRemoveElement, aE as arraySetElement, aM as arrayShuffle, aN as arrayShuffleForce, aL as arrayShuffleInPlace, aI as arraySorted, aJ as arraySortedNumbers, aC as arraySymmetricDifference, aG as arrayToggleInPlace, az as arrayUnion, ax as arrayUnique, aY as callDisposer, aw as cloneObject, ag as cmp, af as composeOrderby, bz as createMutex, bu as createPromiseProxy, c as csv, V as currency, b$ as debounce, g as decodeBase16, i as decodeBase32, k as decodeBase58, m as decodeBase62, o as decodeBase64, b as decrypt, aT as deepEqual, aU as deepMerge, a as deriveKeyPbkdf2, bJ as detect, d as digest, av as empty, f as encodeBase16, h as encodeBase32, j as encodeBase58, l as encodeBase62, n as encodeBase64, ar as encodeQuery, e as encrypt, am as endSortWeight, w as equalBinary, ab as escapeHTML, aj as escapeRegExp, ba as fakeWorkerPair, bB as fetchBasic, bC as fetchJson, bD as fetchOptionsFormURLEncoded, bE as fetchOptionsJson, bF as fetchText, S as fixBrokenUth8String, a9 as forEachDay, P as formatMessages, c2 as formatMilliseconds, D as fromCamelCase, bI as getGlobal, b1 as getGlobalContext, bg as getGlobalEmitter, b4 as getNamespaceFilterString, bH as getNavigator, c1 as getTimestamp, bG as getWindow, bA as httpMethod, bO as immediate, bK as isBrowser, Z as isEven, Y as isHalf, b2 as isLocalHost, aR as isObject, aS as isPrimitive, bV as isPromise, bS as isTimeout, ad as jsonStringify, x as jsonToUint8Array, au as last, bi as lazyListener, ap as linkifyPlainText, bh as messages, an as moveSortWeight, c3 as parseDate, ae as parseOrderby, as as parseQuery, bL as platform, bW as promisify, cb as qid, 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, at as size, bN as sleep, ao as sortedItems, ah as sortedOrderby, al as startSortWeight, E as stringToBoolean, G as stringToFloat, F as stringToInteger, s as stringToUInt8Array, ce as suid, cd as suidBytes, cg as suidBytesDate, cf as suidDate, b_ as throttle, c0 as throttleAnimationFrame, bQ as timeout, bP as timeoutReached, bR 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, aq as toHumanReadableUrl, M as toInt, N as toString, t as toUint8Array, ai as toValidFilename, aa as today, bT as tryTimeout, ca as uname, ac as unescapeHTML, u as useBase, aZ as useDisposer, b0 as useEventListener, bM as useExitHandler, a$ as useInterval, b6 as useLevelFilter, bv as useMessageHub, b5 as useNamespaceFilter, bx as usePubSub, a_ as useTimeout, c8 as uuid, c9 as uuidB32, c7 as uuidBytes, cc as uuidv4, H as valueToBoolean, J as valueToFloat, I as valueToInteger, K as valueToString, bU as waitOn } from './uuid-d43cefa1';
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-281d07c5';
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-53cca6d4';
@@ -1,2 +1,2 @@
1
- import{FileStorage,LoggerFileHandler,LoggerNodeHandler,_dirname,colorString,colorStringList,getSourceLocation,getSourceLocationByPrecedingPattern,getStack,getStackLlocationList,isTTY,loggerStackTraceDebug,setupEnv,stringToPath,toPath,valueToPath}from"./chunk-TFRW5WAF.js";import{Channel,Currency,DAY_MS,Day,Emitter,JsonEncoder,LocalChannel,MemStorage,PubSub,SerialQueue,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,createMutex,createPromiseProxy,csv,currency,debounce,decodeBase16,decodeBase32,decodeBase58,decodeBase62,decodeBase64,deriveKeyPbkdf2,detect,digest,empty,encodeBase16,encodeBase32,encodeBase58,encodeBase62,encodeBase64,encodeQuery,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,last,lazyListener,linkifyPlainText,messages,moveSortWeight,parseOrderby,parseQuery,platform,promisify,qid,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,uuidv4,valueToBoolean,valueToFloat,valueToInteger,valueToString,waitOn}from"./chunk-GXWBIUI5.js";import{LogLevel,LogLevelAlias,Logger,LoggerConsoleHandler,LoggerContext,deepEqual,deepMerge,formatMilliseconds,getGlobalContext,getNamespaceFilterString,getTimestamp,isObject,isPrimitive,parseDate,useLevelFilter,useNamespaceFilter}from"./chunk-GILANOH3.js";export{Channel,Currency,DAY_MS,Day,Emitter,FileStorage,JsonEncoder,LocalChannel,LogLevel,LogLevelAlias,Logger,LoggerConsoleHandler,LoggerContext,LoggerFileHandler,LoggerNodeHandler,MemStorage,PubSub,SerialQueue,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,createMutex,createPromiseProxy,csv,currency,debounce,decodeBase16,decodeBase32,decodeBase58,decodeBase62,decodeBase64,deepEqual,deepMerge,deriveKeyPbkdf2,detect,digest,empty,encodeBase16,encodeBase32,encodeBase58,encodeBase62,encodeBase64,encodeQuery,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,last,lazyListener,linkifyPlainText,loggerStackTraceDebug,messages,moveSortWeight,parseDate,parseOrderby,parseQuery,platform,promisify,qid,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,uuidv4,valueToBoolean,valueToFloat,valueToInteger,valueToPath,valueToString,waitOn};
1
+ import{FileStorage,LoggerFileHandler,LoggerNodeHandler,_dirname,colorString,colorStringList,getSourceLocation,getSourceLocationByPrecedingPattern,getStack,getStackLlocationList,isTTY,loggerStackTraceDebug,setupEnv,stringToPath,toPath,valueToPath}from"./chunk-UGOFZTQO.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,createMutex,createPromiseProxy,csv,currency,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,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-C47LZY6O.js";import{LogLevel,LogLevelAlias,Logger,LoggerConsoleHandler,LoggerContext,deepEqual,deepMerge,formatMilliseconds,getGlobalContext,getNamespaceFilterString,getTimestamp,isObject,isPrimitive,parseDate,useLevelFilter,useNamespaceFilter}from"./chunk-GILANOH3.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,createMutex,createPromiseProxy,csv,currency,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,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};
2
2
  //# sourceMappingURL=index.node.js.map
@@ -1,4 +1,4 @@
1
- import { bZ as Json, b_ as ObjectStorage } from './uuid-9dceb099';
1
+ import { c4 as Json, c5 as ObjectStorage } from './uuid-d43cefa1';
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 { bZ as Json, b_ as ObjectStorage } from './uuid-9dceb099';
1
+ import { c4 as Json, c5 as ObjectStorage } from './uuid-d43cefa1';
2
2
  import { g as LogHandlerOptions, c as LogMessage, d as LogHandler } from './log-7206a2fe';
3
3
 
4
4
  declare type csvOptions = {
@@ -2,13 +2,15 @@ import { g as LogHandlerOptions, d as LogHandler, a as LogLevel } from './log-72
2
2
 
3
3
  declare type BinInput = Uint8Array | ArrayBuffer | string | number[];
4
4
  declare function stringToUInt8Array(text: string): Uint8Array;
5
- declare function UInt8ArrayToString(bin: Uint8Array): string;
5
+ declare function Uint8ArrayToString(bin: Uint8Array): string;
6
6
  declare function toUint8Array(data: BinInput): Uint8Array;
7
7
  declare function toHex(bin: BinInput): string;
8
8
  declare function toBase64(bin: BinInput): string;
9
9
  declare function toBase64Url(bin: BinInput): string;
10
10
  /** Compare contents of binary arrays */
11
11
  declare function equalBinary(a: ArrayBuffer | Uint8Array, b: ArrayBuffer | Uint8Array): boolean;
12
+ declare function jsonToUint8Array(json: any): Uint8Array;
13
+ declare function Uint8ArrayToJson<T = any>(data: Uint8Array): T;
12
14
 
13
15
  declare function randomUint8Array(length?: number): Uint8Array;
14
16
  declare function digest(message: BinInput, algorithm?: AlgorithmIdentifier): Promise<ArrayBuffer>;
@@ -16,6 +18,8 @@ declare function deriveKeyPbkdf2(secret: BinInput, opt?: {
16
18
  iterations?: number;
17
19
  salt?: BinInput;
18
20
  }): Promise<CryptoKey>;
21
+ declare function encrypt(data: Uint8Array, key: CryptoKey): Promise<Uint8Array>;
22
+ declare function decrypt(data: Uint8Array, key: CryptoKey): Promise<Uint8Array>;
19
23
 
20
24
  declare function csv(data: any[], headerRow: string[]): string;
21
25
 
@@ -358,6 +362,12 @@ declare class JsonEncoder implements Encoder {
358
362
  encode(data: any): Promise<Uint8Array>;
359
363
  decode(data: Uint8Array): Promise<any>;
360
364
  }
365
+ declare class CryptoEncoder implements Encoder {
366
+ key: CryptoKey;
367
+ constructor(key: CryptoKey);
368
+ encode(data: any): Promise<Uint8Array>;
369
+ decode(data: Uint8Array): Promise<any>;
370
+ }
361
371
 
362
372
  declare type MessageAction = {
363
373
  name: string;
@@ -383,11 +393,12 @@ declare type MessagesDefaultMethods<L> = {
383
393
  options(opt: MessagesOptions): L;
384
394
  };
385
395
  declare type MessagesMethods<L> = L & MessagesDefaultMethods<L>;
396
+ declare type MessageDefinitions = Record<any, (...args: any) => Promise<any>>;
386
397
  declare type MessageHub = {
387
398
  dispose(): void;
388
399
  connect: (newChannel: Channel) => void;
389
- listen<L extends object>(newHandlers: L): void;
390
- send<L extends object>(): MessagesMethods<L>;
400
+ listen<L extends MessageDefinitions>(newHandlers: L): void;
401
+ send<L extends MessageDefinitions>(): MessagesMethods<L>;
391
402
  };
392
403
  declare const createPromiseProxy: <P extends object>(fn: (name: string, args: any[], opt: any) => Promise<unknown>, opt: MessagesOptions, predefinedMethods?: any) => P;
393
404
  declare function useMessageHub(opt?: {
@@ -423,18 +434,19 @@ declare function usePubSub<L extends ListenerSignature<L> = DefaultListener>(opt
423
434
  declare type Mutex = (fn: () => void, elseFn?: () => void) => boolean;
424
435
  declare function createMutex(): Mutex;
425
436
 
437
+ declare type httpMethod = "GET" | "POST" | "PUT" | "DELETE" | "HEAD" | "CONNECT" | "OPTIONS" | "TRACE" | "PATCH";
426
438
  declare function fetchBasic(url: string, fetchOptions?: any, fetchFn?: (input: RequestInfo, init?: RequestInit) => Promise<Response>): Promise<Response | undefined>;
427
439
  declare function fetchJson(url: string, opts?: any, fetchFn?: (input: RequestInfo, init?: RequestInit) => Promise<Response>): Promise<Json | undefined>;
428
- declare function fetchOptionsFormURLEncoded(data: Object, method?: "GET" | "POST"): {
440
+ declare function fetchOptionsFormURLEncoded(data: Object, method?: httpMethod): {
429
441
  headers: {
430
442
  "Content-Type": string;
431
443
  };
432
444
  body: string;
433
445
  cache: string;
434
446
  redirect: string;
435
- method: "GET" | "POST";
447
+ method: httpMethod;
436
448
  };
437
- declare function fetchOptionsJson(data: Object, method?: "GET" | "POST"): {
449
+ declare function fetchOptionsJson(data: Object, method?: httpMethod): {
438
450
  headers: {
439
451
  "Content-Type": string;
440
452
  Accept: string;
@@ -442,7 +454,7 @@ declare function fetchOptionsJson(data: Object, method?: "GET" | "POST"): {
442
454
  body: string;
443
455
  cache: string;
444
456
  redirect: string;
445
- method: "GET" | "POST";
457
+ method: httpMethod;
446
458
  };
447
459
  declare function fetchText(url: string, opts?: any, fetchFn?: (input: RequestInfo, init?: RequestInit) => Promise<Response>): Promise<string | undefined>;
448
460
 
@@ -590,6 +602,7 @@ declare const getTimestamp: () => number;
590
602
  declare function formatMilliseconds(ms: number): string;
591
603
  declare function parseDate(...dateCandidates: (string | Date)[]): Date | undefined;
592
604
 
605
+ declare function uuidBytes(): Uint8Array;
593
606
  declare function uuid(): string;
594
607
  declare function uuidB32(): string;
595
608
  declare function uname(name?: string): string;
@@ -600,4 +613,4 @@ declare function suid(): string;
600
613
  declare function suidDate(id: string): Date;
601
614
  declare function suidBytesDate(id: Uint8Array): Date;
602
615
 
603
- export { roundHalfDown as $, stringToInteger as A, BinInput as B, stringToFloat as C, valueToBoolean as D, valueToInteger as E, valueToFloat as F, valueToString as G, toFloat as H, toInt as I, toString as J, toBool as K, formatMessages as L, renderMessages as M, fixBrokenUth8String as N, CurrencyInput as O, currency as P, Currency as Q, RenderMessagesOptions as R, RoundingMode as S, isHalf as T, UInt8ArrayToString as U, isEven as V, roundUp as W, roundDown as X, roundHalfUp as Y, roundHalfOdd as Z, roundHalfAwayFromZero as _, deriveKeyPbkdf2 as a, LoggerConsoleHandler as a$, roundHalfEven as a0, roundHalfTowardsZero as a1, DAY_MS as a2, DayInput as a3, Day as a4, forEachDay as a5, today as a6, escapeHTML as a7, unescapeHTML as a8, jsonStringify as a9, arraySetElement as aA, arrayFilterInPlace as aB, arrayToggleInPlace as aC, arrayEmptyInPlace as aD, arraySorted as aE, arraySortedNumbers as aF, arrayIsEqual as aG, arrayShuffleInPlace as aH, arrayShuffle as aI, arrayShuffleForce as aJ, arrayRandomElement as aK, arrayMax as aL, arrayMin as aM, isObject as aN, isPrimitive as aO, deepEqual as aP, deepMerge as aQ, DisposerFunction as aR, Disposer as aS, Disposable as aT, callDisposer as aU, useDisposer as aV, useTimeout as aW, useInterval as aX, useEventListener as aY, getGlobalContext as aZ, isLocalHost as a_, parseOrderby as aa, composeOrderby as ab, cmp as ac, sortedOrderby as ad, toValidFilename as ae, escapeRegExp as af, SortableItem as ag, startSortWeight as ah, endSortWeight as ai, moveSortWeight as aj, sortedItems as ak, linkifyPlainText as al, toHumanReadableUrl as am, encodeQuery as an, parseQuery as ao, size as ap, last as aq, empty as ar, cloneObject as as, arrayUnique as at, arrayMinus as au, arrayUnion as av, arrayFlatten as aw, arrayIntersection as ax, arraySymmetricDifference as ay, arrayRemoveElement as az, decodeBase16 as b, NestedArray as b$, getNamespaceFilterString as b0, useNamespaceFilter as b1, useLevelFilter as b2, ChannelMessageEvent as b3, Channel as b4, LocalChannel as b5, fakeWorkerPair as b6, EmitterHandler as b7, EmitterAllHandler as b8, ListenerSignature as b9, getNavigator as bA, getGlobal as bB, detect as bC, isBrowser as bD, platform as bE, useExitHandler as bF, sleep as bG, immediate as bH, timeoutReached as bI, timeout as bJ, timoutError as bK, isTimeout as bL, tryTimeout as bM, waitOn as bN, isPromise as bO, promisify as bP, SerialQueue as bQ, MemStorageOptions as bR, MemStorage as bS, throttle as bT, debounce as bU, throttleAnimationFrame as bV, getTimestamp as bW, formatMilliseconds as bX, parseDate as bY, Json as bZ, ObjectStorage as b_, DefaultListener as ba, Emitter as bb, getGlobalEmitter as bc, messages as bd, lazyListener as be, Encoder as bf, JsonEncoder as bg, MessageAction as bh, MessageResult as bi, Message as bj, MessagesOptions as bk, MessagesDefaultMethods as bl, MessagesMethods as bm, MessageHub as bn, createPromiseProxy as bo, useMessageHub as bp, PubSub as bq, usePubSub as br, Mutex as bs, createMutex as bt, fetchBasic as bu, fetchJson as bv, fetchOptionsFormURLEncoded as bw, fetchOptionsJson as bx, fetchText as by, getWindow as bz, csv as c, uuid as c0, uuidB32 as c1, uname as c2, qid as c3, uuidv4 as c4, suidBytes as c5, suid as c6, suidDate as c7, suidBytesDate as c8, digest as d, encodeBase16 as e, encodeBase32 as f, decodeBase32 as g, encodeBase58 as h, decodeBase58 as i, encodeBase62 as j, decodeBase62 as k, encodeBase64 as l, decodeBase64 as m, toHex as n, toBase64 as o, toBase64Url as p, equalBinary as q, randomUint8Array as r, stringToUInt8Array as s, toUint8Array as t, useBase as u, toCamelCase as v, toCapitalize as w, toCapitalizeWords as x, fromCamelCase as y, stringToBoolean as z };
616
+ 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, useInterval 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, arrayFlatten as aA, arrayIntersection as aB, arraySymmetricDifference as aC, arrayRemoveElement as aD, arraySetElement as aE, arrayFilterInPlace as aF, arrayToggleInPlace as aG, arrayEmptyInPlace as aH, arraySorted as aI, arraySortedNumbers as aJ, arrayIsEqual as aK, arrayShuffleInPlace as aL, arrayShuffle as aM, arrayShuffleForce as aN, arrayRandomElement as aO, arrayMax as aP, arrayMin as aQ, isObject as aR, isPrimitive as aS, deepEqual as aT, deepMerge as aU, DisposerFunction as aV, Disposer as aW, Disposable as aX, callDisposer as aY, useDisposer as aZ, useTimeout as a_, today as aa, escapeHTML as ab, unescapeHTML as ac, jsonStringify as ad, parseOrderby as ae, composeOrderby as af, cmp as ag, sortedOrderby as ah, toValidFilename as ai, escapeRegExp as aj, SortableItem as ak, startSortWeight as al, endSortWeight as am, moveSortWeight as an, sortedItems as ao, linkifyPlainText as ap, toHumanReadableUrl as aq, encodeQuery as ar, parseQuery as as, size as at, last as au, empty as av, cloneObject as aw, arrayUnique as ax, arrayMinus as ay, arrayUnion as az, decrypt as b, debounce as b$, useEventListener as b0, getGlobalContext as b1, isLocalHost as b2, LoggerConsoleHandler as b3, getNamespaceFilterString as b4, useNamespaceFilter as b5, useLevelFilter as b6, ChannelMessageEvent as b7, Channel as b8, LocalChannel as b9, httpMethod as bA, fetchBasic as bB, fetchJson as bC, fetchOptionsFormURLEncoded as bD, fetchOptionsJson as bE, fetchText as bF, getWindow as bG, getNavigator as bH, getGlobal as bI, detect as bJ, isBrowser as bK, platform as bL, useExitHandler as bM, sleep as bN, immediate as bO, timeoutReached as bP, timeout as bQ, timoutError as bR, isTimeout as bS, tryTimeout as bT, waitOn as bU, isPromise as bV, promisify as bW, SerialQueue as bX, MemStorageOptions as bY, MemStorage as bZ, throttle as b_, fakeWorkerPair as ba, EmitterHandler as bb, EmitterAllHandler as bc, ListenerSignature as bd, DefaultListener as be, Emitter as bf, getGlobalEmitter as bg, messages as bh, lazyListener as bi, Encoder as bj, JsonEncoder as bk, CryptoEncoder as bl, MessageAction as bm, MessageResult as bn, Message as bo, MessagesOptions as bp, MessagesDefaultMethods as bq, MessagesMethods as br, MessageDefinitions as bs, MessageHub as bt, createPromiseProxy as bu, useMessageHub as bv, PubSub as bw, usePubSub as bx, Mutex as by, createMutex as bz, csv as c, throttleAnimationFrame as c0, getTimestamp as c1, formatMilliseconds as c2, parseDate as c3, Json as c4, ObjectStorage as c5, NestedArray as c6, uuidBytes as c7, uuid as c8, uuidB32 as c9, uname as ca, qid as cb, uuidv4 as cc, suidBytes as cd, suid as ce, suidDate as cf, suidBytesDate as cg, 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zeed",
3
- "version": "0.7.76",
3
+ "version": "0.7.80",
4
4
  "description": "🌱 Simple foundation library",
5
5
  "keywords": [
6
6
  "foundation",
@@ -45,12 +45,12 @@
45
45
  "test": "jest src"
46
46
  },
47
47
  "devDependencies": {
48
- "@types/jest": "^27.0.2",
49
- "@types/node": "^16.11.6",
48
+ "@types/jest": "^27.0.3",
49
+ "@types/node": "^16.11.10",
50
50
  "cross-fetch": "^3.1.4",
51
51
  "jest": "^27.3.1",
52
52
  "ts-jest": "^27.0.7",
53
- "tsup": "^5.5.0",
54
- "typescript": "^4.4.4"
53
+ "tsup": "^5.10.0",
54
+ "typescript": "^4.5.2"
55
55
  }
56
56
  }
@@ -1,3 +0,0 @@
1
- import{LogLevel,Logger,__name,__spreadProps,__spreadValues,getGlobalContext,getTimestamp}from"./chunk-GILANOH3.js";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 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");async function digest(message,algorithm="SHA-256"){return await crypto.subtle.digest(algorithm,toUint8Array(message))}__name(digest,"digest");async function deriveKeyPbkdf2(secret,opt={}){var _a,_b;const secretBuffer=toUint8Array(secret);const keyMaterial=await crypto.subtle.importKey("raw",secretBuffer,"PBKDF2",false,["deriveKey"]);return await crypto.subtle.deriveKey({name:"PBKDF2",salt:toUint8Array((_a=opt.salt)!=null?_a:""),iterations:(_b=opt.iterations)!=null?_b:1e5,hash:"SHA-256"},keyMaterial,{name:"AES-GCM",length:256},true,["encrypt","decrypt"])}__name(deriveKeyPbkdf2,"deriveKeyPbkdf2");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 log=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){log.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");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");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");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 uuid(){return encode62(randomUint8Array(16),22)}__name(uuid,"uuid");function uuidB32(){return encode32(randomUint8Array(16),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 log2=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){log2.warn("emit warning:",err)}});ok=true;await Promise.all(all)}}catch(err){log2.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{log2.error(name,"Cannot listen to key")}}else{if(emitter.onAny){emitter.onAny((key,obj)=>{incoming(key,obj)})}else{log2.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){log2.warn(name,`Unhandled event ${key} with value: ${ev.obj}`);continue}reject(`Expected ${key}, but found ${ev.key} with value=${ev.obj}`);log2.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 JSON.stringify(data)}async decode(data){return JSON.parse(data)}};__name(JsonEncoder,"JsonEncoder");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 log6=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){log6.warn("postMessage",err);break}}}if(queue.length>0&&retryAfter>0){queueRetryTimer=setTimeout(postNext,retryAfter)}}},"postNext");const postMessage=__name(message=>{log6("enqueue postMessage",message);queue.push(message);postNext()},"postMessage");const connect=__name(async newChannel=>{channel=newChannel;channel.on("connect",postNext);channel.on("message",async msg=>{log6("onmessage",typeof msg);const{name:name2,args,id,result,error}=await encoder.decode(msg.data);if(name2){log6(`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;log6(`result ${result2}`);if(id){postMessage({id,result:result2})}}catch(error2){let err=error2 instanceof Error?error2:new Error(valueToString(error2));log6.warn("execution error",err.name);postMessage({id,error:{message:err.message,stack:err.stack,name:err.name}})}}else if(id){log6(`response for id=${id}: result=${result}, error=${error}`);if(waitingForResponse[id]==null){if(result===void 0){log6(`skip response for ${id}`)}else{log6.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;log6.warn("reject",err.name);reject(err)}else{log6("resolve",result);resolve(result)}}}}else if(!ignoreUnhandled){log6.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 log3=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{log3.warn(`Fetch of ${url} with ${fetchOptions} returned status=${response.status}`);log3.warn(`Response: ${await response.text()}`)}catch(err){log3.error("Exception:",err)}}catch(err){log3.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){log3.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){log3.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 log4=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){log4.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 log5=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,randomUint8Array,digest,deriveKeyPbkdf2,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,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,escapeHTML,unescapeHTML,toValidFilename,escapeRegExp,startSortWeight,endSortWeight,moveSortWeight,sortedItems,linkifyPlainText,toHumanReadableUrl,encodeQuery,parseQuery,size,last,empty,cloneObject,callDisposer,useDisposer,useTimeout,useInterval,useEventListener,isLocalHost,uuid,uuidB32,uname,qid,uuidv4,suidBytes,suid,suidDate,suidBytesDate,Emitter,getGlobalEmitter,messages,lazyListener,Channel,LocalChannel,fakeWorkerPair,JsonEncoder,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-GXWBIUI5.js.map