@dbg-riskit/common 18.1.0 → 20.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/dbg-riskit-common.mjs +4 -1
- package/fesm2022/dbg-riskit-common.mjs.map +1 -1
- package/index.d.ts +308 -5
- package/package.json +3 -6
- package/esm2022/dbg-riskit-common.mjs +0 -5
- package/esm2022/lib/auth.types.mjs +0 -7
- package/esm2022/lib/base64.mjs +0 -114
- package/esm2022/lib/common.functions.mjs +0 -43
- package/esm2022/lib/common.types.mjs +0 -24
- package/esm2022/lib/date.utils.mjs +0 -46
- package/esm2022/lib/error.types.mjs +0 -19
- package/esm2022/lib/file.types.mjs +0 -10
- package/esm2022/lib/global.mjs +0 -9
- package/esm2022/lib/indexeddb/indexed.db.array.subject.mjs +0 -30
- package/esm2022/lib/indexeddb/indexed.db.store.mjs +0 -118
- package/esm2022/lib/indexeddb/indexed.db.subject.mjs +0 -61
- package/esm2022/lib/indexeddb/polyfill.mjs +0 -6
- package/esm2022/lib/indexeddb/request.wrappers.mjs +0 -64
- package/esm2022/lib/indexeddb/subject.subscription.mjs +0 -29
- package/esm2022/lib/logger.mjs +0 -3
- package/esm2022/lib/random.mjs +0 -13
- package/esm2022/lib/replay.subject.ext.mjs +0 -21
- package/esm2022/lib/rxjs.utils.mjs +0 -16
- package/esm2022/lib/storage.mjs +0 -84
- package/esm2022/lib/string.utils.mjs +0 -22
- package/esm2022/lib/uid.utils.mjs +0 -24
- package/esm2022/lib/user.info.mjs +0 -2
- package/esm2022/public_api.mjs +0 -19
- package/lib/auth.types.d.ts +0 -12
- package/lib/base64.d.ts +0 -3
- package/lib/common.functions.d.ts +0 -5
- package/lib/common.types.d.ts +0 -32
- package/lib/date.utils.d.ts +0 -30
- package/lib/error.types.d.ts +0 -16
- package/lib/file.types.d.ts +0 -13
- package/lib/global.d.ts +0 -1
- package/lib/indexeddb/indexed.db.array.subject.d.ts +0 -8
- package/lib/indexeddb/indexed.db.store.d.ts +0 -18
- package/lib/indexeddb/indexed.db.subject.d.ts +0 -11
- package/lib/indexeddb/polyfill.d.ts +0 -1
- package/lib/indexeddb/request.wrappers.d.ts +0 -3
- package/lib/indexeddb/subject.subscription.d.ts +0 -11
- package/lib/logger.d.ts +0 -7
- package/lib/random.d.ts +0 -1
- package/lib/replay.subject.ext.d.ts +0 -10
- package/lib/rxjs.utils.d.ts +0 -3
- package/lib/storage.d.ts +0 -3
- package/lib/string.utils.d.ts +0 -1
- package/lib/uid.utils.d.ts +0 -4
- package/lib/user.info.d.ts +0 -119
- package/public_api.d.ts +0 -19
|
@@ -692,7 +692,10 @@ function string2buffer(source) {
|
|
|
692
692
|
return Uint8Array.from(Array.prototype.slice.apply(str), (char) => char.codePointAt(0) || 0);
|
|
693
693
|
}
|
|
694
694
|
};
|
|
695
|
-
return encoder.encode(source);
|
|
695
|
+
return typedArrayToBuffer(encoder.encode(source));
|
|
696
|
+
}
|
|
697
|
+
function typedArrayToBuffer(array) {
|
|
698
|
+
return array.buffer.slice(array.byteOffset, array.byteLength + array.byteOffset);
|
|
696
699
|
}
|
|
697
700
|
|
|
698
701
|
class Logger {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbg-riskit-common.mjs","sources":["../../../../pkg/dbg-riskit/common/src/lib/global.ts","../../../../pkg/dbg-riskit/common/src/lib/auth.types.ts","../../../../pkg/dbg-riskit/common/src/lib/common.types.ts","../../../../pkg/dbg-riskit/common/src/lib/error.types.ts","../../../../pkg/dbg-riskit/common/src/lib/file.types.ts","../../../../pkg/dbg-riskit/common/src/lib/string.utils.ts","../../../../pkg/dbg-riskit/common/src/lib/date.utils.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/polyfill.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/request.wrappers.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/indexed.db.store.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/subject.subscription.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/indexed.db.subject.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/indexed.db.array.subject.ts","../../../../pkg/dbg-riskit/common/src/lib/replay.subject.ext.ts","../../../../pkg/dbg-riskit/common/src/lib/rxjs.utils.ts","../../../../pkg/dbg-riskit/common/src/lib/storage.ts","../../../../pkg/dbg-riskit/common/src/lib/random.ts","../../../../pkg/dbg-riskit/common/src/lib/uid.utils.ts","../../../../pkg/dbg-riskit/common/src/lib/base64.ts","../../../../pkg/dbg-riskit/common/src/lib/logger.ts","../../../../pkg/dbg-riskit/common/src/lib/common.functions.ts","../../../../pkg/dbg-riskit/common/src/dbg-riskit-common.ts"],"sourcesContent":["let globalContainer: typeof window | typeof global | {} = {};\nif (typeof global !== 'undefined') {\n globalContainer = global;\n}\nif (typeof window !== 'undefined') {\n globalContainer = window;\n}\n\nexport const globalScope = globalContainer;\n","import {Observable} from 'rxjs';\nimport {UserInfo} from './user.info';\n\nexport enum AuthTokenType {\n NONE,\n API,\n AUTH\n}\n\nexport interface AuthProvider {\n readonly loggedIn: Observable<boolean>;\n\n readonly userProfile: Observable<UserInfo | undefined>;\n\n readonly loggedInStream: Observable<boolean>;\n}\n","import {Observable, OperatorFunction} from 'rxjs';\nimport {filter, map} from 'rxjs/operators';\n\nexport type NonNullPrimitives =\n string\n | boolean\n | number\n | bigint;\n\nexport type Primitives =\n NonNullPrimitives\n | null\n | undefined;\n\nexport type JSONObject<R extends { [key: string]: JSONObject } = {}> =\n R\n | R[]\n | Primitives\n | Primitives[];\n\nexport type ValueGetter<T, R = unknown> = (row: T) => R;\n\nexport type Maybe<R> = R | null | undefined;\n\nexport enum ObservableEventType {\n /**\n * A progress event was received.\n */\n Progress = 0,\n /**\n * A result event was received.\n */\n Result = 1\n}\n\nexport type IsEventObject<T> = T extends ObservableEvent<unknown> ? true : false;\n\nexport function isEventObject<T>(unknown: T): IsEventObject<T> {\n return (typeof unknown === 'object'\n && unknown != null\n && 'type' in unknown\n ) as IsEventObject<T>;\n}\n\nexport type ObservableEvent<T> = ProgressEvent | ResultEvent<T>;\n\nexport interface ProgressEvent {\n current: number;\n total?: number;\n type: ObservableEventType.Progress;\n}\n\nexport interface ResultEvent<T> {\n result: T;\n type: ObservableEventType.Result;\n}\n\nexport type ObservableWithProgress<T> = Observable<ObservableEvent<T>>;\n\nexport function extractResult<T>(): OperatorFunction<ObservableEvent<T>, T> {\n return (observable) => observable.pipe(\n filter((event) => event.type === ObservableEventType.Result),\n map((event) => {\n const resultEvent = event as ResultEvent<T>;\n return resultEvent.result;\n })\n );\n}\n","export class ErrorType {\n\n public static NETWORK = new ErrorType();\n public static REQUEST = new ErrorType();\n public static AUTH = new ErrorType();\n public static ERROR = new ErrorType();\n\n public isError() {\n return this === ErrorType.ERROR;\n }\n\n public isNetworkError() {\n return this === ErrorType.NETWORK;\n }\n\n public isRequestError() {\n return this === ErrorType.REQUEST;\n }\n\n public isAuthError() {\n return this === ErrorType.AUTH;\n }\n}\n\nexport interface ErrorMessage {\n status: number;\n message: string;\n errorType: ErrorType;\n trace_id?: string;\n}\n","export const CONTENT_TYPE = {\n APPLICATION_FORM : 'application/x-www-form-urlencoded',\n APPLICATION_FORM_DATA: 'multipart/form-data',\n APPLICATION_JSON : 'application/json',\n TEXT_CSV : 'text/csv;charset=utf-8;',\n TEXT_JAVASCRIPT : 'text/javascript',\n TEXT_CSS : 'text/css',\n TEXT_PLAIN : 'text/plain'\n};\n\nexport interface FileWithContent {\n content: Blob;\n filename?: string;\n}\n","export function toString(value: unknown): string {\n if (value == null) {\n return '';\n }\n\n switch (typeof value) {\n case 'string':\n return value;\n case 'boolean':\n return value ? 'true' : 'false';\n case 'number':\n return value.toString(10);\n case 'object':\n return value!.toString();\n case 'bigint':\n return value.toString();\n case 'function':\n return value.toString();\n default:\n return String(value);\n }\n}\n","import {toString} from './string.utils';\n\nexport class DateUtils {\n\n /**\n * Converts UTC timestamp to Date object.\n *\n * @param utcTimestamp Value in milliseconds since midnight, January 1, 1970 UTC.\n * @return Date object.\n */\n public static utcTimestampToDate(utcTimestamp: number): Date {\n const date = new Date(0);\n date.setUTCMilliseconds(utcTimestamp);\n return date;\n }\n\n /**\n * Converts Date object to UTC timestamp.\n *\n * @param date Date object.\n * @return Value in milliseconds since midnight, January 1, 1970 UTC.\n */\n public static toUTCTimestamp(date: Date): number {\n return date.valueOf();\n }\n\n /**\n * Converts date represented as number in form yyyyMMdd to Date object.\n *\n * @param businessDate Date represented as number in form yyyyMMdd.\n * @return Date object.\n */\n public static parseBusinessDay(businessDate: number): Date {\n const bdate = toString(businessDate);\n const year = parseInt(bdate.substring(0, 4), 10);\n const month = parseInt(bdate.substring(4, 6), 10);\n const day = parseInt(bdate.substring(6, 8), 10);\n return new Date(year, month - 1, day);\n }\n\n /**\n * Converts Date object to date represented as number in form yyyyMMdd.\n *\n * @param date Date object.\n * @return Date represented as number in form yyyyMMdd.\n */\n public static toBusinessDay(date: Date): number {\n return date.getFullYear() * 10000 + (date.getMonth() + 1) * 100 + date.getDate();\n }\n}\n","import {globalScope} from '../global';\n\nexport const indexedDB: IDBFactory = ('indexedDB' in globalScope && globalScope.indexedDB)\n || ('mozIndexedDB' in globalScope && (globalScope as any).mozIndexedDB)\n || ('webkitIndexedDB' in globalScope && (globalScope as any).webkitIndexedDB)\n || ('msIndexedDB' in globalScope && (globalScope as any).msIndexedDB);\n","import {Observable, Subscriber, Subscription, TeardownLogic} from 'rxjs';\n\nexport function requestToObservable<T>(request: IDBRequest, result: (ev: Event) => T,\n tearDown?: TeardownLogic): Observable<T> {\n return new Observable(\n (subscriber: Subscriber<T>) => {\n request.onsuccess = (ev: Event) => {\n subscriber.next(result(ev));\n subscriber.complete();\n };\n\n request.onerror = () => {\n subscriber.error('IndexedDB request failed.');\n };\n return () => {\n subscriber.complete();\n if (tearDown) {\n if (typeof (tearDown as Subscription).unsubscribe === 'function') {\n (tearDown as Subscription).unsubscribe();\n } else if (typeof tearDown === 'function') {\n tearDown();\n }\n }\n };\n });\n}\n\nexport function cursorRequestToStream<T>(request: IDBRequest, tx: IDBTransaction,\n result: (cursor: IDBCursorWithValue) => T,\n tearDown?: TeardownLogic): Observable<T> {\n return new Observable(\n (subscriber: Subscriber<T>) => {\n let running = true;\n request.onsuccess = (ev: Event) => {\n const cursor: IDBCursorWithValue = (ev.target as IDBRequest).result;\n\n // If the cursor is pointing at something, ask for the data\n if (cursor == null) {\n subscriber.complete();\n } else {\n if (running) {\n subscriber.next(result(cursor));\n\n // Move on to the next object in store\n cursor.continue();\n } else {\n subscriber.complete();\n tx.abort();\n }\n }\n };\n\n request.onerror = () => {\n subscriber.error('Failed to load data from IndexedDB.');\n };\n\n tx.oncomplete = () => {\n subscriber.complete();\n };\n\n return () => {\n running = false;\n if (tearDown) {\n if (typeof (tearDown as Subscription).unsubscribe === 'function') {\n (tearDown as Subscription).unsubscribe();\n } else if (typeof tearDown === 'function') {\n tearDown();\n }\n }\n };\n });\n}\n","import {defer, Observable, of, Subscriber, zip} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\nimport {toString} from '../string.utils';\nimport {indexedDB} from './polyfill';\nimport {cursorRequestToStream, requestToObservable} from './request.wrappers';\n\nexport class IndexedDbStore<T> {\n private _bakValue: T[] = [];\n\n public constructor(private readonly dbName: string,\n private readonly key: keyof T | null,\n private readonly version?: number) {\n }\n\n private get indexedDB(): Observable<IDBDatabase> {\n const request = indexedDB.open(this.dbName, this.version || 1);\n let db: IDBDatabase;\n\n let close = false;\n\n request.onupgradeneeded = (ev: IDBVersionChangeEvent) => {\n db = (ev.target as IDBOpenDBRequest).result;\n let params: IDBObjectStoreParameters = {autoIncrement: true};\n if (this.key != null) {\n params = {keyPath: toString(this.key)};\n }\n db.createObjectStore(this.dbName, params);\n\n if (close) {\n db.close();\n }\n };\n\n return requestToObservable(request,\n (ev: Event) => {\n db = (ev.target as IDBOpenDBRequest).result;\n if (close) {\n db.close();\n }\n return db;\n },\n () => {\n close = true;\n if (db) {\n db.close();\n }\n });\n }\n\n public add(value: T): Observable<T | null> {\n return this.bulkAdd([value]).pipe(\n map((savedValue: T[]) => savedValue ? savedValue[0] : null)\n );\n }\n\n public bulkAdd(value: T[]): Observable<T[]> {\n if (!indexedDB) {\n this._bakValue = this._bakValue.concat(value);\n return of(this._bakValue);\n }\n return this.readWriteStore.pipe(\n switchMap((store: IDBObjectStore) => {\n return this._saveBulk(store, value);\n })\n );\n }\n\n public replace(value: T): Observable<T | null> {\n return this.bulkReplace([value]).pipe(\n map((savedValue: T[]) => savedValue ? savedValue[0] : null)\n );\n }\n\n public bulkReplace(value: T[]): Observable<T[]> {\n if (!indexedDB) {\n this._bakValue = value;\n return of(this._bakValue);\n }\n return this._clear().pipe(\n switchMap((store: IDBObjectStore) => {\n return this._saveBulk(store, value);\n })\n );\n }\n\n public clear(): Observable<void> {\n if (!indexedDB) {\n this._bakValue = [];\n return of(void 0);\n }\n return this._clear().pipe(map(() => void 0));\n }\n\n private get readWriteStore(): Observable<IDBObjectStore> {\n return this.indexedDB.pipe(\n map((db: IDBDatabase) => {\n const tx = db.transaction(this.dbName, 'readwrite');\n return tx.objectStore(this.dbName);\n })\n );\n }\n\n private _clear(): Observable<IDBObjectStore> {\n return this.readWriteStore.pipe(\n switchMap((store: IDBObjectStore) => {\n const request = store.clear();\n return requestToObservable(request, () => store);\n })\n );\n }\n\n private _saveBulk(store: IDBObjectStore, items: T[]): Observable<T[]> {\n return defer(\n () => {\n const requests: Array<Observable<null>> = [of(null)];\n if (items != null) {\n items.forEach((item: T) => {\n requests.push(requestToObservable(store.add(item), () => null));\n });\n }\n\n return zip(...requests);\n }\n ).pipe(\n map(() => {\n return items;\n })\n );\n }\n\n public get all(): Observable<T[]> {\n if (!indexedDB) {\n return of(this._bakValue);\n }\n\n return this.indexedDB.pipe(\n switchMap((db: IDBDatabase) => new Observable(\n (subscriber: Subscriber<T[]>) => {\n const tx = db.transaction(this.dbName, 'readonly');\n const store = tx.objectStore(this.dbName);\n const req = store.openCursor();\n const items: T[] = [];\n\n return cursorRequestToStream(req, tx,\n (cursor: IDBCursorWithValue) => {\n return cursor.value;\n })\n .subscribe(\n (item: T) => items.push(item),\n (err) => {\n subscriber.error(err);\n },\n () => {\n subscriber.next(items);\n subscriber.complete();\n });\n })\n )\n );\n }\n}\n","import {Observer, Subject, Subscription} from 'rxjs';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n */\nexport class SubjectSubscription<T> extends Subscription {\n public closed = false;\n\n public constructor(public subject: Subject<T> | null, public subscriber: Observer<T>) {\n super();\n }\n\n public unsubscribe() {\n if (this.closed || this.subject == null) {\n return;\n }\n\n this.closed = true;\n\n const subject = this.subject;\n const observers = subject.observers;\n\n this.subject = null;\n\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n\n const subscriberIndex = observers.indexOf(this.subscriber);\n\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import {ObjectUnsubscribedError, Observable, Subject, Subscriber, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {IndexedDbStore} from './indexed.db.store';\nimport {SubjectSubscription} from './subject.subscription';\n\nexport class IndexedDBReplaySubject<T> extends Subject<T> {\n protected storage: IndexedDbStore<T>;\n\n public constructor(dbName: string, key: keyof T | null, version?: number) {\n super();\n this.storage = new IndexedDbStore<T>(dbName, key, version);\n }\n\n public get hasData(): Observable<boolean> {\n return this.lastValue.pipe(map((val: T | null) => {\n return val != null;\n }));\n }\n\n public get lastValue(): Observable<T | null> {\n return this.storage.all.pipe(map((value: T[]) => value ? value[0] : null));\n }\n\n public next(value: T): void {\n this.storage.replace(value).subscribe(\n (storedValue: T | null) => {\n if (storedValue != null) {\n this._next(storedValue);\n }\n },\n (err) => {\n super.error(err);\n });\n }\n\n protected _next(value: T) {\n super.next(value);\n }\n\n public _subscribe(subscriber: Subscriber<T>): Subscription {\n let subscription: Subscription;\n\n switch (true) {\n case this.closed:\n throw new ObjectUnsubscribedError();\n case this.hasError:\n case this.isStopped:\n subscription = Subscription.EMPTY;\n break;\n default:\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n\n const result = new Subscription();\n result.add(subscription);\n result.add(this.lastValue.subscribe(\n (value: T | null) => {\n if (value != null) {\n subscriber.next(value);\n }\n\n if (this.hasError) {\n subscriber.error(this.thrownError);\n } else if (this.isStopped) {\n subscriber.complete();\n }\n },\n (err) => {\n subscriber.error(err);\n }));\n\n return result;\n }\n}\n","import {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {IndexedDBReplaySubject} from './indexed.db.subject';\n\nexport class IndexedDBArrayReplaySubject<T> extends IndexedDBReplaySubject<T[]> {\n\n public constructor(private readonly partitionSize: number, dbName: string, version?: number) {\n super(dbName, null, version);\n }\n\n public get lastValue(): Observable<T[] | null> {\n return this.storage.all.pipe(\n map((items: T[][]) => {\n if (!items || items.length === 0) {\n return null;\n }\n\n return items.reduce(\n (result: T[], subItems: T[]) => {\n return result.concat(subItems);\n }, [] as T[]);\n })\n );\n }\n\n public next(value: T[]): void {\n const rows: T[][] = [];\n for (let i = 0; i <= value.length / this.partitionSize; i++) {\n rows[i] = value.slice(i * this.partitionSize, (i + 1) * this.partitionSize);\n }\n this.storage.bulkReplace(rows).subscribe(\n () => {\n this._next(value);\n },\n (err) => {\n super.error(err);\n });\n }\n}\n","import {ReplaySubject, SchedulerLike} from 'rxjs';\n\nexport class ReplaySubjectExt<T> extends ReplaySubject<T> {\n\n private _hasData = false;\n private _lastValue?: T;\n private readonly oldNext: (value: T) => void;\n\n public constructor(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike) {\n super(bufferSize, windowTime, scheduler);\n\n this.oldNext = this.next;\n this.next = this.nextAndStoreValue;\n }\n\n public nextAndStoreValue(value: T): void {\n this._lastValue = value;\n this._hasData = true;\n this.oldNext(value);\n }\n\n public get hasData(): boolean {\n return this._hasData;\n }\n\n public get lastValue(): T | undefined {\n return this._lastValue;\n }\n}\n","import {MonoTypeOperatorFunction, throwError, timer} from 'rxjs';\nimport {finalize, mergeMap, retryWhen} from 'rxjs/operators';\nimport {Logger} from './logger';\n\nexport function retry<T>(logger: Logger,\n maxRetryAttempts = 5,\n scalingDuration = 1000): MonoTypeOperatorFunction<T> {\n return retryWhen(((errors) => errors.pipe(\n mergeMap((error, i) => {\n const retryAttempt = i + 1;\n // if maximum number of retries have been met\n // or response is a status code we don't wish to retry, throw error\n if (retryAttempt >= maxRetryAttempts) {\n return throwError(error);\n }\n logger.info(`Attempt ${retryAttempt}: retrying in ${retryAttempt * scalingDuration}ms`);\n // retry after 1s, 2s, etc...\n return timer(retryAttempt * scalingDuration);\n }),\n finalize(() => logger.info('We are done!')))));\n}\n","export const KEY_PREFIX = 'auto-ws';\n\nexport function LocalStorage(key?: string, keyPrefix: string = KEY_PREFIX) {\n return _WebStorage(localStorage, key, keyPrefix);\n}\n\nexport function SessionStorage(key?: string, keyPrefix: string = KEY_PREFIX) {\n return _WebStorage(sessionStorage, key, keyPrefix);\n}\n\nconst _WebStorage = (webStorage: Storage, key: string | undefined, keyPrefix: string) => {\n return (target: object, propertyName: string): void => {\n const storageKey = key || propertyName;\n\n const objectKey = Symbol(`__${WebStorageUtility.generateStorageKey(storageKey, keyPrefix)}`);\n\n Object.defineProperty(target, propertyName, {\n configurable: true,\n get() {\n if (this[objectKey]) {\n return this[objectKey];\n }\n this[objectKey] = WebStorageUtility.get(webStorage, storageKey, keyPrefix);\n return this[objectKey];\n },\n set(newValue: unknown) {\n this[objectKey] = newValue;\n if (newValue == null) {\n WebStorageUtility.remove(webStorage, storageKey, keyPrefix);\n } else {\n WebStorageUtility.set(webStorage, storageKey, keyPrefix, newValue);\n }\n }\n });\n };\n};\n\nclass WebStorageUtility {\n public static generateStorageKey(key: string, keyPrefix: string): string {\n return `${keyPrefix}_${key}`;\n }\n\n public static get(storage: Storage, key: string, keyPrefix: string): unknown {\n const storageKey = WebStorageUtility.generateStorageKey(key, keyPrefix);\n\n try {\n const value = storage.getItem(storageKey);\n return WebStorageUtility.getGettable(value);\n } catch (e) {\n this.clear(storage, storageKey);\n return null;\n }\n }\n\n public static set(storage: Storage, key: string, keyPrefix: string, value: unknown): void {\n const storageKey = WebStorageUtility.generateStorageKey(key, keyPrefix);\n\n try {\n storage.setItem(storageKey, WebStorageUtility.getSettable(value));\n } catch (e) {\n this.clear(storage, storageKey);\n }\n }\n\n private static clear(storage: Storage, storageKey: string) {\n try {\n storage.removeItem(storageKey);\n } catch (e) {\n // Just catch and ignore\n }\n }\n\n public static remove(storage: Storage, key: string, keyPrefix: string): void {\n const storageKey = WebStorageUtility.generateStorageKey(key, keyPrefix);\n\n this.clear(storage, storageKey);\n }\n\n private static getSettable(value: unknown): string {\n return typeof value === 'string' ? value : JSON.stringify(value);\n }\n\n private static getGettable(value: string | null): unknown {\n if (value == null) {\n return null;\n }\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n }\n}\n","import {globalScope} from './global';\n\nconst crypto: Crypto | null = ('crypto' in globalScope && globalScope.crypto)\n || ('msCrypto' in globalScope && (globalScope as any).msCrypto)\n || null;\n\nexport function secureRandom() {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n const array = new Uint16Array(1);\n crypto.getRandomValues(array);\n return array[0] / 65535; // Max Uint16 is 65535\n }\n return Math.random();\n}\n","import {secureRandom} from './random';\nimport {toString} from './string.utils';\n\nexport abstract class UIDUtils {\n public static computeUID(...data: unknown[]): string {\n if (data && data.length) {\n return data.map((value) => {\n if (value == null) {\n return '';\n }\n return toString(value).replace('\\.', '');\n }).join('-');\n }\n return UIDUtils.generateUID();\n }\n\n public static generateUID(): string {\n const s4 = () => {\n return Math.floor((1 + secureRandom()) * 0x10000)\n .toString(16)\n .substring(1);\n };\n\n return `${s4() + s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;\n }\n}\n","import {globalScope} from './global';\n\nconst BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nconst atobAvailable = 'atob' in globalScope && typeof globalScope.atob === 'function';\nconst btoaAvailable = 'btoa' in globalScope && typeof globalScope.btoa === 'function';\n\n// credits for decoder goes to https://github.com/atk\nexport function base64decode(str: string): string {\n let source = str\n .replace(/-/g, '+')\n .replace(/_/g, '/');\n\n // Add padding if missing\n switch (source.length % 4) {\n case 0:\n break;\n case 2:\n source += '==';\n break;\n case 3:\n source += '=';\n break;\n\n default:\n throw new Error('Illegal base64 string!');\n }\n\n let output = '';\n if (atobAvailable) {\n output = atob(str);\n } else {\n source = source.replace(/=+$/, '');\n\n if (source.length % 4 === 1) {\n throw new Error('\\'atob\\' failed: The string to be decoded is not correctly encoded.');\n }\n\n /* eslint-disable no-bitwise, no-cond-assign */\n for (\n // initialize result and counters\n let bc = 0, bs = 0, buffer: string | number, idx = 0;\n // get next character\n buffer = source.charAt(idx++);\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = BASE64_CHARS.indexOf(buffer);\n }\n /* eslint-enable */\n }\n\n // https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\n return decodeURIComponent(Array.prototype.map.call(output, (c: string) => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n}\n\nexport function base64encode(buffer: ArrayBuffer | string): string {\n let arrayBuffer: ArrayBuffer;\n if (typeof buffer === 'string') {\n if (btoaAvailable) {\n return btoa(buffer);\n }\n arrayBuffer = string2buffer(buffer);\n } else {\n arrayBuffer = buffer;\n }\n\n let base64 = '';\n\n const bytes: Uint8Array = new Uint8Array(arrayBuffer);\n const byteLength: number = bytes.byteLength;\n const byteRemainder: number = byteLength % 3;\n const mainLength: number = byteLength - byteRemainder;\n\n let a: number;\n let b: number;\n let c: number;\n let d: number;\n let chunk: number;\n\n /* eslint-disable no-bitwise */\n // Main loop deals with bytes in chunks of 3\n for (let i = 0; i < mainLength; i = i + 3) {\n // Combine the three bytes into a single integer\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n\n // Use bitmasks to extract 6-bit segments from the triplet\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n d = chunk & 63; // 63 = 2^6 - 1\n\n // Convert the raw binary segments to the appropriate ASCII encoding\n base64 += BASE64_CHARS[a] + BASE64_CHARS[b] + BASE64_CHARS[c] + BASE64_CHARS[d];\n }\n\n // Deal with the remaining bytes and padding\n if (byteRemainder === 1) {\n chunk = bytes[mainLength];\n\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n\n // Set the 4 least significant bits to zero\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\n\n base64 += `${BASE64_CHARS[a] + BASE64_CHARS[b]}==`;\n } else if (byteRemainder === 2) {\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];\n\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n\n // Set the 2 least significant bits to zero\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\n\n base64 += `${BASE64_CHARS[a] + BASE64_CHARS[b] + BASE64_CHARS[c]}=`;\n }\n /* eslint-enable */\n\n return base64;\n}\n\nexport function string2buffer(source: string): ArrayBuffer {\n const encoder = 'TextEncoder' in globalScope ? new TextEncoder() : {\n encode(str: string) {\n return Uint8Array.from(\n Array.prototype.slice.apply(str),\n (char: string) => char.codePointAt(0) || 0\n );\n }\n };\n return encoder.encode(source);\n}\n","export abstract class Logger {\n public abstract debug(message: unknown, ...optionalParams: unknown[]): void;\n\n public abstract error(message: unknown, ...optionalParams: unknown[]): void;\n\n public abstract info(message: unknown, ...optionalParams: unknown[]): void;\n\n public abstract trace(message: unknown, ...optionalParams: unknown[]): void;\n\n public abstract warn(message: unknown, ...optionalParams: unknown[]): void;\n}\n","export function deepClone<T>(obj: T): T {\n return obj && JSON.parse(JSON.stringify(obj));\n}\n\nfunction isObject(obj: unknown): boolean {\n return typeof obj === 'object' && obj != null;\n}\n\n/* eslint-disable @typescript-eslint/unified-signatures */\nexport function deepEqual(x: unknown, y: unknown): boolean;\nexport function deepEqual(x: unknown, y: unknown, ignorePaths: string[]): boolean;\nexport function deepEqual(x: unknown, y: unknown, ignoreArrayOrder: boolean): boolean;\nexport function deepEqual(x: unknown, y: unknown, ignorePaths: string[], ignoreArrayOrder: boolean): boolean;\n/* eslint-enable */\nexport function deepEqual(x: unknown, y: unknown,\n ignoreArrayOrderOrPaths: string[] | boolean = [],\n ignoreArrayOrder = false): boolean {\n let ignorePaths: string[] = [];\n if (typeof ignoreArrayOrderOrPaths === 'boolean') {\n ignoreArrayOrder = ignoreArrayOrderOrPaths;\n } else if (Array.isArray(ignoreArrayOrderOrPaths)) {\n ignorePaths = ignoreArrayOrderOrPaths;\n }\n\n return deepEqualImpl(x, y, '', ignorePaths, ignoreArrayOrder);\n}\n\nfunction deepEqualImpl(x: unknown, y: unknown,\n parentPath: string,\n ignorePaths: string[],\n ignoreArrayOrder: boolean): boolean {\n if (x === y) {\n return true;\n }\n\n if (Array.isArray(x) && Array.isArray(y) && ignoreArrayOrder) {\n x = x.slice().sort();\n y = y.slice().sort();\n }\n\n if (isObject(x) && isObject(y)) {\n const xObj = x as { [key: string]: unknown };\n const yObj = y as { [key: string]: unknown };\n const xKeys = Object.keys(xObj).filter((key) => ignorePaths.indexOf(`${parentPath}.${key}`) === -1);\n const yKeys = Object.keys(yObj).filter((key) => ignorePaths.indexOf(`${parentPath}.${key}`) === -1);\n if (xKeys.length !== yKeys.length) {\n return false;\n\n }\n return xKeys.every((key) => {\n if (!(key in yObj)) {\n return false;\n }\n\n return deepEqualImpl(xObj[key], yObj[key], `${parentPath}.${key}`, ignorePaths, ignoreArrayOrder);\n });\n }\n return false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;AAAA,IAAI,eAAe,GAAuC,EAAE,CAAC;AAC7D,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC/B,eAAe,GAAG,MAAM,CAAC;AAC7B,CAAC;AACD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC/B,eAAe,GAAG,MAAM,CAAC;AAC7B,CAAC;AAEM,MAAM,WAAW,GAAG;;ICLf,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACR,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA;;ICiBW,oBASX;AATD,CAAA,UAAY,mBAAmB,EAAA;AAC3B;;AAEG;AACH,IAAA,mBAAA,CAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ;;AAEG;AACH,IAAA,mBAAA,CAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACd,CAAC,EATW,mBAAmB,KAAnB,mBAAmB,GAS9B,EAAA,CAAA,CAAA,CAAA;AAIK,SAAU,aAAa,CAAI,OAAU,EAAA;AACvC,IAAA,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACxB,WAAA,OAAO,IAAI,IAAI;WACf,MAAM,IAAI,OAAO,EACN;AAC1B,CAAC;SAiBe,aAAa,GAAA;AACzB,IAAA,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAClC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,MAAM,CAAC,EAC5D,GAAG,CAAC,CAAC,KAAK,KAAI;QACV,MAAM,WAAW,GAAG,KAAuB,CAAC;QAC5C,OAAO,WAAW,CAAC,MAAM,CAAC;KAC7B,CAAC,CACL,CAAC;AACN;;MCnEa,SAAS,CAAA;AAEJ,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,SAAS,EAAE,CAAC,EAAA;AAC1B,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,SAAS,EAAE,CAAC,EAAA;AAC1B,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC,EAAA;AACvB,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC,EAAA;IAE/B,OAAO,GAAA;AACV,QAAA,OAAO,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC;KACnC;IAEM,cAAc,GAAA;AACjB,QAAA,OAAO,IAAI,KAAK,SAAS,CAAC,OAAO,CAAC;KACrC;IAEM,cAAc,GAAA;AACjB,QAAA,OAAO,IAAI,KAAK,SAAS,CAAC,OAAO,CAAC;KACrC;IAEM,WAAW,GAAA;AACd,QAAA,OAAO,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC;KAClC;;;ACrBQ,MAAA,YAAY,GAAG;AACxB,IAAA,gBAAgB,EAAO,mCAAmC;AAC1D,IAAA,qBAAqB,EAAE,qBAAqB;AAC5C,IAAA,gBAAgB,EAAO,kBAAkB;AACzC,IAAA,QAAQ,EAAe,yBAAyB;AAChD,IAAA,eAAe,EAAQ,iBAAiB;AACxC,IAAA,QAAQ,EAAe,UAAU;AACjC,IAAA,UAAU,EAAa,YAAY;;;ACPjC,SAAU,QAAQ,CAAC,KAAc,EAAA;AACnC,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,QAAA,OAAO,EAAE,CAAC;KACb;IAED,QAAQ,OAAO,KAAK;AAChB,QAAA,KAAK,QAAQ;AACT,YAAA,OAAO,KAAK,CAAC;AACjB,QAAA,KAAK,SAAS;YACV,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AACpC,QAAA,KAAK,QAAQ;AACT,YAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9B,QAAA,KAAK,QAAQ;AACT,YAAA,OAAO,KAAM,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,KAAK,QAAQ;AACT,YAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC5B,QAAA,KAAK,UAAU;AACX,YAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC5B,QAAA;AACI,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;KAC5B;AACL;;MCnBa,SAAS,CAAA;AAElB;;;;;AAKG;IACI,OAAO,kBAAkB,CAAC,YAAoB,EAAA;AACjD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;;;AAKG;IACI,OAAO,cAAc,CAAC,IAAU,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;KACzB;AAED;;;;;AAKG;IACI,OAAO,gBAAgB,CAAC,YAAoB,EAAA;AAC/C,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AACrC,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;KACzC;AAED;;;;;AAKG;IACI,OAAO,aAAa,CAAC,IAAU,EAAA;QAClC,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;KACpF;AACJ;;AC/CM,MAAM,SAAS,GAAe,CAAC,WAAW,IAAI,WAAW,IAAI,WAAW,CAAC,SAAS;AACjD,QAAC,cAAc,IAAI,WAAW,IAAK,WAAmB,CAAC,YAAY,CAAC;AACpE,QAAC,iBAAiB,IAAI,WAAW,IAAK,WAAmB,CAAC,eAAe,CAAC;QACzE,aAAa,IAAI,WAAW,IAAK,WAAmB,CAAC,WAAW,CAAC;;SCH1F,mBAAmB,CAAI,OAAmB,EAAE,MAAwB,EAC7C,QAAwB,EAAA;AAC3D,IAAA,OAAO,IAAI,UAAU,CACjB,CAAC,UAAyB,KAAI;AAC1B,QAAA,OAAO,CAAC,SAAS,GAAG,CAAC,EAAS,KAAI;YAC9B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC1B,SAAC,CAAC;AAEF,QAAA,OAAO,CAAC,OAAO,GAAG,MAAK;AACnB,YAAA,UAAU,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAClD,SAAC,CAAC;AACF,QAAA,OAAO,MAAK;YACR,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,QAAQ,EAAE;AACV,gBAAA,IAAI,OAAQ,QAAyB,CAAC,WAAW,KAAK,UAAU,EAAE;oBAC7D,QAAyB,CAAC,WAAW,EAAE,CAAC;iBAC5C;AAAM,qBAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACvC,oBAAA,QAAQ,EAAE,CAAC;iBACd;aACJ;AACL,SAAC,CAAC;AACN,KAAC,CAAC,CAAC;AACX,CAAC;AAEK,SAAU,qBAAqB,CAAI,OAAmB,EAAE,EAAkB,EACvC,MAAyC,EACzC,QAAwB,EAAA;AAC7D,IAAA,OAAO,IAAI,UAAU,CACjB,CAAC,UAAyB,KAAI;QAC1B,IAAI,OAAO,GAAG,IAAI,CAAC;AACnB,QAAA,OAAO,CAAC,SAAS,GAAG,CAAC,EAAS,KAAI;AAC9B,YAAA,MAAM,MAAM,GAAwB,EAAE,CAAC,MAAqB,CAAC,MAAM,CAAC;;AAGpE,YAAA,IAAI,MAAM,IAAI,IAAI,EAAE;gBAChB,UAAU,CAAC,QAAQ,EAAE,CAAC;aACzB;iBAAM;gBACH,IAAI,OAAO,EAAE;oBACT,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;;oBAGhC,MAAM,CAAC,QAAQ,EAAE,CAAC;iBACrB;qBAAM;oBACH,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtB,EAAE,CAAC,KAAK,EAAE,CAAC;iBACd;aACJ;AACL,SAAC,CAAC;AAEF,QAAA,OAAO,CAAC,OAAO,GAAG,MAAK;AACnB,YAAA,UAAU,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AAC5D,SAAC,CAAC;AAEF,QAAA,EAAE,CAAC,UAAU,GAAG,MAAK;YACjB,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC1B,SAAC,CAAC;AAEF,QAAA,OAAO,MAAK;YACR,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,QAAQ,EAAE;AACV,gBAAA,IAAI,OAAQ,QAAyB,CAAC,WAAW,KAAK,UAAU,EAAE;oBAC7D,QAAyB,CAAC,WAAW,EAAE,CAAC;iBAC5C;AAAM,qBAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACvC,oBAAA,QAAQ,EAAE,CAAC;iBACd;aACJ;AACL,SAAC,CAAC;AACN,KAAC,CAAC,CAAC;AACX;;MCjEa,cAAc,CAAA;AAGvB,IAAA,WAAA,CAAoC,MAAc,EACd,GAAmB,EACnB,OAAgB,EAAA;QAFhB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAG,CAAA,GAAA,GAAH,GAAG,CAAgB;QACnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAJ5C,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;KAK3B;AAED,IAAA,IAAY,SAAS,GAAA;AACjB,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;AAC/D,QAAA,IAAI,EAAe,CAAC;QAEpB,IAAI,KAAK,GAAG,KAAK,CAAC;AAElB,QAAA,OAAO,CAAC,eAAe,GAAG,CAAC,EAAyB,KAAI;AACpD,YAAA,EAAE,GAAI,EAAE,CAAC,MAA2B,CAAC,MAAM,CAAC;AAC5C,YAAA,IAAI,MAAM,GAA6B,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;AAC7D,YAAA,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;gBAClB,MAAM,GAAG,EAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC;aAC1C;YACD,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAE1C,IAAI,KAAK,EAAE;gBACP,EAAE,CAAC,KAAK,EAAE,CAAC;aACd;AACL,SAAC,CAAC;AAEF,QAAA,OAAO,mBAAmB,CAAC,OAAO,EAC9B,CAAC,EAAS,KAAI;AACV,YAAA,EAAE,GAAI,EAAE,CAAC,MAA2B,CAAC,MAAM,CAAC;YAC5C,IAAI,KAAK,EAAE;gBACP,EAAE,CAAC,KAAK,EAAE,CAAC;aACd;AACD,YAAA,OAAO,EAAE,CAAC;SACb,EACD,MAAK;YACD,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,EAAE,EAAE;gBACJ,EAAE,CAAC,KAAK,EAAE,CAAC;aACd;AACL,SAAC,CAAC,CAAC;KACV;AAEM,IAAA,GAAG,CAAC,KAAQ,EAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAC7B,GAAG,CAAC,CAAC,UAAe,KAAK,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAC9D,CAAC;KACL;AAEM,IAAA,OAAO,CAAC,KAAU,EAAA;QACrB,IAAI,CAAC,SAAS,EAAE;YACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9C,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC3B,SAAS,CAAC,CAAC,KAAqB,KAAI;YAChC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACvC,CAAC,CACL,CAAC;KACL;AAEM,IAAA,OAAO,CAAC,KAAQ,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CACjC,GAAG,CAAC,CAAC,UAAe,KAAK,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAC9D,CAAC;KACL;AAEM,IAAA,WAAW,CAAC,KAAU,EAAA;QACzB,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7B;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACrB,SAAS,CAAC,CAAC,KAAqB,KAAI;YAChC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACvC,CAAC,CACL,CAAC;KACL;IAEM,KAAK,GAAA;QACR,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;SACrB;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;KAChD;AAED,IAAA,IAAY,cAAc,GAAA;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACtB,GAAG,CAAC,CAAC,EAAe,KAAI;AACpB,YAAA,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACpD,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtC,CAAC,CACL,CAAC;KACL;IAEO,MAAM,GAAA;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC3B,SAAS,CAAC,CAAC,KAAqB,KAAI;AAChC,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,mBAAmB,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC;SACpD,CAAC,CACL,CAAC;KACL;IAEO,SAAS,CAAC,KAAqB,EAAE,KAAU,EAAA;QAC/C,OAAO,KAAK,CACR,MAAK;YACD,MAAM,QAAQ,GAA4B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,YAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,gBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAO,KAAI;AACtB,oBAAA,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;AACpE,iBAAC,CAAC,CAAC;aACN;AAED,YAAA,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC5B,SAAC,CACJ,CAAC,IAAI,CACF,GAAG,CAAC,MAAK;AACL,YAAA,OAAO,KAAK,CAAC;SAChB,CAAC,CACL,CAAC;KACL;AAED,IAAA,IAAW,GAAG,GAAA;QACV,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7B;AAED,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACtB,SAAS,CAAC,CAAC,EAAe,KAAK,IAAI,UAAU,CACzC,CAAC,UAA2B,KAAI;AAC5B,YAAA,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAQ,EAAE,CAAC;YAEtB,OAAO,qBAAqB,CAAC,GAAG,EAAE,EAAE,EAChC,CAAC,MAA0B,KAAI;gBAC3B,OAAO,MAAM,CAAC,KAAK,CAAC;AACxB,aAAC,CAAC;AACD,iBAAA,SAAS,CACN,CAAC,IAAO,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7B,CAAC,GAAG,KAAI;AACJ,gBAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACzB,EACD,MAAK;AACD,gBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;SACd,CAAC,CACL,CACJ,CAAC;KACL;AACJ;;AC9JD;;AAEG;AACG,MAAO,mBAAuB,SAAQ,YAAY,CAAA;IAGpD,WAA0B,CAAA,OAA0B,EAAS,UAAuB,EAAA;AAChF,QAAA,KAAK,EAAE,CAAC;QADc,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmB;QAAS,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;QAF7E,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;KAIrB;IAEM,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACrC,OAAO;SACV;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAEnB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC7B,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AAEpC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAEpB,QAAA,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;YAC7E,OAAO;SACV;QAED,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAE3D,QAAA,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;AACxB,YAAA,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;SACxC;KACJ;AACJ;;AC7BK,MAAO,sBAA0B,SAAQ,OAAU,CAAA;AAGrD,IAAA,WAAA,CAAmB,MAAc,EAAE,GAAmB,EAAE,OAAgB,EAAA;AACpE,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAI,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;KAC9D;AAED,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAa,KAAI;YAC7C,OAAO,GAAG,IAAI,IAAI,CAAC;SACtB,CAAC,CAAC,CAAC;KACP;AAED,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAU,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;KAC9E;AAEM,IAAA,IAAI,CAAC,KAAQ,EAAA;AAChB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CACjC,CAAC,WAAqB,KAAI;AACtB,YAAA,IAAI,WAAW,IAAI,IAAI,EAAE;AACrB,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aAC3B;AACL,SAAC,EACD,CAAC,GAAG,KAAI;AACJ,YAAA,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,SAAC,CAAC,CAAC;KACV;AAES,IAAA,KAAK,CAAC,KAAQ,EAAA;AACpB,QAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrB;AAEM,IAAA,UAAU,CAAC,UAAyB,EAAA;AACvC,QAAA,IAAI,YAA0B,CAAC;QAE/B,QAAQ,IAAI;YACR,KAAK,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,uBAAuB,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,QAAQ,CAAC;YACnB,KAAK,IAAI,CAAC,SAAS;AACf,gBAAA,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;gBAClC,MAAM;AACV,YAAA;AACI,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChC,YAAY,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAChE;AAED,QAAA,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACzB,QAAA,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAC/B,CAAC,KAAe,KAAI;AAChB,YAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,gBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;AAED,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACtC;AAAM,iBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;aACzB;AACL,SAAC,EACD,CAAC,GAAG,KAAI;AACJ,YAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACzB,CAAC,CAAC,CAAC;AAER,QAAA,OAAO,MAAM,CAAC;KACjB;AACJ;;ACtEK,MAAO,2BAA+B,SAAQ,sBAA2B,CAAA;AAE3E,IAAA,WAAA,CAAoC,aAAqB,EAAE,MAAc,EAAE,OAAgB,EAAA;AACvF,QAAA,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QADG,IAAa,CAAA,aAAA,GAAb,aAAa,CAAQ;KAExD;AAED,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CACxB,GAAG,CAAC,CAAC,KAAY,KAAI;YACjB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,gBAAA,OAAO,IAAI,CAAC;aACf;YAED,OAAO,KAAK,CAAC,MAAM,CACf,CAAC,MAAW,EAAE,QAAa,KAAI;AAC3B,gBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAClC,EAAE,EAAS,CAAC,CAAC;SACrB,CAAC,CACL,CAAC;KACL;AAEM,IAAA,IAAI,CAAC,KAAU,EAAA;QAClB,MAAM,IAAI,GAAU,EAAE,CAAC;AACvB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE;YACzD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;SAC/E;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CACpC,MAAK;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,SAAC,EACD,CAAC,GAAG,KAAI;AACJ,YAAA,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,SAAC,CAAC,CAAC;KACV;AACJ;;ACpCK,MAAO,gBAAoB,SAAQ,aAAgB,CAAA;AAMrD,IAAA,WAAA,CAAmB,UAAmB,EAAE,UAAmB,EAAE,SAAyB,EAAA;AAClF,QAAA,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QALrC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAOrB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;KACtC;AAEM,IAAA,iBAAiB,CAAC,KAAQ,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACvB;AAED,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;AAED,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;AACJ;;ACxBK,SAAU,KAAK,CAAI,MAAc,EACd,gBAAgB,GAAG,CAAC,EACpB,eAAe,GAAG,IAAI,EAAA;AAC3C,IAAA,OAAO,SAAS,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CACrC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,KAAI;AAClB,QAAA,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;;;AAG3B,QAAA,IAAI,YAAY,IAAI,gBAAgB,EAAE;AAClC,YAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,MAAM,CAAC,IAAI,CAAC,CAAW,QAAA,EAAA,YAAY,CAAiB,cAAA,EAAA,YAAY,GAAG,eAAe,CAAI,EAAA,CAAA,CAAC,CAAC;;AAExF,QAAA,OAAO,KAAK,CAAC,YAAY,GAAG,eAAe,CAAC,CAAC;AACjD,KAAC,CAAC,EACF,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD;;ACpBO,MAAM,UAAU,GAAG,SAAS,CAAC;SAEpB,YAAY,CAAC,GAAY,EAAE,YAAoB,UAAU,EAAA;IACrE,OAAO,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;SAEe,cAAc,CAAC,GAAY,EAAE,YAAoB,UAAU,EAAA;IACvE,OAAO,WAAW,CAAC,cAAc,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,UAAmB,EAAE,GAAuB,EAAE,SAAiB,KAAI;AACpF,IAAA,OAAO,CAAC,MAAc,EAAE,YAAoB,KAAU;AAClD,QAAA,MAAM,UAAU,GAAG,GAAG,IAAI,YAAY,CAAC;AAEvC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,iBAAiB,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA,CAAE,CAAC,CAAC;AAE7F,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;AACxC,YAAA,YAAY,EAAE,IAAI;YAClB,GAAG,GAAA;AACC,gBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;AACjB,oBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC1B;AACD,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAC3E,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;aAC1B;AACD,YAAA,GAAG,CAAC,QAAiB,EAAA;AACjB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;AAC3B,gBAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;oBAClB,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;iBAC/D;qBAAM;oBACH,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;iBACtE;aACJ;AACJ,SAAA,CAAC,CAAC;AACP,KAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,iBAAiB,CAAA;AACZ,IAAA,OAAO,kBAAkB,CAAC,GAAW,EAAE,SAAiB,EAAA;AAC3D,QAAA,OAAO,CAAG,EAAA,SAAS,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC;KAChC;AAEM,IAAA,OAAO,GAAG,CAAC,OAAgB,EAAE,GAAW,EAAE,SAAiB,EAAA;QAC9D,MAAM,UAAU,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAExE,QAAA,IAAI;YACA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC1C,YAAA,OAAO,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC/C;QAAC,OAAO,CAAC,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAChC,YAAA,OAAO,IAAI,CAAC;SACf;KACJ;IAEM,OAAO,GAAG,CAAC,OAAgB,EAAE,GAAW,EAAE,SAAiB,EAAE,KAAc,EAAA;QAC9E,MAAM,UAAU,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAExE,QAAA,IAAI;AACA,YAAA,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;SACrE;QAAC,OAAO,CAAC,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SACnC;KACJ;AAEO,IAAA,OAAO,KAAK,CAAC,OAAgB,EAAE,UAAkB,EAAA;AACrD,QAAA,IAAI;AACA,YAAA,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;SAClC;QAAC,OAAO,CAAC,EAAE;;SAEX;KACJ;AAEM,IAAA,OAAO,MAAM,CAAC,OAAgB,EAAE,GAAW,EAAE,SAAiB,EAAA;QACjE,MAAM,UAAU,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAExE,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;KACnC;IAEO,OAAO,WAAW,CAAC,KAAc,EAAA;AACrC,QAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KACpE;IAEO,OAAO,WAAW,CAAC,KAAoB,EAAA;AAC3C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,YAAA,OAAO,IAAI,CAAC;SACf;AACD,QAAA,IAAI;AACA,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;QAAC,OAAO,CAAC,EAAE;AACR,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;AACJ;;AC1FD,MAAM,MAAM,GAAkB,CAAC,QAAQ,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM;AAC3C,QAAC,UAAU,IAAI,WAAW,IAAK,WAAmB,CAAC,QAAQ,CAAC;AAC5D,OAAA,IAAI,CAAC;SAEtB,YAAY,GAAA;IACxB,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAAE;AACxD,QAAA,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AACjC,QAAA,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;KAC3B;AACD,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACzB;;MCVsB,QAAQ,CAAA;AACnB,IAAA,OAAO,UAAU,CAAC,GAAG,IAAe,EAAA;AACvC,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AACtB,gBAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,oBAAA,OAAO,EAAE,CAAC;iBACb;gBACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7C,aAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAChB;AACD,QAAA,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;KACjC;AAEM,IAAA,OAAO,WAAW,GAAA;QACrB,MAAM,EAAE,GAAG,MAAK;AACZ,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,IAAI,OAAO,CAAC;iBAC5C,QAAQ,CAAC,EAAE,CAAC;iBACZ,SAAS,CAAC,CAAC,CAAC,CAAC;AACtB,SAAC,CAAC;QAEF,OAAO,CAAA,EAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAI,CAAA,EAAA,EAAE,EAAE,CAAA,CAAA,EAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAI,CAAA,EAAA,EAAE,EAAE,CAAA,EAAG,EAAE,EAAE,CAAG,EAAA,EAAE,EAAE,CAAA,CAAE,CAAC;KACzE;AACJ;;ACvBD,MAAM,YAAY,GAAG,mEAAmE,CAAC;AAEzF,MAAM,aAAa,GAAG,MAAM,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,UAAU,CAAC;AACtF,MAAM,aAAa,GAAG,MAAM,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,UAAU,CAAC;AAEtF;AACM,SAAU,YAAY,CAAC,GAAW,EAAA;IACpC,IAAI,MAAM,GAAG,GAAG;AACX,SAAA,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAClB,SAAA,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;;AAGxB,IAAA,QAAQ,MAAM,CAAC,MAAM,GAAG,CAAC;AACrB,QAAA,KAAK,CAAC;YACF,MAAM;AACV,QAAA,KAAK,CAAC;YACF,MAAM,IAAI,IAAI,CAAC;YACf,MAAM;AACV,QAAA,KAAK,CAAC;YACF,MAAM,IAAI,GAAG,CAAC;YACd,MAAM;AAEV,QAAA;AACI,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KACjD;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,aAAa,EAAE;AACf,QAAA,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;KACtB;SAAM;QACH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEnC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;SAC1F;;AAGD,QAAA;;AAEI,QAAA,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,MAAuB,EAAE,GAAG,GAAG,CAAC;;AAEpD,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;;AAE7B,QAAA,CAAC,MAAM,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM;;;AAGnD,YAAA,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAC1E;;AAEE,YAAA,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACzC;;KAEJ;;AAGD,IAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAS,KAAI;QACrE,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,KAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACjB,CAAC;AAEK,SAAU,YAAY,CAAC,MAA4B,EAAA;AACrD,IAAA,IAAI,WAAwB,CAAC;AAC7B,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,IAAI,aAAa,EAAE;AACf,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;AACD,QAAA,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;KACvC;SAAM;QACH,WAAW,GAAG,MAAM,CAAC;KACxB;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;AAEhB,IAAA,MAAM,KAAK,GAAe,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AACtD,IAAA,MAAM,UAAU,GAAW,KAAK,CAAC,UAAU,CAAC;AAC5C,IAAA,MAAM,aAAa,GAAW,UAAU,GAAG,CAAC,CAAC;AAC7C,IAAA,MAAM,UAAU,GAAW,UAAU,GAAG,aAAa,CAAC;AAEtD,IAAA,IAAI,CAAS,CAAC;AACd,IAAA,IAAI,CAAS,CAAC;AACd,IAAA,IAAI,CAAS,CAAC;AACd,IAAA,IAAI,CAAS,CAAC;AACd,IAAA,IAAI,KAAa,CAAC;;;AAIlB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;QAEvC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;;QAG9D,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,KAAK,EAAE,CAAC;QAC7B,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,KAAK,EAAE,CAAC;QAC3B,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;AACxB,QAAA,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;;QAGf,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;KACnF;;AAGD,IAAA,IAAI,aAAa,KAAK,CAAC,EAAE;AACrB,QAAA,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAE1B,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC;;QAGvB,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AAErB,QAAA,MAAM,IAAI,CAAA,EAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;KACtD;AAAM,SAAA,IAAI,aAAa,KAAK,CAAC,EAAE;AAC5B,QAAA,KAAK,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAEzD,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC;QAC1B,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;;QAGxB,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;AAEtB,QAAA,MAAM,IAAI,CAAG,EAAA,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;KACvE;;AAGD,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAEK,SAAU,aAAa,CAAC,MAAc,EAAA;AACxC,IAAA,MAAM,OAAO,GAAG,aAAa,IAAI,WAAW,GAAG,IAAI,WAAW,EAAE,GAAG;AAC/D,QAAA,MAAM,CAAC,GAAW,EAAA;AACd,YAAA,OAAO,UAAU,CAAC,IAAI,CAClB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAChC,CAAC,IAAY,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7C,CAAC;SACL;KACJ,CAAC;AACF,IAAA,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC;;MC1IsB,MAAM,CAAA;AAU3B;;ACVK,SAAU,SAAS,CAAI,GAAM,EAAA;AAC/B,IAAA,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,GAAY,EAAA;IAC1B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC;AAClD,CAAC;AAOD;AACgB,SAAA,SAAS,CAAC,CAAU,EAAE,CAAU,EACtB,uBAAA,GAA8C,EAAE,EAChD,gBAAgB,GAAG,KAAK,EAAA;IAC9C,IAAI,WAAW,GAAa,EAAE,CAAC;AAC/B,IAAA,IAAI,OAAO,uBAAuB,KAAK,SAAS,EAAE;QAC9C,gBAAgB,GAAG,uBAAuB,CAAC;KAC9C;AAAM,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE;QAC/C,WAAW,GAAG,uBAAuB,CAAC;KACzC;AAED,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,CAAU,EAAE,CAAU,EACtB,UAAkB,EAClB,WAAqB,EACrB,gBAAyB,EAAA;AAC5C,IAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACT,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE;QAC1D,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;KACxB;IAED,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC5B,MAAM,IAAI,GAAG,CAA+B,CAAC;QAC7C,MAAM,IAAI,GAAG,CAA+B,CAAC;AAC7C,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpG,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpG,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAC/B,YAAA,OAAO,KAAK,CAAC;SAEhB;AACD,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAI;AACvB,YAAA,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE;AAChB,gBAAA,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAG,EAAA,UAAU,IAAI,GAAG,CAAA,CAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACtG,SAAC,CAAC,CAAC;KACN;AACD,IAAA,OAAO,KAAK,CAAC;AACjB;;AC1DA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"dbg-riskit-common.mjs","sources":["../../../../pkg/dbg-riskit/common/src/lib/global.ts","../../../../pkg/dbg-riskit/common/src/lib/auth.types.ts","../../../../pkg/dbg-riskit/common/src/lib/common.types.ts","../../../../pkg/dbg-riskit/common/src/lib/error.types.ts","../../../../pkg/dbg-riskit/common/src/lib/file.types.ts","../../../../pkg/dbg-riskit/common/src/lib/string.utils.ts","../../../../pkg/dbg-riskit/common/src/lib/date.utils.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/polyfill.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/request.wrappers.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/indexed.db.store.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/subject.subscription.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/indexed.db.subject.ts","../../../../pkg/dbg-riskit/common/src/lib/indexeddb/indexed.db.array.subject.ts","../../../../pkg/dbg-riskit/common/src/lib/replay.subject.ext.ts","../../../../pkg/dbg-riskit/common/src/lib/rxjs.utils.ts","../../../../pkg/dbg-riskit/common/src/lib/storage.ts","../../../../pkg/dbg-riskit/common/src/lib/random.ts","../../../../pkg/dbg-riskit/common/src/lib/uid.utils.ts","../../../../pkg/dbg-riskit/common/src/lib/base64.ts","../../../../pkg/dbg-riskit/common/src/lib/logger.ts","../../../../pkg/dbg-riskit/common/src/lib/common.functions.ts","../../../../pkg/dbg-riskit/common/src/dbg-riskit-common.ts"],"sourcesContent":["let globalContainer: typeof window | typeof global | {} = {};\nif (typeof global !== 'undefined') {\n globalContainer = global;\n}\nif (typeof window !== 'undefined') {\n globalContainer = window;\n}\n\nexport const globalScope = globalContainer;\n","import {Observable} from 'rxjs';\nimport {UserInfo} from './user.info';\n\nexport enum AuthTokenType {\n NONE,\n API,\n AUTH\n}\n\nexport interface AuthProvider {\n readonly loggedIn: Observable<boolean>;\n\n readonly userProfile: Observable<UserInfo | undefined>;\n\n readonly loggedInStream: Observable<boolean>;\n}\n","import {Observable, OperatorFunction} from 'rxjs';\nimport {filter, map} from 'rxjs/operators';\n\nexport type NonNullPrimitives =\n string\n | boolean\n | number\n | bigint;\n\nexport type Primitives =\n NonNullPrimitives\n | null\n | undefined;\n\nexport type JSONObject<R extends { [key: string]: JSONObject } = {}> =\n R\n | R[]\n | Primitives\n | Primitives[];\n\nexport type ValueGetter<T, R = unknown> = (row: T) => R;\n\nexport type Maybe<R> = R | null | undefined;\n\nexport enum ObservableEventType {\n /**\n * A progress event was received.\n */\n Progress = 0,\n /**\n * A result event was received.\n */\n Result = 1\n}\n\nexport type IsEventObject<T> = T extends ObservableEvent<unknown> ? true : false;\n\nexport function isEventObject<T>(unknown: T): IsEventObject<T> {\n return (typeof unknown === 'object'\n && unknown != null\n && 'type' in unknown\n ) as IsEventObject<T>;\n}\n\nexport type ObservableEvent<T> = ProgressEvent | ResultEvent<T>;\n\nexport interface ProgressEvent {\n current: number;\n total?: number;\n type: ObservableEventType.Progress;\n}\n\nexport interface ResultEvent<T> {\n result: T;\n type: ObservableEventType.Result;\n}\n\nexport type ObservableWithProgress<T> = Observable<ObservableEvent<T>>;\n\nexport function extractResult<T>(): OperatorFunction<ObservableEvent<T>, T> {\n return (observable) => observable.pipe(\n filter((event) => event.type === ObservableEventType.Result),\n map((event) => {\n const resultEvent = event as ResultEvent<T>;\n return resultEvent.result;\n })\n );\n}\n","export class ErrorType {\n\n public static NETWORK = new ErrorType();\n public static REQUEST = new ErrorType();\n public static AUTH = new ErrorType();\n public static ERROR = new ErrorType();\n\n public isError() {\n return this === ErrorType.ERROR;\n }\n\n public isNetworkError() {\n return this === ErrorType.NETWORK;\n }\n\n public isRequestError() {\n return this === ErrorType.REQUEST;\n }\n\n public isAuthError() {\n return this === ErrorType.AUTH;\n }\n}\n\nexport interface ErrorMessage {\n status: number;\n message: string;\n errorType: ErrorType;\n trace_id?: string;\n}\n","export const CONTENT_TYPE = {\n APPLICATION_FORM : 'application/x-www-form-urlencoded',\n APPLICATION_FORM_DATA: 'multipart/form-data',\n APPLICATION_JSON : 'application/json',\n TEXT_CSV : 'text/csv;charset=utf-8;',\n TEXT_JAVASCRIPT : 'text/javascript',\n TEXT_CSS : 'text/css',\n TEXT_PLAIN : 'text/plain'\n};\n\nexport interface FileWithContent {\n content: Blob;\n filename?: string;\n}\n","export function toString(value: unknown): string {\n if (value == null) {\n return '';\n }\n\n switch (typeof value) {\n case 'string':\n return value;\n case 'boolean':\n return value ? 'true' : 'false';\n case 'number':\n return value.toString(10);\n case 'object':\n return value!.toString();\n case 'bigint':\n return value.toString();\n case 'function':\n return value.toString();\n default:\n return String(value);\n }\n}\n","import {toString} from './string.utils';\n\nexport class DateUtils {\n\n /**\n * Converts UTC timestamp to Date object.\n *\n * @param utcTimestamp Value in milliseconds since midnight, January 1, 1970 UTC.\n * @return Date object.\n */\n public static utcTimestampToDate(utcTimestamp: number): Date {\n const date = new Date(0);\n date.setUTCMilliseconds(utcTimestamp);\n return date;\n }\n\n /**\n * Converts Date object to UTC timestamp.\n *\n * @param date Date object.\n * @return Value in milliseconds since midnight, January 1, 1970 UTC.\n */\n public static toUTCTimestamp(date: Date): number {\n return date.valueOf();\n }\n\n /**\n * Converts date represented as number in form yyyyMMdd to Date object.\n *\n * @param businessDate Date represented as number in form yyyyMMdd.\n * @return Date object.\n */\n public static parseBusinessDay(businessDate: number): Date {\n const bdate = toString(businessDate);\n const year = parseInt(bdate.substring(0, 4), 10);\n const month = parseInt(bdate.substring(4, 6), 10);\n const day = parseInt(bdate.substring(6, 8), 10);\n return new Date(year, month - 1, day);\n }\n\n /**\n * Converts Date object to date represented as number in form yyyyMMdd.\n *\n * @param date Date object.\n * @return Date represented as number in form yyyyMMdd.\n */\n public static toBusinessDay(date: Date): number {\n return date.getFullYear() * 10000 + (date.getMonth() + 1) * 100 + date.getDate();\n }\n}\n","import {globalScope} from '../global';\n\nexport const indexedDB: IDBFactory = ('indexedDB' in globalScope && globalScope.indexedDB)\n || ('mozIndexedDB' in globalScope && (globalScope as any).mozIndexedDB)\n || ('webkitIndexedDB' in globalScope && (globalScope as any).webkitIndexedDB)\n || ('msIndexedDB' in globalScope && (globalScope as any).msIndexedDB);\n","import {Observable, Subscriber, Subscription, TeardownLogic} from 'rxjs';\n\nexport function requestToObservable<T>(request: IDBRequest, result: (ev: Event) => T,\n tearDown?: TeardownLogic): Observable<T> {\n return new Observable(\n (subscriber: Subscriber<T>) => {\n request.onsuccess = (ev: Event) => {\n subscriber.next(result(ev));\n subscriber.complete();\n };\n\n request.onerror = () => {\n subscriber.error('IndexedDB request failed.');\n };\n return () => {\n subscriber.complete();\n if (tearDown) {\n if (typeof (tearDown as Subscription).unsubscribe === 'function') {\n (tearDown as Subscription).unsubscribe();\n } else if (typeof tearDown === 'function') {\n tearDown();\n }\n }\n };\n });\n}\n\nexport function cursorRequestToStream<T>(request: IDBRequest, tx: IDBTransaction,\n result: (cursor: IDBCursorWithValue) => T,\n tearDown?: TeardownLogic): Observable<T> {\n return new Observable(\n (subscriber: Subscriber<T>) => {\n let running = true;\n request.onsuccess = (ev: Event) => {\n const cursor: IDBCursorWithValue = (ev.target as IDBRequest).result;\n\n // If the cursor is pointing at something, ask for the data\n if (cursor == null) {\n subscriber.complete();\n } else {\n if (running) {\n subscriber.next(result(cursor));\n\n // Move on to the next object in store\n cursor.continue();\n } else {\n subscriber.complete();\n tx.abort();\n }\n }\n };\n\n request.onerror = () => {\n subscriber.error('Failed to load data from IndexedDB.');\n };\n\n tx.oncomplete = () => {\n subscriber.complete();\n };\n\n return () => {\n running = false;\n if (tearDown) {\n if (typeof (tearDown as Subscription).unsubscribe === 'function') {\n (tearDown as Subscription).unsubscribe();\n } else if (typeof tearDown === 'function') {\n tearDown();\n }\n }\n };\n });\n}\n","import {defer, Observable, of, Subscriber, zip} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\nimport {toString} from '../string.utils';\nimport {indexedDB} from './polyfill';\nimport {cursorRequestToStream, requestToObservable} from './request.wrappers';\n\nexport class IndexedDbStore<T> {\n private _bakValue: T[] = [];\n\n public constructor(private readonly dbName: string,\n private readonly key: keyof T | null,\n private readonly version?: number) {\n }\n\n private get indexedDB(): Observable<IDBDatabase> {\n const request = indexedDB.open(this.dbName, this.version || 1);\n let db: IDBDatabase;\n\n let close = false;\n\n request.onupgradeneeded = (ev: IDBVersionChangeEvent) => {\n db = (ev.target as IDBOpenDBRequest).result;\n let params: IDBObjectStoreParameters = {autoIncrement: true};\n if (this.key != null) {\n params = {keyPath: toString(this.key)};\n }\n db.createObjectStore(this.dbName, params);\n\n if (close) {\n db.close();\n }\n };\n\n return requestToObservable(request,\n (ev: Event) => {\n db = (ev.target as IDBOpenDBRequest).result;\n if (close) {\n db.close();\n }\n return db;\n },\n () => {\n close = true;\n if (db) {\n db.close();\n }\n });\n }\n\n public add(value: T): Observable<T | null> {\n return this.bulkAdd([value]).pipe(\n map((savedValue: T[]) => savedValue ? savedValue[0] : null)\n );\n }\n\n public bulkAdd(value: T[]): Observable<T[]> {\n if (!indexedDB) {\n this._bakValue = this._bakValue.concat(value);\n return of(this._bakValue);\n }\n return this.readWriteStore.pipe(\n switchMap((store: IDBObjectStore) => {\n return this._saveBulk(store, value);\n })\n );\n }\n\n public replace(value: T): Observable<T | null> {\n return this.bulkReplace([value]).pipe(\n map((savedValue: T[]) => savedValue ? savedValue[0] : null)\n );\n }\n\n public bulkReplace(value: T[]): Observable<T[]> {\n if (!indexedDB) {\n this._bakValue = value;\n return of(this._bakValue);\n }\n return this._clear().pipe(\n switchMap((store: IDBObjectStore) => {\n return this._saveBulk(store, value);\n })\n );\n }\n\n public clear(): Observable<void> {\n if (!indexedDB) {\n this._bakValue = [];\n return of(void 0);\n }\n return this._clear().pipe(map(() => void 0));\n }\n\n private get readWriteStore(): Observable<IDBObjectStore> {\n return this.indexedDB.pipe(\n map((db: IDBDatabase) => {\n const tx = db.transaction(this.dbName, 'readwrite');\n return tx.objectStore(this.dbName);\n })\n );\n }\n\n private _clear(): Observable<IDBObjectStore> {\n return this.readWriteStore.pipe(\n switchMap((store: IDBObjectStore) => {\n const request = store.clear();\n return requestToObservable(request, () => store);\n })\n );\n }\n\n private _saveBulk(store: IDBObjectStore, items: T[]): Observable<T[]> {\n return defer(\n () => {\n const requests: Array<Observable<null>> = [of(null)];\n if (items != null) {\n items.forEach((item: T) => {\n requests.push(requestToObservable(store.add(item), () => null));\n });\n }\n\n return zip(...requests);\n }\n ).pipe(\n map(() => {\n return items;\n })\n );\n }\n\n public get all(): Observable<T[]> {\n if (!indexedDB) {\n return of(this._bakValue);\n }\n\n return this.indexedDB.pipe(\n switchMap((db: IDBDatabase) => new Observable(\n (subscriber: Subscriber<T[]>) => {\n const tx = db.transaction(this.dbName, 'readonly');\n const store = tx.objectStore(this.dbName);\n const req = store.openCursor();\n const items: T[] = [];\n\n return cursorRequestToStream(req, tx,\n (cursor: IDBCursorWithValue) => {\n return cursor.value;\n })\n .subscribe(\n (item: T) => items.push(item),\n (err) => {\n subscriber.error(err);\n },\n () => {\n subscriber.next(items);\n subscriber.complete();\n });\n })\n )\n );\n }\n}\n","import {Observer, Subject, Subscription} from 'rxjs';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n */\nexport class SubjectSubscription<T> extends Subscription {\n public closed = false;\n\n public constructor(public subject: Subject<T> | null, public subscriber: Observer<T>) {\n super();\n }\n\n public unsubscribe() {\n if (this.closed || this.subject == null) {\n return;\n }\n\n this.closed = true;\n\n const subject = this.subject;\n const observers = subject.observers;\n\n this.subject = null;\n\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n\n const subscriberIndex = observers.indexOf(this.subscriber);\n\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import {ObjectUnsubscribedError, Observable, Subject, Subscriber, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {IndexedDbStore} from './indexed.db.store';\nimport {SubjectSubscription} from './subject.subscription';\n\nexport class IndexedDBReplaySubject<T> extends Subject<T> {\n protected storage: IndexedDbStore<T>;\n\n public constructor(dbName: string, key: keyof T | null, version?: number) {\n super();\n this.storage = new IndexedDbStore<T>(dbName, key, version);\n }\n\n public get hasData(): Observable<boolean> {\n return this.lastValue.pipe(map((val: T | null) => {\n return val != null;\n }));\n }\n\n public get lastValue(): Observable<T | null> {\n return this.storage.all.pipe(map((value: T[]) => value ? value[0] : null));\n }\n\n public next(value: T): void {\n this.storage.replace(value).subscribe(\n (storedValue: T | null) => {\n if (storedValue != null) {\n this._next(storedValue);\n }\n },\n (err) => {\n super.error(err);\n });\n }\n\n protected _next(value: T) {\n super.next(value);\n }\n\n public _subscribe(subscriber: Subscriber<T>): Subscription {\n let subscription: Subscription;\n\n switch (true) {\n case this.closed:\n throw new ObjectUnsubscribedError();\n case this.hasError:\n case this.isStopped:\n subscription = Subscription.EMPTY;\n break;\n default:\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n\n const result = new Subscription();\n result.add(subscription);\n result.add(this.lastValue.subscribe(\n (value: T | null) => {\n if (value != null) {\n subscriber.next(value);\n }\n\n if (this.hasError) {\n subscriber.error(this.thrownError);\n } else if (this.isStopped) {\n subscriber.complete();\n }\n },\n (err) => {\n subscriber.error(err);\n }));\n\n return result;\n }\n}\n","import {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {IndexedDBReplaySubject} from './indexed.db.subject';\n\nexport class IndexedDBArrayReplaySubject<T> extends IndexedDBReplaySubject<T[]> {\n\n public constructor(private readonly partitionSize: number, dbName: string, version?: number) {\n super(dbName, null, version);\n }\n\n public get lastValue(): Observable<T[] | null> {\n return this.storage.all.pipe(\n map((items: T[][]) => {\n if (!items || items.length === 0) {\n return null;\n }\n\n return items.reduce(\n (result: T[], subItems: T[]) => {\n return result.concat(subItems);\n }, [] as T[]);\n })\n );\n }\n\n public next(value: T[]): void {\n const rows: T[][] = [];\n for (let i = 0; i <= value.length / this.partitionSize; i++) {\n rows[i] = value.slice(i * this.partitionSize, (i + 1) * this.partitionSize);\n }\n this.storage.bulkReplace(rows).subscribe(\n () => {\n this._next(value);\n },\n (err) => {\n super.error(err);\n });\n }\n}\n","import {ReplaySubject, SchedulerLike} from 'rxjs';\n\nexport class ReplaySubjectExt<T> extends ReplaySubject<T> {\n\n private _hasData = false;\n private _lastValue?: T;\n private readonly oldNext: (value: T) => void;\n\n public constructor(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike) {\n super(bufferSize, windowTime, scheduler);\n\n this.oldNext = this.next;\n this.next = this.nextAndStoreValue;\n }\n\n public nextAndStoreValue(value: T): void {\n this._lastValue = value;\n this._hasData = true;\n this.oldNext(value);\n }\n\n public get hasData(): boolean {\n return this._hasData;\n }\n\n public get lastValue(): T | undefined {\n return this._lastValue;\n }\n}\n","import {MonoTypeOperatorFunction, throwError, timer} from 'rxjs';\nimport {finalize, mergeMap, retryWhen} from 'rxjs/operators';\nimport {Logger} from './logger';\n\nexport function retry<T>(logger: Logger,\n maxRetryAttempts = 5,\n scalingDuration = 1000): MonoTypeOperatorFunction<T> {\n return retryWhen(((errors) => errors.pipe(\n mergeMap((error, i) => {\n const retryAttempt = i + 1;\n // if maximum number of retries have been met\n // or response is a status code we don't wish to retry, throw error\n if (retryAttempt >= maxRetryAttempts) {\n return throwError(error);\n }\n logger.info(`Attempt ${retryAttempt}: retrying in ${retryAttempt * scalingDuration}ms`);\n // retry after 1s, 2s, etc...\n return timer(retryAttempt * scalingDuration);\n }),\n finalize(() => logger.info('We are done!')))));\n}\n","export const KEY_PREFIX = 'auto-ws';\n\nexport function LocalStorage(key?: string, keyPrefix: string = KEY_PREFIX) {\n return _WebStorage(localStorage, key, keyPrefix);\n}\n\nexport function SessionStorage(key?: string, keyPrefix: string = KEY_PREFIX) {\n return _WebStorage(sessionStorage, key, keyPrefix);\n}\n\nconst _WebStorage = (webStorage: Storage, key: string | undefined, keyPrefix: string) => {\n return (target: object, propertyName: string): void => {\n const storageKey = key || propertyName;\n\n const objectKey = Symbol(`__${WebStorageUtility.generateStorageKey(storageKey, keyPrefix)}`);\n\n Object.defineProperty(target, propertyName, {\n configurable: true,\n get() {\n if (this[objectKey]) {\n return this[objectKey];\n }\n this[objectKey] = WebStorageUtility.get(webStorage, storageKey, keyPrefix);\n return this[objectKey];\n },\n set(newValue: unknown) {\n this[objectKey] = newValue;\n if (newValue == null) {\n WebStorageUtility.remove(webStorage, storageKey, keyPrefix);\n } else {\n WebStorageUtility.set(webStorage, storageKey, keyPrefix, newValue);\n }\n }\n });\n };\n};\n\nclass WebStorageUtility {\n public static generateStorageKey(key: string, keyPrefix: string): string {\n return `${keyPrefix}_${key}`;\n }\n\n public static get(storage: Storage, key: string, keyPrefix: string): unknown {\n const storageKey = WebStorageUtility.generateStorageKey(key, keyPrefix);\n\n try {\n const value = storage.getItem(storageKey);\n return WebStorageUtility.getGettable(value);\n } catch (e) {\n this.clear(storage, storageKey);\n return null;\n }\n }\n\n public static set(storage: Storage, key: string, keyPrefix: string, value: unknown): void {\n const storageKey = WebStorageUtility.generateStorageKey(key, keyPrefix);\n\n try {\n storage.setItem(storageKey, WebStorageUtility.getSettable(value));\n } catch (e) {\n this.clear(storage, storageKey);\n }\n }\n\n private static clear(storage: Storage, storageKey: string) {\n try {\n storage.removeItem(storageKey);\n } catch (e) {\n // Just catch and ignore\n }\n }\n\n public static remove(storage: Storage, key: string, keyPrefix: string): void {\n const storageKey = WebStorageUtility.generateStorageKey(key, keyPrefix);\n\n this.clear(storage, storageKey);\n }\n\n private static getSettable(value: unknown): string {\n return typeof value === 'string' ? value : JSON.stringify(value);\n }\n\n private static getGettable(value: string | null): unknown {\n if (value == null) {\n return null;\n }\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n }\n}\n","import {globalScope} from './global';\n\nconst crypto: Crypto | null = ('crypto' in globalScope && globalScope.crypto)\n || ('msCrypto' in globalScope && (globalScope as any).msCrypto)\n || null;\n\nexport function secureRandom() {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n const array = new Uint16Array(1);\n crypto.getRandomValues(array);\n return array[0] / 65535; // Max Uint16 is 65535\n }\n return Math.random();\n}\n","import {secureRandom} from './random';\nimport {toString} from './string.utils';\n\nexport abstract class UIDUtils {\n public static computeUID(...data: unknown[]): string {\n if (data && data.length) {\n return data.map((value) => {\n if (value == null) {\n return '';\n }\n return toString(value).replace('\\.', '');\n }).join('-');\n }\n return UIDUtils.generateUID();\n }\n\n public static generateUID(): string {\n const s4 = () => {\n return Math.floor((1 + secureRandom()) * 0x10000)\n .toString(16)\n .substring(1);\n };\n\n return `${s4() + s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;\n }\n}\n","import {globalScope} from './global';\n\nconst BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nconst atobAvailable = 'atob' in globalScope && typeof globalScope.atob === 'function';\nconst btoaAvailable = 'btoa' in globalScope && typeof globalScope.btoa === 'function';\n\n// credits for decoder goes to https://github.com/atk\nexport function base64decode(str: string): string {\n let source = str\n .replace(/-/g, '+')\n .replace(/_/g, '/');\n\n // Add padding if missing\n switch (source.length % 4) {\n case 0:\n break;\n case 2:\n source += '==';\n break;\n case 3:\n source += '=';\n break;\n\n default:\n throw new Error('Illegal base64 string!');\n }\n\n let output = '';\n if (atobAvailable) {\n output = atob(str);\n } else {\n source = source.replace(/=+$/, '');\n\n if (source.length % 4 === 1) {\n throw new Error('\\'atob\\' failed: The string to be decoded is not correctly encoded.');\n }\n\n /* eslint-disable no-bitwise, no-cond-assign */\n for (\n // initialize result and counters\n let bc = 0, bs = 0, buffer: string | number, idx = 0;\n // get next character\n buffer = source.charAt(idx++);\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = BASE64_CHARS.indexOf(buffer);\n }\n /* eslint-enable */\n }\n\n // https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\n return decodeURIComponent(Array.prototype.map.call(output, (c: string) => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n}\n\nexport function base64encode(buffer: ArrayBuffer | string): string {\n let arrayBuffer: ArrayBuffer;\n if (typeof buffer === 'string') {\n if (btoaAvailable) {\n return btoa(buffer);\n }\n arrayBuffer = string2buffer(buffer);\n } else {\n arrayBuffer = buffer;\n }\n\n let base64 = '';\n\n const bytes: Uint8Array = new Uint8Array(arrayBuffer);\n const byteLength: number = bytes.byteLength;\n const byteRemainder: number = byteLength % 3;\n const mainLength: number = byteLength - byteRemainder;\n\n let a: number;\n let b: number;\n let c: number;\n let d: number;\n let chunk: number;\n\n /* eslint-disable no-bitwise */\n // Main loop deals with bytes in chunks of 3\n for (let i = 0; i < mainLength; i = i + 3) {\n // Combine the three bytes into a single integer\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n\n // Use bitmasks to extract 6-bit segments from the triplet\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n d = chunk & 63; // 63 = 2^6 - 1\n\n // Convert the raw binary segments to the appropriate ASCII encoding\n base64 += BASE64_CHARS[a] + BASE64_CHARS[b] + BASE64_CHARS[c] + BASE64_CHARS[d];\n }\n\n // Deal with the remaining bytes and padding\n if (byteRemainder === 1) {\n chunk = bytes[mainLength];\n\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n\n // Set the 4 least significant bits to zero\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\n\n base64 += `${BASE64_CHARS[a] + BASE64_CHARS[b]}==`;\n } else if (byteRemainder === 2) {\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];\n\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n\n // Set the 2 least significant bits to zero\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\n\n base64 += `${BASE64_CHARS[a] + BASE64_CHARS[b] + BASE64_CHARS[c]}=`;\n }\n /* eslint-enable */\n\n return base64;\n}\n\nexport function string2buffer(source: string): ArrayBuffer {\n const encoder = 'TextEncoder' in globalScope ? new TextEncoder() : {\n encode(str: string) {\n return Uint8Array.from(\n Array.prototype.slice.apply(str),\n (char: string) => char.codePointAt(0) || 0\n );\n }\n };\n return typedArrayToBuffer(encoder.encode(source));\n}\n\nfunction typedArrayToBuffer(array: Uint8Array): ArrayBuffer {\n return array.buffer.slice(array.byteOffset, array.byteLength + array.byteOffset) as ArrayBuffer;\n}\n","export abstract class Logger {\n public abstract debug(message: unknown, ...optionalParams: unknown[]): void;\n\n public abstract error(message: unknown, ...optionalParams: unknown[]): void;\n\n public abstract info(message: unknown, ...optionalParams: unknown[]): void;\n\n public abstract trace(message: unknown, ...optionalParams: unknown[]): void;\n\n public abstract warn(message: unknown, ...optionalParams: unknown[]): void;\n}\n","export function deepClone<T>(obj: T): T {\n return obj && JSON.parse(JSON.stringify(obj));\n}\n\nfunction isObject(obj: unknown): boolean {\n return typeof obj === 'object' && obj != null;\n}\n\n/* eslint-disable @typescript-eslint/unified-signatures */\nexport function deepEqual(x: unknown, y: unknown): boolean;\nexport function deepEqual(x: unknown, y: unknown, ignorePaths: string[]): boolean;\nexport function deepEqual(x: unknown, y: unknown, ignoreArrayOrder: boolean): boolean;\nexport function deepEqual(x: unknown, y: unknown, ignorePaths: string[], ignoreArrayOrder: boolean): boolean;\n/* eslint-enable */\nexport function deepEqual(x: unknown, y: unknown,\n ignoreArrayOrderOrPaths: string[] | boolean = [],\n ignoreArrayOrder = false): boolean {\n let ignorePaths: string[] = [];\n if (typeof ignoreArrayOrderOrPaths === 'boolean') {\n ignoreArrayOrder = ignoreArrayOrderOrPaths;\n } else if (Array.isArray(ignoreArrayOrderOrPaths)) {\n ignorePaths = ignoreArrayOrderOrPaths;\n }\n\n return deepEqualImpl(x, y, '', ignorePaths, ignoreArrayOrder);\n}\n\nfunction deepEqualImpl(x: unknown, y: unknown,\n parentPath: string,\n ignorePaths: string[],\n ignoreArrayOrder: boolean): boolean {\n if (x === y) {\n return true;\n }\n\n if (Array.isArray(x) && Array.isArray(y) && ignoreArrayOrder) {\n x = x.slice().sort();\n y = y.slice().sort();\n }\n\n if (isObject(x) && isObject(y)) {\n const xObj = x as { [key: string]: unknown };\n const yObj = y as { [key: string]: unknown };\n const xKeys = Object.keys(xObj).filter((key) => ignorePaths.indexOf(`${parentPath}.${key}`) === -1);\n const yKeys = Object.keys(yObj).filter((key) => ignorePaths.indexOf(`${parentPath}.${key}`) === -1);\n if (xKeys.length !== yKeys.length) {\n return false;\n\n }\n return xKeys.every((key) => {\n if (!(key in yObj)) {\n return false;\n }\n\n return deepEqualImpl(xObj[key], yObj[key], `${parentPath}.${key}`, ignorePaths, ignoreArrayOrder);\n });\n }\n return false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,308 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { Observable, OperatorFunction, Subject, Subscriber, Subscription, ReplaySubject, SchedulerLike, MonoTypeOperatorFunction } from 'rxjs';
|
|
2
|
+
|
|
3
|
+
declare const globalScope: {} | typeof globalThis | (Window & typeof globalThis);
|
|
4
|
+
|
|
5
|
+
interface UserInfo {
|
|
6
|
+
/**
|
|
7
|
+
* End-User's full name in displayable form including all name parts, possibly including titles and suffixes,
|
|
8
|
+
* ordered according to the End-User's locale and preferences.
|
|
9
|
+
*/
|
|
10
|
+
name?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Given name(s) or first name(s) of the End-User. Note that in some cultures, people can have multiple given names;
|
|
13
|
+
* all can be present, with the names being separated by space characters.
|
|
14
|
+
*/
|
|
15
|
+
given_name?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Surname(s) or last name(s) of the End-User. Note that in some cultures, people can have multiple family names or
|
|
18
|
+
* no family name; all can be present, with the names being separated by space characters.
|
|
19
|
+
*/
|
|
20
|
+
family_name?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Middle name(s) of the End-User. Note that in some cultures, people can have multiple middle names; all can be
|
|
23
|
+
* present, with the names being separated by space characters. Also note that in some cultures, middle names are
|
|
24
|
+
* not used.
|
|
25
|
+
*/
|
|
26
|
+
middle_name?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Casual name of the End-User that may or may not be the same as the given_name. For instance, a nickname value of
|
|
29
|
+
* Mike might be returned alongside a given_name value of Michael.
|
|
30
|
+
*/
|
|
31
|
+
nickname?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Casual name of the End-User that may or may not be the same as the given_name. For instance, a nickname value of
|
|
34
|
+
* Mike might be returned alongside a given_name value of Michael.
|
|
35
|
+
*/
|
|
36
|
+
preferred_username?: string;
|
|
37
|
+
/**
|
|
38
|
+
* End-User's preferred e-mail address. Its value MUST conform to the RFC 5322 [RFC5322] addr-spec syntax. The RP
|
|
39
|
+
* MUST NOT rely upon this value being unique, as discussed in Section 5.7.
|
|
40
|
+
*/
|
|
41
|
+
email?: string;
|
|
42
|
+
/**
|
|
43
|
+
* True if the End-User's e-mail address has been verified; otherwise false. When this Claim Value is true, this
|
|
44
|
+
* means that the OP took affirmative steps to ensure that this e-mail address was controlled by the End-User at
|
|
45
|
+
* the time the verification was performed. The means by which an e-mail address is verified is context-specific,
|
|
46
|
+
* and dependent upon the trust framework or contractual agreements within which the parties are operating.
|
|
47
|
+
*/
|
|
48
|
+
email_verified?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* End-User's gender. Values defined by this specification are female and male. Other values MAY be used when
|
|
51
|
+
* neither of the defined values are applicable.
|
|
52
|
+
*/
|
|
53
|
+
gender?: string;
|
|
54
|
+
/**
|
|
55
|
+
* End-User's birthday, represented as an ISO 8601:2004 [ISO8601‑2004] YYYY-MM-DD format. The year MAY be 0000,
|
|
56
|
+
* indicating that it is omitted. To represent only the year, YYYY format is allowed. Note that depending on
|
|
57
|
+
* the underlying platform's date related function, providing just year can result in varying month and day, so
|
|
58
|
+
* the implementers need to take this factor into account to correctly process the dates.
|
|
59
|
+
*/
|
|
60
|
+
birthdate?: string;
|
|
61
|
+
/**
|
|
62
|
+
* String from zoneinfo [zoneinfo] time zone database representing the End-User's time zone. For example,
|
|
63
|
+
* Europe/Paris or America/Los_Angeles.
|
|
64
|
+
*/
|
|
65
|
+
zoneinfo?: string;
|
|
66
|
+
/**
|
|
67
|
+
* End-User's locale, represented as a BCP47 [RFC5646] language tag. This is typically an ISO 639-1 Alpha-2
|
|
68
|
+
* [ISO639‑1] language code in lowercase and an ISO 3166-1 Alpha-2 [ISO3166‑1] country code in uppercase,
|
|
69
|
+
* separated by a dash. For example, en-US or fr-CA. As a compatibility note, some implementations have used
|
|
70
|
+
* an underscore as the separator rather than a dash, for example, en_US; Relying Parties MAY choose to accept
|
|
71
|
+
* this locale syntax as well.
|
|
72
|
+
*/
|
|
73
|
+
locale?: string;
|
|
74
|
+
/**
|
|
75
|
+
* End-User's preferred telephone number. E.164 [E.164] is RECOMMENDED as the format of this Claim, for example,
|
|
76
|
+
* +1 (425) 555-1212 or +56 (2) 687 2400. If the phone number contains an extension, it is RECOMMENDED that the
|
|
77
|
+
* extension be represented using the RFC 3966 [RFC3966] extension syntax, for example, +1 (604) 555-1234;ext=5678.
|
|
78
|
+
*/
|
|
79
|
+
phone_number?: string;
|
|
80
|
+
/**
|
|
81
|
+
* True if the End-User's phone number has been verified; otherwise false. When this Claim Value is true,
|
|
82
|
+
* this means that the OP took affirmative steps to ensure that this phone number was controlled by the End-User
|
|
83
|
+
* at the time the verification was performed. The means by which a phone number is verified is context-specific,
|
|
84
|
+
* and dependent upon the trust framework or contractual agreements within which the parties are operating. When
|
|
85
|
+
* true, the phone_number Claim MUST be in E.164 format and any extensions MUST be represented in RFC 3966 format.
|
|
86
|
+
*/
|
|
87
|
+
phone_number_verified?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* End-User's preferred postal address. The value of the address member is a JSON [RFC4627] structure containing
|
|
90
|
+
* some or all of the members defined in Section 5.1.1.
|
|
91
|
+
*/
|
|
92
|
+
address?: {
|
|
93
|
+
/**
|
|
94
|
+
* Full mailing address, formatted for display or use on a mailing label. This field MAY contain multiple lines,
|
|
95
|
+
* separated by newlines. Newlines can be represented either as a carriage return/line feed pair ("\r\n") or as
|
|
96
|
+
* a single line feed character ("\n").
|
|
97
|
+
*/
|
|
98
|
+
formatted?: string;
|
|
99
|
+
/**
|
|
100
|
+
* Full street address component, which MAY include house number, street name, Post Office Box, and multi-line
|
|
101
|
+
* extended street address information. This field MAY contain multiple lines, separated by newlines. Newlines
|
|
102
|
+
* can be represented either as a carriage return/line feed pair ("\r\n") or as a single line feed character
|
|
103
|
+
* ("\n").
|
|
104
|
+
*/
|
|
105
|
+
street_address?: string;
|
|
106
|
+
/**
|
|
107
|
+
* City or locality component.
|
|
108
|
+
*/
|
|
109
|
+
locality?: string;
|
|
110
|
+
/**
|
|
111
|
+
* State, province, prefecture, or region component.
|
|
112
|
+
*/
|
|
113
|
+
region?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Zip code or postal code component.
|
|
116
|
+
*/
|
|
117
|
+
postal_code?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Country name component.
|
|
120
|
+
*/
|
|
121
|
+
country?: string;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
declare enum AuthTokenType {
|
|
126
|
+
NONE = 0,
|
|
127
|
+
API = 1,
|
|
128
|
+
AUTH = 2
|
|
129
|
+
}
|
|
130
|
+
interface AuthProvider {
|
|
131
|
+
readonly loggedIn: Observable<boolean>;
|
|
132
|
+
readonly userProfile: Observable<UserInfo | undefined>;
|
|
133
|
+
readonly loggedInStream: Observable<boolean>;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
type NonNullPrimitives = string | boolean | number | bigint;
|
|
137
|
+
type Primitives = NonNullPrimitives | null | undefined;
|
|
138
|
+
type JSONObject<R extends {
|
|
139
|
+
[key: string]: JSONObject;
|
|
140
|
+
} = {}> = R | R[] | Primitives | Primitives[];
|
|
141
|
+
type ValueGetter<T, R = unknown> = (row: T) => R;
|
|
142
|
+
type Maybe<R> = R | null | undefined;
|
|
143
|
+
declare enum ObservableEventType {
|
|
144
|
+
/**
|
|
145
|
+
* A progress event was received.
|
|
146
|
+
*/
|
|
147
|
+
Progress = 0,
|
|
148
|
+
/**
|
|
149
|
+
* A result event was received.
|
|
150
|
+
*/
|
|
151
|
+
Result = 1
|
|
152
|
+
}
|
|
153
|
+
type IsEventObject<T> = T extends ObservableEvent<unknown> ? true : false;
|
|
154
|
+
declare function isEventObject<T>(unknown: T): IsEventObject<T>;
|
|
155
|
+
type ObservableEvent<T> = ProgressEvent | ResultEvent<T>;
|
|
156
|
+
interface ProgressEvent {
|
|
157
|
+
current: number;
|
|
158
|
+
total?: number;
|
|
159
|
+
type: ObservableEventType.Progress;
|
|
160
|
+
}
|
|
161
|
+
interface ResultEvent<T> {
|
|
162
|
+
result: T;
|
|
163
|
+
type: ObservableEventType.Result;
|
|
164
|
+
}
|
|
165
|
+
type ObservableWithProgress<T> = Observable<ObservableEvent<T>>;
|
|
166
|
+
declare function extractResult<T>(): OperatorFunction<ObservableEvent<T>, T>;
|
|
167
|
+
|
|
168
|
+
declare class ErrorType {
|
|
169
|
+
static NETWORK: ErrorType;
|
|
170
|
+
static REQUEST: ErrorType;
|
|
171
|
+
static AUTH: ErrorType;
|
|
172
|
+
static ERROR: ErrorType;
|
|
173
|
+
isError(): boolean;
|
|
174
|
+
isNetworkError(): boolean;
|
|
175
|
+
isRequestError(): boolean;
|
|
176
|
+
isAuthError(): boolean;
|
|
177
|
+
}
|
|
178
|
+
interface ErrorMessage {
|
|
179
|
+
status: number;
|
|
180
|
+
message: string;
|
|
181
|
+
errorType: ErrorType;
|
|
182
|
+
trace_id?: string;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
declare const CONTENT_TYPE: {
|
|
186
|
+
APPLICATION_FORM: string;
|
|
187
|
+
APPLICATION_FORM_DATA: string;
|
|
188
|
+
APPLICATION_JSON: string;
|
|
189
|
+
TEXT_CSV: string;
|
|
190
|
+
TEXT_JAVASCRIPT: string;
|
|
191
|
+
TEXT_CSS: string;
|
|
192
|
+
TEXT_PLAIN: string;
|
|
193
|
+
};
|
|
194
|
+
interface FileWithContent {
|
|
195
|
+
content: Blob;
|
|
196
|
+
filename?: string;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
declare class DateUtils {
|
|
200
|
+
/**
|
|
201
|
+
* Converts UTC timestamp to Date object.
|
|
202
|
+
*
|
|
203
|
+
* @param utcTimestamp Value in milliseconds since midnight, January 1, 1970 UTC.
|
|
204
|
+
* @return Date object.
|
|
205
|
+
*/
|
|
206
|
+
static utcTimestampToDate(utcTimestamp: number): Date;
|
|
207
|
+
/**
|
|
208
|
+
* Converts Date object to UTC timestamp.
|
|
209
|
+
*
|
|
210
|
+
* @param date Date object.
|
|
211
|
+
* @return Value in milliseconds since midnight, January 1, 1970 UTC.
|
|
212
|
+
*/
|
|
213
|
+
static toUTCTimestamp(date: Date): number;
|
|
214
|
+
/**
|
|
215
|
+
* Converts date represented as number in form yyyyMMdd to Date object.
|
|
216
|
+
*
|
|
217
|
+
* @param businessDate Date represented as number in form yyyyMMdd.
|
|
218
|
+
* @return Date object.
|
|
219
|
+
*/
|
|
220
|
+
static parseBusinessDay(businessDate: number): Date;
|
|
221
|
+
/**
|
|
222
|
+
* Converts Date object to date represented as number in form yyyyMMdd.
|
|
223
|
+
*
|
|
224
|
+
* @param date Date object.
|
|
225
|
+
* @return Date represented as number in form yyyyMMdd.
|
|
226
|
+
*/
|
|
227
|
+
static toBusinessDay(date: Date): number;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
declare class IndexedDbStore<T> {
|
|
231
|
+
private readonly dbName;
|
|
232
|
+
private readonly key;
|
|
233
|
+
private readonly version?;
|
|
234
|
+
private _bakValue;
|
|
235
|
+
constructor(dbName: string, key: keyof T | null, version?: number | undefined);
|
|
236
|
+
private get indexedDB();
|
|
237
|
+
add(value: T): Observable<T | null>;
|
|
238
|
+
bulkAdd(value: T[]): Observable<T[]>;
|
|
239
|
+
replace(value: T): Observable<T | null>;
|
|
240
|
+
bulkReplace(value: T[]): Observable<T[]>;
|
|
241
|
+
clear(): Observable<void>;
|
|
242
|
+
private get readWriteStore();
|
|
243
|
+
private _clear;
|
|
244
|
+
private _saveBulk;
|
|
245
|
+
get all(): Observable<T[]>;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
declare class IndexedDBReplaySubject<T> extends Subject<T> {
|
|
249
|
+
protected storage: IndexedDbStore<T>;
|
|
250
|
+
constructor(dbName: string, key: keyof T | null, version?: number);
|
|
251
|
+
get hasData(): Observable<boolean>;
|
|
252
|
+
get lastValue(): Observable<T | null>;
|
|
253
|
+
next(value: T): void;
|
|
254
|
+
protected _next(value: T): void;
|
|
255
|
+
_subscribe(subscriber: Subscriber<T>): Subscription;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
declare class IndexedDBArrayReplaySubject<T> extends IndexedDBReplaySubject<T[]> {
|
|
259
|
+
private readonly partitionSize;
|
|
260
|
+
constructor(partitionSize: number, dbName: string, version?: number);
|
|
261
|
+
get lastValue(): Observable<T[] | null>;
|
|
262
|
+
next(value: T[]): void;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
declare class ReplaySubjectExt<T> extends ReplaySubject<T> {
|
|
266
|
+
private _hasData;
|
|
267
|
+
private _lastValue?;
|
|
268
|
+
private readonly oldNext;
|
|
269
|
+
constructor(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike);
|
|
270
|
+
nextAndStoreValue(value: T): void;
|
|
271
|
+
get hasData(): boolean;
|
|
272
|
+
get lastValue(): T | undefined;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
declare abstract class Logger {
|
|
276
|
+
abstract debug(message: unknown, ...optionalParams: unknown[]): void;
|
|
277
|
+
abstract error(message: unknown, ...optionalParams: unknown[]): void;
|
|
278
|
+
abstract info(message: unknown, ...optionalParams: unknown[]): void;
|
|
279
|
+
abstract trace(message: unknown, ...optionalParams: unknown[]): void;
|
|
280
|
+
abstract warn(message: unknown, ...optionalParams: unknown[]): void;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
declare function retry<T>(logger: Logger, maxRetryAttempts?: number, scalingDuration?: number): MonoTypeOperatorFunction<T>;
|
|
284
|
+
|
|
285
|
+
declare function LocalStorage(key?: string, keyPrefix?: string): (target: object, propertyName: string) => void;
|
|
286
|
+
declare function SessionStorage(key?: string, keyPrefix?: string): (target: object, propertyName: string) => void;
|
|
287
|
+
|
|
288
|
+
declare abstract class UIDUtils {
|
|
289
|
+
static computeUID(...data: unknown[]): string;
|
|
290
|
+
static generateUID(): string;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
declare function base64decode(str: string): string;
|
|
294
|
+
declare function base64encode(buffer: ArrayBuffer | string): string;
|
|
295
|
+
declare function string2buffer(source: string): ArrayBuffer;
|
|
296
|
+
|
|
297
|
+
declare function secureRandom(): number;
|
|
298
|
+
|
|
299
|
+
declare function toString(value: unknown): string;
|
|
300
|
+
|
|
301
|
+
declare function deepClone<T>(obj: T): T;
|
|
302
|
+
declare function deepEqual(x: unknown, y: unknown): boolean;
|
|
303
|
+
declare function deepEqual(x: unknown, y: unknown, ignorePaths: string[]): boolean;
|
|
304
|
+
declare function deepEqual(x: unknown, y: unknown, ignoreArrayOrder: boolean): boolean;
|
|
305
|
+
declare function deepEqual(x: unknown, y: unknown, ignorePaths: string[], ignoreArrayOrder: boolean): boolean;
|
|
306
|
+
|
|
307
|
+
export { AuthTokenType, CONTENT_TYPE, DateUtils, ErrorType, IndexedDBArrayReplaySubject, IndexedDBReplaySubject, IndexedDbStore, LocalStorage, Logger, ObservableEventType, ReplaySubjectExt, SessionStorage, UIDUtils, base64decode, base64encode, deepClone, deepEqual, extractResult, globalScope, isEventObject, retry, secureRandom, string2buffer, toString };
|
|
308
|
+
export type { AuthProvider, ErrorMessage, FileWithContent, IsEventObject, JSONObject, Maybe, NonNullPrimitives, ObservableEvent, ObservableWithProgress, Primitives, ProgressEvent, ResultEvent, UserInfo, ValueGetter };
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dbg-riskit/common",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.1",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"rxjs": "~7.8.2"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"tslib": "^2.
|
|
9
|
+
"tslib": "^2.8.1"
|
|
10
10
|
},
|
|
11
11
|
"module": "fesm2022/dbg-riskit-common.mjs",
|
|
12
12
|
"typings": "index.d.ts",
|
|
@@ -16,10 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
".": {
|
|
18
18
|
"types": "./index.d.ts",
|
|
19
|
-
"esm2022": "./esm2022/dbg-riskit-common.mjs",
|
|
20
|
-
"esm": "./esm2022/dbg-riskit-common.mjs",
|
|
21
19
|
"default": "./fesm2022/dbg-riskit-common.mjs"
|
|
22
20
|
}
|
|
23
|
-
}
|
|
24
|
-
"sideEffects": false
|
|
21
|
+
}
|
|
25
22
|
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJnLXJpc2tpdC1jb21tb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9jb21tb24vc3JjL2RiZy1yaXNraXQtY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|