@microsoft/teams.common 2.0.11 → 2.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,10 +7,10 @@ interface IEventEmitter<EventTypes = Record<string, any>> {
7
7
  }
8
8
  declare class EventEmitter<EventTypes = Record<string, any>> implements IEventEmitter<EventTypes> {
9
9
  protected index: number;
10
- protected subscriptions: Map<keyof EventTypes, {
10
+ protected subscriptions: Map<keyof EventTypes, Array<{
11
11
  readonly id: number;
12
12
  readonly handler: EventHandler;
13
- }[]>;
13
+ }>>;
14
14
  on<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number;
15
15
  once<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number;
16
16
  off(id: number): void;
@@ -7,10 +7,10 @@ interface IEventEmitter<EventTypes = Record<string, any>> {
7
7
  }
8
8
  declare class EventEmitter<EventTypes = Record<string, any>> implements IEventEmitter<EventTypes> {
9
9
  protected index: number;
10
- protected subscriptions: Map<keyof EventTypes, {
10
+ protected subscriptions: Map<keyof EventTypes, Array<{
11
11
  readonly id: number;
12
12
  readonly handler: EventHandler;
13
- }[]>;
13
+ }>>;
14
14
  on<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number;
15
15
  once<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number;
16
16
  off(id: number): void;
@@ -1 +1 @@
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"]}
1
+ {"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 @@
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"]}
1
+ {"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"]}
@@ -77,7 +77,7 @@ declare class Client {
77
77
  * Create a copy of the client
78
78
  */
79
79
  clone(options?: ClientOptions): Client;
80
- protected withConfig(config?: RequestConfig): Promise<RequestConfig<any>>;
80
+ protected withConfig(config?: RequestConfig): Promise<RequestConfig>;
81
81
  }
82
82
 
83
83
  export { Client, type ClientOptions, type RequestConfig };
@@ -77,7 +77,7 @@ declare class Client {
77
77
  * Create a copy of the client
78
78
  */
79
79
  clone(options?: ClientOptions): Client;
80
- protected withConfig(config?: RequestConfig): Promise<RequestConfig<any>>;
80
+ protected withConfig(config?: RequestConfig): Promise<RequestConfig>;
81
81
  }
82
82
 
83
83
  export { Client, type ClientOptions, type RequestConfig };
@@ -139,7 +139,9 @@ class Client {
139
139
  ...this.options,
140
140
  ...options,
141
141
  headers,
142
- interceptors: [...Array.from(this.interceptors.values()).map((i) => i.interceptor)]
142
+ interceptors: [
143
+ ...Array.from(this.interceptors.values()).map((i) => i.interceptor)
144
+ ]
143
145
  });
144
146
  }
145
147
  async withConfig(config = {}) {
@@ -1 +1 @@
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"]}
1
+ {"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"]}
@@ -133,7 +133,9 @@ class Client {
133
133
  ...this.options,
134
134
  ...options,
135
135
  headers,
136
- interceptors: [...Array.from(this.interceptors.values()).map((i) => i.interceptor)]
136
+ interceptors: [
137
+ ...Array.from(this.interceptors.values()).map((i) => i.interceptor)
138
+ ]
137
139
  });
138
140
  }
139
141
  async withConfig(config = {}) {
@@ -1 +1 @@
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"]}
1
+ {"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"]}
@@ -14,7 +14,7 @@ declare class ConsoleLogger implements ILogger {
14
14
  debug(...msg: any[]): void;
15
15
  trace(...msg: any[]): void;
16
16
  log(level: LogLevel, ...msg: any[]): void;
17
- child(name: string, overrideOptions?: ILoggerOptions): ConsoleLogger;
17
+ child(name: string, overrideOptions?: ILoggerOptions): ILogger;
18
18
  }
19
19
 
20
20
  export { ConsoleLogger };
@@ -14,7 +14,7 @@ declare class ConsoleLogger implements ILogger {
14
14
  debug(...msg: any[]): void;
15
15
  trace(...msg: any[]): void;
16
16
  log(level: LogLevel, ...msg: any[]): void;
17
- child(name: string, overrideOptions?: ILoggerOptions): ConsoleLogger;
17
+ child(name: string, overrideOptions?: ILoggerOptions): ILogger;
18
18
  }
19
19
 
20
20
  export { ConsoleLogger };
@@ -135,7 +135,9 @@ function mergePatterns(parentPattern, childPattern) {
135
135
  allInclusions = ["*"];
136
136
  }
137
137
  const optimizedInclusions = allInclusions.includes("*") ? ["*"] : allInclusions;
