{"_id":"es-abstract-get","name":"es-abstract-get","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"es-abstract-get","version":"1.0.0","description":"ECMAScript Abstract Operations for \"getting properties\" (Get, GetV, GetMethod)","main":false,"exports":{"./Get":"./Get.js","./GetV":"./GetV.js","./GetMethod":"./GetMethod.js","./isPropertyKey":"./isPropertyKey.js","./package.json":"./package.json"},"sideEffects":false,"scripts":{"prepack":"npmignore --auto --commentLines=autogenerated","prepublishOnly":"safe-publish-latest","prepublish":"not-in-publish || npm run prepublishOnly","pretest":"npm run lint","test":"npm run tests-only","posttest":"npx npm@\">=10.2\" audit --production","tests-only":"nyc tape 'test/**/*.js'","lint":"eslint .","postlint":"tsc && attw -P","version":"auto-changelog && git add CHANGELOG.md","postversion":"auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""},"repository":{"type":"git","url":"git+https://github.com/ljharb/es-abstract-get.git"},"keywords":["ECMAScript","ES","AO","abstract operation","GetMethod","GetV","Get","isPropertyKey","property","properties"],"author":{"name":"Jordan Harband","email":"ljharb@gmail.com"},"funding":{"url":"https://github.com/sponsors/ljharb"},"license":"MIT","dependencies":{"es-errors":"^1.3.0","es-object-atoms":"^1.1.2","is-callable":"^1.2.7","object-inspect":"^1.13.4"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.3","@ljharb/eslint-config":"^22.2.3","@ljharb/tsconfig":"^0.3.2","@types/for-each":"^0.3.3","@types/is-callable":"^1.1.2","@types/object-inspect":"^1.13.0","@types/tape":"^5.8.1","auto-changelog":"^2.6.0","es-define-property":"^1.0.1","es-value-fixtures":"^1.7.1","eslint":"^10.5.0","for-each":"^0.3.5","jiti":"^0.0.0","mock-property":"^1.1.0","npmignore":"^0.3.5","nyc":"^10.3.2","safe-publish-latest":"^2.0.0","tape":"^5.10.1","typescript":"next"},"engines":{"node":">= 0.4"},"auto-changelog":{"output":"CHANGELOG.md","template":"keepachangelog","unreleased":false,"commitLimit":false,"backfillLimit":false,"hideCredit":true},"publishConfig":{"ignore":[".github/workflows"]},"bugs":{"url":"https://github.com/ljharb/es-abstract-get/issues"},"homepage":"https://github.com/ljharb/es-abstract-get#readme","gitHead":"9a8e23d5c71de2c592658e22fea4666a91eae9ad","_id":"es-abstract-get@1.0.0","_nodeVersion":"26.3.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==","shasum":"1eae87101f42bedeb6a740e8c5051271aef89088","tarball":"https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz","fileCount":20,"unpackedSize":15925,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD+agA3hvDv/Llk7kIyxy3fOPNKWCxrJcT0J/KhwwhBuAIhAI6vjQjz9uO7BWltv110UNawPziWoGCZ8KQgnI2U7//T"}]},"_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"directories":{},"maintainers":[{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/es-abstract-get_1.0.0_1781571099152_0.16964212959777014"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-16T00:51:39.092Z","1.0.0":"2026-06-16T00:51:39.288Z","modified":"2026-06-16T00:51:39.503Z"},"maintainers":[{"name":"ljharb","email":"ljharb@gmail.com"}],"description":"ECMAScript Abstract Operations for \"getting properties\" (Get, GetV, GetMethod)","homepage":"https://github.com/ljharb/es-abstract-get#readme","keywords":["ECMAScript","ES","AO","abstract operation","GetMethod","GetV","Get","isPropertyKey","property","properties"],"repository":{"type":"git","url":"git+https://github.com/ljharb/es-abstract-get.git"},"author":{"name":"Jordan Harband","email":"ljharb@gmail.com"},"bugs":{"url":"https://github.com/ljharb/es-abstract-get/issues"},"license":"MIT","readme":"# es-abstract-get <sup>[![Version Badge][npm-version-svg]][package-url]</sup>\n\n[![github actions][actions-image]][actions-url]\n[![coverage][codecov-image]][codecov-url]\n[![License][license-image]][license-url]\n[![Downloads][downloads-image]][downloads-url]\n\n[![npm badge][npm-badge-png]][package-url]\n\nThe ECMAScript “getting properties” abstract operations — [`Get`][Get], [`GetV`][GetV], and [`GetMethod`][GetMethod] — plus the [`isPropertyKey`][isPropertyKey] helper they share, with TypeScript types.\n\n## Motivation\n\nThese operations are also available in [`es-abstract`][es-abstract],\nbut `es-abstract` ships every abstract operation for every spec edition,\nso depending on it to use one or two of them pulls in a very large dependency graph.\nThese three operations (and `isPropertyKey`) historically never differ between spec editions,\nso they’re split out here:\na package that only needs `Get`, `GetV`, `GetMethod`, or `isPropertyKey` can depend on this instead and get a far smaller install.\n\nEach operation is its own entry point - there is intentionally no main (`.`) export - so you only pay for what you import.\n\n## Example\n\n```js\nvar Get = require('es-abstract-get/Get');\nvar GetV = require('es-abstract-get/GetV');\nvar GetMethod = require('es-abstract-get/GetMethod');\nvar isPropertyKey = require('es-abstract-get/isPropertyKey');\nvar assert = require('assert');\n\n// Get(O, P): O must be an Object\nassert.equal(Get({ a: 1 }, 'a'), 1);\n\n// GetV(V, P): V may be a primitive (it is coerced to an object for the lookup,\n// but the original value is the receiver)\nassert.equal(GetV('abc', 'length'), 3);\n\n// GetMethod(O, P): returns undefined for null/undefined, throws if not callable\nassert.equal(GetMethod({}, 'toString'), Object.prototype.toString);\nassert.equal(GetMethod({ a: null }, 'a'), undefined);\n\n// isPropertyKey(argument): true for strings and symbols\nassert.equal(isPropertyKey('a'), true);\nassert.equal(isPropertyKey(Symbol.iterator), true);\nassert.equal(isPropertyKey(1), false);\n```\n\n## Tests\nSimply clone the repo, `npm install`, and run `npm test`\n\n[package-url]: https://npmjs.org/package/es-abstract-get\n[npm-version-svg]: https://versionbadg.es/ljharb/es-abstract-get.svg\n[npm-badge-png]: https://nodei.co/npm/es-abstract-get.png?downloads=true&stars=true\n[license-image]: https://img.shields.io/npm/l/es-abstract-get.svg\n[license-url]: LICENSE\n[downloads-image]: https://img.shields.io/npm/dm/es-abstract-get.svg\n[downloads-url]: https://npm-stat.com/charts.html?package=es-abstract-get\n[codecov-image]: https://codecov.io/gh/ljharb/es-abstract-get/branch/main/graphs/badge.svg\n[codecov-url]: https://app.codecov.io/gh/ljharb/es-abstract-get/\n[actions-image]: https://img.shields.io/github/check-runs/ljharb/es-abstract-get/main\n[actions-url]: https://github.com/ljharb/es-abstract-get/actions\n[es-abstract]: https://npmjs.org/package/es-abstract\n[Get]: https://tc39.es/ecma262/#sec-get-o-p\n[GetV]: https://tc39.es/ecma262/#sec-getv\n[GetMethod]: https://tc39.es/ecma262/#sec-getmethod\n[isPropertyKey]: https://tc39.es/ecma262/#sec-ispropertykey\n","readmeFilename":"README.md","_rev":"1-600c7148e108e2787b868be905ee1909"}