{"_id":"@actualwave/primitive-type-checker","_rev":"6-becf9bf2acea191c679cd12de55dea84","name":"@actualwave/primitive-type-checker","dist-tags":{"latest":"0.2.3"},"versions":{"0.1.9":{"name":"@actualwave/primitive-type-checker","version":"0.1.9","keywords":["js","javascript"],"author":{"url":"http://actualwave.com/","name":"Oleg Galaburda","email":"burdiuz@gmail.com"},"license":"MIT","_id":"@actualwave/primitive-type-checker@0.1.9","maintainers":[{"name":"actualwave","email":"burdiuz@gmail.com"}],"homepage":"https://github.com/burdiuz/js-lib-environment","bugs":{"url":"https://github.com/burdiuz/js-lib-environment/issues","email":"burdiuz@gmail.com"},"dist":{"shasum":"334cdd09ec8300e03f56e406b741bb3624175889","tarball":"https://registry.npmjs.org/@actualwave/primitive-type-checker/-/primitive-type-checker-0.1.9.tgz","fileCount":21,"integrity":"sha512-KQgEU0rQ+FSCGio5AAY9H2dwz3hRPBpA4zBE0Qz1qAh4xvxbYV0DdkgthEzBz4hzBkD2W+yiooMdEn9Wf6Ee+A==","signatures":[{"sig":"MEUCIQDkm5EvRQ3jf4Jz1F18cecS0axF+s3PY3i0HNNa0TZtvAIgPdqpso8brF6ta7s0zrh3eFxD1Om6keSg8FM5RKr9Gmw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbAnxmCRA9TVsSAnZWagAAxmYP/1H1VBI9xid6bNtFMYuy\ngWt5njDKglvxUeSPygnd1x6N6oQyyKu4wMosLVUg3P+/nmozZtyLycC1XP9l\nuFQNMuSkX7tNyNJEiccZlnTgE3sB30alKCrid9sf5OI0U0qYM4Doq+O6RyOL\nZrAHIFeoCcILFnUPDoaN+9zj3CLaQvRVRHu57AniFkpETCRrSyHpxwcyvuM9\ny+VTuA0LUv9kvVnRyGyJky57V/RyVPL055I4GDLIVpJOMZ1q/1yG6jrjCnWH\nXj2CYUxo7kn/AZ7mZ6cwpUTS7eYjxFm7U7frZwvM63uZlY5GA5eZS86F0H8K\nRKZqucXeb2Xk0nLQPjaw+7apSeJ9W4oXjGQwDX+QlRoF7r0SKACZzQ6kC4OZ\n1Tm80Jq6HXIP3IZSNGdJca4t7P++qagqSBqDGMwGWVV9lhgP/9z4dXUOISYn\nfZd5X6bixXQAo9+H34cbl5jStHMSoxlyIAeABWB/b7AP/nIkLg8YXUeUFJiU\nMx6PZEe7lS3OA3wuicV3YyQ7f4swOQsXqe3V3BRWP4e9PzttYT4BEhJyGVTf\nyhIw9ri88o5q6GqfH1EIv654T5JhfIaERrROHnq8UxkCc4yOC2rT6chp1HZP\nbiyErZT64lEV3vDV+qwftQxs8ur+dsQEzHkMQadUpdhluWO71m+Oo/NzAws2\nK4aq\r\n=M7oJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"collectCoverage":true,"coverageDirectory":"coverage","coverageReporters":["json","lcov"],"collectCoverageFrom":["source/**/*.js","!**/node_modules/**","!**/vendor/**"]},"main":"dist/primitive-type-checker.js","babel":{"env":{"test":{"plugins":["babel-plugin-transform-es2015-modules-commonjs","babel-plugin-transform-flow-strip-types","babel-plugin-transform-class-properties",["babel-plugin-transform-object-rest-spread",{"useBuiltIns":true}]],"presets":["jest"]}}},"gitHead":"9cd78b14953f579d7eecb622a746f3a04f51344d","scripts":{"flow":"flow","lint":"eslint \"source/**/*.js\"","test":"jest --colors","build":"rollup --config","start":"npm run build","server":"rollup --config rollup.serve.js","precommit":"npm run build && npm run test && npm run lint-staged","test:watch":"jest --colors --watch","build:watch":"rollup --config --watch \"./source\"","lint-staged":"lint-staged"},"_npmUser":{"name":"actualwave","email":"burdiuz@gmail.com"},"prettier":{"parser":"flow","arrowParens":"always","singleQuote":true,"trailing-comma":"es5"},"repository":{"url":"git+https://github.com/burdiuz/js-lib-environment.git","type":"git"},"_npmVersion":"6.0.1","description":"[![Coverage Status](https://coveralls.io/repos/github/burdiuz/js-primitive-type-checker/badge.svg?branch=master)](https://coveralls.io/github/burdiuz/js-primitive-type-checker?branch=master) [![Build Status](https://travis-ci.org/burdiuz/js-primitive-type","directories":{},"lint-staged":{"source/**/*.js":["prettier --write","eslint --fix","git add ."]},"_nodeVersion":"8.10.0","dependencies":{"@actualwave/has-own":"0.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^22.4.3","husky":"^0.14.3","eslint":"^4.19.1","flow-bin":"^0.72.0","prettier":"^1.12.1","uglify-es":"^3.3.9","babel-core":"^6.26.3","lint-staged":"^7.1.0","babel-eslint":"^8.2.3","babel-loader":"^7.1.4","babel-preset-jest":"^22.4.3","rollup-plugin-json":"^3.0.0","eslint-plugin-react":"^7.8.2","rollup-plugin-babel":"^3.0.4","rollup-plugin-serve":"^0.4.2","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.11.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-istanbul":"^4.1.6","eslint-plugin-jsx-a11y":"^6.0.3","rollup-plugin-commonjs":"^9.1.3","@actualwave/type-checkers":"^0.1.12","rollup-plugin-node-resolve":"^3.3.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-flow-strip-types":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-plugin-transform-es2015-modules-commonjs":"^6.26.2"},"_npmOperationalInternal":{"tmp":"tmp/primitive-type-checker_0.1.9_1526889572963_0.6198792032750868","host":"s3://npm-registry-packages"}},"0.1.10":{"name":"@actualwave/primitive-type-checker","version":"0.1.10","keywords":["js","javascript"],"author":{"url":"http://actualwave.com/","name":"Oleg Galaburda","email":"burdiuz@gmail.com"},"license":"MIT","_id":"@actualwave/primitive-type-checker@0.1.10","maintainers":[{"name":"actualwave","email":"burdiuz@gmail.com"}],"homepage":"https://github.com/burdiuz/js-primitive-type-checker","bugs":{"url":"https://github.com/burdiuz/js-primitive-type-checker/issues","email":"burdiuz@gmail.com"},"dist":{"shasum":"c21a1f835e472248568d9ba44b00dca0f8ce0baa","tarball":"https://registry.npmjs.org/@actualwave/primitive-type-checker/-/primitive-type-checker-0.1.10.tgz","fileCount":21,"integrity":"sha512-W2orW65jB4vO9JnKz0OJRVzycE1JmPAJeZkEeU6UkLqkCyDc6Z5zDRIrY0bgkisHygn+YYQp9ytocxUGIyeFDw==","signatures":[{"sig":"MEQCIAZrL1byrbIJT+b8ddjvaPwqTdmzZLW4/a33xzjM+XzNAiBM/PX9a9hudzv/38KLdAe3JNx96cPTC7g7voBEShcfHQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78878,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbAn/pCRA9TVsSAnZWagAAva8P/RT/NXFsDXhqNWoUlRoZ\niIGRP39pOImBgzJmKOeT+1B/EGzMdTdjLEstWS9loTP42wv0eEaVoVawRnIp\nrKOPI4Uc6ZU0xscZxYvaaJbEl2CNA8Y8LqvhUmxXanwEB8UlAfykhCGUjo/o\nESWwMHw02UlfSfSK6ECHsWVsGYcB1TnRYfo8cHOv87FhiU10dsoazcgMYqsL\nntLjjqbw9jqYTjkxUeGi9RRR+O1IQIpMemZ0CxSI6OkdfYsZQzDi1BNMh1Kt\nIR+wgOIu4SMLOoWI5noJ6P04BGoj4lkGq8x8L4/Uahxp2BNF1W5Yr+hv32R5\nd+zj/+Cu1X1kcG3w6mqg3q51qNUVn60IxFLoQxGjgWZo7UFbQd4SBve/SV7M\n6Jm4oSUbw20285JZQHu6SDbvUI2mwtiy6R2tFvJEl89e/qgkOqcYicpfeAem\ngLeUNFigGiHmHk3qz58UkZJR7cXwL6riab/aSeD9PgVqOxe37AAGruej3WVA\ncMmN84rac6gleBq3fVdXB2kLbJ3W9XtL1wIE8m+F+3/zH/jl6uAU6Q0qJWKy\nfFu/fmY0Zob/9uNjozts9colTdoGAhVnudsnGkRglQLmhIJg8swZjTiMlv/4\nqIrQPl3xAGzQSPoNkYmfDL8wYWeeB6SUiGl36Cy0V7/F5lQRlZmoTRH0Xpf/\nVe86\r\n=0qL3\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"collectCoverage":true,"coverageDirectory":"coverage","coverageReporters":["json","lcov"],"collectCoverageFrom":["source/**/*.js","!**/node_modules/**","!**/vendor/**"]},"main":"dist/primitive-type-checker.js","babel":{"env":{"test":{"plugins":["babel-plugin-transform-es2015-modules-commonjs","babel-plugin-transform-flow-strip-types","babel-plugin-transform-class-properties",["babel-plugin-transform-object-rest-spread",{"useBuiltIns":true}]],"presets":["jest"]}}},"gitHead":"4eeadcb33d7cd01cea4aa2f2a006017ca0afc96c","scripts":{"flow":"flow","lint":"eslint \"source/**/*.js\"","test":"jest --colors","build":"rollup --config","start":"npm run build","server":"rollup --config rollup.serve.js","precommit":"npm run build && npm run test && npm run lint-staged","test:watch":"jest --colors --watch","build:watch":"rollup --config --watch \"./source\"","lint-staged":"lint-staged"},"_npmUser":{"name":"actualwave","email":"burdiuz@gmail.com"},"prettier":{"parser":"flow","arrowParens":"always","singleQuote":true,"trailing-comma":"es5"},"repository":{"url":"git+https://github.com/burdiuz/js-primitive-type-checker.git","type":"git"},"_npmVersion":"6.0.1","description":"Runtime type check for pirimitive value types(uses typeof and identifies arrays).","directories":{},"lint-staged":{"source/**/*.js":["prettier --write","eslint --fix","git add ."]},"_nodeVersion":"8.10.0","dependencies":{"@actualwave/has-own":"0.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^22.4.3","husky":"^0.14.3","eslint":"^4.19.1","flow-bin":"^0.72.0","prettier":"^1.12.1","uglify-es":"^3.3.9","babel-core":"^6.26.3","lint-staged":"^7.1.0","babel-eslint":"^8.2.3","babel-loader":"^7.1.4","babel-preset-jest":"^22.4.3","rollup-plugin-json":"^3.0.0","eslint-plugin-react":"^7.8.2","rollup-plugin-babel":"^3.0.4","rollup-plugin-serve":"^0.4.2","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.11.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-istanbul":"^4.1.6","eslint-plugin-jsx-a11y":"^6.0.3","rollup-plugin-commonjs":"^9.1.3","@actualwave/type-checkers":"^0.1.12","rollup-plugin-node-resolve":"^3.3.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-flow-strip-types":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-plugin-transform-es2015-modules-commonjs":"^6.26.2"},"_npmOperationalInternal":{"tmp":"tmp/primitive-type-checker_0.1.10_1526890473173_0.2408806163275179","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@actualwave/primitive-type-checker","version":"0.2.2","keywords":["js","javascript","typescript"],"author":{"url":"http://actualwave.com/","name":"Oleg Galaburda","email":"burdiuz@gmail.com"},"license":"MIT","_id":"@actualwave/primitive-type-checker@0.2.2","maintainers":[{"name":"actualwave","email":"burdiuz@gmail.com"}],"homepage":"https://github.com/burdiuz/js-primitive-type-checker","bugs":{"url":"https://github.com/burdiuz/js-primitive-type-checker/issues","email":"burdiuz@gmail.com"},"dist":{"shasum":"78e2cb35229c50ad729bf0988e20aa46a4c525b3","tarball":"https://registry.npmjs.org/@actualwave/primitive-type-checker/-/primitive-type-checker-0.2.2.tgz","fileCount":14,"integrity":"sha512-OyNgm2cNiLQPILcuiTsYpUJQD13An/I6FGCsTHZnxhkp5xOcL0Jr4vc9JpzcN8qha7NylLqVeHqMMD/k2RMYtw==","signatures":[{"sig":"MEYCIQCKtp5WGVd3S9dMMPMgYqpieehqAFWATKUU27A4Vbkl6wIhALBB64q2WRcZ749+2rpS6H7MzqZtr9YIarcoHT4cnNnG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86231},"jest":{"testMatch":["**/__tests__/**/*.spec.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"collectCoverage":true,"testEnvironment":"node","coverageDirectory":"coverage","coverageReporters":["json","lcov","text"],"collectCoverageFrom":["src/**/*.ts","!src/**/*.spec.ts","!**/node_modules/**"]},"main":"index.js","types":"types/index.d.ts","gitHead":"933aafc2dea16d89966795fd4460a737f504e5c7","scripts":{"test":"jest --colors","build":"rollup --config rollup.config.mjs","coveralls":"jest --colors && cat coverage/lcov.info | coveralls","test:watch":"jest --colors --watch","build:watch":"rollup --config rollup.config.mjs --watch"},"_npmUser":{"name":"actualwave","email":"burdiuz@gmail.com"},"repository":{"url":"git+https://github.com/burdiuz/js-primitive-type-checker.git","type":"git"},"_npmVersion":"11.5.1","description":"Runtime type check for primitive value types (uses typeof and identifies arrays).","directories":{},"_nodeVersion":"24.6.0","dependencies":{"@actualwave/type-checker-levels-storage":"0.0.3","@actualwave/type-checker-simple-reporting":"0.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tslib":"^2.8.1","rollup":"^4.60.3","ts-jest":"^29.4.9","coveralls":"^3.1.1","typescript":"^5.9.3","@types/jest":"^30.0.0","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^1.0.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"peerDependencies":{"@actualwave/type-checkers":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/primitive-type-checker_0.2.2_1778100729250_0.8072248254874146","host":"s3://npm-registry-packages-npm-production"},"deprecated":"wrong file names"},"0.2.3":{"name":"@actualwave/primitive-type-checker","version":"0.2.3","keywords":["js","javascript","typescript"],"author":{"url":"http://actualwave.com/","name":"Oleg Galaburda","email":"burdiuz@gmail.com"},"license":"MIT","_id":"@actualwave/primitive-type-checker@0.2.3","maintainers":[{"name":"actualwave","email":"burdiuz@gmail.com"}],"homepage":"https://github.com/burdiuz/js-primitive-type-checker","bugs":{"url":"https://github.com/burdiuz/js-primitive-type-checker/issues","email":"burdiuz@gmail.com"},"dist":{"shasum":"a688b035098ca3c4a48455679dee0c5d5120e354","tarball":"https://registry.npmjs.org/@actualwave/primitive-type-checker/-/primitive-type-checker-0.2.3.tgz","fileCount":14,"integrity":"sha512-zoSXqORlOaJ2ON+2RLosZWIQB9UbE+/Uxwcmdv6zUUMh2hlU238VPbfsMR396cWBjFVtS8ENRrH6EZiSiMPmug==","signatures":[{"sig":"MEUCIQCdycVjk1zMDvkpE0s0MAi0b66cVQeI5ReiKaBsY+u+FQIgYecxpTLfyAsH3h2q8I1bg/yxZ+qP1KHU/h7PIvy7sho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86215},"jest":{"testMatch":["**/__tests__/**/*.spec.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"collectCoverage":true,"testEnvironment":"node","coverageDirectory":"coverage","coverageReporters":["json","lcov","text"],"collectCoverageFrom":["src/**/*.ts","!src/**/*.spec.ts","!**/node_modules/**"]},"main":"index.js","types":"types/index.d.ts","gitHead":"933aafc2dea16d89966795fd4460a737f504e5c7","scripts":{"test":"jest --colors","build":"rollup --config rollup.config.mjs","coveralls":"jest --colors && cat coverage/lcov.info | coveralls","test:watch":"jest --colors --watch","build:watch":"rollup --config rollup.config.mjs --watch"},"_npmUser":{"name":"actualwave","email":"burdiuz@gmail.com"},"repository":{"url":"git+https://github.com/burdiuz/js-primitive-type-checker.git","type":"git"},"_npmVersion":"11.5.1","description":"Runtime type check for primitive value types (uses typeof and identifies arrays).","directories":{},"_nodeVersion":"24.6.0","dependencies":{"@actualwave/type-checker-levels-storage":"0.0.3","@actualwave/type-checker-simple-reporting":"0.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tslib":"^2.8.1","rollup":"^4.60.3","ts-jest":"^29.4.9","coveralls":"^3.1.1","typescript":"^5.9.3","@types/jest":"^30.0.0","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^1.0.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"peerDependencies":{"@actualwave/type-checkers":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/primitive-type-checker_0.2.3_1778100940230_0.6500446586740283","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2018-05-21T07:59:32.682Z","modified":"2026-05-06T20:56:34.841Z","0.1.9":"2018-05-21T07:59:33.368Z","0.1.10":"2018-05-21T08:14:33.326Z","0.2.2":"2026-05-06T20:52:09.386Z","0.2.3":"2026-05-06T20:55:40.372Z"},"bugs":{"url":"https://github.com/burdiuz/js-primitive-type-checker/issues","email":"burdiuz@gmail.com"},"author":{"url":"http://actualwave.com/","name":"Oleg Galaburda","email":"burdiuz@gmail.com"},"license":"MIT","homepage":"https://github.com/burdiuz/js-primitive-type-checker","keywords":["js","javascript","typescript"],"repository":{"url":"git+https://github.com/burdiuz/js-primitive-type-checker.git","type":"git"},"description":"Runtime type check for primitive value types (uses typeof and identifies arrays).","maintainers":[{"name":"actualwave","email":"burdiuz@gmail.com"}],"readme":"# @actualwave/primitive-type-checker\n[![Coverage Status](https://coveralls.io/repos/github/burdiuz/js-primitive-type-checker/badge.svg?branch=master)](https://coveralls.io/github/burdiuz/js-primitive-type-checker?branch=master)\n\nRuntime type checker for primitive value types. Uses `typeof` to identify types and detects arrays specifically (since `typeof [] === 'object'`). Designed as a plugin for the [@actualwave/type-checkers](https://github.com/burdiuz/js-type-checkers) framework.\n\n## Installation\n\n```bash\nnpm install @actualwave/primitive-type-checker\n```\n\n## Usage\n\n### With the type-checkers framework\n\n```ts\nimport { wrap, setDefaultTypeChecker } from '@actualwave/type-checkers';\nimport { createPrimitiveTypeChecker } from '@actualwave/primitive-type-checker';\n\nsetDefaultTypeChecker(createPrimitiveTypeChecker());\n\nconst obj = wrap({ count: 0, label: 'hello', items: [] });\n\nobj.count = 1;        // OK\nobj.count = 'one';   // TypeError reported: expected number, received string\nobj.items = {};      // TypeError reported: expected array, received object\n```\n\n### Custom error reporter\n\n```ts\nimport { setErrorReporter } from '@actualwave/primitive-type-checker';\n\nsetErrorReporter((action, name, required, received) => {\n  throw new TypeError(\n    `${action} on \"${name}\": expected ${required}, got ${received}`\n  );\n});\n```\n\n### Reporting levels\n\nControl how strictly types are tracked per object or property:\n\n```ts\nimport {\n  REPORT_FIRST_TYPE_ONLY,\n  REPORT_ALL_ASSIGNED_TYPES,\n  REPORT_NEVER,\n  setReportingLevel,\n} from '@actualwave/primitive-type-checker';\n\n// Track only the first observed type (default)\nsetReportingLevel(obj, REPORT_FIRST_TYPE_ONLY);\n\n// Accept any type ever assigned without reporting errors\nsetReportingLevel(obj, REPORT_NEVER);\n```\n\n## API\n\n### `createPrimitiveTypeChecker(collectTypesOnInit?, enableGetChecker?)`\n\nFactory function — returns a `PrimitiveTypeChecker` instance.\n\n| Parameter | Type | Default | Description |\n|---|---|---|---|\n| `collectTypesOnInit` | `boolean` | `true` | Scan wrapped object properties on init to record initial types |\n| `enableGetChecker` | `boolean` | `true` | Also check types on property reads, not just writes |\n\n### `setErrorReporter(reporter)` / `getErrorReporter()`\n\nReplace or retrieve the active error reporter.\n\n```ts\ntype Reporter = (action: string, name: string, required: string, received: string) => void;\n```\n\n### Reporting level constants\n\n| Constant | Meaning |\n|---|---|\n| `REPORT_FIRST_TYPE_ONLY` | Only the first observed type is enforced (default) |\n| `REPORT_ALL_ASSIGNED_TYPES` | Every distinct type ever assigned is recorded |\n| `REPORT_NEVER` | Type tracking disabled for the target |\n\n### Action constants\n\nPassed as the `action` argument to the error reporter:\n\n| Constant | Value |\n|---|---|\n| `GET_PROPERTY` | `'(GetProperty)'` |\n| `SET_PROPERTY` | `'(SetProperty)'` |\n| `ARGUMENTS` | `'(Arguments)'` |\n| `RETURN_VALUE` | `'(ReturnValue)'` |\n| `MERGE` | `'(Merge)'` |\n\n### `getTypeValue(value)`\n\nReturns the type string for any value — same as `typeof` but returns `'array'` for arrays and `''` for `undefined`.\n\n## Type detection\n\n| Value | Returned type |\n|---|---|\n| `undefined` | `''` (empty string) |\n| `[]`, `new Array()` | `'array'` |\n| `{}`, `null` | `'object'` |\n| `42`, `NaN` | `'number'` |\n| `'text'` | `'string'` |\n| `true` / `false` | `'boolean'` |\n| `() => {}` | `'function'` |\n| `Symbol()` | `'symbol'` |\n| `1n` | `'bigint'` |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}