@sdkwork/sdk-common 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"cache.cjs","sources":["../../src/utils/cache.ts"],"sourcesContent":["import type { CacheConfig, RequestConfig } from '../core/types';\nimport { DEFAULT_CACHE_CONFIG } from '../core/types';\n\nexport interface CacheStore {\n get<T>(key: string): T | null;\n set<T>(key: string, value: T, ttl?: number): void;\n has(key: string): boolean;\n delete(key: string): boolean;\n clear(): void;\n size(): number;\n}\n\ninterface CacheEntry<T> {\n value: T;\n expiresAt: number;\n}\n\nexport class MemoryCacheStore implements CacheStore {\n private cache: Map<string, CacheEntry<unknown>> = new Map();\n private maxSize: number;\n private defaultTtl: number;\n\n constructor(config: Partial<CacheConfig> = {}) {\n this.maxSize = config.maxSize ?? DEFAULT_CACHE_CONFIG.maxSize;\n this.defaultTtl = config.ttl ?? DEFAULT_CACHE_CONFIG.ttl;\n }\n\n get<T>(key: string): T | null {\n const entry = this.cache.get(key);\n \n if (!entry) {\n return null;\n }\n \n if (Date.now() > entry.expiresAt) {\n this.cache.delete(key);\n return null;\n }\n \n return entry.value as T;\n }\n\n set<T>(key: string, value: T, ttl?: number): void {\n if (this.cache.size >= this.maxSize) {\n this.evictOldest();\n }\n \n const expiresAt = Date.now() + (ttl ?? this.defaultTtl);\n this.cache.set(key, { value, expiresAt });\n }\n\n has(key: string): boolean {\n const entry = this.cache.get(key);\n if (!entry) return false;\n \n if (Date.now() > entry.expiresAt) {\n this.cache.delete(key);\n return false;\n }\n \n return true;\n }\n\n delete(key: string): boolean {\n return this.cache.delete(key);\n }\n\n clear(): void {\n this.cache.clear();\n }\n\n size(): number {\n return this.cache.size;\n }\n\n private evictOldest(): void {\n let oldestKey: string | null = null;\n let oldestTime = Infinity;\n \n for (const [key, entry] of this.cache) {\n if (entry.expiresAt < oldestTime) {\n oldestTime = entry.expiresAt;\n oldestKey = key;\n }\n }\n \n if (oldestKey) {\n this.cache.delete(oldestKey);\n }\n }\n}\n\nexport function createCacheStore(config?: Partial<CacheConfig>): CacheStore {\n return new MemoryCacheStore(config);\n}\n\nexport function generateCacheKey(config: RequestConfig): string {\n const parts = [\n config.method,\n config.url,\n JSON.stringify(config.params ?? {}),\n JSON.stringify(config.body ?? {}),\n ];\n \n return parts.join(':');\n}\n"],"names":["DEFAULT_CACHE_CONFIG"],"mappings":";;;;;;AAiBO,MAAM,iBAAuC;AAAA,EAKlD,YAAY,SAA+B,IAAI;AAJvC,qDAA8C,IAAA;AAC9C;AACA;AAGN,SAAK,UAAU,OAAO,WAAWA,MAAAA,qBAAqB;AACtD,SAAK,aAAa,OAAO,OAAOA,MAAAA,qBAAqB;AAAA,EACvD;AAAA,EAEA,IAAO,KAAuB;AAC5B,UAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;AAEhC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,QAAQ,MAAM,WAAW;AAChC,WAAK,MAAM,OAAO,GAAG;AACrB,aAAO;AAAA,IACT;AAEA,WAAO,MAAM;AAAA,EACf;AAAA,EAEA,IAAO,KAAa,OAAU,KAAoB;AAChD,QAAI,KAAK,MAAM,QAAQ,KAAK,SAAS;AACnC,WAAK,YAAA;AAAA,IACP;AAEA,UAAM,YAAY,KAAK,IAAA,KAAS,OAAO,KAAK;AAC5C,SAAK,MAAM,IAAI,KAAK,EAAE,OAAO,WAAW;AAAA,EAC1C;AAAA,EAEA,IAAI,KAAsB;AACxB,UAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;AAChC,QAAI,CAAC,MAAO,QAAO;AAEnB,QAAI,KAAK,QAAQ,MAAM,WAAW;AAChC,WAAK,MAAM,OAAO,GAAG;AACrB,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,KAAsB;AAC3B,WAAO,KAAK,MAAM,OAAO,GAAG;AAAA,EAC9B;AAAA,EAEA,QAAc;AACZ,SAAK,MAAM,MAAA;AAAA,EACb;AAAA,EAEA,OAAe;AACb,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEQ,cAAoB;AAC1B,QAAI,YAA2B;AAC/B,QAAI,aAAa;AAEjB,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO;AACrC,UAAI,MAAM,YAAY,YAAY;AAChC,qBAAa,MAAM;AACnB,oBAAY;AAAA,MACd;AAAA,IACF;AAEA,QAAI,WAAW;AACb,WAAK,MAAM,OAAO,SAAS;AAAA,IAC7B;AAAA,EACF;AACF;AAEO,SAAS,iBAAiB,QAA2C;AAC1E,SAAO,IAAI,iBAAiB,MAAM;AACpC;AAEO,SAAS,iBAAiB,QAA+B;AAC9D,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,KAAK,UAAU,OAAO,UAAU,CAAA,CAAE;AAAA,IAClC,KAAK,UAAU,OAAO,QAAQ,CAAA,CAAE;AAAA,EAAA;AAGlC,SAAO,MAAM,KAAK,GAAG;AACvB;;;;"}
1
+ {"version":3,"file":"cache.cjs","sources":["../../src/utils/cache.ts"],"sourcesContent":["import type { CacheConfig, RequestConfig } from '../core/types';\nimport { DEFAULT_CACHE_CONFIG } from '../core/types';\n\nexport interface CacheStore {\n get<T>(key: string): T | null;\n set<T>(key: string, value: T, ttl?: number): void;\n has(key: string): boolean;\n delete(key: string): boolean;\n clear(): void;\n size(): number;\n}\n\ninterface CacheEntry<T> {\n value: T;\n expiresAt: number;\n}\n\nexport class MemoryCacheStore implements CacheStore {\n private cache: Map<string, CacheEntry<unknown>> = new Map();\n private maxSize: number;\n private defaultTtl: number;\n\n constructor(config: Partial<CacheConfig> = {}) {\n this.maxSize = config.maxSize ?? DEFAULT_CACHE_CONFIG.maxSize;\n this.defaultTtl = config.ttl ?? DEFAULT_CACHE_CONFIG.ttl;\n }\n\n get<T>(key: string): T | null {\n const entry = this.cache.get(key);\n \n if (!entry) {\n return null;\n }\n \n if (Date.now() > entry.expiresAt) {\n this.cache.delete(key);\n return null;\n }\n \n return entry.value as T;\n }\n\n set<T>(key: string, value: T, ttl?: number): void {\n if (this.cache.size >= this.maxSize) {\n this.evictOldest();\n }\n \n const expiresAt = Date.now() + (ttl ?? this.defaultTtl);\n this.cache.set(key, { value, expiresAt });\n }\n\n has(key: string): boolean {\n const entry = this.cache.get(key);\n if (!entry) return false;\n \n if (Date.now() > entry.expiresAt) {\n this.cache.delete(key);\n return false;\n }\n \n return true;\n }\n\n delete(key: string): boolean {\n return this.cache.delete(key);\n }\n\n clear(): void {\n this.cache.clear();\n }\n\n size(): number {\n return this.cache.size;\n }\n\n private evictOldest(): void {\n let oldestKey: string | null = null;\n let oldestTime = Infinity;\n \n for (const [key, entry] of this.cache) {\n if (entry.expiresAt < oldestTime) {\n oldestTime = entry.expiresAt;\n oldestKey = key;\n }\n }\n \n if (oldestKey) {\n this.cache.delete(oldestKey);\n }\n }\n}\n\nexport function createCacheStore(config?: Partial<CacheConfig>): CacheStore {\n return new MemoryCacheStore(config);\n}\n\nexport function generateCacheKey(config: RequestConfig): string {\n const parts = [\n config.method,\n config.url,\n JSON.stringify(config.params ?? {}),\n JSON.stringify(config.body ?? {}),\n ];\n \n return parts.join(':');\n}\n"],"names":["DEFAULT_CACHE_CONFIG"],"mappings":";;;AAiBO,MAAM,iBAAuC;AAAA,EAC1C,4BAA8C,IAAA;AAAA,EAC9C;AAAA,EACA;AAAA,EAER,YAAY,SAA+B,IAAI;AAC7C,SAAK,UAAU,OAAO,WAAWA,MAAAA,qBAAqB;AACtD,SAAK,aAAa,OAAO,OAAOA,MAAAA,qBAAqB;AAAA,EACvD;AAAA,EAEA,IAAO,KAAuB;AAC5B,UAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;AAEhC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,QAAQ,MAAM,WAAW;AAChC,WAAK,MAAM,OAAO,GAAG;AACrB,aAAO;AAAA,IACT;AAEA,WAAO,MAAM;AAAA,EACf;AAAA,EAEA,IAAO,KAAa,OAAU,KAAoB;AAChD,QAAI,KAAK,MAAM,QAAQ,KAAK,SAAS;AACnC,WAAK,YAAA;AAAA,IACP;AAEA,UAAM,YAAY,KAAK,IAAA,KAAS,OAAO,KAAK;AAC5C,SAAK,MAAM,IAAI,KAAK,EAAE,OAAO,WAAW;AAAA,EAC1C;AAAA,EAEA,IAAI,KAAsB;AACxB,UAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;AAChC,QAAI,CAAC,MAAO,QAAO;AAEnB,QAAI,KAAK,QAAQ,MAAM,WAAW;AAChC,WAAK,MAAM,OAAO,GAAG;AACrB,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,KAAsB;AAC3B,WAAO,KAAK,MAAM,OAAO,GAAG;AAAA,EAC9B;AAAA,EAEA,QAAc;AACZ,SAAK,MAAM,MAAA;AAAA,EACb;AAAA,EAEA,OAAe;AACb,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEQ,cAAoB;AAC1B,QAAI,YAA2B;AAC/B,QAAI,aAAa;AAEjB,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO;AACrC,UAAI,MAAM,YAAY,YAAY;AAChC,qBAAa,MAAM;AACnB,oBAAY;AAAA,MACd;AAAA,IACF;AAEA,QAAI,WAAW;AACb,WAAK,MAAM,OAAO,SAAS;AAAA,IAC7B;AAAA,EACF;AACF;AAEO,SAAS,iBAAiB,QAA2C;AAC1E,SAAO,IAAI,iBAAiB,MAAM;AACpC;AAEO,SAAS,iBAAiB,QAA+B;AAC9D,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,KAAK,UAAU,OAAO,UAAU,CAAA,CAAE;AAAA,IAClC,KAAK,UAAU,OAAO,QAAQ,CAAA,CAAE;AAAA,EAAA;AAGlC,SAAO,MAAM,KAAK,GAAG;AACvB;;;;"}
@@ -1,12 +1,9 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
1
  import { DEFAULT_CACHE_CONFIG } from "../core/types.js";
