superjs-core 0.3.8 → 0.4.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/README.md +58 -49
- package/dist/collection/index.d.ts +16 -1
- package/dist/collection/index.js +30 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/color/index.d.ts +50 -0
- package/dist/color/index.js +66 -0
- package/dist/color/index.js.map +1 -0
- package/dist/core/index.d.ts +25 -1
- package/dist/core/index.js +51 -0
- package/dist/core/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -1
- package/dist/string/index.d.ts +34 -1
- package/dist/string/index.js +37 -0
- package/dist/string/index.js.map +1 -1
- package/package.json +6 -2
package/dist/index.d.ts
CHANGED
|
@@ -16,3 +16,4 @@ export { KNOWN_CVES, KNOWN_MAPPINGS } from './dep-exray/known-mappings.js';
|
|
|
16
16
|
export { isEmail, isNIK, isNPWP, isPhone, isURL } from './validation/index.js';
|
|
17
17
|
export { ErrorCode, MultiError, TypedError, collectErrors, createError, isTypedError } from './error/index.js';
|
|
18
18
|
export { L as LogLevel, a as Logger, T as Transport, c as consoleTransport, b as createBufferedTransport, d as createConsoleTransport, e as createFileTransport, f as createJsonTransport, l as logger } from './index-BgG21uJC.js';
|
|
19
|
+
export { contrastRatio, darken, hexToRgb, lighten, meetsWCAG, rgbToHex } from './color/index.js';
|
package/dist/index.js
CHANGED
|
@@ -2285,6 +2285,64 @@ function createBufferedTransport(transport, options) {
|
|
|
2285
2285
|
}
|
|
2286
2286
|
};
|
|
2287
2287
|
}
|
|
2288
|
+
|
|
2289
|
+
// src/color/index.ts
|
|
2290
|
+
function hexToRgb(hex) {
|
|
2291
|
+
let h = hex.replace("#", "");
|
|
2292
|
+
if (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];
|
|
2293
|
+
if (h.length !== 6) return null;
|
|
2294
|
+
const num = Number.parseInt(h, 16);
|
|
2295
|
+
if (isNaN(num)) return null;
|
|
2296
|
+
return {
|
|
2297
|
+
r: num >> 16 & 255,
|
|
2298
|
+
g: num >> 8 & 255,
|
|
2299
|
+
b: num & 255
|
|
2300
|
+
};
|
|
2301
|
+
}
|
|
2302
|
+
function rgbToHex(r, g, b) {
|
|
2303
|
+
const toHex = (n) => Math.max(0, Math.min(255, Math.round(n))).toString(16).padStart(2, "0");
|
|
2304
|
+
return "#" + toHex(r) + toHex(g) + toHex(b);
|
|
2305
|
+
}
|
|
2306
|
+
function lighten(hex, percent) {
|
|
2307
|
+
const rgb = hexToRgb(hex);
|
|
2308
|
+
if (!rgb) return hex;
|
|
2309
|
+
const factor = percent / 100;
|
|
2310
|
+
return rgbToHex(
|
|
2311
|
+
rgb.r + (255 - rgb.r) * factor,
|
|
2312
|
+
rgb.g + (255 - rgb.g) * factor,
|
|
2313
|
+
rgb.b + (255 - rgb.b) * factor
|
|
2314
|
+
);
|
|
2315
|
+
}
|
|
2316
|
+
function darken(hex, percent) {
|
|
2317
|
+
const rgb = hexToRgb(hex);
|
|
2318
|
+
if (!rgb) return hex;
|
|
2319
|
+
const factor = percent / 100;
|
|
2320
|
+
return rgbToHex(
|
|
2321
|
+
rgb.r * (1 - factor),
|
|
2322
|
+
rgb.g * (1 - factor),
|
|
2323
|
+
rgb.b * (1 - factor)
|
|
2324
|
+
);
|
|
2325
|
+
}
|
|
2326
|
+
function contrastRatio(hex1, hex2) {
|
|
2327
|
+
const lum1 = relativeLuminance(hex1);
|
|
2328
|
+
const lum2 = relativeLuminance(hex2);
|
|
2329
|
+
const lighter = Math.max(lum1, lum2);
|
|
2330
|
+
const darker = Math.min(lum1, lum2);
|
|
2331
|
+
return Number(((lighter + 0.05) / (darker + 0.05)).toFixed(2));
|
|
2332
|
+
}
|
|
2333
|
+
function relativeLuminance(hex) {
|
|
2334
|
+
const rgb = hexToRgb(hex);
|
|
2335
|
+
if (!rgb) return 0;
|
|
2336
|
+
const vals = [rgb.r / 255, rgb.g / 255, rgb.b / 255].map((c) => {
|
|
2337
|
+
return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
|
|
2338
|
+
});
|
|
2339
|
+
return 0.2126 * vals[0] + 0.7152 * vals[1] + 0.0722 * vals[2];
|
|
2340
|
+
}
|
|
2341
|
+
function meetsWCAG(hex1, hex2, level) {
|
|
2342
|
+
const ratio = contrastRatio(hex1, hex2);
|
|
2343
|
+
const threshold = level === "AAA" ? 7 : 4.5;
|
|
2344
|
+
return ratio >= threshold;
|
|
2345
|
+
}
|
|
2288
2346
|
export {
|
|
2289
2347
|
DivisionByZeroError,
|
|
2290
2348
|
InvalidDateError,
|
|
@@ -2318,12 +2376,14 @@ export {
|
|
|
2318
2376
|
collectErrors,
|
|
2319
2377
|
consoleTransport,
|
|
2320
2378
|
constantTimeEqual,
|
|
2379
|
+
contrastRatio,
|
|
2321
2380
|
countOccurrences,
|
|
2322
2381
|
createBufferedTransport,
|
|
2323
2382
|
createConsoleTransport,
|
|
2324
2383
|
createError,
|
|
2325
2384
|
createFileTransport,
|
|
2326
2385
|
createJsonTransport,
|
|
2386
|
+
darken,
|
|
2327
2387
|
dateDiff,
|
|
2328
2388
|
debounce,
|
|
2329
2389
|
deepClone,
|
|
@@ -2351,6 +2411,7 @@ export {
|
|
|
2351
2411
|
getType2 as getType,
|
|
2352
2412
|
groupBy,
|
|
2353
2413
|
hash,
|
|
2414
|
+
hexToRgb,
|
|
2354
2415
|
identity,
|
|
2355
2416
|
inRange,
|
|
2356
2417
|
isAbsolute,
|
|
@@ -2385,7 +2446,9 @@ export {
|
|
|
2385
2446
|
kebabCase,
|
|
2386
2447
|
keyBy,
|
|
2387
2448
|
last,
|
|
2449
|
+
lighten,
|
|
2388
2450
|
logger,
|
|
2451
|
+
meetsWCAG,
|
|
2389
2452
|
memoize,
|
|
2390
2453
|
mul,
|
|
2391
2454
|
nanoid,
|
|
@@ -2413,6 +2476,7 @@ export {
|
|
|
2413
2476
|
retry,
|
|
2414
2477
|
retryAsync,
|
|
2415
2478
|
reverse,
|
|
2479
|
+
rgbToHex,
|
|
2416
2480
|
round,
|
|
2417
2481
|
safeJsonParse,
|
|
2418
2482
|
sample,
|