@sdkwork/sdk-common 1.0.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.
Files changed (100) hide show
  1. package/README.md +89 -0
  2. package/dist/auth/index.d.ts +3 -0
  3. package/dist/auth/index.d.ts.map +1 -0
  4. package/dist/auth/token-manager.cjs +127 -0
  5. package/dist/auth/token-manager.cjs.map +1 -0
  6. package/dist/auth/token-manager.d.ts +80 -0
  7. package/dist/auth/token-manager.d.ts.map +1 -0
  8. package/dist/auth/token-manager.js +127 -0
  9. package/dist/auth/token-manager.js.map +1 -0
  10. package/dist/auth.cjs +9 -0
  11. package/dist/auth.cjs.map +1 -0
  12. package/dist/auth.js +9 -0
  13. package/dist/auth.js.map +1 -0
  14. package/dist/core/index.d.ts +3 -0
  15. package/dist/core/index.d.ts.map +1 -0
  16. package/dist/core/types.cjs +54 -0
  17. package/dist/core/types.cjs.map +1 -0
  18. package/dist/core/types.d.ts +187 -0
  19. package/dist/core/types.d.ts.map +1 -0
  20. package/dist/core/types.js +54 -0
  21. package/dist/core/types.js.map +1 -0
  22. package/dist/core.cjs +11 -0
  23. package/dist/core.cjs.map +1 -0
  24. package/dist/core.js +11 -0
  25. package/dist/core.js.map +1 -0
  26. package/dist/errors/index.d.ts +103 -0
  27. package/dist/errors/index.d.ts.map +1 -0
  28. package/dist/errors.cjs +286 -0
  29. package/dist/errors.cjs.map +1 -0
  30. package/dist/errors.js +286 -0
  31. package/dist/errors.js.map +1 -0
  32. package/dist/http/base-client.cjs +485 -0
  33. package/dist/http/base-client.cjs.map +1 -0
  34. package/dist/http/base-client.d.ts +98 -0
  35. package/dist/http/base-client.d.ts.map +1 -0
  36. package/dist/http/base-client.js +485 -0
  37. package/dist/http/base-client.js.map +1 -0
  38. package/dist/http/index.d.ts +2 -0
  39. package/dist/http/index.d.ts.map +1 -0
  40. package/dist/http.cjs +6 -0
  41. package/dist/http.cjs.map +1 -0
  42. package/dist/http.js +6 -0
  43. package/dist/http.js.map +1 -0
  44. package/dist/index.cjs +48 -0
  45. package/dist/index.cjs.map +1 -0
  46. package/dist/index.d.ts +11 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +48 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/utils/array.d.ts +146 -0
  51. package/dist/utils/array.d.ts.map +1 -0
  52. package/dist/utils/cache.cjs +80 -0
  53. package/dist/utils/cache.cjs.map +1 -0
  54. package/dist/utils/cache.d.ts +25 -0
  55. package/dist/utils/cache.d.ts.map +1 -0
  56. package/dist/utils/cache.js +80 -0
  57. package/dist/utils/cache.js.map +1 -0
  58. package/dist/utils/date.cjs +25 -0
  59. package/dist/utils/date.cjs.map +1 -0
  60. package/dist/utils/date.d.ts +127 -0
  61. package/dist/utils/date.d.ts.map +1 -0
  62. package/dist/utils/date.js +25 -0
  63. package/dist/utils/date.js.map +1 -0
  64. package/dist/utils/encoding.cjs +678 -0
  65. package/dist/utils/encoding.cjs.map +1 -0
  66. package/dist/utils/encoding.d.ts +107 -0
  67. package/dist/utils/encoding.d.ts.map +1 -0
  68. package/dist/utils/encoding.js +679 -0
  69. package/dist/utils/encoding.js.map +1 -0
  70. package/dist/utils/index.d.ts +11 -0
  71. package/dist/utils/index.d.ts.map +1 -0
  72. package/dist/utils/logger.cjs +110 -0
  73. package/dist/utils/logger.cjs.map +1 -0
  74. package/dist/utils/logger.d.ts +28 -0
  75. package/dist/utils/logger.d.ts.map +1 -0
  76. package/dist/utils/logger.js +110 -0
  77. package/dist/utils/logger.js.map +1 -0
  78. package/dist/utils/object.d.ts +131 -0
  79. package/dist/utils/object.d.ts.map +1 -0
  80. package/dist/utils/retry.cjs +73 -0
  81. package/dist/utils/retry.cjs.map +1 -0
  82. package/dist/utils/retry.d.ts +9 -0
  83. package/dist/utils/retry.d.ts.map +1 -0
  84. package/dist/utils/retry.js +73 -0
  85. package/dist/utils/retry.js.map +1 -0
  86. package/dist/utils/string.cjs +820 -0
  87. package/dist/utils/string.cjs.map +1 -0
  88. package/dist/utils/string.d.ts +160 -0
  89. package/dist/utils/string.d.ts.map +1 -0
  90. package/dist/utils/string.js +821 -0
  91. package/dist/utils/string.js.map +1 -0
  92. package/dist/utils/url.d.ts +106 -0
  93. package/dist/utils/url.d.ts.map +1 -0
  94. package/dist/utils/validation.d.ts +157 -0
  95. package/dist/utils/validation.d.ts.map +1 -0
  96. package/dist/utils.cjs +52 -0
  97. package/dist/utils.cjs.map +1 -0
  98. package/dist/utils.js +46 -0
  99. package/dist/utils.js.map +1 -0
  100. package/package.json +80 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sources":["../../src/utils/string.ts"],"sourcesContent":["export const EMPTY_STRING = '';\nexport const SPACE = ' ';\nexport const DASH = '-';\nexport const UNDERSCORE = '_';\nexport const DOT = '.';\nexport const SLASH = '/';\nexport const BACKSLASH = '\\\\';\nexport const NEWLINE = '\\n';\nexport const CARRIAGE_RETURN = '\\r';\nexport const TAB = '\\t';\n\nexport namespace StringUtils {\n export function isEmpty(value: unknown): boolean {\n return value === null || value === undefined || value === '';\n }\n\n export function isNotEmpty(value: unknown): boolean {\n return !isEmpty(value);\n }\n\n export function isBlank(value: unknown): boolean {\n if (isEmpty(value)) return true;\n if (typeof value !== 'string') return false;\n return value.trim().length === 0;\n }\n\n export function isNotBlank(value: unknown): boolean {\n return !isBlank(value);\n }\n\n export function trim(value: string): string {\n return value?.trim() ?? '';\n }\n\n export function trimStart(value: string): string {\n return value?.trimStart() ?? '';\n }\n\n export function trimEnd(value: string): string {\n return value?.trimEnd() ?? '';\n }\n\n export function toLowerCase(value: string): string {\n return value?.toLowerCase() ?? '';\n }\n\n export function toUpperCase(value: string): string {\n return value?.toUpperCase() ?? '';\n }\n\n export function capitalize(value: string): string {\n if (isEmpty(value)) return '';\n return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();\n }\n\n export function capitalizeWords(value: string): string {\n if (isEmpty(value)) return '';\n return value.split(/\\s+/).map(capitalize).join(' ');\n }\n\n export function camelCase(value: string): string {\n if (isEmpty(value)) return '';\n return value\n .replace(/[-_\\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))\n .replace(/^(.)/, (char) => char.toLowerCase());\n }\n\n export function pascalCase(value: string): string {\n if (isEmpty(value)) return '';\n const camel = camelCase(value);\n return camel.charAt(0).toUpperCase() + camel.slice(1);\n }\n\n export function kebabCase(value: string): string {\n if (isEmpty(value)) return '';\n return value\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_]+/g, '-')\n .toLowerCase();\n }\n\n export function snakeCase(value: string): string {\n if (isEmpty(value)) return '';\n return value\n .replace(/([a-z])([A-Z])/g, '$1_$2')\n .replace(/[\\s-]+/g, '_')\n .toLowerCase();\n }\n\n export function constantCase(value: string): string {\n return snakeCase(value).toUpperCase();\n }\n\n export function truncate(value: string, length: number, suffix: string = '...'): string {\n if (isEmpty(value) || value.length <= length) return value ?? '';\n return value.slice(0, length - suffix.length) + suffix;\n }\n\n export function truncateWords(value: string, wordCount: number, suffix: string = '...'): string {\n if (isEmpty(value)) return '';\n const words = value.split(/\\s+/);\n if (words.length <= wordCount) return value;\n return words.slice(0, wordCount).join(' ') + suffix;\n }\n\n export function padStart(value: string, length: number, padChar: string = ' '): string {\n return value?.padStart(length, padChar) ?? '';\n }\n\n export function padEnd(value: string, length: number, padChar: string = ' '): string {\n return value?.padEnd(length, padChar) ?? '';\n }\n\n export function repeat(value: string, count: number): string {\n if (isEmpty(value) || count <= 0) return '';\n return value.repeat(count);\n }\n\n export function reverse(value: string): string {\n if (isEmpty(value)) return '';\n return value.split('').reverse().join('');\n }\n\n export function startsWith(value: string, prefix: string): boolean {\n return value?.startsWith(prefix) ?? false;\n }\n\n export function endsWith(value: string, suffix: string): boolean {\n return value?.endsWith(suffix) ?? false;\n }\n\n export function contains(value: string, search: string): boolean {\n return value?.includes(search) ?? false;\n }\n\n export function containsIgnoreCase(value: string, search: string): boolean {\n return value?.toLowerCase().includes(search.toLowerCase()) ?? false;\n }\n\n export function indexOf(value: string, search: string): number {\n return value?.indexOf(search) ?? -1;\n }\n\n export function lastIndexOf(value: string, search: string): number {\n return value?.lastIndexOf(search) ?? -1;\n }\n\n export function substring(value: string, start: number, end?: number): string {\n if (isEmpty(value)) return '';\n return end !== undefined ? value.slice(start, end) : value.slice(start);\n }\n\n export function slice(value: string, start: number, end?: number): string {\n return substring(value, start, end);\n }\n\n export function split(value: string, separator: string | RegExp, limit?: number): string[] {\n if (isEmpty(value)) return [];\n return value.split(separator, limit);\n }\n\n export function join(values: string[], separator: string = ''): string {\n return values?.join(separator) ?? '';\n }\n\n export function replace(value: string, search: string | RegExp, replacement: string): string {\n return value?.replace(search, replacement) ?? '';\n }\n\n export function replaceAll(value: string, search: string | RegExp, replacement: string): string {\n return value?.replaceAll(search, replacement) ?? '';\n }\n\n export function remove(value: string, search: string | RegExp): string {\n return value?.replace(search, '') ?? '';\n }\n\n export function removeAll(value: string, search: string | RegExp): string {\n const regex = typeof search === 'string' ? new RegExp(search, 'g') : new RegExp(search.source, `${search.flags}g`);\n return value?.replace(regex, '') ?? '';\n }\n\n export function countOccurrences(value: string, search: string): number {\n if (isEmpty(value) || isEmpty(search)) return 0;\n return (value.match(new RegExp(escapeRegex(search), 'g')) || []).length;\n }\n\n export function escapeHtml(value: string): string {\n const htmlEntities: Record<string, string> = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;'\n };\n return value?.replace(/[&<>\"']/g, char => htmlEntities[char] || char) ?? '';\n }\n\n export function unescapeHtml(value: string): string {\n const htmlEntities: Record<string, string> = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\",\n '&#x27;': \"'\",\n '&apos;': \"'\"\n };\n return value?.replace(/&(?:amp|lt|gt|quot|#39|#x27|apos);/g, entity => htmlEntities[entity] || entity) ?? '';\n }\n\n export function escapeRegex(value: string): string {\n return value?.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') ?? '';\n }\n\n export function isNumeric(value: string): boolean {\n if (isEmpty(value)) return false;\n return !isNaN(Number(value)) && !isNaN(parseFloat(value));\n }\n\n export function isAlpha(value: string): boolean {\n if (isEmpty(value)) return false;\n return /^[a-zA-Z]+$/.test(value);\n }\n\n export function isAlphanumeric(value: string): boolean {\n if (isEmpty(value)) return false;\n return /^[a-zA-Z0-9]+$/.test(value);\n }\n\n export function isHex(value: string): boolean {\n if (isEmpty(value)) return false;\n return /^[0-9a-fA-F]+$/.test(value);\n }\n\n export function isUuid(value: string): boolean {\n if (isEmpty(value)) return false;\n return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value);\n }\n\n export function isEmail(value: string): boolean {\n if (isEmpty(value)) return false;\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value);\n }\n\n export function isUrl(value: string): boolean {\n if (isEmpty(value)) return false;\n try {\n new URL(value);\n return true;\n } catch {\n return false;\n }\n }\n\n export function isPhoneNumber(value: string): boolean {\n if (isEmpty(value)) return false;\n return /^\\+?[\\d\\s-()]{10,}$/.test(value);\n }\n\n export function mask(value: string, start: number, end: number, maskChar: string = '*'): string {\n if (isEmpty(value)) return '';\n const actualStart = Math.max(0, start);\n const actualEnd = Math.min(value.length, end);\n if (actualStart >= actualEnd) return value;\n const masked = maskChar.repeat(actualEnd - actualStart);\n return value.slice(0, actualStart) + masked + value.slice(actualEnd);\n }\n\n export function maskEmail(value: string): string {\n if (!isEmail(value)) return value;\n const parts = value.split('@');\n const localPart = parts[0];\n const domain = parts[1];\n if (!localPart || !domain) return value;\n const maskedLocal = mask(localPart, 2, localPart.length - 2);\n return `${maskedLocal}@${domain}`;\n }\n\n export function maskPhone(value: string): string {\n if (isEmpty(value)) return value;\n const digits = value.replace(/\\D/g, '');\n if (digits.length < 7) return value;\n return mask(digits, 3, digits.length - 4);\n }\n\n export function maskCreditCard(value: string): string {\n if (isEmpty(value)) return value;\n const digits = value.replace(/\\D/g, '');\n if (digits.length < 8) return value;\n return mask(digits, 4, digits.length - 4);\n }\n\n export function formatNumber(value: number | string, options?: Intl.NumberFormatOptions): string {\n const num = typeof value === 'string' ? parseFloat(value) : value;\n if (isNaN(num)) return '';\n return num.toLocaleString(undefined, options);\n }\n\n export function formatCurrency(value: number | string, currency: string = 'USD', locale?: string): string {\n const num = typeof value === 'string' ? parseFloat(value) : value;\n if (isNaN(num)) return '';\n return num.toLocaleString(locale, { style: 'currency', currency });\n }\n\n export function formatPercentage(value: number | string, decimals: number = 0): string {\n const num = typeof value === 'string' ? parseFloat(value) : value;\n if (isNaN(num)) return '';\n return `${(num * 100).toFixed(decimals)}%`;\n }\n\n export function formatBytes(bytes: number, decimals: number = 2): string {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(decimals))} ${sizes[i]}`;\n }\n\n export function random(length: number = 16, charset: string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'): string {\n let result = '';\n for (let i = 0; i < length; i++) {\n result += charset.charAt(Math.floor(Math.random() * charset.length));\n }\n return result;\n }\n\n export function uuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n export function slugify(value: string): string {\n return value\n ?.toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_-]+/g, '-')\n .replace(/^-+|-+$/g, '') ?? '';\n }\n\n export function unslugify(value: string): string {\n return value\n ?.replace(/-/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase()) ?? '';\n }\n\n export function levenshteinDistance(a: string, b: string): number {\n const matrix: number[][] = [];\n for (let i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n for (let j = 0; j <= a.length; j++) {\n if (matrix[0]) matrix[0][j] = j;\n }\n for (let i = 1; i <= b.length; i++) {\n for (let j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i]![j] = matrix[i - 1]![j - 1]!;\n } else {\n matrix[i]![j] = Math.min(\n matrix[i - 1]![j - 1]! + 1,\n matrix[i]![j - 1]! + 1,\n matrix[i - 1]![j]! + 1\n );\n }\n }\n }\n return matrix[b.length]![a.length]!;\n }\n\n export function similarity(a: string, b: string): number {\n if (isEmpty(a) && isEmpty(b)) return 1;\n if (isEmpty(a) || isEmpty(b)) return 0;\n const distance = levenshteinDistance(a, b);\n const maxLength = Math.max(a.length, b.length);\n return 1 - distance / maxLength;\n }\n\n export function fuzzyMatch(text: string, pattern: string, threshold: number = 0.6): boolean {\n return similarity(text, pattern) >= threshold;\n }\n\n export function equals(a: string, b: string, ignoreCase: boolean = false): boolean {\n if (ignoreCase) {\n return a?.toLowerCase() === b?.toLowerCase();\n }\n return a === b;\n }\n\n export function equalsIgnoreCase(a: string, b: string): boolean {\n return equals(a, b, true);\n }\n\n export function wordCount(value: string): number {\n if (isEmpty(value)) return 0;\n return value.trim().split(/\\s+/).filter(Boolean).length;\n }\n\n export function characterCount(value: string, includeSpaces: boolean = true): number {\n if (isEmpty(value)) return 0;\n return includeSpaces ? value.length : value.replace(/\\s/g, '').length;\n }\n\n export function lineCount(value: string): number {\n if (isEmpty(value)) return 0;\n return value.split(/\\r?\\n/).length;\n }\n\n export function splitLines(value: string): string[] {\n if (isEmpty(value)) return [];\n return value.split(/\\r?\\n/);\n }\n\n export function words(value: string): string[] {\n if (isEmpty(value)) return [];\n return value.trim().split(/\\s+/).filter(Boolean);\n }\n\n export function charAt(value: string, index: number): string {\n return value?.charAt(index) ?? '';\n }\n\n export function charCodeAt(value: string, index: number): number {\n return value?.charCodeAt(index) ?? NaN;\n }\n\n export function fromCharCode(...codes: number[]): string {\n return String.fromCharCode(...codes);\n }\n\n export function insert(value: string, index: number, insertValue: string): string {\n if (isEmpty(value)) return insertValue;\n return value.slice(0, index) + insertValue + value.slice(index);\n }\n\n export function swapCase(value: string): string {\n return value?.replace(/[a-zA-Z]/g, char => {\n return char === char.toUpperCase() ? char.toLowerCase() : char.toUpperCase();\n }) ?? '';\n }\n\n export function surround(value: string, wrapper: string): string {\n return `${wrapper}${value}${wrapper}`;\n }\n\n export function quote(value: string, quoteChar: string = '\"'): string {\n return `${quoteChar}${value}${quoteChar}`;\n }\n\n export function unquote(value: string): string {\n if (isEmpty(value)) return '';\n if ((value.startsWith('\"') && value.endsWith('\"')) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\")) ||\n (value.startsWith('`') && value.endsWith('`'))) {\n return value.slice(1, -1);\n }\n return value;\n }\n\n export function wrap(value: string, prefix: string, suffix: string = prefix): string {\n return `${prefix}${value}${suffix}`;\n }\n\n export function unwrap(value: string, prefix: string, suffix: string = prefix): string {\n if (isEmpty(value)) return '';\n if (value.startsWith(prefix) && value.endsWith(suffix)) {\n return value.slice(prefix.length, -suffix.length);\n }\n return value;\n }\n\n export function template(templateStr: string, values: Record<string, unknown>): string {\n return templateStr?.replace(/\\{\\{(\\w+)\\}\\}/g, (_, key) => String(values[key] ?? '')) ?? '';\n }\n\n export function interpolate(templateStr: string, values: Record<string, unknown>): string {\n return template(templateStr, values);\n }\n\n export function dedent(value: string): string {\n const lines = value.split('\\n');\n const minIndent = Math.min(\n ...lines.filter(line => line.trim().length > 0).map(line => line.match(/^\\s*/)?.[0].length ?? 0)\n );\n return lines.map(line => line.slice(minIndent)).join('\\n');\n }\n\n export function indent(value: string, spaces: number = 2): string {\n const indentation = ' '.repeat(spaces);\n return value.split('\\n').map(line => indentation + line).join('\\n');\n }\n\n export function center(value: string, width: number, padChar: string = ' '): string {\n if (isEmpty(value) || value.length >= width) return value ?? '';\n const padding = width - value.length;\n const leftPad = Math.floor(padding / 2);\n const rightPad = padding - leftPad;\n return padChar.repeat(leftPad) + value + padChar.repeat(rightPad);\n }\n\n export function alignLeft(value: string, width: number, padChar: string = ' '): string {\n return padEnd(value, width, padChar);\n }\n\n export function alignRight(value: string, width: number, padChar: string = ' '): string {\n return padStart(value, width, padChar);\n }\n\n export function alignCenter(value: string, width: number, padChar: string = ' '): string {\n return center(value, width, padChar);\n }\n\n export function toBoolean(value: string): boolean {\n const truthy = ['true', '1', 'yes', 'on', 'y'];\n return truthy.includes(value?.toLowerCase().trim());\n }\n\n export function toNumber(value: string, defaultValue: number = 0): number {\n const num = parseFloat(value);\n return isNaN(num) ? defaultValue : num;\n }\n\n export function toArray(value: string, separator: string | RegExp = ','): string[] {\n return split(value, separator);\n }\n\n export function hashCode(value: string): number {\n let hash = 0;\n for (let i = 0; i < value.length; i++) {\n const char = value.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash;\n }\n return hash;\n }\n\n export function isPalindrome(value: string): boolean {\n const cleaned = value.toLowerCase().replace(/[^a-z0-9]/g, '');\n return cleaned === cleaned.split('').reverse().join('');\n }\n\n export function isAnagram(a: string, b: string): boolean {\n const normalize = (s: string) => s.toLowerCase().replace(/[^a-z0-9]/g, '').split('').sort().join('');\n return normalize(a) === normalize(b);\n }\n\n export function reverseWords(value: string): string {\n return value?.split(/\\s+/).reverse().join(' ') ?? '';\n }\n\n export function sortCharacters(value: string): string {\n return value?.split('').sort().join('') ?? '';\n }\n\n export function uniqueCharacters(value: string): string {\n return [...new Set(value)].join('');\n }\n\n export function removeDuplicates(value: string): string {\n return value?.split('').filter((char, index, arr) => arr.indexOf(char) === index).join('') ?? '';\n }\n\n export function longestCommonSubstring(a: string, b: string): string {\n if (isEmpty(a) || isEmpty(b)) return '';\n const matrix: number[][] = Array(a.length + 1).fill(null).map(() => Array(b.length + 1).fill(0));\n let maxLength = 0;\n let endIndex = 0;\n for (let i = 1; i <= a.length; i++) {\n for (let j = 1; j <= b.length; j++) {\n if (a[i - 1] === b[j - 1]) {\n matrix[i]![j] = matrix[i - 1]![j - 1]! + 1;\n if (matrix[i]![j]! > maxLength) {\n maxLength = matrix[i]![j]!;\n endIndex = i;\n }\n }\n }\n }\n return a.slice(endIndex - maxLength, endIndex);\n }\n\n export function longestCommonPrefix(strings: string[]): string {\n if (strings.length === 0) return '';\n if (strings.length === 1) return strings[0] ?? '';\n const sorted = [...strings].sort();\n const first = sorted[0] ?? '';\n const last = sorted[sorted.length - 1] ?? '';\n let i = 0;\n while (i < first.length && first[i] === last[i]) {\n i++;\n }\n return first.slice(0, i);\n }\n\n export function longestCommonSuffix(strings: string[]): string {\n const reversed = strings.map(s => s?.split('').reverse().join('') ?? '');\n return longestCommonPrefix(reversed).split('').reverse().join('');\n }\n\n export function truncateMiddle(value: string, maxLength: number, separator: string = '...'): string {\n if (isEmpty(value) || value.length <= maxLength) return value ?? '';\n const sepLen = separator.length;\n const charsToShow = maxLength - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return value.slice(0, frontChars) + separator + value.slice(-backChars);\n }\n\n export function ellipsis(value: string, maxLength: number): string {\n return truncate(value, maxLength, '...');\n }\n\n export function ellipsisMiddle(value: string, maxLength: number): string {\n return truncateMiddle(value, maxLength, '...');\n }\n\n export function pad(value: string, length: number, padChar: string = ' '): string {\n return center(value, length, padChar);\n }\n\n export function padCenter(value: string, length: number, padChar: string = ' '): string {\n return center(value, length, padChar);\n }\n\n export function isAscii(value: string): boolean {\n return /^[\\x00-\\x7F]*$/.test(value);\n }\n\n export function isLowerCase(value: string): boolean {\n return value === value.toLowerCase();\n }\n\n export function isUpperCase(value: string): boolean {\n return value === value.toUpperCase();\n }\n\n export function isCapitalized(value: string): boolean {\n return value.charAt(0) === value.charAt(0).toUpperCase();\n }\n\n export function swapPrefix(value: string, oldPrefix: string, newPrefix: string): string {\n if (value.startsWith(oldPrefix)) {\n return newPrefix + value.slice(oldPrefix.length);\n }\n return value;\n }\n\n export function swapSuffix(value: string, oldSuffix: string, newSuffix: string): string {\n if (value.endsWith(oldSuffix)) {\n return value.slice(0, -oldSuffix.length) + newSuffix;\n }\n return value;\n }\n\n export function ensurePrefix(value: string, prefix: string): string {\n return value.startsWith(prefix) ? value : prefix + value;\n }\n\n export function ensureSuffix(value: string, suffix: string): string {\n return value.endsWith(suffix) ? value : value + suffix;\n }\n\n export function removePrefix(value: string, prefix: string): string {\n return value.startsWith(prefix) ? value.slice(prefix.length) : value;\n }\n\n export function removeSuffix(value: string, suffix: string): string {\n return value.endsWith(suffix) ? value.slice(0, -suffix.length) : value;\n }\n\n export function take(value: string, n: number): string {\n return value?.slice(0, n) ?? '';\n }\n\n export function takeRight(value: string, n: number): string {\n return value?.slice(-n) ?? '';\n }\n\n export function takeWhile(value: string, predicate: (char: string) => boolean): string {\n let result = '';\n for (const char of value ?? '') {\n if (!predicate(char)) break;\n result += char;\n }\n return result;\n }\n\n export function takeRightWhile(value: string, predicate: (char: string) => boolean): string {\n let result = '';\n for (let i = (value?.length ?? 0) - 1; i >= 0; i--) {\n const char = value?.charAt(i) ?? '';\n if (!predicate(char)) break;\n result = char + result;\n }\n return result;\n }\n\n export function drop(value: string, n: number): string {\n return value?.slice(n) ?? '';\n }\n\n export function dropRight(value: string, n: number): string {\n return value?.slice(0, -n) ?? '';\n }\n\n export function dropWhile(value: string, predicate: (char: string) => boolean): string {\n let i = 0;\n for (const char of value ?? '') {\n if (!predicate(char)) break;\n i++;\n }\n return value?.slice(i) ?? '';\n }\n\n export function dropRightWhile(value: string, predicate: (char: string) => boolean): string {\n let i = (value?.length ?? 0) - 1;\n while (i >= 0 && predicate(value?.charAt(i) ?? '')) {\n i--;\n }\n return value?.slice(0, i + 1) ?? '';\n }\n\n export function countLines(value: string): number {\n return lineCount(value);\n }\n\n export function getLine(value: string, lineNumber: number): string {\n const lines = splitLines(value);\n return lines[lineNumber] ?? '';\n }\n\n export function getLines(value: string): string[] {\n return splitLines(value);\n }\n\n export function isSingleLine(value: string): boolean {\n return !value?.includes('\\n');\n }\n\n export function isMultiLine(value: string): boolean {\n return value?.includes('\\n') ?? false;\n }\n\n export function normalizeLineEndings(value: string, lineEnding: '\\n' | '\\r\\n' | '\\r' = '\\n'): string {\n return value?.replace(/\\r\\n|\\r|\\n/g, lineEnding) ?? '';\n }\n\n export function toCamelCase(value: string): string {\n return camelCase(value);\n }\n\n export function toKebabCase(value: string): string {\n return kebabCase(value);\n }\n\n export function toSnakeCase(value: string): string {\n return snakeCase(value);\n }\n\n export function toPascalCase(value: string): string {\n return pascalCase(value);\n }\n\n export function toConstantCase(value: string): string {\n return constantCase(value);\n }\n\n export function toSentenceCase(value: string): string {\n if (isEmpty(value)) return '';\n return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();\n }\n\n export function toTitleCase(value: string): string {\n return capitalizeWords(value);\n }\n\n export function toCapitalCase(value: string): string {\n return capitalizeWords(value);\n }\n\n export function toDotCase(value: string): string {\n return value?.replace(/([a-z])([A-Z])/g, '$1.$2').replace(/[-_\\s]+/g, '.').toLowerCase() ?? '';\n }\n\n export function toPathCase(value: string): string {\n return value?.replace(/([a-z])([A-Z])/g, '$1/$2').replace(/[-_\\s]+/g, '/').toLowerCase() ?? '';\n }\n\n export function stripTags(value: string): string {\n return value?.replace(/<[^>]*>/g, '') ?? '';\n }\n\n export function stripNumbers(value: string): string {\n return value?.replace(/\\d+/g, '') ?? '';\n }\n\n export function stripWhitespace(value: string): string {\n return value?.replace(/\\s+/g, '') ?? '';\n }\n\n export function stripPunctuation(value: string): string {\n return value?.replace(/[^\\w\\s]/g, '') ?? '';\n }\n\n export function normalizeWhitespace(value: string): string {\n return value?.replace(/\\s+/g, ' ').trim() ?? '';\n }\n\n export function includesAll(value: string, searches: string[]): boolean {\n return searches.every(search => value?.includes(search) ?? false);\n }\n\n export function includesAny(value: string, searches: string[]): boolean {\n return searches.some(search => value?.includes(search) ?? false);\n }\n}\n"],"names":["StringUtils","wordCount","words"],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ export interface UrlComponents {
2
+ protocol: string;
3
+ hostname: string;
4
+ port: string;
5
+ pathname: string;
6
+ search: string;
7
+ hash: string;
8
+ username: string;
9
+ password: string;
10
+ origin: string;
11
+ href: string;
12
+ }
13
+ export interface QueryParams {
14
+ [key: string]: string | string[] | undefined;
15
+ }
16
+ export declare function parse(url: string): UrlComponents | null;
17
+ export declare function isValid(url: string): boolean;
18
+ export declare function isAbsolute(url: string): boolean;
19
+ export declare function isRelative(url: string): boolean;
20
+ export declare function build(components: Partial<UrlComponents>): string;
21
+ export declare function resolve(baseUrl: string, relativeUrl: string): string;
22
+ export declare function join(...segments: string[]): string;
23
+ export declare function normalize(url: string): string;
24
+ export declare function getProtocol(url: string): string;
25
+ export declare function getHostname(url: string): string;
26
+ export declare function getPort(url: string): string;
27
+ export declare function getPathname(url: string): string;
28
+ export declare function getSearch(url: string): string;
29
+ export declare function getHash(url: string): string;
30
+ export declare function getOrigin(url: string): string;
31
+ export declare function setProtocol(url: string, protocol: string): string;
32
+ export declare function setHostname(url: string, hostname: string): string;
33
+ export declare function setPort(url: string, port: string | number): string;
34
+ export declare function setPathname(url: string, pathname: string): string;
35
+ export declare function setSearch(url: string, search: string | QueryParams): string;
36
+ export declare function setHash(url: string, hash: string): string;
37
+ export declare function appendPathname(url: string, path: string): string;
38
+ export declare function appendQuery(url: string, params: QueryParams): string;
39
+ export declare function parseQuery(search: string): QueryParams;
40
+ export declare function stringifyQuery(params: QueryParams): string;
41
+ export declare function getQueryParam(url: string, key: string): string | undefined;
42
+ export declare function getQueryParams(url: string): QueryParams;
43
+ export declare function setQueryParam(url: string, key: string, value: string | string[]): string;
44
+ export declare function removeQueryParam(url: string, key: string): string;
45
+ export declare function hasQueryParam(url: string, key: string): boolean;
46
+ export declare function isHttp(url: string): boolean;
47
+ export declare function isHttps(url: string): boolean;
48
+ export declare function isWebSocket(url: string): boolean;
49
+ export declare function toHttp(url: string): string;
50
+ export declare function toHttps(url: string): string;
51
+ export declare function toWebSocket(url: string): string;
52
+ export declare function extractDomain(url: string): string;
53
+ export declare function extractSubdomain(url: string): string;
54
+ export declare function extractTld(url: string): string;
55
+ export declare function extractDomainWithTld(url: string): string;
56
+ export declare function isLocalhost(url: string): boolean;
57
+ export declare function isIpAddress(url: string): boolean;
58
+ export declare function encode(url: string): string;
59
+ export declare function decode(url: string): string;
60
+ export declare function encodeComponent(component: string): string;
61
+ export declare function decodeComponent(component: string): string;
62
+ export declare function encodeQuery(query: QueryParams): string;
63
+ export declare function decodeQuery(search: string): QueryParams;
64
+ export declare function extractFileExtension(url: string): string;
65
+ export declare function extractFilename(url: string): string;
66
+ export declare function extractFilenameWithExtension(url: string): string;
67
+ export declare function addTrailingSlash(url: string): string;
68
+ export declare function removeTrailingSlash(url: string): string;
69
+ export declare function addLeadingSlash(path: string): string;
70
+ export declare function removeLeadingSlash(path: string): string;
71
+ export declare function isSameOrigin(url1: string, url2: string): boolean;
72
+ export declare function isSameHostname(url1: string, url2: string): boolean;
73
+ export declare function isSamePathname(url1: string, url2: string): boolean;
74
+ export declare function isAnchor(url: string): boolean;
75
+ export declare function isMailto(url: string): boolean;
76
+ export declare function isTel(url: string): boolean;
77
+ export declare function isDataUrl(url: string): boolean;
78
+ export declare function isBlobUrl(url: string): boolean;
79
+ export declare function extractEmail(url: string): string;
80
+ export declare function extractPhone(url: string): string;
81
+ export declare function extractDataUrlParts(url: string): {
82
+ mimeType: string;
83
+ data: string;
84
+ base64: boolean;
85
+ } | null;
86
+ export declare function createDataUrl(data: string, mimeType?: string, base64?: boolean): string;
87
+ export declare function createObjectUrl(blob: Blob): string;
88
+ export declare function revokeObjectUrl(url: string): void;
89
+ export declare function parseUrlPattern(pattern: string): RegExp;
90
+ export declare function matchUrlPattern(pattern: string, url: string): Record<string, string> | null;
91
+ export declare function buildUrlPattern(pattern: string, params: Record<string, string>): string;
92
+ export declare function getCurrentUrl(): string;
93
+ export declare function getCurrentOrigin(): string;
94
+ export declare function getCurrentPathname(): string;
95
+ export declare function getCurrentSearch(): string;
96
+ export declare function getCurrentHash(): string;
97
+ export declare function redirect(url: string): void;
98
+ export declare function reload(): void;
99
+ export declare function replace(url: string): void;
100
+ export declare function assign(url: string): void;
101
+ export declare function pushState(state: unknown, title: string, url: string): void;
102
+ export declare function replaceState(state: unknown, title: string, url: string): void;
103
+ export declare function back(): void;
104
+ export declare function forward(): void;
105
+ export declare function go(delta: number): void;
106
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ export type ValidationResult = {
2
+ valid: boolean;
3
+ message?: string;
4
+ };
5
+ export type Validator = (value: unknown) => ValidationResult;
6
+ export declare const EMAIL_REGEX: RegExp;
7
+ export declare const PHONE_REGEX: RegExp;
8
+ export declare const URL_REGEX: RegExp;
9
+ export declare const UUID_REGEX: RegExp;
10
+ export declare const IPV4_REGEX: RegExp;
11
+ export declare const IPV6_REGEX: RegExp;
12
+ export declare const CREDIT_CARD_REGEX: RegExp;
13
+ export declare const ALPHANUMERIC_REGEX: RegExp;
14
+ export declare const ALPHA_REGEX: RegExp;
15
+ export declare const NUMERIC_REGEX: RegExp;
16
+ export declare const HEX_COLOR_REGEX: RegExp;
17
+ export declare const SLUG_REGEX: RegExp;
18
+ export declare const USERNAME_REGEX: RegExp;
19
+ export declare const PASSWORD_STRONG_REGEX: RegExp;
20
+ export declare const DATE_ISO_REGEX: RegExp;
21
+ export declare const TIME_24_REGEX: RegExp;
22
+ export declare const BASE64_REGEX: RegExp;
23
+ export declare const JSON_REGEX: RegExp;
24
+ export declare function isValid(value: unknown): boolean;
25
+ export declare function isEmpty(value: unknown): boolean;
26
+ export declare function isNotEmpty(value: unknown): boolean;
27
+ export declare function isString(value: unknown): value is string;
28
+ export declare function isNumber(value: unknown): value is number;
29
+ export declare function isInteger(value: unknown): value is number;
30
+ export declare function isFloat(value: unknown): value is number;
31
+ export declare function isPositive(value: unknown): boolean;
32
+ export declare function isNegative(value: unknown): boolean;
33
+ export declare function isZero(value: unknown): boolean;
34
+ export declare function isBetween(value: number, min: number, max: number): boolean;
35
+ export declare function isBoolean(value: unknown): value is boolean;
36
+ export declare function isTrue(value: unknown): boolean;
37
+ export declare function isFalse(value: unknown): boolean;
38
+ export declare function isArray(value: unknown): value is unknown[];
39
+ export declare function isObject(value: unknown): value is Record<string, unknown>;
40
+ export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
41
+ export declare function isFunction(value: unknown): value is Function;
42
+ export declare function isDate(value: unknown): value is Date;
43
+ export declare function isRegExp(value: unknown): value is RegExp;
44
+ export declare function isPromise(value: unknown): value is Promise<unknown>;
45
+ export declare function isSymbol(value: unknown): value is symbol;
46
+ export declare function isBigInt(value: unknown): value is bigint;
47
+ export declare function isNull(value: unknown): value is null;
48
+ export declare function isUndefined(value: unknown): value is undefined;
49
+ export declare function isNil(value: unknown): value is null | undefined;
50
+ export declare function isNullOrUndefined(value: unknown): value is null | undefined;
51
+ export declare function isEmail(value: string): boolean;
52
+ export declare function isPhone(value: string): boolean;
53
+ export declare function isUrl(value: string): boolean;
54
+ export declare function isHttpUrl(value: string): boolean;
55
+ export declare function isHttpsUrl(value: string): boolean;
56
+ export declare function isUuid(value: string): boolean;
57
+ export declare function isUuidV4(value: string): boolean;
58
+ export declare function isIpv4(value: string): boolean;
59
+ export declare function isIpv6(value: string): boolean;
60
+ export declare function isIp(value: string): boolean;
61
+ export declare function isCreditCard(value: string): boolean;
62
+ export declare function isAlpha(value: string): boolean;
63
+ export declare function isAlphanumeric(value: string): boolean;
64
+ export declare function isNumeric(value: string): boolean;
65
+ export declare function isHex(value: string): boolean;
66
+ export declare function isHexColor(value: string): boolean;
67
+ export declare function isRgbColor(value: string): boolean;
68
+ export declare function isRgbaColor(value: string): boolean;
69
+ export declare function isColor(value: string): boolean;
70
+ export declare function isSlug(value: string): boolean;
71
+ export declare function isUsername(value: string): boolean;
72
+ export declare function isPassword(value: string): boolean;
73
+ export declare function isPasswordStrong(value: string): boolean;
74
+ export declare function isPasswordMedium(value: string): boolean;
75
+ export declare function isDateIso(value: string): boolean;
76
+ export declare function isTime24(value: string): boolean;
77
+ export declare function isBase64(value: string): boolean;
78
+ export declare function isJson(value: string): boolean;
79
+ export declare function isJsonObject(value: string): boolean;
80
+ export declare function isJsonArray(value: string): boolean;
81
+ export declare function isMimeType(value: string): boolean;
82
+ export declare function isSemVer(value: string): boolean;
83
+ export declare function isLocale(value: string): boolean;
84
+ export declare function isCountryCode(value: string): boolean;
85
+ export declare function isCurrencyCode(value: string): boolean;
86
+ export declare function isPostalCode(value: string, countryCode?: string): boolean;
87
+ export declare function isLatitude(value: number): boolean;
88
+ export declare function isLongitude(value: number): boolean;
89
+ export declare function isCoordinates(lat: number, lng: number): boolean;
90
+ export declare function isAscii(value: string): boolean;
91
+ export declare function isLowerCase(value: string): boolean;
92
+ export declare function isUpperCase(value: string): boolean;
93
+ export declare function isCapitalized(value: string): boolean;
94
+ export declare function isPalindrome(value: string): boolean;
95
+ export declare function isAnagram(value1: string, value2: string): boolean;
96
+ export declare function isDivisibleBy(value: number, divisor: number): boolean;
97
+ export declare function isEven(value: number): boolean;
98
+ export declare function isOdd(value: number): boolean;
99
+ export declare function isPrime(value: number): boolean;
100
+ export declare function isPerfectSquare(value: number): boolean;
101
+ export declare function isFibonacci(value: number): boolean;
102
+ export declare function isFinite(value: unknown): boolean;
103
+ export declare function isInfinite(value: unknown): boolean;
104
+ export declare function isNaN(value: unknown): boolean;
105
+ export declare function isSafeInteger(value: unknown): boolean;
106
+ export declare function isPositiveZero(value: unknown): boolean;
107
+ export declare function isNegativeZero(value: unknown): boolean;
108
+ export declare function minLength(value: string, min: number): boolean;
109
+ export declare function maxLength(value: string, max: number): boolean;
110
+ export declare function lengthBetween(value: string, min: number, max: number): boolean;
111
+ export declare function min(value: number, min: number): boolean;
112
+ export declare function max(value: number, max: number): boolean;
113
+ export declare function range(value: number, min: number, max: number): boolean;
114
+ export declare function inArray<T>(value: T, arr: T[]): boolean;
115
+ export declare function notInArray<T>(value: T, arr: T[]): boolean;
116
+ export declare function equals(value: unknown, compare: unknown): boolean;
117
+ export declare function notEquals(value: unknown, compare: unknown): boolean;
118
+ export declare function oneOf<T>(value: T, ...options: T[]): boolean;
119
+ export declare function pattern(value: string, regex: RegExp): boolean;
120
+ export declare function startsWith(value: string, prefix: string): boolean;
121
+ export declare function endsWith(value: string, suffix: string): boolean;
122
+ export declare function contains(value: string, substring: string): boolean;
123
+ export declare function matches(value: string, regex: string | RegExp): boolean;
124
+ export declare function required(value: unknown): ValidationResult;
125
+ export declare function email(value: string): ValidationResult;
126
+ export declare function url(value: string): ValidationResult;
127
+ export declare function uuid(value: string): ValidationResult;
128
+ export declare function phone(value: string): ValidationResult;
129
+ export declare function creditCard(value: string): ValidationResult;
130
+ export declare function password(value: string): ValidationResult;
131
+ export declare function passwordStrong(value: string): ValidationResult;
132
+ export declare function integer(value: unknown): ValidationResult;
133
+ export declare function positiveNumber(value: unknown): ValidationResult;
134
+ export declare function negativeNumber(value: unknown): ValidationResult;
135
+ export declare function minValidator(min: number): Validator;
136
+ export declare function maxValidator(max: number): Validator;
137
+ export declare function rangeValidator(min: number, max: number): Validator;
138
+ export declare function minLengthValidator(min: number): Validator;
139
+ export declare function maxLengthValidator(max: number): Validator;
140
+ export declare function patternValidator(regex: RegExp, message?: string): Validator;
141
+ export declare function oneOfValidator<T>(options: T[], message?: string): Validator;
142
+ export declare function composeValidators(...validators: Validator[]): Validator;
143
+ export declare function validate(value: unknown, validators: Validator[]): ValidationResult;
144
+ export declare function validateAll(value: unknown, validators: Validator[]): ValidationResult[];
145
+ export interface SchemaField {
146
+ required?: boolean;
147
+ type?: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'date' | 'function';
148
+ validators?: Validator[];
149
+ nested?: Schema;
150
+ }
151
+ export type Schema = Record<string, SchemaField>;
152
+ export interface ValidationResultMap {
153
+ [key: string]: ValidationResult;
154
+ }
155
+ export declare function validateSchema(data: Record<string, unknown>, schema: Schema): ValidationResultMap;
156
+ export declare function isValidSchema(data: Record<string, unknown>, schema: Schema): boolean;
157
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
package/dist/utils.cjs ADDED
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const logger = require("./utils/logger.cjs");
4
+ const cache = require("./utils/cache.cjs");
5
+ const retry = require("./utils/retry.cjs");
6
+ const types = require("./core/types.cjs");
7
+ const string = require("./utils/string.cjs");
8
+ const encoding = require("./utils/encoding.cjs");
9
+ const date = require("./utils/date.cjs");
10
+ exports.ConsoleLogger = logger.ConsoleLogger;
11
+ exports.createLogger = logger.createLogger;
12
+ exports.noopLogger = logger.noopLogger;
13
+ exports.MemoryCacheStore = cache.MemoryCacheStore;
14
+ exports.createCacheStore = cache.createCacheStore;
15
+ exports.generateCacheKey = cache.generateCacheKey;
16
+ exports.calculateDelay = retry.calculateDelay;
17
+ exports.createRetryConfig = retry.createRetryConfig;
18
+ exports.shouldRetry = retry.shouldRetry;
19
+ exports.sleep = retry.sleep;
20
+ exports.withRetry = retry.withRetry;
21
+ exports.DEFAULT_CACHE_CONFIG = types.DEFAULT_CACHE_CONFIG;
22
+ exports.DEFAULT_LOGGER_CONFIG = types.DEFAULT_LOGGER_CONFIG;
23
+ exports.DEFAULT_RETRY_CONFIG = types.DEFAULT_RETRY_CONFIG;
24
+ exports.DEFAULT_TIMEOUT = types.DEFAULT_TIMEOUT;
25
+ exports.HTTP_STATUS = types.HTTP_STATUS;
26
+ exports.MIME_TYPES = types.MIME_TYPES;
27
+ exports.SUCCESS_CODES = types.SUCCESS_CODES;
28
+ exports.BACKSLASH = string.BACKSLASH;
29
+ exports.CARRIAGE_RETURN = string.CARRIAGE_RETURN;
30
+ exports.DASH = string.DASH;
31
+ exports.DOT = string.DOT;
32
+ exports.EMPTY_STRING = string.EMPTY_STRING;
33
+ exports.NEWLINE = string.NEWLINE;
34
+ exports.SLASH = string.SLASH;
35
+ exports.SPACE = string.SPACE;
36
+ Object.defineProperty(exports, "StringUtils", {
37
+ enumerable: true,
38
+ get: () => string.StringUtils
39
+ });
40
+ exports.TAB = string.TAB;
41
+ exports.UNDERSCORE = string.UNDERSCORE;
42
+ Object.defineProperty(exports, "Encoding", {
43
+ enumerable: true,
44
+ get: () => encoding.Encoding
45
+ });
46
+ exports.MILLISECONDS_IN_DAY = date.MILLISECONDS_IN_DAY;
47
+ exports.MILLISECONDS_IN_HOUR = date.MILLISECONDS_IN_HOUR;
48
+ exports.MILLISECONDS_IN_MINUTE = date.MILLISECONDS_IN_MINUTE;
49
+ exports.MILLISECONDS_IN_SECOND = date.MILLISECONDS_IN_SECOND;
50
+ exports.MILLISECONDS_IN_WEEK = date.MILLISECONDS_IN_WEEK;
51
+ exports.TIME_UNITS_IN_MS = date.TIME_UNITS_IN_MS;
52
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/utils.js ADDED
@@ -0,0 +1,46 @@
1
+ import { ConsoleLogger, createLogger, noopLogger } from "./utils/logger.js";
2
+ import { MemoryCacheStore, createCacheStore, generateCacheKey } from "./utils/cache.js";
3
+ import { calculateDelay, createRetryConfig, shouldRetry, sleep, withRetry } from "./utils/retry.js";
4
+ import { DEFAULT_CACHE_CONFIG, DEFAULT_LOGGER_CONFIG, DEFAULT_RETRY_CONFIG, DEFAULT_TIMEOUT, HTTP_STATUS, MIME_TYPES, SUCCESS_CODES } from "./core/types.js";
5
+ import { BACKSLASH, CARRIAGE_RETURN, DASH, DOT, EMPTY_STRING, NEWLINE, SLASH, SPACE, StringUtils, TAB, UNDERSCORE } from "./utils/string.js";
6
+ import { Encoding } from "./utils/encoding.js";
7
+ import { MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, TIME_UNITS_IN_MS } from "./utils/date.js";
8
+ export {
9
+ BACKSLASH,
10
+ CARRIAGE_RETURN,
11
+ ConsoleLogger,
12
+ DASH,
13
+ DEFAULT_CACHE_CONFIG,
14
+ DEFAULT_LOGGER_CONFIG,
15
+ DEFAULT_RETRY_CONFIG,
16
+ DEFAULT_TIMEOUT,
17
+ DOT,
18
+ EMPTY_STRING,
19
+ Encoding,
20
+ HTTP_STATUS,
21
+ MILLISECONDS_IN_DAY,
22
+ MILLISECONDS_IN_HOUR,
23
+ MILLISECONDS_IN_MINUTE,
24
+ MILLISECONDS_IN_SECOND,
25
+ MILLISECONDS_IN_WEEK,
26
+ MIME_TYPES,
27
+ MemoryCacheStore,
28
+ NEWLINE,
29
+ SLASH,
30
+ SPACE,
31
+ SUCCESS_CODES,
32
+ StringUtils,
33
+ TAB,
34
+ TIME_UNITS_IN_MS,
35
+ UNDERSCORE,
36
+ calculateDelay,
37
+ createCacheStore,
38
+ createLogger,
39
+ createRetryConfig,
40
+ generateCacheKey,
41
+ noopLogger,
42
+ shouldRetry,
43
+ sleep,
44
+ withRetry
45
+ };
46
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@sdkwork/sdk-common",
3
+ "version": "1.0.0",
4
+ "description": "SDKwork SDK Common - High cohesion, low coupling SDK foundation library",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "require": "./dist/index.cjs",
13
+ "types": "./dist/index.d.ts"
14
+ },
15
+ "./core": {
16
+ "import": "./dist/core/index.js",
17
+ "require": "./dist/core/index.cjs",
18
+ "types": "./dist/core/index.d.ts"
19
+ },
20
+ "./auth": {
21
+ "import": "./dist/auth/index.js",
22
+ "require": "./dist/auth/index.cjs",
23
+ "types": "./dist/auth/index.d.ts"
24
+ },
25
+ "./http": {
26
+ "import": "./dist/http/index.js",
27
+ "require": "./dist/http/index.cjs",
28
+ "types": "./dist/http/index.d.ts"
29
+ },
30
+ "./errors": {
31
+ "import": "./dist/errors/index.js",
32
+ "require": "./dist/errors/index.cjs",
33
+ "types": "./dist/errors/index.d.ts"
34
+ },
35
+ "./utils": {
36
+ "import": "./dist/utils/index.js",
37
+ "require": "./dist/utils/index.cjs",
38
+ "types": "./dist/utils/index.d.ts"
39
+ }
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "README.md"
44
+ ],
45
+ "scripts": {
46
+ "build": "vite build && tsc --emitDeclarationOnly --outDir dist",
47
+ "dev": "vite build --watch",
48
+ "typecheck": "tsc --noEmit",
49
+ "lint": "eslint src --ext .ts,.tsx",
50
+ "lint:fix": "eslint src --ext .ts,.tsx --fix",
51
+ "clean": "rm -rf dist",
52
+ "prepublishOnly": "npm run clean && npm run build"
53
+ },
54
+ "keywords": [
55
+ "sdkwork",
56
+ "sdk",
57
+ "common",
58
+ "typescript",
59
+ "http-client",
60
+ "auth"
61
+ ],
62
+ "author": "SDKwork",
63
+ "license": "MIT",
64
+ "devDependencies": {
65
+ "@types/node": "^20.10.0",
66
+ "typescript": "^5.3.0",
67
+ "vite": "^5.0.0",
68
+ "eslint": "^8.55.0",
69
+ "@typescript-eslint/eslint-plugin": "^6.13.0",
70
+ "@typescript-eslint/parser": "^6.13.0"
71
+ },
72
+ "peerDependencies": {},
73
+ "engines": {
74
+ "node": ">=18.0.0"
75
+ },
76
+ "repository": {
77
+ "type": "git",
78
+ "url": "https://github.com/sdkwork/sdk-common-typescript"
79
+ }
80
+ }