5
2
  class MemoryCacheStore {
3
+ cache = /* @__PURE__ */ new Map();
4
+ maxSize;
5
+ defaultTtl;
6
6
  constructor(config = {}) {
7
- __publicField(this, "cache", /* @__PURE__ */ new Map());
8
- __publicField(this, "maxSize");
9
- __publicField(this, "defaultTtl");
10
7
  this.maxSize = config.maxSize ?? DEFAULT_CACHE_CONFIG.maxSize;
11
8
  this.defaultTtl = config.ttl ?? DEFAULT_CACHE_CONFIG.ttl;
12
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sources":["../../src/utils/cache.ts"],"sourcesContent":["import type { CacheConfig, RequestConfig } from '../core/types';\nimport { DEFAULT_CACHE_CONFIG } from '../core/types';\n\nexport interface CacheStore {\n get<T>(key: string): T | null;\n set<T>(key: string, value: T, ttl?: number): void;\n has(key: string): boolean;\n delete(key: string): boolean;\n clear(): void;\n size(): number;\n}\n\ninterface CacheEntry<T> {\n value: T;\n expiresAt: number;\n}\n\nexport class MemoryCacheStore implements CacheStore {\n private cache: Map<string, CacheEntry<unknown>> = new Map();\n private maxSize: number;\n private defaultTtl: number;\n\n constructor(config: Partial<CacheConfig> = {}) {\n this.maxSize = config.maxSize ?? DEFAULT_CACHE_CONFIG.maxSize;\n this.defaultTtl = config.ttl ?? DEFAULT_CACHE_CONFIG.ttl;\n }\n\n get<T>(key: string): T | null {\n const entry = this.cache.get(key);\n \n if (!entry) {\n return null;\n }\n \n if (Date.now() > entry.expiresAt) {\n this.cache.delete(key);\n return null;\n }\n \n return entry.value as T;\n }\n\n set<T>(key: string, value: T, ttl?: number): void {\n if (this.cache.size >= this.maxSize) {\n this.evictOldest();\n }\n \n const expiresAt = Date.now() + (ttl ?? this.defaultTtl);\n this.cache.set(key, { value, expiresAt });\n }\n\n has(key: string): boolean {\n const entry = this.cache.get(key);\n if (!entry) return false;\n \n if (Date.now() > entry.expiresAt) {\n this.cache.delete(key);\n return false;\n }\n \n return true;\n }\n\n delete(key: string): boolean {\n return this.cache.delete(key);\n }\n\n clear(): void {\n this.cache.clear();\n }\n\n size(): number {\n return this.cache.size;\n }\n\n private evictOldest(): void {\n let oldestKey: string | null = null;\n let oldestTime = Infinity;\n \n for (const [key, entry] of this.cache) {\n if (entry.expiresAt < oldestTime) {\n oldestTime = entry.expiresAt;\n oldestKey = key;\n }\n }\n \n if (oldestKey) {\n this.cache.delete(oldestKey);\n }\n }\n}\n\nexport function createCacheStore(config?: Partial<CacheConfig>): CacheStore {\n return new MemoryCacheStore(config);\n}\n\nexport function generateCacheKey(config: RequestConfig): string {\n const parts = [\n config.method,\n config.url,\n JSON.stringify(config.params ?? {}),\n JSON.stringify(config.body ?? {}),\n ];\n \n return parts.join(':');\n}\n"],"names":[],"mappings":";;;;AAiBO,MAAM,iBAAuC;AAAA,EAKlD,YAAY,SAA+B,IAAI;AAJvC,qDAA8C,IAAA;AAC9C;AACA;AAGN,SAAK,UAAU,OAAO,WAAW,qBAAqB;AACtD,SAAK,aAAa,OAAO,OAAO,qBAAqB;AAAA,EACvD;AAAA,EAEA,IAAO,KAAuB;AAC5B,UAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;AAEhC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,QAAQ,MAAM,WAAW;AAChC,WAAK,MAAM,OAAO,GAAG;AACrB,aAAO;AAAA,IACT;AAEA,WAAO,MAAM;AAAA,EACf;AAAA,EAEA,IAAO,KAAa,OAAU,KAAoB;AAChD,QAAI,KAAK,MAAM,QAAQ,KAAK,SAAS;AACnC,WAAK,YAAA;AAAA,IACP;AAEA,UAAM,YAAY,KAAK,IAAA,KAAS,OAAO,KAAK;AAC5C,SAAK,MAAM,IAAI,KAAK,EAAE,OAAO,WAAW;AAAA,EAC1C;AAAA,EAEA,IAAI,KAAsB;AACxB,UAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;AAChC,QAAI,CAAC,MAAO,QAAO;AAEnB,QAAI,KAAK,QAAQ,MAAM,WAAW;AAChC,WAAK,MAAM,OAAO,GAAG;AACrB,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,KAAsB;AAC3B,WAAO,KAAK,MAAM,OAAO,GAAG;AAAA,EAC9B;AAAA,EAEA,QAAc;AACZ,SAAK,MAAM,MAAA;AAAA,EACb;AAAA,EAEA,OAAe;AACb,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEQ,cAAoB;AAC1B,QAAI,YAA2B;AAC/B,QAAI,aAAa;AAEjB,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO;AACrC,UAAI,MAAM,YAAY,YAAY;AAChC,qBAAa,MAAM;AACnB,oBAAY;AAAA,MACd;AAAA,IACF;AAEA,QAAI,WAAW;AACb,WAAK,MAAM,OAAO,SAAS;AAAA,IAC7B;AAAA,EACF;AACF;AAEO,SAAS,iBAAiB,QAA2C;AAC1E,SAAO,IAAI,iBAAiB,MAAM;AACpC;AAEO,SAAS,iBAAiB,QAA+B;AAC9D,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,KAAK,UAAU,OAAO,UAAU,CAAA,CAAE;AAAA,IAClC,KAAK,UAAU,OAAO,QAAQ,CAAA,CAAE;AAAA,EAAA;AAGlC,SAAO,MAAM,KAAK,GAAG;AACvB;"}
1
+ {"version":3,"file":"cache.js","sources":["../../src/utils/cache.ts"],"sourcesContent":["import type { CacheConfig, RequestConfig } from '../core/types';\nimport { DEFAULT_CACHE_CONFIG } from '../core/types';\n\nexport interface CacheStore {\n get<T>(key: string): T | null;\n set<T>(key: string, value: T, ttl?: number): void;\n has(key: string): boolean;\n delete(key: string): boolean;\n clear(): void;\n size(): number;\n}\n\ninterface CacheEntry<T> {\n value: T;\n expiresAt: number;\n}\n\nexport class MemoryCacheStore implements CacheStore {\n private cache: Map<string, CacheEntry<unknown>> = new Map();\n private maxSize: number;\n private defaultTtl: number;\n\n constructor(config: Partial<CacheConfig> = {}) {\n this.maxSize = config.maxSize ?? DEFAULT_CACHE_CONFIG.maxSize;\n this.defaultTtl = config.ttl ?? DEFAULT_CACHE_CONFIG.ttl;\n }\n\n get<T>(key: string): T | null {\n const entry = this.cache.get(key);\n \n if (!entry) {\n return null;\n }\n \n if (Date.now() > entry.expiresAt) {\n this.cache.delete(key);\n return null;\n }\n \n return entry.value as T;\n }\n\n set<T>(key: string, value: T, ttl?: number): void {\n if (this.cache.size >= this.maxSize) {\n this.evictOldest();\n }\n \n const expiresAt = Date.now() + (ttl ?? this.defaultTtl);\n this.cache.set(key, { value, expiresAt });\n }\n\n has(key: string): boolean {\n const entry = this.cache.get(key);\n if (!entry) return false;\n \n if (Date.now() > entry.expiresAt) {\n this.cache.delete(key);\n return false;\n }\n \n return true;\n }\n\n delete(key: string): boolean {\n return this.cache.delete(key);\n }\n\n clear(): void {\n this.cache.clear();\n }\n\n size(): number {\n return this.cache.size;\n }\n\n private evictOldest(): void {\n let oldestKey: string | null = null;\n let oldestTime = Infinity;\n \n for (const [key, entry] of this.cache) {\n if (entry.expiresAt < oldestTime) {\n oldestTime = entry.expiresAt;\n oldestKey = key;\n }\n }\n \n if (oldestKey) {\n this.cache.delete(oldestKey);\n }\n }\n}\n\nexport function createCacheStore(config?: Partial<CacheConfig>): CacheStore {\n return new MemoryCacheStore(config);\n}\n\nexport function generateCacheKey(config: RequestConfig): string {\n const parts = [\n config.method,\n config.url,\n JSON.stringify(config.params ?? {}),\n JSON.stringify(config.body ?? {}),\n ];\n \n return parts.join(':');\n}\n"],"names":[],"mappings":";AAiBO,MAAM,iBAAuC;AAAA,EAC1C,4BAA8C,IAAA;AAAA,EAC9C;AAAA,EACA;AAAA,EAER,YAAY,SAA+B,IAAI;AAC7C,SAAK,UAAU,OAAO,WAAW,qBAAqB;AACtD,SAAK,aAAa,OAAO,OAAO,qBAAqB;AAAA,EACvD;AAAA,EAEA,IAAO,KAAuB;AAC5B,UAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;AAEhC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,QAAQ,MAAM,WAAW;AAChC,WAAK,MAAM,OAAO,GAAG;AACrB,aAAO;AAAA,IACT;AAEA,WAAO,MAAM;AAAA,EACf;AAAA,EAEA,IAAO,KAAa,OAAU,KAAoB;AAChD,QAAI,KAAK,MAAM,QAAQ,KAAK,SAAS;AACnC,WAAK,YAAA;AAAA,IACP;AAEA,UAAM,YAAY,KAAK,IAAA,KAAS,OAAO,KAAK;AAC5C,SAAK,MAAM,IAAI,KAAK,EAAE,OAAO,WAAW;AAAA,EAC1C;AAAA,EAEA,IAAI,KAAsB;AACxB,UAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;AAChC,QAAI,CAAC,MAAO,QAAO;AAEnB,QAAI,KAAK,QAAQ,MAAM,WAAW;AAChC,WAAK,MAAM,OAAO,GAAG;AACrB,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,KAAsB;AAC3B,WAAO,KAAK,MAAM,OAAO,GAAG;AAAA,EAC9B;AAAA,EAEA,QAAc;AACZ,SAAK,MAAM,MAAA;AAAA,EACb;AAAA,EAEA,OAAe;AACb,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEQ,cAAoB;AAC1B,QAAI,YAA2B;AAC/B,QAAI,aAAa;AAEjB,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO;AACrC,UAAI,MAAM,YAAY,YAAY;AAChC,qBAAa,MAAM;AACnB,oBAAY;AAAA,MACd;AAAA,IACF;AAEA,QAAI,WAAW;AACb,WAAK,MAAM,OAAO,SAAS;AAAA,IAC7B;AAAA,EACF;AACF;AAEO,SAAS,iBAAiB,QAA2C;AAC1E,SAAO,IAAI,iBAAiB,MAAM;AACpC;AAEO,SAAS,iBAAiB,QAA+B;AAC9D,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,KAAK,UAAU,OAAO,UAAU,CAAA,CAAE;AAAA,IAClC,KAAK,UAAU,OAAO,QAAQ,CAAA,CAAE;AAAA,EAAA;AAGlC,SAAO,MAAM,KAAK,GAAG;AACvB;"}
@@ -1,7 +1,4 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
3
  const LOG_LEVELS = {
7
4
  debug: 0,
@@ -11,11 +8,11 @@ const LOG_LEVELS = {
11
8
  silent: 4
12
9
  };
13
10
  class ConsoleLogger {
11
+ level;
12
+ prefix;
13
+ timestamp;
14
+ colors;
14
15
  constructor(config = {}) {
15
- __publicField(this, "level");
16
- __publicField(this, "prefix");
17
- __publicField(this, "timestamp");
18
- __publicField(this, "colors");
19
16
  this.level = config.level ?? "info";
20
17
  this.prefix = config.prefix ?? "[SDK]";
21
18
  this.timestamp = config.timestamp ?? true;
@@ -99,7 +96,7 @@ const noopLogger = {
99
96
  }
100
97
  };
101
98
  function createLogger(config) {
102
- if ((config == null ? void 0 : config.level) === "silent") {
99
+ if (config?.level === "silent") {
103
100
  return noopLogger;
104
101
  }
105
102
  return new ConsoleLogger(config);
@@ -1 +1 @@
1
- {"version":3,"file":"logger.cjs","sources":["../../src/utils/logger.ts"],"sourcesContent":["import type { LogLevel, LoggerConfig } from '../core/types';\n\nexport interface Logger {\n debug(message: string, ...args: unknown[]): void;\n info(message: string, ...args: unknown[]): void;\n warn(message: string, ...args: unknown[]): void;\n error(message: string, ...args: unknown[]): void;\n log(level: LogLevel, message: string, ...args: unknown[]): void;\n setLevel(level: LogLevel): void;\n}\n\nconst LOG_LEVELS: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n silent: 4,\n};\n\nexport class ConsoleLogger implements Logger {\n private level: LogLevel;\n private prefix: string;\n private timestamp: boolean;\n private colors: boolean;\n\n constructor(config: Partial<LoggerConfig> = {}) {\n this.level = config.level ?? 'info';\n this.prefix = config.prefix ?? '[SDK]';\n this.timestamp = config.timestamp ?? true;\n this.colors = config.colors ?? true;\n }\n\n private formatMessage(level: LogLevel, message: string): string {\n const parts: string[] = [];\n \n if (this.timestamp) {\n parts.push(new Date().toISOString());\n }\n \n parts.push(this.prefix);\n parts.push(`[${level.toUpperCase()}]`);\n parts.push(message);\n \n return parts.join(' ');\n }\n\n private getColorCode(level: LogLevel): string {\n if (!this.colors) return '';\n \n const colors: Record<LogLevel, string> = {\n debug: '\\x1b[36m',\n info: '\\x1b[32m',\n warn: '\\x1b[33m',\n error: '\\x1b[31m',\n silent: '',\n };\n \n return colors[level];\n }\n\n private getResetCode(): string {\n return this.colors ? '\\x1b[0m' : '';\n }\n\n log(level: LogLevel, message: string, ...args: unknown[]): void {\n if (LOG_LEVELS[level] < LOG_LEVELS[this.level]) {\n return;\n }\n\n const formattedMessage = this.formatMessage(level, message);\n const colorCode = this.getColorCode(level);\n const resetCode = this.getResetCode();\n\n const output = `${colorCode}${formattedMessage}${resetCode}`;\n\n switch (level) {\n case 'debug':\n console.debug(output, ...args);\n break;\n case 'info':\n console.info(output, ...args);\n break;\n case 'warn':\n console.warn(output, ...args);\n break;\n case 'error':\n console.error(output, ...args);\n break;\n }\n }\n\n debug(message: string, ...args: unknown[]): void {\n this.log('debug', message, ...args);\n }\n\n info(message: string, ...args: unknown[]): void {\n this.log('info', message, ...args);\n }\n\n warn(message: string, ...args: unknown[]): void {\n this.log('warn', message, ...args);\n }\n\n error(message: string, ...args: unknown[]): void {\n this.log('error', message, ...args);\n }\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n}\n\nexport const noopLogger: Logger = {\n debug: () => {},\n info: () => {},\n warn: () => {},\n error: () => {},\n log: () => {},\n setLevel: () => {},\n};\n\nexport function createLogger(config?: Partial<LoggerConfig>): Logger {\n if (config?.level === 'silent') {\n return noopLogger;\n }\n return new ConsoleLogger(config);\n}\n"],"names":[],"mappings":";;;;;AAWA,MAAM,aAAuC;AAAA,EAC3C,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,MAAM,cAAgC;AAAA,EAM3C,YAAY,SAAgC,IAAI;AALxC;AACA;AACA;AACA;AAGN,SAAK,QAAQ,OAAO,SAAS;AAC7B,SAAK,SAAS,OAAO,UAAU;AAC/B,SAAK,YAAY,OAAO,aAAa;AACrC,SAAK,SAAS,OAAO,UAAU;AAAA,EACjC;AAAA,EAEQ,cAAc,OAAiB,SAAyB;AAC9D,UAAM,QAAkB,CAAA;AAExB,QAAI,KAAK,WAAW;AAClB,YAAM,MAAK,oBAAI,KAAA,GAAO,aAAa;AAAA,IACrC;AAEA,UAAM,KAAK,KAAK,MAAM;AACtB,UAAM,KAAK,IAAI,MAAM,YAAA,CAAa,GAAG;AACrC,UAAM,KAAK,OAAO;AAElB,WAAO,MAAM,KAAK,GAAG;AAAA,EACvB;AAAA,EAEQ,aAAa,OAAyB;AAC5C,QAAI,CAAC,KAAK,OAAQ,QAAO;AAEzB,UAAM,SAAmC;AAAA,MACvC,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA;AAGV,WAAO,OAAO,KAAK;AAAA,EACrB;AAAA,EAEQ,eAAuB;AAC7B,WAAO,KAAK,SAAS,YAAY;AAAA,EACnC;AAAA,EAEA,IAAI,OAAiB,YAAoB,MAAuB;AAC9D,QAAI,WAAW,KAAK,IAAI,WAAW,KAAK,KAAK,GAAG;AAC9C;AAAA,IACF;AAEA,UAAM,mBAAmB,KAAK,cAAc,OAAO,OAAO;AAC1D,UAAM,YAAY,KAAK,aAAa,KAAK;AACzC,UAAM,YAAY,KAAK,aAAA;AAEvB,UAAM,SAAS,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;AAE1D,YAAQ,OAAA;AAAA,MACN,KAAK;AACH,gBAAQ,MAAM,QAAQ,GAAG,IAAI;AAC7B;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,QAAQ,GAAG,IAAI;AAC5B;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,QAAQ,GAAG,IAAI;AAC5B;AAAA,MACF,KAAK;AACH,gBAAQ,MAAM,QAAQ,GAAG,IAAI;AAC7B;AAAA,IAAA;AAAA,EAEN;AAAA,EAEA,MAAM,YAAoB,MAAuB;AAC/C,SAAK,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,EACpC;AAAA,EAEA,KAAK,YAAoB,MAAuB;AAC9C,SAAK,IAAI,QAAQ,SAAS,GAAG,IAAI;AAAA,EACnC;AAAA,EAEA,KAAK,YAAoB,MAAuB;AAC9C,SAAK,IAAI,QAAQ,SAAS,GAAG,IAAI;AAAA,EACnC;AAAA,EAEA,MAAM,YAAoB,MAAuB;AAC/C,SAAK,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,EACpC;AAAA,EAEA,SAAS,OAAuB;AAC9B,SAAK,QAAQ;AAAA,EACf;AACF;AAEO,MAAM,aAAqB;AAAA,EAChC,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,MAAM,MAAM;AAAA,EAAC;AAAA,EACb,MAAM,MAAM;AAAA,EAAC;AAAA,EACb,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,KAAK,MAAM;AAAA,EAAC;AAAA,EACZ,UAAU,MAAM;AAAA,EAAC;AACnB;AAEO,SAAS,aAAa,QAAwC;AACnE,OAAI,iCAAQ,WAAU,UAAU;AAC9B,WAAO;AAAA,EACT;AACA,SAAO,IAAI,cAAc,MAAM;AACjC;;;;"}
1
+ {"version":3,"file":"logger.cjs","sources":["../../src/utils/logger.ts"],"sourcesContent":["import type { LogLevel, LoggerConfig } from '../core/types';\n\nexport interface Logger {\n debug(message: string, ...args: unknown[]): void;\n info(message: string, ...args: unknown[]): void;\n warn(message: string, ...args: unknown[]): void;\n error(message: string, ...args: unknown[]): void;\n log(level: LogLevel, message: string, ...args: unknown[]): void;\n setLevel(level: LogLevel): void;\n}\n\nconst LOG_LEVELS: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n silent: 4,\n};\n\nexport class ConsoleLogger implements Logger {\n private level: LogLevel;\n private prefix: string;\n private timestamp: boolean;\n private colors: boolean;\n\n constructor(config: Partial<LoggerConfig> = {}) {\n this.level = config.level ?? 'info';\n this.prefix = config.prefix ?? '[SDK]';\n this.timestamp = config.timestamp ?? true;\n this.colors = config.colors ?? true;\n }\n\n private formatMessage(level: LogLevel, message: string): string {\n const parts: string[] = [];\n \n if (this.timestamp) {\n parts.push(new Date().toISOString());\n }\n \n parts.push(this.prefix);\n parts.push(`[${level.toUpperCase()}]`);\n parts.push(message);\n \n return parts.join(' ');\n }\n\n private getColorCode(level: LogLevel): string {\n if (!this.colors) return '';\n \n const colors: Record<LogLevel, string> = {\n debug: '\\x1b[36m',\n info: '\\x1b[32m',\n warn: '\\x1b[33m',\n error: '\\x1b[31m',\n silent: '',\n };\n \n return colors[level];\n }\n\n private getResetCode(): string {\n return this.colors ? '\\x1b[0m' : '';\n }\n\n log(level: LogLevel, message: string, ...args: unknown[]): void {\n if (LOG_LEVELS[level] < LOG_LEVELS[this.level]) {\n return;\n }\n\n const formattedMessage = this.formatMessage(level, message);\n const colorCode = this.getColorCode(level);\n const resetCode = this.getResetCode();\n\n const output = `${colorCode}${formattedMessage}${resetCode}`;\n\n switch (level) {\n case 'debug':\n console.debug(output, ...args);\n break;\n case 'info':\n console.info(output, ...args);\n break;\n case 'warn':\n console.warn(output, ...args);\n break;\n case 'error':\n console.error(output, ...args);\n break;\n }\n }\n\n debug(message: string, ...args: unknown[]): void {\n this.log('debug', message, ...args);\n }\n\n info(message: string, ...args: unknown[]): void {\n this.log('info', message, ...args);\n }\n\n warn(message: string, ...args: unknown[]): void {\n this.log('warn', message, ...args);\n }\n\n error(message: string, ...args: unknown[]): void {\n this.log('error', message, ...args);\n }\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n}\n\nexport const noopLogger: Logger = {\n debug: () => {},\n info: () => {},\n warn: () => {},\n error: () => {},\n log: () => {},\n setLevel: () => {},\n};\n\nexport function createLogger(config?: Partial<LoggerConfig>): Logger {\n if (config?.level === 'silent') {\n return noopLogger;\n }\n return new ConsoleLogger(config);\n}\n"],"names":[],"mappings":";;AAWA,MAAM,aAAuC;AAAA,EAC3C,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,MAAM,cAAgC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,SAAgC,IAAI;AAC9C,SAAK,QAAQ,OAAO,SAAS;AAC7B,SAAK,SAAS,OAAO,UAAU;AAC/B,SAAK,YAAY,OAAO,aAAa;AACrC,SAAK,SAAS,OAAO,UAAU;AAAA,EACjC;AAAA,EAEQ,cAAc,OAAiB,SAAyB;AAC9D,UAAM,QAAkB,CAAA;AAExB,QAAI,KAAK,WAAW;AAClB,YAAM,MAAK,oBAAI,KAAA,GAAO,aAAa;AAAA,IACrC;AAEA,UAAM,KAAK,KAAK,MAAM;AACtB,UAAM,KAAK,IAAI,MAAM,YAAA,CAAa,GAAG;AACrC,UAAM,KAAK,OAAO;AAElB,WAAO,MAAM,KAAK,GAAG;AAAA,EACvB;AAAA,EAEQ,aAAa,OAAyB;AAC5C,QAAI,CAAC,KAAK,OAAQ,QAAO;AAEzB,UAAM,SAAmC;AAAA,MACvC,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA;AAGV,WAAO,OAAO,KAAK;AAAA,EACrB;AAAA,EAEQ,eAAuB;AAC7B,WAAO,KAAK,SAAS,YAAY;AAAA,EACnC;AAAA,EAEA,IAAI,OAAiB,YAAoB,MAAuB;AAC9D,QAAI,WAAW,KAAK,IAAI,WAAW,KAAK,KAAK,GAAG;AAC9C;AAAA,IACF;AAEA,UAAM,mBAAmB,KAAK,cAAc,OAAO,OAAO;AAC1D,UAAM,YAAY,KAAK,aAAa,KAAK;AACzC,UAAM,YAAY,KAAK,aAAA;AAEvB,UAAM,SAAS,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;AAE1D,YAAQ,OAAA;AAAA,MACN,KAAK;AACH,gBAAQ,MAAM,QAAQ,GAAG,IAAI;AAC7B;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,QAAQ,GAAG,IAAI;AAC5B;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,QAAQ,GAAG,IAAI;AAC5B;AAAA,MACF,KAAK;AACH,gBAAQ,MAAM,QAAQ,GAAG,IAAI;AAC7B;AAAA,IAAA;AAAA,EAEN;AAAA,EAEA,MAAM,YAAoB,MAAuB;AAC/C,SAAK,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,EACpC;AAAA,EAEA,KAAK,YAAoB,MAAuB;AAC9C,SAAK,IAAI,QAAQ,SAAS,GAAG,IAAI;AAAA,EACnC;AAAA,EAEA,KAAK,YAAoB,MAAuB;AAC9C,SAAK,IAAI,QAAQ,SAAS,GAAG,IAAI;AAAA,EACnC;AAAA,EAEA,MAAM,YAAoB,MAAuB;AAC/C,SAAK,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,EACpC;AAAA,EAEA,SAAS,OAAuB;AAC9B,SAAK,QAAQ;AAAA,EACf;AACF;AAEO,MAAM,aAAqB;AAAA,EAChC,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,MAAM,MAAM;AAAA,EAAC;AAAA,EACb,MAAM,MAAM;AAAA,EAAC;AAAA,EACb,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,KAAK,MAAM;AAAA,EAAC;AAAA,EACZ,UAAU,MAAM;AAAA,EAAC;AACnB;AAEO,SAAS,aAAa,QAAwC;AACnE,MAAI,QAAQ,UAAU,UAAU;AAC9B,WAAO;AAAA,EACT;AACA,SAAO,IAAI,cAAc,MAAM;AACjC;;;;"}
@@ -1,6 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
1
  const LOG_LEVELS = {
5
2
  debug: 0,
6
3
  info: 1,
@@ -9,11 +6,11 @@ const LOG_LEVELS = {
9
6
  silent: 4
10
7
  };
11
8
  class ConsoleLogger {
9
+ level;
10
+ prefix;
11
+ timestamp;
12
+ colors;
12
13
  constructor(config = {}) {
13
- __publicField(this, "level");
14
- __publicField(this, "prefix");
15
- __publicField(this, "timestamp");
16
- __publicField(this, "colors");
17
14
  this.level = config.level ?? "info";
18
15
  this.prefix = config.prefix ?? "[SDK]";
19
16
  this.timestamp = config.timestamp ?? true;
@@ -97,7 +94,7 @@ const noopLogger = {
97
94
  }
98
95
  };
99
96
  function createLogger(config) {
100
- if ((config == null ? void 0 : config.level) === "silent") {
97
+ if (config?.level === "silent") {
101
98
  return noopLogger;
102
99
  }
103
100
  return new ConsoleLogger(config);
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sources":["../../src/utils/logger.ts"],"sourcesContent":["import type { LogLevel, LoggerConfig } from '../core/types';\n\nexport interface Logger {\n debug(message: string, ...args: unknown[]): void;\n info(message: string, ...args: unknown[]): void;\n warn(message: string, ...args: unknown[]): void;\n error(message: string, ...args: unknown[]): void;\n log(level: LogLevel, message: string, ...args: unknown[]): void;\n setLevel(level: LogLevel): void;\n}\n\nconst LOG_LEVELS: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n silent: 4,\n};\n\nexport class ConsoleLogger implements Logger {\n private level: LogLevel;\n private prefix: string;\n private timestamp: boolean;\n private colors: boolean;\n\n constructor(config: Partial<LoggerConfig> = {}) {\n this.level = config.level ?? 'info';\n this.prefix = config.prefix ?? '[SDK]';\n this.timestamp = config.timestamp ?? true;\n this.colors = config.colors ?? true;\n }\n\n private formatMessage(level: LogLevel, message: string): string {\n const parts: string[] = [];\n \n if (this.timestamp) {\n parts.push(new Date().toISOString());\n }\n \n parts.push(this.prefix);\n parts.push(`[${level.toUpperCase()}]`);\n parts.push(message);\n \n return parts.join(' ');\n }\n\n private getColorCode(level: LogLevel): string {\n if (!this.colors) return '';\n \n const colors: Record<LogLevel, string> = {\n debug: '\\x1b[36m',\n info: '\\x1b[32m',\n warn: '\\x1b[33m',\n error: '\\x1b[31m',\n silent: '',\n };\n \n return colors[level];\n }\n\n private getResetCode(): string {\n return this.colors ? '\\x1b[0m' : '';\n }\n\n log(level: LogLevel, message: string, ...args: unknown[]): void {\n if (LOG_LEVELS[level] < LOG_LEVELS[this.level]) {\n return;\n }\n\n const formattedMessage = this.formatMessage(level, message);\n const colorCode = this.getColorCode(level);\n const resetCode = this.getResetCode();\n\n const output = `${colorCode}${formattedMessage}${resetCode}`;\n\n switch (level) {\n case 'debug':\n console.debug(output, ...args);\n break;\n case 'info':\n console.info(output, ...args);\n break;\n case 'warn':\n console.warn(output, ...args);\n break;\n case 'error':\n console.error(output, ...args);\n break;\n }\n }\n\n debug(message: string, ...args: unknown[]): void {\n this.log('debug', message, ...args);\n }\n\n info(message: string, ...args: unknown[]): void {\n this.log('info', message, ...args);\n }\n\n warn(message: string, ...args: unknown[]): void {\n this.log('warn', message, ...args);\n }\n\n error(message: string, ...args: unknown[]): void {\n this.log('error', message, ...args);\n }\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n}\n\nexport const noopLogger: Logger = {\n debug: () => {},\n info: () => {},\n warn: () => {},\n error: () => {},\n log: () => {},\n setLevel: () => {},\n};\n\nexport function createLogger(config?: Partial<LoggerConfig>): Logger {\n if (config?.level === 'silent') {\n return noopLogger;\n }\n return new ConsoleLogger(config);\n}\n"],"names":[],"mappings":";;;AAWA,MAAM,aAAuC;AAAA,EAC3C,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,MAAM,cAAgC;AAAA,EAM3C,YAAY,SAAgC,IAAI;AALxC;AACA;AACA;AACA;AAGN,SAAK,QAAQ,OAAO,SAAS;AAC7B,SAAK,SAAS,OAAO,UAAU;AAC/B,SAAK,YAAY,OAAO,aAAa;AACrC,SAAK,SAAS,OAAO,UAAU;AAAA,EACjC;AAAA,EAEQ,cAAc,OAAiB,SAAyB;AAC9D,UAAM,QAAkB,CAAA;AAExB,QAAI,KAAK,WAAW;AAClB,YAAM,MAAK,oBAAI,KAAA,GAAO,aAAa;AAAA,IACrC;AAEA,UAAM,KAAK,KAAK,MAAM;AACtB,UAAM,KAAK,IAAI,MAAM,YAAA,CAAa,GAAG;AACrC,UAAM,KAAK,OAAO;AAElB,WAAO,MAAM,KAAK,GAAG;AAAA,EACvB;AAAA,EAEQ,aAAa,OAAyB;AAC5C,QAAI,CAAC,KAAK,OAAQ,QAAO;AAEzB,UAAM,SAAmC;AAAA,MACvC,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA;AAGV,WAAO,OAAO,KAAK;AAAA,EACrB;AAAA,EAEQ,eAAuB;AAC7B,WAAO,KAAK,SAAS,YAAY;AAAA,EACnC;AAAA,EAEA,IAAI,OAAiB,YAAoB,MAAuB;AAC9D,QAAI,WAAW,KAAK,IAAI,WAAW,KAAK,KAAK,GAAG;AAC9C;AAAA,IACF;AAEA,UAAM,mBAAmB,KAAK,cAAc,OAAO,OAAO;AAC1D,UAAM,YAAY,KAAK,aAAa,KAAK;AACzC,UAAM,YAAY,KAAK,aAAA;AAEvB,UAAM,SAAS,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;AAE1D,YAAQ,OAAA;AAAA,MACN,KAAK;AACH,gBAAQ,MAAM,QAAQ,GAAG,IAAI;AAC7B;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,QAAQ,GAAG,IAAI;AAC5B;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,QAAQ,GAAG,IAAI;AAC5B;AAAA,MACF,KAAK;AACH,gBAAQ,MAAM,QAAQ,GAAG,IAAI;AAC7B;AAAA,IAAA;AAAA,EAEN;AAAA,EAEA,MAAM,YAAoB,MAAuB;AAC/C,SAAK,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,EACpC;AAAA,EAEA,KAAK,YAAoB,MAAuB;AAC9C,SAAK,IAAI,QAAQ,SAAS,GAAG,IAAI;AAAA,EACnC;AAAA,EAEA,KAAK,YAAoB,MAAuB;AAC9C,SAAK,IAAI,QAAQ,SAAS,GAAG,IAAI;AAAA,EACnC;AAAA,EAEA,MAAM,YAAoB,MAAuB;AAC/C,SAAK,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,EACpC;AAAA,EAEA,SAAS,OAAuB;AAC9B,SAAK,QAAQ;AAAA,EACf;AACF;AAEO,MAAM,aAAqB;AAAA,EAChC,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,MAAM,MAAM;AAAA,EAAC;AAAA,EACb,MAAM,MAAM;AAAA,EAAC;AAAA,EACb,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,KAAK,MAAM;AAAA,EAAC;AAAA,EACZ,UAAU,MAAM;AAAA,EAAC;AACnB;AAEO,SAAS,aAAa,QAAwC;AACnE,OAAI,iCAAQ,WAAU,UAAU;AAC9B,WAAO;AAAA,EACT;AACA,SAAO,IAAI,cAAc,MAAM;AACjC;"}
1
+ {"version":3,"file":"logger.js","sources":["../../src/utils/logger.ts"],"sourcesContent":["import type { LogLevel, LoggerConfig } from '../core/types';\n\nexport interface Logger {\n debug(message: string, ...args: unknown[]): void;\n info(message: string, ...args: unknown[]): void;\n warn(message: string, ...args: unknown[]): void;\n error(message: string, ...args: unknown[]): void;\n log(level: LogLevel, message: string, ...args: unknown[]): void;\n setLevel(level: LogLevel): void;\n}\n\nconst LOG_LEVELS: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n silent: 4,\n};\n\nexport class ConsoleLogger implements Logger {\n private level: LogLevel;\n private prefix: string;\n private timestamp: boolean;\n private colors: boolean;\n\n constructor(config: Partial<LoggerConfig> = {}) {\n this.level = config.level ?? 'info';\n this.prefix = config.prefix ?? '[SDK]';\n this.timestamp = config.timestamp ?? true;\n this.colors = config.colors ?? true;\n }\n\n private formatMessage(level: LogLevel, message: string): string {\n const parts: string[] = [];\n \n if (this.timestamp) {\n parts.push(new Date().toISOString());\n }\n \n parts.push(this.prefix);\n parts.push(`[${level.toUpperCase()}]`);\n parts.push(message);\n \n return parts.join(' ');\n }\n\n private getColorCode(level: LogLevel): string {\n if (!this.colors) return '';\n \n const colors: Record<LogLevel, string> = {\n debug: '\\x1b[36m',\n info: '\\x1b[32m',\n warn: '\\x1b[33m',\n error: '\\x1b[31m',\n silent: '',\n };\n \n return colors[level];\n }\n\n private getResetCode(): string {\n return this.colors ? '\\x1b[0m' : '';\n }\n\n log(level: LogLevel, message: string, ...args: unknown[]): void {\n if (LOG_LEVELS[level] < LOG_LEVELS[this.level]) {\n return;\n }\n\n const formattedMessage = this.formatMessage(level, message);\n const colorCode = this.getColorCode(level);\n const resetCode = this.getResetCode();\n\n const output = `${colorCode}${formattedMessage}${resetCode}`;\n\n switch (level) {\n case 'debug':\n console.debug(output, ...args);\n break;\n case 'info':\n console.info(output, ...args);\n break;\n case 'warn':\n console.warn(output, ...args);\n break;\n case 'error':\n console.error(output, ...args);\n break;\n }\n }\n\n debug(message: string, ...args: unknown[]): void {\n this.log('debug', message, ...args);\n }\n\n info(message: string, ...args: unknown[]): void {\n this.log('info', message, ...args);\n }\n\n warn(message: string, ...args: unknown[]): void {\n this.log('warn', message, ...args);\n }\n\n error(message: string, ...args: unknown[]): void {\n this.log('error', message, ...args);\n }\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n}\n\nexport const noopLogger: Logger = {\n debug: () => {},\n info: () => {},\n warn: () => {},\n error: () => {},\n log: () => {},\n setLevel: () => {},\n};\n\nexport function createLogger(config?: Partial<LoggerConfig>): Logger {\n if (config?.level === 'silent') {\n return noopLogger;\n }\n return new ConsoleLogger(config);\n}\n"],"names":[],"mappings":"AAWA,MAAM,aAAuC;AAAA,EAC3C,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,MAAM,cAAgC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,SAAgC,IAAI;AAC9C,SAAK,QAAQ,OAAO,SAAS;AAC7B,SAAK,SAAS,OAAO,UAAU;AAC/B,SAAK,YAAY,OAAO,aAAa;AACrC,SAAK,SAAS,OAAO,UAAU;AAAA,EACjC;AAAA,EAEQ,cAAc,OAAiB,SAAyB;AAC9D,UAAM,QAAkB,CAAA;AAExB,QAAI,KAAK,WAAW;AAClB,YAAM,MAAK,oBAAI,KAAA,GAAO,aAAa;AAAA,IACrC;AAEA,UAAM,KAAK,KAAK,MAAM;AACtB,UAAM,KAAK,IAAI,MAAM,YAAA,CAAa,GAAG;AACrC,UAAM,KAAK,OAAO;AAElB,WAAO,MAAM,KAAK,GAAG;AAAA,EACvB;AAAA,EAEQ,aAAa,OAAyB;AAC5C,QAAI,CAAC,KAAK,OAAQ,QAAO;AAEzB,UAAM,SAAmC;AAAA,MACvC,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA;AAGV,WAAO,OAAO,KAAK;AAAA,EACrB;AAAA,EAEQ,eAAuB;AAC7B,WAAO,KAAK,SAAS,YAAY;AAAA,EACnC;AAAA,EAEA,IAAI,OAAiB,YAAoB,MAAuB;AAC9D,QAAI,WAAW,KAAK,IAAI,WAAW,KAAK,KAAK,GAAG;AAC9C;AAAA,IACF;AAEA,UAAM,mBAAmB,KAAK,cAAc,OAAO,OAAO;AAC1D,UAAM,YAAY,KAAK,aAAa,KAAK;AACzC,UAAM,YAAY,KAAK,aAAA;AAEvB,UAAM,SAAS,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;AAE1D,YAAQ,OAAA;AAAA,MACN,KAAK;AACH,gBAAQ,MAAM,QAAQ,GAAG,IAAI;AAC7B;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,QAAQ,GAAG,IAAI;AAC5B;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,QAAQ,GAAG,IAAI;AAC5B;AAAA,MACF,KAAK;AACH,gBAAQ,MAAM,QAAQ,GAAG,IAAI;AAC7B;AAAA,IAAA;AAAA,EAEN;AAAA,EAEA,MAAM,YAAoB,MAAuB;AAC/C,SAAK,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,EACpC;AAAA,EAEA,KAAK,YAAoB,MAAuB;AAC9C,SAAK,IAAI,QAAQ,SAAS,GAAG,IAAI;AAAA,EACnC;AAAA,EAEA,KAAK,YAAoB,MAAuB;AAC9C,SAAK,IAAI,QAAQ,SAAS,GAAG,IAAI;AAAA,EACnC;AAAA,EAEA,MAAM,YAAoB,MAAuB;AAC/C,SAAK,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,EACpC;AAAA,EAEA,SAAS,OAAuB;AAC9B,SAAK,QAAQ;AAAA,EACf;AACF;AAEO,MAAM,aAAqB;AAAA,EAChC,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,MAAM,MAAM;AAAA,EAAC;AAAA,EACb,MAAM,MAAM;AAAA,EAAC;AAAA,EACb,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,KAAK,MAAM;AAAA,EAAC;AAAA,EACZ,UAAU,MAAM;AAAA,EAAC;AACnB;AAEO,SAAS,aAAa,QAAwC;AACnE,MAAI,QAAQ,UAAU,UAAU;AAC9B,WAAO;AAAA,EACT;AACA,SAAO,IAAI,cAAc,MAAM;AACjC;"}
@@ -31,23 +31,23 @@ exports.StringUtils = void 0;
31
31
  }
32
32
  StringUtils2.isNotBlank = isNotBlank;
33
33
  function trim(value) {
34
- return (value == null ? void 0 : value.trim()) ?? "";
34
+ return value?.trim() ?? "";
35
35
  }
36
36
  StringUtils2.trim = trim;
37
37
  function trimStart(value) {
38
- return (value == null ? void 0 : value.trimStart()) ?? "";
38
+ return value?.trimStart() ?? "";
39
39
  }
40
40
  StringUtils2.trimStart = trimStart;
41
41
  function trimEnd(value) {
42
- return (value == null ? void 0 : value.trimEnd()) ?? "";
42
+ return value?.trimEnd() ?? "";
43
43
  }
44
44
  StringUtils2.trimEnd = trimEnd;
45
45
  function toLowerCase(value) {
46
- return (value == null ? void 0 : value.toLowerCase()) ?? "";
46
+ return value?.toLowerCase() ?? "";
47
47
  }
48
48
  StringUtils2.toLowerCase = toLowerCase;
49
49
  function toUpperCase(value) {
50
- return (value == null ? void 0 : value.toUpperCase()) ?? "";
50
+ return value?.toUpperCase() ?? "";
51
51
  }
52
52
  StringUtils2.toUpperCase = toUpperCase;
53
53
  function capitalize(value) {
@@ -98,11 +98,11 @@ exports.StringUtils = void 0;
98
98
  }
99
99
  StringUtils2.truncateWords = truncateWords;
100
100
  function padStart(value, length, padChar = " ") {
101
- return (value == null ? void 0 : value.padStart(length, padChar)) ?? "";
101
+ return value?.padStart(length, padChar) ?? "";
102
102
  }
103
103
  StringUtils2.padStart = padStart;
104
104
  function padEnd(value, length, padChar = " ") {
105
- return (value == null ? void 0 : value.padEnd(length, padChar)) ?? "";
105
+ return value?.padEnd(length, padChar) ?? "";
106
106
  }
107
107
  StringUtils2.padEnd = padEnd;
108
108
  function repeat(value, count) {
@@ -116,27 +116,27 @@ exports.StringUtils = void 0;
116
116
  }
117
117
  StringUtils2.reverse = reverse;
118
118
  function startsWith(value, prefix) {
119
- return (value == null ? void 0 : value.startsWith(prefix)) ?? false;
119
+ return value?.startsWith(prefix) ?? false;
120
120
  }
121
121
  StringUtils2.startsWith = startsWith;
122
122
  function endsWith(value, suffix) {
123
- return (value == null ? void 0 : value.endsWith(suffix)) ?? false;
123
+ return value?.endsWith(suffix) ?? false;
124
124
  }
125
125
  StringUtils2.endsWith = endsWith;
126
126
  function contains(value, search) {
127
- return (value == null ? void 0 : value.includes(search)) ?? false;
127
+ return value?.includes(search) ?? false;
128
128
  }
129
129
  StringUtils2.contains = contains;
130
130
  function containsIgnoreCase(value, search) {
131
- return (value == null ? void 0 : value.toLowerCase().includes(search.toLowerCase())) ?? false;
131
+ return value?.toLowerCase().includes(search.toLowerCase()) ?? false;
132
132
  }
133
133
  StringUtils2.containsIgnoreCase = containsIgnoreCase;
134
134
  function indexOf(value, search) {
135
- return (value == null ? void 0 : value.indexOf(search)) ?? -1;
135
+ return value?.indexOf(search) ?? -1;
136
136
  }
137
137
  StringUtils2.indexOf = indexOf;
138
138
  function lastIndexOf(value, search) {
139
- return (value == null ? void 0 : value.lastIndexOf(search)) ?? -1;
139
+ return value?.lastIndexOf(search) ?? -1;
140
140
  }
141
141
  StringUtils2.lastIndexOf = lastIndexOf;
142
142
  function substring(value, start, end) {
@@ -154,24 +154,24 @@ exports.StringUtils = void 0;
154
154
  }
155
155
  StringUtils2.split = split;
156
156
  function join(values, separator = "") {
157
- return (values == null ? void 0 : values.join(separator)) ?? "";
157
+ return values?.join(separator) ?? "";
158
158
  }
159
159
  StringUtils2.join = join;
160
160
  function replace(value, search, replacement) {
161
- return (value == null ? void 0 : value.replace(search, replacement)) ?? "";
161
+ return value?.replace(search, replacement) ?? "";
162
162
  }
163
163
  StringUtils2.replace = replace;
164
164
  function replaceAll(value, search, replacement) {
165
- return (value == null ? void 0 : value.replaceAll(search, replacement)) ?? "";
165
+ return value?.replaceAll(search, replacement) ?? "";
166
166
  }
167
167
  StringUtils2.replaceAll = replaceAll;
168
168
  function remove(value, search) {
169
- return (value == null ? void 0 : value.replace(search, "")) ?? "";
169
+ return value?.replace(search, "") ?? "";
170
170
  }
171
171
  StringUtils2.remove = remove;
172
172
  function removeAll(value, search) {
173
173
  const regex = typeof search === "string" ? new RegExp(search, "g") : new RegExp(search.source, `${search.flags}g`);
174
- return (value == null ? void 0 : value.replace(regex, "")) ?? "";
174
+ return value?.replace(regex, "") ?? "";
175
175
  }
176
176
  StringUtils2.removeAll = removeAll;
177
177
  function countOccurrences(value, search) {
@@ -187,7 +187,7 @@ exports.StringUtils = void 0;
187
187
  '"': "&quot;",
188
188
  "'": "&#39;"
189
189
  };
190
- return (value == null ? void 0 : value.replace(/[&<>"']/g, (char) => htmlEntities[char] || char)) ?? "";
190
+ return value?.replace(/[&<>"']/g, (char) => htmlEntities[char] || char) ?? "";
191
191
  }
192
192
  StringUtils2.escapeHtml = escapeHtml;
193
193
  function unescapeHtml(value) {
@@ -200,11 +200,11 @@ exports.StringUtils = void 0;
200
200
  "&#x27;": "'",
201
201
  "&apos;": "'"
202
202
  };
203
- return (value == null ? void 0 : value.replace(/&(?:amp|lt|gt|quot|#39|#x27|apos);/g, (entity) => htmlEntities[entity] || entity)) ?? "";
203
+ return value?.replace(/&(?:amp|lt|gt|quot|#39|#x27|apos);/g, (entity) => htmlEntities[entity] || entity) ?? "";
204
204
  }
205
205
  StringUtils2.unescapeHtml = unescapeHtml;
206
206
  function escapeRegex(value) {
207
- return (value == null ? void 0 : value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")) ?? "";
207
+ return value?.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") ?? "";
208
208
  }
209
209
  StringUtils2.escapeRegex = escapeRegex;
210
210
  function isNumeric(value) {
@@ -328,11 +328,11 @@ exports.StringUtils = void 0;
328
328
  }
329
329
  StringUtils2.uuid = uuid;
330
330
  function slugify(value) {
331
- return (value == null ? void 0 : value.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, "")) ?? "";
331
+ return value?.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, "") ?? "";
332
332
  }
333
333
  StringUtils2.slugify = slugify;
334
334
  function unslugify(value) {
335
- return (value == null ? void 0 : value.replace(/-/g, " ").replace(/\b\w/g, (char) => char.toUpperCase())) ?? "";
335
+ return value?.replace(/-/g, " ").replace(/\b\w/g, (char) => char.toUpperCase()) ?? "";
336
336
  }
337
337
  StringUtils2.unslugify = unslugify;
338
338
  function levenshteinDistance(a, b) {
@@ -373,7 +373,7 @@ exports.StringUtils = void 0;
373
373
  StringUtils2.fuzzyMatch = fuzzyMatch;
374
374
  function equals(a, b, ignoreCase = false) {
375
375
  if (ignoreCase) {
376
- return (a == null ? void 0 : a.toLowerCase()) === (b == null ? void 0 : b.toLowerCase());
376
+ return a?.toLowerCase() === b?.toLowerCase();
377
377
  }
378
378
  return a === b;
379
379
  }
@@ -408,11 +408,11 @@ exports.StringUtils = void 0;
408
408
  }
409
409
  StringUtils2.words = words;
410
410
  function charAt(value, index) {
411
- return (value == null ? void 0 : value.charAt(index)) ?? "";
411
+ return value?.charAt(index) ?? "";
412
412
  }
413
413
  StringUtils2.charAt = charAt;
414
414
  function charCodeAt(value, index) {
415
- return (value == null ? void 0 : value.charCodeAt(index)) ?? NaN;
415
+ return value?.charCodeAt(index) ?? NaN;
416
416
  }
417
417
  StringUtils2.charCodeAt = charCodeAt;
418
418
  function fromCharCode(...codes) {
@@ -425,9 +425,9 @@ exports.StringUtils = void 0;
425
425
  }
426
426
  StringUtils2.insert = insert;
427
427
  function swapCase(value) {
428
- return (value == null ? void 0 : value.replace(/[a-zA-Z]/g, (char) => {
428
+ return value?.replace(/[a-zA-Z]/g, (char) => {
429
429
  return char === char.toUpperCase() ? char.toLowerCase() : char.toUpperCase();
430
- })) ?? "";
430
+ }) ?? "";
431
431
  }
432
432
  StringUtils2.swapCase = swapCase;
433
433
  function surround(value, wrapper) {
@@ -459,7 +459,7 @@ exports.StringUtils = void 0;
459
459
  }
460
460
  StringUtils2.unwrap = unwrap;
461
461
  function template(templateStr, values) {
462
- return (templateStr == null ? void 0 : templateStr.replace(/\{\{(\w+)\}\}/g, (_, key) => String(values[key] ?? ""))) ?? "";
462
+ return templateStr?.replace(/\{\{(\w+)\}\}/g, (_, key) => String(values[key] ?? "")) ?? "";
463
463
  }
464
464
  StringUtils2.template = template;
465
465
  function interpolate(templateStr, values) {
@@ -469,10 +469,7 @@ exports.StringUtils = void 0;
469
469
  function dedent(value) {
470
470
  const lines = value.split("\n");
471
471
  const minIndent = Math.min(
472
- ...lines.filter((line) => line.trim().length > 0).map((line) => {
473
- var _a;
474
- return ((_a = line.match(/^\s*/)) == null ? void 0 : _a[0].length) ?? 0;
475
- })
472
+ ...lines.filter((line) => line.trim().length > 0).map((line) => line.match(/^\s*/)?.[0].length ?? 0)
476
473
  );
477
474
  return lines.map((line) => line.slice(minIndent)).join("\n");
478
475
  }
@@ -504,7 +501,7 @@ exports.StringUtils = void 0;
504
501
  StringUtils2.alignCenter = alignCenter;
505
502
  function toBoolean(value) {
506
503
  const truthy = ["true", "1", "yes", "on", "y"];
507
- return truthy.includes(value == null ? void 0 : value.toLowerCase().trim());
504
+ return truthy.includes(value?.toLowerCase().trim());
508
505
  }
509
506
  StringUtils2.toBoolean = toBoolean;
510
507
  function toNumber(value, defaultValue = 0) {
@@ -537,11 +534,11 @@ exports.StringUtils = void 0;
537
534
  }
538
535
  StringUtils2.isAnagram = isAnagram;
539
536
  function reverseWords(value) {
540
- return (value == null ? void 0 : value.split(/\s+/).reverse().join(" ")) ?? "";
537
+ return value?.split(/\s+/).reverse().join(" ") ?? "";
541
538
  }
542
539
  StringUtils2.reverseWords = reverseWords;
543
540
  function sortCharacters(value) {
544
- return (value == null ? void 0 : value.split("").sort().join("")) ?? "";
541
+ return value?.split("").sort().join("") ?? "";
545
542
  }
546
543
  StringUtils2.sortCharacters = sortCharacters;
547
544
  function uniqueCharacters(value) {
@@ -549,7 +546,7 @@ exports.StringUtils = void 0;
549
546
  }
550
547
  StringUtils2.uniqueCharacters = uniqueCharacters;
551
548
  function removeDuplicates(value) {
552
- return (value == null ? void 0 : value.split("").filter((char, index, arr) => arr.indexOf(char) === index).join("")) ?? "";
549
+ return value?.split("").filter((char, index, arr) => arr.indexOf(char) === index).join("") ?? "";
553
550
  }
554
551
  StringUtils2.removeDuplicates = removeDuplicates;
555
552
  function longestCommonSubstring(a, b) {
@@ -585,7 +582,7 @@ exports.StringUtils = void 0;
585
582
  }
586
583
  StringUtils2.longestCommonPrefix = longestCommonPrefix;
587
584
  function longestCommonSuffix(strings) {
588
- const reversed = strings.map((s) => (s == null ? void 0 : s.split("").reverse().join("")) ?? "");
585
+ const reversed = strings.map((s) => s?.split("").reverse().join("") ?? "");
589
586
  return longestCommonPrefix(reversed).split("").reverse().join("");
590
587
  }
591
588
  StringUtils2.longestCommonSuffix = longestCommonSuffix;
@@ -661,11 +658,11 @@ exports.StringUtils = void 0;
661
658
  }
662
659
  StringUtils2.removeSuffix = removeSuffix;
663
660
  function take(value, n) {
664
- return (value == null ? void 0 : value.slice(0, n)) ?? "";
661
+ return value?.slice(0, n) ?? "";
665
662
  }
666
663
  StringUtils2.take = take;
667
664
  function takeRight(value, n) {
668
- return (value == null ? void 0 : value.slice(-n)) ?? "";
665
+ return value?.slice(-n) ?? "";
669
666
  }
670
667
  StringUtils2.takeRight = takeRight;
671
668
  function takeWhile(value, predicate) {
@@ -679,8 +676,8 @@ exports.StringUtils = void 0;
679
676
  StringUtils2.takeWhile = takeWhile;
680
677
  function takeRightWhile(value, predicate) {
681
678
  let result = "";
682
- for (let i = ((value == null ? void 0 : value.length) ?? 0) - 1; i >= 0; i--) {
683
- const char = (value == null ? void 0 : value.charAt(i)) ?? "";
679
+ for (let i = (value?.length ?? 0) - 1; i >= 0; i--) {
680
+ const char = value?.charAt(i) ?? "";
684
681
  if (!predicate(char)) break;
685
682
  result = char + result;
686
683
  }
@@ -688,11 +685,11 @@ exports.StringUtils = void 0;
688
685
  }
689
686
  StringUtils2.takeRightWhile = takeRightWhile;
690
687
  function drop(value, n) {
691
- return (value == null ? void 0 : value.slice(n)) ?? "";
688
+ return value?.slice(n) ?? "";
692
689
  }
693
690
  StringUtils2.drop = drop;
694
691
  function dropRight(value, n) {
695
- return (value == null ? void 0 : value.slice(0, -n)) ?? "";
692
+ return value?.slice(0, -n) ?? "";
696
693
  }
697
694
  StringUtils2.dropRight = dropRight;
698
695
  function dropWhile(value, predicate) {
@@ -701,15 +698,15 @@ exports.StringUtils = void 0;
701
698
  if (!predicate(char)) break;
702
699
  i++;
703
700
  }
704
- return (value == null ? void 0 : value.slice(i)) ?? "";
701
+ return value?.slice(i) ?? "";
705
702
  }
706
703
  StringUtils2.dropWhile = dropWhile;
707
704
  function dropRightWhile(value, predicate) {
708
- let i = ((value == null ? void 0 : value.length) ?? 0) - 1;
709
- while (i >= 0 && predicate((value == null ? void 0 : value.charAt(i)) ?? "")) {
705
+ let i = (value?.length ?? 0) - 1;
706
+ while (i >= 0 && predicate(value?.charAt(i) ?? "")) {
710
707
  i--;
711
708
  }
712
- return (value == null ? void 0 : value.slice(0, i + 1)) ?? "";
709
+ return value?.slice(0, i + 1) ?? "";
713
710
  }
714
711
  StringUtils2.dropRightWhile = dropRightWhile;
715
712
  function countLines(value) {
@@ -726,15 +723,15 @@ exports.StringUtils = void 0;
726
723
  }
727
724
  StringUtils2.getLines = getLines;
728
725
  function isSingleLine(value) {
729
- return !(value == null ? void 0 : value.includes("\n"));
726
+ return !value?.includes("\n");
730
727
  }
731
728
  StringUtils2.isSingleLine = isSingleLine;
732
729
  function isMultiLine(value) {
733
- return (value == null ? void 0 : value.includes("\n")) ?? false;
730
+ return value?.includes("\n") ?? false;
734
731
  }
735
732
  StringUtils2.isMultiLine = isMultiLine;
736
733
  function normalizeLineEndings(value, lineEnding = "\n") {
737
- return (value == null ? void 0 : value.replace(/\r\n|\r|\n/g, lineEnding)) ?? "";
734
+ return value?.replace(/\r\n|\r|\n/g, lineEnding) ?? "";
738
735
  }
739
736
  StringUtils2.normalizeLineEndings = normalizeLineEndings;
740
737
  function toCamelCase(value) {
@@ -771,39 +768,39 @@ exports.StringUtils = void 0;
771
768
  }
772
769
  StringUtils2.toCapitalCase = toCapitalCase;
773
770
  function toDotCase(value) {
774
- return (value == null ? void 0 : value.replace(/([a-z])([A-Z])/g, "$1.$2").replace(/[-_\s]+/g, ".").toLowerCase()) ?? "";
771
+ return value?.replace(/([a-z])([A-Z])/g, "$1.$2").replace(/[-_\s]+/g, ".").toLowerCase() ?? "";
775
772
  }
776
773
  StringUtils2.toDotCase = toDotCase;
777
774
  function toPathCase(value) {
778
- return (value == null ? void 0 : value.replace(/([a-z])([A-Z])/g, "$1/$2").replace(/[-_\s]+/g, "/").toLowerCase()) ?? "";
775
+ return value?.replace(/([a-z])([A-Z])/g, "$1/$2").replace(/[-_\s]+/g, "/").toLowerCase() ?? "";
779
776
  }
780
777
  StringUtils2.toPathCase = toPathCase;
781
778
  function stripTags(value) {
782
- return (value == null ? void 0 : value.replace(/<[^>]*>/g, "")) ?? "";
779
+ return value?.replace(/<[^>]*>/g, "") ?? "";
783
780
  }
784
781
  StringUtils2.stripTags = stripTags;
785
782
  function stripNumbers(value) {
786
- return (value == null ? void 0 : value.replace(/\d+/g, "")) ?? "";
783
+ return value?.replace(/\d+/g, "") ?? "";
787
784
  }
788
785
  StringUtils2.stripNumbers = stripNumbers;
789
786
  function stripWhitespace(value) {
790
- return (value == null ? void 0 : value.replace(/\s+/g, "")) ?? "";
787
+ return value?.replace(/\s+/g, "") ?? "";
791
788
  }
792
789
  StringUtils2.stripWhitespace = stripWhitespace;
793
790
  function stripPunctuation(value) {
794
- return (value == null ? void 0 : value.replace(/[^\w\s]/g, "")) ?? "";
791
+ return value?.replace(/[^\w\s]/g, "") ?? "";
795
792
  }
796
793
  StringUtils2.stripPunctuation = stripPunctuation;
797
794
  function normalizeWhitespace(value) {
798
- return (value == null ? void 0 : value.replace(/\s+/g, " ").trim()) ?? "";
795
+ return value?.replace(/\s+/g, " ").trim() ?? "";
799
796
  }
800
797
  StringUtils2.normalizeWhitespace = normalizeWhitespace;
801
798
  function includesAll(value, searches) {
802
- return searches.every((search) => (value == null ? void 0 : value.includes(search)) ?? false);
799
+ return searches.every((search) => value?.includes(search) ?? false);
803
800
  }
804
801
  StringUtils2.includesAll = includesAll;
805
802
  function includesAny(value, searches) {
806
- return searches.some((search) => (value == null ? void 0 : value.includes(search)) ?? false);
803
+ return searches.some((search) => value?.includes(search) ?? false);
807
804
  }
808
805
  StringUtils2.includesAny = includesAny;
809
806
  })(exports.StringUtils || (exports.StringUtils = {}));