zeed 0.13.21 → 0.13.22

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,5 +1,5 @@
1
- import { J as Json, O as ObjectStorage, L as LogHandlerOptions, a as LogHandler, b as LogLevelAliasType, c as LoggerInterface } from './uuid-c28d44c0.js';
2
- export { el as ArgumentsType, d4 as AsyncMutex, dp as AsyncReturnType, aa as BinInput, B as BinaryEncoder, n as CRYPTO_DEFAULT_ALG, o as CRYPTO_DEFAULT_DERIVE_ALG, p as CRYPTO_DEFAULT_DERIVE_ITERATIONS, C as CRYPTO_DEFAULT_HASH_ALG, dW as Channel, dV as ChannelMessageEvent, e8 as CryptoEncoder, aV as DAY_MS, aQ as Day, aX as DayInput, aP as DayInputLegacy, aW as DayValue, bi as DecimalInput, bh as DecimalValue, e0 as DefaultListener, dz as DefaultLogger, br as Difference, bq as DifferenceType, cX as Disposer, cW as DisposerFunction, e2 as Emitter, d_ as EmitterAllHandler, dZ as EmitterHandler, e1 as EmitterSubscriberOptions, e5 as Encoder, bR as FilterFunction, e7 as JsonEncoder, d$ as ListenerSignature, dX as LocalChannel, dA as LogLevel, dI as LogLevelAlias, dJ as LogLevelAliasKey, dB as LogLevelAll, dC as LogLevelDebug, dF as LogLevelError, dG as LogLevelFatal, dD as LogLevelInfo, dH as LogLevelOff, dE as LogLevelWarn, dK as LogMessage, dN as LoggerConsoleHandler, dO as LoggerContext, dL as LoggerContextInterface, dU as LoggerMemoryHandler, bS as MapperFunction, eJ as MemStorage, eI as MemStorageOptions, eb as Message, e9 as MessageAction, ef as MessageDefinitions, eg as MessageHub, ea as MessageResult, ed as MessagesDefaultMethods, ee as MessagesMethods, ec as MessagesOptions, d3 as Mutex, eP as NestedArray, e6 as NoopEncoder, d8 as PoolConfig, db as PoolTask, dc as PoolTaskEvents, d9 as PoolTaskFn, d7 as PoolTaskIdConflictResolution, da as PoolTaskState, bv as Primitive, de as Progress, ej as PubSub, ep as RPCFn, eo as RPCOptions, en as RPCOptionsBasic, eq as RPCReturn, aG as RenderMessagesOptions, em as ReturnType, cf as RoundingMode, ds as SerialQueue, cq as SortableItem, dr as TaskEvents, dq as TaskFn, aO as Uint8ArrayToDataUri, aq as Uint8ArrayToHexDump, ap as Uint8ArrayToJson, ae as Uint8ArrayToString, cM as Uint8ArrayToWords, cV as UseDefer, cT as UseDispose, cR as UseDisposeConfig, d2 as UseDisposeWithUtils, et as UseRPCHubType, cQ as XRX, ac as _decodeUtf8Polyfill, ab as _encodeUtf8Polyfill, $ as _useBase, Y as arrayAvg, Z as arrayBatches, M as arrayEmptyInPlace, I as arrayFilterInPlace, D as arrayFlatten, E as arrayIntersection, Q as arrayIsEqual, V as arrayMax, W as arrayMin, z as arrayMinus, U as arrayRandomElement, G as arrayRemoveElement, H as arraySetElement, S as arrayShuffle, T as arrayShuffleForce, R as arrayShuffleInPlace, N as arraySorted, P as arraySortedNumbers, X as arraySum, F as arraySymmetricDifference, K as arrayToggleInPlace, A as arrayUnion, y as arrayUnique, d as assert, e as assertCondition, c2 as avg, c0 as between, k as bitfield, l as blobToArrayBuffer, aN as blobToDataUri, m as blobToUint8Array, dM as browserSelectColorByName, cI as cloneJsonObject, cH as cloneObject, cb as cmp, ca as composeOrderby, _ as createArray, j as createBinaryStreamDecoder, i as createBinaryStreamEncoder, dY as createLocalChannelPair, df as createPromise, eh as createPromiseProxy, w as csvParse, x as csvParseToObjects, v as csvStringify, aM as dataUriToBlob, aL as dataUriToMimeType, aK as dataUriToUint8Array, aU as dateStringToDays, aT as day, a_ as dayDay, be as dayDiff, b2 as dayFromAny, b4 as dayFromDate, b5 as dayFromDateGMT, b9 as dayFromParts, ba as dayFromString, b7 as dayFromTimestamp, b1 as dayFromToday, bg as dayIterator, aZ as dayMonth, bb as dayMonthStart, bd as dayOffset, bf as dayRange, b0 as dayToDate, b3 as dayToDateGMT, a$ as dayToParts, b8 as dayToString, b6 as dayToTimestamp, aY as dayYear, bc as dayYearStart, du as debounce, cw as deburr, bj as decimal, bm as decimalCentsPart, bk as decimalFromCents, bl as decimalToCents, a4 as decodeBase16, a2 as decodeBase32, a6 as decodeBase58, a8 as decodeBase62, h as decodeJson, u as decrypt, bn as deepEqual, bp as deepMerge, bo as deepStripUndefinedInPlace, s as deriveKeyPbkdf2, eF as detect, bs as diffObjects, q as digest, eO as duration, cG as empty, a3 as encodeBase16, a1 as encodeBase32, a5 as encodeBase58, a7 as encodeBase62, g as encodeJson, cz as encodeQuery, t as encrypt, cs as endSortWeight, cB as ensureKey, cC as ensureKeyAsync, an as equalBinary, bt as escapeHTML, ce as escapeRegExp, a9 as estimateSizeForBase, f as fatal, ew as fetchBasic, ex as fetchJson, eB as fetchOptionsBasicAuth, ez as fetchOptionsFormURLEncoded, eA as fetchOptionsJson, ey as fetchText, cE as first, aJ as fixBrokenUth8String, aR as forEachDay, cL as forTimes, aH as formatMessages, eL as formatMilliseconds, al as fromBase64, am as fromBase64String, au as fromCamelCase, ai as fromHex, eE as getGlobal, dv as getGlobalContext, e3 as getGlobalEmitter, dx as getGlobalLogger, dy as getGlobalLoggerIfExists, dP as getNamespaceFilterString, eD as getNavigator, eN as getPerformanceTimestamp, bX as getSecureRandom, bY as getSecureRandomIfPossible, eK as getTimestamp, eC as getWindow, eu as httpMethod, dh as immediate, by as isArray, bF as isBoolean, eG as isBrowser, bK as isEmpty, ch as isEven, cg as isHalf, bD as isInteger, dw as isLocalHost, bL as isNotEmpty, bJ as isNotNull, bH as isNull, bG as isNullOrUndefined, bC as isNumber, bw as isObject, c4 as isPrime, c3 as isPrimeRX, bx as isPrimitive, dm as isPromise, bz as isRecord, bA as isRecordPlain, bE as isSafeInteger, bB as isString, dj as isTimeout, bN as isTruthy, bI as isUint8Array, bM as isValue, dT as joinLogStrings, ag as joinToUint8Array, bQ as jsonStringify, bP as jsonStringifySafe, bO as jsonStringifySorted, ao as jsonToUint8Array, cF as last, e4 as lazyListener, cx as linkifyPlainText, bV as listDistinctUnion, bU as listGroupBy, bW as listOfKey, bT as listQuery, cJ as memoize, cK as memoizeAsync, ct as moveSortWeight, eQ as noop, c8 as objectIsEmpty, c6 as objectMap, c7 as objectMergeDisposable, ev as parseBasicAuth, eM as parseDate, dR as parseLogLevel, c9 as parseOrderby, cA as parseQuery, dn as promisify, fa as qid, bZ as randomBoolean, b$ as randomFloat, b_ as randomInt, r as randomUint8Array, cP as regExpEscape, cO as regExpString, aI as renderMessages, cj as roundDown, cm as roundHalfAwayFromZero, cn as roundHalfDown, co as roundHalfEven, cl as roundHalfOdd, cp as roundHalfTowardsZero, ck as roundHalfUp, ci as roundUp, c5 as seededRandom, f4 as setUuidDefaultEncoding, cD as size, dg as sleep, cu as sortedItems, cc as sortedOrderby, cr as startSortWeight, av as stringToBoolean, ax as stringToFloat, aw as stringToInteger, ad as stringToUInt8Array, f0 as suid, e$ as suidBytes, f2 as suidBytesDate, f1 as suidDate, c1 as sum, dt as throttle, di as timeout, aj as toBase64, ak as toBase64Url, aF as toBool, ar as toCamelCase, as as toCapitalize, at as toCapitalizeWords, aC as toFloat, ah as toHex, cy as toHumanReadableUrl, aD as toInt, aE as toString, af as toUint8Array, cd as toValidFilename, aS as today, dk as tryTimeout, f9 as uname, bu as unescapeHTML, d6 as useAsyncMutex, a0 as useBase, cU as useDefer, cS as useDispose, d1 as useDisposeWithUtils, c$ as useEventListener, d0 as useEventListenerOnce, eH as useExitHandler, cZ as useInterval, c_ as useIntervalPause, dS as useLevelFilter, ei as useMessageHub, d5 as useMutex, dQ as useNamespaceFilter, dd as usePool, ek as usePubSub, er as useRPC, es as useRPCHub, cv as useSorted, cY as useTimeout, f5 as uuid, f3 as uuid32bit, eV as uuidB32, eS as uuidB62, eR as uuidBytes, f6 as uuidDecode, eX as uuidDecodeB32, eU as uuidDecodeB62, e_ as uuidDecodeV4, f7 as uuidEncode, eW as uuidEncodeB32, eT as uuidEncodeB62, eZ as uuidEncodeV4, f8 as uuidIsValid, eY as uuidv4, ay as valueToBoolean, aA as valueToFloat, az as valueToInteger, aB as valueToString, dl as waitOn, cN as wordsToUint8Array } from './uuid-c28d44c0.js';
1
+ import { J as Json, O as ObjectStorage, L as LogHandlerOptions, a as LogHandler, b as LogLevelAliasType, c as LoggerInterface } from './uuid-23c16c7c.js';
2
+ export { em as ArgumentsType, d5 as AsyncMutex, dq as AsyncReturnType, ab as BinInput, B as BinaryEncoder, n as CRYPTO_DEFAULT_ALG, o as CRYPTO_DEFAULT_DERIVE_ALG, p as CRYPTO_DEFAULT_DERIVE_ITERATIONS, C as CRYPTO_DEFAULT_HASH_ALG, dX as Channel, dW as ChannelMessageEvent, e9 as CryptoEncoder, aW as DAY_MS, aR as Day, aY as DayInput, aQ as DayInputLegacy, aX as DayValue, bj as DecimalInput, bi as DecimalValue, e1 as DefaultListener, dA as DefaultLogger, bs as Difference, br as DifferenceType, cY as Disposer, cX as DisposerFunction, e3 as Emitter, d$ as EmitterAllHandler, d_ as EmitterHandler, e2 as EmitterSubscriberOptions, e6 as Encoder, bS as FilterFunction, e8 as JsonEncoder, e0 as ListenerSignature, dY as LocalChannel, dB as LogLevel, dJ as LogLevelAlias, dK as LogLevelAliasKey, dC as LogLevelAll, dD as LogLevelDebug, dG as LogLevelError, dH as LogLevelFatal, dE as LogLevelInfo, dI as LogLevelOff, dF as LogLevelWarn, dL as LogMessage, dO as LoggerConsoleHandler, dP as LoggerContext, dM as LoggerContextInterface, dV as LoggerMemoryHandler, bT as MapperFunction, eK as MemStorage, eJ as MemStorageOptions, ec as Message, ea as MessageAction, eg as MessageDefinitions, eh as MessageHub, eb as MessageResult, ee as MessagesDefaultMethods, ef as MessagesMethods, ed as MessagesOptions, d4 as Mutex, eQ as NestedArray, e7 as NoopEncoder, d9 as PoolConfig, dc as PoolTask, dd as PoolTaskEvents, da as PoolTaskFn, d8 as PoolTaskIdConflictResolution, db as PoolTaskState, bw as Primitive, df as Progress, ek as PubSub, eq as RPCFn, ep as RPCOptions, eo as RPCOptionsBasic, er as RPCReturn, aH as RenderMessagesOptions, en as ReturnType, cg as RoundingMode, dt as SerialQueue, cr as SortableItem, ds as TaskEvents, dr as TaskFn, aP as Uint8ArrayToDataUri, ar as Uint8ArrayToHexDump, aq as Uint8ArrayToJson, af as Uint8ArrayToString, cN as Uint8ArrayToWords, cW as UseDefer, cU as UseDispose, cS as UseDisposeConfig, d3 as UseDisposeWithUtils, eu as UseRPCHubType, cR as XRX, ad as _decodeUtf8Polyfill, ac as _encodeUtf8Polyfill, a0 as _useBase, Z as arrayAvg, _ as arrayBatches, M as arrayEmptyInPlace, I as arrayFilterInPlace, D as arrayFlatten, E as arrayIntersection, R as arrayIsEqual, W as arrayMax, X as arrayMin, z as arrayMinus, V as arrayRandomElement, G as arrayRemoveElement, N as arraySetArrayInPlace, H as arraySetElement, T as arrayShuffle, U as arrayShuffleForce, S as arrayShuffleInPlace, P as arraySorted, Q as arraySortedNumbers, Y as arraySum, F as arraySymmetricDifference, K as arrayToggleInPlace, A as arrayUnion, y as arrayUnique, d as assert, e as assertCondition, c3 as avg, c1 as between, k as bitfield, l as blobToArrayBuffer, aO as blobToDataUri, m as blobToUint8Array, dN as browserSelectColorByName, cJ as cloneJsonObject, cI as cloneObject, cc as cmp, cb as composeOrderby, $ as createArray, j as createBinaryStreamDecoder, i as createBinaryStreamEncoder, dZ as createLocalChannelPair, dg as createPromise, ei as createPromiseProxy, w as csvParse, x as csvParseToObjects, v as csvStringify, aN as dataUriToBlob, aM as dataUriToMimeType, aL as dataUriToUint8Array, aV as dateStringToDays, aU as day, a$ as dayDay, bf as dayDiff, b3 as dayFromAny, b5 as dayFromDate, b6 as dayFromDateGMT, ba as dayFromParts, bb as dayFromString, b8 as dayFromTimestamp, b2 as dayFromToday, bh as dayIterator, a_ as dayMonth, bc as dayMonthStart, be as dayOffset, bg as dayRange, b1 as dayToDate, b4 as dayToDateGMT, b0 as dayToParts, b9 as dayToString, b7 as dayToTimestamp, aZ as dayYear, bd as dayYearStart, dv as debounce, cx as deburr, bk as decimal, bn as decimalCentsPart, bl as decimalFromCents, bm as decimalToCents, a5 as decodeBase16, a3 as decodeBase32, a7 as decodeBase58, a9 as decodeBase62, h as decodeJson, u as decrypt, bo as deepEqual, bq as deepMerge, bp as deepStripUndefinedInPlace, s as deriveKeyPbkdf2, eG as detect, bt as diffObjects, q as digest, eP as duration, cH as empty, a4 as encodeBase16, a2 as encodeBase32, a6 as encodeBase58, a8 as encodeBase62, g as encodeJson, cA as encodeQuery, t as encrypt, ct as endSortWeight, cC as ensureKey, cD as ensureKeyAsync, ao as equalBinary, bu as escapeHTML, cf as escapeRegExp, aa as estimateSizeForBase, f as fatal, ex as fetchBasic, ey as fetchJson, eC as fetchOptionsBasicAuth, eA as fetchOptionsFormURLEncoded, eB as fetchOptionsJson, ez as fetchText, cF as first, aK as fixBrokenUth8String, aS as forEachDay, cM as forTimes, aI as formatMessages, eM as formatMilliseconds, am as fromBase64, an as fromBase64String, av as fromCamelCase, aj as fromHex, eF as getGlobal, dw as getGlobalContext, e4 as getGlobalEmitter, dy as getGlobalLogger, dz as getGlobalLoggerIfExists, dQ as getNamespaceFilterString, eE as getNavigator, eO as getPerformanceTimestamp, bY as getSecureRandom, bZ as getSecureRandomIfPossible, eL as getTimestamp, eD as getWindow, ev as httpMethod, di as immediate, bz as isArray, bG as isBoolean, eH as isBrowser, bL as isEmpty, ci as isEven, ch as isHalf, bE as isInteger, dx as isLocalHost, bM as isNotEmpty, bK as isNotNull, bI as isNull, bH as isNullOrUndefined, bD as isNumber, bx as isObject, c5 as isPrime, c4 as isPrimeRX, by as isPrimitive, dn as isPromise, bA as isRecord, bB as isRecordPlain, bF as isSafeInteger, bC as isString, dk as isTimeout, bO as isTruthy, bJ as isUint8Array, bN as isValue, dU as joinLogStrings, ah as joinToUint8Array, bR as jsonStringify, bQ as jsonStringifySafe, bP as jsonStringifySorted, ap as jsonToUint8Array, cG as last, e5 as lazyListener, cy as linkifyPlainText, bW as listDistinctUnion, bV as listGroupBy, bX as listOfKey, bU as listQuery, cK as memoize, cL as memoizeAsync, cu as moveSortWeight, eR as noop, c9 as objectIsEmpty, c7 as objectMap, c8 as objectMergeDisposable, ew as parseBasicAuth, eN as parseDate, dS as parseLogLevel, ca as parseOrderby, cB as parseQuery, dp as promisify, fb as qid, b_ as randomBoolean, c0 as randomFloat, b$ as randomInt, r as randomUint8Array, cQ as regExpEscape, cP as regExpString, aJ as renderMessages, ck as roundDown, cn as roundHalfAwayFromZero, co as roundHalfDown, cp as roundHalfEven, cm as roundHalfOdd, cq as roundHalfTowardsZero, cl as roundHalfUp, cj as roundUp, c6 as seededRandom, f5 as setUuidDefaultEncoding, cE as size, dh as sleep, cv as sortedItems, cd as sortedOrderby, cs as startSortWeight, aw as stringToBoolean, ay as stringToFloat, ax as stringToInteger, ae as stringToUInt8Array, f1 as suid, f0 as suidBytes, f3 as suidBytesDate, f2 as suidDate, c2 as sum, du as throttle, dj as timeout, ak as toBase64, al as toBase64Url, aG as toBool, as as toCamelCase, at as toCapitalize, au as toCapitalizeWords, aD as toFloat, ai as toHex, cz as toHumanReadableUrl, aE as toInt, aF as toString, ag as toUint8Array, ce as toValidFilename, aT as today, dl as tryTimeout, fa as uname, bv as unescapeHTML, d7 as useAsyncMutex, a1 as useBase, cV as useDefer, cT as useDispose, d2 as useDisposeWithUtils, d0 as useEventListener, d1 as useEventListenerOnce, eI as useExitHandler, c_ as useInterval, c$ as useIntervalPause, dT as useLevelFilter, ej as useMessageHub, d6 as useMutex, dR as useNamespaceFilter, de as usePool, el as usePubSub, es as useRPC, et as useRPCHub, cw as useSorted, cZ as useTimeout, f6 as uuid, f4 as uuid32bit, eW as uuidB32, eT as uuidB62, eS as uuidBytes, f7 as uuidDecode, eY as uuidDecodeB32, eV as uuidDecodeB62, e$ as uuidDecodeV4, f8 as uuidEncode, eX as uuidEncodeB32, eU as uuidEncodeB62, e_ as uuidEncodeV4, f9 as uuidIsValid, eZ as uuidv4, az as valueToBoolean, aB as valueToFloat, aA as valueToInteger, aC as valueToString, dm as waitOn, cO as wordsToUint8Array } from './uuid-23c16c7c.js';
3
3
 
