{"_id":"@azlib/std","_rev":"5-8d2921b5c4fa5a8e1dfcf2670326b8a6","name":"@azlib/std","dist-tags":{"latest":"0.5.0"},"versions":{"0.2.0":{"name":"@azlib/std","version":"0.2.0","license":"MIT","_id":"@azlib/std@0.2.0","maintainers":[{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"}],"homepage":"https://github.com/hanhn-dev/azlib#readme","bugs":{"url":"https://github.com/hanhn-dev/azlib/issues"},"dist":{"shasum":"125c43328e0c37b45a45c75527728d422aee9f33","tarball":"https://registry.npmjs.org/@azlib/std/-/std-0.2.0.tgz","fileCount":3,"integrity":"sha512-NLQHbUOgqtEnP9kRjxaR45+DHDXmrEZVngWANUee5+sGYIWG/tK6CFJ+cESEliI2lTmm60qlIa4gKXv4KSCq5A==","signatures":[{"sig":"MEQCIEPTeRAb8TrrYHFVrs12n3IH0Q+vBT3psV7UNQXqRn31AiAMmRKTPROMUEYqlzE9C7WMYQhbXgB+vfu5REOA+D37gA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13919},"type":"module","_from":"file:azlib-std-0.2.0.tgz","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./array/patch":{"types":"./dist/array/patch.d.mts","import":"./dist/array/patch.mjs","require":"./dist/array/patch.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"rm -rf dist && tsdown","clean":"rm -rf .turbo node_modules dist"},"_npmUser":{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"},"_resolved":"/tmp/36a232cb9679904fa8a7794915639649/azlib-std-0.2.0.tgz","_integrity":"sha512-NLQHbUOgqtEnP9kRjxaR45+DHDXmrEZVngWANUee5+sGYIWG/tK6CFJ+cESEliI2lTmm60qlIa4gKXv4KSCq5A==","repository":{"url":"git+https://github.com/hanhn-dev/azlib.git","type":"git"},"_npmVersion":"11.17.0","description":"Language-level helpers for arrays, objects, strings, and numbers. Pure functions by default, with an opt-in `Array.prototype` patch for method-style calls.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","vitest":"^4.1.10","typescript":"7.0.2","@azlib/ts-config":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/std_0.2.0_1787554552891_0.3338593251540778","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@azlib/std","version":"0.3.0","license":"MIT","_id":"@azlib/std@0.3.0","maintainers":[{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"}],"homepage":"https://github.com/hanhn-dev/azlib#readme","bugs":{"url":"https://github.com/hanhn-dev/azlib/issues"},"dist":{"shasum":"b9dbbb2a7b5222e589bc3b50d24e73a734549d98","tarball":"https://registry.npmjs.org/@azlib/std/-/std-0.3.0.tgz","fileCount":3,"integrity":"sha512-VFfi6Zl48anNfhV9yTdA3/ev7oa6XFhYBNr+TVDrzRMHl0EWsF/G67ZWEmFbNFblaT4+xEB8ZXnwGdJbTgkCuA==","signatures":[{"sig":"MEQCIGCUzyl3ucuoy6nBszlBbxRxGhvNXqFRmCWswiP1LS45AiAbw0+m5lvgoOVZgqM0WfwJ6325qngjva4eIy+pM8xceA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14395},"type":"module","_from":"file:azlib-std-0.3.0.tgz","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./array/patch":{"types":"./dist/array/patch.d.mts","import":"./dist/array/patch.mjs","require":"./dist/array/patch.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"rm -rf dist && tsdown","clean":"rm -rf .turbo node_modules dist"},"_npmUser":{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"},"_resolved":"/tmp/4f15dcf5f3ac879a14959d6b47d09d78/azlib-std-0.3.0.tgz","_integrity":"sha512-VFfi6Zl48anNfhV9yTdA3/ev7oa6XFhYBNr+TVDrzRMHl0EWsF/G67ZWEmFbNFblaT4+xEB8ZXnwGdJbTgkCuA==","repository":{"url":"git+https://github.com/hanhn-dev/azlib.git","type":"git"},"_npmVersion":"11.17.0","description":"Language-level helpers for arrays, objects, strings, numbers, and functions. Pure functions by default, with an opt-in `Array.prototype` patch for method-style calls.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","vitest":"^4.1.10","typescript":"7.0.2","@azlib/ts-config":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/std_0.3.0_1787557376230_0.7034314550448437","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@azlib/std","version":"0.4.0","license":"MIT","_id":"@azlib/std@0.4.0","maintainers":[{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"}],"homepage":"https://github.com/hanhn-dev/azlib#readme","bugs":{"url":"https://github.com/hanhn-dev/azlib/issues"},"dist":{"shasum":"109dacc3151513cc19b5a0b4b51df9742b06b9d8","tarball":"https://registry.npmjs.org/@azlib/std/-/std-0.4.0.tgz","fileCount":3,"integrity":"sha512-kCFTHnVlyT8jyvOKu9nqIOtejxUT74eo7X2wt+zVUUFVrs/dhWlCvZrEMMOXHpAB0unpsFK/lj1T4PHmNQi3rw==","signatures":[{"sig":"MEUCIH+by2u1Q1BPYAZS67BNxyF6qGi+xlQMWaA62k5PxmxuAiEAhe9WfXtM715p0Pq1zalY0RBEYF5XUU7eSqATn7ashS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14860},"type":"module","_from":"file:azlib-std-0.4.0.tgz","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./array/patch":{"types":"./dist/array/patch.d.mts","import":"./dist/array/patch.mjs","require":"./dist/array/patch.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"rm -rf dist && tsdown","clean":"rm -rf .turbo node_modules dist"},"_npmUser":{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"},"_resolved":"/tmp/2245e5f9355f9185bd3af4bc8ce2ee2a/azlib-std-0.4.0.tgz","_integrity":"sha512-kCFTHnVlyT8jyvOKu9nqIOtejxUT74eo7X2wt+zVUUFVrs/dhWlCvZrEMMOXHpAB0unpsFK/lj1T4PHmNQi3rw==","repository":{"url":"git+https://github.com/hanhn-dev/azlib.git","type":"git"},"_npmVersion":"11.17.0","description":"Language-level helpers for arrays, objects, strings, numbers, and functions. Pure functions by default, with an opt-in `Array.prototype` patch for method-style calls.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","vitest":"^4.1.10","typescript":"7.0.2","@azlib/ts-config":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/std_0.4.0_1787558209540_0.7803266677868692","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@azlib/std","version":"0.4.1","license":"MIT","_id":"@azlib/std@0.4.1","maintainers":[{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"}],"homepage":"https://github.com/hanhn-dev/azlib#readme","bugs":{"url":"https://github.com/hanhn-dev/azlib/issues"},"dist":{"shasum":"794a445cddb733ceff0e503c4a276850b3b8a5af","tarball":"https://registry.npmjs.org/@azlib/std/-/std-0.4.1.tgz","fileCount":20,"integrity":"sha512-R0/Kha2n/k5RAKndLxZ1GAe4GhNoq/4BdISvFXFT5USQwdK32LX7SAEpGyExwtMomC8yoqnHtfhty7HXd01X4Q==","signatures":[{"sig":"MEUCIBlaCk+X859RYnKLT+KqCMJUs6Cxgzjf7BGIhrsuoQ9IAiEAzo0udX2fd/KLCrSPxuDzGr2Jjb3QAneJc52zRRbuxTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125554},"type":"module","_from":"file:azlib-std-0.4.1.tgz","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./array/patch":{"types":"./dist/array/patch.d.mts","import":"./dist/array/patch.mjs","require":"./dist/array/patch.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"rm -rf dist && tsdown","clean":"rm -rf .turbo node_modules dist"},"_npmUser":{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"},"_resolved":"/tmp/a60a843d5a50ff5ec5399a34c75eb855/azlib-std-0.4.1.tgz","_integrity":"sha512-R0/Kha2n/k5RAKndLxZ1GAe4GhNoq/4BdISvFXFT5USQwdK32LX7SAEpGyExwtMomC8yoqnHtfhty7HXd01X4Q==","repository":{"url":"git+https://github.com/hanhn-dev/azlib.git","type":"git"},"_npmVersion":"11.17.0","description":"Language-level helpers for arrays, objects, strings, numbers, and functions. Pure functions by default, with an opt-in `Array.prototype` patch for method-style calls.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","vitest":"^4.1.10","typescript":"7.0.2","@azlib/ts-config":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/std_0.4.1_1787558920917_0.08216695056801981","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@azlib/std","version":"0.5.0","type":"module","license":"MIT","repository":{"type":"git","url":"git+https://github.com/hanhn-dev/azlib.git"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./array/patch":{"types":"./dist/array/patch.d.mts","import":"./dist/array/patch.mjs","require":"./dist/array/patch.cjs"}},"devDependencies":{"tsdown":"^0.22.14","typescript":"7.0.2","vitest":"^4.1.10","@azlib/ts-config":"0.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"scripts":{"build":"rm -rf dist && tsdown","dev":"tsdown --watch","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","clean":"rm -rf .turbo node_modules dist"},"_id":"@azlib/std@0.5.0","description":"Language-level helpers for arrays, objects, strings, numbers, and functions. Pure functions by default, with an opt-in `Array.prototype` patch for method-style calls.","bugs":{"url":"https://github.com/hanhn-dev/azlib/issues"},"homepage":"https://github.com/hanhn-dev/azlib#readme","_integrity":"sha512-vSFpFA1zEeSZvjMSZ2K/FhsHHzr6b19YQkxe6jqu2QbRpQkk6nVG07XKmgysf81VwYzD0MP+1SjFKId3dNdfaw==","_resolved":"/tmp/6a005ac71a1f6fcc93782eff00894033/azlib-std-0.5.0.tgz","_from":"file:azlib-std-0.5.0.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-vSFpFA1zEeSZvjMSZ2K/FhsHHzr6b19YQkxe6jqu2QbRpQkk6nVG07XKmgysf81VwYzD0MP+1SjFKId3dNdfaw==","shasum":"3335923b7fd251598b8be3a3b36b084bb6d3013e","tarball":"https://registry.npmjs.org/@azlib/std/-/std-0.5.0.tgz","fileCount":24,"unpackedSize":279170,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGoynjFBsKyQk16DCA4HCxOD7tw3OPQoC4/j0UEehcZVAiAKb5iWkGZ0cTyUSe8Gug/CTyEreRTh6VQZD2m0/gzlnw=="}]},"_npmUser":{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"},"directories":{},"maintainers":[{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/std_0.5.0_1787986105854_0.8151463757999509"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-24T06:55:52.691Z","modified":"2026-08-29T06:48:26.179Z","0.2.0":"2026-08-24T06:55:53.012Z","0.3.0":"2026-08-24T07:42:56.350Z","0.4.0":"2026-08-24T07:56:49.695Z","0.4.1":"2026-08-24T08:08:41.053Z","0.5.0":"2026-08-29T06:48:25.989Z"},"bugs":{"url":"https://github.com/hanhn-dev/azlib/issues"},"license":"MIT","homepage":"https://github.com/hanhn-dev/azlib#readme","repository":{"type":"git","url":"git+https://github.com/hanhn-dev/azlib.git"},"description":"Language-level helpers for arrays, objects, strings, numbers, and functions. Pure functions by default, with an opt-in `Array.prototype` patch for method-style calls.","maintainers":[{"name":"hanhn.dev","email":"hanhn.dev@gmail.com"}],"readme":"# @azlib/std\n\nLanguage-level helpers for arrays, objects, strings, numbers, and functions. Pure functions by default, with an opt-in `Array.prototype` patch for method-style calls.\n\nDate/time belongs in `@azlib/temporal`. Validation belongs in `@azlib/validator`.\n\n## Install\n\n```bash\npnpm add @azlib/std\n```\n\n## Pure functions\n\n```ts\nimport {\n  shuffle,\n  unique,\n  difference,\n  intersection,\n  union,\n  sortBy,\n  countBy,\n  sum,\n  mean,\n  zip,\n  zipObject,\n  pick,\n  omit,\n  pickBy,\n  omitBy,\n  compactObject,\n  merge,\n  isEqual,\n  cloneDeep,\n  get,\n  set,\n  unset,\n  has,\n  flattenObject,\n  unflattenObject,\n  asRecord,\n  asArray,\n  asString,\n  asNumber,\n  asInteger,\n  asBoolean,\n  asError,\n  isNil,\n  isDefined,\n  isPrimitive,\n  isPromise,\n  isError,\n  isPlainObject,\n  capitalize,\n  kebabCase,\n  snakeCase,\n  camelCase,\n  pascalCase,\n  constantCase,\n  titleCase,\n  escapeRegExp,\n  escapeHtml,\n  unescapeHtml,\n  slugify,\n  template,\n  dedent,\n  mask,\n  clamp,\n  inRange,\n  round,\n  randomInt,\n  mapRange,\n  normalize,\n  debounce,\n  throttle,\n  retry,\n  timeout,\n  parallel,\n  memoize,\n  attempt,\n  tryOr,\n  pipe,\n  compose,\n} from \"@azlib/std\";\n\n// Objects\npick({ a: 1, b: 2 }, [\"a\"]);\nomit({ a: 1, b: 2 }, [\"b\"]);\ncompactObject({ a: 1, b: null, c: undefined }); // { a: 1 }\nisEqual({ a: [1, 2] }, { a: [1, 2] }); // true\ncloneDeep({ a: new Set([1, 2]) });\nget({ a: { b: 1 } }, \"a.b\");\nset({ a: { b: 1 } }, \"a.b\", 2);\nunset({ a: { b: 1 } }, \"a.b\");\nhas({ a: { b: 1 } }, \"a.b\"); // true\n\n// Arrays\ndifference([1, 2, 3], [2]); // [1, 3]\nintersection([1, 2, 3], [2, 3, 4]); // [2, 3]\nunion([1, 2], [2, 3]); // [1, 2, 3]\nsortBy([{ age: 30 }, { age: 20 }], (x) => x.age);\ncountBy([\"apple\", \"banana\", \"avocado\"], (s) => s[0]); // { a: 2, b: 1 }\nsum([1, 2, 3, 4]); // 10\nmean([2, 4, 6]); // 4\n\n// Strings & Numbers\nslugify(\"Café & Restaurant — NY!\"); // \"cafe-restaurant-ny\"\nescapeHtml(\"<script>\"); // \"&lt;script&gt;\"\ntemplate(\"Hello {user.name}\", { user: { name: \"Alex\" } }); // \"Hello Alex\"\nrandomInt(1, 10); // 1..10\nmapRange(5, 0, 10, 100, 200); // 150\n\n// Functions & Async\nconst [err, data] = attempt(() => JSON.parse('{\"a\":1}'));\nawait retry(async () => fetchData(), { retries: 3 });\nawait parallel([1, 2, 3, 4], 2, async (id) => process(id));\n```\n\nImporting `@azlib/std` never mutates built-in prototypes.\n\n## Opt-in array patch\n\n```ts\nimport { patchArray } from \"@azlib/std/array/patch\";\n\npatchArray();\n[1, 2, 3, 4].take(2);\n[1, 2, 3].difference([2]); // [1, 3]\n[1, 2, 3, 4].sum(); // 10\n```\n\n## AI Agent Quick Reference\n\n| Export | Description |\n| --- | --- |\n| `shuffle` / `chunk` / `unique` / `groupBy` / `countBy` | Array transforms & groupings |\n| `difference` / `differenceBy` / `intersection` / `union` / `symmetricDifference` | Set operations on arrays |\n| `sortBy` / `take` / `drop` / `takeWhile` / `dropWhile` / `compact` / `partition` | Array slicing, ordering & filtering |\n| `sum` / `sumBy` / `mean` / `meanBy` / `minBy` / `maxBy` | Collection math aggregations |\n| `zip` / `unzip` / `zipObject` / `intersperse` / `range` / `sample` | Array structuring & sampling |\n| `pick` / `omit` / `pickBy` / `omitBy` / `compactObject` | Object selection & sanitization |\n| `merge` / `cloneDeep` / `isEqual` / `invert` / `defaults` | Deep object merging, cloning & equality |\n| `get` / `set` / `unset` / `has` / `flattenObject` / `unflattenObject` | Path-based access & nesting transforms |\n| `asRecord` / `asArray` / `asString` / `asNumber` / `asInteger` / `asFloat` / `asBoolean` / `asError` | Unknown → typed coercion (JSON/API mapping) |\n| `isNil` / `isDefined` / `isPrimitive` / `isPromise` / `isError` / `isPlainObject` | Type guards & runtime checks |\n| `capitalize` / `truncate` / `words` / `titleCase` / `dedent` | String basics & formatting |\n| `kebabCase` / `snakeCase` / `camelCase` / `pascalCase` / `constantCase` | Case converters |\n| `escapeRegExp` / `escapeHtml` / `unescapeHtml` / `slugify` / `template` / `mask` | String escaping, slugification & templating |\n| `clamp` / `lerp` / `inRange` / `round` / `random` / `randomInt` / `mapRange` / `normalize` / `isEven` / `isOdd` | Number & range helpers |\n| `debounce` / `throttle` / `once` / `noop` / `identity` / `sleep` | Core function utilities |\n| `retry` / `timeout` / `parallel` / `deferred` / `memoize` / `attempt` / `tryOr` / `tryOrAsync` / `pipe` / `compose` / `negate` / `times` | Async & functional flow helpers |\n| `patchArray` / `unpatchArray` | From `@azlib/std/array/patch` |\n","readmeFilename":"README.md"}