typetify 0.1.4 → 2.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.
@@ -0,0 +1,503 @@
1
+ import { __export } from './chunk-J5LGTIGS.mjs';
2
+
3
+ // src/guards/index.ts
4
+ var guards_exports = {};
5
+ __export(guards_exports, {
6
+ castArray: () => castArray,
7
+ cloneDeepWith: () => cloneDeepWith,
8
+ cloneWith: () => cloneWith,
9
+ conformsTo: () => conformsTo,
10
+ eq: () => eq,
11
+ gt: () => gt,
12
+ gte: () => gte,
13
+ hasKey: () => hasKey,
14
+ hasKeys: () => hasKeys,
15
+ isArguments: () => isArguments,
16
+ isArray: () => isArray,
17
+ isArrayBuffer: () => isArrayBuffer,
18
+ isArrayLike: () => isArrayLike,
19
+ isArrayLikeObject: () => isArrayLikeObject,
20
+ isBoolean: () => isBoolean,
21
+ isBuffer: () => isBuffer,
22
+ isDate: () => isDate,
23
+ isElement: () => isElement,
24
+ isEmpty: () => isEmpty,
25
+ isEqualWith: () => isEqualWith,
26
+ isError: () => isError,
27
+ isFinite: () => isFinite,
28
+ isFunction: () => isFunction,
29
+ isInteger: () => isInteger,
30
+ isLength: () => isLength,
31
+ isMap: () => isMap,
32
+ isMatch: () => isMatch,
33
+ isMatchWith: () => isMatchWith,
34
+ isNaN: () => isNaN,
35
+ isNative: () => isNative,
36
+ isNonEmpty: () => isNonEmpty,
37
+ isNull: () => isNull,
38
+ isNumber: () => isNumber,
39
+ isObject: () => isObject,
40
+ isObjectLike: () => isObjectLike,
41
+ isPlainObject: () => isPlainObject,
42
+ isPromise: () => isPromise,
43
+ isRegExp: () => isRegExp,
44
+ isSafeInteger: () => isSafeInteger,
45
+ isSet: () => isSet,
46
+ isString: () => isString,
47
+ isSymbol: () => isSymbol,
48
+ isTypedArray: () => isTypedArray,
49
+ isUndefined: () => isUndefined,
50
+ isWeakMap: () => isWeakMap,
51
+ isWeakSet: () => isWeakSet,
52
+ lt: () => lt,
53
+ lte: () => lte,
54
+ toArray: () => toArray,
55
+ toFinite: () => toFinite,
56
+ toInteger: () => toInteger,
57
+ toLength: () => toLength,
58
+ toNumber: () => toNumber,
59
+ toPlainObject: () => toPlainObject,
60
+ toSafeInteger: () => toSafeInteger,
61
+ toString: () => toString
62
+ });
63
+
64
+ // src/guards/isObject.ts
65
+ function isObject(value) {
66
+ return typeof value === "object" && value !== null && !Array.isArray(value);
67
+ }
68
+
69
+ // src/guards/isPlainObject.ts
70
+ function isPlainObject(value) {
71
+ if (typeof value !== "object" || value === null) {
72
+ return false;
73
+ }
74
+ const prototype = Object.getPrototypeOf(value);
75
+ return prototype === null || prototype === Object.prototype;
76
+ }
77
+
78
+ // src/guards/isString.ts
79
+ function isString(value) {
80
+ return typeof value === "string";
81
+ }
82
+
83
+ // src/guards/isNumber.ts
84
+ function isNumber(value) {
85
+ return typeof value === "number" && !Number.isNaN(value);
86
+ }
87
+
88
+ // src/guards/isBoolean.ts
89
+ function isBoolean(value) {
90
+ return typeof value === "boolean";
91
+ }
92
+
93
+ // src/guards/isFunction.ts
94
+ function isFunction(value) {
95
+ return typeof value === "function";
96
+ }
97
+
98
+ // src/guards/isArray.ts
99
+ function isArray(value, guard) {
100
+ if (!Array.isArray(value)) {
101
+ return false;
102
+ }
103
+ if (guard) {
104
+ return value.every(guard);
105
+ }
106
+ return true;
107
+ }
108
+
109
+ // src/guards/isDate.ts
110
+ function isDate(value) {
111
+ return value instanceof Date && !Number.isNaN(value.getTime());
112
+ }
113
+
114
+ // src/guards/isPromise.ts
115
+ function isPromise(value) {
116
+ return value instanceof Promise || value !== null && typeof value === "object" && "then" in value && typeof value.then === "function";
117
+ }
118
+
119
+ // src/guards/isError.ts
120
+ function isError(value) {
121
+ return value instanceof Error;
122
+ }
123
+
124
+ // src/guards/isSymbol.ts
125
+ function isSymbol(value) {
126
+ return typeof value === "symbol";
127
+ }
128
+
129
+ // src/guards/hasKey.ts
130
+ function hasKey(obj, key) {
131
+ return obj !== null && typeof obj === "object" && key in obj;
132
+ }
133
+
134
+ // src/guards/hasKeys.ts
135
+ function hasKeys(obj, keys) {
136
+ if (obj === null || typeof obj !== "object") {
137
+ return false;
138
+ }
139
+ return keys.every((key) => key in obj);
140
+ }
141
+
142
+ // src/guards/isEmpty.ts
143
+ function isEmpty(value) {
144
+ if (value === null || value === void 0) {
145
+ return true;
146
+ }
147
+ if (typeof value === "string") {
148
+ return value.trim().length === 0;
149
+ }
150
+ if (Array.isArray(value)) {
151
+ return value.length === 0;
152
+ }
153
+ if (value instanceof Map || value instanceof Set) {
154
+ return value.size === 0;
155
+ }
156
+ if (typeof value === "object") {
157
+ return Object.keys(value).length === 0;
158
+ }
159
+ return false;
160
+ }
161
+
162
+ // src/guards/isNonEmpty.ts
163
+ function isNonEmpty(value) {
164
+ return !isEmpty(value);
165
+ }
166
+
167
+ // src/guards/castArray.ts
168
+ function castArray(value) {
169
+ if (Array.isArray(value)) {
170
+ return [...value];
171
+ }
172
+ return [value];
173
+ }
174
+
175
+ // src/guards/cloneWith.ts
176
+ function cloneWith(value, customizer) {
177
+ const result = customizer(value);
178
+ if (result !== void 0) return result;
179
+ if (value === null || typeof value !== "object") {
180
+ return value;
181
+ }
182
+ if (Array.isArray(value)) {
183
+ return value.map((item) => {
184
+ const customResult = customizer(item);
185
+ return customResult !== void 0 ? customResult : item;
186
+ });
187
+ }
188
+ const cloned = {};
189
+ for (const key of Object.keys(value)) {
190
+ const val = value[key];
191
+ const customResult = customizer(val);
192
+ cloned[key] = customResult !== void 0 ? customResult : val;
193
+ }
194
+ return cloned;
195
+ }
196
+
197
+ // src/guards/cloneDeepWith.ts
198
+ function cloneDeepWith(value, customizer) {
199
+ const result = customizer(value);
200
+ if (result !== void 0) return result;
201
+ if (value === null || typeof value !== "object") {
202
+ return value;
203
+ }
204
+ if (Array.isArray(value)) {
205
+ return value.map((item) => cloneDeepWith(item, customizer));
206
+ }
207
+ const cloned = {};
208
+ for (const key of Object.keys(value)) {
209
+ cloned[key] = cloneDeepWith(
210
+ value[key],
211
+ customizer
212
+ );
213
+ }
214
+ return cloned;
215
+ }
216
+
217
+ // src/guards/conformsTo.ts
218
+ function conformsTo(object, source) {
219
+ for (const key of Object.keys(source)) {
220
+ const predicate = source[key];
221
+ if (predicate && !predicate(object[key])) {
222
+ return false;
223
+ }
224
+ }
225
+ return true;
226
+ }
227
+
228
+ // src/guards/eq.ts
229
+ function eq(value, other) {
230
+ return value === other || Number.isNaN(value) && Number.isNaN(other);
231
+ }
232
+
233
+ // src/guards/gt.ts
234
+ function gt(value, other) {
235
+ return value > other;
236
+ }
237
+
238
+ // src/guards/gte.ts
239
+ function gte(value, other) {
240
+ return value >= other;
241
+ }
242
+
243
+ // src/guards/lt.ts
244
+ function lt(value, other) {
245
+ return value < other;
246
+ }
247
+
248
+ // src/guards/lte.ts
249
+ function lte(value, other) {
250
+ return value <= other;
251
+ }
252
+
253
+ // src/guards/isArguments.ts
254
+ function isArguments(value) {
255
+ return Object.prototype.toString.call(value) === "[object Arguments]";
256
+ }
257
+
258
+ // src/guards/isArrayBuffer.ts
259
+ function isArrayBuffer(value) {
260
+ return value instanceof ArrayBuffer;
261
+ }
262
+
263
+ // src/guards/isArrayLike.ts
264
+ function isArrayLike(value) {
265
+ if (value === null || value === void 0) return false;
266
+ if (typeof value === "function") return false;
267
+ const length = value.length;
268
+ return typeof length === "number" && length >= 0 && length <= Number.MAX_SAFE_INTEGER && Number.isInteger(length);
269
+ }
270
+
271
+ // src/guards/isArrayLikeObject.ts
272
+ function isArrayLikeObject(value) {
273
+ return typeof value === "object" && value !== null && isArrayLike(value);
274
+ }
275
+
276
+ // src/guards/isBuffer.ts
277
+ function isBuffer(value) {
278
+ if (typeof Buffer === "undefined") return false;
279
+ return Buffer.isBuffer(value);
280
+ }
281
+
282
+ // src/guards/isElement.ts
283
+ function isElement(value) {
284
+ if (typeof Element === "undefined") return false;
285
+ return value instanceof Element;
286
+ }
287
+
288
+ // src/guards/isEqualWith.ts
289
+ function isEqualWith(value, other, customizer) {
290
+ const result = customizer(value, other);
291
+ if (result !== void 0) return result;
292
+ if (value === other) return true;
293
+ if (value === null || other === null) return value === other;
294
+ if (typeof value !== typeof other) return false;
295
+ if (typeof value === "object" && typeof other === "object") {
296
+ const valueKeys = Object.keys(value);
297
+ const otherKeys = Object.keys(other);
298
+ if (valueKeys.length !== otherKeys.length) return false;
299
+ for (const key of valueKeys) {
300
+ if (!isEqualWith(
301
+ value[key],
302
+ other[key],
303
+ customizer
304
+ )) {
305
+ return false;
306
+ }
307
+ }
308
+ return true;
309
+ }
310
+ return false;
311
+ }
312
+
313
+ // src/guards/isFinite.ts
314
+ function isFinite(value) {
315
+ return typeof value === "number" && Number.isFinite(value);
316
+ }
317
+
318
+ // src/guards/isInteger.ts
319
+ function isInteger(value) {
320
+ return typeof value === "number" && Number.isInteger(value);
321
+ }
322
+
323
+ // src/guards/isLength.ts
324
+ function isLength(value) {
325
+ return typeof value === "number" && value >= 0 && value <= Number.MAX_SAFE_INTEGER && Number.isInteger(value);
326
+ }
327
+
328
+ // src/guards/isMap.ts
329
+ function isMap(value) {
330
+ return value instanceof Map;
331
+ }
332
+
333
+ // src/guards/isMatch.ts
334
+ function isMatch(object, source) {
335
+ for (const key of Object.keys(source)) {
336
+ if (!(key in object)) return false;
337
+ const objVal = object[key];
338
+ const srcVal = source[key];
339
+ if (typeof srcVal === "object" && srcVal !== null && typeof objVal === "object" && objVal !== null) {
340
+ if (!isMatch(objVal, srcVal)) {
341
+ return false;
342
+ }
343
+ } else if (objVal !== srcVal) {
344
+ return false;
345
+ }
346
+ }
347
+ return true;
348
+ }
349
+
350
+ // src/guards/isMatchWith.ts
351
+ function isMatchWith(object, source, customizer) {
352
+ for (const key of Object.keys(source)) {
353
+ if (!(key in object)) return false;
354
+ const objVal = object[key];
355
+ const srcVal = source[key];
356
+ const result = customizer(objVal, srcVal, key);
357
+ if (result !== void 0) {
358
+ if (!result) return false;
359
+ } else if (objVal !== srcVal) {
360
+ return false;
361
+ }
362
+ }
363
+ return true;
364
+ }
365
+
366
+ // src/guards/isNaN.ts
367
+ function isNaN(value) {
368
+ return typeof value === "number" && Number.isNaN(value);
369
+ }
370
+
371
+ // src/guards/isNative.ts
372
+ function isNative(value) {
373
+ if (typeof value !== "function") return false;
374
+ const fnStr = Function.prototype.toString.call(value);
375
+ return fnStr.includes("[native code]");
376
+ }
377
+
378
+ // src/guards/isNull.ts
379
+ function isNull(value) {
380
+ return value === null;
381
+ }
382
+
383
+ // src/guards/isUndefined.ts
384
+ function isUndefined(value) {
385
+ return value === void 0;
386
+ }
387
+
388
+ // src/guards/isObjectLike.ts
389
+ function isObjectLike(value) {
390
+ return typeof value === "object" && value !== null;
391
+ }
392
+
393
+ // src/guards/isRegExp.ts
394
+ function isRegExp(value) {
395
+ return value instanceof RegExp;
396
+ }
397
+
398
+ // src/guards/isSafeInteger.ts
399
+ function isSafeInteger(value) {
400
+ return typeof value === "number" && Number.isSafeInteger(value);
401
+ }
402
+
403
+ // src/guards/isSet.ts
404
+ function isSet(value) {
405
+ return value instanceof Set;
406
+ }
407
+
408
+ // src/guards/isTypedArray.ts
409
+ function isTypedArray(value) {
410
+ return ArrayBuffer.isView(value) && !(value instanceof DataView);
411
+ }
412
+
413
+ // src/guards/isWeakMap.ts
414
+ function isWeakMap(value) {
415
+ return value instanceof WeakMap;
416
+ }
417
+
418
+ // src/guards/isWeakSet.ts
419
+ function isWeakSet(value) {
420
+ return value instanceof WeakSet;
421
+ }
422
+
423
+ // src/guards/toArray.ts
424
+ function toArray(value) {
425
+ if (value === null || value === void 0) return [];
426
+ if (Array.isArray(value)) return [...value];
427
+ if (typeof value === "string") return [...value];
428
+ if (typeof value === "object" && value !== null) {
429
+ return Object.values(value);
430
+ }
431
+ return [];
432
+ }
433
+
434
+ // src/guards/toFinite.ts
435
+ function toFinite(value) {
436
+ if (value === null || value === void 0) return 0;
437
+ if (typeof value === "number") {
438
+ if (!Number.isFinite(value)) {
439
+ return value > 0 ? Number.MAX_VALUE : -Number.MAX_VALUE;
440
+ }
441
+ return value;
442
+ }
443
+ const num = Number(value);
444
+ if (Number.isNaN(num)) return 0;
445
+ if (!Number.isFinite(num)) {
446
+ return num > 0 ? Number.MAX_VALUE : -Number.MAX_VALUE;
447
+ }
448
+ return num;
449
+ }
450
+
451
+ // src/guards/toInteger.ts
452
+ function toInteger(value) {
453
+ const result = toFinite(value);
454
+ return result === 0 ? 0 : Math.trunc(result);
455
+ }
456
+
457
+ // src/guards/toLength.ts
458
+ function toLength(value) {
459
+ const MAX_ARRAY_LENGTH = 4294967295;
460
+ const result = toInteger(value);
461
+ if (result < 0) return 0;
462
+ if (result > MAX_ARRAY_LENGTH) return MAX_ARRAY_LENGTH;
463
+ return result;
464
+ }
465
+
466
+ // src/guards/toNumber.ts
467
+ function toNumber(value) {
468
+ if (typeof value === "number") return value;
469
+ if (typeof value === "symbol") return NaN;
470
+ return Number(value);
471
+ }
472
+
473
+ // src/guards/toPlainObject.ts
474
+ function toPlainObject(value) {
475
+ if (value === null || value === void 0) return {};
476
+ if (typeof value !== "object") return {};
477
+ const result = {};
478
+ for (const key in value) {
479
+ result[key] = value[key];
480
+ }
481
+ return result;
482
+ }
483
+
484
+ // src/guards/toSafeInteger.ts
485
+ function toSafeInteger(value) {
486
+ const result = toInteger(value);
487
+ if (result < Number.MIN_SAFE_INTEGER) return Number.MIN_SAFE_INTEGER;
488
+ if (result > Number.MAX_SAFE_INTEGER) return Number.MAX_SAFE_INTEGER;
489
+ return result;
490
+ }
491
+
492
+ // src/guards/toString.ts
493
+ function toString(value) {
494
+ if (value === null || value === void 0) return "";
495
+ if (typeof value === "string") return value;
496
+ if (Array.isArray(value)) return value.join(",");
497
+ if (Object.is(value, -0)) return "-0";
498
+ return String(value);
499
+ }
500
+
501
+ export { castArray, cloneDeepWith, cloneWith, conformsTo, eq, gt, gte, guards_exports, hasKey, hasKeys, isArguments, isArray, isArrayBuffer, isArrayLike, isArrayLikeObject, isBoolean, isBuffer, isDate, isElement, isEmpty, isEqualWith, isError, isFinite, isFunction, isInteger, isLength, isMap, isMatch, isMatchWith, isNaN, isNative, isNonEmpty, isNull, isNumber, isObject, isObjectLike, isPlainObject, isPromise, isRegExp, isSafeInteger, isSet, isString, isSymbol, isTypedArray, isUndefined, isWeakMap, isWeakSet, lt, lte, toArray, toFinite, toInteger, toLength, toNumber, toPlainObject, toSafeInteger, toString };
502
+ //# sourceMappingURL=chunk-IGA3VEZM.mjs.map
503
+ //# sourceMappingURL=chunk-IGA3VEZM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/guards/index.ts","../src/guards/isObject.ts","../src/guards/isPlainObject.ts","../src/guards/isString.ts","../src/guards/isNumber.ts","../src/guards/isBoolean.ts","../src/guards/isFunction.ts","../src/guards/isArray.ts","../src/guards/isDate.ts","../src/guards/isPromise.ts","../src/guards/isError.ts","../src/guards/isSymbol.ts","../src/guards/hasKey.ts","../src/guards/hasKeys.ts","../src/guards/isEmpty.ts","../src/guards/isNonEmpty.ts","../src/guards/castArray.ts","../src/guards/cloneWith.ts","../src/guards/cloneDeepWith.ts","../src/guards/conformsTo.ts","../src/guards/eq.ts","../src/guards/gt.ts","../src/guards/gte.ts","../src/guards/lt.ts","../src/guards/lte.ts","../src/guards/isArguments.ts","../src/guards/isArrayBuffer.ts","../src/guards/isArrayLike.ts","../src/guards/isArrayLikeObject.ts","../src/guards/isBuffer.ts","../src/guards/isElement.ts","../src/guards/isEqualWith.ts","../src/guards/isFinite.ts","../src/guards/isInteger.ts","../src/guards/isLength.ts","../src/guards/isMap.ts","../src/guards/isMatch.ts","../src/guards/isMatchWith.ts","../src/guards/isNaN.ts","../src/guards/isNative.ts","../src/guards/isNull.ts","../src/guards/isUndefined.ts","../src/guards/isObjectLike.ts","../src/guards/isRegExp.ts","../src/guards/isSafeInteger.ts","../src/guards/isSet.ts","../src/guards/isTypedArray.ts","../src/guards/isWeakMap.ts","../src/guards/isWeakSet.ts","../src/guards/toArray.ts","../src/guards/toFinite.ts","../src/guards/toInteger.ts","../src/guards/toLength.ts","../src/guards/toNumber.ts","../src/guards/toPlainObject.ts","../src/guards/toSafeInteger.ts","../src/guards/toString.ts"],"names":[],"mappings":"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","file":"chunk-IGA3VEZM.mjs","sourcesContent":["export { isObject } from './isObject'\nexport { isPlainObject } from './isPlainObject'\nexport { isString } from './isString'\nexport { isNumber } from './isNumber'\nexport { isBoolean } from './isBoolean'\nexport { isFunction } from './isFunction'\nexport { isArray } from './isArray'\nexport { isDate } from './isDate'\nexport { isPromise } from './isPromise'\nexport { isError } from './isError'\nexport { isSymbol } from './isSymbol'\nexport { hasKey } from './hasKey'\nexport { hasKeys } from './hasKeys'\nexport { isEmpty } from './isEmpty'\nexport { isNonEmpty } from './isNonEmpty'\n\n// New guards\nexport { castArray } from './castArray'\nexport { cloneWith } from './cloneWith'\nexport { cloneDeepWith } from './cloneDeepWith'\nexport { conformsTo } from './conformsTo'\nexport { eq } from './eq'\nexport { gt } from './gt'\nexport { gte } from './gte'\nexport { lt } from './lt'\nexport { lte } from './lte'\nexport { isArguments } from './isArguments'\nexport { isArrayBuffer } from './isArrayBuffer'\nexport { isArrayLike } from './isArrayLike'\nexport { isArrayLikeObject } from './isArrayLikeObject'\nexport { isBuffer } from './isBuffer'\nexport { isElement } from './isElement'\nexport { isEqualWith } from './isEqualWith'\nexport { isFinite } from './isFinite'\nexport { isInteger } from './isInteger'\nexport { isLength } from './isLength'\nexport { isMap } from './isMap'\nexport { isMatch } from './isMatch'\nexport { isMatchWith } from './isMatchWith'\nexport { isNaN } from './isNaN'\nexport { isNative } from './isNative'\nexport { isNull } from './isNull'\nexport { isUndefined } from './isUndefined'\nexport { isObjectLike } from './isObjectLike'\nexport { isRegExp } from './isRegExp'\nexport { isSafeInteger } from './isSafeInteger'\nexport { isSet } from './isSet'\nexport { isTypedArray } from './isTypedArray'\nexport { isWeakMap } from './isWeakMap'\nexport { isWeakSet } from './isWeakSet'\nexport { toArray } from './toArray'\nexport { toFinite } from './toFinite'\nexport { toInteger } from './toInteger'\nexport { toLength } from './toLength'\nexport { toNumber } from './toNumber'\nexport { toPlainObject } from './toPlainObject'\nexport { toSafeInteger } from './toSafeInteger'\nexport { toString } from './toString'\n","/**\n * Checks if a value is an object (not null, not an array).\n *\n * @example\n * if (isObject(value)) {\n * // value is Record<string, unknown>\n * }\n */\nexport function isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n","/**\n * Checks if a value is a plain object (created by {} or Object.create(null)).\n * Excludes class instances, arrays, and other object types.\n *\n * @example\n * isPlainObject({}) // true\n * isPlainObject(new Date()) // false\n * isPlainObject([]) // false\n */\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n if (typeof value !== 'object' || value === null) {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n","/**\n * Checks if a value is a string.\n *\n * @example\n * if (isString(value)) {\n * console.log(value.toUpperCase())\n * }\n */\nexport function isString(value: unknown): value is string {\n return typeof value === 'string'\n}\n","/**\n * Checks if a value is a number (excludes NaN).\n *\n * @example\n * isNumber(42) // true\n * isNumber(NaN) // false\n * isNumber('42') // false\n */\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number' && !Number.isNaN(value)\n}\n","/**\n * Checks if a value is a boolean.\n *\n * @example\n * isBoolean(true) // true\n * isBoolean(1) // false\n */\nexport function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean'\n}\n","/**\n * Checks if a value is a function.\n *\n * @example\n * isFunction(() => {}) // true\n * isFunction(console.log) // true\n */\nexport function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function'\n}\n","/**\n * Checks if a value is an array.\n * Optionally checks if all elements match a guard function.\n *\n * @example\n * isArray([1, 2, 3]) // true\n * isArray([1, 2, 3], isNumber) // true\n * isArray([1, '2', 3], isNumber) // false\n */\nexport function isArray(value: unknown): value is unknown[]\nexport function isArray<T>(\n value: unknown,\n guard: (item: unknown) => item is T\n): value is T[]\nexport function isArray<T>(\n value: unknown,\n guard?: (item: unknown) => item is T\n): value is T[] {\n if (!Array.isArray(value)) {\n return false\n }\n\n if (guard) {\n return value.every(guard)\n }\n\n return true\n}\n","/**\n * Checks if a value is a valid Date object.\n * Returns false for invalid dates (e.g., new Date('invalid')).\n *\n * @example\n * isDate(new Date()) // true\n * isDate(new Date('invalid')) // false\n * isDate('2024-01-01') // false\n */\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date && !Number.isNaN(value.getTime())\n}\n","/**\n * Checks if a value is a Promise or Promise-like object.\n *\n * @example\n * isPromise(Promise.resolve()) // true\n * isPromise({ then: () => {} }) // true\n * isPromise({}) // false\n */\nexport function isPromise<T = unknown>(value: unknown): value is Promise<T> {\n return (\n value instanceof Promise ||\n (value !== null &&\n typeof value === 'object' &&\n 'then' in value &&\n typeof (value as Record<string, unknown>).then === 'function')\n )\n}\n","/**\n * Checks if a value is an Error instance.\n *\n * @example\n * isError(new Error('oops')) // true\n * isError(new TypeError('bad')) // true\n * isError({ message: 'fake' }) // false\n */\nexport function isError(value: unknown): value is Error {\n return value instanceof Error\n}\n","/**\n * Checks if a value is a symbol.\n *\n * @example\n * isSymbol(Symbol('test')) // true\n * isSymbol('symbol') // false\n */\nexport function isSymbol(value: unknown): value is symbol {\n return typeof value === 'symbol'\n}\n","/**\n * Checks if an object has a specific key.\n * Narrows the type to include that key.\n *\n * @example\n * const obj: unknown = { name: 'John' }\n * if (hasKey(obj, 'name')) {\n * console.log(obj.name) // safe access\n * }\n */\nexport function hasKey<K extends PropertyKey>(\n obj: unknown,\n key: K\n): obj is Record<K, unknown> {\n return obj !== null && typeof obj === 'object' && key in obj\n}\n","/**\n * Checks if an object has all specified keys.\n * Narrows the type to include those keys.\n *\n * @example\n * const obj: unknown = { name: 'John', age: 30 }\n * if (hasKeys(obj, ['name', 'age'])) {\n * console.log(obj.name, obj.age) // safe access\n * }\n */\nexport function hasKeys<K extends PropertyKey>(\n obj: unknown,\n keys: readonly K[]\n): obj is Record<K, unknown> {\n if (obj === null || typeof obj !== 'object') {\n return false\n }\n\n return keys.every((key) => key in obj)\n}\n","/**\n * Checks if a value is empty.\n * - String: empty or whitespace only\n * - Array: length is 0\n * - Object: no own enumerable keys\n * - null/undefined: true\n * - Map/Set: size is 0\n *\n * @example\n * isEmpty('') // true\n * isEmpty(' ') // true\n * isEmpty([]) // true\n * isEmpty({}) // true\n * isEmpty(null) // true\n * isEmpty([1]) // false\n */\nexport 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 (value instanceof Map || value instanceof Set) {\n return value.size === 0\n }\n\n if (typeof value === 'object') {\n return Object.keys(value).length === 0\n }\n\n return false\n}\n","import { isEmpty } from './isEmpty'\n\n/**\n * Checks if a value is not empty.\n * Opposite of isEmpty.\n *\n * @example\n * isNonEmpty('hello') // true\n * isNonEmpty([1, 2]) // true\n * isNonEmpty({}) // false\n */\nexport function isNonEmpty(value: unknown): boolean {\n return !isEmpty(value)\n}\n","/**\n * Casts value as an array if it's not one.\n *\n * @example\n * castArray(1) // [1]\n * castArray([1, 2, 3]) // [1, 2, 3]\n * castArray('abc') // ['abc']\n * castArray(null) // [null]\n */\nexport function castArray<T>(value: T | readonly T[]): T[] {\n if (Array.isArray(value)) {\n return [...value]\n }\n return [value] as T[]\n}\n","/**\n * Like clone but accepts a customizer function.\n *\n * @example\n * cloneWith({ a: 1 }, value => typeof value === 'number' ? value * 2 : undefined)\n * // { a: 2 }\n */\nexport function cloneWith<T>(\n value: T,\n customizer: (value: unknown) => unknown\n): T {\n const result = customizer(value)\n if (result !== undefined) return result as T\n\n if (value === null || typeof value !== 'object') {\n return value\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => {\n const customResult = customizer(item)\n return customResult !== undefined ? customResult : item\n }) as T\n }\n\n const cloned = {} as T\n for (const key of Object.keys(value)) {\n const val = (value as Record<string, unknown>)[key]\n const customResult = customizer(val)\n ;(cloned as Record<string, unknown>)[key] =\n customResult !== undefined ? customResult : val\n }\n return cloned\n}\n","/**\n * Like cloneDeep but accepts a customizer function.\n *\n * @example\n * cloneDeepWith({ a: { b: 1 } }, value => typeof value === 'number' ? value * 2 : undefined)\n * // { a: { b: 2 } }\n */\nexport function cloneDeepWith<T>(\n value: T,\n customizer: (value: unknown) => unknown\n): T {\n const result = customizer(value)\n if (result !== undefined) return result as T\n\n if (value === null || typeof value !== 'object') {\n return value\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => cloneDeepWith(item, customizer)) as T\n }\n\n const cloned = {} as T\n for (const key of Object.keys(value)) {\n ;(cloned as Record<string, unknown>)[key] = cloneDeepWith(\n (value as Record<string, unknown>)[key],\n customizer\n )\n }\n return cloned\n}\n","/**\n * Checks if object conforms to source by invoking the predicate properties of source with the corresponding property values of object.\n *\n * @example\n * const object = { a: 1, b: 2 }\n * conformsTo(object, { a: (n) => n > 0 }) // true\n * conformsTo(object, { b: (n) => n > 5 }) // false\n */\nexport function conformsTo<T extends Record<string, unknown>>(\n object: T,\n source: { [K in keyof T]?: (value: T[K]) => boolean }\n): boolean {\n for (const key of Object.keys(source) as (keyof T)[]) {\n const predicate = source[key]\n if (predicate && !predicate(object[key])) {\n return false\n }\n }\n return true\n}\n","/**\n * Performs a SameValueZero comparison between two values.\n *\n * @example\n * eq(1, 1) // true\n * eq('a', 'a') // true\n * eq(NaN, NaN) // true\n * eq({}, {}) // false\n */\nexport function eq(value: unknown, other: unknown): boolean {\n return value === other || (Number.isNaN(value) && Number.isNaN(other))\n}\n","/**\n * Checks if value is greater than other.\n *\n * @example\n * gt(3, 1) // true\n * gt(3, 3) // false\n * gt(1, 3) // false\n */\nexport function gt(value: number, other: number): boolean {\n return value > other\n}\n","/**\n * Checks if value is greater than or equal to other.\n *\n * @example\n * gte(3, 1) // true\n * gte(3, 3) // true\n * gte(1, 3) // false\n */\nexport function gte(value: number, other: number): boolean {\n return value >= other\n}\n","/**\n * Checks if value is less than other.\n *\n * @example\n * lt(1, 3) // true\n * lt(3, 3) // false\n * lt(3, 1) // false\n */\nexport function lt(value: number, other: number): boolean {\n return value < other\n}\n","/**\n * Checks if value is less than or equal to other.\n *\n * @example\n * lte(1, 3) // true\n * lte(3, 3) // true\n * lte(3, 1) // false\n */\nexport function lte(value: number, other: number): boolean {\n return value <= other\n}\n","/**\n * Checks if value is likely an arguments object.\n *\n * @example\n * function test() { return isArguments(arguments) }\n * test() // true\n * isArguments([1, 2, 3]) // false\n */\nexport function isArguments(value: unknown): boolean {\n return Object.prototype.toString.call(value) === '[object Arguments]'\n}\n","/**\n * Checks if value is an ArrayBuffer.\n *\n * @example\n * isArrayBuffer(new ArrayBuffer(2)) // true\n * isArrayBuffer(new Array(2)) // false\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return value instanceof ArrayBuffer\n}\n","/**\n * Checks if value is array-like (has a length property that is a valid array length).\n *\n * @example\n * isArrayLike([1, 2, 3]) // true\n * isArrayLike('abc') // true\n * isArrayLike({ length: 0 }) // true\n * isArrayLike(() => {}) // false\n */\nexport function isArrayLike(value: unknown): boolean {\n if (value === null || value === undefined) return false\n if (typeof value === 'function') return false\n \n const length = (value as { length?: unknown }).length\n return typeof length === 'number' && length >= 0 && length <= Number.MAX_SAFE_INTEGER && Number.isInteger(length)\n}\n","import { isArrayLike } from './isArrayLike'\n\n/**\n * Checks if value is an array-like object.\n *\n * @example\n * isArrayLikeObject([1, 2, 3]) // true\n * isArrayLikeObject({ length: 0 }) // true\n * isArrayLikeObject('abc') // false (string is not an object)\n */\nexport function isArrayLikeObject(value: unknown): boolean {\n return typeof value === 'object' && value !== null && isArrayLike(value)\n}\n","/**\n * Checks if value is a Buffer (Node.js).\n *\n * @example\n * isBuffer(Buffer.alloc(2)) // true\n * isBuffer(new Uint8Array(2)) // false\n */\nexport function isBuffer(value: unknown): boolean {\n if (typeof Buffer === 'undefined') return false\n return Buffer.isBuffer(value)\n}\n","/**\n * Checks if value is likely a DOM element.\n *\n * @example\n * isElement(document.body) // true\n * isElement('<body>') // false\n */\nexport function isElement(value: unknown): boolean {\n if (typeof Element === 'undefined') return false\n return value instanceof Element\n}\n","/**\n * Like isEqual but accepts a customizer function.\n *\n * @example\n * isEqualWith([1, 2], [1, 2], (a, b) => Array.isArray(a) && Array.isArray(b)) // true\n */\nexport function isEqualWith(\n value: unknown,\n other: unknown,\n customizer: (value: unknown, other: unknown) => boolean | undefined\n): boolean {\n const result = customizer(value, other)\n if (result !== undefined) return result\n\n if (value === other) return true\n if (value === null || other === null) return value === other\n if (typeof value !== typeof other) return false\n\n if (typeof value === 'object' && typeof other === 'object') {\n const valueKeys = Object.keys(value as object)\n const otherKeys = Object.keys(other as object)\n\n if (valueKeys.length !== otherKeys.length) return false\n\n for (const key of valueKeys) {\n if (\n !isEqualWith(\n (value as Record<string, unknown>)[key],\n (other as Record<string, unknown>)[key],\n customizer\n )\n ) {\n return false\n }\n }\n return true\n }\n\n return false\n}\n","/**\n * Checks if value is a finite number.\n *\n * @example\n * isFinite(3) // true\n * isFinite(Infinity) // false\n * isFinite('3') // false\n * isFinite(NaN) // false\n */\nexport function isFinite(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value)\n}\n","/**\n * Checks if value is an integer.\n *\n * @example\n * isInteger(3) // true\n * isInteger(3.0) // true\n * isInteger(3.5) // false\n * isInteger('3') // false\n */\nexport function isInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isInteger(value)\n}\n","/**\n * Checks if value is a valid array-like length.\n *\n * @example\n * isLength(3) // true\n * isLength(0) // true\n * isLength(-1) // false\n * isLength(Infinity) // false\n * isLength(Number.MAX_SAFE_INTEGER) // true\n */\nexport function isLength(value: unknown): value is number {\n return (\n typeof value === 'number' &&\n value >= 0 &&\n value <= Number.MAX_SAFE_INTEGER &&\n Number.isInteger(value)\n )\n}\n","/**\n * Checks if value is a Map.\n *\n * @example\n * isMap(new Map()) // true\n * isMap(new WeakMap()) // false\n * isMap({}) // false\n */\nexport function isMap(value: unknown): value is Map<unknown, unknown> {\n return value instanceof Map\n}\n","/**\n * Performs a partial deep comparison to determine if object contains equivalent property values.\n *\n * @example\n * const object = { a: 1, b: 2 }\n * isMatch(object, { a: 1 }) // true\n * isMatch(object, { b: 2 }) // true\n * isMatch(object, { a: 2 }) // false\n */\nexport function isMatch(\n object: Record<string, unknown>,\n source: Record<string, unknown>\n): boolean {\n for (const key of Object.keys(source)) {\n if (!(key in object)) return false\n \n const objVal = object[key]\n const srcVal = source[key]\n \n if (typeof srcVal === 'object' && srcVal !== null && typeof objVal === 'object' && objVal !== null) {\n if (!isMatch(objVal as Record<string, unknown>, srcVal as Record<string, unknown>)) {\n return false\n }\n } else if (objVal !== srcVal) {\n return false\n }\n }\n return true\n}\n","/**\n * Like isMatch but accepts a customizer function.\n *\n * @example\n * isMatchWith({ a: 1 }, { a: 2 }, (objVal, srcVal) => objVal + 1 === srcVal) // true\n */\nexport function isMatchWith(\n object: Record<string, unknown>,\n source: Record<string, unknown>,\n customizer: (objValue: unknown, srcValue: unknown, key: string) => boolean | undefined\n): boolean {\n for (const key of Object.keys(source)) {\n if (!(key in object)) return false\n \n const objVal = object[key]\n const srcVal = source[key]\n const result = customizer(objVal, srcVal, key)\n \n if (result !== undefined) {\n if (!result) return false\n } else if (objVal !== srcVal) {\n return false\n }\n }\n return true\n}\n","/**\n * Checks if value is NaN.\n *\n * @example\n * isNaN(NaN) // true\n * isNaN(undefined) // false\n * isNaN('NaN') // false\n */\nexport function isNaN(value: unknown): boolean {\n return typeof value === 'number' && Number.isNaN(value)\n}\n","/**\n * Checks if value is a native function.\n *\n * @example\n * isNative(Array.prototype.push) // true\n * isNative(() => {}) // false\n */\nexport function isNative(value: unknown): boolean {\n if (typeof value !== 'function') return false\n const fnStr = Function.prototype.toString.call(value)\n return fnStr.includes('[native code]')\n}\n","/**\n * Checks if value is null.\n *\n * @example\n * isNull(null) // true\n * isNull(undefined) // false\n * isNull(0) // false\n */\nexport function isNull(value: unknown): value is null {\n return value === null\n}\n","/**\n * Checks if value is undefined.\n *\n * @example\n * isUndefined(undefined) // true\n * isUndefined(null) // false\n * isUndefined(void 0) // true\n */\nexport function isUndefined(value: unknown): value is undefined {\n return value === undefined\n}\n","/**\n * Checks if value is object-like (not null and typeof is 'object').\n *\n * @example\n * isObjectLike({}) // true\n * isObjectLike([1, 2, 3]) // true\n * isObjectLike(null) // false\n * isObjectLike(() => {}) // false\n */\nexport function isObjectLike(value: unknown): boolean {\n return typeof value === 'object' && value !== null\n}\n","/**\n * Checks if value is a RegExp.\n *\n * @example\n * isRegExp(/abc/) // true\n * isRegExp(new RegExp('abc')) // true\n * isRegExp('/abc/') // false\n */\nexport function isRegExp(value: unknown): value is RegExp {\n return value instanceof RegExp\n}\n","/**\n * Checks if value is a safe integer.\n *\n * @example\n * isSafeInteger(3) // true\n * isSafeInteger(Number.MAX_SAFE_INTEGER) // true\n * isSafeInteger(Infinity) // false\n * isSafeInteger('3') // false\n */\nexport function isSafeInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value)\n}\n","/**\n * Checks if value is a Set.\n *\n * @example\n * isSet(new Set()) // true\n * isSet(new WeakSet()) // false\n * isSet([]) // false\n */\nexport function isSet(value: unknown): value is Set<unknown> {\n return value instanceof Set\n}\n","/**\n * Checks if value is a TypedArray.\n *\n * @example\n * isTypedArray(new Uint8Array()) // true\n * isTypedArray(new Float32Array()) // true\n * isTypedArray([]) // false\n */\nexport function isTypedArray(value: unknown): boolean {\n return ArrayBuffer.isView(value) && !(value instanceof DataView)\n}\n","/**\n * Checks if value is a WeakMap.\n *\n * @example\n * isWeakMap(new WeakMap()) // true\n * isWeakMap(new Map()) // false\n */\nexport function isWeakMap(value: unknown): value is WeakMap<object, unknown> {\n return value instanceof WeakMap\n}\n","/**\n * Checks if value is a WeakSet.\n *\n * @example\n * isWeakSet(new WeakSet()) // true\n * isWeakSet(new Set()) // false\n */\nexport function isWeakSet(value: unknown): value is WeakSet<object> {\n return value instanceof WeakSet\n}\n","/**\n * Converts value to an array.\n *\n * @example\n * toArray({ a: 1, b: 2 }) // [1, 2]\n * toArray('abc') // ['a', 'b', 'c']\n * toArray(1) // []\n * toArray(null) // []\n */\nexport function toArray<T>(value: unknown): T[] {\n if (value === null || value === undefined) return []\n if (Array.isArray(value)) return [...value]\n if (typeof value === 'string') return [...value] as T[]\n if (typeof value === 'object' && value !== null) {\n return Object.values(value) as T[]\n }\n return []\n}\n","/**\n * Converts value to a finite number.\n *\n * @example\n * toFinite(3.2) // 3.2\n * toFinite(Infinity) // 1.7976931348623157e+308\n * toFinite('3.2') // 3.2\n */\nexport function toFinite(value: unknown): number {\n if (value === null || value === undefined) return 0\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) {\n return value > 0 ? Number.MAX_VALUE : -Number.MAX_VALUE\n }\n return value\n }\n const num = Number(value)\n if (Number.isNaN(num)) return 0\n if (!Number.isFinite(num)) {\n return num > 0 ? Number.MAX_VALUE : -Number.MAX_VALUE\n }\n return num\n}\n","import { toFinite } from './toFinite'\n\n/**\n * Converts value to an integer.\n *\n * @example\n * toInteger(3.2) // 3\n * toInteger('3.2') // 3\n * toInteger(Infinity) // 1.7976931348623157e+308\n */\nexport function toInteger(value: unknown): number {\n const result = toFinite(value)\n return result === 0 ? 0 : Math.trunc(result)\n}\n","import { toInteger } from './toInteger'\n\n/**\n * Converts value to an integer suitable for use as the length of an array-like object.\n *\n * @example\n * toLength(3.2) // 3\n * toLength(-1) // 0\n * toLength(Infinity) // 4294967295\n */\nexport function toLength(value: unknown): number {\n const MAX_ARRAY_LENGTH = 4294967295\n const result = toInteger(value)\n if (result < 0) return 0\n if (result > MAX_ARRAY_LENGTH) return MAX_ARRAY_LENGTH\n return result\n}\n","/**\n * Converts value to a number.\n *\n * @example\n * toNumber(3.2) // 3.2\n * toNumber('3.2') // 3.2\n * toNumber(Infinity) // Infinity\n * toNumber('abc') // NaN\n */\nexport function toNumber(value: unknown): number {\n if (typeof value === 'number') return value\n if (typeof value === 'symbol') return NaN\n return Number(value)\n}\n","/**\n * Converts value to a plain object flattening inherited enumerable string keyed properties.\n *\n * @example\n * function Foo() { this.b = 2 }\n * Foo.prototype.c = 3\n * toPlainObject(new Foo()) // { b: 2, c: 3 }\n */\nexport function toPlainObject(value: unknown): Record<string, unknown> {\n if (value === null || value === undefined) return {}\n if (typeof value !== 'object') return {}\n\n const result: Record<string, unknown> = {}\n\n for (const key in value as object) {\n result[key] = (value as Record<string, unknown>)[key]\n }\n\n return result\n}\n","import { toInteger } from './toInteger'\n\n/**\n * Converts value to a safe integer.\n *\n * @example\n * toSafeInteger(3.2) // 3\n * toSafeInteger(Infinity) // 9007199254740991\n * toSafeInteger('3.2') // 3\n */\nexport function toSafeInteger(value: unknown): number {\n const result = toInteger(value)\n if (result < Number.MIN_SAFE_INTEGER) return Number.MIN_SAFE_INTEGER\n if (result > Number.MAX_SAFE_INTEGER) return Number.MAX_SAFE_INTEGER\n return result\n}\n","/**\n * Converts value to a string. Null and undefined return empty string.\n *\n * @example\n * toString(null) // ''\n * toString(-0) // '-0'\n * toString([1, 2, 3]) // '1,2,3'\n */\nexport function toString(value: unknown): string {\n if (value === null || value === undefined) return ''\n if (typeof value === 'string') return value\n if (Array.isArray(value)) return value.join(',')\n if (Object.is(value, -0)) return '-0'\n return String(value)\n}\n"]}