{"maintainers":[{"name":"anonymous","email":"github@sellside.com"},{"name":"anonymous","email":"ljharb@gmail.com"}],"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"dist-tags":{"latest":"2.1.3","v1-backport":"1.0.1","v0-backport":"0.1.5"},"author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","readme":"# is-data-descriptor <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\n> Returns true if a value has the characteristics of a valid JavaScript data descriptor.\n\n## Examples\n\n`true` when the descriptor has valid properties with valid values.\n`false` when not an object or when the object has invalid properties.\n\n```js\nvar isDataDesc = require('is-data-descriptor');\nvar assert = require('assert');\n\nassert.equal(true, isDataDesc({ value: 'foo' }));\nassert.equal(true, isDataDesc({ value: function () {} }));\nassert.equal(true, isDataDesc({ value: true }));\n\nassert.equal(false, isDataDesc('a'));\nassert.equal(false, isDataDesc(null));\nassert.equal(false, isDataDesc([]));\n\nassert.equal(false, isDataDesc({ value: 'foo', bar: 'baz' }));\nassert.equal(false, isDataDesc({ value: 'foo', bar: 'baz' }));\nassert.equal(false, isDataDesc({ value: 'foo', get: function () {} }));\nassert.equal(false, isDataDesc({ get: function () {}, value: 'foo' }) );\n \nassert.equal(false, isDataDesc({ value: 'foo', enumerable: 'foo' }));\nassert.equal(false, isDataDesc({ value: 'foo', configurable: 'foo' }));\nassert.equal(false, isDataDesc({ value: 'foo', writable: 'foo' }));\n```\n\n## Valid properties\n\nThe only valid data descriptor properties are the following:\n\n* `configurable` (required)\n* `enumerable` (required)\n* `value` (optional)\n* `writable` (optional)\n\nTo be a valid data descriptor, either `value` or `writable` must be defined.\n\n**Invalid properties**\n\nA descriptor may have additional _invalid_ properties (an error will **not** be thrown).\n\n```js\nvar foo = {};\n\nObject.defineProperty(foo, 'bar', {\n\tenumerable: true,\n\twhatever: 'blah', // invalid, but doesn't cause an error\n\tget() {\n\t\treturn 'baz';\n\t}\n});\n\nassert.equal(foo.bar, 'baz');\n```\n\n### Related projects\n\n* [is-accessor-descriptor](https://npmjs.com/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.\n* [is-descriptor](https://npmjs.com/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://npmjs.com/is-descriptor)\n\n## Tests\n\nSimply clone the repo, `npm install`, and run `npm test`\n\n[package-url]: https://npmjs.org/package/is-data-descriptor\n[npm-version-svg]: https://versionbadg.es/inspect-js/is-data-descriptor.svg\n[deps-svg]: https://david-dm.org/inspect-js/is-data-descriptor.svg\n[deps-url]: https://david-dm.org/inspect-js/is-data-descriptor\n[dev-deps-svg]: https://david-dm.org/inspect-js/is-data-descriptor/dev-status.svg\n[dev-deps-url]: https://david-dm.org/inspect-js/is-data-descriptor#info=devDependencies\n[npm-badge-png]: https://nodei.co/npm/is-data-descriptor.png?downloads=true&stars=true\n[license-image]: https://img.shields.io/npm/l/is-data-descriptor.svg\n[license-url]: LICENSE\n[downloads-image]: https://img.shields.io/npm/dm/is-data-descriptor.svg\n[downloads-url]: https://npm-stat.com/charts.html?package=is-data-descriptor\n[codecov-image]: https://codecov.io/gh/inspect-js/is-data-descriptor/branch/main/graphs/badge.svg\n[codecov-url]: https://app.codecov.io/gh/inspect-js/is-data-descriptor/\n[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-data-descriptor\n[actions-url]: https://github.com/inspect-js/is-data-descriptor/actions\n","repository":{"type":"git","url":"git+https://github.com/inspect-js/is-data-descriptor.git"},"bugs":{"url":"https://github.com/inspect-js/is-data-descriptor/issues"},"license":"MIT","versions":{"0.1.0":{"name":"is-data-descriptor","description":"Returns true if a value appears to be a valid JavaScript data descriptor.","version":"0.1.0","homepage":"https://github.com/jonschlinkert/is-data-descriptor","author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"repository":{"type":"git","url":"git+https://github.com/jonschlinkert/is-data-descriptor.git"},"bugs":{"url":"https://github.com/jonschlinkert/is-data-descriptor/issues"},"license":"MIT","files":["index.js"],"main":"index.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"dependencies":{"arr-diff":"^1.1.0","kind-of":"^2.0.1"},"devDependencies":{"mocha":"*","should":"*"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"verb":{"related":{"list":["is-data-descriptor","is-accessor-descriptor","isobject","arr-diff"]}},"gitHead":"a1915ae8a9a4a633d18630102264d266b6e08f08","_id":"is-data-descriptor@0.1.0","_shasum":"b7fc345d007b1a5211ae3431751e118116a07fe0","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.12.4","_npmUser":{"name":"anonymous","email":"github@sellside.com"},"maintainers":[{"name":"anonymous","email":"github@sellside.com"}],"dist":{"shasum":"b7fc345d007b1a5211ae3431751e118116a07fe0","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-0.1.0.tgz","integrity":"sha512-35HBCCOSeY5fCXA+IJqeO+oGnDQMoH4yEOXJwNoUKb2tzUJWcBtyjUnnIzt+3zpnW5SHjjyIJ8zTW2NrloKiOQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3TD5UGfjNsmRqPQiGJipmpJa/5HorM5FF7LdkzWnpawIhAPbtH3iKwVMYTMmylrz7EXbJa4uq1zby6oDSDEiFJlHy"}]},"directories":{}},"0.1.1":{"name":"is-data-descriptor","description":"Returns true if a value appears to be a valid JavaScript data descriptor.","version":"0.1.1","homepage":"https://github.com/jonschlinkert/is-data-descriptor","author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"repository":{"type":"git","url":"git+https://github.com/jonschlinkert/is-data-descriptor.git"},"bugs":{"url":"https://github.com/jonschlinkert/is-data-descriptor/issues"},"license":"MIT","files":["index.js"],"main":"index.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"dependencies":{"arr-diff":"^1.1.0","kind-of":"^2.0.1"},"devDependencies":{"mocha":"*","should":"*"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"verb":{"related":{"list":["is-descriptor","is-data-descriptor","is-accessor-descriptor","isobject"]}},"gitHead":"fcd228a9a1b69ef5883fe513bd491665cd89fd2e","_id":"is-data-descriptor@0.1.1","_shasum":"fb8e8c4a87a2c43af9d5babf4471cfb60a1c6835","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.12.4","_npmUser":{"name":"anonymous","email":"github@sellside.com"},"maintainers":[{"name":"anonymous","email":"github@sellside.com"}],"dist":{"shasum":"fb8e8c4a87a2c43af9d5babf4471cfb60a1c6835","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-0.1.1.tgz","integrity":"sha512-qWjG5HxBx1u+eNyuEPR8RTwLl3lzsC4OHtXxC5mSMQkJF6Alkp1SKpro8Btmzt6Hj7dL5AQzAW4n7euXxNcGpg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAClmudybvWoU6P76TBbwntEl+WzD6b7F/esIIUCbVwIAiEAv9WY/815GpEeORfmPFOqolzBAy1kOZsG93jwq2Xpd/Q="}]},"directories":{}},"0.1.2":{"name":"is-data-descriptor","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","version":"0.1.2","homepage":"https://github.com/jonschlinkert/is-data-descriptor","author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"repository":{"type":"git","url":"git+https://github.com/jonschlinkert/is-data-descriptor.git"},"bugs":{"url":"https://github.com/jonschlinkert/is-data-descriptor/issues"},"license":"MIT","files":["index.js"],"main":"index.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"dependencies":{"arr-diff":"^1.1.0","kind-of":"^2.0.1","lazy-cache":"^0.2.3"},"devDependencies":{"mocha":"*","should":"*"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"verb":{"related":{"list":["is-descriptor","is-data-descriptor","is-accessor-descriptor","isobject"]}},"gitHead":"51082c59bc2229442870c8be1eb9a7712e17239b","_id":"is-data-descriptor@0.1.2","_shasum":"ccd3287541ca100ee61e4d3d4fbc03af611c9a4f","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"anonymous","email":"github@sellside.com"},"maintainers":[{"name":"anonymous","email":"github@sellside.com"}],"dist":{"shasum":"ccd3287541ca100ee61e4d3d4fbc03af611c9a4f","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-0.1.2.tgz","integrity":"sha512-f3RAm6uOdRql6bI3zfhtFtBGcgo7Pa/UG6jLtWgmcozjj4XVbG+636FsjmtUpwZaMG3IEMvSBOlkWJisaPuQ5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEAKazFwdygM1qfwpJQOHM6Rbnr6NBKO8Jw2EsDSyImgAiEApPkikhIySBIwdKX12y4aU3GfSrdqhCo2531swMME2Ws="}]},"directories":{}},"0.1.3":{"name":"is-data-descriptor","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","version":"0.1.3","homepage":"https://github.com/jonschlinkert/is-data-descriptor","author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"repository":{"type":"git","url":"git+https://github.com/jonschlinkert/is-data-descriptor.git"},"bugs":{"url":"https://github.com/jonschlinkert/is-data-descriptor/issues"},"license":"MIT","files":["index.js","utils.js"],"main":"index.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"dependencies":{"arr-diff":"^1.1.0","kind-of":"^2.0.1","lazy-cache":"^0.2.3"},"devDependencies":{"mocha":"*","should":"*"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"verb":{"related":{"list":["is-descriptor","is-data-descriptor","is-accessor-descriptor","isobject"]}},"gitHead":"4495b333d027292071cc03d0147099b92913de0d","_id":"is-data-descriptor@0.1.3","_shasum":"efa250bc0d94403f0cfb6079b579bc900a843bd0","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"anonymous","email":"github@sellside.com"},"maintainers":[{"name":"anonymous","email":"github@sellside.com"}],"dist":{"shasum":"efa250bc0d94403f0cfb6079b579bc900a843bd0","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-0.1.3.tgz","integrity":"sha512-mkmf4qqn4kIZmM9ClyvRZiTPpA9FPrnviTYGGCCWXhaVaGaysVu43yzZE3O4YxbQ9RTFKdXywFddzPdC6nymUQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbrbZUhoh4Hc+tIRkaWzZpEv+JXVh1bdUb2blTDliUhwIhALpRN0dKfyELXyR98ScTYwZMRC51LheTV0mJFiCgpzsu"}]},"directories":{}},"0.1.4":{"name":"is-data-descriptor","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","version":"0.1.4","homepage":"https://github.com/jonschlinkert/is-data-descriptor","author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"repository":{"type":"git","url":"git+https://github.com/jonschlinkert/is-data-descriptor.git"},"bugs":{"url":"https://github.com/jonschlinkert/is-data-descriptor/issues"},"license":"MIT","files":["index.js"],"main":"index.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"dependencies":{"kind-of":"^3.0.2"},"devDependencies":{"mocha":"*","should":"*"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"verb":{"related":{"list":["is-accessor-descriptor","is-data-descriptor","is-descriptor","isobject"]},"plugins":["gulp-format-md"]},"gitHead":"e6317dbcb27a95281a60120bac83f5938dda4e2c","_id":"is-data-descriptor@0.1.4","_shasum":"0b5ee648388e2c860282e793f1856fec3f301b56","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"anonymous","email":"github@sellside.com"},"maintainers":[{"name":"anonymous","email":"github@sellside.com"}],"dist":{"shasum":"0b5ee648388e2c860282e793f1856fec3f301b56","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz","integrity":"sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCUNPboqKzrgv8BQa/1uZFyxnkhb8PGbUdQNHg8HUa7QIgYGEIFIsYw55NIxW/t4XPRbDDIR5x+k02Za9jdcUxJlA="}]},"directories":{},"deprecated":"Please upgrade to v0.1.5"},"1.0.0":{"name":"is-data-descriptor","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","version":"1.0.0","homepage":"https://github.com/jonschlinkert/is-data-descriptor","author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"contributors":[{"name":"Jon Schlinkert","url":"http://twitter.com/jonschlinkert"},{"name":"Rouven Weßling","url":"www.rouvenwessling.de"}],"repository":{"type":"git","url":"git+https://github.com/jonschlinkert/is-data-descriptor.git"},"bugs":{"url":"https://github.com/jonschlinkert/is-data-descriptor/issues"},"license":"MIT","files":["index.js"],"main":"index.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"dependencies":{"kind-of":"^6.0.0"},"devDependencies":{"gulp-format-md":"^1.0.0","mocha":"^3.5.3"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"verb":{"toc":false,"layout":"default","tasks":["readme"],"plugins":["gulp-format-md"],"related":{"list":["is-accessor-descriptor","is-data-descriptor","is-descriptor","isobject"]},"lint":{"reflinks":true}},"gitHead":"42dcba2627fe655daa21aec843ca8de849f26cd6","_id":"is-data-descriptor@1.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.7.0","_npmUser":{"name":"anonymous","email":"github@sellside.com"},"dist":{"integrity":"sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==","shasum":"d84876321d0e7add03990406abbbbd36ba9268c7","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAyAmAQ4sEO/RDdUav6KQAC318uSBiqHMttojVcfH5w1AiAeaNHUKrXuN0gOx7Hui/V4vI4ddxghoeZJOCR2nixc6Q=="}]},"maintainers":[{"name":"anonymous","email":"github@sellside.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/is-data-descriptor-1.0.0.tgz_1509518030206_0.015712385065853596"},"directories":{},"deprecated":"Please upgrade to v1.0.1"},"2.0.0":{"name":"is-data-descriptor","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","version":"2.0.0","homepage":"https://github.com/jonschlinkert/is-data-descriptor","author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"contributors":[{"name":"Jon Schlinkert","url":"http://twitter.com/jonschlinkert"},{"name":"Rouven Weßling","url":"www.rouvenwessling.de"}],"repository":{"type":"git","url":"git+https://github.com/jonschlinkert/is-data-descriptor.git"},"bugs":{"url":"https://github.com/jonschlinkert/is-data-descriptor/issues"},"license":"MIT","main":"index.js","engines":{"node":">=6"},"scripts":{"test":"mocha"},"dependencies":{"kind-of":"^6.0.0"},"devDependencies":{"gulp-format-md":"^1.0.0","mocha":"^3.5.3"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"verb":{"toc":false,"layout":"default","tasks":["readme"],"plugins":["gulp-format-md"],"related":{"list":["is-accessor-descriptor","is-data-descriptor","is-descriptor","isobject"]},"lint":{"reflinks":true}},"gitHead":"8dcc492bfb8e6d5b7964c1c566cdfe27ffbd8b0a","_id":"is-data-descriptor@2.0.0","_npmVersion":"6.4.1","_nodeVersion":"11.4.0","_npmUser":{"name":"anonymous","email":"github@sellside.com"},"dist":{"integrity":"sha512-sbNf2A6rqSbDONhy0dbMlsgx0SNlDHH8zCNPNaG9Cxtb19HkMtqvoh4m9A246WX/Lj1zlMeNUsb0wPx+ZVrrmw==","shasum":"90b4ec2922aa845ab946b26e06488bfc4a7bf23c","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-2.0.0.tgz","fileCount":4,"unpackedSize":8707,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcEwd3CRA9TVsSAnZWagAAzdAP/1/QgCWHmKn+9ntVve++\njc6zv9NuHs12xKeueOuo6QzonOFfDNUCEgWm3AEQ7yPj1RT5cGJWKgz92pgI\nhaNtCJPPOslAjAJMfha1zYX00RR684b+YocPAGi0KwURtzoXw4vUokZ2Ksq0\nPkaRviNJ65bwJqbd4u7Cx6KRjEZD9OIcBOZUA+NbhzVYU1l83r3VXYOxdGkZ\n02Z9rHfKXzDctYMQ/dMbjp8lRTBiGCKQpyPAPnOuNuaqssIu98dEMHzIK6iD\n34Gaew8XysCN4MFaOmjuuSOjLVDf4tIgAXMd6Jxsf3xQPqbXrl0uSVNyDknF\nP2Ai6//82Hm+XPjXW5mMse537fCbl6PoI3uRTmnhO37us6UNo6ovOt+mOLHZ\n1W33naBZtkTLzVaRfK/1bl0LCYNVo3O7BirmX0bjohC6W+/2uLhaQUayyd3Y\nF3JM7LZKqPrsQd93pXgNz5U6zXHwUlR6Jo3pk6DsfV1lJUeQlMwvQFp2QwD3\nPWsJtMinjPSYIof8Q+PJy6luYiFf6iaQACC+AB5KN6s3Ce8DLndRIJDmfDrL\nT/O1TzZYbcwZj6orEt0xzZUXr6G6FjVKmR9Yucpb6Q8cPjGP8vcZA3qfbhn4\nuT/NEu2db1TNi3jYLTfrLuROnXBFpEKf3HZIP04STry2nr2KvQoND4vUzDgl\nMX3P\r\n=sNOi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCE2c19LUx/5oNVsbjF35xTYCuz6rTy1zaVSybQ3Lrw2AIgMopZwuGFZchtawwHY5+F2iblpIV5In2VUO52yIgpeqg="}]},"maintainers":[{"name":"anonymous","email":"github@sellside.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/is-data-descriptor_2.0.0_1544750966547_0.8510560418397102"},"_hasShrinkwrap":false},"2.1.0":{"name":"is-data-descriptor","version":"2.1.0","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","main":"index.js","exports":{".":"./index.js","./package.json":"./package.json"},"scripts":{"prepack":"npmignore --auto --commentLines=autogenerated","prepublishOnly":"safe-publish-latest","prepublish":"not-in-publish || npm run prepublishOnly","lint":"eslint --ext=js,mjs .","pretest":"npm run lint","tests-only":"nyc tape 'test/**/*.js'","test":"npm run tests-only","posttest":"aud --production","prelint":"evalmd README.md","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/inspect-js/is-data-descriptor.git"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"license":"MIT","bugs":{"url":"https://github.com/inspect-js/is-data-descriptor/issues"},"homepage":"https://github.com/inspect-js/is-data-descriptor","contributors":[{"name":"Jordan Harband","url":"https://github.com/ljharb"},{"name":"Jon Schlinkert","url":"https://twitter.com/jonschlinkert"},{"name":"Rouven Weßling","url":"www.rouvenwessling.de"}],"devDependencies":{"@ljharb/eslint-config":"^21.0.1","aud":"^2.0.2","auto-changelog":"^2.4.0","eslint":"=8.8.0","evalmd":"^0.0.19","in-publish":"^2.0.1","npmignore":"^0.3.0","nyc":"^10.3.2","safe-publish-latest":"^2.0.0","tape":"^5.6.3"},"engines":{"node":">= 0.4"},"auto-changelog":{"output":"CHANGELOG.md","template":"keepachangelog","unreleased":false,"commitLimit":false,"backfillLimit":false,"hideCredit":true},"publishConfig":{"ignore":[".github/workflows"]},"gitHead":"48d6c91965a517a400f4516da52de23de3092307","_id":"is-data-descriptor@2.1.0","_nodeVersion":"20.0.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-gbK3aW2DOyxslu6QDuyI9zgxxoqYaAU/KiGG9xJK1BmV+Pl1XaO6nOrl/NfpNj0K2NlCv5yYb294BXJe90IHDg==","shasum":"e7118c8fe72081575d9cda199438190127214398","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-2.1.0.tgz","fileCount":11,"unpackedSize":16828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5/Tq2OWj8n8Pm2l7uEBJ1msVGBjzgz5/y+TQ4dqRYLAIhAP56WmTWQbT5CEh82x8Tgn1vb9kR/BK0UQ8P+MkX2pF7"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSuUcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo62w/+O59/bchJgptwbdioiv+tvOQBeIy/AiTRDSY4zVfra4se3PP4\r\nLB8c6XnEe9vETBy/aY8Afr+qCFOtXBEjL8O0hTUTMRDENxuaOmbAAC1Ox/AT\r\nUqJsU7nJeT3MsBmsaKyqN6ItplldcVxFjiTelvCrOekwicg9MDZRz+gGmIGb\r\nFAu+2XPO+dsgrqAcj7EHcgIwSuuCbJyC4nYB4aBloUjKxUPmw1v2k3Xpw1l9\r\n00Caj3kLj6R3h7pIJtgiYcnniasF2vw8T2SffGYvE17r4nSXgpFZc5xQ4vPv\r\nxPHUylFlVZthWCQYf9yhKv1wiLM6E7MFasJmhhKi28I8iXnD76LgHYV/jDLU\r\nAQZ8qPvFj9l1sH22b67JtIgsqEE/HHbse7VPZYXdBBIrgScRbQkmtku3esYj\r\nQatf7UecR6kd7qHG5zkQwlB3nmOV19gjzv87muluTiQGWe5bPPGlff1zZMj5\r\ngk+BXz8XR44bCejZeBJhdcFJKwB91K5g+6eLj0V57MTF5wc528Qh3vNMnfvk\r\ngPDGqmkb75Q8XxGc/+U/wfpmCYhohPz3Y9F6TtgEPt9TdCbG9Z9TuspAttcl\r\nwZo0GNFj0ITSf1B20TOKTukFRCazMgYhVmLP9mSsbs/98i08+jFnNN/YY6Zp\r\nUoNZd1VQUm/ytEQbVtiw+l99SGQd7waYe1Q=\r\n=nfeU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anonymous","email":"ljharb@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"ljharb@gmail.com"},{"name":"anonymous","email":"github@sellside.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/is-data-descriptor_2.1.0_1682629916602_0.7328508260425741"},"_hasShrinkwrap":false},"2.1.1":{"name":"is-data-descriptor","version":"2.1.1","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","main":"index.js","exports":{".":"./index.js","./package.json":"./package.json"},"scripts":{"prepack":"npmignore --auto --commentLines=autogenerated","prepublishOnly":"safe-publish-latest","prepublish":"not-in-publish || npm run prepublishOnly","lint":"eslint --ext=js,mjs .","pretest":"npm run lint","tests-only":"nyc tape 'test/**/*.js'","test":"npm run tests-only","posttest":"aud --production","prelint":"evalmd README.md","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/inspect-js/is-data-descriptor.git"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"license":"MIT","bugs":{"url":"https://github.com/inspect-js/is-data-descriptor/issues"},"homepage":"https://github.com/inspect-js/is-data-descriptor","contributors":[{"name":"Jordan Harband","url":"https://github.com/ljharb"},{"name":"Jon Schlinkert","url":"https://twitter.com/jonschlinkert"},{"name":"Rouven Weßling","url":"www.rouvenwessling.de"}],"devDependencies":{"@ljharb/eslint-config":"^21.0.1","aud":"^2.0.2","auto-changelog":"^2.4.0","eslint":"=8.8.0","evalmd":"^0.0.19","in-publish":"^2.0.1","npmignore":"^0.3.0","nyc":"^10.3.2","safe-publish-latest":"^2.0.0","tape":"^5.6.3"},"engines":{"node":">= 0.4"},"auto-changelog":{"output":"CHANGELOG.md","template":"keepachangelog","unreleased":false,"commitLimit":false,"backfillLimit":false,"hideCredit":true},"publishConfig":{"ignore":[".github/workflows"]},"gitHead":"4caa007f46b4a9670fd1dc83b0eaab62cec9433d","_id":"is-data-descriptor@2.1.1","_nodeVersion":"20.0.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-N/OLRe9pfLIaz0HYqljaf0cfU362S9gqdOO6VJIal9++zACMC0KKAvbUeyG5dPSZkm6RmzUhm31niFcgl6UQjw==","shasum":"a534331c86660c625fea7475f0b97ab5c2c0dfba","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-2.1.1.tgz","fileCount":11,"unpackedSize":17623,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYZHuviWKWNp+722EIwuBdd9MkhqL6kkcp9wRV3juHawIhANvEaDHEB/PGZXXUssxXhfbjs49NR7QQV/ONT2nh5+cb"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSvaCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrDjQ/+IFjMYWaV8XV/T/Xm+y9lGOLC4nFah1x9Q3xtjtavArLmRHds\r\n92dHnFODDz5UUUhKGPecEEG3EIWpHFW0EbVNNBo2hUP1NS99/943dDB+y1WG\r\nKJT4D3ViVUJXTvd1WiVPtQDN9VNXApLNhc9MrVmOyR7+664iYNmivOZrfXHP\r\nBUVzOGkG8pp1kTXDBaIbU3Kad+LT4XdRF95DE6EMEaRrfiZq3u2UZgCuxzXy\r\nV6cFgk/9zyjD1h0uZvElMIK3EHNcNO+gj8OrxOrzluNoID1mykfwJ45zOlAp\r\nmgRzQpg4yRAbJEqugtnOlbCn4/CC1uTvwP22kl+cINs7JTHupCSmLxxjhCfU\r\n3CDK1PSkODBpkTb9Ug5nRb6AavsF4NoO7uBRJj0noH98ieRkZ0SbV3sxaaM4\r\nlbAYtzOcTIwuUDlkuVUxXnnTeapapTJhImwBslimnUqNmAFreTzlvGz7m4Wm\r\nag0XI84ykE1aTL5VbxEXIeB3JCVr4Qpme1i2fjA9SAvcDA9vQkiLzqO42FGs\r\nAKXdV+985GaDg0SmeqsecxsXDvyDYMyw+SMTcR/VbGhTHl2D9pKjGlZOja0J\r\n47DzQdvhxNwcx+1WoQ1hK+ME7Ayj9XVa3e0Y9Sd2hX3d4CRv7ya8lExU0ikw\r\n6zuGSPb/LqLv2/7YhiXVBd6i1MZMxSSUfxw=\r\n=30Ne\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anonymous","email":"ljharb@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"ljharb@gmail.com"},{"name":"anonymous","email":"github@sellside.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/is-data-descriptor_2.1.1_1682634370200_0.3730969378191573"},"_hasShrinkwrap":false},"2.1.2":{"name":"is-data-descriptor","version":"2.1.2","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","main":"index.js","exports":{".":"./index.js","./package.json":"./package.json"},"scripts":{"prepack":"npmignore --auto --commentLines=autogenerated","prepublishOnly":"safe-publish-latest","prepublish":"not-in-publish || npm run prepublishOnly","lint":"eslint --ext=js,mjs .","pretest":"npm run lint","tests-only":"nyc tape 'test/**/*.js'","test":"npm run tests-only","posttest":"aud --production","prelint":"evalmd README.md","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/inspect-js/is-data-descriptor.git"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"license":"MIT","bugs":{"url":"https://github.com/inspect-js/is-data-descriptor/issues"},"homepage":"https://github.com/inspect-js/is-data-descriptor","contributors":[{"name":"Jordan Harband","url":"https://github.com/ljharb"},{"name":"Jon Schlinkert","url":"https://twitter.com/jonschlinkert"},{"name":"Rouven Weßling","url":"www.rouvenwessling.de"}],"devDependencies":{"@ljharb/eslint-config":"^21.1.0","aud":"^2.0.3","auto-changelog":"^2.4.0","eslint":"=8.8.0","evalmd":"^0.0.19","in-publish":"^2.0.1","npmignore":"^0.3.0","nyc":"^10.3.2","safe-publish-latest":"^2.0.0","tape":"^5.7.2"},"engines":{"node":">= 0.4"},"auto-changelog":{"output":"CHANGELOG.md","template":"keepachangelog","unreleased":false,"commitLimit":false,"backfillLimit":false,"hideCredit":true},"publishConfig":{"ignore":[".github/workflows"]},"dependencies":{"hasown":"^2.0.0"},"_id":"is-data-descriptor@2.1.2","gitHead":"a3ef44974d08bd2d217688df8212a27a57cdaafa","_nodeVersion":"21.0.0","_npmVersion":"10.2.0","dist":{"integrity":"sha512-RO85eqXJ+fMtF7HEwxY3InsXM9HRo7vAfXlefpIkKpWBjlzkT2BSbi0cf4iHb7OEdoqI8NKWheug60I1ZTdjIg==","shasum":"ca8d566a5a7371836c6f9de35f9e918496aa6e1d","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-2.1.2.tgz","fileCount":11,"unpackedSize":18064,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICHpe5gAWXzdWe1/U9BaSrutlqlTtYsb2vzz6Fe/qBweAiEAoRzk2WoWvu3AHeP86lRXXuM6jtYFRA6LCbZSR5458k8="}]},"_npmUser":{"name":"anonymous","email":"ljharb@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"ljharb@gmail.com"},{"name":"anonymous","email":"github@sellside.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/is-data-descriptor_2.1.2_1698295966372_0.4596400400687235"},"_hasShrinkwrap":false},"1.0.1":{"name":"is-data-descriptor","version":"1.0.1","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","main":"index.js","exports":{".":"./index.js","./package.json":"./package.json"},"scripts":{"prepack":"npmignore --auto --commentLines=autogenerated","prepublishOnly":"safe-publish-latest","prepublish":"not-in-publish || npm run prepublishOnly","lint":"eslint --ext=js,mjs .","pretest":"npm run lint","tests-only":"nyc tape 'test/**/*.js'","test":"npm run tests-only","posttest":"aud --production","prelint":"evalmd README.md","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/inspect-js/is-data-descriptor.git"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"license":"MIT","bugs":{"url":"https://github.com/inspect-js/is-data-descriptor/issues"},"homepage":"https://github.com/inspect-js/is-data-descriptor","contributors":[{"name":"Jordan Harband","url":"https://github.com/ljharb"},{"name":"Jon Schlinkert","url":"https://twitter.com/jonschlinkert"},{"name":"Rouven Weßling","url":"www.rouvenwessling.de"}],"dependencies":{"hasown":"^2.0.0"},"devDependencies":{"@ljharb/eslint-config":"^21.1.0","aud":"^2.0.3","auto-changelog":"^2.4.0","eslint":"=8.8.0","evalmd":"^0.0.19","in-publish":"^2.0.1","npmignore":"^0.3.0","nyc":"^10.3.2","safe-publish-latest":"^2.0.0","tape":"^5.7.2"},"engines":{"node":">= 0.4"},"auto-changelog":{"output":"CHANGELOG.md","template":"keepachangelog","unreleased":false,"commitLimit":false,"backfillLimit":false,"hideCredit":true},"publishConfig":{"ignore":[".github/workflows"]},"_id":"is-data-descriptor@1.0.1","readme":"# is-data-descriptor <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\n> Returns true if a value has the characteristics of a valid JavaScript data descriptor.\n\n## Install\n\nInstall with [npm](https://npmjs.com/):\n\n```sh\n$ npm install --save is-data-descriptor\n```\n\n## Usage\n\n```js\nvar isDataDesc = require('is-data-descriptor');\nvar assert = require('assert');\n```\n\n## Examples\n\n`true` when the descriptor has valid properties with valid values.\n\n```js\n// `value` can be anything\nassert.equal(isDataDesc({ value: 'foo' }), true);\nassert.equal(isDataDesc({ value: function () {} }), true);\nassert.equal(isDataDesc({ value: true }), true);\n```\n\n`false` when not an object\n\n```js\nassert.equal(isDataDesc('a'), false);\nassert.equal(isDataDesc(null), false);\n```\n\n`false` when the object has invalid properties\n\n```js\nassert.equal(isDataDesc({ value: 'foo', enumerable: 'baz' }), false);\nassert.equal(isDataDesc({ value: 'foo', configurable: 'baz' }), false);\nassert.equal(isDataDesc({ value: 'foo', get() {} }), false);\nassert.equal(isDataDesc({ get() {}, value: 'foo' }), false);\n```\n\n`false` when a value is not the correct type\n\n```js\nassert.equal(isDataDesc({ value: 'foo', enumerable: 'foo' }), false);\nassert.equal(isDataDesc({ value: 'foo', configurable: 'foo' }), false);\nassert.equal(isDataDesc({ value: 'foo', writable: 'foo' }), false);\n```\n\n## Valid properties\n\nThe only valid data descriptor properties are the following:\n\n* `configurable` (required)\n* `enumerable` (required)\n* `value` (optional)\n* `writable` (optional)\n\nTo be a valid data descriptor, either `value` or `writable` must be defined.\n\n**Invalid properties**\n\nA descriptor may have additional _invalid_ properties (an error will **not** be thrown).\n\n```js\nvar foo = {};\n\nObject.defineProperty(foo, 'bar', {\n\tenumerable: true,\n\twhatever: 'blah', // invalid, but doesn't cause an error\n\tget() {\n\t\treturn 'baz';\n\t}\n});\n\nassert.equal(foo.bar, 'baz');\n```\n\n### Related projects\n\nYou might also be interested in these projects:\n\n* [is-accessor-descriptor](https://npmjs.com/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.\n* [is-descriptor](https://npmjs.com/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://npmjs.com/is-descriptor)\n\n[package-url]: https://npmjs.org/package/is-data-descriptor\n[npm-version-svg]: https://versionbadg.es/inspect-js/is-data-descriptor.svg\n[deps-svg]: https://david-dm.org/inspect-js/is-data-descriptor.svg\n[deps-url]: https://david-dm.org/inspect-js/is-data-descriptor\n[dev-deps-svg]: https://david-dm.org/inspect-js/is-data-descriptor/dev-status.svg\n[dev-deps-url]: https://david-dm.org/inspect-js/is-data-descriptor#info=devDependencies\n[npm-badge-png]: https://nodei.co/npm/is-data-descriptor.png?downloads=true&stars=true\n[license-image]: https://img.shields.io/npm/l/is-data-descriptor.svg\n[license-url]: LICENSE\n[downloads-image]: https://img.shields.io/npm/dm/is-data-descriptor.svg\n[downloads-url]: https://npm-stat.com/charts.html?package=is-data-descriptor\n[codecov-image]: https://codecov.io/gh/inspect-js/is-data-descriptor/branch/main/graphs/badge.svg\n[codecov-url]: https://app.codecov.io/gh/inspect-js/is-data-descriptor/\n[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-data-descriptor\n[actions-url]: https://github.com/inspect-js/is-data-descriptor/actions\n","readmeFilename":"README.md","gitHead":"0a9ea4a135a60200819a2ac4aad00debfd28d105","_nodeVersion":"21.0.0","_npmVersion":"10.2.0","dist":{"integrity":"sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==","shasum":"2109164426166d32ea38c405c1e0945d9e6a4eeb","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz","fileCount":10,"unpackedSize":18811,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIECQ9lq4EUsbgLLa74F931gsiTKPc9+ZGT4s9QzraaWhAiAxYGWlTzUWpFnwjBxuwRealmmZ+UNek++Xv6WjkEZGug=="}]},"_npmUser":{"name":"anonymous","email":"ljharb@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"ljharb@gmail.com"},{"name":"anonymous","email":"github@sellside.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/is-data-descriptor_1.0.1_1698341839007_0.3350335819688921"},"_hasShrinkwrap":false},"0.1.5":{"name":"is-data-descriptor","version":"0.1.5","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","main":"index.js","exports":{".":"./index.js","./package.json":"./package.json"},"scripts":{"prepack":"npmignore --auto --commentLines=autogenerated","prepublishOnly":"safe-publish-latest","prepublish":"not-in-publish || npm run prepublishOnly","prelint":"evalmd README.md","lint":"eslint --ext=js,mjs .","pretest":"npm run lint","tests-only":"nyc tape 'test/**/*.js'","test":"npm run tests-only","posttest":"aud --production","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/inspect-js/is-data-descriptor.git"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"license":"MIT","bugs":{"url":"https://github.com/inspect-js/is-data-descriptor/issues"},"homepage":"https://github.com/inspect-js/is-data-descriptor","contributors":[{"name":"Jordan Harband","url":"https://github.com/ljharb"},{"name":"Jon Schlinkert","url":"https://twitter.com/jonschlinkert"}],"dependencies":{"gopd":"^1.0.1","hasown":"^2.0.0"},"devDependencies":{"@ljharb/eslint-config":"^21.1.0","aud":"^2.0.3","auto-changelog":"^2.4.0","eslint":"=8.8.0","evalmd":"^0.0.19","in-publish":"^2.0.1","npmignore":"^0.3.0","nyc":"^10.3.2","safe-publish-latest":"^2.0.0","tape":"^5.7.2"},"engines":{"node":">= 0.4"},"auto-changelog":{"output":"CHANGELOG.md","template":"keepachangelog","unreleased":false,"commitLimit":false,"backfillLimit":false,"hideCredit":true},"publishConfig":{"ignore":[".github/workflows"]},"_id":"is-data-descriptor@0.1.5","readme":"# is-data-descriptor <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\n> Returns true if a value has the characteristics of a valid JavaScript data descriptor.\n\n## Examples\n\n`true` when the descriptor has valid properties with valid values.\n`false` when not an object or when the object has invalid properties.\n\n```js\nvar isDataDesc = require('is-data-descriptor');\nvar assert = require('assert');\n\n// `value` can be anything\nassert.equal(isDataDesc({ value: 'foo' }), true);\nassert.equal(isDataDesc({ value() {} }), true);\nassert.equal(isDataDesc({ value: true }), true);\n\nassert.equal(isDataDesc('a'), false);\nassert.equal(isDataDesc(null), false);\n\nassert.equal(isDataDesc({ value: 'foo', configurable: 'baz' }), false);\nassert.equal(isDataDesc({ value: 'foo', enumerable: 'baz' }), false);\nassert.equal(isDataDesc({ value: 'foo', get() {} }), false);\nassert.equal(isDataDesc({ get() {}, value: 'foo' }), false);\n```\n\n`false` when a value is not the correct type\n\n```js\nassert.equal(isDataDesc({ value: 'foo', enumerable: 'foo' }), false);\nassert.equal(isDataDesc({ value: 'foo', configurable: 'foo' }), false);\nassert.equal(isDataDesc({ value: 'foo', writable: 'foo' }), false);\n```\n\n## Valid properties\n\nThe only valid data descriptor properties are the following:\n\n* `configurable` (required)\n* `enumerable` (required)\n* `value` (optional)\n* `writable` (optional)\n\nTo be a valid data descriptor, either `value` or `writable` must be defined.\n\n**Invalid properties**\n\nA descriptor may have additional _invalid_ properties (an error will **not** be thrown).\n\n```js\nvar foo = {};\n\nObject.defineProperty(foo, 'bar', {\n\tenumerable: true,\n\twhatever: 'blah', // invalid, but doesn't cause an error\n\tget() {\n\t\treturn 'baz';\n\t}\n});\n\nassert.equal(foo.bar, 'baz');\n```\n\n### Related projects\n\n* [is-accessor-descriptor](https://npmjs.com/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.\n* [is-descriptor](https://npmjs.com/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://npmjs.com/is-descriptor)\n\n## Tests\n\nSimply clone the repo, `npm install`, and run `npm test`\n\n[package-url]: https://npmjs.org/package/is-data-descriptor\n[npm-version-svg]: https://versionbadg.es/inspect-js/is-data-descriptor.svg\n[deps-svg]: https://david-dm.org/inspect-js/is-data-descriptor.svg\n[deps-url]: https://david-dm.org/inspect-js/is-data-descriptor\n[dev-deps-svg]: https://david-dm.org/inspect-js/is-data-descriptor/dev-status.svg\n[dev-deps-url]: https://david-dm.org/inspect-js/is-data-descriptor#info=devDependencies\n[npm-badge-png]: https://nodei.co/npm/is-data-descriptor.png?downloads=true&stars=true\n[license-image]: https://img.shields.io/npm/l/is-data-descriptor.svg\n[license-url]: LICENSE\n[downloads-image]: https://img.shields.io/npm/dm/is-data-descriptor.svg\n[downloads-url]: https://npm-stat.com/charts.html?package=is-data-descriptor\n[codecov-image]: https://codecov.io/gh/inspect-js/is-data-descriptor/branch/main/graphs/badge.svg\n[codecov-url]: https://app.codecov.io/gh/inspect-js/is-data-descriptor/\n[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-data-descriptor\n[actions-url]: https://github.com/inspect-js/is-data-descriptor/actions\n","readmeFilename":"README.md","gitHead":"3ea900922fdc90b91235c964682f999e8771591a","_nodeVersion":"21.0.0","_npmVersion":"10.2.0","dist":{"integrity":"sha512-a7ZgE8u0mkmoWpRMbmuwFQRFa2IFNcbG4eR+iqMYghjMTdXYitWgttZCxGit7zCc98gvO1TvOF0sSEZuZEvbPQ==","shasum":"0907e763b9989b5b01c10a5aa5d09469bbae392e","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-0.1.5.tgz","fileCount":11,"unpackedSize":21201,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXOOXypx4AKrlvu57hp2oPZicBPHkIsV6UqC2GKD3KwgIgd2sphgXwpNaJDxD7Hg+1sj92GFyBYgnAGMB+F0obcVs="}]},"_npmUser":{"name":"anonymous","email":"ljharb@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"ljharb@gmail.com"},{"name":"anonymous","email":"github@sellside.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/is-data-descriptor_0.1.5_1698369724099_0.608053382355437"},"_hasShrinkwrap":false},"2.1.3":{"name":"is-data-descriptor","version":"2.1.3","description":"Returns true if a value has the characteristics of a valid JavaScript data descriptor.","main":"index.js","exports":{".":"./index.js","./package.json":"./package.json"},"scripts":{"prepack":"npmignore --auto --commentLines=autogenerated","prepublishOnly":"safe-publish-latest","prepublish":"not-in-publish || npm run prepublishOnly","prelint":"evalmd README.md","lint":"eslint --ext=js,mjs .","pretest":"npm run lint","tests-only":"nyc tape 'test/**/*.js'","test":"npm run tests-only","posttest":"aud --production","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/inspect-js/is-data-descriptor.git"},"keywords":["accessor","check","data","descriptor","get","getter","is","keys","object","properties","property","set","setter","type","valid","value"],"author":{"name":"Jon Schlinkert","url":"https://github.com/jonschlinkert"},"license":"MIT","bugs":{"url":"https://github.com/inspect-js/is-data-descriptor/issues"},"homepage":"https://github.com/inspect-js/is-data-descriptor","contributors":[{"name":"Jordan Harband","url":"https://github.com/ljharb"},{"name":"Jon Schlinkert","url":"https://twitter.com/jonschlinkert"},{"name":"Rouven Weßling","url":"www.rouvenwessling.de"}],"dependencies":{"gopd":"^1.0.1","hasown":"^2.0.0"},"devDependencies":{"@ljharb/eslint-config":"^21.1.0","aud":"^2.0.3","auto-changelog":"^2.4.0","eslint":"=8.8.0","evalmd":"^0.0.19","in-publish":"^2.0.1","npmignore":"^0.3.0","nyc":"^10.3.2","safe-publish-latest":"^2.0.0","tape":"^5.7.2"},"engines":{"node":">= 0.4"},"auto-changelog":{"output":"CHANGELOG.md","template":"keepachangelog","unreleased":false,"commitLimit":false,"backfillLimit":false,"hideCredit":true},"publishConfig":{"ignore":[".github/workflows"]},"_id":"is-data-descriptor@2.1.3","gitHead":"07a9e49cf04e6fe80ebb60582107f411b58fe560","_nodeVersion":"21.0.0","_npmVersion":"10.2.0","dist":{"integrity":"sha512-wR+u4vCNXe7h3jSKqOuAl7LInhPaX7lCOrNGO5JYfegb/7elNkB8XOWQ9dijqelch6Oisz9Xs31W7scEJ/qhWw==","shasum":"e349ac3fc005bbc41ff0bb289989ba4942d70921","tarball":"http://repository.ncinga.com/nexus/content/repositories/npm-js-registry/is-data-descriptor/-/is-data-descriptor-2.1.3.tgz","fileCount":11,"unpackedSize":26404,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCn2455Zmz8A8duDWNEBxoY2C4wbcDNWEvd/DNg7jwfewIgbgtbIjwL+VIbTJZ1e16E5qe+3Al9i4B4NJPosI8Dz78="}]},"_npmUser":{"name":"anonymous","email":"ljharb@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"ljharb@gmail.com"},{"name":"anonymous","email":"github@sellside.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/is-data-descriptor_2.1.3_1698386365496_0.644003686871075"},"_hasShrinkwrap":false}},"name":"is-data-descriptor","time":{"modified":"2024-01-15T18:59:27.139Z","created":"2015-08-31T05:53:38.948Z","0.1.0":"2015-08-31T05:53:38.948Z","0.1.1":"2015-08-31T06:15:39.053Z","0.1.2":"2015-10-04T18:58:53.735Z","0.1.3":"2015-10-04T19:03:04.835Z","0.1.4":"2015-12-28T09:06:01.896Z","1.0.0":"2017-11-01T06:33:51.072Z","2.0.0":"2018-12-14T01:29:26.701Z","2.1.0":"2023-04-27T21:11:56.729Z","2.1.1":"2023-04-27T22:26:10.349Z","2.1.2":"2023-10-26T04:52:46.652Z","1.0.1":"2023-10-26T17:37:19.269Z","0.1.5":"2023-10-27T01:22:04.395Z","2.1.3":"2023-10-27T05:59:25.785Z"},"readmeFilename":"README.md","contributors":[{"name":"Jordan Harband","url":"https://github.com/ljharb"},{"name":"Jon Schlinkert","url":"https://twitter.com/jonschlinkert"},{"name":"Rouven Weßling","url":"www.rouvenwessling.de"}],"homepage":"https://github.com/inspect-js/is-data-descriptor"}