4
4
  /** @deprecated use fromBase64 instead */
5
5
  declare function urlBase64ToUint8Array(base64String: string): Uint8Array | undefined;
@@ -1,5 +1,5 @@
1
- import { J as Json, O as ObjectStorage, L as LogHandlerOptions, a as LogHandler, b as LogLevelAliasType, c as LoggerInterface } from './uuid-c28d44c0.js';
2
- export { el as ArgumentsType, d4 as AsyncMutex, dp as AsyncReturnType, aa as BinInput, B as BinaryEncoder, n as CRYPTO_DEFAULT_ALG, o as CRYPTO_DEFAULT_DERIVE_ALG, p as CRYPTO_DEFAULT_DERIVE_ITERATIONS, C as CRYPTO_DEFAULT_HASH_ALG, dW as Channel, dV as ChannelMessageEvent, e8 as CryptoEncoder, aV as DAY_MS, aQ as Day, aX as DayInput, aP as DayInputLegacy, aW as DayValue, bi as DecimalInput, bh as DecimalValue, e0 as DefaultListener, dz as DefaultLogger, br as Difference, bq as DifferenceType, cX as Disposer, cW as DisposerFunction, e2 as Emitter, d_ as EmitterAllHandler, dZ as EmitterHandler, e1 as EmitterSubscriberOptions, e5 as Encoder, bR as FilterFunction, e7 as JsonEncoder, d$ as ListenerSignature, dX as LocalChannel, dA as LogLevel, dI as LogLevelAlias, dJ as LogLevelAliasKey, dB as LogLevelAll, dC as LogLevelDebug, dF as LogLevelError, dG as LogLevelFatal, dD as LogLevelInfo, dH as LogLevelOff, dE as LogLevelWarn, dK as LogMessage, dN as LoggerConsoleHandler, dO as LoggerContext, dL as LoggerContextInterface, dU as LoggerMemoryHandler, bS as MapperFunction, eJ as MemStorage, eI as MemStorageOptions, eb as Message, e9 as MessageAction, ef as MessageDefinitions, eg as MessageHub, ea as MessageResult, ed as MessagesDefaultMethods, ee as MessagesMethods, ec as MessagesOptions, d3 as Mutex, eP as NestedArray, e6 as NoopEncoder, d8 as PoolConfig, db as PoolTask, dc as PoolTaskEvents, d9 as PoolTaskFn, d7 as PoolTaskIdConflictResolution, da as PoolTaskState, bv as Primitive, de as Progress, ej as PubSub, ep as RPCFn, eo as RPCOptions, en as RPCOptionsBasic, eq as RPCReturn, aG as RenderMessagesOptions, em as ReturnType, cf as RoundingMode, ds as SerialQueue, cq as SortableItem, dr as TaskEvents, dq as TaskFn, aO as Uint8ArrayToDataUri, aq as Uint8ArrayToHexDump, ap as Uint8ArrayToJson, ae as Uint8ArrayToString, cM as Uint8ArrayToWords, cV as UseDefer, cT as UseDispose, cR as UseDisposeConfig, d2 as UseDisposeWithUtils, et as UseRPCHubType, cQ as XRX, ac as _decodeUtf8Polyfill, ab as _encodeUtf8Polyfill, $ as _useBase, Y as arrayAvg, Z as arrayBatches, M as arrayEmptyInPlace, I as arrayFilterInPlace, D as arrayFlatten, E as arrayIntersection, Q as arrayIsEqual, V as arrayMax, W as arrayMin, z as arrayMinus, U as arrayRandomElement, G as arrayRemoveElement, H as arraySetElement, S as arrayShuffle, T as arrayShuffleForce, R as arrayShuffleInPlace, N as arraySorted, P as arraySortedNumbers, X as arraySum, F as arraySymmetricDifference, K as arrayToggleInPlace, A as arrayUnion, y as arrayUnique, d as assert, e as assertCondition, c2 as avg, c0 as between, k as bitfield, l as blobToArrayBuffer, aN as blobToDataUri, m as blobToUint8Array, dM as browserSelectColorByName, cI as cloneJsonObject, cH as cloneObject, cb as cmp, ca as composeOrderby, _ as createArray, j as createBinaryStreamDecoder, i as createBinaryStreamEncoder, dY as createLocalChannelPair, df as createPromise, eh as createPromiseProxy, w as csvParse, x as csvParseToObjects, v as csvStringify, aM as dataUriToBlob, aL as dataUriToMimeType, aK as dataUriToUint8Array, aU as dateStringToDays, aT as day, a_ as dayDay, be as dayDiff, b2 as dayFromAny, b4 as dayFromDate, b5 as dayFromDateGMT, b9 as dayFromParts, ba as dayFromString, b7 as dayFromTimestamp, b1 as dayFromToday, bg as dayIterator, aZ as dayMonth, bb as dayMonthStart, bd as dayOffset, bf as dayRange, b0 as dayToDate, b3 as dayToDateGMT, a$ as dayToParts, b8 as dayToString, b6 as dayToTimestamp, aY as dayYear, bc as dayYearStart, du as debounce, cw as deburr, bj as decimal, bm as decimalCentsPart, bk as decimalFromCents, bl as decimalToCents, a4 as decodeBase16, a2 as decodeBase32, a6 as decodeBase58, a8 as decodeBase62, h as decodeJson, u as decrypt, bn as deepEqual, bp as deepMerge, bo as deepStripUndefinedInPlace, s as deriveKeyPbkdf2, eF as detect, bs as diffObjects, q as digest, eO as duration, cG as empty, a3 as encodeBase16, a1 as encodeBase32, a5 as encodeBase58, a7 as encodeBase62, g as encodeJson, cz as encodeQuery, t as encrypt, cs as endSortWeight, cB as ensureKey, cC as ensureKeyAsync, an as equalBinary, bt as escapeHTML, ce as escapeRegExp, a9 as estimateSizeForBase, f as fatal, ew as fetchBasic, ex as fetchJson, eB as fetchOptionsBasicAuth, ez as fetchOptionsFormURLEncoded, eA as fetchOptionsJson, ey as fetchText, cE as first, aJ as fixBrokenUth8String, aR as forEachDay, cL as forTimes, aH as formatMessages, eL as formatMilliseconds, al as fromBase64, am as fromBase64String, au as fromCamelCase, ai as fromHex, eE as getGlobal, dv as getGlobalContext, e3 as getGlobalEmitter, dx as getGlobalLogger, dy as getGlobalLoggerIfExists, dP as getNamespaceFilterString, eD as getNavigator, eN as getPerformanceTimestamp, bX as getSecureRandom, bY as getSecureRandomIfPossible, eK as getTimestamp, eC as getWindow, eu as httpMethod, dh as immediate, by as isArray, bF as isBoolean, eG as isBrowser, bK as isEmpty, ch as isEven, cg as isHalf, bD as isInteger, dw as isLocalHost, bL as isNotEmpty, bJ as isNotNull, bH as isNull, bG as isNullOrUndefined, bC as isNumber, bw as isObject, c4 as isPrime, c3 as isPrimeRX, bx as isPrimitive, dm as isPromise, bz as isRecord, bA as isRecordPlain, bE as isSafeInteger, bB as isString, dj as isTimeout, bN as isTruthy, bI as isUint8Array, bM as isValue, dT as joinLogStrings, ag as joinToUint8Array, bQ as jsonStringify, bP as jsonStringifySafe, bO as jsonStringifySorted, ao as jsonToUint8Array, cF as last, e4 as lazyListener, cx as linkifyPlainText, bV as listDistinctUnion, bU as listGroupBy, bW as listOfKey, bT as listQuery, cJ as memoize, cK as memoizeAsync, ct as moveSortWeight, eQ as noop, c8 as objectIsEmpty, c6 as objectMap, c7 as objectMergeDisposable, ev as parseBasicAuth, eM as parseDate, dR as parseLogLevel, c9 as parseOrderby, cA as parseQuery, dn as promisify, fa as qid, bZ as randomBoolean, b$ as randomFloat, b_ as randomInt, r as randomUint8Array, cP as regExpEscape, cO as regExpString, aI as renderMessages, cj as roundDown, cm as roundHalfAwayFromZero, cn as roundHalfDown, co as roundHalfEven, cl as roundHalfOdd, cp as roundHalfTowardsZero, ck as roundHalfUp, ci as roundUp, c5 as seededRandom, f4 as setUuidDefaultEncoding, cD as size, dg as sleep, cu as sortedItems, cc as sortedOrderby, cr as startSortWeight, av as stringToBoolean, ax as stringToFloat, aw as stringToInteger, ad as stringToUInt8Array, f0 as suid, e$ as suidBytes, f2 as suidBytesDate, f1 as suidDate, c1 as sum, dt as throttle, di as timeout, aj as toBase64, ak as toBase64Url, aF as toBool, ar as toCamelCase, as as toCapitalize, at as toCapitalizeWords, aC as toFloat, ah as toHex, cy as toHumanReadableUrl, aD as toInt, aE as toString, af as toUint8Array, cd as toValidFilename, aS as today, dk as tryTimeout, f9 as uname, bu as unescapeHTML, d6 as useAsyncMutex, a0 as useBase, cU as useDefer, cS as useDispose, d1 as useDisposeWithUtils, c$ as useEventListener, d0 as useEventListenerOnce, eH as useExitHandler, cZ as useInterval, c_ as useIntervalPause, dS as useLevelFilter, ei as useMessageHub, d5 as useMutex, dQ as useNamespaceFilter, dd as usePool, ek as usePubSub, er as useRPC, es as useRPCHub, cv as useSorted, cY as useTimeout, f5 as uuid, f3 as uuid32bit, eV as uuidB32, eS as uuidB62, eR as uuidBytes, f6 as uuidDecode, eX as uuidDecodeB32, eU as uuidDecodeB62, e_ as uuidDecodeV4, f7 as uuidEncode, eW as uuidEncodeB32, eT as uuidEncodeB62, eZ as uuidEncodeV4, f8 as uuidIsValid, eY as uuidv4, ay as valueToBoolean, aA as valueToFloat, az as valueToInteger, aB as valueToString, dl as waitOn, cN as wordsToUint8Array } from './uuid-c28d44c0.js';
1
+ import { J as Json, O as ObjectStorage, L as LogHandlerOptions, a as LogHandler, b as LogLevelAliasType, c as LoggerInterface } from './uuid-23c16c7c.js';
2
+ export { em as ArgumentsType, d5 as AsyncMutex, dq as AsyncReturnType, ab as BinInput, B as BinaryEncoder, n as CRYPTO_DEFAULT_ALG, o as CRYPTO_DEFAULT_DERIVE_ALG, p as CRYPTO_DEFAULT_DERIVE_ITERATIONS, C as CRYPTO_DEFAULT_HASH_ALG, dX as Channel, dW as ChannelMessageEvent, e9 as CryptoEncoder, aW as DAY_MS, aR as Day, aY as DayInput, aQ as DayInputLegacy, aX as DayValue, bj as DecimalInput, bi as DecimalValue, e1 as DefaultListener, dA as DefaultLogger, bs as Difference, br as DifferenceType, cY as Disposer, cX as DisposerFunction, e3 as Emitter, d$ as EmitterAllHandler, d_ as EmitterHandler, e2 as EmitterSubscriberOptions, e6 as Encoder, bS as FilterFunction, e8 as JsonEncoder, e0 as ListenerSignature, dY as LocalChannel, dB as LogLevel, dJ as LogLevelAlias, dK as LogLevelAliasKey, dC as LogLevelAll, dD as LogLevelDebug, dG as LogLevelError, dH as LogLevelFatal, dE as LogLevelInfo, dI as LogLevelOff, dF as LogLevelWarn, dL as LogMessage, dO as LoggerConsoleHandler, dP as LoggerContext, dM as LoggerContextInterface, dV as LoggerMemoryHandler, bT as MapperFunction, eK as MemStorage, eJ as MemStorageOptions, ec as Message, ea as MessageAction, eg as MessageDefinitions, eh as MessageHub, eb as MessageResult, ee as MessagesDefaultMethods, ef as MessagesMethods, ed as MessagesOptions, d4 as Mutex, eQ as NestedArray, e7 as NoopEncoder, d9 as PoolConfig, dc as PoolTask, dd as PoolTaskEvents, da as PoolTaskFn, d8 as PoolTaskIdConflictResolution, db as PoolTaskState, bw as Primitive, df as Progress, ek as PubSub, eq as RPCFn, ep as RPCOptions, eo as RPCOptionsBasic, er as RPCReturn, aH as RenderMessagesOptions, en as ReturnType, cg as RoundingMode, dt as SerialQueue, cr as SortableItem, ds as TaskEvents, dr as TaskFn, aP as Uint8ArrayToDataUri, ar as Uint8ArrayToHexDump, aq as Uint8ArrayToJson, af as Uint8ArrayToString, cN as Uint8ArrayToWords, cW as UseDefer, cU as UseDispose, cS as UseDisposeConfig, d3 as UseDisposeWithUtils, eu as UseRPCHubType, cR as XRX, ad as _decodeUtf8Polyfill, ac as _encodeUtf8Polyfill, a0 as _useBase, Z as arrayAvg, _ as arrayBatches, M as arrayEmptyInPlace, I as arrayFilterInPlace, D as arrayFlatten, E as arrayIntersection, R as arrayIsEqual, W as arrayMax, X as arrayMin, z as arrayMinus, V as arrayRandomElement, G as arrayRemoveElement, N as arraySetArrayInPlace, H as arraySetElement, T as arrayShuffle, U as arrayShuffleForce, S as arrayShuffleInPlace, P as arraySorted, Q as arraySortedNumbers, Y as arraySum, F as arraySymmetricDifference, K as arrayToggleInPlace, A as arrayUnion, y as arrayUnique, d as assert, e as assertCondition, c3 as avg, c1 as between, k as bitfield, l as blobToArrayBuffer, aO as blobToDataUri, m as blobToUint8Array, dN as browserSelectColorByName, cJ as cloneJsonObject, cI as cloneObject, cc as cmp, cb as composeOrderby, $ as createArray, j as createBinaryStreamDecoder, i as createBinaryStreamEncoder, dZ as createLocalChannelPair, dg as createPromise, ei as createPromiseProxy, w as csvParse, x as csvParseToObjects, v as csvStringify, aN as dataUriToBlob, aM as dataUriToMimeType, aL as dataUriToUint8Array, aV as dateStringToDays, aU as day, a$ as dayDay, bf as dayDiff, b3 as dayFromAny, b5 as dayFromDate, b6 as dayFromDateGMT, ba as dayFromParts, bb as dayFromString, b8 as dayFromTimestamp, b2 as dayFromToday, bh as dayIterator, a_ as dayMonth, bc as dayMonthStart, be as dayOffset, bg as dayRange, b1 as dayToDate, b4 as dayToDateGMT, b0 as dayToParts, b9 as dayToString, b7 as dayToTimestamp, aZ as dayYear, bd as dayYearStart, dv as debounce, cx as deburr, bk as decimal, bn as decimalCentsPart, bl as decimalFromCents, bm as decimalToCents, a5 as decodeBase16, a3 as decodeBase32, a7 as decodeBase58, a9 as decodeBase62, h as decodeJson, u as decrypt, bo as deepEqual, bq as deepMerge, bp as deepStripUndefinedInPlace, s as deriveKeyPbkdf2, eG as detect, bt as diffObjects, q as digest, eP as duration, cH as empty, a4 as encodeBase16, a2 as encodeBase32, a6 as encodeBase58, a8 as encodeBase62, g as encodeJson, cA as encodeQuery, t as encrypt, ct as endSortWeight, cC as ensureKey, cD as ensureKeyAsync, ao as equalBinary, bu as escapeHTML, cf as escapeRegExp, aa as estimateSizeForBase, f as fatal, ex as fetchBasic, ey as fetchJson, eC as fetchOptionsBasicAuth, eA as fetchOptionsFormURLEncoded, eB as fetchOptionsJson, ez as fetchText, cF as first, aK as fixBrokenUth8String, aS as forEachDay, cM as forTimes, aI as formatMessages, eM as formatMilliseconds, am as fromBase64, an as fromBase64String, av as fromCamelCase, aj as fromHex, eF as getGlobal, dw as getGlobalContext, e4 as getGlobalEmitter, dy as getGlobalLogger, dz as getGlobalLoggerIfExists, dQ as getNamespaceFilterString, eE as getNavigator, eO as getPerformanceTimestamp, bY as getSecureRandom, bZ as getSecureRandomIfPossible, eL as getTimestamp, eD as getWindow, ev as httpMethod, di as immediate, bz as isArray, bG as isBoolean, eH as isBrowser, bL as isEmpty, ci as isEven, ch as isHalf, bE as isInteger, dx as isLocalHost, bM as isNotEmpty, bK as isNotNull, bI as isNull, bH as isNullOrUndefined, bD as isNumber, bx as isObject, c5 as isPrime, c4 as isPrimeRX, by as isPrimitive, dn as isPromise, bA as isRecord, bB as isRecordPlain, bF as isSafeInteger, bC as isString, dk as isTimeout, bO as isTruthy, bJ as isUint8Array, bN as isValue, dU as joinLogStrings, ah as joinToUint8Array, bR as jsonStringify, bQ as jsonStringifySafe, bP as jsonStringifySorted, ap as jsonToUint8Array, cG as last, e5 as lazyListener, cy as linkifyPlainText, bW as listDistinctUnion, bV as listGroupBy, bX as listOfKey, bU as listQuery, cK as memoize, cL as memoizeAsync, cu as moveSortWeight, eR as noop, c9 as objectIsEmpty, c7 as objectMap, c8 as objectMergeDisposable, ew as parseBasicAuth, eN as parseDate, dS as parseLogLevel, ca as parseOrderby, cB as parseQuery, dp as promisify, fb as qid, b_ as randomBoolean, c0 as randomFloat, b$ as randomInt, r as randomUint8Array, cQ as regExpEscape, cP as regExpString, aJ as renderMessages, ck as roundDown, cn as roundHalfAwayFromZero, co as roundHalfDown, cp as roundHalfEven, cm as roundHalfOdd, cq as roundHalfTowardsZero, cl as roundHalfUp, cj as roundUp, c6 as seededRandom, f5 as setUuidDefaultEncoding, cE as size, dh as sleep, cv as sortedItems, cd as sortedOrderby, cs as startSortWeight, aw as stringToBoolean, ay as stringToFloat, ax as stringToInteger, ae as stringToUInt8Array, f1 as suid, f0 as suidBytes, f3 as suidBytesDate, f2 as suidDate, c2 as sum, du as throttle, dj as timeout, ak as toBase64, al as toBase64Url, aG as toBool, as as toCamelCase, at as toCapitalize, au as toCapitalizeWords, aD as toFloat, ai as toHex, cz as toHumanReadableUrl, aE as toInt, aF as toString, ag as toUint8Array, ce as toValidFilename, aT as today, dl as tryTimeout, fa as uname, bv as unescapeHTML, d7 as useAsyncMutex, a1 as useBase, cV as useDefer, cT as useDispose, d2 as useDisposeWithUtils, d0 as useEventListener, d1 as useEventListenerOnce, eI as useExitHandler, c_ as useInterval, c$ as useIntervalPause, dT as useLevelFilter, ej as useMessageHub, d6 as useMutex, dR as useNamespaceFilter, de as usePool, el as usePubSub, es as useRPC, et as useRPCHub, cw as useSorted, cZ as useTimeout, f6 as uuid, f4 as uuid32bit, eW as uuidB32, eT as uuidB62, eS as uuidBytes, f7 as uuidDecode, eY as uuidDecodeB32, eV as uuidDecodeB62, e$ as uuidDecodeV4, f8 as uuidEncode, eX as uuidEncodeB32, eU as uuidEncodeB62, e_ as uuidEncodeV4, f9 as uuidIsValid, eZ as uuidv4, az as valueToBoolean, aB as valueToFloat, aA as valueToInteger, aC as valueToString, dm as waitOn, cO as wordsToUint8Array } from './uuid-23c16c7c.js';
3
3
 
