@hyperfrontend/list-utils
Advanced tools
| 'use strict'; | ||
| const { isArray } = require('../immutable-api-utils/built-in-copy/array/index.cjs.js'); | ||
| const { createError } = require('../immutable-api-utils/built-in-copy/error/index.cjs.js'); | ||
| const { freeze, keys: keys$1 } = require('../immutable-api-utils/built-in-copy/object/index.cjs.js'); | ||
| const { createMap } = require('../immutable-api-utils/built-in-copy/map/index.cjs.js'); | ||
| const { createDate } = require('../immutable-api-utils/built-in-copy/date/index.cjs.js'); | ||
| const { random, round } = require('../immutable-api-utils/built-in-copy/math/index.cjs.js'); | ||
| const isMarker = (text) => { | ||
| if (typeof text !== 'string' || !text.startsWith('__$')) | ||
| return false; | ||
| return /^__\$[0-9]+$/.test(text); | ||
| }; | ||
| const registeredClasses = []; | ||
| const registeredIterableClasses = [ | ||
| { | ||
| classRef: Array, | ||
| instantiate: () => [], | ||
| getKeys: (target) => { | ||
| const keysArray = keys$1(target); | ||
| if (getConfig().detectCircularReferences) { | ||
| return keysArray.filter((key) => !isMarker(key)); | ||
| } | ||
| return keysArray; | ||
| }, | ||
| read: (target, key) => target[key], | ||
| write: (target, value, key) => (target[key] = value), | ||
| remove: (target, value) => target.splice(value, 1), | ||
| }, | ||
| { | ||
| classRef: Object, | ||
| instantiate: () => ({}), | ||
| getKeys: (target) => { | ||
| const keysArray = keys$1(target); | ||
| if (getConfig().detectCircularReferences) { | ||
| return keysArray.filter((key) => !isMarker(key)); | ||
| } | ||
| return keysArray; | ||
| }, | ||
| read: (target, key) => target[key], | ||
| write: (target, value, key) => (target[key] = value), | ||
| remove: (target, value) => delete target[value], | ||
| }, | ||
| ]; | ||
| let samePositionOfOwnProperties = false; | ||
| let detectCircularReferences = false; | ||
| const getConfig = () => ({ | ||
| samePositionOfOwnProperties, | ||
| detectCircularReferences, | ||
| }); | ||
| const getKeysFromIterable = (target, dataType) => { | ||
| if (dataType === 'array') | ||
| dataType = Array.name; | ||
| if (dataType === 'object') | ||
| dataType = Object.name; | ||
| const iterableClass = registeredIterableClasses.find(({ classRef }) => dataType === classRef.name); | ||
| if (iterableClass === undefined) | ||
| return []; | ||
| return iterableClass.getKeys(target); | ||
| }; | ||
| const getType = (target) => { | ||
| if (target === null) | ||
| return 'null'; | ||
| const nativeDataType = typeof target; | ||
| if (nativeDataType === 'object') { | ||
| if (isArray(target)) | ||
| return 'array'; | ||
| for (const registeredClass of registeredClasses) { | ||
| if (target instanceof registeredClass) | ||
| return registeredClass.name; | ||
| } | ||
| } | ||
| return nativeDataType; | ||
| }; | ||
| const getIterableTypes = () => registeredIterableClasses.map(({ classRef }) => { | ||
| const name = classRef.name; | ||
| if (name === Object.name) | ||
| return 'object'; | ||
| if (name === Array.name) | ||
| return 'array'; | ||
| return name; | ||
| }); | ||
| const isIterableType = (dataType) => getIterableTypes().includes(dataType); | ||
| const isIterable = (target) => isIterableType(getType(target)); | ||
| const marker = () => { | ||
| const randomValue = round(random() * 10000000000000); | ||
| const sequential = createDate().getTime(); | ||
| const unique = `${randomValue}${sequential}`; | ||
| const prefix = `__$`; | ||
| return `${prefix}${unique}`; | ||
| }; | ||
| const referenceStack = () => { | ||
| const records = createMap(); | ||
| const flag = marker(); | ||
| const exists = (ref) => (isIterable(ref) ? flag in ref && records.has(ref[flag]) : false); | ||
| const add = (ref) => { | ||
| if (!isIterable(ref) || exists(ref)) | ||
| return; | ||
| ref[flag] = Symbol(); | ||
| records.set(ref[flag], [flag, ref, records.size]); | ||
| }; | ||
| const lastSeen = (ref) => { | ||
| if (!isIterable(ref)) | ||
| return null; | ||
| const record = records.get(ref[flag]); | ||
| return record ? record[2] - records.size : null; | ||
| }; | ||
| const clear = () => (records.forEach(([key, ref]) => { | ||
| delete ref[key]; | ||
| }), | ||
| records.clear()); | ||
| return { | ||
| add: (ref) => add(ref), | ||
| exists: (ref) => exists(ref), | ||
| lastSeen: (ref) => lastSeen(ref), | ||
| clear: () => clear(), | ||
| get size() { | ||
| return records.size; | ||
| }, | ||
| }; | ||
| }; | ||
| const errorMessage = (thing, type) => `Expected ${thing} to be ${type}.`; | ||
| const nextIterationDetails = (path, key, value) => ({ | ||
| nextPath: [...path, key], | ||
| nextValue: value[key], | ||
| }); | ||
| const circularDependencyTraversal = (condition, callback, config, key, path, value, parent, state, stack, root = false) => { | ||
| if (stack.exists(value)) | ||
| return state; | ||
| const ok = condition(config, key, value, path, parent); | ||
| if (config.exitEarly) | ||
| return state; | ||
| if (ok) | ||
| callback(key, value, path, state, parent); | ||
| stack.add(value); | ||
| const type = getType(value); | ||
| if (!isIterableType(type)) | ||
| return state; | ||
| const keys = getKeysFromIterable(value, type); | ||
| keys.forEach((key) => { | ||
| const { nextPath, nextValue } = nextIterationDetails(path, key, value); | ||
| circularDependencyTraversal(condition, callback, config, key, nextPath, nextValue, value, state, stack); | ||
| }); | ||
| if (root) | ||
| stack.clear(); | ||
| return state; | ||
| }; | ||
| const nonCircularDependencyTraversal = (condition, callback, config, key, path, value, parent, state) => { | ||
| const ok = condition(config, key, value, path, parent); | ||
| if (config.exitEarly) | ||
| return state; | ||
| if (ok) | ||
| callback(key, value, path, state, parent); | ||
| const type = getType(value); | ||
| if (!isIterableType(type)) | ||
| return state; | ||
| const keys = getKeysFromIterable(value, type); | ||
| keys.forEach((key) => { | ||
| const { nextPath, nextValue } = nextIterationDetails(path, key, value); | ||
| nonCircularDependencyTraversal(condition, callback, config, key, nextPath, nextValue, value, state); | ||
| }); | ||
| return state; | ||
| }; | ||
| const traversal = (target, condition, callback, options, state) => { | ||
| if (typeof callback !== 'function') | ||
| throw createError(errorMessage('callback', 'a function')); | ||
| if (!(typeof options === 'object' && !isArray(options))) | ||
| throw createError(errorMessage('options', 'an object')); | ||
| if (!isArray(options.depth)) | ||
| throw createError(errorMessage('options.depth', 'an array')); | ||
| const [startDepth, maxDepth] = options.depth; | ||
| if (startDepth !== void 0 && typeof startDepth !== 'number') | ||
| throw createError(errorMessage('options.depth.0', 'a number')); | ||
| if (maxDepth !== void 0) { | ||
| const maxDepthType = typeof maxDepth; | ||
| if (!['number', 'string'].includes(maxDepthType)) | ||
| throw createError(errorMessage('options.depth.1', 'a number or a string')); | ||
| if (maxDepthType === 'string' && maxDepth !== '*') | ||
| throw createError("Only valid string value in options.depth.1 is '*'."); | ||
| } | ||
| const config = { | ||
| depth: freeze([options.depth[0] ?? 0, options.depth[1] ?? '*']), | ||
| exitEarly: false, | ||
| }; | ||
| const initialArgs = [condition, callback, config, '', [], target, void 0, state]; | ||
| if (getConfig().detectCircularReferences) | ||
| return circularDependencyTraversal(...initialArgs, referenceStack(), true); | ||
| return nonCircularDependencyTraversal(...initialArgs); | ||
| }; | ||
| const createTraversal = (condition) => (target, callback, options, state) => traversal(target, condition, callback, options ?? { depth: [0, '*'] }, state ?? {}); | ||
| const condition = (config, key, value, path) => !(path.length < config.depth[0] || config.depth[1] < path.length); | ||
| const traverseBetweenDepthRange = createTraversal(condition); | ||
| exports.createTraversal = createTraversal; | ||
| exports.getConfig = getConfig; | ||
| exports.getIterableTypes = getIterableTypes; | ||
| exports.getKeysFromIterable = getKeysFromIterable; | ||
| exports.getType = getType; | ||
| exports.isIterable = isIterable; | ||
| exports.isIterableType = isIterableType; | ||
| exports.isMarker = isMarker; | ||
| exports.marker = marker; | ||
| exports.referenceStack = referenceStack; | ||
| exports.registeredClasses = registeredClasses; | ||
| exports.registeredIterableClasses = registeredIterableClasses; |
| import { isArray } from '../immutable-api-utils/built-in-copy/array/index.esm.js'; | ||
| import { createError } from '../immutable-api-utils/built-in-copy/error/index.esm.js'; | ||
| import { keys, freeze } from '../immutable-api-utils/built-in-copy/object/index.esm.js'; | ||
| import { createMap } from '../immutable-api-utils/built-in-copy/map/index.esm.js'; | ||
| import { createDate } from '../immutable-api-utils/built-in-copy/date/index.esm.js'; | ||
| import { round, random } from '../immutable-api-utils/built-in-copy/math/index.esm.js'; | ||
| const isMarker = (text) => { | ||
| if (typeof text !== 'string' || !text.startsWith('__$')) | ||
| return false; | ||
| return /^__\$[0-9]+$/.test(text); | ||
| }; | ||
| const registeredClasses = []; | ||
| const registeredIterableClasses = [ | ||
| { | ||
| classRef: Array, | ||
| instantiate: () => [], | ||
| getKeys: (target) => { | ||
| const keysArray = keys(target); | ||
| if (getConfig().detectCircularReferences) { | ||
| return keysArray.filter((key) => !isMarker(key)); | ||
| } | ||
| return keysArray; | ||
| }, | ||
| read: (target, key) => target[key], | ||
| write: (target, value, key) => (target[key] = value), | ||
| remove: (target, value) => target.splice(value, 1), | ||
| }, | ||
| { | ||
| classRef: Object, | ||
| instantiate: () => ({}), | ||
| getKeys: (target) => { | ||
| const keysArray = keys(target); | ||
| if (getConfig().detectCircularReferences) { | ||
| return keysArray.filter((key) => !isMarker(key)); | ||
| } | ||
| return keysArray; | ||
| }, | ||
| read: (target, key) => target[key], | ||
| write: (target, value, key) => (target[key] = value), | ||
| remove: (target, value) => delete target[value], | ||
| }, | ||
| ]; | ||
| let samePositionOfOwnProperties = false; | ||
| let detectCircularReferences = false; | ||
| const getConfig = () => ({ | ||
| samePositionOfOwnProperties, | ||
| detectCircularReferences, | ||
| }); | ||
| const getKeysFromIterable = (target, dataType) => { | ||
| if (dataType === 'array') | ||
| dataType = Array.name; | ||
| if (dataType === 'object') | ||
| dataType = Object.name; | ||
| const iterableClass = registeredIterableClasses.find(({ classRef }) => dataType === classRef.name); | ||
| if (iterableClass === undefined) | ||
| return []; | ||
| return iterableClass.getKeys(target); | ||
| }; | ||
| const getType = (target) => { | ||
| if (target === null) | ||
| return 'null'; | ||
| const nativeDataType = typeof target; | ||
| if (nativeDataType === 'object') { | ||
| if (isArray(target)) | ||
| return 'array'; | ||
| for (const registeredClass of registeredClasses) { | ||
| if (target instanceof registeredClass) | ||
| return registeredClass.name; | ||
| } | ||
| } | ||
| return nativeDataType; | ||
| }; | ||
| const getIterableTypes = () => registeredIterableClasses.map(({ classRef }) => { | ||
| const name = classRef.name; | ||
| if (name === Object.name) | ||
| return 'object'; | ||
| if (name === Array.name) | ||
| return 'array'; | ||
| return name; | ||
| }); | ||
| const isIterableType = (dataType) => getIterableTypes().includes(dataType); | ||
| const isIterable = (target) => isIterableType(getType(target)); | ||
| const marker = () => { | ||
| const randomValue = round(random() * 10000000000000); | ||
| const sequential = createDate().getTime(); | ||
| const unique = `${randomValue}${sequential}`; | ||
| const prefix = `__$`; | ||
| return `${prefix}${unique}`; | ||
| }; | ||
| const referenceStack = () => { | ||
| const records = createMap(); | ||
| const flag = marker(); | ||
| const exists = (ref) => (isIterable(ref) ? flag in ref && records.has(ref[flag]) : false); | ||
| const add = (ref) => { | ||
| if (!isIterable(ref) || exists(ref)) | ||
| return; | ||
| ref[flag] = Symbol(); | ||
| records.set(ref[flag], [flag, ref, records.size]); | ||
| }; | ||
| const lastSeen = (ref) => { | ||
| if (!isIterable(ref)) | ||
| return null; | ||
| const record = records.get(ref[flag]); | ||
| return record ? record[2] - records.size : null; | ||
| }; | ||
| const clear = () => (records.forEach(([key, ref]) => { | ||
| delete ref[key]; | ||
| }), | ||
| records.clear()); | ||
| return { | ||
| add: (ref) => add(ref), | ||
| exists: (ref) => exists(ref), | ||
| lastSeen: (ref) => lastSeen(ref), | ||
| clear: () => clear(), | ||
| get size() { | ||
| return records.size; | ||
| }, | ||
| }; | ||
| }; | ||
| const errorMessage = (thing, type) => `Expected ${thing} to be ${type}.`; | ||
| const nextIterationDetails = (path, key, value) => ({ | ||
| nextPath: [...path, key], | ||
| nextValue: value[key], | ||
| }); | ||
| const circularDependencyTraversal = (condition, callback, config, key, path, value, parent, state, stack, root = false) => { | ||
| if (stack.exists(value)) | ||
| return state; | ||
| const ok = condition(config, key, value, path, parent); | ||
| if (config.exitEarly) | ||
| return state; | ||
| if (ok) | ||
| callback(key, value, path, state, parent); | ||
| stack.add(value); | ||
| const type = getType(value); | ||
| if (!isIterableType(type)) | ||
| return state; | ||
| const keys = getKeysFromIterable(value, type); | ||
| keys.forEach((key) => { | ||
| const { nextPath, nextValue } = nextIterationDetails(path, key, value); | ||
| circularDependencyTraversal(condition, callback, config, key, nextPath, nextValue, value, state, stack); | ||
| }); | ||
| if (root) | ||
| stack.clear(); | ||
| return state; | ||
| }; | ||
| const nonCircularDependencyTraversal = (condition, callback, config, key, path, value, parent, state) => { | ||
| const ok = condition(config, key, value, path, parent); | ||
| if (config.exitEarly) | ||
| return state; | ||
| if (ok) | ||
| callback(key, value, path, state, parent); | ||
| const type = getType(value); | ||
| if (!isIterableType(type)) | ||
| return state; | ||
| const keys = getKeysFromIterable(value, type); | ||
| keys.forEach((key) => { | ||
| const { nextPath, nextValue } = nextIterationDetails(path, key, value); | ||
| nonCircularDependencyTraversal(condition, callback, config, key, nextPath, nextValue, value, state); | ||
| }); | ||
| return state; | ||
| }; | ||
| const traversal = (target, condition, callback, options, state) => { | ||
| if (typeof callback !== 'function') | ||
| throw createError(errorMessage('callback', 'a function')); | ||
| if (!(typeof options === 'object' && !isArray(options))) | ||
| throw createError(errorMessage('options', 'an object')); | ||
| if (!isArray(options.depth)) | ||
| throw createError(errorMessage('options.depth', 'an array')); | ||
| const [startDepth, maxDepth] = options.depth; | ||
| if (startDepth !== void 0 && typeof startDepth !== 'number') | ||
| throw createError(errorMessage('options.depth.0', 'a number')); | ||
| if (maxDepth !== void 0) { | ||
| const maxDepthType = typeof maxDepth; | ||
| if (!['number', 'string'].includes(maxDepthType)) | ||
| throw createError(errorMessage('options.depth.1', 'a number or a string')); | ||
| if (maxDepthType === 'string' && maxDepth !== '*') | ||
| throw createError("Only valid string value in options.depth.1 is '*'."); | ||
| } | ||
| const config = { | ||
| depth: freeze([options.depth[0] ?? 0, options.depth[1] ?? '*']), | ||
| exitEarly: false, | ||
| }; | ||
| const initialArgs = [condition, callback, config, '', [], target, void 0, state]; | ||
| if (getConfig().detectCircularReferences) | ||
| return circularDependencyTraversal(...initialArgs, referenceStack(), true); | ||
| return nonCircularDependencyTraversal(...initialArgs); | ||
| }; | ||
| const createTraversal = (condition) => (target, callback, options, state) => traversal(target, condition, callback, options ?? { depth: [0, '*'] }, state ?? {}); | ||
| const condition = (config, key, value, path) => !(path.length < config.depth[0] || config.depth[1] < path.length); | ||
| const traverseBetweenDepthRange = createTraversal(condition); | ||
| export { createTraversal, getConfig, getIterableTypes, getKeysFromIterable, getType, isIterable, isIterableType, isMarker, marker, referenceStack, registeredClasses, registeredIterableClasses }; |
| 'use strict'; | ||
| const _Array = globalThis.Array; | ||
| const isArray = _Array.isArray; | ||
| const from = _Array.from; | ||
| exports.from = from; | ||
| exports.isArray = isArray; |
| const _Array = globalThis.Array; | ||
| const isArray = _Array.isArray; | ||
| const from = _Array.from; | ||
| export { from, isArray }; |
| 'use strict'; | ||
| const _Date = globalThis.Date; | ||
| const _Reflect = globalThis.Reflect; | ||
| function createDate(...args) { | ||
| return _Reflect.construct(_Date, args); | ||
| } | ||
| exports.createDate = createDate; |
| const _Date = globalThis.Date; | ||
| const _Reflect = globalThis.Reflect; | ||
| function createDate(...args) { | ||
| return _Reflect.construct(_Date, args); | ||
| } | ||
| export { createDate }; |
| 'use strict'; | ||
| const _Error = globalThis.Error; | ||
| const _Reflect = globalThis.Reflect; | ||
| const createError = (message, options) => _Reflect.construct(_Error, [message, options]); | ||
| exports.createError = createError; |
| const _Error = globalThis.Error; | ||
| const _Reflect = globalThis.Reflect; | ||
| const createError = (message, options) => _Reflect.construct(_Error, [message, options]); | ||
| export { createError }; |
| 'use strict'; | ||
| const _Map = globalThis.Map; | ||
| const _Reflect = globalThis.Reflect; | ||
| const createMap = (iterable) => _Reflect.construct(_Map, iterable ? [iterable] : []); | ||
| exports.createMap = createMap; |
| const _Map = globalThis.Map; | ||
| const _Reflect = globalThis.Reflect; | ||
| const createMap = (iterable) => _Reflect.construct(_Map, iterable ? [iterable] : []); | ||
| export { createMap }; |
| 'use strict'; | ||
| const _Math = globalThis.Math; | ||
| const round = _Math.round; | ||
| const random = _Math.random; | ||
| exports.random = random; | ||
| exports.round = round; |
| const _Math = globalThis.Math; | ||
| const round = _Math.round; | ||
| const random = _Math.random; | ||
| export { random, round }; |
| 'use strict'; | ||
| const _Object = globalThis.Object; | ||
| const freeze = _Object.freeze; | ||
| const keys = _Object.keys; | ||
| exports.freeze = freeze; | ||
| exports.keys = keys; |
| const _Object = globalThis.Object; | ||
| const freeze = _Object.freeze; | ||
| const keys = _Object.keys; | ||
| export { freeze, keys }; |
| 'use strict'; | ||
| const _Set = globalThis.Set; | ||
| const _Reflect = globalThis.Reflect; | ||
| const createSet = (iterable) => _Reflect.construct(_Set, iterable ? [iterable] : []); | ||
| exports.createSet = createSet; |
| const _Set = globalThis.Set; | ||
| const _Reflect = globalThis.Reflect; | ||
| const createSet = (iterable) => _Reflect.construct(_Set, iterable ? [iterable] : []); | ||
| export { createSet }; |
+119
-50
@@ -5,20 +5,2 @@ var HyperfrontendListUtils = (function (exports) { | ||
| /** | ||
| * Safe copies of Object built-in methods. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/object | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Object = globalThis.Object; | ||
| /** | ||
| * (Safe copy) Prevents modification of existing property attributes and values, | ||
| * and prevents the addition of new properties. | ||
| */ | ||
| const freeze = _Object.freeze; | ||
| const registeredClasses = []; | ||
| /** | ||
| * Safe copies of Array built-in static methods. | ||
@@ -31,3 +13,2 @@ * | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Array = globalThis.Array; | ||
@@ -44,25 +25,2 @@ /** | ||
| /** | ||
| * Returns the data type of the target. | ||
| * Uses native `typeof` operator, however, makes distinction between `null`, `array`, and `object`. | ||
| * Also, when classes are registered via `registerClass`, it checks if objects are instance of any known registered class. | ||
| * | ||
| * @param target - The target to get the data type of. | ||
| * @returns The data type of the target. | ||
| */ | ||
| const getType = (target) => { | ||
| if (target === null) | ||
| return 'null'; | ||
| const nativeDataType = typeof target; | ||
| if (nativeDataType === 'object') { | ||
| if (isArray(target)) | ||
| return 'array'; | ||
| for (const registeredClass of registeredClasses) { | ||
| if (target instanceof registeredClass) | ||
| return registeredClass.name; | ||
| } | ||
| } | ||
| return nativeDataType; | ||
| }; | ||
| /** | ||
| * Safe copies of Error built-ins via factory functions. | ||
@@ -78,3 +36,2 @@ * | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Error = globalThis.Error; | ||
@@ -89,2 +46,9 @@ const _Reflect$1 = globalThis.Reflect; | ||
| * @returns A new Error instance. | ||
| * | ||
| * @example Creating Error instances | ||
| * ```typescript | ||
| * const error = createError('Operation failed') | ||
| * // With cause for error chaining | ||
| * const wrapped = createError('Request failed', { cause: originalError }) | ||
| * ``` | ||
| */ | ||
@@ -94,13 +58,54 @@ const createError = (message, options) => _Reflect$1.construct(_Error, [message, options]); | ||
| /** | ||
| * Safe copies of Set built-in via factory function. | ||
| * Safe copies of Object built-in methods. | ||
| * | ||
| * Since constructors cannot be safely captured via Object.assign, this module | ||
| * provides a factory function that uses Reflect.construct internally. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/object | ||
| */ | ||
| const _Object = globalThis.Object; | ||
| /** | ||
| * (Safe copy) Prevents modification of existing property attributes and values, | ||
| * and prevents the addition of new properties. | ||
| */ | ||
| const freeze = _Object.freeze; | ||
| const registeredClasses = []; | ||
| /** | ||
| * Returns the data type of the target. | ||
| * Uses native `typeof` operator, however, makes distinction between `null`, `array`, and `object`. | ||
| * Also, when classes are registered via `registerClass`, it checks if objects are instance of any known registered class. | ||
| * | ||
| * @param target - The target to get the data type of. | ||
| * @returns The data type of the target. | ||
| * | ||
| * @example Determining data types | ||
| * ```typescript | ||
| * getType([1, 2]) // 'array' | ||
| * getType({ a: 1 }) // 'object' | ||
| * getType(null) // 'null' | ||
| * ``` | ||
| */ | ||
| const getType = (target) => { | ||
| if (target === null) | ||
| return 'null'; | ||
| const nativeDataType = typeof target; | ||
| if (nativeDataType === 'object') { | ||
| if (isArray(target)) | ||
| return 'array'; | ||
| for (const registeredClass of registeredClasses) { | ||
| if (target instanceof registeredClass) | ||
| return registeredClass.name; | ||
| } | ||
| } | ||
| return nativeDataType; | ||
| }; | ||
| /** | ||
| * Safe Set factory for protected set construction. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/set | ||
| */ | ||
| // Capture references at module initialization time | ||
| /* eslint-disable workspace/lib-require-jsdoc-example */ | ||
| const _Set = globalThis.Set; | ||
@@ -122,2 +127,13 @@ const _Reflect = globalThis.Reflect; | ||
| * @returns {FifoList<T>} A FIFO list with methods to manipulate and query the list. | ||
| * @example Creating and using FIFO queue | ||
| * ```typescript | ||
| * interface Task { id: number; name: string } | ||
| * const queue = createFifoList<Task>() | ||
| * | ||
| * queue.push({ id: 1, name: 'first' }) | ||
| * queue.push({ id: 2, name: 'second' }) | ||
| * | ||
| * queue.pull() // => { id: 1, name: 'first' } | ||
| * queue.pull() // => { id: 2, name: 'second' } | ||
| * ``` | ||
| */ | ||
@@ -168,2 +184,13 @@ function createFifoList() { | ||
| * @returns {LifoList<T>} A LIFO list with methods to manipulate and query the list. | ||
| * @example Creating and using LIFO stack | ||
| * ```typescript | ||
| * interface HistoryEntry { url: string; timestamp: number } | ||
| * const history = createLifoList<HistoryEntry>() | ||
| * | ||
| * history.push({ url: '/home', timestamp: 1 }) | ||
| * history.push({ url: '/about', timestamp: 2 }) | ||
| * | ||
| * history.pull() // => { url: '/about', timestamp: 2 } | ||
| * history.pull() // => { url: '/home', timestamp: 1 } | ||
| * ``` | ||
| */ | ||
@@ -216,2 +243,10 @@ function createLifoList() { | ||
| * @returns An array containing all numbers from start to end | ||
| * @example Generating number ranges | ||
| * ```typescript | ||
| * createRange(1, 5) | ||
| * // => [1, 2, 3, 4, 5] | ||
| * | ||
| * createRange(3, 3) | ||
| * // => [3] | ||
| * ``` | ||
| */ | ||
@@ -231,2 +266,12 @@ function createRange(start, end) { | ||
| * @returns A ValuePicker instance with current and next methods | ||
| * @example Cycling through values | ||
| * ```typescript | ||
| * const colorPicker = createValuePicker(['red', 'green', 'blue']) | ||
| * | ||
| * colorPicker.current() // => 'red' | ||
| * colorPicker.next() // => 'red' (first call initializes) | ||
| * colorPicker.next() // => 'green' | ||
| * colorPicker.next() // => 'blue' | ||
| * colorPicker.next() // => 'red' (cycles back) | ||
| * ``` | ||
| */ | ||
@@ -265,3 +310,18 @@ function createValuePicker(values) { | ||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
| /* eslint-disable @typescript-eslint/no-explicit-any */ | ||
| /** | ||
| * Retrieves the final key from a Map by converting keys to an array. | ||
| * | ||
| * @param map - The Map to extract the last key from | ||
| * @returns The key that was inserted last, or undefined if map is empty | ||
| * @example Getting last key from Map | ||
| * ```typescript | ||
| * const userRoles = new Map<string, string>() | ||
| * userRoles.set('alice', 'admin') | ||
| * userRoles.set('bob', 'editor') | ||
| * userRoles.set('charlie', 'viewer') | ||
| * | ||
| * getLastKeyInMap(userRoles) // => 'charlie' | ||
| * ``` | ||
| */ | ||
| const getLastKeyInMap = (map) => { | ||
@@ -277,2 +337,7 @@ const items = [...map.keys()]; | ||
| * @returns A new array containing only non-empty strings with content | ||
| * @example Filtering empty strings | ||
| * ```typescript | ||
| * nonEmptyStrings(['hello', '', ' ', 'world', null as unknown as string]) | ||
| * // => ['hello', 'world'] | ||
| * ``` | ||
| */ | ||
@@ -288,2 +353,7 @@ function nonEmptyStrings(values) { | ||
| * @returns A new array containing only unique strings | ||
| * @example Deduplicating strings | ||
| * ```typescript | ||
| * uniqueStrings(['apple', 'banana', 'apple', 'cherry', 'banana']) | ||
| * // => ['apple', 'banana', 'cherry'] | ||
| * ``` | ||
| */ | ||
@@ -305,2 +375,1 @@ function uniqueStrings(values) { | ||
| })({}); | ||
| //# sourceMappingURL=index.iife.js.map |
@@ -1,2 +0,1 @@ | ||
| var HyperfrontendListUtils=function(e){"use strict";const t=globalThis.Object.freeze,r=[],n=globalThis.Array,o=n.isArray,i=n.from,l=e=>{if(null===e)return"null";const t=typeof e;if("object"===t){if(o(e))return"array";for(const t of r)if(e instanceof t)return t.name}return t},s=globalThis.Error,a=globalThis.Reflect,u=(e,t)=>a.construct(s,[e,t]),c=globalThis.Set,f=globalThis.Reflect,h=e=>f.construct(c,e?[e]:[]);return e.createFifoList=function(){const e=h();return t({push:t=>{if("object"!==l(t))throw u("A fifo list only non-primitive values");if(e.has(t))throw u("Cannot a item that already exists");e.add(t)},pull:()=>{const t=e.values().next().value;return e.delete(t),t},map:t=>i(e.values()).map(t),forEach:t=>{e.forEach(t)},remove:t=>e.delete(t),has:t=>e.has(t),size:()=>e.size,clear:()=>e.clear()})},e.createLifoList=function(){const e=h();return t({push:t=>{if("object"!==l(t))throw u("A lifo list only supports non-primitive values");e.add(t)},pull:()=>{const t=i(e).pop();return t&&e.delete(t),t},map:t=>i(e).map(t),forEach:t=>{e.forEach(t)},remove:t=>e.delete(t),has:t=>e.has(t),size:()=>e.size,clear:()=>{e.clear()}})},e.createRange=function(e,t){const r=[];for(let n=e;n<=t;n+=1)r.push(n);return r},e.createValuePicker=function(e){if(!e||!e.length)throw u("Expected values not to be an empty list.");let t=-1;function r(){return t<0&&(t=0),e[t]}return{current:r,next:function(){return t<0?r():(t=++t<e.length?t:0,e[t])}}},e.getLastKeyInMap=e=>{const t=[...e.keys()];return t[t.length-1]},e.nonEmptyStrings=function(e){return e.filter(e=>![void 0,null,""].includes(e)&&""!==e.trim())},e.uniqueStrings=function(e){return i(h(e))},e}({}); | ||
| //# sourceMappingURL=index.iife.min.js.map | ||
| var HyperfrontendListUtils=function(e){"use strict";const t=globalThis.Array,r=t.isArray,n=t.from,o=globalThis.Error,i=globalThis.Reflect,l=(e,t)=>i.construct(o,[e,t]),s=globalThis.Object.freeze,a=[],u=e=>{if(null===e)return"null";const t=typeof e;if("object"===t){if(r(e))return"array";for(const t of a)if(e instanceof t)return t.name}return t},c=globalThis.Set,f=globalThis.Reflect,h=e=>f.construct(c,e?[e]:[]);return e.createFifoList=function(){const e=h();return s({push:t=>{if("object"!==u(t))throw l("A fifo list only non-primitive values");if(e.has(t))throw l("Cannot a item that already exists");e.add(t)},pull:()=>{const t=e.values().next().value;return e.delete(t),t},map:t=>n(e.values()).map(t),forEach:t=>{e.forEach(t)},remove:t=>e.delete(t),has:t=>e.has(t),size:()=>e.size,clear:()=>e.clear()})},e.createLifoList=function(){const e=h();return s({push:t=>{if("object"!==u(t))throw l("A lifo list only supports non-primitive values");e.add(t)},pull:()=>{const t=n(e).pop();return t&&e.delete(t),t},map:t=>n(e).map(t),forEach:t=>{e.forEach(t)},remove:t=>e.delete(t),has:t=>e.has(t),size:()=>e.size,clear:()=>{e.clear()}})},e.createRange=function(e,t){const r=[];for(let n=e;n<=t;n+=1)r.push(n);return r},e.createValuePicker=function(e){if(!e||!e.length)throw l("Expected values not to be an empty list.");let t=-1;function r(){return t<0&&(t=0),e[t]}return{current:r,next:function(){return t<0?r():(t=++t<e.length?t:0,e[t])}}},e.getLastKeyInMap=e=>{const t=[...e.keys()];return t[t.length-1]},e.nonEmptyStrings=function(e){return e.filter(e=>![void 0,null,""].includes(e)&&""!==e.trim())},e.uniqueStrings=function(e){return n(h(e))},e}({}); |
+119
-50
@@ -8,20 +8,2 @@ (function (global, factory) { | ||
| /** | ||
| * Safe copies of Object built-in methods. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/object | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Object = globalThis.Object; | ||
| /** | ||
| * (Safe copy) Prevents modification of existing property attributes and values, | ||
| * and prevents the addition of new properties. | ||
| */ | ||
| const freeze = _Object.freeze; | ||
| const registeredClasses = []; | ||
| /** | ||
| * Safe copies of Array built-in static methods. | ||
@@ -34,3 +16,2 @@ * | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Array = globalThis.Array; | ||
@@ -47,25 +28,2 @@ /** | ||
| /** | ||
| * Returns the data type of the target. | ||
| * Uses native `typeof` operator, however, makes distinction between `null`, `array`, and `object`. | ||
| * Also, when classes are registered via `registerClass`, it checks if objects are instance of any known registered class. | ||
| * | ||
| * @param target - The target to get the data type of. | ||
| * @returns The data type of the target. | ||
| */ | ||
| const getType = (target) => { | ||
| if (target === null) | ||
| return 'null'; | ||
| const nativeDataType = typeof target; | ||
| if (nativeDataType === 'object') { | ||
| if (isArray(target)) | ||
| return 'array'; | ||
| for (const registeredClass of registeredClasses) { | ||
| if (target instanceof registeredClass) | ||
| return registeredClass.name; | ||
| } | ||
| } | ||
| return nativeDataType; | ||
| }; | ||
| /** | ||
| * Safe copies of Error built-ins via factory functions. | ||
@@ -81,3 +39,2 @@ * | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Error = globalThis.Error; | ||
@@ -92,2 +49,9 @@ const _Reflect$1 = globalThis.Reflect; | ||
| * @returns A new Error instance. | ||
| * | ||
| * @example Creating Error instances | ||
| * ```typescript | ||
| * const error = createError('Operation failed') | ||
| * // With cause for error chaining | ||
| * const wrapped = createError('Request failed', { cause: originalError }) | ||
| * ``` | ||
| */ | ||
@@ -97,13 +61,54 @@ const createError = (message, options) => _Reflect$1.construct(_Error, [message, options]); | ||
| /** | ||
| * Safe copies of Set built-in via factory function. | ||
| * Safe copies of Object built-in methods. | ||
| * | ||
| * Since constructors cannot be safely captured via Object.assign, this module | ||
| * provides a factory function that uses Reflect.construct internally. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/object | ||
| */ | ||
| const _Object = globalThis.Object; | ||
| /** | ||
| * (Safe copy) Prevents modification of existing property attributes and values, | ||
| * and prevents the addition of new properties. | ||
| */ | ||
| const freeze = _Object.freeze; | ||
| const registeredClasses = []; | ||
| /** | ||
| * Returns the data type of the target. | ||
| * Uses native `typeof` operator, however, makes distinction between `null`, `array`, and `object`. | ||
| * Also, when classes are registered via `registerClass`, it checks if objects are instance of any known registered class. | ||
| * | ||
| * @param target - The target to get the data type of. | ||
| * @returns The data type of the target. | ||
| * | ||
| * @example Determining data types | ||
| * ```typescript | ||
| * getType([1, 2]) // 'array' | ||
| * getType({ a: 1 }) // 'object' | ||
| * getType(null) // 'null' | ||
| * ``` | ||
| */ | ||
| const getType = (target) => { | ||
| if (target === null) | ||
| return 'null'; | ||
| const nativeDataType = typeof target; | ||
| if (nativeDataType === 'object') { | ||
| if (isArray(target)) | ||
| return 'array'; | ||
| for (const registeredClass of registeredClasses) { | ||
| if (target instanceof registeredClass) | ||
| return registeredClass.name; | ||
| } | ||
| } | ||
| return nativeDataType; | ||
| }; | ||
| /** | ||
| * Safe Set factory for protected set construction. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/set | ||
| */ | ||
| // Capture references at module initialization time | ||
| /* eslint-disable workspace/lib-require-jsdoc-example */ | ||
| const _Set = globalThis.Set; | ||
@@ -125,2 +130,13 @@ const _Reflect = globalThis.Reflect; | ||
| * @returns {FifoList<T>} A FIFO list with methods to manipulate and query the list. | ||
| * @example Creating and using FIFO queue | ||
| * ```typescript | ||
| * interface Task { id: number; name: string } | ||
| * const queue = createFifoList<Task>() | ||
| * | ||
| * queue.push({ id: 1, name: 'first' }) | ||
| * queue.push({ id: 2, name: 'second' }) | ||
| * | ||
| * queue.pull() // => { id: 1, name: 'first' } | ||
| * queue.pull() // => { id: 2, name: 'second' } | ||
| * ``` | ||
| */ | ||
@@ -171,2 +187,13 @@ function createFifoList() { | ||
| * @returns {LifoList<T>} A LIFO list with methods to manipulate and query the list. | ||
| * @example Creating and using LIFO stack | ||
| * ```typescript | ||
| * interface HistoryEntry { url: string; timestamp: number } | ||
| * const history = createLifoList<HistoryEntry>() | ||
| * | ||
| * history.push({ url: '/home', timestamp: 1 }) | ||
| * history.push({ url: '/about', timestamp: 2 }) | ||
| * | ||
| * history.pull() // => { url: '/about', timestamp: 2 } | ||
| * history.pull() // => { url: '/home', timestamp: 1 } | ||
| * ``` | ||
| */ | ||
@@ -219,2 +246,10 @@ function createLifoList() { | ||
| * @returns An array containing all numbers from start to end | ||
| * @example Generating number ranges | ||
| * ```typescript | ||
| * createRange(1, 5) | ||
| * // => [1, 2, 3, 4, 5] | ||
| * | ||
| * createRange(3, 3) | ||
| * // => [3] | ||
| * ``` | ||
| */ | ||
@@ -234,2 +269,12 @@ function createRange(start, end) { | ||
| * @returns A ValuePicker instance with current and next methods | ||
| * @example Cycling through values | ||
| * ```typescript | ||
| * const colorPicker = createValuePicker(['red', 'green', 'blue']) | ||
| * | ||
| * colorPicker.current() // => 'red' | ||
| * colorPicker.next() // => 'red' (first call initializes) | ||
| * colorPicker.next() // => 'green' | ||
| * colorPicker.next() // => 'blue' | ||
| * colorPicker.next() // => 'red' (cycles back) | ||
| * ``` | ||
| */ | ||
@@ -268,3 +313,18 @@ function createValuePicker(values) { | ||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
| /* eslint-disable @typescript-eslint/no-explicit-any */ | ||
| /** | ||
| * Retrieves the final key from a Map by converting keys to an array. | ||
| * | ||
| * @param map - The Map to extract the last key from | ||
| * @returns The key that was inserted last, or undefined if map is empty | ||
| * @example Getting last key from Map | ||
| * ```typescript | ||
| * const userRoles = new Map<string, string>() | ||
| * userRoles.set('alice', 'admin') | ||
| * userRoles.set('bob', 'editor') | ||
| * userRoles.set('charlie', 'viewer') | ||
| * | ||
| * getLastKeyInMap(userRoles) // => 'charlie' | ||
| * ``` | ||
| */ | ||
| const getLastKeyInMap = (map) => { | ||
@@ -280,2 +340,7 @@ const items = [...map.keys()]; | ||
| * @returns A new array containing only non-empty strings with content | ||
| * @example Filtering empty strings | ||
| * ```typescript | ||
| * nonEmptyStrings(['hello', '', ' ', 'world', null as unknown as string]) | ||
| * // => ['hello', 'world'] | ||
| * ``` | ||
| */ | ||
@@ -291,2 +356,7 @@ function nonEmptyStrings(values) { | ||
| * @returns A new array containing only unique strings | ||
| * @example Deduplicating strings | ||
| * ```typescript | ||
| * uniqueStrings(['apple', 'banana', 'apple', 'cherry', 'banana']) | ||
| * // => ['apple', 'banana', 'cherry'] | ||
| * ``` | ||
| */ | ||
@@ -306,2 +376,1 @@ function uniqueStrings(values) { | ||
| })); | ||
| //# sourceMappingURL=index.umd.js.map |
@@ -1,2 +0,1 @@ | ||
| !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).HyperfrontendListUtils={})}(this,function(e){"use strict";const t=globalThis.Object.freeze,n=[],r=globalThis.Array,o=r.isArray,i=r.from,s=e=>{if(null===e)return"null";const t=typeof e;if("object"===t){if(o(e))return"array";for(const t of n)if(e instanceof t)return t.name}return t},l=globalThis.Error,a=globalThis.Reflect,u=(e,t)=>a.construct(l,[e,t]),c=globalThis.Set,f=globalThis.Reflect,h=e=>f.construct(c,e?[e]:[]);e.createFifoList=function(){const e=h();return t({push:t=>{if("object"!==s(t))throw u("A fifo list only non-primitive values");if(e.has(t))throw u("Cannot a item that already exists");e.add(t)},pull:()=>{const t=e.values().next().value;return e.delete(t),t},map:t=>i(e.values()).map(t),forEach:t=>{e.forEach(t)},remove:t=>e.delete(t),has:t=>e.has(t),size:()=>e.size,clear:()=>e.clear()})},e.createLifoList=function(){const e=h();return t({push:t=>{if("object"!==s(t))throw u("A lifo list only supports non-primitive values");e.add(t)},pull:()=>{const t=i(e).pop();return t&&e.delete(t),t},map:t=>i(e).map(t),forEach:t=>{e.forEach(t)},remove:t=>e.delete(t),has:t=>e.has(t),size:()=>e.size,clear:()=>{e.clear()}})},e.createRange=function(e,t){const n=[];for(let r=e;r<=t;r+=1)n.push(r);return n},e.createValuePicker=function(e){if(!e||!e.length)throw u("Expected values not to be an empty list.");let t=-1;function n(){return t<0&&(t=0),e[t]}return{current:n,next:function(){return t<0?n():(t=++t<e.length?t:0,e[t])}}},e.getLastKeyInMap=e=>{const t=[...e.keys()];return t[t.length-1]},e.nonEmptyStrings=function(e){return e.filter(e=>![void 0,null,""].includes(e)&&""!==e.trim())},e.uniqueStrings=function(e){return i(h(e))}}); | ||
| //# sourceMappingURL=index.umd.min.js.map | ||
| !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).HyperfrontendListUtils={})}(this,function(e){"use strict";const t=globalThis.Array,n=t.isArray,r=t.from,o=globalThis.Error,i=globalThis.Reflect,s=(e,t)=>i.construct(o,[e,t]),l=globalThis.Object.freeze,a=[],u=e=>{if(null===e)return"null";const t=typeof e;if("object"===t){if(n(e))return"array";for(const t of a)if(e instanceof t)return t.name}return t},c=globalThis.Set,f=globalThis.Reflect,h=e=>f.construct(c,e?[e]:[]);e.createFifoList=function(){const e=h();return l({push:t=>{if("object"!==u(t))throw s("A fifo list only non-primitive values");if(e.has(t))throw s("Cannot a item that already exists");e.add(t)},pull:()=>{const t=e.values().next().value;return e.delete(t),t},map:t=>r(e.values()).map(t),forEach:t=>{e.forEach(t)},remove:t=>e.delete(t),has:t=>e.has(t),size:()=>e.size,clear:()=>e.clear()})},e.createLifoList=function(){const e=h();return l({push:t=>{if("object"!==u(t))throw s("A lifo list only supports non-primitive values");e.add(t)},pull:()=>{const t=r(e).pop();return t&&e.delete(t),t},map:t=>r(e).map(t),forEach:t=>{e.forEach(t)},remove:t=>e.delete(t),has:t=>e.has(t),size:()=>e.size,clear:()=>{e.clear()}})},e.createRange=function(e,t){const n=[];for(let r=e;r<=t;r+=1)n.push(r);return n},e.createValuePicker=function(e){if(!e||!e.length)throw s("Expected values not to be an empty list.");let t=-1;function n(){return t<0&&(t=0),e[t]}return{current:n,next:function(){return t<0?n():(t=++t<e.length?t:0,e[t])}}},e.getLastKeyInMap=e=>{const t=[...e.keys()];return t[t.length-1]},e.nonEmptyStrings=function(e){return e.filter(e=>![void 0,null,""].includes(e)&&""!==e.trim())},e.uniqueStrings=function(e){return r(h(e))}}); |
+14
-6
| # Changelog | ||
| This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). | ||
| All notable changes to this project will be documented in this file. | ||
| ## [0.0.4](https://github.com/AndrewRedican/hyperfrontend/compare/lib-list-utils@0.0.3...lib-list-utils@0.0.4) (2026-03-08) | ||
| ## [0.0.5](https://github.com/AndrewRedican/hyperfrontend/compare/c8db08be8b183addd26caf81fdd17fb3693f296f...466c0388c4cd516b9c704214140b4df1004098e6) - 2026-06-23 | ||
| ## [0.0.3](https://github.com/AndrewRedican/hyperfrontend/compare/lib-list-utils@0.0.2...lib-list-utils@0.0.3) (2026-03-02) | ||
| ### Other | ||
| - **@hyperfrontend/workspace:** remove lib-builder and tool-package as implicit dependencies for all lib projects | ||
| ## [0.0.4](https://github.com/AndrewRedican/hyperfrontend/compare/lib-list-utils@0.0.3...lib-list-utils@0.0.4) - 2026-03-08 | ||
| ## [0.0.3](https://github.com/AndrewRedican/hyperfrontend/compare/lib-list-utils@0.0.2...lib-list-utils@0.0.3) - 2026-03-02 | ||
| ### Bug Fixes | ||
| * **lib-list-utils:** correct package exports ([5966537](https://github.com/AndrewRedican/hyperfrontend/commit/5966537bda3addd6d3bc22bb7b2e9a5cfef7c247)) | ||
| - **lib-list-utils:** correct package exports ([5966537](https://github.com/AndrewRedican/hyperfrontend/commit/5966537bda3addd6d3bc22bb7b2e9a5cfef7c247)) | ||
| ## [0.0.2](https://github.com/AndrewRedican/hyperfrontend/compare/lib-list-utils@0.0.1...lib-list-utils@0.0.2) (2026-02-26) | ||
| ## [0.0.2](https://github.com/AndrewRedican/hyperfrontend/compare/lib-list-utils@0.0.1...lib-list-utils@0.0.2) - 2026-02-26 | ||
| ## 0.0.1 (2026-02-15) | ||
| ## 0.0.1 - 2026-02-15 | ||
+85
-122
| 'use strict'; | ||
| /** | ||
| * Safe copies of Object built-in methods. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/object | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Object = globalThis.Object; | ||
| /** | ||
| * (Safe copy) Prevents modification of existing property attributes and values, | ||
| * and prevents the addition of new properties. | ||
| */ | ||
| const freeze = _Object.freeze; | ||
| const index_cjs_js$2 = require('./_dependencies/@hyperfrontend/data-utils/index.cjs.js'); | ||
| const index_cjs_js$4 = require('./_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.cjs.js'); | ||
| const index_cjs_js$3 = require('./_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.cjs.js'); | ||
| const index_cjs_js$1 = require('./_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.cjs.js'); | ||
| const index_cjs_js = require('./_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.cjs.js'); | ||
| const registeredClasses = []; | ||
| /** | ||
| * Safe copies of Array built-in static methods. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/array | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Array = globalThis.Array; | ||
| /** | ||
| * (Safe copy) Determines whether the passed value is an Array. | ||
| */ | ||
| const isArray = _Array.isArray; | ||
| /** | ||
| * (Safe copy) Creates an array from an array-like or iterable object. | ||
| */ | ||
| const from = _Array.from; | ||
| /** | ||
| * Returns the data type of the target. | ||
| * Uses native `typeof` operator, however, makes distinction between `null`, `array`, and `object`. | ||
| * Also, when classes are registered via `registerClass`, it checks if objects are instance of any known registered class. | ||
| * | ||
| * @param target - The target to get the data type of. | ||
| * @returns The data type of the target. | ||
| */ | ||
| const getType = (target) => { | ||
| if (target === null) | ||
| return 'null'; | ||
| const nativeDataType = typeof target; | ||
| if (nativeDataType === 'object') { | ||
| if (isArray(target)) | ||
| return 'array'; | ||
| for (const registeredClass of registeredClasses) { | ||
| if (target instanceof registeredClass) | ||
| return registeredClass.name; | ||
| } | ||
| } | ||
| return nativeDataType; | ||
| }; | ||
| /** | ||
| * Safe copies of Error built-ins via factory functions. | ||
| * | ||
| * Since constructors cannot be safely captured via Object.assign, this module | ||
| * provides factory functions that use Reflect.construct internally. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/error | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Error = globalThis.Error; | ||
| const _Reflect$1 = globalThis.Reflect; | ||
| /** | ||
| * (Safe copy) Creates a new Error using the captured Error constructor. | ||
| * Use this instead of `new Error()`. | ||
| * | ||
| * @param message - Optional error message. | ||
| * @param options - Optional error options. | ||
| * @returns A new Error instance. | ||
| */ | ||
| const createError = (message, options) => _Reflect$1.construct(_Error, [message, options]); | ||
| /** | ||
| * Safe copies of Set built-in via factory function. | ||
| * | ||
| * Since constructors cannot be safely captured via Object.assign, this module | ||
| * provides a factory function that uses Reflect.construct internally. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/set | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Set = globalThis.Set; | ||
| const _Reflect = globalThis.Reflect; | ||
| /** | ||
| * (Safe copy) Creates a new Set using the captured Set constructor. | ||
| * Use this instead of `new Set()`. | ||
| * | ||
| * @param iterable - Optional iterable of values. | ||
| * @returns A new Set instance. | ||
| */ | ||
| const createSet = (iterable) => _Reflect.construct(_Set, iterable ? [iterable] : []); | ||
| /** | ||
| * Creates a FIFO (First-In-First-Out) list. | ||
@@ -115,11 +14,22 @@ * | ||
| * @returns {FifoList<T>} A FIFO list with methods to manipulate and query the list. | ||
| * @example Creating and using FIFO queue | ||
| * ```typescript | ||
| * interface Task { id: number; name: string } | ||
| * const queue = createFifoList<Task>() | ||
| * | ||
| * queue.push({ id: 1, name: 'first' }) | ||
| * queue.push({ id: 2, name: 'second' }) | ||
| * | ||
| * queue.pull() // => { id: 1, name: 'first' } | ||
| * queue.pull() // => { id: 2, name: 'second' } | ||
| * ``` | ||
| */ | ||
| function createFifoList() { | ||
| const list = createSet(); | ||
| const list = index_cjs_js.createSet(); | ||
| const push = (item) => { | ||
| if (getType(item) !== 'object') { | ||
| throw createError('A fifo list only non-primitive values'); | ||
| if (index_cjs_js$2.getType(item) !== 'object') { | ||
| throw index_cjs_js$3.createError('A fifo list only non-primitive values'); | ||
| } | ||
| if (list.has(item)) { | ||
| throw createError('Cannot a item that already exists'); | ||
| throw index_cjs_js$3.createError('Cannot a item that already exists'); | ||
| } | ||
@@ -134,3 +44,3 @@ list.add(item); | ||
| const map = (callback) => { | ||
| return from(list.values()).map(callback); | ||
| return index_cjs_js$4.from(list.values()).map(callback); | ||
| }; | ||
@@ -154,3 +64,3 @@ const forEach = (callback) => { | ||
| }; | ||
| return freeze(result); | ||
| return index_cjs_js$1.freeze(result); | ||
| } | ||
@@ -163,8 +73,19 @@ | ||
| * @returns {LifoList<T>} A LIFO list with methods to manipulate and query the list. | ||
| * @example Creating and using LIFO stack | ||
| * ```typescript | ||
| * interface HistoryEntry { url: string; timestamp: number } | ||
| * const history = createLifoList<HistoryEntry>() | ||
| * | ||
| * history.push({ url: '/home', timestamp: 1 }) | ||
| * history.push({ url: '/about', timestamp: 2 }) | ||
| * | ||
| * history.pull() // => { url: '/about', timestamp: 2 } | ||
| * history.pull() // => { url: '/home', timestamp: 1 } | ||
| * ``` | ||
| */ | ||
| function createLifoList() { | ||
| const list = createSet(); | ||
| const list = index_cjs_js.createSet(); | ||
| const push = (item) => { | ||
| if (getType(item) !== 'object') { | ||
| throw createError('A lifo list only supports non-primitive values'); | ||
| if (index_cjs_js$2.getType(item) !== 'object') { | ||
| throw index_cjs_js$3.createError('A lifo list only supports non-primitive values'); | ||
| } | ||
@@ -174,3 +95,3 @@ list.add(item); | ||
| const pull = () => { | ||
| const lastItem = from(list).pop(); | ||
| const lastItem = index_cjs_js$4.from(list).pop(); | ||
| if (lastItem) { | ||
@@ -182,3 +103,3 @@ list.delete(lastItem); | ||
| const map = (callback) => { | ||
| return from(list).map(callback); | ||
| return index_cjs_js$4.from(list).map(callback); | ||
| }; | ||
@@ -204,3 +125,3 @@ const forEach = (callback) => { | ||
| }; | ||
| return freeze(result); | ||
| return index_cjs_js$1.freeze(result); | ||
| } | ||
@@ -214,2 +135,10 @@ | ||
| * @returns An array containing all numbers from start to end | ||
| * @example Generating number ranges | ||
| * ```typescript | ||
| * createRange(1, 5) | ||
| * // => [1, 2, 3, 4, 5] | ||
| * | ||
| * createRange(3, 3) | ||
| * // => [3] | ||
| * ``` | ||
| */ | ||
@@ -229,6 +158,16 @@ function createRange(start, end) { | ||
| * @returns A ValuePicker instance with current and next methods | ||
| * @example Cycling through values | ||
| * ```typescript | ||
| * const colorPicker = createValuePicker(['red', 'green', 'blue']) | ||
| * | ||
| * colorPicker.current() // => 'red' | ||
| * colorPicker.next() // => 'red' (first call initializes) | ||
| * colorPicker.next() // => 'green' | ||
| * colorPicker.next() // => 'blue' | ||
| * colorPicker.next() // => 'red' (cycles back) | ||
| * ``` | ||
| */ | ||
| function createValuePicker(values) { | ||
| if (!values || !values.length) { | ||
| throw createError('Expected values not to be an empty list.'); | ||
| throw index_cjs_js$3.createError('Expected values not to be an empty list.'); | ||
| } | ||
@@ -263,3 +202,18 @@ let index = -1; | ||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
| /* eslint-disable @typescript-eslint/no-explicit-any */ | ||
| /** | ||
| * Retrieves the final key from a Map by converting keys to an array. | ||
| * | ||
| * @param map - The Map to extract the last key from | ||
| * @returns The key that was inserted last, or undefined if map is empty | ||
| * @example Getting last key from Map | ||
| * ```typescript | ||
| * const userRoles = new Map<string, string>() | ||
| * userRoles.set('alice', 'admin') | ||
| * userRoles.set('bob', 'editor') | ||
| * userRoles.set('charlie', 'viewer') | ||
| * | ||
| * getLastKeyInMap(userRoles) // => 'charlie' | ||
| * ``` | ||
| */ | ||
| const getLastKeyInMap = (map) => { | ||
@@ -275,2 +229,7 @@ const items = [...map.keys()]; | ||
| * @returns A new array containing only non-empty strings with content | ||
| * @example Filtering empty strings | ||
| * ```typescript | ||
| * nonEmptyStrings(['hello', '', ' ', 'world', null as unknown as string]) | ||
| * // => ['hello', 'world'] | ||
| * ``` | ||
| */ | ||
@@ -286,5 +245,10 @@ function nonEmptyStrings(values) { | ||
| * @returns A new array containing only unique strings | ||
| * @example Deduplicating strings | ||
| * ```typescript | ||
| * uniqueStrings(['apple', 'banana', 'apple', 'cherry', 'banana']) | ||
| * // => ['apple', 'banana', 'cherry'] | ||
| * ``` | ||
| */ | ||
| function uniqueStrings(values) { | ||
| return from(createSet(values)); | ||
| return index_cjs_js$4.from(index_cjs_js.createSet(values)); | ||
| } | ||
@@ -299,2 +263,1 @@ | ||
| exports.uniqueStrings = uniqueStrings; | ||
| //# sourceMappingURL=index.cjs.js.map |
+169
-8
@@ -1,8 +0,169 @@ | ||
| export * from './create-fifo-list'; | ||
| export * from './create-lifo-list'; | ||
| export * from './create-range'; | ||
| export * from './create-value-picker'; | ||
| export * from './get-last-key-in-map'; | ||
| export * from './non-empty-strings'; | ||
| export * from './unique-strings'; | ||
| //# sourceMappingURL=index.d.ts.map | ||
| /** | ||
| * A FIFO (First-In-First-Out) list interface. | ||
| */ | ||
| interface FifoList<T extends object> { | ||
| /** Adds an item to the end of the list */ | ||
| push(item: T): void; | ||
| /** Removes and returns the first item in the list */ | ||
| pull(): T; | ||
| /** Maps each item using the provided callback */ | ||
| map<U>(callback: (item: T) => U): U[]; | ||
| /** Iterates over each item in the list */ | ||
| forEach(callback: (item: T) => void): void; | ||
| /** Removes a specific item from the list */ | ||
| remove(item: T): boolean; | ||
| /** Checks if an item exists in the list */ | ||
| has(item: T): boolean; | ||
| /** Returns the number of items in the list */ | ||
| size(): number; | ||
| /** Removes all items from the list */ | ||
| clear(): void; | ||
| } | ||
| /** | ||
| * Creates a FIFO (First-In-First-Out) list. | ||
| * | ||
| * @template T The type of elements in the list, must be an object. | ||
| * @returns {FifoList<T>} A FIFO list with methods to manipulate and query the list. | ||
| * @example Creating and using FIFO queue | ||
| * ```typescript | ||
| * interface Task { id: number; name: string } | ||
| * const queue = createFifoList<Task>() | ||
| * | ||
| * queue.push({ id: 1, name: 'first' }) | ||
| * queue.push({ id: 2, name: 'second' }) | ||
| * | ||
| * queue.pull() // => { id: 1, name: 'first' } | ||
| * queue.pull() // => { id: 2, name: 'second' } | ||
| * ``` | ||
| */ | ||
| declare function createFifoList<T extends object>(): FifoList<T>; | ||
| /** | ||
| * A LIFO (Last-In-First-Out) list interface. | ||
| */ | ||
| interface LifoList<T extends object> { | ||
| /** Adds an item to the list */ | ||
| push(item: T): void; | ||
| /** Removes and returns the last item in the list */ | ||
| pull(): T | undefined; | ||
| /** Maps each item using the provided callback */ | ||
| map<U>(callback: (item: T) => U): U[]; | ||
| /** Iterates over each item in the list */ | ||
| forEach(callback: (item: T) => void): void; | ||
| /** Removes a specific item from the list */ | ||
| remove(item: T): boolean; | ||
| /** Checks if an item exists in the list */ | ||
| has(item: T): boolean; | ||
| /** Returns the number of items in the list */ | ||
| size(): number; | ||
| /** Removes all items from the list */ | ||
| clear(): void; | ||
| } | ||
| /** | ||
| * Creates a LIFO (Last-In-First-Out) list. | ||
| * | ||
| * @template T The type of elements in the list, must be an object. | ||
| * @returns {LifoList<T>} A LIFO list with methods to manipulate and query the list. | ||
| * @example Creating and using LIFO stack | ||
| * ```typescript | ||
| * interface HistoryEntry { url: string; timestamp: number } | ||
| * const history = createLifoList<HistoryEntry>() | ||
| * | ||
| * history.push({ url: '/home', timestamp: 1 }) | ||
| * history.push({ url: '/about', timestamp: 2 }) | ||
| * | ||
| * history.pull() // => { url: '/about', timestamp: 2 } | ||
| * history.pull() // => { url: '/home', timestamp: 1 } | ||
| * ``` | ||
| */ | ||
| declare function createLifoList<T extends object>(): LifoList<T>; | ||
| /** | ||
| * Interface for cycling through a list of values. | ||
| */ | ||
| interface ValuePicker { | ||
| /** Returns the current value without advancing. */ | ||
| current: () => string; | ||
| /** Advances and returns the next value, cycling at end. */ | ||
| next: () => string; | ||
| } | ||
| /** | ||
| * Creates a value picker that cycles through a list of string values. | ||
| * | ||
| * @param values - The array of string values to cycle through | ||
| * @returns A ValuePicker instance with current and next methods | ||
| * @example Cycling through values | ||
| * ```typescript | ||
| * const colorPicker = createValuePicker(['red', 'green', 'blue']) | ||
| * | ||
| * colorPicker.current() // => 'red' | ||
| * colorPicker.next() // => 'red' (first call initializes) | ||
| * colorPicker.next() // => 'green' | ||
| * colorPicker.next() // => 'blue' | ||
| * colorPicker.next() // => 'red' (cycles back) | ||
| * ``` | ||
| */ | ||
| declare function createValuePicker(values: string[]): ValuePicker; | ||
| /** | ||
| * Creates an array of numbers within a specified range (inclusive). | ||
| * | ||
| * @param start - The starting number of the range | ||
| * @param end - The ending number of the range (inclusive) | ||
| * @returns An array containing all numbers from start to end | ||
| * @example Generating number ranges | ||
| * ```typescript | ||
| * createRange(1, 5) | ||
| * // => [1, 2, 3, 4, 5] | ||
| * | ||
| * createRange(3, 3) | ||
| * // => [3] | ||
| * ``` | ||
| */ | ||
| declare function createRange(start: number, end: number): number[]; | ||
| /** | ||
| * Retrieves the final key from a Map by converting keys to an array. | ||
| * | ||
| * @param map - The Map to extract the last key from | ||
| * @returns The key that was inserted last, or undefined if map is empty | ||
| * @example Getting last key from Map | ||
| * ```typescript | ||
| * const userRoles = new Map<string, string>() | ||
| * userRoles.set('alice', 'admin') | ||
| * userRoles.set('bob', 'editor') | ||
| * userRoles.set('charlie', 'viewer') | ||
| * | ||
| * getLastKeyInMap(userRoles) // => 'charlie' | ||
| * ``` | ||
| */ | ||
| declare const getLastKeyInMap: <K = any>(map: Map<K, any>) => K; | ||
| /** | ||
| * Filters out empty, null, undefined, and whitespace-only strings from an array. | ||
| * | ||
| * @param values - The array of strings to filter | ||
| * @returns A new array containing only non-empty strings with content | ||
| * @example Filtering empty strings | ||
| * ```typescript | ||
| * nonEmptyStrings(['hello', '', ' ', 'world', null as unknown as string]) | ||
| * // => ['hello', 'world'] | ||
| * ``` | ||
| */ | ||
| declare function nonEmptyStrings(values: string[]): string[]; | ||
| /** | ||
| * Removes duplicate strings from an array, preserving insertion order. | ||
| * | ||
| * @param values - The array of strings to deduplicate | ||
| * @returns A new array containing only unique strings | ||
| * @example Deduplicating strings | ||
| * ```typescript | ||
| * uniqueStrings(['apple', 'banana', 'apple', 'cherry', 'banana']) | ||
| * // => ['apple', 'banana', 'cherry'] | ||
| * ``` | ||
| */ | ||
| declare function uniqueStrings(values: string[]): string[]; | ||
| export { createFifoList, createLifoList, createRange, createValuePicker, getLastKeyInMap, nonEmptyStrings, uniqueStrings }; | ||
| export type { FifoList, LifoList, ValuePicker }; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/utils/list/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/utils/list/src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA"} |
+71
-108
@@ -1,109 +0,8 @@ | ||
| /** | ||
| * Safe copies of Object built-in methods. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/object | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Object = globalThis.Object; | ||
| /** | ||
| * (Safe copy) Prevents modification of existing property attributes and values, | ||
| * and prevents the addition of new properties. | ||
| */ | ||
| const freeze = _Object.freeze; | ||
| import { getType } from './_dependencies/@hyperfrontend/data-utils/index.esm.js'; | ||
| import { from } from './_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.esm.js'; | ||
| import { createError } from './_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.esm.js'; | ||
| import { freeze } from './_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.esm.js'; | ||
| import { createSet } from './_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.esm.js'; | ||
| const registeredClasses = []; | ||
| /** | ||
| * Safe copies of Array built-in static methods. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/array | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Array = globalThis.Array; | ||
| /** | ||
| * (Safe copy) Determines whether the passed value is an Array. | ||
| */ | ||
| const isArray = _Array.isArray; | ||
| /** | ||
| * (Safe copy) Creates an array from an array-like or iterable object. | ||
| */ | ||
| const from = _Array.from; | ||
| /** | ||
| * Returns the data type of the target. | ||
| * Uses native `typeof` operator, however, makes distinction between `null`, `array`, and `object`. | ||
| * Also, when classes are registered via `registerClass`, it checks if objects are instance of any known registered class. | ||
| * | ||
| * @param target - The target to get the data type of. | ||
| * @returns The data type of the target. | ||
| */ | ||
| const getType = (target) => { | ||
| if (target === null) | ||
| return 'null'; | ||
| const nativeDataType = typeof target; | ||
| if (nativeDataType === 'object') { | ||
| if (isArray(target)) | ||
| return 'array'; | ||
| for (const registeredClass of registeredClasses) { | ||
| if (target instanceof registeredClass) | ||
| return registeredClass.name; | ||
| } | ||
| } | ||
| return nativeDataType; | ||
| }; | ||
| /** | ||
| * Safe copies of Error built-ins via factory functions. | ||
| * | ||
| * Since constructors cannot be safely captured via Object.assign, this module | ||
| * provides factory functions that use Reflect.construct internally. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/error | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Error = globalThis.Error; | ||
| const _Reflect$1 = globalThis.Reflect; | ||
| /** | ||
| * (Safe copy) Creates a new Error using the captured Error constructor. | ||
| * Use this instead of `new Error()`. | ||
| * | ||
| * @param message - Optional error message. | ||
| * @param options - Optional error options. | ||
| * @returns A new Error instance. | ||
| */ | ||
| const createError = (message, options) => _Reflect$1.construct(_Error, [message, options]); | ||
| /** | ||
| * Safe copies of Set built-in via factory function. | ||
| * | ||
| * Since constructors cannot be safely captured via Object.assign, this module | ||
| * provides a factory function that uses Reflect.construct internally. | ||
| * | ||
| * These references are captured at module initialization time to protect against | ||
| * prototype pollution attacks. Import only what you need for tree-shaking. | ||
| * | ||
| * @module @hyperfrontend/immutable-api-utils/built-in-copy/set | ||
| */ | ||
| // Capture references at module initialization time | ||
| const _Set = globalThis.Set; | ||
| const _Reflect = globalThis.Reflect; | ||
| /** | ||
| * (Safe copy) Creates a new Set using the captured Set constructor. | ||
| * Use this instead of `new Set()`. | ||
| * | ||
| * @param iterable - Optional iterable of values. | ||
| * @returns A new Set instance. | ||
| */ | ||
| const createSet = (iterable) => _Reflect.construct(_Set, iterable ? [iterable] : []); | ||
| /** | ||
| * Creates a FIFO (First-In-First-Out) list. | ||
@@ -113,2 +12,13 @@ * | ||
| * @returns {FifoList<T>} A FIFO list with methods to manipulate and query the list. | ||
| * @example Creating and using FIFO queue | ||
| * ```typescript | ||
| * interface Task { id: number; name: string } | ||
| * const queue = createFifoList<Task>() | ||
| * | ||
| * queue.push({ id: 1, name: 'first' }) | ||
| * queue.push({ id: 2, name: 'second' }) | ||
| * | ||
| * queue.pull() // => { id: 1, name: 'first' } | ||
| * queue.pull() // => { id: 2, name: 'second' } | ||
| * ``` | ||
| */ | ||
@@ -159,2 +69,13 @@ function createFifoList() { | ||
| * @returns {LifoList<T>} A LIFO list with methods to manipulate and query the list. | ||
| * @example Creating and using LIFO stack | ||
| * ```typescript | ||
| * interface HistoryEntry { url: string; timestamp: number } | ||
| * const history = createLifoList<HistoryEntry>() | ||
| * | ||
| * history.push({ url: '/home', timestamp: 1 }) | ||
| * history.push({ url: '/about', timestamp: 2 }) | ||
| * | ||
| * history.pull() // => { url: '/about', timestamp: 2 } | ||
| * history.pull() // => { url: '/home', timestamp: 1 } | ||
| * ``` | ||
| */ | ||
@@ -207,2 +128,10 @@ function createLifoList() { | ||
| * @returns An array containing all numbers from start to end | ||
| * @example Generating number ranges | ||
| * ```typescript | ||
| * createRange(1, 5) | ||
| * // => [1, 2, 3, 4, 5] | ||
| * | ||
| * createRange(3, 3) | ||
| * // => [3] | ||
| * ``` | ||
| */ | ||
@@ -222,2 +151,12 @@ function createRange(start, end) { | ||
| * @returns A ValuePicker instance with current and next methods | ||
| * @example Cycling through values | ||
| * ```typescript | ||
| * const colorPicker = createValuePicker(['red', 'green', 'blue']) | ||
| * | ||
| * colorPicker.current() // => 'red' | ||
| * colorPicker.next() // => 'red' (first call initializes) | ||
| * colorPicker.next() // => 'green' | ||
| * colorPicker.next() // => 'blue' | ||
| * colorPicker.next() // => 'red' (cycles back) | ||
| * ``` | ||
| */ | ||
@@ -256,3 +195,18 @@ function createValuePicker(values) { | ||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
| /* eslint-disable @typescript-eslint/no-explicit-any */ | ||
| /** | ||
| * Retrieves the final key from a Map by converting keys to an array. | ||
| * | ||
| * @param map - The Map to extract the last key from | ||
| * @returns The key that was inserted last, or undefined if map is empty | ||
| * @example Getting last key from Map | ||
| * ```typescript | ||
| * const userRoles = new Map<string, string>() | ||
| * userRoles.set('alice', 'admin') | ||
| * userRoles.set('bob', 'editor') | ||
| * userRoles.set('charlie', 'viewer') | ||
| * | ||
| * getLastKeyInMap(userRoles) // => 'charlie' | ||
| * ``` | ||
| */ | ||
| const getLastKeyInMap = (map) => { | ||
@@ -268,2 +222,7 @@ const items = [...map.keys()]; | ||
| * @returns A new array containing only non-empty strings with content | ||
| * @example Filtering empty strings | ||
| * ```typescript | ||
| * nonEmptyStrings(['hello', '', ' ', 'world', null as unknown as string]) | ||
| * // => ['hello', 'world'] | ||
| * ``` | ||
| */ | ||
@@ -279,2 +238,7 @@ function nonEmptyStrings(values) { | ||
| * @returns A new array containing only unique strings | ||
| * @example Deduplicating strings | ||
| * ```typescript | ||
| * uniqueStrings(['apple', 'banana', 'apple', 'cherry', 'banana']) | ||
| * // => ['apple', 'banana', 'cherry'] | ||
| * ``` | ||
| */ | ||
@@ -286,2 +250,1 @@ function uniqueStrings(values) { | ||
| export { createFifoList, createLifoList, createRange, createValuePicker, getLastKeyInMap, nonEmptyStrings, uniqueStrings }; | ||
| //# sourceMappingURL=index.esm.js.map |
+12
-7
| { | ||
| "name": "@hyperfrontend/list-utils", | ||
| "version": "0.0.4", | ||
| "version": "0.0.5", | ||
| "description": "Purpose-built collection utilities for queue management, filtering, and iteration patterns.", | ||
@@ -34,6 +34,2 @@ "license": "MIT", | ||
| "require": "./index.cjs.js" | ||
| }, | ||
| "./bundle": { | ||
| "import": "./bundle/index.iife.min.js", | ||
| "require": "./bundle/index.iife.min.js" | ||
| } | ||
@@ -57,3 +53,12 @@ }, | ||
| "unpkg": "./bundle/index.umd.min.js", | ||
| "jsdelivr": "./bundle/index.umd.min.js" | ||
| } | ||
| "jsdelivr": "./bundle/index.umd.min.js", | ||
| "files": [ | ||
| "**/index.*", | ||
| "**/index.d.ts", | ||
| "CHANGELOG.md", | ||
| "LICENSE.md", | ||
| "README.md", | ||
| "SECURITY.md", | ||
| "!**/*.js.map" | ||
| ] | ||
| } |
+3
-1
@@ -38,2 +38,4 @@ # @hyperfrontend/list-utils | ||
| β’ π See [**documentation**](https://www.hyperfrontend.dev/docs/libraries/utils/list/) | ||
| ## What is @hyperfrontend/list-utils? | ||
@@ -170,2 +172,2 @@ | ||
| MIT | ||
| [MIT](https://github.com/AndrewRedican/hyperfrontend/blob/main/LICENSE.md) |
| {"version":3,"file":"index.iife.js","sources":["../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/object/index.ts","../../../../../../../../../../libs/utils/data/src/shared/consts.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/array/index.ts","../../../../../../../../../../libs/utils/data/src/get-type.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/error/index.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/set/index.ts","../../../../../../../../../../libs/utils/list/src/create-fifo-list.ts","../../../../../../../../../../libs/utils/list/src/create-lifo-list.ts","../../../../../../../../../../libs/utils/list/src/create-range.ts","../../../../../../../../../../libs/utils/list/src/create-value-picker.ts","../../../../../../../../../../libs/utils/list/src/get-last-key-in-map.ts","../../../../../../../../../../libs/utils/list/src/non-empty-strings.ts","../../../../../../../../../../libs/utils/list/src/unique-strings.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_Reflect"],"mappings":"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"} |
| {"version":3,"file":"index.iife.min.js","sources":["../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/object/index.ts","../../../../../../../../../../libs/utils/data/src/shared/consts.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/array/index.ts","../../../../../../../../../../libs/utils/data/src/get-type.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/error/index.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/set/index.ts","../../../../../../../../../../libs/utils/list/src/create-fifo-list.ts","../../../../../../../../../../libs/utils/list/src/create-lifo-list.ts","../../../../../../../../../../libs/utils/list/src/create-range.ts","../../../../../../../../../../libs/utils/list/src/create-value-picker.ts","../../../../../../../../../../libs/utils/list/src/get-last-key-in-map.ts","../../../../../../../../../../libs/utils/list/src/non-empty-strings.ts","../../../../../../../../../../libs/utils/list/src/unique-strings.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["freeze","globalThis","Object","registeredClasses","_Array","Array","isArray","from","getType","target","nativeDataType","registeredClass","name","_Error","Error","_Reflect","Reflect","createError","message","options","construct","_Set","Set","createSet","iterable","list","push","item","has","add","pull","value","values","next","delete","map","callback","forEach","remove","size","clear","lastItem","pop","start","end","range","i","length","index","current","items","keys","filter","undefined","includes","trim"],"mappings":"oDAUA,MAUaA,EAVGC,WAAWC,OAUGF,OChBjBG,EAAoC,GCM3CC,EAASH,WAAWI,MAMbC,EAAUF,EAAOE,QAKjBC,EAAOH,EAAOG,KCTdC,EAAwCC,IACnD,GAAe,OAAXA,EAAiB,MAAU,OAC/B,MAAMC,SAAwBD,EAC9B,GAAuB,WAAnBC,EAA6B,CAC/B,GAAIJ,EAAQG,GAAS,MAAU,QAC/B,IAAK,MAAME,KAAmBR,EAC5B,GAAIM,aAAkBE,EAAiB,OAAUA,EAAgBC,IAErE,CACA,OAAUF,GCRNG,EAASZ,WAAWa,MAQpBC,EAAWd,WAAWe,QAWfC,EAAc,CAACC,EAAkBC,IAAyCJ,EAASK,UAAUP,EAAQ,CAACK,EAASC,ICnBtHE,EAAOpB,WAAWqB,IAClBP,EAAWd,WAAWe,QAUfO,EAAgBC,GAAkDT,EAASK,UAAUC,EAAMG,EAAW,CAACA,GAAY,uCCA9H,MAAMC,EAAeF,IA6CrB,OAAOvB,EAXqB,CAC1B0B,KAjCYC,IACZ,GAAsB,WAAlBnB,EAAQmB,GACV,MAAMV,EAAY,yCAEpB,GAAIQ,EAAKG,IAAID,GACX,MAAMV,EAAY,qCAEpBQ,EAAKI,IAAIF,IA2BTG,KAxBW,KACX,MAAMC,EAAQN,EAAKO,SAASC,OAAOF,MAEnC,OADAN,EAAKS,OAAUH,GACLA,GAsBVI,IAnBcC,GACP7B,EAAKkB,EAAKO,UAAUG,IAAIC,GAmB/BC,QAhBeD,IACfX,EAAKY,QAAQD,IAgBbE,OAbcX,GAAqBF,EAAKS,OAAOP,GAc/CC,IAZWD,GAAqBF,EAAKG,IAAID,GAazCY,KAXW,IAAMd,EAAKc,KAYtBC,MAVY,IAAMf,EAAKe,SAc3B,8BC9CE,MAAMf,EAAeF,IA8CrB,OAAOvB,EAXqB,CAC1B0B,KAlCYC,IACZ,GAAsB,WAAlBnB,EAAQmB,GACV,MAAMV,EAAY,kDAEpBQ,EAAKI,IAAIF,IA+BTG,KA5BW,KACX,MAAMW,EAAWlC,EAAKkB,GAAMiB,MAI5B,OAHID,GACFhB,EAAKS,OAAOO,GAEPA,GAwBPN,IArBcC,GACP7B,EAAKkB,GAAMU,IAAIC,GAqBtBC,QAlBeD,IACfX,EAAKY,QAAQD,IAkBbE,OAfcX,GAAqBF,EAAKS,OAAOP,GAgB/CC,IAdWD,GAAqBF,EAAKG,IAAID,GAezCY,KAbW,IAAcd,EAAKc,KAc9BC,MAZY,KACZf,EAAKe,UAeT,gBChEM,SAAsBG,EAAeC,GACzC,MAAMC,EAAkB,GACxB,IAAK,IAAIC,EAAIH,EAAOG,GAAKF,EAAKE,GAAK,EACjCD,EAAMnB,KAAKoB,GAEb,OAAOD,CACT,sBCAM,SAA4Bb,GAChC,IAAKA,IAAWA,EAAOe,OACrB,MAAM9B,EAAY,4CAEpB,IAAI+B,GAAQ,EAMZ,SAASC,IAEP,OADID,EAAQ,IAAGA,EAAQ,GAChBhB,EAAOgB,EAChB,CAWA,MAAO,CACLC,QAASA,EACThB,KAPF,WACE,OAAIe,EAAQ,EAAUC,KACtBD,IAAUA,EAAQhB,EAAOe,OAASC,EAAQ,EACnChB,EAAOgB,GAChB,EAKF,oBCxCyCb,IACvC,MAAMe,EAAQ,IAAIf,EAAIgB,QACtB,OAAUD,EAAMA,EAAMH,OAAS,sBCG3B,SAA0Bf,GAC9B,OAAOA,EAAOoB,OAAQrB,IAAW,MAACsB,EAAW,KAAM,IAAIC,SAASvB,IAA2B,KAAjBA,EAAMwB,OAClF,kBCCM,SAAwBvB,GAC5B,OAAOzB,EAAKgB,EAAUS,GACxB"} |
| {"version":3,"file":"index.umd.js","sources":["../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/object/index.ts","../../../../../../../../../../libs/utils/data/src/shared/consts.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/array/index.ts","../../../../../../../../../../libs/utils/data/src/get-type.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/error/index.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/set/index.ts","../../../../../../../../../../libs/utils/list/src/create-fifo-list.ts","../../../../../../../../../../libs/utils/list/src/create-lifo-list.ts","../../../../../../../../../../libs/utils/list/src/create-range.ts","../../../../../../../../../../libs/utils/list/src/create-value-picker.ts","../../../../../../../../../../libs/utils/list/src/get-last-key-in-map.ts","../../../../../../../../../../libs/utils/list/src/non-empty-strings.ts","../../../../../../../../../../libs/utils/list/src/unique-strings.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_Reflect"],"mappings":"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"} |
| {"version":3,"file":"index.umd.min.js","sources":["../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/object/index.ts","../../../../../../../../../../libs/utils/data/src/shared/consts.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/array/index.ts","../../../../../../../../../../libs/utils/data/src/get-type.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/error/index.ts","../../../../../../../../../../libs/utils/immutable-api/src/built-in-copy/set/index.ts","../../../../../../../../../../libs/utils/list/src/create-fifo-list.ts","../../../../../../../../../../libs/utils/list/src/create-lifo-list.ts","../../../../../../../../../../libs/utils/list/src/create-range.ts","../../../../../../../../../../libs/utils/list/src/create-value-picker.ts","../../../../../../../../../../libs/utils/list/src/get-last-key-in-map.ts","../../../../../../../../../../libs/utils/list/src/non-empty-strings.ts","../../../../../../../../../../libs/utils/list/src/unique-strings.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["freeze","globalThis","Object","registeredClasses","_Array","Array","isArray","from","getType","target","nativeDataType","registeredClass","name","_Error","Error","_Reflect","Reflect","createError","message","options","construct","_Set","Set","createSet","iterable","list","push","item","has","add","pull","value","values","next","delete","map","callback","forEach","remove","size","clear","lastItem","pop","start","end","range","i","length","index","current","items","keys","filter","undefined","includes","trim"],"mappings":"6PAUA,MAUaA,EAVGC,WAAWC,OAUGF,OChBjBG,EAAoC,GCM3CC,EAASH,WAAWI,MAMbC,EAAUF,EAAOE,QAKjBC,EAAOH,EAAOG,KCTdC,EAAwCC,IACnD,GAAe,OAAXA,EAAiB,MAAU,OAC/B,MAAMC,SAAwBD,EAC9B,GAAuB,WAAnBC,EAA6B,CAC/B,GAAIJ,EAAQG,GAAS,MAAU,QAC/B,IAAK,MAAME,KAAmBR,EAC5B,GAAIM,aAAkBE,EAAiB,OAAUA,EAAgBC,IAErE,CACA,OAAUF,GCRNG,EAASZ,WAAWa,MAQpBC,EAAWd,WAAWe,QAWfC,EAAc,CAACC,EAAkBC,IAAyCJ,EAASK,UAAUP,EAAQ,CAACK,EAASC,ICnBtHE,EAAOpB,WAAWqB,IAClBP,EAAWd,WAAWe,QAUfO,EAAgBC,GAAkDT,EAASK,UAAUC,EAAMG,EAAW,CAACA,GAAY,gCCA9H,MAAMC,EAAeF,IA6CrB,OAAOvB,EAXqB,CAC1B0B,KAjCYC,IACZ,GAAsB,WAAlBnB,EAAQmB,GACV,MAAMV,EAAY,yCAEpB,GAAIQ,EAAKG,IAAID,GACX,MAAMV,EAAY,qCAEpBQ,EAAKI,IAAIF,IA2BTG,KAxBW,KACX,MAAMC,EAAQN,EAAKO,SAASC,OAAOF,MAEnC,OADAN,EAAKS,OAAUH,GACLA,GAsBVI,IAnBcC,GACP7B,EAAKkB,EAAKO,UAAUG,IAAIC,GAmB/BC,QAhBeD,IACfX,EAAKY,QAAQD,IAgBbE,OAbcX,GAAqBF,EAAKS,OAAOP,GAc/CC,IAZWD,GAAqBF,EAAKG,IAAID,GAazCY,KAXW,IAAMd,EAAKc,KAYtBC,MAVY,IAAMf,EAAKe,SAc3B,8BC9CE,MAAMf,EAAeF,IA8CrB,OAAOvB,EAXqB,CAC1B0B,KAlCYC,IACZ,GAAsB,WAAlBnB,EAAQmB,GACV,MAAMV,EAAY,kDAEpBQ,EAAKI,IAAIF,IA+BTG,KA5BW,KACX,MAAMW,EAAWlC,EAAKkB,GAAMiB,MAI5B,OAHID,GACFhB,EAAKS,OAAOO,GAEPA,GAwBPN,IArBcC,GACP7B,EAAKkB,GAAMU,IAAIC,GAqBtBC,QAlBeD,IACfX,EAAKY,QAAQD,IAkBbE,OAfcX,GAAqBF,EAAKS,OAAOP,GAgB/CC,IAdWD,GAAqBF,EAAKG,IAAID,GAezCY,KAbW,IAAcd,EAAKc,KAc9BC,MAZY,KACZf,EAAKe,UAeT,gBChEM,SAAsBG,EAAeC,GACzC,MAAMC,EAAkB,GACxB,IAAK,IAAIC,EAAIH,EAAOG,GAAKF,EAAKE,GAAK,EACjCD,EAAMnB,KAAKoB,GAEb,OAAOD,CACT,sBCAM,SAA4Bb,GAChC,IAAKA,IAAWA,EAAOe,OACrB,MAAM9B,EAAY,4CAEpB,IAAI+B,GAAQ,EAMZ,SAASC,IAEP,OADID,EAAQ,IAAGA,EAAQ,GAChBhB,EAAOgB,EAChB,CAWA,MAAO,CACLC,QAASA,EACThB,KAPF,WACE,OAAIe,EAAQ,EAAUC,KACtBD,IAAUA,EAAQhB,EAAOe,OAASC,EAAQ,EACnChB,EAAOgB,GAChB,EAKF,oBCxCyCb,IACvC,MAAMe,EAAQ,IAAIf,EAAIgB,QACtB,OAAUD,EAAMA,EAAMH,OAAS,sBCG3B,SAA0Bf,GAC9B,OAAOA,EAAOoB,OAAQrB,IAAW,MAACsB,EAAW,KAAM,IAAIC,SAASvB,IAA2B,KAAjBA,EAAMwB,OAClF,kBCCM,SAAwBvB,GAC5B,OAAOzB,EAAKgB,EAAUS,GACxB"} |
| export interface FifoList<T extends object> { | ||
| push(item: T): void; | ||
| pull(): T; | ||
| map<U>(callback: (item: T) => U): U[]; | ||
| forEach(callback: (item: T) => void): void; | ||
| remove(item: T): boolean; | ||
| has(item: T): boolean; | ||
| size(): number; | ||
| clear(): void; | ||
| } | ||
| /** | ||
| * Creates a FIFO (First-In-First-Out) list. | ||
| * | ||
| * @template T The type of elements in the list, must be an object. | ||
| * @returns {FifoList<T>} A FIFO list with methods to manipulate and query the list. | ||
| */ | ||
| export declare function createFifoList<T extends object>(): FifoList<T>; | ||
| //# sourceMappingURL=create-fifo-list.d.ts.map |
| {"version":3,"file":"create-fifo-list.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/utils/list/src/create-fifo-list.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,MAAM;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;IACnB,IAAI,IAAI,CAAC,CAAA;IACT,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAA;IACrC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAA;IAC1C,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAA;IACxB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAA;IACrB,IAAI,IAAI,MAAM,CAAA;IACd,KAAK,IAAI,IAAI,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CA+C9D"} |
| export interface LifoList<T extends object> { | ||
| push(item: T): void; | ||
| pull(): T | undefined; | ||
| map<U>(callback: (item: T) => U): U[]; | ||
| forEach(callback: (item: T) => void): void; | ||
| remove(item: T): boolean; | ||
| has(item: T): boolean; | ||
| size(): number; | ||
| clear(): void; | ||
| } | ||
| /** | ||
| * Creates a LIFO (Last-In-First-Out) list. | ||
| * | ||
| * @template T The type of elements in the list, must be an object. | ||
| * @returns {LifoList<T>} A LIFO list with methods to manipulate and query the list. | ||
| */ | ||
| export declare function createLifoList<T extends object>(): LifoList<T>; | ||
| //# sourceMappingURL=create-lifo-list.d.ts.map |
| {"version":3,"file":"create-lifo-list.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/utils/list/src/create-lifo-list.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,MAAM;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;IACnB,IAAI,IAAI,CAAC,GAAG,SAAS,CAAA;IACrB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAA;IACrC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAA;IAC1C,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAA;IACxB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAA;IACrB,IAAI,IAAI,MAAM,CAAA;IACd,KAAK,IAAI,IAAI,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAgD9D"} |
| /** | ||
| * Creates an array of numbers within a specified range (inclusive). | ||
| * | ||
| * @param start - The starting number of the range | ||
| * @param end - The ending number of the range (inclusive) | ||
| * @returns An array containing all numbers from start to end | ||
| */ | ||
| export declare function createRange(start: number, end: number): number[]; | ||
| //# sourceMappingURL=create-range.d.ts.map |
| {"version":3,"file":"create-range.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/utils/list/src/create-range.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAMhE"} |
| export interface ValuePicker { | ||
| current: () => string; | ||
| next: () => string; | ||
| } | ||
| /** | ||
| * Creates a value picker that cycles through a list of string values. | ||
| * | ||
| * @param values - The array of string values to cycle through | ||
| * @returns A ValuePicker instance with current and next methods | ||
| */ | ||
| export declare function createValuePicker(values: string[]): ValuePicker; | ||
| //# sourceMappingURL=create-value-picker.d.ts.map |
| {"version":3,"file":"create-value-picker.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/utils/list/src/create-value-picker.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CA4B/D"} |
| export declare const getLastKeyInMap: <K = any>(map: Map<K, any>) => K; | ||
| //# sourceMappingURL=get-last-key-in-map.d.ts.map |
| {"version":3,"file":"get-last-key-in-map.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/utils/list/src/get-last-key-in-map.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,GAAI,CAAC,GAAG,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAG,CAG3D,CAAA"} |
| {"version":3,"file":"index.cjs.js","sources":["../../../../../../../../libs/utils/immutable-api/src/built-in-copy/object/index.ts","../../../../../../../../libs/utils/data/src/shared/consts.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/array/index.ts","../../../../../../../../libs/utils/data/src/get-type.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/error/index.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/set/index.ts","../../../../../../../../libs/utils/list/src/create-fifo-list.ts","../../../../../../../../libs/utils/list/src/create-lifo-list.ts","../../../../../../../../libs/utils/list/src/create-range.ts","../../../../../../../../libs/utils/list/src/create-value-picker.ts","../../../../../../../../libs/utils/list/src/get-last-key-in-map.ts","../../../../../../../../libs/utils/list/src/non-empty-strings.ts","../../../../../../../../libs/utils/list/src/unique-strings.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_Reflect"],"mappings":"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"} |
| {"version":3,"file":"index.esm.js","sources":["../../../../../../../../libs/utils/immutable-api/src/built-in-copy/object/index.ts","../../../../../../../../libs/utils/data/src/shared/consts.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/array/index.ts","../../../../../../../../libs/utils/data/src/get-type.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/error/index.ts","../../../../../../../../libs/utils/immutable-api/src/built-in-copy/set/index.ts","../../../../../../../../libs/utils/list/src/create-fifo-list.ts","../../../../../../../../libs/utils/list/src/create-lifo-list.ts","../../../../../../../../libs/utils/list/src/create-range.ts","../../../../../../../../libs/utils/list/src/create-value-picker.ts","../../../../../../../../libs/utils/list/src/get-last-key-in-map.ts","../../../../../../../../libs/utils/list/src/non-empty-strings.ts","../../../../../../../../libs/utils/list/src/unique-strings.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_Reflect"],"mappings":"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"} |
| /** | ||
| * Filters out empty, null, undefined, and whitespace-only strings from an array. | ||
| * | ||
| * @param values - The array of strings to filter | ||
| * @returns A new array containing only non-empty strings with content | ||
| */ | ||
| export declare function nonEmptyStrings(values: string[]): string[]; | ||
| //# sourceMappingURL=non-empty-strings.d.ts.map |
| {"version":3,"file":"non-empty-strings.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/utils/list/src/non-empty-strings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE1D"} |
| /** | ||
| * Removes duplicate strings from an array, preserving insertion order. | ||
| * | ||
| * @param values - The array of strings to deduplicate | ||
| * @returns A new array containing only unique strings | ||
| */ | ||
| export declare function uniqueStrings(values: string[]): string[]; | ||
| //# sourceMappingURL=unique-strings.d.ts.map |
| {"version":3,"file":"unique-strings.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/utils/list/src/unique-strings.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAExD"} |
1807
52.62%172
1.18%81635
-9.76%29
-12.12%