@untemps/utils 3.1.1 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=({tag:e=`div`,attributes:t={},content:n=null,textContent:r=null,parent:i=null,parentSelector:a=null,boundingClientRect:o=null}={})=>{let s=document.createElement(e);for(let e in t)s.setAttribute(e,t[e]);n&&s.appendChild(n),r&&!s.hasChildNodes()&&s.appendChild(document.createTextNode(r));let c=i||document.querySelector(a);return c&&c.appendChild(s),o&&(s.getBoundingClientRect=()=>o),s};exports.createElement=e;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=({tag:e=`div`,attributes:t={},content:n=null,textContent:r=null,parent:i=null,parentSelector:a=null,boundingClientRect:o=null}={})=>{let s=document.createElement(e);if(t)for(let[e,n]of Object.entries(t))s.setAttribute(e,n);n&&s.appendChild(n),r&&!s.hasChildNodes()&&s.appendChild(document.createTextNode(r));let c=i||document.querySelector(a);return c&&c.appendChild(s),o&&(s.getBoundingClientRect=()=>o),s};exports.createElement=e;
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../src/dom/createElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC1C,yEAAyE;IACzE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAA;CAClD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,yFAQ3B,mBAAwB,KAAG,WAmB7B,CAAA"}
1
+ {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../src/dom/createElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC1C,yEAAyE;IACzE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAA;CAClD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,yFAQ3B,mBAAwB,KAAG,WAqB7B,CAAA"}
@@ -1,7 +1,7 @@
1
1
  //#region src/dom/createElement.ts
2
2
  var e = ({ tag: e = "div", attributes: t = {}, content: n = null, textContent: r = null, parent: i = null, parentSelector: a = null, boundingClientRect: o = null } = {}) => {
3
3
  let s = document.createElement(e);
4
- for (let e in t) s.setAttribute(e, t[e]);
4
+ if (t) for (let [e, n] of Object.entries(t)) s.setAttribute(e, n);
5
5
  n && s.appendChild(n), r && !s.hasChildNodes() && s.appendChild(document.createTextNode(r));
6
6
  let c = i || document.querySelector(a);
7
7
  return c && c.appendChild(s), o && (s.getBoundingClientRect = () => o), s;
@@ -10,7 +10,7 @@
10
10
  * element.className = 'foo'
11
11
  * document.body.appendChild(element)
12
12
  *
13
- * removeElement(element) // <div class="foo"></div>
13
+ * removeElement(element) // returns the detached <div class="foo"></div>
14
14
  *
15
15
  * @param element - The DOM element or the selector of the DOM element to remove.
16
16
  * @returns The removed DOM element.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./array/extractByIndices.cjs`),t=require(`./async/standby.cjs`),n=require(`./dom/createElement.cjs`),r=require(`./dom/doElementsOverlap.cjs`),i=require(`./dom/getCSSDeclaration.cjs`),a=require(`./dom/getElement.cjs`),o=require(`./dom/isElement.cjs`),s=require(`./string/isString.cjs`),c=require(`./dom/modifyElement.cjs`),l=require(`./dom/removeElement.cjs`),u=require(`./dom/resolveClassName.cjs`),d=require(`./function/isFunction.cjs`),f=require(`./lang/isNil.cjs`),p=require(`./number/normalizeMinMax.cjs`),m=require(`./number/getRandomInteger.cjs`),h=require(`./object/isObject.cjs`),g=require(`./object/deepMerge.cjs`),_=require(`./string/generateText.cjs`),v=require(`./string/generateTokenizedText.cjs`),y=require(`./string/interpolate.cjs`),b=require(`./string/interpolateLiteral.cjs`);exports.createElement=n.createElement,exports.deepMerge=g.deepMerge,exports.doElementsOverlap=r.doElementsOverlap,exports.extractByIndices=e.extractByIndices,exports.generateText=_.generateText,exports.generateTokenizedText=v.generateTokenizedText,exports.getCSSDeclaration=i.getCSSDeclaration,exports.getElement=a.getElement,exports.getRandomInteger=m.getRandomInteger,exports.interpolate=y.interpolate,exports.interpolateLiteral=b.interpolateLiteral,exports.isElement=o.isElement,exports.isFunction=d.isFunction,exports.isNil=f.isNil,exports.isObject=h.isObject,exports.isString=s.isString,exports.modifyElement=c.modifyElement,exports.normalizeMinMax=p.normalizeMinMax,exports.removeElement=l.removeElement,exports.resolveClassName=u.resolveClassName,exports.standby=t.standby;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./array/extractByIndices.cjs`),t=require(`./async/standby.cjs`),n=require(`./dom/createElement.cjs`),r=require(`./dom/doElementsOverlap.cjs`),i=require(`./dom/getCSSDeclaration.cjs`),a=require(`./dom/getElement.cjs`),o=require(`./dom/isElement.cjs`),s=require(`./string/isString.cjs`),c=require(`./dom/modifyElement.cjs`),l=require(`./dom/removeElement.cjs`),u=require(`./dom/resolveClassName.cjs`),d=require(`./function/isFunction.cjs`),f=require(`./lang/isNil.cjs`),p=require(`./number/normalizeMinMax.cjs`),m=require(`./number/clamp.cjs`),h=require(`./number/getRandomInteger.cjs`),g=require(`./object/isObject.cjs`),_=require(`./object/deepMerge.cjs`),v=require(`./string/generateText.cjs`),y=require(`./string/generateTokenizedText.cjs`),b=require(`./string/interpolate.cjs`),x=require(`./string/interpolateLiteral.cjs`);exports.clamp=m.clamp,exports.createElement=n.createElement,exports.deepMerge=_.deepMerge,exports.doElementsOverlap=r.doElementsOverlap,exports.extractByIndices=e.extractByIndices,exports.generateText=v.generateText,exports.generateTokenizedText=y.generateTokenizedText,exports.getCSSDeclaration=i.getCSSDeclaration,exports.getElement=a.getElement,exports.getRandomInteger=h.getRandomInteger,exports.interpolate=b.interpolate,exports.interpolateLiteral=x.interpolateLiteral,exports.isElement=o.isElement,exports.isFunction=d.isFunction,exports.isNil=f.isNil,exports.isObject=g.isObject,exports.isString=s.isString,exports.modifyElement=c.modifyElement,exports.normalizeMinMax=p.normalizeMinMax,exports.removeElement=l.removeElement,exports.resolveClassName=u.resolveClassName,exports.standby=t.standby;
package/dist/index.d.ts CHANGED
@@ -12,6 +12,7 @@ export { resolveClassName } from './dom/resolveClassName';
12
12
  export type { ClassConditionTuple, ClassEntry } from './dom/resolveClassName';
13
13
  export { isFunction } from './function/isFunction';
14
14
  export { isNil } from './lang/isNil';
15
+ export { clamp } from './number/clamp';
15
16
  export { getRandomInteger } from './number/getRandomInteger';
16
17
  export { normalizeMinMax } from './number/normalizeMinMax';
17
18
  export { deepMerge } from './object/deepMerge';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,YAAY,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,YAAY,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/index.js CHANGED
@@ -12,11 +12,12 @@ import { resolveClassName as u } from "./dom/resolveClassName.js";
12
12
  import { isFunction as d } from "./function/isFunction.js";
13
13
  import { isNil as f } from "./lang/isNil.js";
14
14
  import { normalizeMinMax as p } from "./number/normalizeMinMax.js";
15
- import { getRandomInteger as m } from "./number/getRandomInteger.js";
16
- import { isObject as h } from "./object/isObject.js";
17
- import { deepMerge as g } from "./object/deepMerge.js";
18
- import { generateText as _ } from "./string/generateText.js";
19
- import { generateTokenizedText as v } from "./string/generateTokenizedText.js";
20
- import { interpolate as y } from "./string/interpolate.js";
21
- import { interpolateLiteral as b } from "./string/interpolateLiteral.js";
22
- export { n as createElement, g as deepMerge, r as doElementsOverlap, e as extractByIndices, _ as generateText, v as generateTokenizedText, i as getCSSDeclaration, a as getElement, m as getRandomInteger, y as interpolate, b as interpolateLiteral, o as isElement, d as isFunction, f as isNil, h as isObject, s as isString, c as modifyElement, p as normalizeMinMax, l as removeElement, u as resolveClassName, t as standby };
15
+ import { clamp as m } from "./number/clamp.js";
16
+ import { getRandomInteger as h } from "./number/getRandomInteger.js";
17
+ import { isObject as g } from "./object/isObject.js";
18
+ import { deepMerge as _ } from "./object/deepMerge.js";
19
+ import { generateText as v } from "./string/generateText.js";
20
+ import { generateTokenizedText as y } from "./string/generateTokenizedText.js";
21
+ import { interpolate as b } from "./string/interpolate.js";
22
+ import { interpolateLiteral as x } from "./string/interpolateLiteral.js";
23
+ export { m as clamp, n as createElement, _ as deepMerge, r as doElementsOverlap, e as extractByIndices, v as generateText, y as generateTokenizedText, i as getCSSDeclaration, a as getElement, h as getRandomInteger, b as interpolate, x as interpolateLiteral, o as isElement, d as isFunction, f as isNil, g as isObject, s as isString, c as modifyElement, p as normalizeMinMax, l as removeElement, u as resolveClassName, t as standby };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./normalizeMinMax.cjs`);var t=(t,n,r)=>{let{min:i,max:a}=e.normalizeMinMax(n,r);return Math.min(Math.max(t,i),a)};exports.clamp=t;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module number/clamp
3
+ */
4
+ /**
5
+ * @function
6
+ * @example
7
+ * import { clamp } from '@untemps/utils/number/clamp'
8
+ *
9
+ * clamp(5, 0, 10) // 5
10
+ * clamp(-3, 0, 10) // 0
11
+ * clamp(15, 0, 10) // 10
12
+ * clamp(5, 10, 0) // 5 (reversed min/max is normalized)
13
+ *
14
+ * @param value - The value to clamp.
15
+ * @param min - The lower bound.
16
+ * @param max - The upper bound.
17
+ * @returns The value clamped to [min, max].
18
+ */
19
+ export declare const clamp: (value: number, min: number, max: number) => number;
20
+ //# sourceMappingURL=clamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clamp.d.ts","sourceRoot":"","sources":["../../src/number/clamp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAG/D,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { normalizeMinMax as e } from "./normalizeMinMax.js";
2
+ //#region src/number/clamp.ts
3
+ var t = (t, n, r) => {
4
+ let { min: i, max: a } = e(n, r);
5
+ return Math.min(Math.max(t, i), a);
6
+ };
7
+ //#endregion
8
+ export { t as clamp };
@@ -26,7 +26,7 @@ export interface GenerateTokenizedTextConfig {
26
26
  * const minWords = 5
27
27
  * const maxWords = 10
28
28
  * const dictionary = ['foo', 'bar', 'gag']
29
- * generateTokenizedText(tokens, divider, minWords, maxWords, dictionary) // {indices: Array(3), text: "foo $pol$ $biz$ bar gag $kuy$ foo gag foo"}}
29
+ * generateTokenizedText({ tokens, divider, minWords, maxWords, dictionary }) // {indices: Array(3), text: "foo $pol$ $biz$ bar gag $kuy$ foo gag foo"}
30
30
  *
31
31
  * @param config - The configuration object for the text generation.
32
32
  * @returns An object containing a list of token indices and the generated string.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@untemps/utils",
3
- "version": "3.1.1",
3
+ "version": "3.2.1",
4
4
  "description": "Utils for @untemps packages",
5
5
  "repository": "git@github.com:untemps/utils.git",
6
6
  "keywords": [],
@@ -34,12 +34,14 @@
34
34
  "devDependencies": {
35
35
  "@commitlint/cli": "^20.0.0",
36
36
  "@commitlint/config-conventional": "^20.0.0",
37
+ "@eslint/js": "^10.0.1",
37
38
  "@semantic-release/changelog": "^6.0.3",
38
39
  "@semantic-release/git": "^10.0.1",
39
40
  "@semantic-release/github": "^12.0.0",
40
41
  "@testing-library/jest-dom": "^6.0.0",
41
42
  "@types/node": "^25.5.0",
42
43
  "@vitest/coverage-v8": "^3.0.0",
44
+ "eslint": "^10.3.0",
43
45
  "fast-check": "^4.0.0",
44
46
  "husky": "^9.0.0",
45
47
  "jsdom": "^26.0.0",
@@ -47,6 +49,7 @@
47
49
  "semantic-release": "^25.0.0",
48
50
  "typedoc": "^0.28.18",
49
51
  "typescript": "^6.0.2",
52
+ "typescript-eslint": "^8.59.3",
50
53
  "vite": "^8.0.0",
51
54
  "vitest": "^3.0.0"
52
55
  },
@@ -81,9 +84,11 @@
81
84
  "scripts": {
82
85
  "docs": "typedoc && node scripts/open-docs.mjs",
83
86
  "test": "vitest",
84
- "test:ci": "vitest run --coverage",
87
+ "test:ci": "vitest run --coverage && yarn lint",
85
88
  "build": "vite build && tsc -p tsconfig.build.json",
86
- "prettier": "prettier \"src/**/*.ts\" --ignore-path ./.prettierignore --write && git add . && git status",
89
+ "lint": "eslint \"src/**/*.ts\"",
90
+ "typecheck": "tsc --noEmit",
91
+ "prettier": "prettier \"src/**/*.ts\" --ignore-path ./.prettierignore --write && git add src/**/*.ts && git status",
87
92
  "prepare": "husky"
88
93
  }
89
94
  }