4
4
  /** @deprecated use fromBase64 instead */
5
5
  declare function urlBase64ToUint8Array(base64String: string): Uint8Array | undefined;
@@ -1,8 +1,8 @@
1
- import { X, fd, Xc, Zc, gd, ed, _c, Yc, bd, Se, ec } from './chunk-LJ2C27PI.js';
2
- export { od as BinaryEncoder, yd as CRYPTO_DEFAULT_ALG, zd as CRYPTO_DEFAULT_DERIVE_ALG, Ad as CRYPTO_DEFAULT_DERIVE_ITERATIONS, xd as CRYPTO_DEFAULT_HASH_ALG, je as Channel, oe as CryptoEncoder, cb as DAY_MS, yb as Day, dd as DefaultLogger, Md as Emitter, ne as JsonEncoder, ke as LocalChannel, i as LogLevelAlias, b as LogLevelAll, c as LogLevelDebug, f as LogLevelError, g as LogLevelFatal, d as LogLevelInfo, h as LogLevelOff, e as LogLevelWarn, $c as LoggerConsoleHandler, ad as LoggerContext, kd as LoggerMemoryHandler, Ue as MemStorage, me as NoopEncoder, ve as Progress, re as PubSub, xe as SerialQueue, Ua as Uint8ArrayToDataUri, ma as Uint8ArrayToHexDump, la as Uint8ArrayToJson, aa as Uint8ArrayToString, Rc as Uint8ArrayToWords, Vc as XRX, _ as _decodeUtf8Polyfill, Z as _encodeUtf8Polyfill, na as _useBase, T as arrayAvg, U as arrayBatches, I as arrayEmptyInPlace, G as arrayFilterInPlace, B as arrayFlatten, C as arrayIntersection, L as arrayIsEqual, Q as arrayMax, R as arrayMin, z as arrayMinus, P as arrayRandomElement, E as arrayRemoveElement, F as arraySetElement, N as arrayShuffle, O as arrayShuffleForce, M as arrayShuffleInPlace, J as arraySorted, K as arraySortedNumbers, S as arraySum, D as arraySymmetricDifference, H as arrayToggleInPlace, A as arrayUnion, y as arrayUnique, md as assert, nd as assertCondition, q as avg, o as between, td as bitfield, ud as blobToArrayBuffer, Ta as blobToDataUri, vd as blobToUint8Array, ed as browserSelectColorByName, Ob as cloneJsonObject, Nb as cloneObject, w as cmp, v as composeOrderby, V as createArray, sd as createBinaryStreamDecoder, rd as createBinaryStreamEncoder, le as createLocalChannelPair, Va as createPromise, pe as createPromiseProxy, Gd as csvParse, Hd as csvParseToObjects, Fd as csvStringify, Sa as dataUriToBlob, Ra as dataUriToMimeType, Qa as dataUriToUint8Array, Cb as dateStringToDays, Bb as day, fb as dayDay, vb as dayDiff, jb as dayFromAny, lb as dayFromDate, mb as dayFromDateGMT, qb as dayFromParts, rb as dayFromString, ob as dayFromTimestamp, ib as dayFromToday, xb as dayIterator, eb as dayMonth, sb as dayMonthStart, ub as dayOffset, wb as dayRange, hb as dayToDate, kb as dayToDateGMT, gb as dayToParts, pb as dayToString, nb as dayToTimestamp, db as dayYear, tb as dayYearStart, ze as debounce, Mc as deburr, Db as decimal, Gb as decimalCentsPart, Eb as decimalFromCents, Fb as decimalToCents, sa as decodeBase16, qa as decodeBase32, ua as decodeBase58, wa as decodeBase62, qd as decodeJson, Ed as decrypt, ic as deepEqual, kc as deepMerge, jc as deepStripUndefinedInPlace, Cd as deriveKeyPbkdf2, Re as detect, lc as diffObjects, Bd as digest, jd as duration, Mb as empty, ra as encodeBase16, pa as encodeBase32, ta as encodeBase58, va as encodeBase62, pd as encodeJson, Pc as encodeQuery, Dd as encrypt, Ic as endSortWeight, Hb as ensureKey, Ib as ensureKeyAsync, ja as equalBinary, mc as escapeHTML, vc as escapeRegExp, xa as estimateSizeForBase, ld as fatal, Ie as fetchBasic, Je as fetchJson, Ne as fetchOptionsBasicAuth, Le as fetchOptionsFormURLEncoded, Me as fetchOptionsJson, Ke as fetchText, Kb as first, Pa as fixBrokenUth8String, zb as forEachDay, Rb as forTimes, Na as formatMessages, gd as formatMilliseconds, ha as fromBase64, ia as fromBase64String, Ba as fromCamelCase, ea as fromHex, Qe as getGlobal, a as getGlobalContext, Nd as getGlobalEmitter, bd as getGlobalLogger, cd as getGlobalLoggerIfExists, Wc as getNamespaceFilterString, Pe as getNavigator, id as getPerformanceTimestamp, j as getSecureRandom, k as getSecureRandomIfPossible, fd as getTimestamp, Oe as getWindow, Xa as immediate, Ub as isArray, $b as isBoolean, Se as isBrowser, ec as isEmpty, yc as isEven, xc as isHalf, Zb as isInteger, Ge as isLocalHost, fc as isNotEmpty, dc as isNotNull, bc as isNull, ac as isNullOrUndefined, Yb as isNumber, Sb as isObject, s as isPrime, r as isPrimeRX, Tb as isPrimitive, ab as isPromise, Vb as isRecord, Wb as isRecordPlain, _b as isSafeInteger, Xb as isString, Za as isTimeout, hc as isTruthy, cc as isUint8Array, gc as isValue, _c as joinLogStrings, ca as joinToUint8Array, Y as jsonStringify, X as jsonStringifySafe, W as jsonStringifySorted, ka as jsonToUint8Array, Lb as last, Od as lazyListener, Nc as linkifyPlainText, qc as listDistinctUnion, pc as listGroupBy, rc as listOfKey, oc as listQuery, Pb as memoize, Qb as memoizeAsync, Jc as moveSortWeight, Ve as noop, uc as objectIsEmpty, sc as objectMap, tc as objectMergeDisposable, He as parseBasicAuth, hd as parseDate, Yc as parseLogLevel, u as parseOrderby, Qc as parseQuery, bb as promisify, ie as qid, l as randomBoolean, n as randomFloat, m as randomInt, wd as randomUint8Array, Uc as regExpEscape, Tc as regExpString, Oa as renderMessages, Ac as roundDown, Dc as roundHalfAwayFromZero, Ec as roundHalfDown, Fc as roundHalfEven, Cc as roundHalfOdd, Gc as roundHalfTowardsZero, Bc as roundHalfUp, zc as roundUp, t as seededRandom, ce as setUuidDefaultEncoding, Jb as size, Wa as sleep, Kc as sortedItems, x as sortedOrderby, Hc as startSortWeight, Ca as stringToBoolean, Ea as stringToFloat, Da as stringToInteger, $ as stringToUInt8Array, _d as suid, Zd as suidBytes, ae as suidBytesDate, $d as suidDate, p as sum, ye as throttle, Ya as timeout, fa as toBase64, ga as toBase64Url, Ma as toBool, ya as toCamelCase, za as toCapitalize, Aa as toCapitalizeWords, Ja as toFloat, da as toHex, Oc as toHumanReadableUrl, Ka as toInt, La as toString, ba as toUint8Array, wc as toValidFilename, Ab as today, _a as tryTimeout, he as uname, nc as unescapeHTML, Ld as useAsyncMutex, oa as useBase, Jd as useDefer, Id as useDispose, Fe as useDisposeWithUtils, De as useEventListener, Ee as useEventListenerOnce, Te as useExitHandler, Be as useInterval, Ce as useIntervalPause, Zc as useLevelFilter, qe as useMessageHub, Kd as useMutex, Xc as useNamespaceFilter, we as usePool, se as usePubSub, te as useRPC, ue as useRPCHub, Lc as useSorted, Ae as useTimeout, de as uuid, be as uuid32bit, Td as uuidB32, Qd as uuidB62, Pd as uuidBytes, ee as uuidDecode, Vd as uuidDecodeB32, Sd as uuidDecodeB62, Yd as uuidDecodeV4, fe as uuidEncode, Ud as uuidEncodeB32, Rd as uuidEncodeB62, Xd as uuidEncodeV4, ge as uuidIsValid, Wd as uuidv4, Fa as valueToBoolean, Ha as valueToFloat, Ga as valueToInteger, Ia as valueToString, $a as waitOn, Sc as wordsToUint8Array } from './chunk-LJ2C27PI.js';
1
+ import { Y, gd, Yc, _c, hd, fd, $c, Zc, cd, Te, fc } from './chunk-YSSQ27P5.js';
2
+ export { pd as BinaryEncoder, zd as CRYPTO_DEFAULT_ALG, Ad as CRYPTO_DEFAULT_DERIVE_ALG, Bd as CRYPTO_DEFAULT_DERIVE_ITERATIONS, yd as CRYPTO_DEFAULT_HASH_ALG, ke as Channel, pe as CryptoEncoder, db as DAY_MS, zb as Day, ed as DefaultLogger, Nd as Emitter, oe as JsonEncoder, le as LocalChannel, i as LogLevelAlias, b as LogLevelAll, c as LogLevelDebug, f as LogLevelError, g as LogLevelFatal, d as LogLevelInfo, h as LogLevelOff, e as LogLevelWarn, ad as LoggerConsoleHandler, bd as LoggerContext, ld as LoggerMemoryHandler, Ve as MemStorage, ne as NoopEncoder, we as Progress, se as PubSub, ye as SerialQueue, Va as Uint8ArrayToDataUri, na as Uint8ArrayToHexDump, ma as Uint8ArrayToJson, ba as Uint8ArrayToString, Sc as Uint8ArrayToWords, Wc as XRX, $ as _decodeUtf8Polyfill, _ as _encodeUtf8Polyfill, oa as _useBase, U as arrayAvg, V as arrayBatches, I as arrayEmptyInPlace, G as arrayFilterInPlace, B as arrayFlatten, C as arrayIntersection, M as arrayIsEqual, R as arrayMax, S as arrayMin, z as arrayMinus, Q as arrayRandomElement, E as arrayRemoveElement, J as arraySetArrayInPlace, F as arraySetElement, O as arrayShuffle, P as arrayShuffleForce, N as arrayShuffleInPlace, K as arraySorted, L as arraySortedNumbers, T as arraySum, D as arraySymmetricDifference, H as arrayToggleInPlace, A as arrayUnion, y as arrayUnique, nd as assert, od as assertCondition, q as avg, o as between, ud as bitfield, vd as blobToArrayBuffer, Ua as blobToDataUri, wd as blobToUint8Array, fd as browserSelectColorByName, Pb as cloneJsonObject, Ob as cloneObject, w as cmp, v as composeOrderby, W as createArray, td as createBinaryStreamDecoder, sd as createBinaryStreamEncoder, me as createLocalChannelPair, Wa as createPromise, qe as createPromiseProxy, Hd as csvParse, Id as csvParseToObjects, Gd as csvStringify, Ta as dataUriToBlob, Sa as dataUriToMimeType, Ra as dataUriToUint8Array, Db as dateStringToDays, Cb as day, gb as dayDay, wb as dayDiff, kb as dayFromAny, mb as dayFromDate, nb as dayFromDateGMT, rb as dayFromParts, sb as dayFromString, pb as dayFromTimestamp, jb as dayFromToday, yb as dayIterator, fb as dayMonth, tb as dayMonthStart, vb as dayOffset, xb as dayRange, ib as dayToDate, lb as dayToDateGMT, hb as dayToParts, qb as dayToString, ob as dayToTimestamp, eb as dayYear, ub as dayYearStart, Ae as debounce, Nc as deburr, Eb as decimal, Hb as decimalCentsPart, Fb as decimalFromCents, Gb as decimalToCents, ta as decodeBase16, ra as decodeBase32, va as decodeBase58, xa as decodeBase62, rd as decodeJson, Fd as decrypt, jc as deepEqual, lc as deepMerge, kc as deepStripUndefinedInPlace, Dd as deriveKeyPbkdf2, Se as detect, mc as diffObjects, Cd as digest, kd as duration, Nb as empty, sa as encodeBase16, qa as encodeBase32, ua as encodeBase58, wa as encodeBase62, qd as encodeJson, Qc as encodeQuery, Ed as encrypt, Jc as endSortWeight, Ib as ensureKey, Jb as ensureKeyAsync, ka as equalBinary, nc as escapeHTML, wc as escapeRegExp, ya as estimateSizeForBase, md as fatal, Je as fetchBasic, Ke as fetchJson, Oe as fetchOptionsBasicAuth, Me as fetchOptionsFormURLEncoded, Ne as fetchOptionsJson, Le as fetchText, Lb as first, Qa as fixBrokenUth8String, Ab as forEachDay, Sb as forTimes, Oa as formatMessages, hd as formatMilliseconds, ia as fromBase64, ja as fromBase64String, Ca as fromCamelCase, fa as fromHex, Re as getGlobal, a as getGlobalContext, Od as getGlobalEmitter, cd as getGlobalLogger, dd as getGlobalLoggerIfExists, Xc as getNamespaceFilterString, Qe as getNavigator, jd as getPerformanceTimestamp, j as getSecureRandom, k as getSecureRandomIfPossible, gd as getTimestamp, Pe as getWindow, Ya as immediate, Vb as isArray, ac as isBoolean, Te as isBrowser, fc as isEmpty, zc as isEven, yc as isHalf, _b as isInteger, He as isLocalHost, gc as isNotEmpty, ec as isNotNull, cc as isNull, bc as isNullOrUndefined, Zb as isNumber, Tb as isObject, s as isPrime, r as isPrimeRX, Ub as isPrimitive, bb as isPromise, Wb as isRecord, Xb as isRecordPlain, $b as isSafeInteger, Yb as isString, _a as isTimeout, ic as isTruthy, dc as isUint8Array, hc as isValue, $c as joinLogStrings, da as joinToUint8Array, Z as jsonStringify, Y as jsonStringifySafe, X as jsonStringifySorted, la as jsonToUint8Array, Mb as last, Pd as lazyListener, Oc as linkifyPlainText, rc as listDistinctUnion, qc as listGroupBy, sc as listOfKey, pc as listQuery, Qb as memoize, Rb as memoizeAsync, Kc as moveSortWeight, We as noop, vc as objectIsEmpty, tc as objectMap, uc as objectMergeDisposable, Ie as parseBasicAuth, id as parseDate, Zc as parseLogLevel, u as parseOrderby, Rc as parseQuery, cb as promisify, je as qid, l as randomBoolean, n as randomFloat, m as randomInt, xd as randomUint8Array, Vc as regExpEscape, Uc as regExpString, Pa as renderMessages, Bc as roundDown, Ec as roundHalfAwayFromZero, Fc as roundHalfDown, Gc as roundHalfEven, Dc as roundHalfOdd, Hc as roundHalfTowardsZero, Cc as roundHalfUp, Ac as roundUp, t as seededRandom, de as setUuidDefaultEncoding, Kb as size, Xa as sleep, Lc as sortedItems, x as sortedOrderby, Ic as startSortWeight, Da as stringToBoolean, Fa as stringToFloat, Ea as stringToInteger, aa as stringToUInt8Array, $d as suid, _d as suidBytes, be as suidBytesDate, ae as suidDate, p as sum, ze as throttle, Za as timeout, ga as toBase64, ha as toBase64Url, Na as toBool, za as toCamelCase, Aa as toCapitalize, Ba as toCapitalizeWords, Ka as toFloat, ea as toHex, Pc as toHumanReadableUrl, La as toInt, Ma as toString, ca as toUint8Array, xc as toValidFilename, Bb as today, $a as tryTimeout, ie as uname, oc as unescapeHTML, Md as useAsyncMutex, pa as useBase, Kd as useDefer, Jd as useDispose, Ge as useDisposeWithUtils, Ee as useEventListener, Fe as useEventListenerOnce, Ue as useExitHandler, Ce as useInterval, De as useIntervalPause, _c as useLevelFilter, re as useMessageHub, Ld as useMutex, Yc as useNamespaceFilter, xe as usePool, te as usePubSub, ue as useRPC, ve as useRPCHub, Mc as useSorted, Be as useTimeout, ee as uuid, ce as uuid32bit, Ud as uuidB32, Rd as uuidB62, Qd as uuidBytes, fe as uuidDecode, Wd as uuidDecodeB32, Td as uuidDecodeB62, Zd as uuidDecodeV4, ge as uuidEncode, Vd as uuidEncodeB32, Sd as uuidEncodeB62, Yd as uuidEncodeV4, he as uuidIsValid, Xd as uuidv4, Ga as valueToBoolean, Ia as valueToFloat, Ha as valueToInteger, Ja as valueToString, ab as waitOn, Tc as wordsToUint8Array } from './chunk-YSSQ27P5.js';
3
3
 