138
- const allExclusions = [.../* @__PURE__ */ new Set([...parent.exclusions, ...child.exclusions])];
138
+ const allExclusions = [
139
+ .../* @__PURE__ */ new Set([...parent.exclusions, ...child.exclusions])
140
+ ];
139
141
  const inclusionStrings = optimizedInclusions;
140
142
  const exclusionStrings = allExclusions.map((e) => "-" + e);
141
143
  const allPatterns = [...inclusionStrings, ...exclusionStrings];
@@ -1 +1 @@
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"]}
1
+ {"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"]}
@@ -133,7 +133,9 @@ function mergePatterns(parentPattern, childPattern) {
133
133
  allInclusions = ["*"];
134
134
  }
135
135
  const optimizedInclusions = allInclusions.includes("*") ? ["*"] : allInclusions;
136
- const allExclusions = [.../* @__PURE__ */ new Set([...parent.exclusions, ...child.exclusions])];
136
+ const allExclusions = [
137
+ .../* @__PURE__ */ new Set([...parent.exclusions, ...child.exclusions])
138
+ ];
137
139
  const inclusionStrings = optimizedInclusions;
138
140
  const exclusionStrings = allExclusions.map((e) => "-" + e);
139
141
  const allPatterns = [...inclusionStrings, ...exclusionStrings];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/logging/console.ts"],"names":[],"mappings":";;AAGO,MAAM,aAAA,CAAiC;AAAA,EACnC,aAAA;AAAA,EAEU,IAAA;AAAA,EACA,KAAA;AAAA,EAEF,QAAA;AAAA,EACA,OAAA,GAAU;AAAA,IACzB,KAAA,EAAO,GAAA;AAAA,IACP,IAAA,EAAM,GAAA;AAAA,IACN,IAAA,EAAM,GAAA;AAAA,IACN,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT;AAAA,EAEiB,OAAA,GAAU;AAAA,IACzB,OAAO,IAAA,CAAK,aAAA;AAAA,IACZ,MAAM,IAAA,CAAK,gBAAA;AAAA,IACX,MAAM,IAAA,CAAK,cAAA;AAAA,IACX,OAAO,IAAA,CAAK,iBAAA;AAAA,IACZ,OAAO,IAAA,CAAK;AAAA,GACd;AAAA,EAEA,WAAA,CAAY,MAAc,OAAA,EAA0B;AAClD,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAEZ,IAAA,MAAM,GAAA,GAAM,OAAO,OAAA,KAAY,WAAA,GAAc,SAAY,OAAA,CAAQ,GAAA;AACjE,IAAA,MAAM,cAAA,GAAiB,GAAA,EAAK,GAAA,IAAO,OAAA,EAAS,OAAA,IAAW,GAAA;AACvD,IAAA,IAAA,CAAK,QAAA,GAAW,cAAA,CAAe,cAAc,CAAA,CAAE,KAAK,IAAI,CAAA;AACxD,IAAA,IAAA,CAAK,QAAQ,aAAA,CAAc,GAAA,EAAK,SAAS,CAAA,IAAK,SAAS,KAAA,IAAS,MAAA;AAChE,IAAA,IAAA,CAAK,gBAAgB,OAAA,IAAW;AAAA,MAC9B,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,OAAA,EAAS;AAAA,KACX;AAAA,EACF;AAAA,EAEA,SAAS,GAAA,EAAY;AACnB,IAAA,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,GAAG,GAAG,CAAA;AAAA,EAC1B;AAAA,EAEA,QAAQ,GAAA,EAAY;AAClB,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,GAAG,GAAG,CAAA;AAAA,EACzB;AAAA,EAEA,QAAQ,GAAA,EAAY;AAClB,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,GAAG,GAAG,CAAA;AAAA,EACzB;AAAA,EAEA,SAAS,GAAA,EAAY;AACnB,IAAA,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,GAAG,GAAG,CAAA;AAAA,EAC1B;AAAA,EAEA,SAAS,GAAA,EAAY;AACnB,IAAA,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,GAAG,GAAG,CAAA;AAAA,EAC1B;AAAA,EAEA,GAAA,CAAI,UAAoB,GAAA,EAAY;AAClC,IAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,CAAK,QAAQ,KAAK,CAAA,GAAI,KAAK,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAA,EAAG;AAClD,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,MAAA,GAAS,CAAC,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA,EAAG,IAAA,CAAK,IAAA,EAAM,CAAA,CAAA,EAAI,KAAA,CAAM,WAAA,EAAa,CAAA,CAAA,CAAG,CAAA;AAC1E,IAAA,MAAM,OAAO,CAAC,IAAA,CAAK,MAAM,IAAA,CAAK,eAAA,EAAiB,KAAK,SAAS,CAAA;AAE7D,IAAA,KAAA,MAAW,KAAK,GAAA,EAAK;AACnB,MAAA,IAAI,IAAA,GAAO,IAAI,MAAA,CAAO,CAAC,CAAA;AAEvB,MAAA,IAAI,OAAO,MAAM,QAAA,EAAU;AACzB,QAAA,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,CAAA,EAAG,IAAA,EAAM,CAAC,CAAA;AAAA,MAClC;AAEA,MAAA,KAAA,MAAW,IAAA,IAAQ,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AACnC,QAAA,OAAA,CAAQ,KAAK,CAAA,CAAE,MAAA,CAAO,IAAA,CAAK,EAAE,GAAG,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA,EAAG,IAAI,CAAA;AAAA,MACrD;AAAA,IACF;AAAA,EACF;AAAA,EAEA,KAAA,CAAM,MAAc,eAAA,EAAkC;AACpD,IAAA,MAAM,aAAA,GAAgB,aAAA;AAAA,MACpB,KAAK,aAAA,CAAc,OAAA;AAAA,MACnB,eAAA,EAAiB;AAAA,KACnB;AAEA,IAAA,OAAO,IAAI,aAAA,CAAc,CAAA,EAAG,KAAK,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI;AAAA,MAC/C,GAAG,IAAA,CAAK,aAAA;AAAA,MACR,GAAG,eAAA;AAAA,MACH,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AACF;AAEA,SAAS,mBAAmB,OAAA,EAAiE;AAC3F,EAAA,MAAM,QAAA,GAAW,QAAQ,KAAA,CAAM,GAAG,EAAE,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,CAAE,IAAA,EAAM,CAAA;AACrD,EAAA,MAAM,aAAuB,EAAC;AAC9B,EAAA,MAAM,aAAuB,EAAC;AAE9B,EAAA,KAAA,MAAW,KAAK,QAAA,EAAU;AACxB,IAAA,IAAI,CAAA,CAAE,UAAA,CAAW,GAAG,CAAA,EAAG;AACrB,MAAA,UAAA,CAAW,IAAA,CAAK,CAAA,CAAE,SAAA,CAAU,CAAC,CAAC,CAAA;AAAA,IAChC,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,KAAK,CAAC,CAAA;AAAA,IACnB;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,YAAY,UAAA,EAAW;AAClC;AAEA,SAAS,eAAe,OAAA,EAAiB;AACvC,EAAA,MAAM,EAAE,UAAA,EAAY,iBAAA,EAAmB,YAAY,iBAAA,EAAkB,GAAI,mBAAmB,OAAO,CAAA;AAEnG,EAAA,MAAM,aAAuB,iBAAA,CAAkB,GAAA,CAAI,CAAA,CAAA,KAAK,cAAA,CAAe,CAAC,CAAC,CAAA;AACzE,EAAA,MAAM,aAAuB,iBAAA,CAAkB,GAAA,CAAI,CAAA,CAAA,KAAK,cAAA,CAAe,CAAC,CAAC,CAAA;AAGzE,EAAA,IAAI,UAAA,CAAW,MAAA,KAAW,CAAA,IAAK,UAAA,CAAW,SAAS,CAAA,EAAG;AACpD,IAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AAAA,EACtB;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,CAAC,IAAA,KAAiB;AAEtB,MAAA,MAAM,mBAAmB,UAAA,CAAW,IAAA,CAAK,WAAS,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC,CAAA;AAClE,MAAA,IAAI,CAAC,kBAAkB,OAAO,KAAA;AAG9B,MAAA,MAAM,mBAAmB,UAAA,CAAW,IAAA,CAAK,WAAS,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC,CAAA;AAGlE,MAAA,OAAO,CAAC,gBAAA;AAAA,IACV;AAAA,GACF;AACF;AAEA,SAAS,eAAe,OAAA,EAAyB;AAC/C,EAAA,IAAI,GAAA,GAAM,EAAA;AACV,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA;AAE/B,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACrC,IAAA,IAAI,IAAI,CAAA,EAAG;AACT,MAAA,GAAA,IAAO,IAAA;AAAA,IACT;AAEA,IAAA,GAAA,IAAO,MAAM,CAAC,CAAA;AAAA,EAChB;AAEA,EAAA,OAAO,IAAI,OAAO,GAAG,CAAA;AACvB;AAEA,SAAS,aAAA,CAAc,eAAwB,YAAA,EAA+B;AAC5E,EAAA,IAAI,CAAC,aAAA,IAAiB,CAAC,YAAA,EAAc;AACnC,IAAA,OAAO,GAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,MAAM,MAAA,GAAS,mBAAmB,aAAa,CAAA;AAC/C,EAAA,MAAM,KAAA,GAAQ,mBAAmB,YAAY,CAAA;AAG7C,EAAA,IAAI,aAAA,GAAgB,CAAC,mBAAG,IAAI,GAAA,CAAI,CAAC,GAAG,MAAA,CAAO,UAAA,EAAY,GAAG,KAAA,CAAM,UAAU,CAAC,CAAC,CAAA;AAG5E,EAAA,IAAI,aAAA,CAAc,WAAW,CAAA,EAAG;AAC9B,IAAA,aAAA,GAAgB,CAAC,GAAG,CAAA;AAAA,EACtB;AAGA,EAAA,MAAM,sBAAsB,aAAA,CAAc,QAAA,CAAS,GAAG,CAAA,GAAI,CAAC,GAAG,CAAA,GAAI,aAAA;AAGlE,EAAA,MAAM,aAAA,GAAgB,CAAC,mBAAG,IAAI,GAAA,CAAI,CAAC,GAAG,MAAA,CAAO,UAAA,EAAY,GAAG,KAAA,CAAM,UAAU,CAAC,CAAC,CAAA;AAG9E,EAAA,MAAM,gBAAA,GAAmB,mBAAA;AACzB,EAAA,MAAM,gBAAA,GAAmB,aAAA,CAAc,GAAA,CAAI,CAAA,CAAA,KAAK,MAAM,CAAC,CAAA;AACvD,EAAA,MAAM,WAAA,GAAc,CAAC,GAAG,gBAAA,EAAkB,GAAG,gBAAgB,CAAA;AAE7D,EAAA,OAAO,WAAA,CAAY,KAAK,GAAG,CAAA;AAC7B;AAEA,SAAS,cAAc,KAAA,EAAsC;AAC3D,EAAA,MAAM,KAAA,GAAQ,OAAO,WAAA,EAAY;AACjC,EAAA,QAAQ,KAAA;AAAO,IACb,KAAK,OAAA;AAAA,IACL,KAAK,MAAA;AAAA,IACL,KAAK,MAAA;AAAA,IACL,KAAK,OAAA;AAAA,IACL,KAAK,OAAA;AACH,MAAA,OAAO,KAAA;AAAA,IACT;AACE,MAAA,OAAO,MAAA;AAAA;AAEb","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"]}
