all-you-need 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/chunk-BJCELHLJ.cjs +224 -0
- package/dist/chunk-BJCELHLJ.cjs.map +1 -0
- package/dist/chunk-KA5JX4LA.js +841 -0
- package/dist/chunk-KA5JX4LA.js.map +1 -0
- package/dist/chunk-RNO7ZT65.cjs +4 -0
- package/dist/chunk-RNO7ZT65.cjs.map +1 -0
- package/dist/chunk-RV5MKKBP.js +3 -0
- package/dist/chunk-RV5MKKBP.js.map +1 -0
- package/dist/chunk-SEJ5J4LY.cjs +924 -0
- package/dist/chunk-SEJ5J4LY.cjs.map +1 -0
- package/dist/chunk-YHQI346M.js +218 -0
- package/dist/chunk-YHQI346M.js.map +1 -0
- package/dist/entities/index.cjs +28 -0
- package/dist/entities/index.cjs.map +1 -0
- package/dist/entities/index.d.cts +73 -0
- package/dist/entities/index.d.ts +73 -0
- package/dist/entities/index.js +3 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/index.cjs +358 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.cjs +6 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.cts +114 -0
- package/dist/types/index.d.ts +114 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/index.cjs +336 -0
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.cts +185 -0
- package/dist/utils/index.d.ts +185 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +141 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/string/capitalize.ts","../src/utils/string/escapeHtml.ts","../src/utils/string/escapeRegExp.ts","../src/utils/string/maskString.ts","../src/utils/string/pluralize.ts","../src/utils/string/slugify.ts","../src/utils/string/template.ts","../src/utils/string/toCamelCase.ts","../src/utils/string/toKebabCase.ts","../src/utils/string/toPascalCase.ts","../src/utils/string/toSnakeCase.ts","../src/utils/string/truncate.ts","../src/utils/string/unescapeHtml.ts","../src/utils/array/chunk.ts","../src/utils/array/compact.ts","../src/utils/array/difference.ts","../src/utils/array/first.ts","../src/utils/array/flatten.ts","../src/utils/array/groupBy.ts","../src/utils/array/intersection.ts","../src/utils/array/last.ts","../src/utils/array/range.ts","../src/utils/array/shuffle.ts","../src/utils/array/sortBy.ts","../src/utils/array/unique.ts","../src/utils/array/uniqueBy.ts","../src/utils/array/zip.ts","../src/utils/object/deepClone.ts","../src/utils/object/deepEqual.ts","../src/utils/object/deepMerge.ts","../src/utils/object/diff.ts","../src/utils/object/flattenObject.ts","../src/utils/object/isEmpty.ts","../src/utils/object/mapKeys.ts","../src/utils/object/mapValues.ts","../src/utils/object/omit.ts","../src/utils/object/pick.ts","../src/utils/number/average.ts","../src/utils/number/clamp.ts","../src/utils/number/formatBytes.ts","../src/utils/number/formatCurrency.ts","../src/utils/number/formatNumber.ts","../src/utils/number/median.ts","../src/utils/number/percentage.ts","../src/utils/number/randomInt.ts","../src/utils/number/round.ts","../src/utils/number/sum.ts","../src/utils/date/formatDate.ts","../src/utils/date/daysBetween.ts","../src/utils/date/isToday.ts","../src/utils/date/isYesterday.ts","../src/utils/date/addDays.ts","../src/utils/date/addMonths.ts","../src/utils/date/relativeTime.ts","../src/utils/async/sleep.ts","../src/utils/async/retry.ts","../src/utils/async/debounce.ts","../src/utils/async/throttle.ts","../src/utils/async/timeout.ts","../src/utils/async/tryCatch.ts","../src/utils/async/pLimit.ts","../src/utils/async/pSettle.ts","../src/utils/validation/isEmail.ts","../src/utils/validation/isURL.ts","../src/utils/validation/isPhone.ts","../src/utils/validation/isINN.ts","../src/utils/validation/isStrongPassword.ts","../src/utils/guards/isString.ts","../src/utils/guards/isNumber.ts","../src/utils/guards/isBoolean.ts","../src/utils/guards/isNonNullable.ts","../src/utils/guards/isArray.ts","../src/utils/guards/isObject.ts","../src/utils/guards/isFunction.ts","../src/utils/guards/isDefined.ts","../src/utils/guards/hasProperty.ts","../src/utils/env/isBrowser.ts","../src/utils/env/isNode.ts","../src/utils/env/isSSR.ts","../src/utils/id/nanoid.ts","../src/utils/id/uuid.ts"],"names":["sum"],"mappings":"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","file":"chunk-SEJ5J4LY.cjs","sourcesContent":["export function capitalize(str: string): string {\n if (str.length === 0) {\n return str;\n }\n\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n","export function escapeHtml(str: string): string {\n return str\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n}\n","export function escapeRegExp(str: string): string {\n return str.replace(/[\\\\^$.*+?()[\\]{}|]/g, \"\\\\$&\");\n}\n","export function maskString(\n str: string,\n visibleStart: number = 0,\n visibleEnd: number = 0,\n maskChar: string = \"*\",\n): string {\n if (str.length <= visibleStart + visibleEnd) {\n return str;\n }\n\n const start = str.slice(0, visibleStart);\n const end = visibleEnd > 0 ? str.slice(-visibleEnd) : \"\";\n const masked = maskChar.repeat(str.length - visibleStart - visibleEnd);\n\n return start + masked + end;\n}\n","export function pluralize(\n count: number,\n one: string,\n few: string,\n many: string,\n): string {\n const abs = Math.abs(count);\n const mod10 = abs % 10;\n const mod100 = abs % 100;\n\n if (mod10 === 1 && mod100 !== 11) {\n return `${count} ${one}`;\n }\n\n if (mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14)) {\n return `${count} ${few}`;\n }\n\n return `${count} ${many}`;\n}\n","export function slugify(str: string): string {\n return str\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toLowerCase()\n .trim()\n .replace(/[^a-z0-9\\s-]/g, \"\")\n .replace(/[\\s_]+/g, \"-\")\n .replace(/-+/g, \"-\")\n .replace(/^-|-$/g, \"\");\n}\n","export function template(\n str: string,\n data: Record<string, string | number>,\n): string {\n return str.replace(/\\{(\\w+)\\}/g, (match, key: string) => {\n if (key in data) {\n return String(data[key]);\n }\n\n return match;\n });\n}\n","export function toCamelCase(str: string): string {\n return str\n .replace(/[^a-zA-Z0-9]+(.)/g, (_, char: string) => char.toUpperCase())\n .replace(/^[A-Z]/, (char) => char.toLowerCase());\n}\n","export function toKebabCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/[\\s_]+/g, \"-\")\n .replace(/[^a-zA-Z0-9-]/g, \"\")\n .toLowerCase();\n}\n","export function toPascalCase(str: string): string {\n return str\n .split(/[^a-zA-Z0-9]+/)\n .filter(Boolean)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(\"\");\n}\n","export function toSnakeCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, \"$1_$2\")\n .replace(/[\\s-]+/g, \"_\")\n .replace(/[^a-zA-Z0-9_]/g, \"\")\n .toLowerCase();\n}\n","export function truncate(\n str: string,\n maxLength: number,\n suffix: string = \"...\",\n): string {\n if (str.length <= maxLength) {\n return str;\n }\n\n return str.slice(0, maxLength - suffix.length) + suffix;\n}\n","export function unescapeHtml(str: string): string {\n return str\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/"/g, \"\\\"\")\n .replace(/'/g, \"'\");\n}\n","export function chunk<T>(arr: T[], size: number): T[][] {\n if (size <= 0) {\n throw new RangeError(\"chunk size must be greater than 0\");\n }\n\n const result: T[][] = [];\n\n for (let i = 0; i < arr.length; i += size) {\n result.push(arr.slice(i, i + size));\n }\n\n return result;\n}\n","export function compact<T>(arr: (T | null | undefined | false | 0 | \"\")[]): T[] {\n return arr.filter(Boolean) as T[];\n}\n","export function difference<T>(a: T[], b: T[]): T[] {\n const set = new Set(b);\n\n return a.filter((item) => !set.has(item));\n}\n","export function first<T>(arr: T[]): T | undefined {\n return arr[0];\n}\n","export function flatten<T>(arr: unknown[]): T[] {\n return arr.flat(Infinity) as T[];\n}\n","export function groupBy<T, K extends string | number | symbol>(\n arr: T[],\n keyFn: (item: T) => K,\n): Record<K, T[]> {\n return arr.reduce(\n (acc, item) => {\n const key = keyFn(item);\n\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(item);\n\n return acc;\n },\n {} as Record<K, T[]>,\n );\n}\n","export function intersection<T>(a: T[], b: T[]): T[] {\n const set = new Set(b);\n\n return a.filter((item) => set.has(item));\n}\n","export function last<T>(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n","export function range(start: number, end: number, step: number = 1): number[] {\n if (step === 0) {\n throw new RangeError(\"step must not be 0\");\n }\n\n const result: number[] = [];\n\n if (step > 0) {\n for (let i = start; i < end; i += step) {\n result.push(i);\n }\n } else {\n for (let i = start; i > end; i += step) {\n result.push(i);\n }\n }\n\n return result;\n}\n","export function shuffle<T>(arr: T[]): T[] {\n const result = [...arr];\n\n for (let i = result.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [result[i], result[j]] = [result[j], result[i]];\n }\n\n return result;\n}\n","export function sortBy<T>(arr: T[], keyFn: (item: T) => string | number): T[] {\n return [...arr].sort((a, b) => {\n const ka = keyFn(a);\n const kb = keyFn(b);\n\n if (ka < kb) {\n return -1;\n }\n\n if (ka > kb) {\n return 1;\n }\n\n return 0;\n });\n}\n","export function unique<T>(arr: T[]): T[] {\n return [...new Set(arr)];\n}\n","export function uniqueBy<T>(arr: T[], keyFn: (item: T) => unknown): T[] {\n const seen = new Set<unknown>();\n\n return arr.filter((item) => {\n const key = keyFn(item);\n\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n\n return true;\n });\n}\n","export function zip<T, U>(a: T[], b: U[]): [T, U][] {\n const length = Math.min(a.length, b.length);\n const result: [T, U][] = [];\n\n for (let i = 0; i < length; i++) {\n result.push([a[i], b[i]]);\n }\n\n return result;\n}\n","export function deepClone<T>(value: T): T {\n return structuredClone(value);\n}\n","export function deepEqual(a: unknown, b: unknown): boolean {\n if (a === b) {\n return true;\n }\n\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n\n if (a instanceof RegExp && b instanceof RegExp) {\n return a.source === b.source && a.flags === b.flags;\n }\n\n if (\n a === null ||\n b === null ||\n typeof a !== \"object\" ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n\n if (Array.isArray(a) !== Array.isArray(b)) {\n return false;\n }\n\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n\n return a.every((item, index) => deepEqual(item, b[index]));\n }\n\n const keysA = Object.keys(a as Record<string, unknown>);\n const keysB = Object.keys(b as Record<string, unknown>);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n return keysA.every(\n (key) =>\n Object.prototype.hasOwnProperty.call(b, key) &&\n deepEqual(\n (a as Record<string, unknown>)[key],\n (b as Record<string, unknown>)[key],\n ),\n );\n}\n","function isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function deepMerge<\n T extends Record<string, unknown>,\n S extends Record<string, unknown>,\n>(target: T, source: S): T & S {\n const result: Record<string, unknown> = { ...target };\n\n for (const key of Object.keys(source)) {\n const targetVal = result[key];\n const sourceVal = (source as Record<string, unknown>)[key];\n\n if (isPlainObject(targetVal) && isPlainObject(sourceVal)) {\n result[key] = deepMerge(targetVal, sourceVal);\n } else {\n result[key] = sourceVal;\n }\n }\n\n return result as T & S;\n}\n","export function diff<T extends Record<string, unknown>>(\n original: T,\n changed: T,\n): Partial<T> {\n const result: Partial<T> = {};\n\n for (const key of Object.keys(changed) as Array<keyof T>) {\n if (changed[key] !== original[key]) {\n result[key] = changed[key];\n }\n }\n\n return result;\n}\n","export function flattenObject(\n obj: Record<string, unknown>,\n prefix = \"\",\n separator = \".\",\n): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n\n for (const key of Object.keys(obj)) {\n const fullKey = prefix ? `${prefix}${separator}${key}` : key;\n const value = obj[key];\n\n if (\n value !== null &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n !(value instanceof Date) &&\n !(value instanceof RegExp)\n ) {\n Object.assign(\n result,\n flattenObject(value as Record<string, unknown>, fullKey, separator),\n );\n } else {\n result[fullKey] = value;\n }\n }\n\n return result;\n}\n","export function isEmpty(value: unknown): boolean {\n if (value === null || value === undefined) {\n return true;\n }\n\n if (typeof value === \"string\") {\n return value.trim().length === 0;\n }\n\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n\n if (typeof value === \"object\") {\n return Object.keys(value).length === 0;\n }\n\n return false;\n}\n","export function mapKeys<T extends Record<string, unknown>>(\n obj: T,\n fn: (key: string) => string,\n): Record<string, T[keyof T]> {\n const result: Record<string, T[keyof T]> = {};\n\n for (const key of Object.keys(obj)) {\n result[fn(key)] = obj[key] as T[keyof T];\n }\n\n return result;\n}\n","export function mapValues<T extends Record<string, unknown>, U>(\n obj: T,\n fn: (value: T[keyof T], key: string) => U,\n): Record<string, U> {\n const result: Record<string, U> = {};\n\n for (const key of Object.keys(obj)) {\n result[key] = fn(obj[key] as T[keyof T], key);\n }\n\n return result;\n}\n","export function omit<T extends Record<string, unknown>, K extends keyof T>(\n obj: T,\n keys: K[],\n): Omit<T, K> {\n const result = { ...obj };\n\n for (const key of keys) {\n delete result[key];\n }\n\n return result as Omit<T, K>;\n}\n","export function pick<T extends Record<string, unknown>, K extends keyof T>(\n obj: T,\n keys: K[],\n): Pick<T, K> {\n const result = {} as Pick<T, K>;\n\n for (const key of keys) {\n if (key in obj) {\n result[key] = obj[key];\n }\n }\n\n return result;\n}\n","export function average(arr: number[]): number {\n if (arr.length === 0) {\n return 0;\n }\n\n return arr.reduce((acc, val) => acc + val, 0) / arr.length;\n}\n","export function clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n","export function formatBytes(bytes: number, decimals: number = 2): string {\n if (bytes === 0) {\n return \"0 B\";\n }\n\n const k = 1024;\n const units = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const value = bytes / Math.pow(k, i);\n\n return `${parseFloat(value.toFixed(decimals))} ${units[i]}`;\n}\n","export function formatCurrency(\n value: number,\n currency: string = \"RUB\",\n locale: string = \"ru-RU\",\n): string {\n return new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency,\n }).format(value);\n}\n","export function formatNumber(value: number, locale: string = \"ru-RU\"): string {\n return new Intl.NumberFormat(locale).format(value);\n}\n","export function median(arr: number[]): number {\n if (arr.length === 0) {\n return 0;\n }\n\n const sorted = [...arr].sort((a, b) => a - b);\n const mid = Math.floor(sorted.length / 2);\n\n if (sorted.length % 2 === 0) {\n return (sorted[mid - 1] + sorted[mid]) / 2;\n }\n\n return sorted[mid];\n}\n","export function percentage(value: number, total: number): number {\n if (total === 0) {\n return 0;\n }\n\n return (value / total) * 100;\n}\n","export function randomInt(min: number, max: number): number {\n min = Math.ceil(min);\n max = Math.floor(max);\n\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n","export function round(value: number, decimals: number = 0): number {\n const factor = 10 ** decimals;\n\n return Math.round(value * factor) / factor;\n}\n","export function sum(arr: number[]): number {\n return arr.reduce((acc, val) => acc + val, 0);\n}\n","export function formatDate(\n date: Date,\n options: Intl.DateTimeFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n },\n locale: string = \"ru-RU\",\n): string {\n return new Intl.DateTimeFormat(locale, options).format(date);\n}\n","export function daysBetween(a: Date, b: Date): number {\n const MS_PER_DAY = 86_400_000;\n const utcA = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());\n const utcB = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());\n\n return Math.abs(Math.floor((utcB - utcA) / MS_PER_DAY));\n}\n","export function isToday(date: Date): boolean {\n const now = new Date();\n\n return (\n date.getFullYear() === now.getFullYear() &&\n date.getMonth() === now.getMonth() &&\n date.getDate() === now.getDate()\n );\n}\n","export function isYesterday(date: Date): boolean {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n\n return (\n date.getFullYear() === yesterday.getFullYear() &&\n date.getMonth() === yesterday.getMonth() &&\n date.getDate() === yesterday.getDate()\n );\n}\n","export function addDays(date: Date, days: number): Date {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n\n return result;\n}\n","export function addMonths(date: Date, months: number): Date {\n const result = new Date(date);\n result.setMonth(result.getMonth() + months);\n\n return result;\n}\n","export function relativeTime(date: Date, locale: string = \"ru-RU\"): string {\n const now = Date.now();\n const diffMs = date.getTime() - now;\n const absDiffMs = Math.abs(diffMs);\n\n const rtf = new Intl.RelativeTimeFormat(locale, { numeric: \"auto\" });\n\n const SECOND = 1_000;\n const MINUTE = 60 * SECOND;\n const HOUR = 60 * MINUTE;\n const DAY = 24 * HOUR;\n const MONTH = 30 * DAY;\n const YEAR = 365 * DAY;\n\n if (absDiffMs < MINUTE) {\n return rtf.format(Math.round(diffMs / SECOND), \"second\");\n }\n\n if (absDiffMs < HOUR) {\n return rtf.format(Math.round(diffMs / MINUTE), \"minute\");\n }\n\n if (absDiffMs < DAY) {\n return rtf.format(Math.round(diffMs / HOUR), \"hour\");\n }\n\n if (absDiffMs < MONTH) {\n return rtf.format(Math.round(diffMs / DAY), \"day\");\n }\n\n if (absDiffMs < YEAR) {\n return rtf.format(Math.round(diffMs / MONTH), \"month\");\n }\n\n return rtf.format(Math.round(diffMs / YEAR), \"year\");\n}\n","export function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","export interface RetryOptions {\n attempts?: number;\n delay?: number;\n factor?: number;\n}\n\nexport async function retry<T>(\n fn: () => Promise<T>,\n options: RetryOptions = {},\n): Promise<T> {\n const { attempts = 3, delay = 1000, factor = 2 } = options;\n\n let lastError: unknown;\n let currentDelay = delay;\n\n for (let i = 0; i < attempts; i++) {\n try {\n return await fn();\n } catch (error) {\n lastError = error;\n\n if (i < attempts - 1) {\n await new Promise((resolve) => setTimeout(resolve, currentDelay));\n currentDelay *= factor;\n }\n }\n }\n\n throw lastError;\n}\n","export function debounce<T extends (...args: unknown[]) => void>(\n fn: T,\n ms: number,\n): (...args: Parameters<T>) => void {\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n\n return (...args: Parameters<T>) => {\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => fn(...args), ms);\n };\n}\n","export function throttle<T extends (...args: unknown[]) => void>(\n fn: T,\n ms: number,\n): (...args: Parameters<T>) => void {\n let lastCall = 0;\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n\n return (...args: Parameters<T>) => {\n const now = Date.now();\n const remaining = ms - (now - lastCall);\n\n if (remaining <= 0) {\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n lastCall = now;\n fn(...args);\n } else if (timeoutId === undefined) {\n timeoutId = setTimeout(() => {\n lastCall = Date.now();\n timeoutId = undefined;\n fn(...args);\n }, remaining);\n }\n };\n}\n","export function timeout<T>(promise: Promise<T>, ms: number): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const timer = setTimeout(\n () => reject(new Error(`Timed out after ${ms}ms`)),\n ms,\n );\n\n promise.then(\n (value) => {\n clearTimeout(timer);\n resolve(value);\n },\n (error) => {\n clearTimeout(timer);\n reject(error);\n },\n );\n });\n}\n","export async function tryCatch<T>(\n fn: () => Promise<T>,\n): Promise<[null, T] | [Error, null]> {\n try {\n const value = await fn();\n\n return [null, value];\n } catch (error: unknown) {\n if (error instanceof Error) {\n return [error, null];\n }\n\n return [new Error(String(error)), null];\n }\n}\n\nexport function tryCatchSync<T>(fn: () => T): [null, T] | [Error, null] {\n try {\n const value = fn();\n\n return [null, value];\n } catch (error: unknown) {\n if (error instanceof Error) {\n return [error, null];\n }\n\n return [new Error(String(error)), null];\n }\n}\n","export function pLimit(\n concurrency: number,\n): <T>(fn: () => Promise<T>) => Promise<T> {\n let activeCount = 0;\n const queue: Array<() => void> = [];\n\n function next(): void {\n if (queue.length > 0 && activeCount < concurrency) {\n activeCount++;\n const run = queue.shift()!;\n run();\n }\n }\n\n return <T>(fn: () => Promise<T>): Promise<T> => {\n return new Promise<T>((resolve, reject) => {\n const run = (): void => {\n fn().then(\n (value) => {\n resolve(value);\n activeCount--;\n next();\n },\n (error) => {\n reject(error);\n activeCount--;\n next();\n },\n );\n };\n\n if (activeCount < concurrency) {\n activeCount++;\n run();\n } else {\n queue.push(run);\n }\n });\n };\n}\n","export interface SettledOk<T> {\n status: \"fulfilled\";\n value: T;\n}\n\nexport interface SettledErr {\n status: \"rejected\";\n reason: unknown;\n}\n\nexport type SettledResult<T> = SettledOk<T> | SettledErr;\n\nexport function pSettle<T>(\n promises: Promise<T>[],\n): Promise<SettledResult<T>[]> {\n return Promise.all(\n promises.map((promise) =>\n promise.then(\n (value): SettledOk<T> => ({ status: \"fulfilled\", value }),\n (reason): SettledErr => ({ status: \"rejected\", reason }),\n ),\n ),\n );\n}\n","const EMAIL_RE =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\nexport function isEmail(str: string): boolean {\n return EMAIL_RE.test(str);\n}\n","export function isURL(str: string): boolean {\n try {\n new URL(str);\n\n return true;\n } catch {\n return false;\n }\n}\n","const PHONE_RE = /^\\+?[0-9\\s\\-().]{7,20}$/;\n\nexport function isPhone(str: string): boolean {\n const digits = str.replace(/\\D/g, \"\");\n\n return PHONE_RE.test(str) && digits.length >= 7 && digits.length <= 15;\n}\n","export function isINN(str: string): boolean {\n if (!/^\\d{10}$|^\\d{12}$/.test(str)) {\n return false;\n }\n\n const digits = str.split(\"\").map(Number);\n\n if (digits.length === 10) {\n const weights = [2, 4, 10, 3, 5, 9, 4, 6, 8];\n const sum = weights.reduce((acc, w, i) => acc + w * digits[i], 0);\n\n return (sum % 11) % 10 === digits[9];\n }\n\n const weights11 = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8];\n const weights12 = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8];\n\n const sum11 = weights11.reduce((acc, w, i) => acc + w * digits[i], 0);\n const sum12 = weights12.reduce((acc, w, i) => acc + w * digits[i], 0);\n\n return (\n (sum11 % 11) % 10 === digits[10] && (sum12 % 11) % 10 === digits[11]\n );\n}\n","export interface PasswordOptions {\n minLength?: number;\n lowercase?: boolean;\n uppercase?: boolean;\n digits?: boolean;\n special?: boolean;\n}\n\nexport function isStrongPassword(\n str: string,\n options: PasswordOptions = {},\n): boolean {\n const {\n minLength = 8,\n lowercase = true,\n uppercase = true,\n digits = true,\n special = true,\n } = options;\n\n if (str.length < minLength) {\n return false;\n }\n\n if (lowercase && !/[a-z]/.test(str)) {\n return false;\n }\n\n if (uppercase && !/[A-Z]/.test(str)) {\n return false;\n }\n\n if (digits && !/\\d/.test(str)) {\n return false;\n }\n\n if (special && !/[^a-zA-Z0-9]/.test(str)) {\n return false;\n }\n\n return true;\n}\n","export function isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value);\n}\n","export function isBoolean(value: unknown): value is boolean {\n return typeof value === \"boolean\";\n}\n","export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value !== null && value !== undefined;\n}\n","export function isArray(value: unknown): value is unknown[] {\n return Array.isArray(value);\n}\n","export function isObject(\n value: unknown,\n): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","export function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === \"function\";\n}\n","export function isDefined<T>(value: T | undefined): value is T {\n return value !== undefined;\n}\n","export function hasProperty<K extends string>(\n obj: unknown,\n key: K,\n): obj is Record<K, unknown> {\n return typeof obj === \"object\" && obj !== null && key in obj;\n}\n","export function isBrowser(): boolean {\n return typeof window !== \"undefined\" && typeof document !== \"undefined\";\n}\n","declare const process: { versions: { node: string } | null } | undefined;\n\nexport function isNode(): boolean {\n return (\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null\n );\n}\n","import { isBrowser } from \"./isBrowser\";\nimport { isNode } from \"./isNode\";\n\nexport function isSSR(): boolean {\n return isNode() && !isBrowser();\n}\n","const ALPHABET =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-\";\n\nexport function nanoid(size: number = 21): string {\n let id = \"\";\n const bytes = new Uint8Array(size);\n\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto.getRandomValues === \"function\"\n ) {\n crypto.getRandomValues(bytes);\n } else {\n for (let i = 0; i < size; i++) {\n bytes[i] = Math.floor(Math.random() * 256);\n }\n }\n\n for (let i = 0; i < size; i++) {\n id += ALPHABET[bytes[i] & 63];\n }\n\n return id;\n}\n","export function uuid(): string {\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto.randomUUID === \"function\"\n ) {\n return crypto.randomUUID();\n }\n\n const bytes = new Uint8Array(16);\n\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto.getRandomValues === \"function\"\n ) {\n crypto.getRandomValues(bytes);\n } else {\n for (let i = 0; i < 16; i++) {\n bytes[i] = Math.floor(Math.random() * 256);\n }\n }\n\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n const hex = Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n\n return [\n hex.slice(0, 8),\n hex.slice(8, 12),\n hex.slice(12, 16),\n hex.slice(16, 20),\n hex.slice(20, 32),\n ].join(\"-\");\n}\n"]}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
// src/entities/Storage.ts
|
|
2
|
+
var TypedStorage = class {
|
|
3
|
+
constructor(adapter) {
|
|
4
|
+
this.adapter = adapter;
|
|
5
|
+
}
|
|
6
|
+
get(key) {
|
|
7
|
+
const raw = this.adapter.getItem(key);
|
|
8
|
+
if (raw === null) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
try {
|
|
12
|
+
const entry = JSON.parse(raw);
|
|
13
|
+
if (entry.expiresAt !== void 0 && Date.now() > entry.expiresAt) {
|
|
14
|
+
this.remove(key);
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return entry.value;
|
|
18
|
+
} catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
set(key, value, options) {
|
|
23
|
+
const entry = { value };
|
|
24
|
+
if (options?.ttl !== void 0) {
|
|
25
|
+
entry.expiresAt = Date.now() + options.ttl;
|
|
26
|
+
}
|
|
27
|
+
this.adapter.setItem(key, JSON.stringify(entry));
|
|
28
|
+
}
|
|
29
|
+
remove(key) {
|
|
30
|
+
this.adapter.removeItem(key);
|
|
31
|
+
}
|
|
32
|
+
clear() {
|
|
33
|
+
this.adapter.clear();
|
|
34
|
+
}
|
|
35
|
+
has(key) {
|
|
36
|
+
return this.get(key) !== null;
|
|
37
|
+
}
|
|
38
|
+
keys() {
|
|
39
|
+
const result = [];
|
|
40
|
+
for (let i = 0; i < this.adapter.length; i++) {
|
|
41
|
+
const key = this.adapter.key(i);
|
|
42
|
+
if (key !== null) {
|
|
43
|
+
result.push(key);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
// src/entities/Queue.ts
|
|
51
|
+
var Queue = class {
|
|
52
|
+
constructor() {
|
|
53
|
+
this.items = [];
|
|
54
|
+
}
|
|
55
|
+
enqueue(item) {
|
|
56
|
+
this.items.push(item);
|
|
57
|
+
}
|
|
58
|
+
dequeue() {
|
|
59
|
+
return this.items.shift();
|
|
60
|
+
}
|
|
61
|
+
peek() {
|
|
62
|
+
return this.items[0];
|
|
63
|
+
}
|
|
64
|
+
get size() {
|
|
65
|
+
return this.items.length;
|
|
66
|
+
}
|
|
67
|
+
get isEmpty() {
|
|
68
|
+
return this.items.length === 0;
|
|
69
|
+
}
|
|
70
|
+
clear() {
|
|
71
|
+
this.items = [];
|
|
72
|
+
}
|
|
73
|
+
toArray() {
|
|
74
|
+
return [...this.items];
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
// src/entities/Stack.ts
|
|
79
|
+
var Stack = class {
|
|
80
|
+
constructor() {
|
|
81
|
+
this.items = [];
|
|
82
|
+
}
|
|
83
|
+
push(item) {
|
|
84
|
+
this.items.push(item);
|
|
85
|
+
}
|
|
86
|
+
pop() {
|
|
87
|
+
return this.items.pop();
|
|
88
|
+
}
|
|
89
|
+
peek() {
|
|
90
|
+
return this.items[this.items.length - 1];
|
|
91
|
+
}
|
|
92
|
+
get size() {
|
|
93
|
+
return this.items.length;
|
|
94
|
+
}
|
|
95
|
+
get isEmpty() {
|
|
96
|
+
return this.items.length === 0;
|
|
97
|
+
}
|
|
98
|
+
clear() {
|
|
99
|
+
this.items = [];
|
|
100
|
+
}
|
|
101
|
+
toArray() {
|
|
102
|
+
return [...this.items];
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
// src/entities/Logger.ts
|
|
107
|
+
var LOG_LEVEL_PRIORITY = {
|
|
108
|
+
debug: 0,
|
|
109
|
+
info: 1,
|
|
110
|
+
warn: 2,
|
|
111
|
+
error: 3
|
|
112
|
+
};
|
|
113
|
+
var Logger = class {
|
|
114
|
+
constructor(options = {}) {
|
|
115
|
+
this.level = options.level ?? "debug";
|
|
116
|
+
this.prefix = options.prefix;
|
|
117
|
+
this.timestamp = options.timestamp ?? true;
|
|
118
|
+
}
|
|
119
|
+
debug(...args) {
|
|
120
|
+
this.log("debug", args);
|
|
121
|
+
}
|
|
122
|
+
info(...args) {
|
|
123
|
+
this.log("info", args);
|
|
124
|
+
}
|
|
125
|
+
warn(...args) {
|
|
126
|
+
this.log("warn", args);
|
|
127
|
+
}
|
|
128
|
+
error(...args) {
|
|
129
|
+
this.log("error", args);
|
|
130
|
+
}
|
|
131
|
+
log(level, args) {
|
|
132
|
+
if (LOG_LEVEL_PRIORITY[level] < LOG_LEVEL_PRIORITY[this.level]) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const parts = [];
|
|
136
|
+
if (this.timestamp) {
|
|
137
|
+
parts.push(`[${(/* @__PURE__ */ new Date()).toISOString()}]`);
|
|
138
|
+
}
|
|
139
|
+
parts.push(`[${level.toUpperCase()}]`);
|
|
140
|
+
if (this.prefix) {
|
|
141
|
+
parts.push(`[${this.prefix}]`);
|
|
142
|
+
}
|
|
143
|
+
const method = level === "debug" ? "log" : level;
|
|
144
|
+
console[method](parts.join(" "), ...args);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
// src/entities/Result.ts
|
|
149
|
+
var Result = class _Result {
|
|
150
|
+
constructor(_ok, _value) {
|
|
151
|
+
this._ok = _ok;
|
|
152
|
+
this._value = _value;
|
|
153
|
+
}
|
|
154
|
+
static ok(value) {
|
|
155
|
+
return new _Result(true, value);
|
|
156
|
+
}
|
|
157
|
+
static err(error) {
|
|
158
|
+
return new _Result(false, error);
|
|
159
|
+
}
|
|
160
|
+
isOk() {
|
|
161
|
+
return this._ok;
|
|
162
|
+
}
|
|
163
|
+
isErr() {
|
|
164
|
+
return !this._ok;
|
|
165
|
+
}
|
|
166
|
+
get value() {
|
|
167
|
+
if (!this._ok) {
|
|
168
|
+
throw new Error("Cannot get value of an Err result");
|
|
169
|
+
}
|
|
170
|
+
return this._value;
|
|
171
|
+
}
|
|
172
|
+
get error() {
|
|
173
|
+
if (this._ok) {
|
|
174
|
+
throw new Error("Cannot get error of an Ok result");
|
|
175
|
+
}
|
|
176
|
+
return this._value;
|
|
177
|
+
}
|
|
178
|
+
unwrap() {
|
|
179
|
+
if (!this._ok) {
|
|
180
|
+
throw this._value;
|
|
181
|
+
}
|
|
182
|
+
return this._value;
|
|
183
|
+
}
|
|
184
|
+
unwrapOr(defaultValue) {
|
|
185
|
+
if (this._ok) {
|
|
186
|
+
return this._value;
|
|
187
|
+
}
|
|
188
|
+
return defaultValue;
|
|
189
|
+
}
|
|
190
|
+
unwrapErr() {
|
|
191
|
+
if (this._ok) {
|
|
192
|
+
throw new Error("Called unwrapErr on an Ok result");
|
|
193
|
+
}
|
|
194
|
+
return this._value;
|
|
195
|
+
}
|
|
196
|
+
map(fn) {
|
|
197
|
+
if (this._ok) {
|
|
198
|
+
return _Result.ok(fn(this._value));
|
|
199
|
+
}
|
|
200
|
+
return _Result.err(this._value);
|
|
201
|
+
}
|
|
202
|
+
mapErr(fn) {
|
|
203
|
+
if (this._ok) {
|
|
204
|
+
return _Result.ok(this._value);
|
|
205
|
+
}
|
|
206
|
+
return _Result.err(fn(this._value));
|
|
207
|
+
}
|
|
208
|
+
flatMap(fn) {
|
|
209
|
+
if (this._ok) {
|
|
210
|
+
return fn(this._value);
|
|
211
|
+
}
|
|
212
|
+
return _Result.err(this._value);
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
export { Logger, Queue, Result, Stack, TypedStorage };
|
|
217
|
+
//# sourceMappingURL=chunk-YHQI346M.js.map
|
|
218
|
+
//# sourceMappingURL=chunk-YHQI346M.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/entities/Storage.ts","../src/entities/Queue.ts","../src/entities/Stack.ts","../src/entities/Logger.ts","../src/entities/Result.ts"],"names":[],"mappings":";AASO,IAAM,eAAN,MAAmB;AAAA,EAGxB,YAAY,OAAA,EAA6B;AACvC,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AAAA,EAEA,IAAO,GAAA,EAAuB;AAC5B,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,GAAG,CAAA;AAEpC,IAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,KAAA,GAAyB,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAE7C,MAAA,IAAI,MAAM,SAAA,KAAc,KAAA,CAAA,IAAa,KAAK,GAAA,EAAI,GAAI,MAAM,SAAA,EAAW;AACjE,QAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AAEf,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,OAAO,KAAA,CAAM,KAAA;AAAA,IACf,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AAAA,EAEA,GAAA,CAAO,GAAA,EAAa,KAAA,EAAU,OAAA,EAAgC;AAC5D,IAAA,MAAM,KAAA,GAAyB,EAAE,KAAA,EAAM;AAEvC,IAAA,IAAI,OAAA,EAAS,QAAQ,MAAA,EAAW;AAC9B,MAAA,KAAA,CAAM,SAAA,GAAY,IAAA,CAAK,GAAA,EAAI,GAAI,OAAA,CAAQ,GAAA;AAAA,IACzC;AAEA,IAAA,IAAA,CAAK,QAAQ,OAAA,CAAQ,GAAA,EAAK,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA,EACjD;AAAA,EAEA,OAAO,GAAA,EAAmB;AACxB,IAAA,IAAA,CAAK,OAAA,CAAQ,WAAW,GAAG,CAAA;AAAA,EAC7B;AAAA,EAEA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,QAAQ,KAAA,EAAM;AAAA,EACrB;AAAA,EAEA,IAAI,GAAA,EAAsB;AACxB,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,GAAG,CAAA,KAAM,IAAA;AAAA,EAC3B;AAAA,EAEA,IAAA,GAAiB;AACf,IAAA,MAAM,SAAmB,EAAC;AAE1B,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AAC5C,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA;AAE9B,MAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,QAAA,MAAA,CAAO,KAAK,GAAG,CAAA;AAAA,MACjB;AAAA,IACF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AACF;;;ACzEO,IAAM,QAAN,MAAe;AAAA,EAAf,WAAA,GAAA;AACL,IAAA,IAAA,CAAQ,QAAa,EAAC;AAAA,EAAA;AAAA,EAEtB,QAAQ,IAAA,EAAe;AACrB,IAAA,IAAA,CAAK,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,EACtB;AAAA,EAEA,OAAA,GAAyB;AACvB,IAAA,OAAO,IAAA,CAAK,MAAM,KAAA,EAAM;AAAA,EAC1B;AAAA,EAEA,IAAA,GAAsB;AACpB,IAAA,OAAO,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA,EACrB;AAAA,EAEA,IAAI,IAAA,GAAe;AACjB,IAAA,OAAO,KAAK,KAAA,CAAM,MAAA;AAAA,EACpB;AAAA,EAEA,IAAI,OAAA,GAAmB;AACrB,IAAA,OAAO,IAAA,CAAK,MAAM,MAAA,KAAW,CAAA;AAAA,EAC/B;AAAA,EAEA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,QAAQ,EAAC;AAAA,EAChB;AAAA,EAEA,OAAA,GAAe;AACb,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,KAAK,CAAA;AAAA,EACvB;AACF;;;AC9BO,IAAM,QAAN,MAAe;AAAA,EAAf,WAAA,GAAA;AACL,IAAA,IAAA,CAAQ,QAAa,EAAC;AAAA,EAAA;AAAA,EAEtB,KAAK,IAAA,EAAe;AAClB,IAAA,IAAA,CAAK,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,EACtB;AAAA,EAEA,GAAA,GAAqB;AACnB,IAAA,OAAO,IAAA,CAAK,MAAM,GAAA,EAAI;AAAA,EACxB;AAAA,EAEA,IAAA,GAAsB;AACpB,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,SAAS,CAAC,CAAA;AAAA,EACzC;AAAA,EAEA,IAAI,IAAA,GAAe;AACjB,IAAA,OAAO,KAAK,KAAA,CAAM,MAAA;AAAA,EACpB;AAAA,EAEA,IAAI,OAAA,GAAmB;AACrB,IAAA,OAAO,IAAA,CAAK,MAAM,MAAA,KAAW,CAAA;AAAA,EAC/B;AAAA,EAEA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,QAAQ,EAAC;AAAA,EAChB;AAAA,EAEA,OAAA,GAAe;AACb,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,KAAK,CAAA;AAAA,EACvB;AACF;;;AC5BA,IAAM,kBAAA,GAA+C;AAAA,EACnD,KAAA,EAAO,CAAA;AAAA,EACP,IAAA,EAAM,CAAA;AAAA,EACN,IAAA,EAAM,CAAA;AAAA,EACN,KAAA,EAAO;AACT,CAAA;AAQO,IAAM,SAAN,MAAa;AAAA,EAKlB,WAAA,CAAY,OAAA,GAAyB,EAAC,EAAG;AACvC,IAAA,IAAA,CAAK,KAAA,GAAQ,QAAQ,KAAA,IAAS,OAAA;AAC9B,IAAA,IAAA,CAAK,SAAS,OAAA,CAAQ,MAAA;AACtB,IAAA,IAAA,CAAK,SAAA,GAAY,QAAQ,SAAA,IAAa,IAAA;AAAA,EACxC;AAAA,EAEA,SAAS,IAAA,EAAuB;AAC9B,IAAA,IAAA,CAAK,GAAA,CAAI,SAAS,IAAI,CAAA;AAAA,EACxB;AAAA,EAEA,QAAQ,IAAA,EAAuB;AAC7B,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,IAAI,CAAA;AAAA,EACvB;AAAA,EAEA,QAAQ,IAAA,EAAuB;AAC7B,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,IAAI,CAAA;AAAA,EACvB;AAAA,EAEA,SAAS,IAAA,EAAuB;AAC9B,IAAA,IAAA,CAAK,GAAA,CAAI,SAAS,IAAI,CAAA;AAAA,EACxB;AAAA,EAEQ,GAAA,CAAI,OAAiB,IAAA,EAAuB;AAClD,IAAA,IAAI,mBAAmB,KAAK,CAAA,GAAI,kBAAA,CAAmB,IAAA,CAAK,KAAK,CAAA,EAAG;AAC9D,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,QAAkB,EAAC;AAEzB,IAAA,IAAI,KAAK,SAAA,EAAW;AAClB,MAAA,KAAA,CAAM,KAAK,CAAA,CAAA,EAAA,iBAAI,IAAI,MAAK,EAAE,WAAA,EAAa,CAAA,CAAA,CAAG,CAAA;AAAA,IAC5C;AAEA,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,CAAA,EAAI,KAAA,CAAM,WAAA,EAAa,CAAA,CAAA,CAAG,CAAA;AAErC,IAAA,IAAI,KAAK,MAAA,EAAQ;AACf,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,CAAA,EAAI,IAAA,CAAK,MAAM,CAAA,CAAA,CAAG,CAAA;AAAA,IAC/B;AAEA,IAAA,MAAM,MAAA,GAAS,KAAA,KAAU,OAAA,GAAU,KAAA,GAAQ,KAAA;AAC3C,IAAA,OAAA,CAAQ,MAAM,CAAA,CAAE,KAAA,CAAM,KAAK,GAAG,CAAA,EAAG,GAAG,IAAI,CAAA;AAAA,EAC1C;AACF;;;AC9DO,IAAM,MAAA,GAAN,MAAM,OAAA,CAAa;AAAA,EAChB,WAAA,CACW,KACA,MAAA,EACjB;AAFiB,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA;AACA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAChB;AAAA,EAEH,OAAO,GAAM,KAAA,EAA4B;AACvC,IAAA,OAAO,IAAI,OAAA,CAAiB,IAAA,EAAM,KAAK,CAAA;AAAA,EACzC;AAAA,EAEA,OAAO,IAAO,KAAA,EAA4B;AACxC,IAAA,OAAO,IAAI,OAAA,CAAiB,KAAA,EAAO,KAAK,CAAA;AAAA,EAC1C;AAAA,EAEA,IAAA,GAAiC;AAC/B,IAAA,OAAO,IAAA,CAAK,GAAA;AAAA,EACd;AAAA,EAEA,KAAA,GAAkC;AAChC,IAAA,OAAO,CAAC,IAAA,CAAK,GAAA;AAAA,EACf;AAAA,EAEA,IAAI,KAAA,GAAW;AACb,IAAA,IAAI,CAAC,KAAK,GAAA,EAAK;AACb,MAAA,MAAM,IAAI,MAAM,mCAAmC,CAAA;AAAA,IACrD;AAEA,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAAA,EAEA,IAAI,KAAA,GAAW;AACb,IAAA,IAAI,KAAK,GAAA,EAAK;AACZ,MAAA,MAAM,IAAI,MAAM,kCAAkC,CAAA;AAAA,IACpD;AAEA,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAAA,EAEA,MAAA,GAAY;AACV,IAAA,IAAI,CAAC,KAAK,GAAA,EAAK;AACb,MAAA,MAAM,IAAA,CAAK,MAAA;AAAA,IACb;AAEA,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAAA,EAEA,SAAS,YAAA,EAAoB;AAC3B,IAAA,IAAI,KAAK,GAAA,EAAK;AACZ,MAAA,OAAO,IAAA,CAAK,MAAA;AAAA,IACd;AAEA,IAAA,OAAO,YAAA;AAAA,EACT;AAAA,EAEA,SAAA,GAAe;AACb,IAAA,IAAI,KAAK,GAAA,EAAK;AACZ,MAAA,MAAM,IAAI,MAAM,kCAAkC,CAAA;AAAA,IACpD;AAEA,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAAA,EAEA,IAAO,EAAA,EAAmC;AACxC,IAAA,IAAI,KAAK,GAAA,EAAK;AACZ,MAAA,OAAO,OAAA,CAAO,EAAA,CAAG,EAAA,CAAG,IAAA,CAAK,MAAW,CAAC,CAAA;AAAA,IACvC;AAEA,IAAA,OAAO,OAAA,CAAO,GAAA,CAAI,IAAA,CAAK,MAAW,CAAA;AAAA,EACpC;AAAA,EAEA,OAAU,EAAA,EAAmC;AAC3C,IAAA,IAAI,KAAK,GAAA,EAAK;AACZ,MAAA,OAAO,OAAA,CAAO,EAAA,CAAG,IAAA,CAAK,MAAW,CAAA;AAAA,IACnC;AAEA,IAAA,OAAO,OAAA,CAAO,GAAA,CAAI,EAAA,CAAG,IAAA,CAAK,MAAW,CAAC,CAAA;AAAA,EACxC;AAAA,EAEA,QAAW,EAAA,EAA8C;AACvD,IAAA,IAAI,KAAK,GAAA,EAAK;AACZ,MAAA,OAAO,EAAA,CAAG,KAAK,MAAW,CAAA;AAAA,IAC5B;AAEA,IAAA,OAAO,OAAA,CAAO,GAAA,CAAI,IAAA,CAAK,MAAW,CAAA;AAAA,EACpC;AACF","file":"chunk-YHQI346M.js","sourcesContent":["interface StorageEntry<T> {\n value: T;\n expiresAt?: number;\n}\n\nexport interface StorageOptions {\n ttl?: number;\n}\n\nexport class TypedStorage {\n private readonly adapter: globalThis.Storage;\n\n constructor(adapter: globalThis.Storage) {\n this.adapter = adapter;\n }\n\n get<T>(key: string): T | null {\n const raw = this.adapter.getItem(key);\n\n if (raw === null) {\n return null;\n }\n\n try {\n const entry: StorageEntry<T> = JSON.parse(raw);\n\n if (entry.expiresAt !== undefined && Date.now() > entry.expiresAt) {\n this.remove(key);\n\n return null;\n }\n\n return entry.value;\n } catch {\n return null;\n }\n }\n\n set<T>(key: string, value: T, options?: StorageOptions): void {\n const entry: StorageEntry<T> = { value };\n\n if (options?.ttl !== undefined) {\n entry.expiresAt = Date.now() + options.ttl;\n }\n\n this.adapter.setItem(key, JSON.stringify(entry));\n }\n\n remove(key: string): void {\n this.adapter.removeItem(key);\n }\n\n clear(): void {\n this.adapter.clear();\n }\n\n has(key: string): boolean {\n return this.get(key) !== null;\n }\n\n keys(): string[] {\n const result: string[] = [];\n\n for (let i = 0; i < this.adapter.length; i++) {\n const key = this.adapter.key(i);\n\n if (key !== null) {\n result.push(key);\n }\n }\n\n return result;\n }\n}\n","export class Queue<T> {\n private items: T[] = [];\n\n enqueue(item: T): void {\n this.items.push(item);\n }\n\n dequeue(): T | undefined {\n return this.items.shift();\n }\n\n peek(): T | undefined {\n return this.items[0];\n }\n\n get size(): number {\n return this.items.length;\n }\n\n get isEmpty(): boolean {\n return this.items.length === 0;\n }\n\n clear(): void {\n this.items = [];\n }\n\n toArray(): T[] {\n return [...this.items];\n }\n}\n","export class Stack<T> {\n private items: T[] = [];\n\n push(item: T): void {\n this.items.push(item);\n }\n\n pop(): T | undefined {\n return this.items.pop();\n }\n\n peek(): T | undefined {\n return this.items[this.items.length - 1];\n }\n\n get size(): number {\n return this.items.length;\n }\n\n get isEmpty(): boolean {\n return this.items.length === 0;\n }\n\n clear(): void {\n this.items = [];\n }\n\n toArray(): T[] {\n return [...this.items];\n }\n}\n","export type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\nconst LOG_LEVEL_PRIORITY: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n};\n\nexport interface LoggerOptions {\n level?: LogLevel;\n prefix?: string;\n timestamp?: boolean;\n}\n\nexport class Logger {\n private readonly level: LogLevel;\n private readonly prefix: string | undefined;\n private readonly timestamp: boolean;\n\n constructor(options: LoggerOptions = {}) {\n this.level = options.level ?? \"debug\";\n this.prefix = options.prefix;\n this.timestamp = options.timestamp ?? true;\n }\n\n debug(...args: unknown[]): void {\n this.log(\"debug\", args);\n }\n\n info(...args: unknown[]): void {\n this.log(\"info\", args);\n }\n\n warn(...args: unknown[]): void {\n this.log(\"warn\", args);\n }\n\n error(...args: unknown[]): void {\n this.log(\"error\", args);\n }\n\n private log(level: LogLevel, args: unknown[]): void {\n if (LOG_LEVEL_PRIORITY[level] < LOG_LEVEL_PRIORITY[this.level]) {\n return;\n }\n\n const parts: string[] = [];\n\n if (this.timestamp) {\n parts.push(`[${new Date().toISOString()}]`);\n }\n\n parts.push(`[${level.toUpperCase()}]`);\n\n if (this.prefix) {\n parts.push(`[${this.prefix}]`);\n }\n\n const method = level === \"debug\" ? \"log\" : level;\n console[method](parts.join(\" \"), ...args);\n }\n}\n","export class Result<T, E> {\n private constructor(\n private readonly _ok: boolean,\n private readonly _value: T | E,\n ) {}\n\n static ok<T>(value: T): Result<T, never> {\n return new Result<T, never>(true, value);\n }\n\n static err<E>(error: E): Result<never, E> {\n return new Result<never, E>(false, error);\n }\n\n isOk(): this is Result<T, never> {\n return this._ok;\n }\n\n isErr(): this is Result<never, E> {\n return !this._ok;\n }\n\n get value(): T {\n if (!this._ok) {\n throw new Error(\"Cannot get value of an Err result\");\n }\n\n return this._value as T;\n }\n\n get error(): E {\n if (this._ok) {\n throw new Error(\"Cannot get error of an Ok result\");\n }\n\n return this._value as E;\n }\n\n unwrap(): T {\n if (!this._ok) {\n throw this._value;\n }\n\n return this._value as T;\n }\n\n unwrapOr(defaultValue: T): T {\n if (this._ok) {\n return this._value as T;\n }\n\n return defaultValue;\n }\n\n unwrapErr(): E {\n if (this._ok) {\n throw new Error(\"Called unwrapErr on an Ok result\");\n }\n\n return this._value as E;\n }\n\n map<U>(fn: (value: T) => U): Result<U, E> {\n if (this._ok) {\n return Result.ok(fn(this._value as T));\n }\n\n return Result.err(this._value as E);\n }\n\n mapErr<F>(fn: (error: E) => F): Result<T, F> {\n if (this._ok) {\n return Result.ok(this._value as T);\n }\n\n return Result.err(fn(this._value as E));\n }\n\n flatMap<U>(fn: (value: T) => Result<U, E>): Result<U, E> {\n if (this._ok) {\n return fn(this._value as T);\n }\n\n return Result.err(this._value as E);\n }\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkBJCELHLJ_cjs = require('../chunk-BJCELHLJ.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "Logger", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkBJCELHLJ_cjs.Logger; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "Queue", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunkBJCELHLJ_cjs.Queue; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "Result", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunkBJCELHLJ_cjs.Result; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "Stack", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunkBJCELHLJ_cjs.Stack; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "TypedStorage", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return chunkBJCELHLJ_cjs.TypedStorage; }
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=index.cjs.map
|
|
28
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
interface StorageOptions {
|
|
2
|
+
ttl?: number;
|
|
3
|
+
}
|
|
4
|
+
declare class TypedStorage {
|
|
5
|
+
private readonly adapter;
|
|
6
|
+
constructor(adapter: globalThis.Storage);
|
|
7
|
+
get<T>(key: string): T | null;
|
|
8
|
+
set<T>(key: string, value: T, options?: StorageOptions): void;
|
|
9
|
+
remove(key: string): void;
|
|
10
|
+
clear(): void;
|
|
11
|
+
has(key: string): boolean;
|
|
12
|
+
keys(): string[];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
declare class Queue<T> {
|
|
16
|
+
private items;
|
|
17
|
+
enqueue(item: T): void;
|
|
18
|
+
dequeue(): T | undefined;
|
|
19
|
+
peek(): T | undefined;
|
|
20
|
+
get size(): number;
|
|
21
|
+
get isEmpty(): boolean;
|
|
22
|
+
clear(): void;
|
|
23
|
+
toArray(): T[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
declare class Stack<T> {
|
|
27
|
+
private items;
|
|
28
|
+
push(item: T): void;
|
|
29
|
+
pop(): T | undefined;
|
|
30
|
+
peek(): T | undefined;
|
|
31
|
+
get size(): number;
|
|
32
|
+
get isEmpty(): boolean;
|
|
33
|
+
clear(): void;
|
|
34
|
+
toArray(): T[];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
type LogLevel = "debug" | "info" | "warn" | "error";
|
|
38
|
+
interface LoggerOptions {
|
|
39
|
+
level?: LogLevel;
|
|
40
|
+
prefix?: string;
|
|
41
|
+
timestamp?: boolean;
|
|
42
|
+
}
|
|
43
|
+
declare class Logger {
|
|
44
|
+
private readonly level;
|
|
45
|
+
private readonly prefix;
|
|
46
|
+
private readonly timestamp;
|
|
47
|
+
constructor(options?: LoggerOptions);
|
|
48
|
+
debug(...args: unknown[]): void;
|
|
49
|
+
info(...args: unknown[]): void;
|
|
50
|
+
warn(...args: unknown[]): void;
|
|
51
|
+
error(...args: unknown[]): void;
|
|
52
|
+
private log;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
declare class Result<T, E> {
|
|
56
|
+
private readonly _ok;
|
|
57
|
+
private readonly _value;
|
|
58
|
+
private constructor();
|
|
59
|
+
static ok<T>(value: T): Result<T, never>;
|
|
60
|
+
static err<E>(error: E): Result<never, E>;
|
|
61
|
+
isOk(): this is Result<T, never>;
|
|
62
|
+
isErr(): this is Result<never, E>;
|
|
63
|
+
get value(): T;
|
|
64
|
+
get error(): E;
|
|
65
|
+
unwrap(): T;
|
|
66
|
+
unwrapOr(defaultValue: T): T;
|
|
67
|
+
unwrapErr(): E;
|
|
68
|
+
map<U>(fn: (value: T) => U): Result<U, E>;
|
|
69
|
+
mapErr<F>(fn: (error: E) => F): Result<T, F>;
|
|
70
|
+
flatMap<U>(fn: (value: T) => Result<U, E>): Result<U, E>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { type LogLevel, Logger, type LoggerOptions, Queue, Result, Stack, type StorageOptions, TypedStorage };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
interface StorageOptions {
|
|
2
|
+
ttl?: number;
|
|
3
|
+
}
|
|
4
|
+
declare class TypedStorage {
|
|
5
|
+
private readonly adapter;
|
|
6
|
+
constructor(adapter: globalThis.Storage);
|
|
7
|
+
get<T>(key: string): T | null;
|
|
8
|
+
set<T>(key: string, value: T, options?: StorageOptions): void;
|
|
9
|
+
remove(key: string): void;
|
|
10
|
+
clear(): void;
|
|
11
|
+
has(key: string): boolean;
|
|
12
|
+
keys(): string[];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
declare class Queue<T> {
|
|
16
|
+
private items;
|
|
17
|
+
enqueue(item: T): void;
|
|
18
|
+
dequeue(): T | undefined;
|
|
19
|
+
peek(): T | undefined;
|
|
20
|
+
get size(): number;
|
|
21
|
+
get isEmpty(): boolean;
|
|
22
|
+
clear(): void;
|
|
23
|
+
toArray(): T[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
declare class Stack<T> {
|
|
27
|
+
private items;
|
|
28
|
+
push(item: T): void;
|
|
29
|
+
pop(): T | undefined;
|
|
30
|
+
peek(): T | undefined;
|
|
31
|
+
get size(): number;
|
|
32
|
+
get isEmpty(): boolean;
|
|
33
|
+
clear(): void;
|
|
34
|
+
toArray(): T[];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
type LogLevel = "debug" | "info" | "warn" | "error";
|
|
38
|
+
interface LoggerOptions {
|
|
39
|
+
level?: LogLevel;
|
|
40
|
+
prefix?: string;
|
|
41
|
+
timestamp?: boolean;
|
|
42
|
+
}
|
|
43
|
+
declare class Logger {
|
|
44
|
+
private readonly level;
|
|
45
|
+
private readonly prefix;
|
|
46
|
+
private readonly timestamp;
|
|
47
|
+
constructor(options?: LoggerOptions);
|
|
48
|
+
debug(...args: unknown[]): void;
|
|
49
|
+
info(...args: unknown[]): void;
|
|
50
|
+
warn(...args: unknown[]): void;
|
|
51
|
+
error(...args: unknown[]): void;
|
|
52
|
+
private log;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
declare class Result<T, E> {
|
|
56
|
+
private readonly _ok;
|
|
57
|
+
private readonly _value;
|
|
58
|
+
private constructor();
|
|
59
|
+
static ok<T>(value: T): Result<T, never>;
|
|
60
|
+
static err<E>(error: E): Result<never, E>;
|
|
61
|
+
isOk(): this is Result<T, never>;
|
|
62
|
+
isErr(): this is Result<never, E>;
|
|
63
|
+
get value(): T;
|
|
64
|
+
get error(): E;
|
|
65
|
+
unwrap(): T;
|
|
66
|
+
unwrapOr(defaultValue: T): T;
|
|
67
|
+
unwrapErr(): E;
|
|
68
|
+
map<U>(fn: (value: T) => U): Result<U, E>;
|
|
69
|
+
mapErr<F>(fn: (error: E) => F): Result<T, F>;
|
|
70
|
+
flatMap<U>(fn: (value: T) => Result<U, E>): Result<U, E>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { type LogLevel, Logger, type LoggerOptions, Queue, Result, Stack, type StorageOptions, TypedStorage };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|