4
- function ja(p){let s="=".repeat((4-p.length%4)%4),l=(p+s).replace(/-/g,"+").replace(/_/g,"/"),y=window.atob(l),L=new Uint8Array(y.length);for(let c=0;c<y.length;++c)L[c]=y.charCodeAt(c);return L}function K(p,s){let l="0123456789abcdef".split("");function y(a,e){let r=a[0],o=a[1],n=a[2],t=a[3];r=c(r,o,n,t,e[0],7,-680876936),t=c(t,r,o,n,e[1],12,-389564586),n=c(n,t,r,o,e[2],17,606105819),o=c(o,n,t,r,e[3],22,-1044525330),r=c(r,o,n,t,e[4],7,-176418897),t=c(t,r,o,n,e[5],12,1200080426),n=c(n,t,r,o,e[6],17,-1473231341),o=c(o,n,t,r,e[7],22,-45705983),r=c(r,o,n,t,e[8],7,1770035416),t=c(t,r,o,n,e[9],12,-1958414417),n=c(n,t,r,o,e[10],17,-42063),o=c(o,n,t,r,e[11],22,-1990404162),r=c(r,o,n,t,e[12],7,1804603682),t=c(t,r,o,n,e[13],12,-40341101),n=c(n,t,r,o,e[14],17,-1502002290),o=c(o,n,t,r,e[15],22,1236535329),r=g(r,o,n,t,e[1],5,-165796510),t=g(t,r,o,n,e[6],9,-1069501632),n=g(n,t,r,o,e[11],14,643717713),o=g(o,n,t,r,e[0],20,-373897302),r=g(r,o,n,t,e[5],5,-701558691),t=g(t,r,o,n,e[10],9,38016083),n=g(n,t,r,o,e[15],14,-660478335),o=g(o,n,t,r,e[4],20,-405537848),r=g(r,o,n,t,e[9],5,568446438),t=g(t,r,o,n,e[14],9,-1019803690),n=g(n,t,r,o,e[3],14,-187363961),o=g(o,n,t,r,e[8],20,1163531501),r=g(r,o,n,t,e[13],5,-1444681467),t=g(t,r,o,n,e[2],9,-51403784),n=g(n,t,r,o,e[7],14,1735328473),o=g(o,n,t,r,e[12],20,-1926607734),r=d(r,o,n,t,e[5],4,-378558),t=d(t,r,o,n,e[8],11,-2022574463),n=d(n,t,r,o,e[11],16,1839030562),o=d(o,n,t,r,e[14],23,-35309556),r=d(r,o,n,t,e[1],4,-1530992060),t=d(t,r,o,n,e[4],11,1272893353),n=d(n,t,r,o,e[7],16,-155497632),o=d(o,n,t,r,e[10],23,-1094730640),r=d(r,o,n,t,e[13],4,681279174),t=d(t,r,o,n,e[0],11,-358537222),n=d(n,t,r,o,e[3],16,-722521979),o=d(o,n,t,r,e[6],23,76029189),r=d(r,o,n,t,e[9],4,-640364487),t=d(t,r,o,n,e[12],11,-421815835),n=d(n,t,r,o,e[15],16,530742520),o=d(o,n,t,r,e[2],23,-995338651),r=u(r,o,n,t,e[0],6,-198630844),t=u(t,r,o,n,e[7],10,1126891415),n=u(n,t,r,o,e[14],15,-1416354905),o=u(o,n,t,r,e[5],21,-57434055),r=u(r,o,n,t,e[12],6,1700485571),t=u(t,r,o,n,e[3],10,-1894986606),n=u(n,t,r,o,e[10],15,-1051523),o=u(o,n,t,r,e[1],21,-2054922799),r=u(r,o,n,t,e[8],6,1873313359),t=u(t,r,o,n,e[15],10,-30611744),n=u(n,t,r,o,e[6],15,-1560198380),o=u(o,n,t,r,e[13],21,1309151649),r=u(r,o,n,t,e[4],6,-145523070),t=u(t,r,o,n,e[11],10,-1120210379),n=u(n,t,r,o,e[2],15,718787259),o=u(o,n,t,r,e[9],21,-343485551),a[0]=i(r,a[0]),a[1]=i(o,a[1]),a[2]=i(n,a[2]),a[3]=i(t,a[3]);}function L(a,e,r,o,n,t){return e=i(i(e,a),i(o,t)),i(e<<n|e>>>32-n,r)}function c(a,e,r,o,n,t,h){return L(e&r|~e&o,a,e,n,t,h)}function g(a,e,r,o,n,t,h){return L(e&o|r&~o,a,e,n,t,h)}function d(a,e,r,o,n,t,h){return L(e^r^o,a,e,n,t,h)}function u(a,e,r,o,n,t,h){return L(r^(e|~o),a,e,n,t,h)}function w(a){let e=a.length,r=[1732584193,-271733879,-1732584194,271733878],o;for(o=64;o<=a.length;o+=64)y(r,f(a.substring(o-64,o)));a=a.substring(o-64);let n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(o=0;o<a.length;o++)n[o>>2]|=a.charCodeAt(o)<<(o%4<<3);if(n[o>>2]|=128<<(o%4<<3),o>55)for(y(r,n),o=0;o<16;o++)n[o]=0;return n[14]=e*8,y(r,n),r}function f(a){let e=[],r;for(r=0;r<64;r+=4)e[r>>2]=a.charCodeAt(r)+(a.charCodeAt(r+1)<<8)+(a.charCodeAt(r+2)<<16)+(a.charCodeAt(r+3)<<24);return e}function $(a){let e="",r=0;for(;r<4;r++)e+=l[a>>r*8+4&15]+l[a>>r*8&15];return e}function v(a){for(let e=0;e<a.length;e++)a[e]=$(a[e]);return a.join("")}function x(a){return v(w(a))}function i(a,e){return a+e&4294967295}s=s||{};let b=[];s={size:s.size||"50",rating:s.rating||"g",secure:s.secure||location.protocol==="https:",backup:s.backup||""},p=p.trim().toLowerCase();let m=s.secure?"https://secure.gravatar.com/avatar/":"http://www.gravatar.com/avatar/";return s.rating&&b.push(`r=${s.rating}`),s.backup&&b.push(`d=${encodeURIComponent(s.backup)}`),s.size&&b.push(`s=${s.size}`),`${m+x(p)}?${b.join("&")}`}function Ia(p,s=""){try{return K(p,{size:256,backup:"monsterid",secure:!0})}catch{return s}}var W=class{constructor(s){this.pretty=!1;this.name=s.name??"zeed",this.prefix=`${s.name}$`,this.objectToString=s.objectToString??(l=>this.pretty?X(l,null,2):X(l)),this.objectFromString=s.objectFromString??(l=>{try{return JSON.parse(l)}catch{}});}setItem(s,l){let y=this.objectToString(l);localStorage.setItem(`${this.prefix}${s}`,y);}getItem(s){let l=localStorage.getItem(`${this.prefix}${s}`);if(l!=null)return this.objectFromString(l)}removeItem(s){localStorage.removeItem(`${this.prefix}${s}`);}clear(){Object.keys(localStorage).filter(s=>s.startsWith(this.prefix)).forEach(s=>{localStorage.removeItem(s);});}allKeys(){let s=this.prefix.length;return Object.keys(localStorage).filter(l=>l.startsWith(this.prefix)).map(l=>l.substr(s))}};function C(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&Number.parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function J(p={}){let s='font-family: "JetBrains Mono", Menlo; font-size: 11px;',l=`${s}`,y=`font-weight: 600; ${s}`,L=C(),c={},g=fd(),{filter:d=void 0,level:u=void 0,colors:w=!0,padding:f=16,time:$=!0}=p,v=Xc(d),x=Zc(u);return i=>{if(!x(i.level)||!v(i.name))return;let b=$?`+${gd(fd()-g)}`:"",m=i.name||"",a=c[m||""];a==null&&(a={color:ed(m)},c[m]=a);let e;switch(f>0&&(m=m.padEnd(16," ")),w&&L?(e=[`%c${m}%c %s %c${b}`],e.push(`color:${a.color}; ${y}`),e.push(l),e.push(i.messages?.[0]??""),e.push(`color:${a.color};`),e.push(...i.messages.slice(1))):e=[m,...i.messages,`+${b}`],e=e.map(r=>r instanceof Uint8Array?`<Uint8Array size=${r.length}>`:r),i.level){case 1:p.levelHelper&&(e[0]=`I|* ${e[0]}`),console.info(..._c(...e));break;case 2:p.levelHelper&&(e[0]=`W|** ${e[0]}`),console.warn(..._c(...e));break;case 3:p.levelHelper&&(e[0]=`E|*** ${e[0]}`),console.error(..._c(...e));break;default:p.levelHelper&&(e[0]=`D| ${e[0]}`),console.debug(..._c(...e));break}}}function _(p={}){let s=p.filter??localStorage.zeed??localStorage.debug,l='font-family: "JetBrains Mono", Menlo; font-size: 11px;',y=`${l}`,L=`font-weight: 600; ${l}`,c=C(),g=()=>{};return function d(u="",w){let f,$=Xc(s),v=Yc(w??-1);if($(u)&&v!==9007199254740991){let b=function(m,a){return v<=m?a:()=>{}};let i=[];if(c){let m=ed(u);i.push(`%c${u.padEnd(16," ")}%c %s`),i.push(`color:${m}; ${L}`),i.push(y);}else i.push(`[${u}] %s`);f=b(0,console.debug.bind(console,...i)),f.debug=b(0,console.debug.bind(console,...i)),f.info=b(1,console.info.bind(console,...i)),f.warn=b(2,console.warn.bind(console,...i)),f.error=b(3,console.error.bind(console,...i)),f.fatal=b(4,(...m)=>{throw f.error(...m),new Error(`${m.map(String).join(" ")}`)}),f.assert=b(4,(m,...a)=>{(m==null||typeof m=="number"&&Number.isNaN(m)||!m)&&f.fatal(...a);});}else f=()=>{},f.debug=g,f.info=g,f.warn=g,f.error=g,f.assert=g,f.fatal=g;return f.extend=i=>d(u?`${u}:${i}`:i),f.label=u,f}}function Wa(p={}){console.info("activateConsoleDebug is activated by default in browsers");}function q(p,s){return bd(l=>{Se()&&!ec(localStorage.getItem("zeed"))&&(l.setHandlers([J()]),l.setFactory(_({})));})(p,s)}
4
+ function Ca(p){let s="=".repeat((4-p.length%4)%4),l=(p+s).replace(/-/g,"+").replace(/_/g,"/"),y=window.atob(l),L=new Uint8Array(y.length);for(let c=0;c<y.length;++c)L[c]=y.charCodeAt(c);return L}function K(p,s){let l="0123456789abcdef".split("");function y(a,e){let r=a[0],o=a[1],n=a[2],t=a[3];r=c(r,o,n,t,e[0],7,-680876936),t=c(t,r,o,n,e[1],12,-389564586),n=c(n,t,r,o,e[2],17,606105819),o=c(o,n,t,r,e[3],22,-1044525330),r=c(r,o,n,t,e[4],7,-176418897),t=c(t,r,o,n,e[5],12,1200080426),n=c(n,t,r,o,e[6],17,-1473231341),o=c(o,n,t,r,e[7],22,-45705983),r=c(r,o,n,t,e[8],7,1770035416),t=c(t,r,o,n,e[9],12,-1958414417),n=c(n,t,r,o,e[10],17,-42063),o=c(o,n,t,r,e[11],22,-1990404162),r=c(r,o,n,t,e[12],7,1804603682),t=c(t,r,o,n,e[13],12,-40341101),n=c(n,t,r,o,e[14],17,-1502002290),o=c(o,n,t,r,e[15],22,1236535329),r=g(r,o,n,t,e[1],5,-165796510),t=g(t,r,o,n,e[6],9,-1069501632),n=g(n,t,r,o,e[11],14,643717713),o=g(o,n,t,r,e[0],20,-373897302),r=g(r,o,n,t,e[5],5,-701558691),t=g(t,r,o,n,e[10],9,38016083),n=g(n,t,r,o,e[15],14,-660478335),o=g(o,n,t,r,e[4],20,-405537848),r=g(r,o,n,t,e[9],5,568446438),t=g(t,r,o,n,e[14],9,-1019803690),n=g(n,t,r,o,e[3],14,-187363961),o=g(o,n,t,r,e[8],20,1163531501),r=g(r,o,n,t,e[13],5,-1444681467),t=g(t,r,o,n,e[2],9,-51403784),n=g(n,t,r,o,e[7],14,1735328473),o=g(o,n,t,r,e[12],20,-1926607734),r=d(r,o,n,t,e[5],4,-378558),t=d(t,r,o,n,e[8],11,-2022574463),n=d(n,t,r,o,e[11],16,1839030562),o=d(o,n,t,r,e[14],23,-35309556),r=d(r,o,n,t,e[1],4,-1530992060),t=d(t,r,o,n,e[4],11,1272893353),n=d(n,t,r,o,e[7],16,-155497632),o=d(o,n,t,r,e[10],23,-1094730640),r=d(r,o,n,t,e[13],4,681279174),t=d(t,r,o,n,e[0],11,-358537222),n=d(n,t,r,o,e[3],16,-722521979),o=d(o,n,t,r,e[6],23,76029189),r=d(r,o,n,t,e[9],4,-640364487),t=d(t,r,o,n,e[12],11,-421815835),n=d(n,t,r,o,e[15],16,530742520),o=d(o,n,t,r,e[2],23,-995338651),r=u(r,o,n,t,e[0],6,-198630844),t=u(t,r,o,n,e[7],10,1126891415),n=u(n,t,r,o,e[14],15,-1416354905),o=u(o,n,t,r,e[5],21,-57434055),r=u(r,o,n,t,e[12],6,1700485571),t=u(t,r,o,n,e[3],10,-1894986606),n=u(n,t,r,o,e[10],15,-1051523),o=u(o,n,t,r,e[1],21,-2054922799),r=u(r,o,n,t,e[8],6,1873313359),t=u(t,r,o,n,e[15],10,-30611744),n=u(n,t,r,o,e[6],15,-1560198380),o=u(o,n,t,r,e[13],21,1309151649),r=u(r,o,n,t,e[4],6,-145523070),t=u(t,r,o,n,e[11],10,-1120210379),n=u(n,t,r,o,e[2],15,718787259),o=u(o,n,t,r,e[9],21,-343485551),a[0]=i(r,a[0]),a[1]=i(o,a[1]),a[2]=i(n,a[2]),a[3]=i(t,a[3]);}function L(a,e,r,o,n,t){return e=i(i(e,a),i(o,t)),i(e<<n|e>>>32-n,r)}function c(a,e,r,o,n,t,h){return L(e&r|~e&o,a,e,n,t,h)}function g(a,e,r,o,n,t,h){return L(e&o|r&~o,a,e,n,t,h)}function d(a,e,r,o,n,t,h){return L(e^r^o,a,e,n,t,h)}function u(a,e,r,o,n,t,h){return L(r^(e|~o),a,e,n,t,h)}function w(a){let e=a.length,r=[1732584193,-271733879,-1732584194,271733878],o;for(o=64;o<=a.length;o+=64)y(r,f(a.substring(o-64,o)));a=a.substring(o-64);let n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(o=0;o<a.length;o++)n[o>>2]|=a.charCodeAt(o)<<(o%4<<3);if(n[o>>2]|=128<<(o%4<<3),o>55)for(y(r,n),o=0;o<16;o++)n[o]=0;return n[14]=e*8,y(r,n),r}function f(a){let e=[],r;for(r=0;r<64;r+=4)e[r>>2]=a.charCodeAt(r)+(a.charCodeAt(r+1)<<8)+(a.charCodeAt(r+2)<<16)+(a.charCodeAt(r+3)<<24);return e}function $(a){let e="",r=0;for(;r<4;r++)e+=l[a>>r*8+4&15]+l[a>>r*8&15];return e}function v(a){for(let e=0;e<a.length;e++)a[e]=$(a[e]);return a.join("")}function x(a){return v(w(a))}function i(a,e){return a+e&4294967295}s=s||{};let b=[];s={size:s.size||"50",rating:s.rating||"g",secure:s.secure||location.protocol==="https:",backup:s.backup||""},p=p.trim().toLowerCase();let m=s.secure?"https://secure.gravatar.com/avatar/":"http://www.gravatar.com/avatar/";return s.rating&&b.push(`r=${s.rating}`),s.backup&&b.push(`d=${encodeURIComponent(s.backup)}`),s.size&&b.push(`s=${s.size}`),`${m+x(p)}?${b.join("&")}`}function ka(p,s=""){try{return K(p,{size:256,backup:"monsterid",secure:!0})}catch{return s}}var W=class{constructor(s){this.pretty=!1;this.name=s.name??"zeed",this.prefix=`${s.name}$`,this.objectToString=s.objectToString??(l=>this.pretty?Y(l,null,2):Y(l)),this.objectFromString=s.objectFromString??(l=>{try{return JSON.parse(l)}catch{}});}setItem(s,l){let y=this.objectToString(l);localStorage.setItem(`${this.prefix}${s}`,y);}getItem(s){let l=localStorage.getItem(`${this.prefix}${s}`);if(l!=null)return this.objectFromString(l)}removeItem(s){localStorage.removeItem(`${this.prefix}${s}`);}clear(){Object.keys(localStorage).filter(s=>s.startsWith(this.prefix)).forEach(s=>{localStorage.removeItem(s);});}allKeys(){let s=this.prefix.length;return Object.keys(localStorage).filter(l=>l.startsWith(this.prefix)).map(l=>l.substr(s))}};function C(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&Number.parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function J(p={}){let s='font-family: "JetBrains Mono", Menlo; font-size: 11px;',l=`${s}`,y=`font-weight: 600; ${s}`,L=C(),c={},g=gd(),{filter:d=void 0,level:u=void 0,colors:w=!0,padding:f=16,time:$=!0}=p,v=Yc(d),x=_c(u);return i=>{if(!x(i.level)||!v(i.name))return;let b=$?`+${hd(gd()-g)}`:"",m=i.name||"",a=c[m||""];a==null&&(a={color:fd(m)},c[m]=a);let e;switch(f>0&&(m=m.padEnd(16," ")),w&&L?(e=[`%c${m}%c %s %c${b}`],e.push(`color:${a.color}; ${y}`),e.push(l),e.push(i.messages?.[0]??""),e.push(`color:${a.color};`),e.push(...i.messages.slice(1))):e=[m,...i.messages,`+${b}`],e=e.map(r=>r instanceof Uint8Array?`<Uint8Array size=${r.length}>`:r),i.level){case 1:p.levelHelper&&(e[0]=`I|* ${e[0]}`),console.info(...$c(...e));break;case 2:p.levelHelper&&(e[0]=`W|** ${e[0]}`),console.warn(...$c(...e));break;case 3:p.levelHelper&&(e[0]=`E|*** ${e[0]}`),console.error(...$c(...e));break;default:p.levelHelper&&(e[0]=`D| ${e[0]}`),console.debug(...$c(...e));break}}}function _(p={}){let s=p.filter??localStorage.zeed??localStorage.debug,l='font-family: "JetBrains Mono", Menlo; font-size: 11px;',y=`${l}`,L=`font-weight: 600; ${l}`,c=C(),g=()=>{};return function d(u="",w){let f,$=Yc(s),v=Zc(w??-1);if($(u)&&v!==9007199254740991){let b=function(m,a){return v<=m?a:()=>{}};let i=[];if(c){let m=fd(u);i.push(`%c${u.padEnd(16," ")}%c %s`),i.push(`color:${m}; ${L}`),i.push(y);}else i.push(`[${u}] %s`);f=b(0,console.debug.bind(console,...i)),f.debug=b(0,console.debug.bind(console,...i)),f.info=b(1,console.info.bind(console,...i)),f.warn=b(2,console.warn.bind(console,...i)),f.error=b(3,console.error.bind(console,...i)),f.fatal=b(4,(...m)=>{throw f.error(...m),new Error(`${m.map(String).join(" ")}`)}),f.assert=b(4,(m,...a)=>{(m==null||typeof m=="number"&&Number.isNaN(m)||!m)&&f.fatal(...a);});}else f=()=>{},f.debug=g,f.info=g,f.warn=g,f.error=g,f.assert=g,f.fatal=g;return f.extend=i=>d(u?`${u}:${i}`:i),f.label=u,f}}function Ja(p={}){console.info("activateConsoleDebug is activated by default in browsers");}function q(p,s){return cd(l=>{Te()&&!fc(localStorage.getItem("zeed"))&&(l.setHandlers([J()]),l.setFactory(_({})));})(p,s)}
5
5
 
6
- export { W as LocalStorage, q as Logger, J as LoggerBrowserHandler, _ as LoggerBrowserSetupDebugFactory, Wa as activateConsoleDebug, C as browserSupportsColors, Ia as gravatarURLByEmail, ja as urlBase64ToUint8Array };
6
+ export { W as LocalStorage, q as Logger, J as LoggerBrowserHandler, _ as LoggerBrowserSetupDebugFactory, Ja as activateConsoleDebug, C as browserSupportsColors, ka as gravatarURLByEmail, Ca as urlBase64ToUint8Array };
7
7
  //# sourceMappingURL=out.js.map
8
8
  //# sourceMappingURL=index.browser.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/browser/base64.ts","../src/browser/gravatar.ts","../src/browser/localstorage.ts","../src/browser/log/log-colors.ts","../src/browser/log/log-browser.ts","../src/browser/log/log-browser-factory.ts","../src/browser/log/log-context-browser.ts"],"names":["urlBase64ToUint8Array","base64String","padding","base64","rawData","outputArray","i","gravatar","email","options","hex_chr","md5cycle","e","t","n","r","s","ff","gg","hh","ii","add32","cmn","o","md51","md5blk","rhex","hex","md5","params","base","gravatarURLByEmail","defaultURL","LocalStorage","opt","data","jsonStringifySafe","key","value","prefixLength","browserSupportsColors","LoggerBrowserHandler","styleFont","styleDefault","styleBold","useColors","namespaces","startTime","getTimestamp","filter","level","colors","time","matchesNamespace","useNamespaceFilter","matchesLevel","useLevelFilter","msg","timeDiffString","formatMilliseconds","name","ninfo","browserSelectColorByName","args","arg","joinLogStrings","LoggerBrowserSetupDebugFactory","noop","LoggerBrowserDebugFactory","logLevel","log","matches","parseLogLevel","defineForLogLevel","fnLevel","fn","fixedArgs","color","condition","subName","activateConsoleDebug","_opt","Logger","getGlobalLogger","context","isBrowser","isEmpty"],"mappings":"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","sourcesContent":["// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\n/** @deprecated use fromBase64 instead */\nexport function urlBase64ToUint8Array(base64String: string): Uint8Array | undefined {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4)\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/')\n const rawData = window.atob(base64)\n const outputArray = new Uint8Array(rawData.length)\n for (let i = 0; i < rawData.length; ++i)\n outputArray[i] = rawData.charCodeAt(i)\n return outputArray\n}\n","// MIT licensed\n// https://github.com/mazondo/gravatarjs/blob/master/gravatar.js\n// https://en.gravatar.com/site/implement/images/\n\n/** @deprecated Due to privacy concerns. Prefer local or custom solutions. */\nfunction gravatar(\n email: string,\n options: { size?: any; backup?: any; secure?: any; rating?: any },\n) {\n const hex_chr = '0123456789abcdef'.split('')\n\n // using md5() from here: http://www.myersdaily.org/joseph/javascript/md5-text.html\n function md5cycle(e: any[], t: any[]) {\n let n = e[0]\n let r = e[1]\n let i = e[2]\n let s = e[3]\n n = ff(n, r, i, s, t[0], 7, -680876936)\n s = ff(s, n, r, i, t[1], 12, -389564586)\n i = ff(i, s, n, r, t[2], 17, 606105819)\n r = ff(r, i, s, n, t[3], 22, -1044525330)\n n = ff(n, r, i, s, t[4], 7, -176418897)\n s = ff(s, n, r, i, t[5], 12, 1200080426)\n i = ff(i, s, n, r, t[6], 17, -1473231341)\n r = ff(r, i, s, n, t[7], 22, -45705983)\n n = ff(n, r, i, s, t[8], 7, 1770035416)\n s = ff(s, n, r, i, t[9], 12, -1958414417)\n i = ff(i, s, n, r, t[10], 17, -42063)\n r = ff(r, i, s, n, t[11], 22, -1990404162)\n n = ff(n, r, i, s, t[12], 7, 1804603682)\n s = ff(s, n, r, i, t[13], 12, -40341101)\n i = ff(i, s, n, r, t[14], 17, -1502002290)\n r = ff(r, i, s, n, t[15], 22, 1236535329)\n n = gg(n, r, i, s, t[1], 5, -165796510)\n s = gg(s, n, r, i, t[6], 9, -1069501632)\n i = gg(i, s, n, r, t[11], 14, 643717713)\n r = gg(r, i, s, n, t[0], 20, -373897302)\n n = gg(n, r, i, s, t[5], 5, -701558691)\n s = gg(s, n, r, i, t[10], 9, 38016083)\n i = gg(i, s, n, r, t[15], 14, -660478335)\n r = gg(r, i, s, n, t[4], 20, -405537848)\n n = gg(n, r, i, s, t[9], 5, 568446438)\n s = gg(s, n, r, i, t[14], 9, -1019803690)\n i = gg(i, s, n, r, t[3], 14, -187363961)\n r = gg(r, i, s, n, t[8], 20, 1163531501)\n n = gg(n, r, i, s, t[13], 5, -1444681467)\n s = gg(s, n, r, i, t[2], 9, -51403784)\n i = gg(i, s, n, r, t[7], 14, 1735328473)\n r = gg(r, i, s, n, t[12], 20, -1926607734)\n n = hh(n, r, i, s, t[5], 4, -378558)\n s = hh(s, n, r, i, t[8], 11, -2022574463)\n i = hh(i, s, n, r, t[11], 16, 1839030562)\n r = hh(r, i, s, n, t[14], 23, -35309556)\n n = hh(n, r, i, s, t[1], 4, -1530992060)\n s = hh(s, n, r, i, t[4], 11, 1272893353)\n i = hh(i, s, n, r, t[7], 16, -155497632)\n r = hh(r, i, s, n, t[10], 23, -1094730640)\n n = hh(n, r, i, s, t[13], 4, 681279174)\n s = hh(s, n, r, i, t[0], 11, -358537222)\n i = hh(i, s, n, r, t[3], 16, -722521979)\n r = hh(r, i, s, n, t[6], 23, 76029189)\n n = hh(n, r, i, s, t[9], 4, -640364487)\n s = hh(s, n, r, i, t[12], 11, -421815835)\n i = hh(i, s, n, r, t[15], 16, 530742520)\n r = hh(r, i, s, n, t[2], 23, -995338651)\n n = ii(n, r, i, s, t[0], 6, -198630844)\n s = ii(s, n, r, i, t[7], 10, 1126891415)\n i = ii(i, s, n, r, t[14], 15, -1416354905)\n r = ii(r, i, s, n, t[5], 21, -57434055)\n n = ii(n, r, i, s, t[12], 6, 1700485571)\n s = ii(s, n, r, i, t[3], 10, -1894986606)\n i = ii(i, s, n, r, t[10], 15, -1051523)\n r = ii(r, i, s, n, t[1], 21, -2054922799)\n n = ii(n, r, i, s, t[8], 6, 1873313359)\n s = ii(s, n, r, i, t[15], 10, -30611744)\n i = ii(i, s, n, r, t[6], 15, -1560198380)\n r = ii(r, i, s, n, t[13], 21, 1309151649)\n n = ii(n, r, i, s, t[4], 6, -145523070)\n s = ii(s, n, r, i, t[11], 10, -1120210379)\n i = ii(i, s, n, r, t[2], 15, 718787259)\n r = ii(r, i, s, n, t[9], 21, -343485551)\n e[0] = add32(n, e[0])\n e[1] = add32(r, e[1])\n e[2] = add32(i, e[2])\n e[3] = add32(s, e[3])\n }\n function cmn(e: number, t: number, n: any, r: any, i: number, s: any) {\n t = add32(add32(t, e), add32(r, s))\n return add32((t << i) | (t >>> (32 - i)), n)\n }\n function ff(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number,\n ) {\n return cmn((t & n) | (~t & r), e, t, i, s, o)\n }\n function gg(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number,\n ) {\n return cmn((t & r) | (n & ~r), e, t, i, s, o)\n }\n function hh(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number,\n ) {\n return cmn(t ^ n ^ r, e, t, i, s, o)\n }\n function ii(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number,\n ) {\n return cmn(n ^ (t | ~r), e, t, i, s, o)\n }\n function md51(e: string) {\n const t = e.length\n const n = [1732584193, -271733879, -1732584194, 271733878]\n let r: number\n for (r = 64; r <= e.length; r += 64)\n md5cycle(n, md5blk(e.substring(r - 64, r)))\n\n e = e.substring(r - 64)\n const i = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n for (r = 0; r < e.length; r++) i[r >> 2] |= e.charCodeAt(r) << (r % 4 << 3)\n i[r >> 2] |= 128 << (r % 4 << 3)\n if (r > 55) {\n md5cycle(n, i)\n for (r = 0; r < 16; r++) i[r] = 0\n }\n i[14] = t * 8\n md5cycle(n, i)\n return n\n }\n function md5blk(e: string) {\n const t = []\n let n: number\n for (n = 0; n < 64; n += 4) {\n t[n >> 2]\n = e.charCodeAt(n)\n + (e.charCodeAt(n + 1) << 8)\n + (e.charCodeAt(n + 2) << 16)\n + (e.charCodeAt(n + 3) << 24)\n }\n return t\n }\n function rhex(e: number) {\n let t = ''\n let n = 0\n for (; n < 4; n++)\n t += hex_chr[(e >> (n * 8 + 4)) & 15] + hex_chr[(e >> (n * 8)) & 15]\n return t\n }\n function hex(e: any[]) {\n for (let t = 0; t < e.length; t++) e[t] = rhex(e[t])\n return e.join('')\n }\n function md5(e: string) {\n return hex(md51(e))\n }\n function add32(e: number, t: number) {\n return (e + t) & 4294967295\n }\n\n // check to make sure you gave us something\n options = options || {}\n\n const params = []\n\n // set some defaults, just in case\n options = {\n size: options.size || '50',\n rating: options.rating || 'g',\n secure: options.secure || location.protocol === 'https:',\n backup: options.backup || '',\n }\n\n // setup the email address\n email = email.trim().toLowerCase()\n\n // determine which base to use\n const base = options.secure\n ? 'https://secure.gravatar.com/avatar/'\n : 'http://www.gravatar.com/avatar/'\n\n // add the params\n if (options.rating)\n params.push(`r=${options.rating}`)\n\n if (options.backup)\n params.push(`d=${encodeURIComponent(options.backup)}`)\n\n if (options.size)\n params.push(`s=${options.size}`)\n\n // now throw it all together\n return `${base + md5(email)}?${params.join('&')}`\n}\n\nexport function gravatarURLByEmail(\n email: string,\n defaultURL = '',\n): string {\n try {\n return gravatar(email, {\n size: 256,\n backup: 'monsterid',\n // backup: \"https://holtwick.de/download/user.png\", // \"retro\",\n secure: true,\n })\n }\n catch (error) {\n return defaultURL\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport type { Json, ObjectStorage } from '../common/types'\nimport { jsonStringifySafe } from '../common/data/json'\n\nexport interface LocalStorageOptions {\n name: string\n objectFromString?: (data: string) => any\n objectToString?: (data: any) => string\n}\n\nexport class LocalStorage<T = Json> implements ObjectStorage<T> {\n private name: string\n private prefix: string\n private pretty = false\n private objectFromString: (data: string) => any\n private objectToString: (data: any) => string\n\n constructor(opt: LocalStorageOptions) {\n this.name = opt.name ?? 'zeed'\n this.prefix = `${opt.name}$`\n this.objectToString = opt.objectToString ?? ((data: any): string => {\n return this.pretty\n ? jsonStringifySafe(data, null, 2)\n : jsonStringifySafe(data)\n })\n\n this.objectFromString = opt.objectFromString ?? ((data: string) => {\n try {\n return JSON.parse(data)\n }\n catch (err) {\n // log.warn(`LocalStorage parse error '${err}' in`, data)\n }\n })\n }\n\n setItem(key: string, value: T): void {\n const data = this.objectToString(value)\n localStorage.setItem(`${this.prefix}${key}`, data)\n }\n\n getItem(key: string): T | undefined {\n const value = localStorage.getItem(`${this.prefix}${key}`)\n if (value != null)\n return this.objectFromString(value)\n }\n\n removeItem(key: string): void {\n localStorage.removeItem(`${this.prefix}${key}`)\n }\n\n clear(): void {\n Object.keys(localStorage)\n .filter(key => key.startsWith(this.prefix))\n .forEach((key) => {\n localStorage.removeItem(key)\n })\n }\n\n allKeys(): string[] {\n const prefixLength = this.prefix.length\n return Object.keys(localStorage)\n .filter(key => key.startsWith(this.prefix))\n .map(key => key.substr(prefixLength))\n }\n}\n","/* eslint-disable n/prefer-global/process */\n\n// Taken from https://github.com/visionmedia/debug/blob/master/src/browser.js#L27\n\nexport function browserSupportsColors(): boolean {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (\n typeof window !== 'undefined'\n && window.process\n // @ts-expect-error xxx\n && (window.process.type === 'renderer' || window.process.__nwjs)\n )\n return true\n\n // Internet Explorer and Edge do not support colors.\n if (\n typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)\n )\n return false\n\n // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (\n (typeof document !== 'undefined'\n && document.documentElement\n && document.documentElement.style\n // @ts-expect-error xxx\n && document.documentElement.style.WebkitAppearance)\n // Is firebug? http://stackoverflow.com/a/398120/376773\n || (typeof window !== 'undefined'\n && window.console\n // @ts-expect-error xxx\n && (window.console.firebug\n // @ts-expect-error xxx\n // eslint-disable-next-line @typescript-eslint/unbound-method\n || (window.console.exception && window.console.table)))\n // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n || (typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)\n && Number.parseInt(RegExp.$1, 10) >= 31)\n // Double check webkit in userAgent just in case we are in a worker\n || (typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/))\n )\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\n/* eslint-disable no-console */\n\nimport type { LogHandler, LogHandlerOptions, LogMessage } from '../../common/log/log-base'\nimport { LogLevelError, LogLevelInfo, LogLevelWarn } from '../../common/log/log-base'\nimport { browserSelectColorByName } from '../../common/log/log-colors'\nimport { joinLogStrings, useLevelFilter, useNamespaceFilter } from '../../common/log/log-filter'\nimport { formatMilliseconds, getTimestamp } from '../../common/time'\nimport { browserSupportsColors } from './log-colors'\n\nexport function LoggerBrowserHandler(opt: LogHandlerOptions = {}): LogHandler {\n const styleFont = 'font-family: \"JetBrains Mono\", Menlo; font-size: 11px;'\n const styleDefault = `${styleFont}`\n const styleBold = `font-weight: 600; ${styleFont}`\n const useColors = browserSupportsColors()\n const namespaces: Record<string, any> = {}\n const startTime = getTimestamp()\n\n const {\n filter = undefined,\n level = undefined,\n colors = true,\n // levelHelper = false,\n // nameBrackets = true,\n padding = 16,\n time = true,\n } = opt\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level))\n return\n if (!matchesNamespace(msg.name))\n return\n\n const timeDiffString = time ? `+${formatMilliseconds(getTimestamp() - startTime)}` : ''\n\n let name = msg.name || ''\n let ninfo = namespaces[name || '']\n if (ninfo == null) {\n ninfo = {\n color: browserSelectColorByName(name),\n // time: timeNow\n }\n namespaces[name] = ninfo\n }\n let args: string[]\n\n if (padding > 0)\n name = name.padEnd(16, ' ')\n\n if (colors && useColors) {\n args = [`%c${name}%c \\t%s %c${timeDiffString}`]\n args.push(`color:${ninfo.color}; ${styleBold}`)\n args.push(styleDefault)\n args.push(msg.messages?.[0] ?? '')\n args.push(`color:${ninfo.color};`)\n args.push(...msg.messages.slice(1))\n }\n else {\n args = [name, ...msg.messages, `+${timeDiffString}`]\n }\n\n // function consoleArgs(args: any[] = []): any[] {\n // return [\n // args\n // .filter((a) => typeof a === \"string\")\n // .map((a) => String(a))\n // .join(\" \"),\n // ...styles,\n // ...args.filter((a) => typeof a !== \"string\"),\n // ]\n // }\n\n args = args.map((arg: unknown) => {\n // There is an aweful bug in WKWebView causing \"stack\" issues on Uint8Arrays >= 64k\n if (arg instanceof Uint8Array)\n return `<Uint8Array size=${arg.length}>`\n return arg\n }) as any\n\n switch (msg.level) {\n case LogLevelInfo:\n if (opt.levelHelper)\n args[0] = `I|* ${args[0]}`\n console.info(...joinLogStrings(...args))\n break\n case LogLevelWarn:\n if (opt.levelHelper)\n args[0] = `W|** ${args[0]}`\n console.warn(...joinLogStrings(...args))\n break\n case LogLevelError:\n if (opt.levelHelper)\n args[0] = `E|*** ${args[0]}`\n console.error(...joinLogStrings(...args))\n break\n default:\n if (opt.levelHelper)\n args[0] = `D| ${args[0]}`\n console.debug(...joinLogStrings(...args))\n break\n }\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\n/* eslint-disable no-console */\n\nimport type { LogHandlerOptions, LogLevel, LogLevelAliasType, LoggerInterface } from '../../common/log/log-base'\nimport { LogLevelAll, LogLevelDebug, LogLevelError, LogLevelFatal, LogLevelInfo, LogLevelOff, LogLevelWarn } from '../../common/log/log-base'\nimport { browserSelectColorByName } from '../../common/log/log-colors'\nimport { parseLogLevel, useNamespaceFilter } from '../../common/log/log-filter'\nimport { browserSupportsColors } from './log-colors'\n\n/**\n * Directly use console calls, this has the advantage to show the original source of the call\n * i.e. it is possible to jump right into the code from the browser console logs. But other\n * loggers will not work any more.\n */\nexport function LoggerBrowserSetupDebugFactory(opt: LogHandlerOptions = {}) {\n const filter = opt.filter ?? localStorage.zeed ?? localStorage.debug\n const styleFont = 'font-family: \"JetBrains Mono\", Menlo; font-size: 11px;'\n const styleDefault = `${styleFont}`\n const styleBold = `font-weight: 600; ${styleFont}`\n const useColors = browserSupportsColors()\n const noop: any = () => {}\n\n /// The trick is, that console called directly provides a reference to the source code.\n /// For the regular implementation this information is lost. But this approach has other\n /// drawbacks, therefore only use it in the Browser when actively debugging.\n return function LoggerBrowserDebugFactory(\n name = '',\n logLevel?: LogLevelAliasType,\n ): LoggerInterface {\n let log: LoggerInterface\n\n const matches = useNamespaceFilter(filter)\n const level = parseLogLevel(logLevel ?? LogLevelAll)\n\n if (matches(name) && level !== LogLevelOff) {\n const fixedArgs = []\n if (useColors) {\n const color = browserSelectColorByName(name)\n fixedArgs.push(`%c${name.padEnd(16, ' ')}%c \\t%s`)\n fixedArgs.push(`color:${color}; ${styleBold}`)\n fixedArgs.push(styleDefault)\n }\n else {\n fixedArgs.push(`[${name}] \\t%s`)\n }\n\n function defineForLogLevel(fnLevel: LogLevel, fn: any) {\n if (level <= fnLevel)\n return fn\n return () => {}\n }\n\n log = defineForLogLevel(LogLevelDebug, console.debug.bind(console, ...fixedArgs) as LoggerInterface)\n log.debug = defineForLogLevel(LogLevelDebug, console.debug.bind(console, ...fixedArgs))\n log.info = defineForLogLevel(LogLevelInfo, console.info.bind(console, ...fixedArgs))\n log.warn = defineForLogLevel(LogLevelWarn, console.warn.bind(console, ...fixedArgs))\n log.error = defineForLogLevel(LogLevelError, console.error.bind(console, ...fixedArgs))\n\n log.fatal = defineForLogLevel(LogLevelFatal, (...args: any) => {\n log.error(...args)\n throw new Error(`${args.map(String).join(' ')}`)\n })\n\n log.assert = defineForLogLevel(LogLevelFatal, (condition: unknown, ...args: any) => {\n if (condition == null || (typeof condition === 'number' && Number.isNaN(condition)) || !condition)\n log.fatal(...args)\n })\n }\n else {\n log = (() => {}) as LoggerInterface\n log.debug = noop\n log.info = noop\n log.warn = noop\n log.error = noop\n log.assert = noop\n log.fatal = noop\n }\n\n log.extend = (subName: string) => {\n return LoggerBrowserDebugFactory(name ? `${name}:${subName}` : subName)\n }\n\n log.label = name\n\n return log\n }\n}\n\n/** @deprecated This output is default for initial use of Logger in browser environments. */\nexport function activateConsoleDebug(_opt: LogHandlerOptions = {}) {\n console.info('activateConsoleDebug is activated by default in browsers')\n // Logger.setHandlers([LoggerBrowserHandler(opt)]) // Fallback for previously registered Loggers\n // Logger.setFactory(LoggerBrowserSetupDebugFactory(opt))\n}\n\n// let klass = console\n// let debug = console.debug.bind(window.console, klass.toString() + \": \")\n\n// debug(\"test\")\n// console.debug(\"test2\")\n\n// let dd\n// if (Function.prototype.bind) {\n// dd = Function.prototype.bind.call(console.log, console)\n// } else {\n// dd = function () {\n// Function.prototype.apply.call(console.log, console, arguments)\n// }\n// }\n\n// dd(\"dd\")\n\n// let c = 1\n// Object.defineProperty(window, \"log2\", {\n// get: () => {\n// return console.log.bind(\n// window.console,\n// \"%c[log]%c %s\" + c++,\n// \"color:red\",\n// \"\"\n// )\n// },\n// })\n\n// // usage:\n// log2(\"Back to the future\")\n// log2(\"Back to the future\")\n\n// let plog = new Proxy(console.debug, {\n// apply: function (target, that, args) {\n// target.apply(that, args)\n// // base.apply(that, args);\n// },\n// })\n\n// let cons = console.debug\n// let plog = (...args) => {\n// cons.apply(window.console, [\"|\", ...args])\n// }\n\n// plog(\"xxx\")\n\n// function a() {\n// var err = new Error()\n// var caller_line = err.stack.split(\"\\n\")[2]\n// var index = caller_line.indexOf(\"at \")\n// var clean = caller_line.slice(index + 2, caller_line.length)\n// clean = clean.replace(/\\?t=\\d+/, \"\").replace(\"@fs/\", \"\")\n// console.log(clean)\n// console.log(\n// \"http://localhost:8080/Users/dirk/work/viidoo/lib/src/browser/log-browser.ts:188:1 log-browser.ts:291:10\"\n// )\n// }\n// function b() {\n// a()\n// }\n// b()\n","import { isEmpty } from '../../common'\nimport { getGlobalLogger } from '../../common/log'\nimport type { LogLevelAliasType, LoggerInterface } from '../../common/log/log-base'\nimport { isBrowser } from '../../common/platform'\nimport { LoggerBrowserHandler } from './log-browser'\nimport { LoggerBrowserSetupDebugFactory } from './log-browser-factory'\n\nexport function Logger(name?: string, level?: LogLevelAliasType): LoggerInterface {\n return getGlobalLogger((context) => {\n if (isBrowser() && !isEmpty(localStorage.getItem('zeed'))) {\n context.setHandlers([LoggerBrowserHandler()]) // Fallback for previously registered Loggers\n context.setFactory(LoggerBrowserSetupDebugFactory({}))\n }\n })(name, level)\n}\n"]}
1
+ {"version":3,"sources":["../src/browser/base64.ts","../src/browser/gravatar.ts","../src/browser/localstorage.ts","../src/browser/log/log-colors.ts","../src/browser/log/log-browser.ts","../src/browser/log/log-browser-factory.ts","../src/browser/log/log-context-browser.ts"],"names":["urlBase64ToUint8Array","base64String","padding","base64","rawData","outputArray","i","gravatar","email","options","hex_chr","md5cycle","e","t","n","r","s","ff","gg","hh","ii","add32","cmn","o","md51","md5blk","rhex","hex","md5","params","base","gravatarURLByEmail","defaultURL","LocalStorage","opt","data","jsonStringifySafe","key","value","prefixLength","browserSupportsColors","LoggerBrowserHandler","styleFont","styleDefault","styleBold","useColors","namespaces","startTime","getTimestamp","filter","level","colors","time","matchesNamespace","useNamespaceFilter","matchesLevel","useLevelFilter","msg","timeDiffString","formatMilliseconds","name","ninfo","browserSelectColorByName","args","arg","joinLogStrings","LoggerBrowserSetupDebugFactory","noop","LoggerBrowserDebugFactory","logLevel","log","matches","parseLogLevel","defineForLogLevel","fnLevel","fn","fixedArgs","color","condition","subName","activateConsoleDebug","_opt","Logger","getGlobalLogger","context","isBrowser","isEmpty"],"mappings":"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","sourcesContent":["// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\n/** @deprecated use fromBase64 instead */\nexport function urlBase64ToUint8Array(base64String: string): Uint8Array | undefined {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4)\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/')\n const rawData = window.atob(base64)\n const outputArray = new Uint8Array(rawData.length)\n for (let i = 0; i < rawData.length; ++i)\n outputArray[i] = rawData.charCodeAt(i)\n return outputArray\n}\n","// MIT licensed\n// https://github.com/mazondo/gravatarjs/blob/master/gravatar.js\n// https://en.gravatar.com/site/implement/images/\n\n/** @deprecated Due to privacy concerns. Prefer local or custom solutions. */\nfunction gravatar(\n email: string,\n options: { size?: any; backup?: any; secure?: any; rating?: any },\n) {\n const hex_chr = '0123456789abcdef'.split('')\n\n // using md5() from here: http://www.myersdaily.org/joseph/javascript/md5-text.html\n function md5cycle(e: any[], t: any[]) {\n let n = e[0]\n let r = e[1]\n let i = e[2]\n let s = e[3]\n n = ff(n, r, i, s, t[0], 7, -680876936)\n s = ff(s, n, r, i, t[1], 12, -389564586)\n i = ff(i, s, n, r, t[2], 17, 606105819)\n r = ff(r, i, s, n, t[3], 22, -1044525330)\n n = ff(n, r, i, s, t[4], 7, -176418897)\n s = ff(s, n, r, i, t[5], 12, 1200080426)\n i = ff(i, s, n, r, t[6], 17, -1473231341)\n r = ff(r, i, s, n, t[7], 22, -45705983)\n n = ff(n, r, i, s, t[8], 7, 1770035416)\n s = ff(s, n, r, i, t[9], 12, -1958414417)\n i = ff(i, s, n, r, t[10], 17, -42063)\n r = ff(r, i, s, n, t[11], 22, -1990404162)\n n = ff(n, r, i, s, t[12], 7, 1804603682)\n s = ff(s, n, r, i, t[13], 12, -40341101)\n i = ff(i, s, n, r, t[14], 17, -1502002290)\n r = ff(r, i, s, n, t[15], 22, 1236535329)\n n = gg(n, r, i, s, t[1], 5, -165796510)\n s = gg(s, n, r, i, t[6], 9, -1069501632)\n i = gg(i, s, n, r, t[11], 14, 643717713)\n r = gg(r, i, s, n, t[0], 20, -373897302)\n n = gg(n, r, i, s, t[5], 5, -701558691)\n s = gg(s, n, r, i, t[10], 9, 38016083)\n i = gg(i, s, n, r, t[15], 14, -660478335)\n r = gg(r, i, s, n, t[4], 20, -405537848)\n n = gg(n, r, i, s, t[9], 5, 568446438)\n s = gg(s, n, r, i, t[14], 9, -1019803690)\n i = gg(i, s, n, r, t[3], 14, -187363961)\n r = gg(r, i, s, n, t[8], 20, 1163531501)\n n = gg(n, r, i, s, t[13], 5, -1444681467)\n s = gg(s, n, r, i, t[2], 9, -51403784)\n i = gg(i, s, n, r, t[7], 14, 1735328473)\n r = gg(r, i, s, n, t[12], 20, -1926607734)\n n = hh(n, r, i, s, t[5], 4, -378558)\n s = hh(s, n, r, i, t[8], 11, -2022574463)\n i = hh(i, s, n, r, t[11], 16, 1839030562)\n r = hh(r, i, s, n, t[14], 23, -35309556)\n n = hh(n, r, i, s, t[1], 4, -1530992060)\n s = hh(s, n, r, i, t[4], 11, 1272893353)\n i = hh(i, s, n, r, t[7], 16, -155497632)\n r = hh(r, i, s, n, t[10], 23, -1094730640)\n n = hh(n, r, i, s, t[13], 4, 681279174)\n s = hh(s, n, r, i, t[0], 11, -358537222)\n i = hh(i, s, n, r, t[3], 16, -722521979)\n r = hh(r, i, s, n, t[6], 23, 76029189)\n n = hh(n, r, i, s, t[9], 4, -640364487)\n s = hh(s, n, r, i, t[12], 11, -421815835)\n i = hh(i, s, n, r, t[15], 16, 530742520)\n r = hh(r, i, s, n, t[2], 23, -995338651)\n n = ii(n, r, i, s, t[0], 6, -198630844)\n s = ii(s, n, r, i, t[7], 10, 1126891415)\n i = ii(i, s, n, r, t[14], 15, -1416354905)\n r = ii(r, i, s, n, t[5], 21, -57434055)\n n = ii(n, r, i, s, t[12], 6, 1700485571)\n s = ii(s, n, r, i, t[3], 10, -1894986606)\n i = ii(i, s, n, r, t[10], 15, -1051523)\n r = ii(r, i, s, n, t[1], 21, -2054922799)\n n = ii(n, r, i, s, t[8], 6, 1873313359)\n s = ii(s, n, r, i, t[15], 10, -30611744)\n i = ii(i, s, n, r, t[6], 15, -1560198380)\n r = ii(r, i, s, n, t[13], 21, 1309151649)\n n = ii(n, r, i, s, t[4], 6, -145523070)\n s = ii(s, n, r, i, t[11], 10, -1120210379)\n i = ii(i, s, n, r, t[2], 15, 718787259)\n r = ii(r, i, s, n, t[9], 21, -343485551)\n e[0] = add32(n, e[0])\n e[1] = add32(r, e[1])\n e[2] = add32(i, e[2])\n e[3] = add32(s, e[3])\n }\n function cmn(e: number, t: number, n: any, r: any, i: number, s: any) {\n t = add32(add32(t, e), add32(r, s))\n return add32((t << i) | (t >>> (32 - i)), n)\n }\n function ff(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number,\n ) {\n return cmn((t & n) | (~t & r), e, t, i, s, o)\n }\n function gg(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number,\n ) {\n return cmn((t & r) | (n & ~r), e, t, i, s, o)\n }\n function hh(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number,\n ) {\n return cmn(t ^ n ^ r, e, t, i, s, o)\n }\n function ii(\n e: any,\n t: number,\n n: number,\n r: number,\n i: any,\n s: number,\n o: number,\n ) {\n return cmn(n ^ (t | ~r), e, t, i, s, o)\n }\n function md51(e: string) {\n const t = e.length\n const n = [1732584193, -271733879, -1732584194, 271733878]\n let r: number\n for (r = 64; r <= e.length; r += 64)\n md5cycle(n, md5blk(e.substring(r - 64, r)))\n\n e = e.substring(r - 64)\n const i = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n for (r = 0; r < e.length; r++) i[r >> 2] |= e.charCodeAt(r) << (r % 4 << 3)\n i[r >> 2] |= 128 << (r % 4 << 3)\n if (r > 55) {\n md5cycle(n, i)\n for (r = 0; r < 16; r++) i[r] = 0\n }\n i[14] = t * 8\n md5cycle(n, i)\n return n\n }\n function md5blk(e: string) {\n const t = []\n let n: number\n for (n = 0; n < 64; n += 4) {\n t[n >> 2]\n = e.charCodeAt(n)\n + (e.charCodeAt(n + 1) << 8)\n + (e.charCodeAt(n + 2) << 16)\n + (e.charCodeAt(n + 3) << 24)\n }\n return t\n }\n function rhex(e: number) {\n let t = ''\n let n = 0\n for (; n < 4; n++)\n t += hex_chr[(e >> (n * 8 + 4)) & 15] + hex_chr[(e >> (n * 8)) & 15]\n return t\n }\n function hex(e: any[]) {\n for (let t = 0; t < e.length; t++) e[t] = rhex(e[t])\n return e.join('')\n }\n function md5(e: string) {\n return hex(md51(e))\n }\n function add32(e: number, t: number) {\n return (e + t) & 4294967295\n }\n\n // check to make sure you gave us something\n options = options || {}\n\n const params = []\n\n // set some defaults, just in case\n options = {\n size: options.size || '50',\n rating: options.rating || 'g',\n secure: options.secure || location.protocol === 'https:',\n backup: options.backup || '',\n }\n\n // setup the email address\n email = email.trim().toLowerCase()\n\n // determine which base to use\n const base = options.secure\n ? 'https://secure.gravatar.com/avatar/'\n : 'http://www.gravatar.com/avatar/'\n\n // add the params\n if (options.rating)\n params.push(`r=${options.rating}`)\n\n if (options.backup)\n params.push(`d=${encodeURIComponent(options.backup)}`)\n\n if (options.size)\n params.push(`s=${options.size}`)\n\n // now throw it all together\n return `${base + md5(email)}?${params.join('&')}`\n}\n\nexport function gravatarURLByEmail(\n email: string,\n defaultURL = '',\n): string {\n try {\n return gravatar(email, {\n size: 256,\n backup: 'monsterid',\n // backup: \"https://holtwick.de/download/user.png\", // \"retro\",\n secure: true,\n })\n }\n catch (error) {\n return defaultURL\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\nimport type { Json, ObjectStorage } from '../common/types'\nimport { jsonStringifySafe } from '../common/data/json'\n\nexport interface LocalStorageOptions {\n name: string\n objectFromString?: (data: string) => any\n objectToString?: (data: any) => string\n}\n\nexport class LocalStorage<T = Json> implements ObjectStorage<T> {\n private name: string\n private prefix: string\n private pretty = false\n private objectFromString: (data: string) => any\n private objectToString: (data: any) => string\n\n constructor(opt: LocalStorageOptions) {\n this.name = opt.name ?? 'zeed'\n this.prefix = `${opt.name}$`\n this.objectToString = opt.objectToString ?? ((data: any): string => {\n return this.pretty\n ? jsonStringifySafe(data, null, 2)\n : jsonStringifySafe(data)\n })\n\n this.objectFromString = opt.objectFromString ?? ((data: string) => {\n try {\n return JSON.parse(data)\n }\n catch (err) {\n // log.warn(`LocalStorage parse error '${err}' in`, data)\n }\n })\n }\n\n setItem(key: string, value: T): void {\n const data = this.objectToString(value)\n localStorage.setItem(`${this.prefix}${key}`, data)\n }\n\n getItem(key: string): T | undefined {\n const value = localStorage.getItem(`${this.prefix}${key}`)\n if (value != null)\n return this.objectFromString(value)\n }\n\n removeItem(key: string): void {\n localStorage.removeItem(`${this.prefix}${key}`)\n }\n\n clear(): void {\n Object.keys(localStorage)\n .filter(key => key.startsWith(this.prefix))\n .forEach((key) => {\n localStorage.removeItem(key)\n })\n }\n\n allKeys(): string[] {\n const prefixLength = this.prefix.length\n return Object.keys(localStorage)\n .filter(key => key.startsWith(this.prefix))\n .map(key => key.substr(prefixLength))\n }\n}\n","/* eslint-disable n/prefer-global/process */\n\n// Taken from https://github.com/visionmedia/debug/blob/master/src/browser.js#L27\n\nexport function browserSupportsColors(): boolean {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (\n typeof window !== 'undefined'\n && window.process\n // @ts-expect-error xxx\n && (window.process.type === 'renderer' || window.process.__nwjs)\n )\n return true\n\n // Internet Explorer and Edge do not support colors.\n if (\n typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)\n )\n return false\n\n // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (\n (typeof document !== 'undefined'\n && document.documentElement\n && document.documentElement.style\n // @ts-expect-error xxx\n && document.documentElement.style.WebkitAppearance)\n // Is firebug? http://stackoverflow.com/a/398120/376773\n || (typeof window !== 'undefined'\n && window.console\n // @ts-expect-error xxx\n && (window.console.firebug\n // @ts-expect-error xxx\n // eslint-disable-next-line @typescript-eslint/unbound-method\n || (window.console.exception && window.console.table)))\n // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n || (typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)\n && Number.parseInt(RegExp.$1, 10) >= 31)\n // Double check webkit in userAgent just in case we are in a worker\n || (typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/))\n )\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\n/* eslint-disable no-console */\n\nimport type { LogHandler, LogHandlerOptions, LogMessage } from '../../common/log/log-base'\nimport { LogLevelError, LogLevelInfo, LogLevelWarn } from '../../common/log/log-base'\nimport { browserSelectColorByName } from '../../common/log/log-colors'\nimport { joinLogStrings, useLevelFilter, useNamespaceFilter } from '../../common/log/log-filter'\nimport { formatMilliseconds, getTimestamp } from '../../common/time'\nimport { browserSupportsColors } from './log-colors'\n\nexport function LoggerBrowserHandler(opt: LogHandlerOptions = {}): LogHandler {\n const styleFont = 'font-family: \"JetBrains Mono\", Menlo; font-size: 11px;'\n const styleDefault = `${styleFont}`\n const styleBold = `font-weight: 600; ${styleFont}`\n const useColors = browserSupportsColors()\n const namespaces: Record<string, any> = {}\n const startTime = getTimestamp()\n\n const {\n filter = undefined,\n level = undefined,\n colors = true,\n // levelHelper = false,\n // nameBrackets = true,\n padding = 16,\n time = true,\n } = opt\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level))\n return\n if (!matchesNamespace(msg.name))\n return\n\n const timeDiffString = time ? `+${formatMilliseconds(getTimestamp() - startTime)}` : ''\n\n let name = msg.name || ''\n let ninfo = namespaces[name || '']\n if (ninfo == null) {\n ninfo = {\n color: browserSelectColorByName(name),\n // time: timeNow\n }\n namespaces[name] = ninfo\n }\n let args: string[]\n\n if (padding > 0)\n name = name.padEnd(16, ' ')\n\n if (colors && useColors) {\n args = [`%c${name}%c \\t%s %c${timeDiffString}`]\n args.push(`color:${ninfo.color}; ${styleBold}`)\n args.push(styleDefault)\n args.push(msg.messages?.[0] ?? '')\n args.push(`color:${ninfo.color};`)\n args.push(...msg.messages.slice(1))\n }\n else {\n args = [name, ...msg.messages, `+${timeDiffString}`]\n }\n\n // function consoleArgs(args: any[] = []): any[] {\n // return [\n // args\n // .filter((a) => typeof a === \"string\")\n // .map((a) => String(a))\n // .join(\" \"),\n // ...styles,\n // ...args.filter((a) => typeof a !== \"string\"),\n // ]\n // }\n\n args = args.map((arg: unknown) => {\n // There is an aweful bug in WKWebView causing \"stack\" issues on Uint8Arrays >= 64k\n if (arg instanceof Uint8Array)\n return `<Uint8Array size=${arg.length}>`\n return arg\n }) as any\n\n switch (msg.level) {\n case LogLevelInfo:\n if (opt.levelHelper)\n args[0] = `I|* ${args[0]}`\n console.info(...joinLogStrings(...args))\n break\n case LogLevelWarn:\n if (opt.levelHelper)\n args[0] = `W|** ${args[0]}`\n console.warn(...joinLogStrings(...args))\n break\n case LogLevelError:\n if (opt.levelHelper)\n args[0] = `E|*** ${args[0]}`\n console.error(...joinLogStrings(...args))\n break\n default:\n if (opt.levelHelper)\n args[0] = `D| ${args[0]}`\n console.debug(...joinLogStrings(...args))\n break\n }\n }\n}\n","// (C)opyright 2021-07-15 Dirk Holtwick, holtwick.it. All rights reserved.\n\n/* eslint-disable no-console */\n\nimport type { LogHandlerOptions, LogLevel, LogLevelAliasType, LoggerInterface } from '../../common/log/log-base'\nimport { LogLevelAll, LogLevelDebug, LogLevelError, LogLevelFatal, LogLevelInfo, LogLevelOff, LogLevelWarn } from '../../common/log/log-base'\nimport { browserSelectColorByName } from '../../common/log/log-colors'\nimport { parseLogLevel, useNamespaceFilter } from '../../common/log/log-filter'\nimport { browserSupportsColors } from './log-colors'\n\n/**\n * Directly use console calls, this has the advantage to show the original source of the call\n * i.e. it is possible to jump right into the code from the browser console logs. But other\n * loggers will not work any more.\n */\nexport function LoggerBrowserSetupDebugFactory(opt: LogHandlerOptions = {}) {\n const filter = opt.filter ?? localStorage.zeed ?? localStorage.debug\n const styleFont = 'font-family: \"JetBrains Mono\", Menlo; font-size: 11px;'\n const styleDefault = `${styleFont}`\n const styleBold = `font-weight: 600; ${styleFont}`\n const useColors = browserSupportsColors()\n const noop: any = () => {}\n\n /// The trick is, that console called directly provides a reference to the source code.\n /// For the regular implementation this information is lost. But this approach has other\n /// drawbacks, therefore only use it in the Browser when actively debugging.\n return function LoggerBrowserDebugFactory(\n name = '',\n logLevel?: LogLevelAliasType,\n ): LoggerInterface {\n let log: LoggerInterface\n\n const matches = useNamespaceFilter(filter)\n const level = parseLogLevel(logLevel ?? LogLevelAll)\n\n if (matches(name) && level !== LogLevelOff) {\n const fixedArgs = []\n if (useColors) {\n const color = browserSelectColorByName(name)\n fixedArgs.push(`%c${name.padEnd(16, ' ')}%c \\t%s`)\n fixedArgs.push(`color:${color}; ${styleBold}`)\n fixedArgs.push(styleDefault)\n }\n else {\n fixedArgs.push(`[${name}] \\t%s`)\n }\n\n function defineForLogLevel(fnLevel: LogLevel, fn: any) {\n if (level <= fnLevel)\n return fn\n return () => {}\n }\n\n log = defineForLogLevel(LogLevelDebug, console.debug.bind(console, ...fixedArgs) as LoggerInterface)\n log.debug = defineForLogLevel(LogLevelDebug, console.debug.bind(console, ...fixedArgs))\n log.info = defineForLogLevel(LogLevelInfo, console.info.bind(console, ...fixedArgs))\n log.warn = defineForLogLevel(LogLevelWarn, console.warn.bind(console, ...fixedArgs))\n log.error = defineForLogLevel(LogLevelError, console.error.bind(console, ...fixedArgs))\n\n log.fatal = defineForLogLevel(LogLevelFatal, (...args: any) => {\n log.error(...args)\n throw new Error(`${args.map(String).join(' ')}`)\n })\n\n log.assert = defineForLogLevel(LogLevelFatal, (condition: unknown, ...args: any) => {\n if (condition == null || (typeof condition === 'number' && Number.isNaN(condition)) || !condition)\n log.fatal(...args)\n })\n }\n else {\n log = (() => {}) as LoggerInterface\n log.debug = noop\n log.info = noop\n log.warn = noop\n log.error = noop\n log.assert = noop\n log.fatal = noop\n }\n\n log.extend = (subName: string) => {\n return LoggerBrowserDebugFactory(name ? `${name}:${subName}` : subName)\n }\n\n log.label = name\n\n return log\n }\n}\n\n/** @deprecated This output is default for initial use of Logger in browser environments. */\nexport function activateConsoleDebug(_opt: LogHandlerOptions = {}) {\n console.info('activateConsoleDebug is activated by default in browsers')\n // Logger.setHandlers([LoggerBrowserHandler(opt)]) // Fallback for previously registered Loggers\n // Logger.setFactory(LoggerBrowserSetupDebugFactory(opt))\n}\n\n// let klass = console\n// let debug = console.debug.bind(window.console, klass.toString() + \": \")\n\n// debug(\"test\")\n// console.debug(\"test2\")\n\n// let dd\n// if (Function.prototype.bind) {\n// dd = Function.prototype.bind.call(console.log, console)\n// } else {\n// dd = function () {\n// Function.prototype.apply.call(console.log, console, arguments)\n// }\n// }\n\n// dd(\"dd\")\n\n// let c = 1\n// Object.defineProperty(window, \"log2\", {\n// get: () => {\n// return console.log.bind(\n// window.console,\n// \"%c[log]%c %s\" + c++,\n// \"color:red\",\n// \"\"\n// )\n// },\n// })\n\n// // usage:\n// log2(\"Back to the future\")\n// log2(\"Back to the future\")\n\n// let plog = new Proxy(console.debug, {\n// apply: function (target, that, args) {\n// target.apply(that, args)\n// // base.apply(that, args);\n// },\n// })\n\n// let cons = console.debug\n// let plog = (...args) => {\n// cons.apply(window.console, [\"|\", ...args])\n// }\n\n// plog(\"xxx\")\n\n// function a() {\n// var err = new Error()\n// var caller_line = err.stack.split(\"\\n\")[2]\n// var index = caller_line.indexOf(\"at \")\n// var clean = caller_line.slice(index + 2, caller_line.length)\n// clean = clean.replace(/\\?t=\\d+/, \"\").replace(\"@fs/\", \"\")\n// console.log(clean)\n// console.log(\n// \"http://localhost:8080/Users/dirk/work/viidoo/lib/src/browser/log-browser.ts:188:1 log-browser.ts:291:10\"\n// )\n// }\n// function b() {\n// a()\n// }\n// b()\n","import { isEmpty } from '../../common'\nimport { getGlobalLogger } from '../../common/log'\nimport type { LogLevelAliasType, LoggerInterface } from '../../common/log/log-base'\nimport { isBrowser } from '../../common/platform'\nimport { LoggerBrowserHandler } from './log-browser'\nimport { LoggerBrowserSetupDebugFactory } from './log-browser-factory'\n\nexport function Logger(name?: string, level?: LogLevelAliasType): LoggerInterface {\n return getGlobalLogger((context) => {\n if (isBrowser() && !isEmpty(localStorage.getItem('zeed'))) {\n context.setHandlers([LoggerBrowserHandler()]) // Fallback for previously registered Loggers\n context.setFactory(LoggerBrowserSetupDebugFactory({}))\n }\n })(name, level)\n}\n"]}