1
+ {"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 @@
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"]}
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(): 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 @@
1
- {"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() {\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"]}
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,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,UAAU,IAAA,CAAK,KAAA;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAwB;AAC3B,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,EAAwB;AAC7B,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,EAAwB;AAChC,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,EAAwB;AAC7B,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,EAAwB;AAC5B,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAwB;AAC9B,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,IAAI,IAAA,EAAwB;AAC1B,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,EAAwB;AAC5B,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,EAAwB;AAC5B,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAwB;AAC9B,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,IAAA,EAAwB;AAC7B,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,gBAAA,GAAmB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AACjD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,SAAS,IAAA,EAAwB;AAC/B,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,gBAAA,GAAmB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AACjD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAwB;AAC3B,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,EAAwB;AAC7B,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,EAAwB;AAC9B,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAClD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAU,IAAA,EAAwB;AAChC,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAClD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAwB;AAC3B,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,EAAwB;AAC7B,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,EAAwB;AAC5B,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAQ,IAAA,EAAwB;AAC9B,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,KAAK,IAAA,EAAwB;AAC3B,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,EAAwB;AAC9B,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAClD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAU,IAAA,EAAwB;AAChC,IAAA,IAAA,CAAK,UACH,IAAA,CAAK,iBAAA,GAAoB,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,eAAA;AAClD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAA,GAAmB;AACjB,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(): 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 @@
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"]}
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 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 @@
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"]}
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 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 @@
1
- {"version":3,"sources":["../../src/storage/local-storage.ts"],"names":[],"mappings":"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","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"]}
1
+ {"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 @@
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"]}
1
+ {"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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/teams.common",
3
- "version": "2.0.11",
3
+ "version": "2.0.13",
4
4
  "license": "MIT",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -80,7 +80,7 @@
80
80
  "axios": "^1.15.2"
81
81
  },
82
82
  "devDependencies": {
83
- "@microsoft/teams.config": "2.0.11",
83
+ "@microsoft/teams.config": "2.0.13",
84
84
  "@types/jest": "^29.5.12",
85
85
  "jest": "^29.7.0",
86
86
  "rimraf": "^6.0.1",