πŸš€ Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more β†’
Sign In

@hyperfrontend/list-utils

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hyperfrontend/list-utils - npm Package Compare versions

Comparing version
0.0.4
to
0.0.5
+214
_dependencies/@hyperfrontend/data-utils/index.cjs.js
'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}({});

@@ -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))}});
# 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
'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

@@ -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 +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"}

@@ -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
{
"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"
]
}

@@ -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"}