@microsoft/teams.common
Advanced tools
@@ -10,6 +10,6 @@ type EventHandler<T = any> = (data: T) => void | Promise<void>; | ||
| protected index: number; | ||
| protected subscriptions: Map<keyof EventTypes, { | ||
| protected subscriptions: Map<keyof EventTypes, Array<{ | ||
| readonly id: number; | ||
| readonly handler: EventHandler; | ||
| }[]>; | ||
| }>>; | ||
| on<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number; | ||
@@ -16,0 +16,0 @@ once<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number; |
@@ -10,6 +10,6 @@ type EventHandler<T = any> = (data: T) => void | Promise<void>; | ||
| protected index: number; | ||
| protected subscriptions: Map<keyof EventTypes, { | ||
| protected subscriptions: Map<keyof EventTypes, Array<{ | ||
| readonly id: number; | ||
| readonly handler: EventHandler; | ||
| }[]>; | ||
| }>>; | ||
| on<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number; | ||
@@ -16,0 +16,0 @@ once<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/events/event-emitter.ts"],"names":[],"mappings":";;AAeO,MAAM,YAAA,CAAoF;AAAA,EACrF,KAAA,GAAQ,EAAA;AAAA,EACR,aAAA,uBAAoB,GAAA,EAM5B;AAAA,EAEF,EAAA,CAAmC,OAAc,OAAA,EAA0C;AACzF,IAAA,MAAM,EAAA,GAAK,EAAE,IAAA,CAAK,KAAA;AAClB,IAAA,MAAM,OAAO,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAK,KAAK,EAAC;AAC/C,IAAA,IAAA,CAAK,IAAA,CAAK,EAAE,EAAA,EAAI,OAAA,EAAS,CAAA;AACzB,IAAA,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAA,EAAO,IAAI,CAAA;AAClC,IAAA,OAAO,EAAA;AAAA,EACT;AAAA,EAEA,IAAA,CAAqC,OAAc,OAAA,EAA0C;AAC3F,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,EAAA,CAAG,KAAA,EAAO,CAAC,KAAA,KAAU;AACnC,MAAA,IAAA,CAAK,IAAI,EAAE,CAAA;AACX,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACf,CAAC,CAAA;AAED,IAAA,OAAO,EAAA;AAAA,EACT;AAAA,EAEA,IAAI,EAAA,EAAY;AACd,IAAA,KAAA,MAAW,CAAC,CAAA,EAAG,IAAI,KAAK,IAAA,CAAK,aAAA,CAAc,SAAQ,EAAG;AACpD,MAAA,MAAM,IAAI,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAE3C,MAAA,IAAI,MAAM,EAAA,EAAI;AAEd,MAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAC,CAAA;AAChB,MAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAA,CAAqC,OAAc,KAAA,EAA0B;AAC3E,IAAA,MAAM,OAAO,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAK,KAAK,EAAC;AAE/C,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,GAAA,CAAI,QAAQ,KAAK,CAAA;AAAA,IACnB;AAAA,EACF;AACF","file":"event-emitter.js","sourcesContent":["export type EventHandler<T = any> = (data: T) => void | Promise<void>;\n\nexport interface IEventEmitter<EventTypes = Record<string, any>> {\n on<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>\n ): number;\n once<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>\n ): number;\n off(id: number): void;\n emit<Event extends keyof EventTypes>(event: Event, value: EventTypes[Event]): void;\n}\n\nexport class EventEmitter<EventTypes = Record<string, any>> implements IEventEmitter<EventTypes> {\n protected index = -1;\n protected subscriptions = new Map<\n keyof EventTypes,\n Array<{\n readonly id: number;\n readonly handler: EventHandler;\n }>\n >();\n\n on<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>) {\n const id = ++this.index;\n const subs = this.subscriptions.get(event) || [];\n subs.push({ id, handler });\n this.subscriptions.set(event, subs);\n return id;\n }\n\n once<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>) {\n const id = this.on(event, (value) => {\n this.off(id);\n handler(value);\n });\n\n return id;\n }\n\n off(id: number) {\n for (const [_, subs] of this.subscriptions.entries()) {\n const i = subs.findIndex((s) => s.id === id);\n\n if (i === -1) continue;\n\n subs.splice(i, 1);\n return;\n }\n }\n\n emit<Event extends keyof EventTypes>(event: Event, value: EventTypes[Event]) {\n const subs = this.subscriptions.get(event) || [];\n\n for (const sub of subs) {\n sub.handler(value);\n }\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/events/event-emitter.ts"],"names":[],"mappings":";;AAkBO,MAAM,YAAA,CAE0B;AAAA,EAC3B,KAAA,GAAgB,EAAA;AAAA,EAChB,aAAA,uBAMF,GAAA,EAMN;AAAA,EAEF,EAAA,CACE,OACA,OAAA,EACQ;AACR,IAAA,MAAM,EAAA,GAAK,EAAE,IAAA,CAAK,KAAA;AAClB,IAAA,MAAM,OAAO,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAK,KAAK,EAAC;AAC/C,IAAA,IAAA,CAAK,IAAA,CAAK,EAAE,EAAA,EAAI,OAAA,EAAS,CAAA;AACzB,IAAA,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAA,EAAO,IAAI,CAAA;AAClC,IAAA,OAAO,EAAA;AAAA,EACT;AAAA,EAEA,IAAA,CACE,OACA,OAAA,EACQ;AACR,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,EAAA,CAAG,KAAA,EAAO,CAAC,KAAA,KAAU;AACnC,MAAA,IAAA,CAAK,IAAI,EAAE,CAAA;AACX,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACf,CAAC,CAAA;AAED,IAAA,OAAO,EAAA;AAAA,EACT;AAAA,EAEA,IAAI,EAAA,EAAkB;AACpB,IAAA,KAAA,MAAW,CAAC,CAAA,EAAG,IAAI,KAAK,IAAA,CAAK,aAAA,CAAc,SAAQ,EAAG;AACpD,MAAA,MAAM,IAAI,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAE3C,MAAA,IAAI,MAAM,EAAA,EAAI;AAEd,MAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAC,CAAA;AAChB,MAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAA,CACE,OACA,KAAA,EACM;AACN,IAAA,MAAM,OAAO,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAK,KAAK,EAAC;AAE/C,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,GAAA,CAAI,QAAQ,KAAK,CAAA;AAAA,IACnB;AAAA,EACF;AACF","file":"event-emitter.js","sourcesContent":["export type EventHandler<T = any> = (data: T) => void | Promise<void>;\n\nexport interface IEventEmitter<EventTypes = Record<string, any>> {\n on<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>,\n ): number;\n once<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>,\n ): number;\n off(id: number): void;\n emit<Event extends keyof EventTypes>(\n event: Event,\n value: EventTypes[Event],\n ): void;\n}\n\nexport class EventEmitter<\n EventTypes = Record<string, any>,\n> implements IEventEmitter<EventTypes> {\n protected index: number = -1;\n protected subscriptions: Map<\n keyof EventTypes,\n Array<{\n readonly id: number;\n readonly handler: EventHandler;\n }>\n > = new Map<\n keyof EventTypes,\n Array<{\n readonly id: number;\n readonly handler: EventHandler;\n }>\n >();\n\n on<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>,\n ): number {\n const id = ++this.index;\n const subs = this.subscriptions.get(event) || [];\n subs.push({ id, handler });\n this.subscriptions.set(event, subs);\n return id;\n }\n\n once<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>,\n ): number {\n const id = this.on(event, (value) => {\n this.off(id);\n handler(value);\n });\n\n return id;\n }\n\n off(id: number): void {\n for (const [_, subs] of this.subscriptions.entries()) {\n const i = subs.findIndex((s) => s.id === id);\n\n if (i === -1) continue;\n\n subs.splice(i, 1);\n return;\n }\n }\n\n emit<Event extends keyof EventTypes>(\n event: Event,\n value: EventTypes[Event],\n ): void {\n const subs = this.subscriptions.get(event) || [];\n\n for (const sub of subs) {\n sub.handler(value);\n }\n }\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/events/event-emitter.ts"],"names":[],"mappings":"AAeO,MAAM,YAAA,CAAoF;AAAA,EACrF,KAAA,GAAQ,EAAA;AAAA,EACR,aAAA,uBAAoB,GAAA,EAM5B;AAAA,EAEF,EAAA,CAAmC,OAAc,OAAA,EAA0C;AACzF,IAAA,MAAM,EAAA,GAAK,EAAE,IAAA,CAAK,KAAA;AAClB,IAAA,MAAM,OAAO,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAK,KAAK,EAAC;AAC/C,IAAA,IAAA,CAAK,IAAA,CAAK,EAAE,EAAA,EAAI,OAAA,EAAS,CAAA;AACzB,IAAA,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAA,EAAO,IAAI,CAAA;AAClC,IAAA,OAAO,EAAA;AAAA,EACT;AAAA,EAEA,IAAA,CAAqC,OAAc,OAAA,EAA0C;AAC3F,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,EAAA,CAAG,KAAA,EAAO,CAAC,KAAA,KAAU;AACnC,MAAA,IAAA,CAAK,IAAI,EAAE,CAAA;AACX,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACf,CAAC,CAAA;AAED,IAAA,OAAO,EAAA;AAAA,EACT;AAAA,EAEA,IAAI,EAAA,EAAY;AACd,IAAA,KAAA,MAAW,CAAC,CAAA,EAAG,IAAI,KAAK,IAAA,CAAK,aAAA,CAAc,SAAQ,EAAG;AACpD,MAAA,MAAM,IAAI,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAE3C,MAAA,IAAI,MAAM,EAAA,EAAI;AAEd,MAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAC,CAAA;AAChB,MAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAA,CAAqC,OAAc,KAAA,EAA0B;AAC3E,IAAA,MAAM,OAAO,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAK,KAAK,EAAC;AAE/C,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,GAAA,CAAI,QAAQ,KAAK,CAAA;AAAA,IACnB;AAAA,EACF;AACF","file":"event-emitter.mjs","sourcesContent":["export type EventHandler<T = any> = (data: T) => void | Promise<void>;\n\nexport interface IEventEmitter<EventTypes = Record<string, any>> {\n on<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>\n ): number;\n once<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>\n ): number;\n off(id: number): void;\n emit<Event extends keyof EventTypes>(event: Event, value: EventTypes[Event]): void;\n}\n\nexport class EventEmitter<EventTypes = Record<string, any>> implements IEventEmitter<EventTypes> {\n protected index = -1;\n protected subscriptions = new Map<\n keyof EventTypes,\n Array<{\n readonly id: number;\n readonly handler: EventHandler;\n }>\n >();\n\n on<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>) {\n const id = ++this.index;\n const subs = this.subscriptions.get(event) || [];\n subs.push({ id, handler });\n this.subscriptions.set(event, subs);\n return id;\n }\n\n once<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>) {\n const id = this.on(event, (value) => {\n this.off(id);\n handler(value);\n });\n\n return id;\n }\n\n off(id: number) {\n for (const [_, subs] of this.subscriptions.entries()) {\n const i = subs.findIndex((s) => s.id === id);\n\n if (i === -1) continue;\n\n subs.splice(i, 1);\n return;\n }\n }\n\n emit<Event extends keyof EventTypes>(event: Event, value: EventTypes[Event]) {\n const subs = this.subscriptions.get(event) || [];\n\n for (const sub of subs) {\n sub.handler(value);\n }\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/events/event-emitter.ts"],"names":[],"mappings":"AAkBO,MAAM,YAAA,CAE0B;AAAA,EAC3B,KAAA,GAAgB,EAAA;AAAA,EAChB,aAAA,uBAMF,GAAA,EAMN;AAAA,EAEF,EAAA,CACE,OACA,OAAA,EACQ;AACR,IAAA,MAAM,EAAA,GAAK,EAAE,IAAA,CAAK,KAAA;AAClB,IAAA,MAAM,OAAO,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAK,KAAK,EAAC;AAC/C,IAAA,IAAA,CAAK,IAAA,CAAK,EAAE,EAAA,EAAI,OAAA,EAAS,CAAA;AACzB,IAAA,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAA,EAAO,IAAI,CAAA;AAClC,IAAA,OAAO,EAAA;AAAA,EACT;AAAA,EAEA,IAAA,CACE,OACA,OAAA,EACQ;AACR,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,EAAA,CAAG,KAAA,EAAO,CAAC,KAAA,KAAU;AACnC,MAAA,IAAA,CAAK,IAAI,EAAE,CAAA;AACX,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACf,CAAC,CAAA;AAED,IAAA,OAAO,EAAA;AAAA,EACT;AAAA,EAEA,IAAI,EAAA,EAAkB;AACpB,IAAA,KAAA,MAAW,CAAC,CAAA,EAAG,IAAI,KAAK,IAAA,CAAK,aAAA,CAAc,SAAQ,EAAG;AACpD,MAAA,MAAM,IAAI,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAE3C,MAAA,IAAI,MAAM,EAAA,EAAI;AAEd,MAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAC,CAAA;AAChB,MAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAA,CACE,OACA,KAAA,EACM;AACN,IAAA,MAAM,OAAO,IAAA,CAAK,aAAA,CAAc,GAAA,CAAI,KAAK,KAAK,EAAC;AAE/C,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,GAAA,CAAI,QAAQ,KAAK,CAAA;AAAA,IACnB;AAAA,EACF;AACF","file":"event-emitter.mjs","sourcesContent":["export type EventHandler<T = any> = (data: T) => void | Promise<void>;\n\nexport interface IEventEmitter<EventTypes = Record<string, any>> {\n on<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>,\n ): number;\n once<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>,\n ): number;\n off(id: number): void;\n emit<Event extends keyof EventTypes>(\n event: Event,\n value: EventTypes[Event],\n ): void;\n}\n\nexport class EventEmitter<\n EventTypes = Record<string, any>,\n> implements IEventEmitter<EventTypes> {\n protected index: number = -1;\n protected subscriptions: Map<\n keyof EventTypes,\n Array<{\n readonly id: number;\n readonly handler: EventHandler;\n }>\n > = new Map<\n keyof EventTypes,\n Array<{\n readonly id: number;\n readonly handler: EventHandler;\n }>\n >();\n\n on<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>,\n ): number {\n const id = ++this.index;\n const subs = this.subscriptions.get(event) || [];\n subs.push({ id, handler });\n this.subscriptions.set(event, subs);\n return id;\n }\n\n once<Event extends keyof EventTypes>(\n event: Event,\n handler: EventHandler<EventTypes[Event]>,\n ): number {\n const id = this.on(event, (value) => {\n this.off(id);\n handler(value);\n });\n\n return id;\n }\n\n off(id: number): void {\n for (const [_, subs] of this.subscriptions.entries()) {\n const i = subs.findIndex((s) => s.id === id);\n\n if (i === -1) continue;\n\n subs.splice(i, 1);\n return;\n }\n }\n\n emit<Event extends keyof EventTypes>(\n event: Event,\n value: EventTypes[Event],\n ): void {\n const subs = this.subscriptions.get(event) || [];\n\n for (const sub of subs) {\n sub.handler(value);\n }\n }\n}\n"]} |
@@ -80,5 +80,5 @@ import { RawAxiosRequestHeaders, AxiosInstance, AxiosResponse, AxiosRequestConfig } from 'axios'; | ||
| clone(options?: ClientOptions): Client; | ||
| protected withConfig(config?: RequestConfig): Promise<RequestConfig<any>>; | ||
| protected withConfig(config?: RequestConfig): Promise<RequestConfig>; | ||
| } | ||
| export { Client, type ClientOptions, type RequestConfig }; |
@@ -80,5 +80,5 @@ import { RawAxiosRequestHeaders, AxiosInstance, AxiosResponse, AxiosRequestConfig } from 'axios'; | ||
| clone(options?: ClientOptions): Client; | ||
| protected withConfig(config?: RequestConfig): Promise<RequestConfig<any>>; | ||
| protected withConfig(config?: RequestConfig): Promise<RequestConfig>; | ||
| } | ||
| export { Client, type ClientOptions, type RequestConfig }; |
@@ -142,3 +142,5 @@ 'use strict'; | ||
| headers, | ||
| interceptors: [...Array.from(this.interceptors.values()).map((i) => i.interceptor)] | ||
| interceptors: [ | ||
| ...Array.from(this.interceptors.values()).map((i) => i.interceptor) | ||
| ] | ||
| }); | ||
@@ -145,0 +147,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/http/client.ts"],"names":["ConsoleLogger","axios"],"mappings":"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","file":"client.js","sourcesContent":["import axios, {\n AxiosInstance,\n AxiosResponse,\n AxiosRequestConfig,\n RawAxiosRequestHeaders,\n} from 'axios';\n\nimport { ConsoleLogger, ILogger } from '../logging';\n\nimport { Interceptor } from './interceptor';\nimport { Token } from './token';\n\nexport type ClientOptions = {\n /**\n * The client name\n */\n readonly name?: string;\n\n /**\n * The authorization token to use\n */\n readonly token?: Token;\n\n /**\n *: ILogger instance to use\n */\n readonly logger?: ILogger;\n\n /**\n * The baseUrl to prefix all client requests with\n */\n readonly baseUrl?: string;\n\n /**\n * Default request timeout (ms)\n */\n readonly timeout?: number;\n\n /**\n * Default headers\n */\n readonly headers?: RawAxiosRequestHeaders;\n\n /**\n * Default interceptors to register\n */\n readonly interceptors?: Array<Interceptor>;\n};\n\nexport type RequestConfig<D = any> = AxiosRequestConfig<D> & {\n /**\n * If provided, this token will be used instead of\n * the default token provided in the `ClientOptions`\n */\n token?: Token;\n};\n\ntype InterceptorRegistry = {\n readonly requestId?: number;\n readonly responseId?: number;\n readonly interceptor: Interceptor;\n};\n\nexport class Client {\n token?: Token;\n readonly name: string;\n\n protected options: ClientOptions;\n protected log: ILogger;\n protected http: AxiosInstance;\n protected seq: number = 0;\n protected interceptors: Map<number, InterceptorRegistry>;\n\n constructor(options: ClientOptions = {}) {\n this.options = options;\n this.name = options.name || 'http';\n this.token = options.token;\n this.log = options.logger || new ConsoleLogger(this.name);\n this.interceptors = new Map<number, InterceptorRegistry>();\n this.http = axios.create({\n baseURL: options.baseUrl,\n timeout: options.timeout,\n headers: options.headers,\n });\n\n for (const interceptor of options.interceptors || []) {\n this.use(interceptor);\n }\n }\n\n async get<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: RequestConfig<D>) {\n return this.http.get<T, R, D>(url, await this.withConfig(config));\n }\n\n async post<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>\n ) {\n return this.http.post<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async put<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>\n ) {\n return this.http.put<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async patch<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>\n ) {\n return this.http.patch<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async delete<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: RequestConfig<D>) {\n return this.http.delete<T, R, D>(url, await this.withConfig(config));\n }\n\n async request<T = any, R = AxiosResponse<T>, D = any>(config: RequestConfig<D>) {\n return this.http.request<T, R, D>(await this.withConfig(config));\n }\n\n /**\n * Register an interceptor to use\n * as middleware for the request/response/error\n */\n use(interceptor: Interceptor) {\n const id = ++this.seq;\n let requestId: number | undefined = undefined;\n let responseId: number | undefined = undefined;\n\n if (interceptor.request) {\n requestId = this.http.interceptors.request.use(\n /* istanbul ignore next */\n (config) => {\n return interceptor.request!({ config, log: this.log });\n },\n /* istanbul ignore next */\n (error: any) => {\n if (!interceptor.error) return error;\n return interceptor.error({ error, log: this.log });\n }\n );\n }\n\n if (interceptor.response) {\n responseId = this.http.interceptors.response.use(\n /* istanbul ignore next */\n (res) => {\n return interceptor.response!({ res, log: this.log });\n },\n /* istanbul ignore next */\n (error: any) => {\n if (!interceptor.error) return error;\n return interceptor.error({ error, log: this.log });\n }\n );\n }\n\n this.interceptors.set(id, {\n requestId,\n responseId,\n interceptor,\n });\n\n return id;\n }\n\n /**\n * Eject an interceptor\n */\n eject(id: number) {\n const registry = this.interceptors.get(id);\n\n if (!registry) return;\n\n if (registry.requestId) {\n this.http.interceptors.request.eject(registry.requestId);\n }\n\n if (registry.responseId) {\n this.http.interceptors.response.eject(registry.responseId);\n }\n\n this.interceptors.delete(id);\n }\n\n /**\n * Clear (Eject) all interceptors\n */\n clear() {\n for (const id of this.interceptors.keys()) {\n this.eject(id);\n }\n }\n\n /**\n * Create a copy of the client\n */\n clone(options?: ClientOptions) {\n const findUA = (h?: RawAxiosRequestHeaders) => {\n if (!h) return undefined;\n const key = Object.keys(h).find((k) => k.toLowerCase() === 'user-agent');\n return key ? String(h[key]) : undefined;\n };\n\n const parentUA = findUA(this.options.headers);\n const childUA = findUA(options?.headers);\n const mergedUA =\n parentUA && childUA ? `${childUA} ${parentUA}` : (childUA || parentUA);\n\n const headers = {\n ...this.options.headers,\n ...options?.headers,\n };\n\n if (mergedUA) {\n for (const key of Object.keys(headers)) {\n if (key.toLowerCase() === 'user-agent') {\n delete headers[key];\n }\n }\n\n headers['User-Agent'] = mergedUA;\n }\n\n return new Client({\n ...this.options,\n ...options,\n headers,\n interceptors: [...Array.from(this.interceptors.values()).map((i) => i.interceptor)],\n });\n }\n\n protected async withConfig(config: RequestConfig = {}) {\n let token = config.token || this.token;\n\n if (config.token) {\n delete config.token;\n }\n\n if (this.options.headers) {\n if (!config.headers) {\n config.headers = {};\n }\n\n for (const key in this.options.headers) {\n config.headers[key] = this.options.headers[key];\n }\n }\n\n if (token) {\n if (!config.headers) {\n config.headers = {};\n }\n\n if (typeof token === 'function') {\n token = await token(config);\n }\n\n if (token && typeof token === 'object') {\n token = token.toString();\n }\n\n config.headers['Authorization'] = `Bearer ${token}`;\n }\n\n return config;\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/http/client.ts"],"names":["ConsoleLogger","axios"],"mappings":"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","file":"client.js","sourcesContent":["import axios from 'axios';\nimport type {\n AxiosInstance,\n AxiosResponse,\n AxiosRequestConfig,\n RawAxiosRequestHeaders,\n} from 'axios';\n\nimport { ConsoleLogger } from '../logging';\nimport type { ILogger } from '../logging';\n\nimport type { Interceptor } from './interceptor';\nimport type { Token } from './token';\n\n\nexport type ClientOptions = {\n /**\n * The client name\n */\n readonly name?: string;\n\n /**\n * The authorization token to use\n */\n readonly token?: Token;\n\n /**\n *: ILogger instance to use\n */\n readonly logger?: ILogger;\n\n /**\n * The baseUrl to prefix all client requests with\n */\n readonly baseUrl?: string;\n\n /**\n * Default request timeout (ms)\n */\n readonly timeout?: number;\n\n /**\n * Default headers\n */\n readonly headers?: RawAxiosRequestHeaders;\n\n /**\n * Default interceptors to register\n */\n readonly interceptors?: Array<Interceptor>;\n};\n\nexport type RequestConfig<D = any> = AxiosRequestConfig<D> & {\n /**\n * If provided, this token will be used instead of\n * the default token provided in the `ClientOptions`\n */\n token?: Token;\n};\n\ntype InterceptorRegistry = {\n readonly requestId?: number;\n readonly responseId?: number;\n readonly interceptor: Interceptor;\n};\n\nexport class Client {\n token?: Token;\n readonly name: string;\n\n protected options: ClientOptions;\n protected log: ILogger;\n protected http: AxiosInstance;\n protected seq: number = 0;\n protected interceptors: Map<number, InterceptorRegistry>;\n\n constructor(options: ClientOptions = {}) {\n this.options = options;\n this.name = options.name || 'http';\n this.token = options.token;\n this.log = options.logger || new ConsoleLogger(this.name);\n this.interceptors = new Map<number, InterceptorRegistry>();\n this.http = axios.create({\n baseURL: options.baseUrl,\n timeout: options.timeout,\n headers: options.headers,\n });\n\n for (const interceptor of options.interceptors || []) {\n this.use(interceptor);\n }\n }\n\n async get<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n config?: RequestConfig<D>,\n ): Promise<R> {\n return this.http.get<T, R, D>(url, await this.withConfig(config));\n }\n\n async post<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>,\n ): Promise<R> {\n return this.http.post<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async put<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>,\n ): Promise<R> {\n return this.http.put<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async patch<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>,\n ): Promise<R> {\n return this.http.patch<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async delete<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n config?: RequestConfig<D>,\n ): Promise<R> {\n return this.http.delete<T, R, D>(url, await this.withConfig(config));\n }\n\n async request<T = any, R = AxiosResponse<T>, D = any>(\n config: RequestConfig<D>,\n ): Promise<R> {\n return this.http.request<T, R, D>(await this.withConfig(config));\n }\n\n /**\n * Register an interceptor to use\n * as middleware for the request/response/error\n */\n use(interceptor: Interceptor): number {\n const id = ++this.seq;\n let requestId: number | undefined = undefined;\n let responseId: number | undefined = undefined;\n\n if (interceptor.request) {\n requestId = this.http.interceptors.request.use(\n /* istanbul ignore next */\n (config) => {\n return interceptor.request!({ config, log: this.log });\n },\n /* istanbul ignore next */\n (error: any) => {\n if (!interceptor.error) return error;\n return interceptor.error({ error, log: this.log });\n },\n );\n }\n\n if (interceptor.response) {\n responseId = this.http.interceptors.response.use(\n /* istanbul ignore next */\n (res) => {\n return interceptor.response!({ res, log: this.log });\n },\n /* istanbul ignore next */\n (error: any) => {\n if (!interceptor.error) return error;\n return interceptor.error({ error, log: this.log });\n },\n );\n }\n\n this.interceptors.set(id, {\n requestId,\n responseId,\n interceptor,\n });\n\n return id;\n }\n\n /**\n * Eject an interceptor\n */\n eject(id: number): void {\n const registry = this.interceptors.get(id);\n\n if (!registry) return;\n\n if (registry.requestId) {\n this.http.interceptors.request.eject(registry.requestId);\n }\n\n if (registry.responseId) {\n this.http.interceptors.response.eject(registry.responseId);\n }\n\n this.interceptors.delete(id);\n }\n\n /**\n * Clear (Eject) all interceptors\n */\n clear(): void {\n for (const id of this.interceptors.keys()) {\n this.eject(id);\n }\n }\n\n /**\n * Create a copy of the client\n */\n clone(options?: ClientOptions): Client {\n const findUA = (h?: RawAxiosRequestHeaders): string | undefined => {\n if (!h) return undefined;\n const key = Object.keys(h).find((k) => k.toLowerCase() === 'user-agent');\n return key ? String(h[key]) : undefined;\n };\n\n const parentUA = findUA(this.options.headers);\n const childUA = findUA(options?.headers);\n const mergedUA =\n parentUA && childUA ? `${childUA} ${parentUA}` : childUA || parentUA;\n\n const headers = {\n ...this.options.headers,\n ...options?.headers,\n };\n\n if (mergedUA) {\n for (const key of Object.keys(headers)) {\n if (key.toLowerCase() === 'user-agent') {\n delete headers[key];\n }\n }\n\n headers['User-Agent'] = mergedUA;\n }\n\n return new Client({\n ...this.options,\n ...options,\n headers,\n interceptors: [\n ...Array.from(this.interceptors.values()).map((i) => i.interceptor),\n ],\n });\n }\n\n protected async withConfig(\n config: RequestConfig = {},\n ): Promise<RequestConfig> {\n let token = config.token || this.token;\n\n if (config.token) {\n delete config.token;\n }\n\n if (this.options.headers) {\n if (!config.headers) {\n config.headers = {};\n }\n\n for (const key in this.options.headers) {\n config.headers[key] = this.options.headers[key];\n }\n }\n\n if (token) {\n if (!config.headers) {\n config.headers = {};\n }\n\n if (typeof token === 'function') {\n token = await token(config);\n }\n\n if (token && typeof token === 'object') {\n token = token.toString();\n }\n\n config.headers['Authorization'] = `Bearer ${token}`;\n }\n\n return config;\n }\n}\n"]} |
@@ -136,3 +136,5 @@ import axios from 'axios'; | ||
| headers, | ||
| interceptors: [...Array.from(this.interceptors.values()).map((i) => i.interceptor)] | ||
| interceptors: [ | ||
| ...Array.from(this.interceptors.values()).map((i) => i.interceptor) | ||
| ] | ||
| }); | ||
@@ -139,0 +141,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/http/client.ts"],"names":[],"mappings":"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","file":"client.mjs","sourcesContent":["import axios, {\n AxiosInstance,\n AxiosResponse,\n AxiosRequestConfig,\n RawAxiosRequestHeaders,\n} from 'axios';\n\nimport { ConsoleLogger, ILogger } from '../logging';\n\nimport { Interceptor } from './interceptor';\nimport { Token } from './token';\n\nexport type ClientOptions = {\n /**\n * The client name\n */\n readonly name?: string;\n\n /**\n * The authorization token to use\n */\n readonly token?: Token;\n\n /**\n *: ILogger instance to use\n */\n readonly logger?: ILogger;\n\n /**\n * The baseUrl to prefix all client requests with\n */\n readonly baseUrl?: string;\n\n /**\n * Default request timeout (ms)\n */\n readonly timeout?: number;\n\n /**\n * Default headers\n */\n readonly headers?: RawAxiosRequestHeaders;\n\n /**\n * Default interceptors to register\n */\n readonly interceptors?: Array<Interceptor>;\n};\n\nexport type RequestConfig<D = any> = AxiosRequestConfig<D> & {\n /**\n * If provided, this token will be used instead of\n * the default token provided in the `ClientOptions`\n */\n token?: Token;\n};\n\ntype InterceptorRegistry = {\n readonly requestId?: number;\n readonly responseId?: number;\n readonly interceptor: Interceptor;\n};\n\nexport class Client {\n token?: Token;\n readonly name: string;\n\n protected options: ClientOptions;\n protected log: ILogger;\n protected http: AxiosInstance;\n protected seq: number = 0;\n protected interceptors: Map<number, InterceptorRegistry>;\n\n constructor(options: ClientOptions = {}) {\n this.options = options;\n this.name = options.name || 'http';\n this.token = options.token;\n this.log = options.logger || new ConsoleLogger(this.name);\n this.interceptors = new Map<number, InterceptorRegistry>();\n this.http = axios.create({\n baseURL: options.baseUrl,\n timeout: options.timeout,\n headers: options.headers,\n });\n\n for (const interceptor of options.interceptors || []) {\n this.use(interceptor);\n }\n }\n\n async get<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: RequestConfig<D>) {\n return this.http.get<T, R, D>(url, await this.withConfig(config));\n }\n\n async post<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>\n ) {\n return this.http.post<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async put<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>\n ) {\n return this.http.put<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async patch<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>\n ) {\n return this.http.patch<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async delete<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: RequestConfig<D>) {\n return this.http.delete<T, R, D>(url, await this.withConfig(config));\n }\n\n async request<T = any, R = AxiosResponse<T>, D = any>(config: RequestConfig<D>) {\n return this.http.request<T, R, D>(await this.withConfig(config));\n }\n\n /**\n * Register an interceptor to use\n * as middleware for the request/response/error\n */\n use(interceptor: Interceptor) {\n const id = ++this.seq;\n let requestId: number | undefined = undefined;\n let responseId: number | undefined = undefined;\n\n if (interceptor.request) {\n requestId = this.http.interceptors.request.use(\n /* istanbul ignore next */\n (config) => {\n return interceptor.request!({ config, log: this.log });\n },\n /* istanbul ignore next */\n (error: any) => {\n if (!interceptor.error) return error;\n return interceptor.error({ error, log: this.log });\n }\n );\n }\n\n if (interceptor.response) {\n responseId = this.http.interceptors.response.use(\n /* istanbul ignore next */\n (res) => {\n return interceptor.response!({ res, log: this.log });\n },\n /* istanbul ignore next */\n (error: any) => {\n if (!interceptor.error) return error;\n return interceptor.error({ error, log: this.log });\n }\n );\n }\n\n this.interceptors.set(id, {\n requestId,\n responseId,\n interceptor,\n });\n\n return id;\n }\n\n /**\n * Eject an interceptor\n */\n eject(id: number) {\n const registry = this.interceptors.get(id);\n\n if (!registry) return;\n\n if (registry.requestId) {\n this.http.interceptors.request.eject(registry.requestId);\n }\n\n if (registry.responseId) {\n this.http.interceptors.response.eject(registry.responseId);\n }\n\n this.interceptors.delete(id);\n }\n\n /**\n * Clear (Eject) all interceptors\n */\n clear() {\n for (const id of this.interceptors.keys()) {\n this.eject(id);\n }\n }\n\n /**\n * Create a copy of the client\n */\n clone(options?: ClientOptions) {\n const findUA = (h?: RawAxiosRequestHeaders) => {\n if (!h) return undefined;\n const key = Object.keys(h).find((k) => k.toLowerCase() === 'user-agent');\n return key ? String(h[key]) : undefined;\n };\n\n const parentUA = findUA(this.options.headers);\n const childUA = findUA(options?.headers);\n const mergedUA =\n parentUA && childUA ? `${childUA} ${parentUA}` : (childUA || parentUA);\n\n const headers = {\n ...this.options.headers,\n ...options?.headers,\n };\n\n if (mergedUA) {\n for (const key of Object.keys(headers)) {\n if (key.toLowerCase() === 'user-agent') {\n delete headers[key];\n }\n }\n\n headers['User-Agent'] = mergedUA;\n }\n\n return new Client({\n ...this.options,\n ...options,\n headers,\n interceptors: [...Array.from(this.interceptors.values()).map((i) => i.interceptor)],\n });\n }\n\n protected async withConfig(config: RequestConfig = {}) {\n let token = config.token || this.token;\n\n if (config.token) {\n delete config.token;\n }\n\n if (this.options.headers) {\n if (!config.headers) {\n config.headers = {};\n }\n\n for (const key in this.options.headers) {\n config.headers[key] = this.options.headers[key];\n }\n }\n\n if (token) {\n if (!config.headers) {\n config.headers = {};\n }\n\n if (typeof token === 'function') {\n token = await token(config);\n }\n\n if (token && typeof token === 'object') {\n token = token.toString();\n }\n\n config.headers['Authorization'] = `Bearer ${token}`;\n }\n\n return config;\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/http/client.ts"],"names":[],"mappings":"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","file":"client.mjs","sourcesContent":["import axios from 'axios';\nimport type {\n AxiosInstance,\n AxiosResponse,\n AxiosRequestConfig,\n RawAxiosRequestHeaders,\n} from 'axios';\n\nimport { ConsoleLogger } from '../logging';\nimport type { ILogger } from '../logging';\n\nimport type { Interceptor } from './interceptor';\nimport type { Token } from './token';\n\n\nexport type ClientOptions = {\n /**\n * The client name\n */\n readonly name?: string;\n\n /**\n * The authorization token to use\n */\n readonly token?: Token;\n\n /**\n *: ILogger instance to use\n */\n readonly logger?: ILogger;\n\n /**\n * The baseUrl to prefix all client requests with\n */\n readonly baseUrl?: string;\n\n /**\n * Default request timeout (ms)\n */\n readonly timeout?: number;\n\n /**\n * Default headers\n */\n readonly headers?: RawAxiosRequestHeaders;\n\n /**\n * Default interceptors to register\n */\n readonly interceptors?: Array<Interceptor>;\n};\n\nexport type RequestConfig<D = any> = AxiosRequestConfig<D> & {\n /**\n * If provided, this token will be used instead of\n * the default token provided in the `ClientOptions`\n */\n token?: Token;\n};\n\ntype InterceptorRegistry = {\n readonly requestId?: number;\n readonly responseId?: number;\n readonly interceptor: Interceptor;\n};\n\nexport class Client {\n token?: Token;\n readonly name: string;\n\n protected options: ClientOptions;\n protected log: ILogger;\n protected http: AxiosInstance;\n protected seq: number = 0;\n protected interceptors: Map<number, InterceptorRegistry>;\n\n constructor(options: ClientOptions = {}) {\n this.options = options;\n this.name = options.name || 'http';\n this.token = options.token;\n this.log = options.logger || new ConsoleLogger(this.name);\n this.interceptors = new Map<number, InterceptorRegistry>();\n this.http = axios.create({\n baseURL: options.baseUrl,\n timeout: options.timeout,\n headers: options.headers,\n });\n\n for (const interceptor of options.interceptors || []) {\n this.use(interceptor);\n }\n }\n\n async get<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n config?: RequestConfig<D>,\n ): Promise<R> {\n return this.http.get<T, R, D>(url, await this.withConfig(config));\n }\n\n async post<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>,\n ): Promise<R> {\n return this.http.post<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async put<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>,\n ): Promise<R> {\n return this.http.put<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async patch<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n data?: D,\n config?: RequestConfig<D>,\n ): Promise<R> {\n return this.http.patch<T, R, D>(url, data, await this.withConfig(config));\n }\n\n async delete<T = any, R = AxiosResponse<T>, D = any>(\n url: string,\n config?: RequestConfig<D>,\n ): Promise<R> {\n return this.http.delete<T, R, D>(url, await this.withConfig(config));\n }\n\n async request<T = any, R = AxiosResponse<T>, D = any>(\n config: RequestConfig<D>,\n ): Promise<R> {\n return this.http.request<T, R, D>(await this.withConfig(config));\n }\n\n /**\n * Register an interceptor to use\n * as middleware for the request/response/error\n */\n use(interceptor: Interceptor): number {\n const id = ++this.seq;\n let requestId: number | undefined = undefined;\n let responseId: number | undefined = undefined;\n\n if (interceptor.request) {\n requestId = this.http.interceptors.request.use(\n /* istanbul ignore next */\n (config) => {\n return interceptor.request!({ config, log: this.log });\n },\n /* istanbul ignore next */\n (error: any) => {\n if (!interceptor.error) return error;\n return interceptor.error({ error, log: this.log });\n },\n );\n }\n\n if (interceptor.response) {\n responseId = this.http.interceptors.response.use(\n /* istanbul ignore next */\n (res) => {\n return interceptor.response!({ res, log: this.log });\n },\n /* istanbul ignore next */\n (error: any) => {\n if (!interceptor.error) return error;\n return interceptor.error({ error, log: this.log });\n },\n );\n }\n\n this.interceptors.set(id, {\n requestId,\n responseId,\n interceptor,\n });\n\n return id;\n }\n\n /**\n * Eject an interceptor\n */\n eject(id: number): void {\n const registry = this.interceptors.get(id);\n\n if (!registry) return;\n\n if (registry.requestId) {\n this.http.interceptors.request.eject(registry.requestId);\n }\n\n if (registry.responseId) {\n this.http.interceptors.response.eject(registry.responseId);\n }\n\n this.interceptors.delete(id);\n }\n\n /**\n * Clear (Eject) all interceptors\n */\n clear(): void {\n for (const id of this.interceptors.keys()) {\n this.eject(id);\n }\n }\n\n /**\n * Create a copy of the client\n */\n clone(options?: ClientOptions): Client {\n const findUA = (h?: RawAxiosRequestHeaders): string | undefined => {\n if (!h) return undefined;\n const key = Object.keys(h).find((k) => k.toLowerCase() === 'user-agent');\n return key ? String(h[key]) : undefined;\n };\n\n const parentUA = findUA(this.options.headers);\n const childUA = findUA(options?.headers);\n const mergedUA =\n parentUA && childUA ? `${childUA} ${parentUA}` : childUA || parentUA;\n\n const headers = {\n ...this.options.headers,\n ...options?.headers,\n };\n\n if (mergedUA) {\n for (const key of Object.keys(headers)) {\n if (key.toLowerCase() === 'user-agent') {\n delete headers[key];\n }\n }\n\n headers['User-Agent'] = mergedUA;\n }\n\n return new Client({\n ...this.options,\n ...options,\n headers,\n interceptors: [\n ...Array.from(this.interceptors.values()).map((i) => i.interceptor),\n ],\n });\n }\n\n protected async withConfig(\n config: RequestConfig = {},\n ): Promise<RequestConfig> {\n let token = config.token || this.token;\n\n if (config.token) {\n delete config.token;\n }\n\n if (this.options.headers) {\n if (!config.headers) {\n config.headers = {};\n }\n\n for (const key in this.options.headers) {\n config.headers[key] = this.options.headers[key];\n }\n }\n\n if (token) {\n if (!config.headers) {\n config.headers = {};\n }\n\n if (typeof token === 'function') {\n token = await token(config);\n }\n\n if (token && typeof token === 'object') {\n token = token.toString();\n }\n\n config.headers['Authorization'] = `Bearer ${token}`;\n }\n\n return config;\n }\n}\n"]} |
@@ -17,5 +17,5 @@ import { ILogger, ILoggerOptions, LogLevel } from './logger.mjs'; | ||
| log(level: LogLevel, ...msg: any[]): void; | ||
| child(name: string, overrideOptions?: ILoggerOptions): ConsoleLogger; | ||
| child(name: string, overrideOptions?: ILoggerOptions): ILogger; | ||
| } | ||
| export { ConsoleLogger }; |
@@ -17,5 +17,5 @@ import { ILogger, ILoggerOptions, LogLevel } from './logger.js'; | ||
| log(level: LogLevel, ...msg: any[]): void; | ||
| child(name: string, overrideOptions?: ILoggerOptions): ConsoleLogger; | ||
| child(name: string, overrideOptions?: ILoggerOptions): ILogger; | ||
| } | ||
| export { ConsoleLogger }; |
@@ -138,3 +138,5 @@ 'use strict'; | ||
| const optimizedInclusions = allInclusions.includes("*") ? ["*"] : allInclusions; | ||
| const allExclusions = [.../* @__PURE__ */ new Set([...parent.exclusions, ...child.exclusions])]; | ||
| const allExclusions = [ | ||
| .../* @__PURE__ */ new Set([...parent.exclusions, ...child.exclusions]) | ||
| ]; | ||
| const inclusionStrings = optimizedInclusions; | ||
@@ -141,0 +143,0 @@ const exclusionStrings = allExclusions.map((e) => "-" + e); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/logging/console.ts"],"names":["ANSI"],"mappings":"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","file":"console.js","sourcesContent":["import { ANSI } from './ansi';\nimport { ILogger, ILoggerOptions, LogLevel } from './logger';\n\nexport class ConsoleLogger implements ILogger {\n readonly loggerOptions: ILoggerOptions;\n\n protected readonly name: string;\n protected readonly level: LogLevel;\n\n private readonly _enabled: boolean;\n private readonly _levels = {\n error: 100,\n warn: 200,\n info: 300,\n debug: 400,\n trace: 500,\n };\n\n private readonly _colors = {\n error: ANSI.ForegroundRed,\n warn: ANSI.ForegroundYellow,\n info: ANSI.ForegroundCyan,\n debug: ANSI.ForegroundMagenta,\n trace: ANSI.BackgroundBlue\n };\n\n constructor(name: string, options?: ILoggerOptions) {\n this.name = name;\n\n const env = typeof process === 'undefined' ? undefined : process.env;\n const logNamePattern = env?.LOG || options?.pattern || '*';\n this._enabled = parseMagicExpr(logNamePattern).test(name);\n this.level = parseLogLevel(env?.LOG_LEVEL) || options?.level || 'info';\n this.loggerOptions = options ?? {\n level: this.level,\n pattern: logNamePattern,\n };\n }\n\n error(...msg: any[]) {\n this.log('error', ...msg);\n }\n\n warn(...msg: any[]) {\n this.log('warn', ...msg);\n }\n\n info(...msg: any[]) {\n this.log('info', ...msg);\n }\n\n debug(...msg: any[]) {\n this.log('debug', ...msg);\n }\n\n trace(...msg: any[]) {\n this.log('trace', ...msg);\n }\n\n log(level: LogLevel, ...msg: any[]) {\n if (!this._enabled) {\n return;\n }\n\n if (this._levels[level] > this._levels[this.level]) {\n return;\n }\n\n const prefix = [this._colors[level], ANSI.Bold, `[${level.toUpperCase()}]`];\n const name = [this.name, ANSI.ForegroundReset, ANSI.BoldReset];\n\n for (const m of msg) {\n let text = new String(m);\n\n if (typeof m === 'object') {\n text = JSON.stringify(m, null, 2);\n }\n\n for (const line of text.split('\\n')) {\n console[level](prefix.join(''), name.join(''), line);\n }\n }\n }\n\n child(name: string, overrideOptions?: ILoggerOptions) {\n const mergedPattern = mergePatterns(\n this.loggerOptions.pattern,\n overrideOptions?.pattern\n );\n\n return new ConsoleLogger(`${this.name}/${name}`, {\n ...this.loggerOptions,\n ...overrideOptions,\n pattern: mergedPattern\n });\n }\n}\n\nfunction parsePatternString(pattern: string): { inclusions: string[]; exclusions: string[] } {\n const patterns = pattern.split(',').map(p => p.trim());\n const inclusions: string[] = [];\n const exclusions: string[] = [];\n\n for (const p of patterns) {\n if (p.startsWith('-')) {\n exclusions.push(p.substring(1));\n } else {\n inclusions.push(p);\n }\n }\n\n return { inclusions, exclusions };\n}\n\nfunction parseMagicExpr(pattern: string) {\n const { inclusions: inclusionPatterns, exclusions: exclusionPatterns } = parsePatternString(pattern);\n\n const inclusions: RegExp[] = inclusionPatterns.map(p => patternToRegex(p));\n const exclusions: RegExp[] = exclusionPatterns.map(p => patternToRegex(p));\n\n // If only exclusions specified, implicitly include everything\n if (inclusions.length === 0 && exclusions.length > 0) {\n inclusions.push(/.*/);\n }\n\n return {\n test: (name: string) => {\n // Check if name matches any inclusion pattern\n const matchesInclusion = inclusions.some(regex => regex.test(name));\n if (!matchesInclusion) return false;\n\n // Check if name matches any exclusion pattern\n const matchesExclusion = exclusions.some(regex => regex.test(name));\n\n // Must match inclusion AND not match any exclusion\n return !matchesExclusion;\n }\n };\n}\n\nfunction patternToRegex(pattern: string): RegExp {\n let res = '';\n const parts = pattern.split('*');\n\n for (let i = 0; i < parts.length; i++) {\n if (i > 0) {\n res += '.*';\n }\n\n res += parts[i];\n }\n\n return new RegExp(res);\n}\n\nfunction mergePatterns(parentPattern?: string, childPattern?: string): string {\n if (!parentPattern && !childPattern) {\n return '*';\n }\n\n if (!parentPattern) {\n return childPattern!;\n }\n\n if (!childPattern) {\n return parentPattern;\n }\n\n const parent = parsePatternString(parentPattern);\n const child = parsePatternString(childPattern);\n\n // Combine and deduplicate inclusions\n let allInclusions = [...new Set([...parent.inclusions, ...child.inclusions])];\n\n // If only exclusions specified, implicitly include everything\n if (allInclusions.length === 0) {\n allInclusions = ['*'];\n }\n\n // Optimize: If '*' exists, it matches everything, so remove other inclusions\n const optimizedInclusions = allInclusions.includes('*') ? ['*'] : allInclusions;\n\n // Combine and deduplicate exclusions\n const allExclusions = [...new Set([...parent.exclusions, ...child.exclusions])];\n\n // Build merged pattern: combine inclusions and exclusions\n const inclusionStrings = optimizedInclusions;\n const exclusionStrings = allExclusions.map(e => '-' + e);\n const allPatterns = [...inclusionStrings, ...exclusionStrings];\n\n return allPatterns.join(',');\n}\n\nfunction parseLogLevel(level?: string): LogLevel | undefined {\n const value = level?.toLowerCase();\n switch (value) {\n case 'error':\n case 'warn':\n case 'info':\n case 'debug':\n case 'trace':\n return value;\n default:\n return undefined;\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/logging/console.ts"],"names":["ANSI"],"mappings":"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","file":"console.js","sourcesContent":["import { ANSI } from './ansi';\n\nimport type { ILogger, ILoggerOptions, LogLevel } from './logger';\n\nexport class ConsoleLogger implements ILogger {\n readonly loggerOptions: ILoggerOptions;\n\n protected readonly name: string;\n protected readonly level: LogLevel;\n\n private readonly _enabled: boolean;\n private readonly _levels = {\n error: 100,\n warn: 200,\n info: 300,\n debug: 400,\n trace: 500,\n };\n\n private readonly _colors = {\n error: ANSI.ForegroundRed,\n warn: ANSI.ForegroundYellow,\n info: ANSI.ForegroundCyan,\n debug: ANSI.ForegroundMagenta,\n trace: ANSI.BackgroundBlue\n };\n\n constructor(name: string, options?: ILoggerOptions) {\n this.name = name;\n\n const env = typeof process === 'undefined' ? undefined : process.env;\n const logNamePattern = env?.LOG || options?.pattern || '*';\n this._enabled = parseMagicExpr(logNamePattern).test(name);\n this.level = parseLogLevel(env?.LOG_LEVEL) || options?.level || 'info';\n this.loggerOptions = options ?? {\n level: this.level,\n pattern: logNamePattern,\n };\n }\n\n error(...msg: any[]): void {\n this.log('error', ...msg);\n }\n\n warn(...msg: any[]): void {\n this.log('warn', ...msg);\n }\n\n info(...msg: any[]): void {\n this.log('info', ...msg);\n }\n\n debug(...msg: any[]): void {\n this.log('debug', ...msg);\n }\n\n trace(...msg: any[]): void {\n this.log('trace', ...msg);\n }\n\n log(level: LogLevel, ...msg: any[]): void {\n if (!this._enabled) {\n return;\n }\n\n if (this._levels[level] > this._levels[this.level]) {\n return;\n }\n\n const prefix = [this._colors[level], ANSI.Bold, `[${level.toUpperCase()}]`];\n const name = [this.name, ANSI.ForegroundReset, ANSI.BoldReset];\n\n for (const m of msg) {\n let text = new String(m);\n\n if (typeof m === 'object') {\n text = JSON.stringify(m, null, 2);\n }\n\n for (const line of text.split('\\n')) {\n console[level](prefix.join(''), name.join(''), line);\n }\n }\n }\n\n child(name: string, overrideOptions?: ILoggerOptions): ILogger {\n const mergedPattern = mergePatterns(\n this.loggerOptions.pattern,\n overrideOptions?.pattern\n );\n\n return new ConsoleLogger(`${this.name}/${name}`, {\n ...this.loggerOptions,\n ...overrideOptions,\n pattern: mergedPattern\n });\n }\n}\n\nfunction parsePatternString(pattern: string): {\n inclusions: string[];\n exclusions: string[];\n} {\n const patterns = pattern.split(',').map((p) => p.trim());\n const inclusions: string[] = [];\n const exclusions: string[] = [];\n\n for (const p of patterns) {\n if (p.startsWith('-')) {\n exclusions.push(p.substring(1));\n } else {\n inclusions.push(p);\n }\n }\n\n return { inclusions, exclusions };\n}\n\nfunction parseMagicExpr(pattern: string): { test: (name: string) => boolean } {\n const { inclusions: inclusionPatterns, exclusions: exclusionPatterns } =\n parsePatternString(pattern);\n\n const inclusions: RegExp[] = inclusionPatterns.map(p => patternToRegex(p));\n const exclusions: RegExp[] = exclusionPatterns.map(p => patternToRegex(p));\n\n // If only exclusions specified, implicitly include everything\n if (inclusions.length === 0 && exclusions.length > 0) {\n inclusions.push(/.*/);\n }\n\n return {\n test: (name: string) => {\n // Check if name matches any inclusion pattern\n const matchesInclusion = inclusions.some((regex) => regex.test(name));\n if (!matchesInclusion) return false;\n\n // Check if name matches any exclusion pattern\n const matchesExclusion = exclusions.some((regex) => regex.test(name));\n\n // Must match inclusion AND not match any exclusion\n return !matchesExclusion;\n },\n };\n}\n\nfunction patternToRegex(pattern: string): RegExp {\n let res = '';\n const parts = pattern.split('*');\n\n for (let i = 0; i < parts.length; i++) {\n if (i > 0) {\n res += '.*';\n }\n\n res += parts[i];\n }\n\n return new RegExp(res);\n}\n\nfunction mergePatterns(parentPattern?: string, childPattern?: string): string {\n if (!parentPattern && !childPattern) {\n return '*';\n }\n\n if (!parentPattern) {\n return childPattern!;\n }\n\n if (!childPattern) {\n return parentPattern;\n }\n\n const parent = parsePatternString(parentPattern);\n const child = parsePatternString(childPattern);\n\n // Combine and deduplicate inclusions\n let allInclusions = [...new Set([...parent.inclusions, ...child.inclusions])];\n\n // If only exclusions specified, implicitly include everything\n if (allInclusions.length === 0) {\n allInclusions = ['*'];\n }\n\n // Optimize: If '*' exists, it matches everything, so remove other inclusions\n const optimizedInclusions = allInclusions.includes('*')\n ? ['*']\n : allInclusions;\n\n // Combine and deduplicate exclusions\n const allExclusions = [\n ...new Set([...parent.exclusions, ...child.exclusions]),\n ];\n\n // Build merged pattern: combine inclusions and exclusions\n const inclusionStrings = optimizedInclusions;\n const exclusionStrings = allExclusions.map(e => '-' + e);\n const allPatterns = [...inclusionStrings, ...exclusionStrings];\n\n return allPatterns.join(',');\n}\n\nfunction parseLogLevel(level?: string): LogLevel | undefined {\n const value = level?.toLowerCase();\n switch (value) {\n case 'error':\n case 'warn':\n case 'info':\n case 'debug':\n case 'trace':\n return value;\n default:\n return undefined;\n }\n}\n"]} |
@@ -136,3 +136,5 @@ import { ANSI } from './ansi.mjs'; | ||
| const optimizedInclusions = allInclusions.includes("*") ? ["*"] : allInclusions; | ||
| const allExclusions = [.../* @__PURE__ */ new Set([...parent.exclusions, ...child.exclusions])]; | ||
| const allExclusions = [ | ||
| .../* @__PURE__ */ new Set([...parent.exclusions, ...child.exclusions]) | ||
| ]; | ||
| const inclusionStrings = optimizedInclusions; | ||
@@ -139,0 +141,0 @@ const exclusionStrings = allExclusions.map((e) => "-" + e); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/logging/console.ts"],"names":[],"mappings":"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","file":"console.mjs","sourcesContent":["import { ANSI } from './ansi';\nimport { ILogger, ILoggerOptions, LogLevel } from './logger';\n\nexport class ConsoleLogger implements ILogger {\n readonly loggerOptions: ILoggerOptions;\n\n protected readonly name: string;\n protected readonly level: LogLevel;\n\n private readonly _enabled: boolean;\n private readonly _levels = {\n error: 100,\n warn: 200,\n info: 300,\n debug: 400,\n trace: 500,\n };\n\n private readonly _colors = {\n error: ANSI.ForegroundRed,\n warn: ANSI.ForegroundYellow,\n info: ANSI.ForegroundCyan,\n debug: ANSI.ForegroundMagenta,\n trace: ANSI.BackgroundBlue\n };\n\n constructor(name: string, options?: ILoggerOptions) {\n this.name = name;\n\n const env = typeof process === 'undefined' ? undefined : process.env;\n const logNamePattern = env?.LOG || options?.pattern || '*';\n this._enabled = parseMagicExpr(logNamePattern).test(name);\n this.level = parseLogLevel(env?.LOG_LEVEL) || options?.level || 'info';\n this.loggerOptions = options ?? {\n level: this.level,\n pattern: logNamePattern,\n };\n }\n\n error(...msg: any[]) {\n this.log('error', ...msg);\n }\n\n warn(...msg: any[]) {\n this.log('warn', ...msg);\n }\n\n info(...msg: any[]) {\n this.log('info', ...msg);\n }\n\n debug(...msg: any[]) {\n this.log('debug', ...msg);\n }\n\n trace(...msg: any[]) {\n this.log('trace', ...msg);\n }\n\n log(level: LogLevel, ...msg: any[]) {\n if (!this._enabled) {\n return;\n }\n\n if (this._levels[level] > this._levels[this.level]) {\n return;\n }\n\n const prefix = [this._colors[level], ANSI.Bold, `[${level.toUpperCase()}]`];\n const name = [this.name, ANSI.ForegroundReset, ANSI.BoldReset];\n\n for (const m of msg) {\n let text = new String(m);\n\n if (typeof m === 'object') {\n text = JSON.stringify(m, null, 2);\n }\n\n for (const line of text.split('\\n')) {\n console[level](prefix.join(''), name.join(''), line);\n }\n }\n }\n\n child(name: string, overrideOptions?: ILoggerOptions) {\n const mergedPattern = mergePatterns(\n this.loggerOptions.pattern,\n overrideOptions?.pattern\n );\n\n return new ConsoleLogger(`${this.name}/${name}`, {\n ...this.loggerOptions,\n ...overrideOptions,\n pattern: mergedPattern\n });\n }\n}\n\nfunction parsePatternString(pattern: string): { inclusions: string[]; exclusions: string[] } {\n const patterns = pattern.split(',').map(p => p.trim());\n const inclusions: string[] = [];\n const exclusions: string[] = [];\n\n for (const p of patterns) {\n if (p.startsWith('-')) {\n exclusions.push(p.substring(1));\n } else {\n inclusions.push(p);\n }\n }\n\n return { inclusions, exclusions };\n}\n\nfunction parseMagicExpr(pattern: string) {\n const { inclusions: inclusionPatterns, exclusions: exclusionPatterns } = parsePatternString(pattern);\n\n const inclusions: RegExp[] = inclusionPatterns.map(p => patternToRegex(p));\n const exclusions: RegExp[] = exclusionPatterns.map(p => patternToRegex(p));\n\n // If only exclusions specified, implicitly include everything\n if (inclusions.length === 0 && exclusions.length > 0) {\n inclusions.push(/.*/);\n }\n\n return {\n test: (name: string) => {\n // Check if name matches any inclusion pattern\n const matchesInclusion = inclusions.some(regex => regex.test(name));\n if (!matchesInclusion) return false;\n\n // Check if name matches any exclusion pattern\n const matchesExclusion = exclusions.some(regex => regex.test(name));\n\n // Must match inclusion AND not match any exclusion\n return !matchesExclusion;\n }\n };\n}\n\nfunction patternToRegex(pattern: string): RegExp {\n let res = '';\n const parts = pattern.split('*');\n\n for (let i = 0; i < parts.length; i++) {\n if (i > 0) {\n res += '.*';\n }\n\n res += parts[i];\n }\n\n return new RegExp(res);\n}\n\nfunction mergePatterns(parentPattern?: string, childPattern?: string): string {\n if (!parentPattern && !childPattern) {\n return '*';\n }\n\n if (!parentPattern) {\n return childPattern!;\n }\n\n if (!childPattern) {\n return parentPattern;\n }\n\n const parent = parsePatternString(parentPattern);\n const child = parsePatternString(childPattern);\n\n // Combine and deduplicate inclusions\n let allInclusions = [...new Set([...parent.inclusions, ...child.inclusions])];\n\n // If only exclusions specified, implicitly include everything\n if (allInclusions.length === 0) {\n allInclusions = ['*'];\n }\n\n // Optimize: If '*' exists, it matches everything, so remove other inclusions\n const optimizedInclusions = allInclusions.includes('*') ? ['*'] : allInclusions;\n\n // Combine and deduplicate exclusions\n const allExclusions = [...new Set([...parent.exclusions, ...child.exclusions])];\n\n // Build merged pattern: combine inclusions and exclusions\n const inclusionStrings = optimizedInclusions;\n const exclusionStrings = allExclusions.map(e => '-' + e);\n const allPatterns = [...inclusionStrings, ...exclusionStrings];\n\n return allPatterns.join(',');\n}\n\nfunction parseLogLevel(level?: string): LogLevel | undefined {\n const value = level?.toLowerCase();\n switch (value) {\n case 'error':\n case 'warn':\n case 'info':\n case 'debug':\n case 'trace':\n return value;\n default:\n return undefined;\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/logging/console.ts"],"names":[],"mappings":"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","file":"console.mjs","sourcesContent":["import { ANSI } from './ansi';\n\nimport type { ILogger, ILoggerOptions, LogLevel } from './logger';\n\nexport class ConsoleLogger implements ILogger {\n readonly loggerOptions: ILoggerOptions;\n\n protected readonly name: string;\n protected readonly level: LogLevel;\n\n private readonly _enabled: boolean;\n private readonly _levels = {\n error: 100,\n warn: 200,\n info: 300,\n debug: 400,\n trace: 500,\n };\n\n private readonly _colors = {\n error: ANSI.ForegroundRed,\n warn: ANSI.ForegroundYellow,\n info: ANSI.ForegroundCyan,\n debug: ANSI.ForegroundMagenta,\n trace: ANSI.BackgroundBlue\n };\n\n constructor(name: string, options?: ILoggerOptions) {\n this.name = name;\n\n const env = typeof process === 'undefined' ? undefined : process.env;\n const logNamePattern = env?.LOG || options?.pattern || '*';\n this._enabled = parseMagicExpr(logNamePattern).test(name);\n this.level = parseLogLevel(env?.LOG_LEVEL) || options?.level || 'info';\n this.loggerOptions = options ?? {\n level: this.level,\n pattern: logNamePattern,\n };\n }\n\n error(...msg: any[]): void {\n this.log('error', ...msg);\n }\n\n warn(...msg: any[]): void {\n this.log('warn', ...msg);\n }\n\n info(...msg: any[]): void {\n this.log('info', ...msg);\n }\n\n debug(...msg: any[]): void {\n this.log('debug', ...msg);\n }\n\n trace(...msg: any[]): void {\n this.log('trace', ...msg);\n }\n\n log(level: LogLevel, ...msg: any[]): void {\n if (!this._enabled) {\n return;\n }\n\n if (this._levels[level] > this._levels[this.level]) {\n return;\n }\n\n const prefix = [this._colors[level], ANSI.Bold, `[${level.toUpperCase()}]`];\n const name = [this.name, ANSI.ForegroundReset, ANSI.BoldReset];\n\n for (const m of msg) {\n let text = new String(m);\n\n if (typeof m === 'object') {\n text = JSON.stringify(m, null, 2);\n }\n\n for (const line of text.split('\\n')) {\n console[level](prefix.join(''), name.join(''), line);\n }\n }\n }\n\n child(name: string, overrideOptions?: ILoggerOptions): ILogger {\n const mergedPattern = mergePatterns(\n this.loggerOptions.pattern,\n overrideOptions?.pattern\n );\n\n return new ConsoleLogger(`${this.name}/${name}`, {\n ...this.loggerOptions,\n ...overrideOptions,\n pattern: mergedPattern\n });\n }\n}\n\nfunction parsePatternString(pattern: string): {\n inclusions: string[];\n exclusions: string[];\n} {\n const patterns = pattern.split(',').map((p) => p.trim());\n const inclusions: string[] = [];\n const exclusions: string[] = [];\n\n for (const p of patterns) {\n if (p.startsWith('-')) {\n exclusions.push(p.substring(1));\n } else {\n inclusions.push(p);\n }\n }\n\n return { inclusions, exclusions };\n}\n\nfunction parseMagicExpr(pattern: string): { test: (name: string) => boolean } {\n const { inclusions: inclusionPatterns, exclusions: exclusionPatterns } =\n parsePatternString(pattern);\n\n const inclusions: RegExp[] = inclusionPatterns.map(p => patternToRegex(p));\n const exclusions: RegExp[] = exclusionPatterns.map(p => patternToRegex(p));\n\n // If only exclusions specified, implicitly include everything\n if (inclusions.length === 0 && exclusions.length > 0) {\n inclusions.push(/.*/);\n }\n\n return {\n test: (name: string) => {\n // Check if name matches any inclusion pattern\n const matchesInclusion = inclusions.some((regex) => regex.test(name));\n if (!matchesInclusion) return false;\n\n // Check if name matches any exclusion pattern\n const matchesExclusion = exclusions.some((regex) => regex.test(name));\n\n // Must match inclusion AND not match any exclusion\n return !matchesExclusion;\n },\n };\n}\n\nfunction patternToRegex(pattern: string): RegExp {\n let res = '';\n const parts = pattern.split('*');\n\n for (let i = 0; i < parts.length; i++) {\n if (i > 0) {\n res += '.*';\n }\n\n res += parts[i];\n }\n\n return new RegExp(res);\n}\n\nfunction mergePatterns(parentPattern?: string, childPattern?: string): string {\n if (!parentPattern && !childPattern) {\n return '*';\n }\n\n if (!parentPattern) {\n return childPattern!;\n }\n\n if (!childPattern) {\n return parentPattern;\n }\n\n const parent = parsePatternString(parentPattern);\n const child = parsePatternString(childPattern);\n\n // Combine and deduplicate inclusions\n let allInclusions = [...new Set([...parent.inclusions, ...child.inclusions])];\n\n // If only exclusions specified, implicitly include everything\n if (allInclusions.length === 0) {\n allInclusions = ['*'];\n }\n\n // Optimize: If '*' exists, it matches everything, so remove other inclusions\n const optimizedInclusions = allInclusions.includes('*')\n ? ['*']\n : allInclusions;\n\n // Combine and deduplicate exclusions\n const allExclusions = [\n ...new Set([...parent.exclusions, ...child.exclusions]),\n ];\n\n // Build merged pattern: combine inclusions and exclusions\n const inclusionStrings = optimizedInclusions;\n const exclusionStrings = allExclusions.map(e => '-' + e);\n const allPatterns = [...inclusionStrings, ...exclusionStrings];\n\n return allPatterns.join(',');\n}\n\nfunction parseLogLevel(level?: string): LogLevel | undefined {\n const value = level?.toLowerCase();\n switch (value) {\n case 'error':\n case 'warn':\n case 'info':\n case 'debug':\n case 'trace':\n return value;\n default:\n return undefined;\n }\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/logging/string.ts"],"names":["ANSI"],"mappings":"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","file":"string.js","sourcesContent":["import { ANSI } from './ansi';\n\ntype StringLike = {\n toString(): string;\n};\n\nexport class String implements StringLike {\n private _value: string;\n\n constructor(value = '') {\n this._value = value;\n }\n\n clear() {\n this._value = '';\n return this;\n }\n\n append(...text: StringLike[]) {\n this._value += text.join('');\n return this;\n }\n\n reset() {\n this._value += ANSI.Reset;\n return this;\n }\n\n bold(text: StringLike) {\n this._value += ANSI.Bold + text.toString() + ANSI.BoldReset;\n return this;\n }\n\n italic(text: StringLike) {\n this._value += ANSI.Italic + text.toString() + ANSI.ItalicReset;\n return this;\n }\n\n underline(text: StringLike) {\n this._value += ANSI.Underline + text.toString() + ANSI.UnderlineReset;\n return this;\n }\n\n strike(text: StringLike) {\n this._value += ANSI.Strike + text.toString() + ANSI.StrikeReset;\n return this;\n }\n\n black(text: StringLike) {\n this._value += ANSI.ForegroundBlack + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgBlack(text: StringLike) {\n this._value += ANSI.BackgroundBlack + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n red(text: StringLike) {\n this._value += ANSI.ForegroundRed + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgRed(text: StringLike) {\n this._value += ANSI.BackgroundRed + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n green(text: StringLike) {\n this._value += ANSI.ForegroundGreen + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgGreen(text: StringLike) {\n this._value += ANSI.BackgroundGreen + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n yellow(text: StringLike) {\n this._value += ANSI.ForegroundYellow + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgYellow(text: StringLike) {\n this._value += ANSI.BackgroundYellow + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n blue(text: StringLike) {\n this._value += ANSI.ForegroundBlue + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgBlue(text: StringLike) {\n this._value += ANSI.BackgroundBlue + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n magenta(text: StringLike) {\n this._value += ANSI.ForegroundMagenta + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgMagenta(text: StringLike) {\n this._value += ANSI.BackgroundMagenta + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n cyan(text: StringLike) {\n this._value += ANSI.ForegroundCyan + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgCyan(text: StringLike) {\n this._value += ANSI.BackgroundCyan + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n white(text: StringLike) {\n this._value += ANSI.ForegroundWhite + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgWhite(text: StringLike) {\n this._value += ANSI.BackgroundWhite + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n gray(text: StringLike) {\n this._value += ANSI.ForegroundGray + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n default(text: StringLike) {\n this._value += ANSI.ForegroundDefault + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgDefault(text: StringLike) {\n this._value += ANSI.BackgroundDefault + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n toString() {\n return this._value;\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/logging/string.ts"],"names":["ANSI"],"mappings":";;;;AAMO,MAAM,MAAA,CAA6B;AAAA,EAChC,MAAA;AAAA,EAER,WAAA,CAAY,QAAQ,EAAA,EAAI;AACtB,IAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AAAA,EAChB;AAAA,EAEA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,EAAA;AACd,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAU,IAAA,EAA0B;AAClC,IAAA,IAAA,CAAK,MAAA,IAAU,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA;AAC3B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,KAAA;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAwB;AAC3B,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,IAAA,GAAO,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,SAAA;AAClD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAwB;AAC7B,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,MAAA,GAAS,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,WAAA;AACpD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAU,IAAA,EAAwB;AAChC,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,SAAA,GAAY,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,cAAA;AACvD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAwB;AAC7B,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,MAAA,GAAS,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,WAAA;AACpD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,IAAA,EAAwB;AAC5B,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAwB;AAC9B,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,IAAI,IAAA,EAAwB;AAC1B,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,aAAA,GAAgB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAC3D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,IAAA,EAAwB;AAC5B,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,aAAA,GAAgB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAC3D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,IAAA,EAAwB;AAC5B,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAwB;AAC9B,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAwB;AAC7B,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,gBAAA,GAAmB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AACjD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,SAAS,IAAA,EAAwB;AAC/B,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,gBAAA,GAAmB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AACjD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAwB;AAC3B,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAC5D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAwB;AAC7B,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAC5D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAwB;AAC9B,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAClD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAU,IAAA,EAAwB;AAChC,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAClD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAwB;AAC3B,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAC5D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAwB;AAC7B,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAC5D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,IAAA,EAAwB;AAC5B,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAwB;AAC9B,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAwB;AAC3B,IAAA,IAAA,CAAK,UAAUA,SAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAC5D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAwB;AAC9B,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAClD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAU,IAAA,EAAwB;AAChC,IAAA,IAAA,CAAK,UACHA,SAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAaA,SAAA,CAAK,eAAA;AAClD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAA,GAAmB;AACjB,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AACF","file":"string.js","sourcesContent":["import { ANSI } from './ansi';\n\ntype StringLike = {\n toString(): string;\n};\n\nexport class String implements StringLike {\n private _value: string;\n\n constructor(value = '') {\n this._value = value;\n }\n\n clear(): this {\n this._value = '';\n return this;\n }\n\n append(...text: StringLike[]): this {\n this._value += text.join('');\n return this;\n }\n\n reset(): this {\n this._value += ANSI.Reset;\n return this;\n }\n\n bold(text: StringLike): this {\n this._value += ANSI.Bold + text.toString() + ANSI.BoldReset;\n return this;\n }\n\n italic(text: StringLike): this {\n this._value += ANSI.Italic + text.toString() + ANSI.ItalicReset;\n return this;\n }\n\n underline(text: StringLike): this {\n this._value += ANSI.Underline + text.toString() + ANSI.UnderlineReset;\n return this;\n }\n\n strike(text: StringLike): this {\n this._value += ANSI.Strike + text.toString() + ANSI.StrikeReset;\n return this;\n }\n\n black(text: StringLike): this {\n this._value +=\n ANSI.ForegroundBlack + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgBlack(text: StringLike): this {\n this._value +=\n ANSI.BackgroundBlack + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n red(text: StringLike): this {\n this._value += ANSI.ForegroundRed + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgRed(text: StringLike): this {\n this._value += ANSI.BackgroundRed + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n green(text: StringLike): this {\n this._value +=\n ANSI.ForegroundGreen + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgGreen(text: StringLike): this {\n this._value +=\n ANSI.BackgroundGreen + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n yellow(text: StringLike): this {\n this._value +=\n ANSI.ForegroundYellow + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgYellow(text: StringLike): this {\n this._value +=\n ANSI.BackgroundYellow + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n blue(text: StringLike): this {\n this._value += ANSI.ForegroundBlue + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgBlue(text: StringLike): this {\n this._value += ANSI.BackgroundBlue + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n magenta(text: StringLike): this {\n this._value +=\n ANSI.ForegroundMagenta + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgMagenta(text: StringLike): this {\n this._value +=\n ANSI.BackgroundMagenta + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n cyan(text: StringLike): this {\n this._value += ANSI.ForegroundCyan + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgCyan(text: StringLike): this {\n this._value += ANSI.BackgroundCyan + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n white(text: StringLike): this {\n this._value +=\n ANSI.ForegroundWhite + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgWhite(text: StringLike): this {\n this._value +=\n ANSI.BackgroundWhite + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n gray(text: StringLike): this {\n this._value += ANSI.ForegroundGray + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n default(text: StringLike): this {\n this._value +=\n ANSI.ForegroundDefault + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgDefault(text: StringLike): this {\n this._value +=\n ANSI.BackgroundDefault + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n toString(): string {\n return this._value;\n }\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/logging/string.ts"],"names":[],"mappings":";;AAMO,MAAM,MAAA,CAA6B;AAAA,EAChC,MAAA;AAAA,EAER,WAAA,CAAY,QAAQ,EAAA,EAAI;AACtB,IAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AAAA,EAChB;AAAA,EAEA,KAAA,GAAQ;AACN,IAAA,IAAA,CAAK,MAAA,GAAS,EAAA;AACd,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAU,IAAA,EAAoB;AAC5B,IAAA,IAAA,CAAK,MAAA,IAAU,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA;AAC3B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAA,GAAQ;AACN,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,KAAA;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAkB;AACrB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,SAAA;AAClD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAkB;AACvB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,WAAA;AACpD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAU,IAAA,EAAkB;AAC1B,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,SAAA,GAAY,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,cAAA;AACvD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAkB;AACvB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,WAAA;AACpD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,IAAA,EAAkB;AACtB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC7D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAkB;AACxB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC7D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,IAAI,IAAA,EAAkB;AACpB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,aAAA,GAAgB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC3D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,IAAA,EAAkB;AACtB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,aAAA,GAAgB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC3D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,IAAA,EAAkB;AACtB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC7D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAkB;AACxB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC7D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAkB;AACvB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,gBAAA,GAAmB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC9D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,SAAS,IAAA,EAAkB;AACzB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,gBAAA,GAAmB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC9D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAkB;AACrB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC5D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAkB;AACvB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC5D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAkB;AACxB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC/D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAU,IAAA,EAAkB;AAC1B,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC/D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAkB;AACrB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC5D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAkB;AACvB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC5D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,IAAA,EAAkB;AACtB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC7D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAkB;AACxB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC7D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAkB;AACrB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC5D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAkB;AACxB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC/D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAU,IAAA,EAAkB;AAC1B,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAC/D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAA,GAAW;AACT,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AACF","file":"string.mjs","sourcesContent":["import { ANSI } from './ansi';\n\ntype StringLike = {\n toString(): string;\n};\n\nexport class String implements StringLike {\n private _value: string;\n\n constructor(value = '') {\n this._value = value;\n }\n\n clear() {\n this._value = '';\n return this;\n }\n\n append(...text: StringLike[]) {\n this._value += text.join('');\n return this;\n }\n\n reset() {\n this._value += ANSI.Reset;\n return this;\n }\n\n bold(text: StringLike) {\n this._value += ANSI.Bold + text.toString() + ANSI.BoldReset;\n return this;\n }\n\n italic(text: StringLike) {\n this._value += ANSI.Italic + text.toString() + ANSI.ItalicReset;\n return this;\n }\n\n underline(text: StringLike) {\n this._value += ANSI.Underline + text.toString() + ANSI.UnderlineReset;\n return this;\n }\n\n strike(text: StringLike) {\n this._value += ANSI.Strike + text.toString() + ANSI.StrikeReset;\n return this;\n }\n\n black(text: StringLike) {\n this._value += ANSI.ForegroundBlack + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgBlack(text: StringLike) {\n this._value += ANSI.BackgroundBlack + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n red(text: StringLike) {\n this._value += ANSI.ForegroundRed + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgRed(text: StringLike) {\n this._value += ANSI.BackgroundRed + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n green(text: StringLike) {\n this._value += ANSI.ForegroundGreen + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgGreen(text: StringLike) {\n this._value += ANSI.BackgroundGreen + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n yellow(text: StringLike) {\n this._value += ANSI.ForegroundYellow + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgYellow(text: StringLike) {\n this._value += ANSI.BackgroundYellow + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n blue(text: StringLike) {\n this._value += ANSI.ForegroundBlue + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgBlue(text: StringLike) {\n this._value += ANSI.BackgroundBlue + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n magenta(text: StringLike) {\n this._value += ANSI.ForegroundMagenta + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgMagenta(text: StringLike) {\n this._value += ANSI.BackgroundMagenta + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n cyan(text: StringLike) {\n this._value += ANSI.ForegroundCyan + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgCyan(text: StringLike) {\n this._value += ANSI.BackgroundCyan + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n white(text: StringLike) {\n this._value += ANSI.ForegroundWhite + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgWhite(text: StringLike) {\n this._value += ANSI.BackgroundWhite + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n gray(text: StringLike) {\n this._value += ANSI.ForegroundGray + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n default(text: StringLike) {\n this._value += ANSI.ForegroundDefault + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgDefault(text: StringLike) {\n this._value += ANSI.BackgroundDefault + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n toString() {\n return this._value;\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/logging/string.ts"],"names":[],"mappings":"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","file":"string.mjs","sourcesContent":["import { ANSI } from './ansi';\n\ntype StringLike = {\n toString(): string;\n};\n\nexport class String implements StringLike {\n private _value: string;\n\n constructor(value = '') {\n this._value = value;\n }\n\n clear(): this {\n this._value = '';\n return this;\n }\n\n append(...text: StringLike[]): this {\n this._value += text.join('');\n return this;\n }\n\n reset(): this {\n this._value += ANSI.Reset;\n return this;\n }\n\n bold(text: StringLike): this {\n this._value += ANSI.Bold + text.toString() + ANSI.BoldReset;\n return this;\n }\n\n italic(text: StringLike): this {\n this._value += ANSI.Italic + text.toString() + ANSI.ItalicReset;\n return this;\n }\n\n underline(text: StringLike): this {\n this._value += ANSI.Underline + text.toString() + ANSI.UnderlineReset;\n return this;\n }\n\n strike(text: StringLike): this {\n this._value += ANSI.Strike + text.toString() + ANSI.StrikeReset;\n return this;\n }\n\n black(text: StringLike): this {\n this._value +=\n ANSI.ForegroundBlack + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgBlack(text: StringLike): this {\n this._value +=\n ANSI.BackgroundBlack + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n red(text: StringLike): this {\n this._value += ANSI.ForegroundRed + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgRed(text: StringLike): this {\n this._value += ANSI.BackgroundRed + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n green(text: StringLike): this {\n this._value +=\n ANSI.ForegroundGreen + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgGreen(text: StringLike): this {\n this._value +=\n ANSI.BackgroundGreen + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n yellow(text: StringLike): this {\n this._value +=\n ANSI.ForegroundYellow + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgYellow(text: StringLike): this {\n this._value +=\n ANSI.BackgroundYellow + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n blue(text: StringLike): this {\n this._value += ANSI.ForegroundBlue + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgBlue(text: StringLike): this {\n this._value += ANSI.BackgroundBlue + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n magenta(text: StringLike): this {\n this._value +=\n ANSI.ForegroundMagenta + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgMagenta(text: StringLike): this {\n this._value +=\n ANSI.BackgroundMagenta + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n cyan(text: StringLike): this {\n this._value += ANSI.ForegroundCyan + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgCyan(text: StringLike): this {\n this._value += ANSI.BackgroundCyan + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n white(text: StringLike): this {\n this._value +=\n ANSI.ForegroundWhite + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgWhite(text: StringLike): this {\n this._value +=\n ANSI.BackgroundWhite + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n gray(text: StringLike): this {\n this._value += ANSI.ForegroundGray + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n default(text: StringLike): this {\n this._value +=\n ANSI.ForegroundDefault + text.toString() + ANSI.ForegroundReset;\n return this;\n }\n\n bgDefault(text: StringLike): this {\n this._value +=\n ANSI.BackgroundDefault + text.toString() + ANSI.BackgroundReset;\n return this;\n }\n\n toString(): string {\n return this._value;\n }\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/storage/list-local-storage.ts"],"names":[],"mappings":";;AAKO,MAAM,gBAAA,CAAqD;AAAA,EAC3C,KAAA;AAAA,EAEnB,WAAA,CAAY,IAAA,GAAY,EAAC,EAAG;AACxB,IAAA,IAAA,CAAK,KAAA,GAAQ,CAAC,GAAG,IAAI,CAAA;AAAA,EACzB;AAAA,EAEA,IAAI,GAAA,EAA4B;AAC5B,IAAA,OAAO,IAAA,CAAK,MAAM,GAAG,CAAA;AAAA,EACzB;AAAA,EAEA,GAAA,CAAI,KAAa,KAAA,EAAgB;AAC7B,IAAA,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,GAAI,KAAA;AAAA,EACtB;AAAA,EAEA,OAAO,GAAA,EAAmB;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,GAAA,EAAK,CAAC,CAAA;AAAA,EAC5B;AAAA,EAEA,KAAK,KAAA,EAAgB;AACjB,IAAA,IAAA,CAAK,KAAA,CAAM,KAAK,KAAK,CAAA;AAAA,EACzB;AAAA,EAEA,GAAA,GAAqB;AACjB,IAAA,OAAO,IAAA,CAAK,MAAM,GAAA,EAAI;AAAA,EAC1B;AAAA,EAEA,MAAA,GAAc;AACV,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,KAAK,CAAA;AAAA,EACzB;AAAA,EAEA,MAAA,GAAiB;AACb,IAAA,OAAO,KAAK,KAAA,CAAM,MAAA;AAAA,EACtB;AAAA,EAEA,MAAM,SAAA,EAAsD;AACxD,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACtC;AACJ","file":"list-local-storage.js","sourcesContent":["import { IListStorage } from './storage';\n\n/**\n * An in-memory list storage.\n */\nexport class ListLocalStorage<T = any> implements IListStorage<T> {\n protected readonly _list: T[];\n\n constructor(data: T[] = []) {\n this._list = [...data];\n }\n\n get(key: number): T | undefined {\n return this._list[key];\n }\n\n set(key: number, value: T): void {\n this._list[key] = value;\n }\n\n delete(key: number): void {\n this._list.splice(key, 1);\n }\n\n push(value: T): void {\n this._list.push(value);\n }\n\n pop(): T | undefined {\n return this._list.pop();\n }\n\n values(): T[] {\n return [...this._list];\n }\n\n length(): number {\n return this._list.length;\n }\n\n where(predicate: (value: T, index: number) => boolean): T[] {\n return this._list.filter(predicate);\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/storage/list-local-storage.ts"],"names":[],"mappings":";;AAKO,MAAM,gBAAA,CAAqD;AAAA,EAC3C,KAAA;AAAA,EAEnB,WAAA,CAAY,IAAA,GAAY,EAAC,EAAG;AACxB,IAAA,IAAA,CAAK,KAAA,GAAQ,CAAC,GAAG,IAAI,CAAA;AAAA,EACzB;AAAA,EAEA,IAAI,GAAA,EAA4B;AAC5B,IAAA,OAAO,IAAA,CAAK,MAAM,GAAG,CAAA;AAAA,EACzB;AAAA,EAEA,GAAA,CAAI,KAAa,KAAA,EAAgB;AAC7B,IAAA,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,GAAI,KAAA;AAAA,EACtB;AAAA,EAEA,OAAO,GAAA,EAAmB;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,GAAA,EAAK,CAAC,CAAA;AAAA,EAC5B;AAAA,EAEA,KAAK,KAAA,EAAgB;AACjB,IAAA,IAAA,CAAK,KAAA,CAAM,KAAK,KAAK,CAAA;AAAA,EACzB;AAAA,EAEA,GAAA,GAAqB;AACjB,IAAA,OAAO,IAAA,CAAK,MAAM,GAAA,EAAI;AAAA,EAC1B;AAAA,EAEA,MAAA,GAAc;AACV,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,KAAK,CAAA;AAAA,EACzB;AAAA,EAEA,MAAA,GAAiB;AACb,IAAA,OAAO,KAAK,KAAA,CAAM,MAAA;AAAA,EACtB;AAAA,EAEA,MAAM,SAAA,EAAsD;AACxD,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACtC;AACJ","file":"list-local-storage.js","sourcesContent":["import type { IListStorage } from './storage';\n\n/**\n * An in-memory list storage.\n */\nexport class ListLocalStorage<T = any> implements IListStorage<T> {\n protected readonly _list: T[];\n\n constructor(data: T[] = []) {\n this._list = [...data];\n }\n\n get(key: number): T | undefined {\n return this._list[key];\n }\n\n set(key: number, value: T): void {\n this._list[key] = value;\n }\n\n delete(key: number): void {\n this._list.splice(key, 1);\n }\n\n push(value: T): void {\n this._list.push(value);\n }\n\n pop(): T | undefined {\n return this._list.pop();\n }\n\n values(): T[] {\n return [...this._list];\n }\n\n length(): number {\n return this._list.length;\n }\n\n where(predicate: (value: T, index: number) => boolean): T[] {\n return this._list.filter(predicate);\n }\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/storage/list-local-storage.ts"],"names":[],"mappings":"AAKO,MAAM,gBAAA,CAAqD;AAAA,EAC3C,KAAA;AAAA,EAEnB,WAAA,CAAY,IAAA,GAAY,EAAC,EAAG;AACxB,IAAA,IAAA,CAAK,KAAA,GAAQ,CAAC,GAAG,IAAI,CAAA;AAAA,EACzB;AAAA,EAEA,IAAI,GAAA,EAA4B;AAC5B,IAAA,OAAO,IAAA,CAAK,MAAM,GAAG,CAAA;AAAA,EACzB;AAAA,EAEA,GAAA,CAAI,KAAa,KAAA,EAAgB;AAC7B,IAAA,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,GAAI,KAAA;AAAA,EACtB;AAAA,EAEA,OAAO,GAAA,EAAmB;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,GAAA,EAAK,CAAC,CAAA;AAAA,EAC5B;AAAA,EAEA,KAAK,KAAA,EAAgB;AACjB,IAAA,IAAA,CAAK,KAAA,CAAM,KAAK,KAAK,CAAA;AAAA,EACzB;AAAA,EAEA,GAAA,GAAqB;AACjB,IAAA,OAAO,IAAA,CAAK,MAAM,GAAA,EAAI;AAAA,EAC1B;AAAA,EAEA,MAAA,GAAc;AACV,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,KAAK,CAAA;AAAA,EACzB;AAAA,EAEA,MAAA,GAAiB;AACb,IAAA,OAAO,KAAK,KAAA,CAAM,MAAA;AAAA,EACtB;AAAA,EAEA,MAAM,SAAA,EAAsD;AACxD,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACtC;AACJ","file":"list-local-storage.mjs","sourcesContent":["import { IListStorage } from './storage';\n\n/**\n * An in-memory list storage.\n */\nexport class ListLocalStorage<T = any> implements IListStorage<T> {\n protected readonly _list: T[];\n\n constructor(data: T[] = []) {\n this._list = [...data];\n }\n\n get(key: number): T | undefined {\n return this._list[key];\n }\n\n set(key: number, value: T): void {\n this._list[key] = value;\n }\n\n delete(key: number): void {\n this._list.splice(key, 1);\n }\n\n push(value: T): void {\n this._list.push(value);\n }\n\n pop(): T | undefined {\n return this._list.pop();\n }\n\n values(): T[] {\n return [...this._list];\n }\n\n length(): number {\n return this._list.length;\n }\n\n where(predicate: (value: T, index: number) => boolean): T[] {\n return this._list.filter(predicate);\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/storage/list-local-storage.ts"],"names":[],"mappings":"AAKO,MAAM,gBAAA,CAAqD;AAAA,EAC3C,KAAA;AAAA,EAEnB,WAAA,CAAY,IAAA,GAAY,EAAC,EAAG;AACxB,IAAA,IAAA,CAAK,KAAA,GAAQ,CAAC,GAAG,IAAI,CAAA;AAAA,EACzB;AAAA,EAEA,IAAI,GAAA,EAA4B;AAC5B,IAAA,OAAO,IAAA,CAAK,MAAM,GAAG,CAAA;AAAA,EACzB;AAAA,EAEA,GAAA,CAAI,KAAa,KAAA,EAAgB;AAC7B,IAAA,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,GAAI,KAAA;AAAA,EACtB;AAAA,EAEA,OAAO,GAAA,EAAmB;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,GAAA,EAAK,CAAC,CAAA;AAAA,EAC5B;AAAA,EAEA,KAAK,KAAA,EAAgB;AACjB,IAAA,IAAA,CAAK,KAAA,CAAM,KAAK,KAAK,CAAA;AAAA,EACzB;AAAA,EAEA,GAAA,GAAqB;AACjB,IAAA,OAAO,IAAA,CAAK,MAAM,GAAA,EAAI;AAAA,EAC1B;AAAA,EAEA,MAAA,GAAc;AACV,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,KAAK,CAAA;AAAA,EACzB;AAAA,EAEA,MAAA,GAAiB;AACb,IAAA,OAAO,KAAK,KAAA,CAAM,MAAA;AAAA,EACtB;AAAA,EAEA,MAAM,SAAA,EAAsD;AACxD,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACtC;AACJ","file":"list-local-storage.mjs","sourcesContent":["import type { IListStorage } from './storage';\n\n/**\n * An in-memory list storage.\n */\nexport class ListLocalStorage<T = any> implements IListStorage<T> {\n protected readonly _list: T[];\n\n constructor(data: T[] = []) {\n this._list = [...data];\n }\n\n get(key: number): T | undefined {\n return this._list[key];\n }\n\n set(key: number, value: T): void {\n this._list[key] = value;\n }\n\n delete(key: number): void {\n this._list.splice(key, 1);\n }\n\n push(value: T): void {\n this._list.push(value);\n }\n\n pop(): T | undefined {\n return this._list.pop();\n }\n\n values(): T[] {\n return [...this._list];\n }\n\n length(): number {\n return this._list.length;\n }\n\n where(predicate: (value: T, index: number) => boolean): T[] {\n return this._list.filter(predicate);\n }\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/storage/local-storage.ts"],"names":[],"mappings":";;AASO,MAAM,YAAA,CAAqD;AAAA,EAC7C,MAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EAEnB,IAAI,IAAA,GAAO;AACT,IAAA,OAAO,IAAA,CAAK,KAAA;AAAA,EACd;AAAA,EAEA,IAAI,IAAA,GAAO;AACT,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,EACrB;AAAA,EAEA,YAAY,IAAA,GAA0B,EAAC,EAAG,OAAA,GAA+B,EAAC,EAAG;AAC3E,IAAA,IAAA,CAAK,SAAS,IAAI,GAAA,CAAe,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAC,CAAA;AACrD,IAAA,IAAA,CAAK,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAC7B,IAAA,IAAA,CAAK,QAAA,GAAW,OAAA;AAAA,EAClB;AAAA,EAEA,IAAI,GAAA,EAAa;AACf,IAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AACb,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,GAAG,CAAA;AAAA,EAC5B;AAAA,EAEA,GAAA,CAAI,KAAa,KAAA,EAAU;AACzB,IAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA,EAAG;AACnB,MAAA,IAAA,CAAK,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA,IACrB;AAEA,IAAA,IAAI,IAAA,CAAK,SAAS,GAAA,EAAK;AACrB,MAAA,IAAI,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,IAAA,CAAK,SAAS,GAAA,EAAK;AACzC,QAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,KAAA,EAAM;AAE3B,QAAA,IAAI,CAAA,EAAG;AACL,UAAA,IAAA,CAAK,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAAA,EAC5B;AAAA,EAEA,OAAO,GAAA,EAAa;AAClB,IAAA,MAAM,IAAI,IAAA,CAAK,KAAA,CAAM,UAAU,CAAC,CAAA,KAAM,QAAQ,CAAC,CAAA;AAE/C,IAAA,IAAI,IAAI,EAAA,EAAI;AACV,MAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,CAAA,EAAG,CAAC,CAAA;AAAA,IACxB;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,OAAO,GAAG,CAAA;AAAA,EACxB;AAAA,EAEA,QAAA,GAAW;AACT,IAAA,OAAO,IAAA,CAAK,SAAA;AAAA,MACV,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,OAAA,EAAS,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,MAAO;AAAA,QACvD,GAAA;AAAA,QACA;AAAA,OACF,CAAE,CAAA;AAAA,MACF,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEU,KAAK,GAAA,EAAa;AAC1B,IAAA,IAAI,CAAC,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,GAAG,GAAG,OAAO,KAAA;AAClC,IAAA,IAAI,IAAA,CAAK,MAAM,IAAA,CAAK,KAAA,CAAM,SAAS,CAAC,CAAA,KAAM,KAAK,OAAO,IAAA;AAEtD,IAAA,MAAM,MAAM,IAAA,CAAK,KAAA,CAAM,UAAU,CAAC,CAAA,KAAM,QAAQ,CAAC,CAAA;AAGjD,IAAA,IAAI,GAAA,GAAM,GAAG,OAAO,KAAA;AAEpB,IAAA,KAAA,IAAS,IAAI,GAAA,GAAM,CAAA,EAAG,IAAI,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AAChD,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,KAAA,CAAM,CAAA,GAAI,CAAC,CAAA;AAC5B,MAAA,IAAA,CAAK,MAAM,CAAA,GAAI,CAAC,CAAA,GAAI,IAAA,CAAK,MAAM,CAAC,CAAA;AAChC,MAAA,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA,GAAI,GAAA;AAAA,IAClB;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AACF","file":"local-storage.js","sourcesContent":["import { IStorage } from './storage';\n\nexport type LocalStorageOptions = {\n /**\n * max number of records.\n */\n readonly max?: number;\n};\n\nexport class LocalStorage<T = any> implements IStorage<string, T> {\n protected readonly _store: Map<string, T>;\n protected readonly _keys: string[];\n protected readonly _options: LocalStorageOptions;\n\n get keys() {\n return this._keys;\n }\n\n get size() {\n return this._store.size;\n }\n\n constructor(data: Record<string, T> = {}, options: LocalStorageOptions = {}) {\n this._store = new Map<string, T>(Object.entries(data));\n this._keys = Object.keys(data);\n this._options = options;\n }\n\n get(key: string) {\n this._hit(key);\n return this._store.get(key);\n }\n\n set(key: string, value: T) {\n if (!this._hit(key)) {\n this._keys.push(key);\n }\n\n if (this._options.max) {\n if (this._keys.length > this._options.max) {\n const k = this._keys.shift();\n\n if (k) {\n this._store.delete(k);\n }\n }\n }\n\n this._store.set(key, value);\n }\n\n delete(key: string) {\n const i = this._keys.findIndex((k) => key === k);\n\n if (i > -1) {\n this._keys.splice(i, 1);\n }\n\n this._store.delete(key);\n }\n\n toString() {\n return JSON.stringify(\n Array.from(this._store.entries()).map(([key, value]) => ({\n key,\n value,\n })),\n null,\n 2\n );\n }\n\n protected _hit(key: string) {\n if (!this._store.has(key)) return false;\n if (this._keys[this._keys.length - 1] === key) return true;\n\n const idx = this._keys.findIndex((k) => key === k);\n\n /* istanbul ignore next */\n if (idx < 0) return false;\n\n for (let i = idx + 1; i < this._keys.length; i++) {\n const tmp = this._keys[i - 1];\n this._keys[i - 1] = this._keys[i];\n this._keys[i] = tmp;\n }\n\n return true;\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/storage/local-storage.ts"],"names":[],"mappings":"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","file":"local-storage.js","sourcesContent":["import type { IStorage } from './storage';\n\nexport type LocalStorageOptions = {\n /**\n * max number of records.\n */\n readonly max?: number;\n};\n\nexport class LocalStorage<T = any> implements IStorage<string, T> {\n protected readonly _store: Map<string, T>;\n protected readonly _keys: string[];\n protected readonly _options: LocalStorageOptions;\n\n get keys(): string[] {\n return this._keys;\n }\n\n get size(): number {\n return this._store.size;\n }\n\n constructor(data: Record<string, T> = {}, options: LocalStorageOptions = {}) {\n this._store = new Map<string, T>(Object.entries(data));\n this._keys = Object.keys(data);\n this._options = options;\n }\n\n get(key: string): T | undefined {\n this._hit(key);\n return this._store.get(key);\n }\n\n set(key: string, value: T): void {\n if (!this._hit(key)) {\n this._keys.push(key);\n }\n\n if (this._options.max) {\n if (this._keys.length > this._options.max) {\n const k = this._keys.shift();\n\n if (k) {\n this._store.delete(k);\n }\n }\n }\n\n this._store.set(key, value);\n }\n\n delete(key: string): void {\n const i = this._keys.findIndex((k) => key === k);\n\n if (i > -1) {\n this._keys.splice(i, 1);\n }\n\n this._store.delete(key);\n }\n\n toString(): string {\n return JSON.stringify(\n Array.from(this._store.entries()).map(([key, value]) => ({\n key,\n value,\n })),\n null,\n 2,\n );\n }\n\n protected _hit(key: string): boolean {\n if (!this._store.has(key)) return false;\n if (this._keys[this._keys.length - 1] === key) return true;\n\n const idx = this._keys.findIndex((k) => key === k);\n\n /* istanbul ignore next */\n if (idx < 0) return false;\n\n for (let i = idx + 1; i < this._keys.length; i++) {\n const tmp = this._keys[i - 1];\n this._keys[i - 1] = this._keys[i];\n this._keys[i] = tmp;\n }\n\n return true;\n }\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/storage/local-storage.ts"],"names":[],"mappings":"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","file":"local-storage.mjs","sourcesContent":["import { IStorage } from './storage';\n\nexport type LocalStorageOptions = {\n /**\n * max number of records.\n */\n readonly max?: number;\n};\n\nexport class LocalStorage<T = any> implements IStorage<string, T> {\n protected readonly _store: Map<string, T>;\n protected readonly _keys: string[];\n protected readonly _options: LocalStorageOptions;\n\n get keys() {\n return this._keys;\n }\n\n get size() {\n return this._store.size;\n }\n\n constructor(data: Record<string, T> = {}, options: LocalStorageOptions = {}) {\n this._store = new Map<string, T>(Object.entries(data));\n this._keys = Object.keys(data);\n this._options = options;\n }\n\n get(key: string) {\n this._hit(key);\n return this._store.get(key);\n }\n\n set(key: string, value: T) {\n if (!this._hit(key)) {\n this._keys.push(key);\n }\n\n if (this._options.max) {\n if (this._keys.length > this._options.max) {\n const k = this._keys.shift();\n\n if (k) {\n this._store.delete(k);\n }\n }\n }\n\n this._store.set(key, value);\n }\n\n delete(key: string) {\n const i = this._keys.findIndex((k) => key === k);\n\n if (i > -1) {\n this._keys.splice(i, 1);\n }\n\n this._store.delete(key);\n }\n\n toString() {\n return JSON.stringify(\n Array.from(this._store.entries()).map(([key, value]) => ({\n key,\n value,\n })),\n null,\n 2\n );\n }\n\n protected _hit(key: string) {\n if (!this._store.has(key)) return false;\n if (this._keys[this._keys.length - 1] === key) return true;\n\n const idx = this._keys.findIndex((k) => key === k);\n\n /* istanbul ignore next */\n if (idx < 0) return false;\n\n for (let i = idx + 1; i < this._keys.length; i++) {\n const tmp = this._keys[i - 1];\n this._keys[i - 1] = this._keys[i];\n this._keys[i] = tmp;\n }\n\n return true;\n }\n}\n"]} | ||
| {"version":3,"sources":["../../src/storage/local-storage.ts"],"names":[],"mappings":"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","file":"local-storage.mjs","sourcesContent":["import type { IStorage } from './storage';\n\nexport type LocalStorageOptions = {\n /**\n * max number of records.\n */\n readonly max?: number;\n};\n\nexport class LocalStorage<T = any> implements IStorage<string, T> {\n protected readonly _store: Map<string, T>;\n protected readonly _keys: string[];\n protected readonly _options: LocalStorageOptions;\n\n get keys(): string[] {\n return this._keys;\n }\n\n get size(): number {\n return this._store.size;\n }\n\n constructor(data: Record<string, T> = {}, options: LocalStorageOptions = {}) {\n this._store = new Map<string, T>(Object.entries(data));\n this._keys = Object.keys(data);\n this._options = options;\n }\n\n get(key: string): T | undefined {\n this._hit(key);\n return this._store.get(key);\n }\n\n set(key: string, value: T): void {\n if (!this._hit(key)) {\n this._keys.push(key);\n }\n\n if (this._options.max) {\n if (this._keys.length > this._options.max) {\n const k = this._keys.shift();\n\n if (k) {\n this._store.delete(k);\n }\n }\n }\n\n this._store.set(key, value);\n }\n\n delete(key: string): void {\n const i = this._keys.findIndex((k) => key === k);\n\n if (i > -1) {\n this._keys.splice(i, 1);\n }\n\n this._store.delete(key);\n }\n\n toString(): string {\n return JSON.stringify(\n Array.from(this._store.entries()).map(([key, value]) => ({\n key,\n value,\n })),\n null,\n 2,\n );\n }\n\n protected _hit(key: string): boolean {\n if (!this._store.has(key)) return false;\n if (this._keys[this._keys.length - 1] === key) return true;\n\n const idx = this._keys.findIndex((k) => key === k);\n\n /* istanbul ignore next */\n if (idx < 0) return false;\n\n for (let i = idx + 1; i < this._keys.length; i++) {\n const tmp = this._keys[i - 1];\n this._keys[i - 1] = this._keys[i];\n this._keys[i] = tmp;\n }\n\n return true;\n }\n}\n"]} |
+2
-2
| { | ||
| "name": "@microsoft/teams.common", | ||
| "version": "2.0.11", | ||
| "version": "2.0.12", | ||
| "license": "MIT", | ||
@@ -83,3 +83,3 @@ "main": "./dist/index.js", | ||
| "devDependencies": { | ||
| "@microsoft/teams.config": "2.0.11", | ||
| "@microsoft/teams.config": "2.0.12", | ||
| "@types/jest": "^29.5.12", | ||
@@ -86,0 +86,0 @@ "jest": "^29.7.0", |
156614
1.33%1743
0.46%