| { | ||
| "root": true, | ||
| "extends": "@ljharb", | ||
| } |
| # These are supported funding model platforms | ||
| github: [ljharb] | ||
| patreon: # Replace with a single Patreon username | ||
| open_collective: # Replace with a single Open Collective username | ||
| ko_fi: # Replace with a single Ko-fi username | ||
| tidelift: npm/hasown | ||
| community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry | ||
| liberapay: # Replace with a single Liberapay username | ||
| issuehunt: # Replace with a single IssueHunt username | ||
| otechie: # Replace with a single Otechie username | ||
| custom: # Replace with a single custom sponsorship URL |
Sorry, the diff of this file is not supported yet
+20
| # Changelog | ||
| All notable changes to this project will be documented in this file. | ||
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) | ||
| and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
| ## [v2.0.0](https://github.com/inspect-js/hasOwn/compare/v1.0.1...v2.0.0) - 2023-10-19 | ||
| ### Commits | ||
| - revamped implementation, tests, readme [`72bf8b3`](https://github.com/inspect-js/hasOwn/commit/72bf8b338e77a638f0a290c63ffaed18339c36b4) | ||
| - [meta] revamp package.json [`079775f`](https://github.com/inspect-js/hasOwn/commit/079775fb1ec72c1c6334069593617a0be3847458) | ||
| - Only apps should have lockfiles [`6640e23`](https://github.com/inspect-js/hasOwn/commit/6640e233d1bb8b65260880f90787637db157d215) | ||
| ## v1.0.1 - 2023-10-10 | ||
| ### Commits | ||
| - Initial commit [`8dbfde6`](https://github.com/inspect-js/hasOwn/commit/8dbfde6e8fb0ebb076fab38d138f2984eb340a62) |
| declare const _exports: (o: {}, p: PropertyKey) => p is never; | ||
| export = _exports; | ||
| //# sourceMappingURL=index.d.ts.map |
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"4BAMe,EAAE,KAAK,WAAW"} |
| { | ||
| "compilerOptions": { | ||
| /* Visit https://aka.ms/tsconfig to read more about this file */ | ||
| /* Projects */ | ||
| /* Language and Environment */ | ||
| "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ | ||
| // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ | ||
| // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ | ||
| "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ | ||
| // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ | ||
| /* Modules */ | ||
| "module": "commonjs", /* Specify what module code is generated. */ | ||
| // "rootDir": "./", /* Specify the root folder within your source files. */ | ||
| // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ | ||
| // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ | ||
| // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ | ||
| // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ | ||
| "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */ | ||
| "resolveJsonModule": true, /* Enable importing .json files. */ | ||
| // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ | ||
| /* JavaScript Support */ | ||
| "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ | ||
| "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ | ||
| "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ | ||
| /* Emit */ | ||
| "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ | ||
| "declarationMap": true, /* Create sourcemaps for d.ts files. */ | ||
| "noEmit": true, /* Disable emitting files from a compilation. */ | ||
| /* Interop Constraints */ | ||
| "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ | ||
| "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ | ||
| "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ | ||
| /* Type Checking */ | ||
| "strict": true, /* Enable all strict type-checking options. */ | ||
| /* Completeness */ | ||
| //"skipLibCheck": true /* Skip type checking all .d.ts files. */ | ||
| }, | ||
| "exclude": [ | ||
| "coverage" | ||
| ] | ||
| } |
+6
-36
@@ -1,38 +0,8 @@ | ||
| 'use strict' | ||
| 'use strict'; | ||
| var hasOwn = Object.prototype.hasOwnProperty | ||
| var call = Function.prototype.call; | ||
| var $hasOwn = Object.prototype.hasOwnProperty; | ||
| var bind = require('function-bind'); | ||
| function curry(fn, n){ | ||
| if (typeof n !== 'number'){ | ||
| n = fn.length | ||
| } | ||
| function getCurryClosure(prevArgs){ | ||
| function curryClosure() { | ||
| var len = arguments.length | ||
| var args = [].concat(prevArgs) | ||
| if (len){ | ||
| args.push.apply(args, arguments) | ||
| } | ||
| if (args.length < n){ | ||
| return getCurryClosure(args) | ||
| } | ||
| return fn.apply(this, args) | ||
| } | ||
| return curryClosure | ||
| } | ||
| return getCurryClosure([]) | ||
| } | ||
| module.exports = curry(function(object, property){ | ||
| return hasOwn.call(object, property) | ||
| }) | ||
| /** @type {(o: {}, p: PropertyKey) => p is keyof o} */ | ||
| module.exports = bind.call(call, $hasOwn); |
+2
-2
@@ -1,4 +0,4 @@ | ||
| The MIT License (MIT) | ||
| MIT License | ||
| Copyright (c) 2014 Radu Brehar | ||
| Copyright (c) Jordan Harband and contributors | ||
@@ -5,0 +5,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy |
+89
-30
| { | ||
| "name": "hasown", | ||
| "version": "1.0.1", | ||
| "description": "JavaScript curried hasOwn helper", | ||
| "main": "index.js", | ||
| "scripts": { | ||
| "test": "make test", | ||
| "test-w": "make test-w", | ||
| "test-debug": "mocha --debug-brk" | ||
| }, | ||
| "devDependencies": { | ||
| "mocha": "~1.21.0", | ||
| "should": "~4.0.4" | ||
| }, | ||
| "repository": { | ||
| "type": "git", | ||
| "url": "git://github.com/radubrehar/hasown.git" | ||
| }, | ||
| "keywords": [ | ||
| "own", | ||
| "property", | ||
| "hasOwn", | ||
| "properties", | ||
| "object", | ||
| "key" | ||
| ], | ||
| "author": "Radu Brehar", | ||
| "license": "MIT", | ||
| "bugs": { | ||
| "url": "https://github.com/radubrehar/has-own/issues" | ||
| } | ||
| "name": "hasown", | ||
| "version": "2.0.0", | ||
| "description": "A robust, ES3 compatible, \"has own property\" predicate.", | ||
| "main": "index.js", | ||
| "exports": { | ||
| ".": "./index.js", | ||
| "./package.json": "./package.json" | ||
| }, | ||
| "scripts": { | ||
| "prepack": "npmignore --auto --commentLines=autogenerated && npm run emit-types", | ||
| "prepublish": "not-in-publish || npm run prepublishOnly", | ||
| "prepublishOnly": "safe-publish-latest", | ||
| "prelint": "evalmd README.md", | ||
| "lint": "eslint --ext=js,mjs .", | ||
| "postlint": "npm run tsc", | ||
| "preemit-types": "rm -f *.ts *.ts.map test/*.ts test/*.ts.map", | ||
| "emit-types": "npm run tsc -- --noEmit false --emitDeclarationOnly", | ||
| "pretest": "npm run lint", | ||
| "tsc": "tsc -p .", | ||
| "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/hasOwn.git" | ||
| }, | ||
| "keywords": [ | ||
| "has", | ||
| "hasOwnProperty", | ||
| "hasOwn", | ||
| "has-own", | ||
| "own", | ||
| "has", | ||
| "property", | ||
| "in", | ||
| "javascript", | ||
| "ecmascript" | ||
| ], | ||
| "author": "Jordan Harband <ljharb@gmail.com>", | ||
| "license": "MIT", | ||
| "bugs": { | ||
| "url": "https://github.com/inspect-js/hasOwn/issues" | ||
| }, | ||
| "homepage": "https://github.com/inspect-js/hasOwn#readme", | ||
| "dependencies": { | ||
| "function-bind": "^1.1.2" | ||
| }, | ||
| "devDependencies": { | ||
| "@ljharb/eslint-config": "^21.1.0", | ||
| "@types/function-bind": "^1.1.9", | ||
| "@types/mock-property": "^1.0.1", | ||
| "@types/tape": "^5.6.3", | ||
| "aud": "^2.0.3", | ||
| "auto-changelog": "^2.4.0", | ||
| "eslint": "=8.8.0", | ||
| "evalmd": "^0.0.19", | ||
| "in-publish": "^2.0.1", | ||
| "mock-property": "^1.0.2", | ||
| "npmignore": "^0.3.0", | ||
| "nyc": "^10.3.2", | ||
| "safe-publish-latest": "^2.0.0", | ||
| "tape": "^5.7.1", | ||
| "typescript": "^5.3.0-dev.20231019" | ||
| }, | ||
| "engines": { | ||
| "node": ">= 0.4" | ||
| }, | ||
| "testling": { | ||
| "files": "test/index.js" | ||
| }, | ||
| "auto-changelog": { | ||
| "output": "CHANGELOG.md", | ||
| "template": "keepachangelog", | ||
| "unreleased": false, | ||
| "commitLimit": false, | ||
| "backfillLimit": false, | ||
| "hideCredit": true | ||
| }, | ||
| "publishConfig": { | ||
| "ignore": [ | ||
| ".github/workflows", | ||
| "test", | ||
| "!*.d.ts", | ||
| "!*.d.ts.map" | ||
| ] | ||
| } | ||
| } |
+30
-45
@@ -1,55 +0,40 @@ | ||
| hasown | ||
| ======= | ||
| # hasown <sup>[![Version Badge][npm-version-svg]][package-url]</sup> | ||
| JavaScript curried hasOwn helper. | ||
| [![github actions][actions-image]][actions-url] | ||
| [![coverage][codecov-image]][codecov-url] | ||
| [![License][license-image]][license-url] | ||
| [![Downloads][downloads-image]][downloads-url] | ||
| ## Install | ||
| [![npm badge][npm-badge-png]][package-url] | ||
| ```sh | ||
| $ npm install hasown | ||
| ``` | ||
| A robust, ES3 compatible, "has own property" predicate. | ||
| ## Usage | ||
| ## Example | ||
| #### Simple usage | ||
| ```js | ||
| var hasOwn = require('hasown') | ||
| var person = { name: 'bob' } | ||
| const assert = require('assert'); | ||
| const hasOwn = require('hasown'); | ||
| hasOwn(person, 'name') == true | ||
| assert.equal(hasOwn({}, 'toString'), false); | ||
| assert.equal(hasOwn([], 'length'), true); | ||
| assert.equal(hasOwn({ a: 42 }, 'a'), true); | ||
| ``` | ||
| #### Curried usage | ||
| ## Tests | ||
| Simply clone the repo, `npm install`, and run `npm test` | ||
| ```js | ||
| var hasOwn = require('hasown') | ||
| var person = { lastName: 'willson' } | ||
| var child = Object.create(person) | ||
| child.age = 1 | ||
| child.firstName = 'bob' | ||
| var childHasOwn = hasOwn(child) | ||
| for (var k in child) if (childHasOwn(k)){ | ||
| console.log(k, ' = ', child[k]) | ||
| } | ||
| ``` | ||
| ## Test | ||
| ```sh | ||
| $ make | ||
| ``` | ||
| Watch mode | ||
| ```sh | ||
| $ make test-w | ||
| ``` | ||
| ## License | ||
| ``` | ||
| MIT | ||
| ``` | ||
| [package-url]: https://npmjs.org/package/hasown | ||
| [npm-version-svg]: https://versionbadg.es/inspect-js/hasown.svg | ||
| [deps-svg]: https://david-dm.org/inspect-js/hasOwn.svg | ||
| [deps-url]: https://david-dm.org/inspect-js/hasOwn | ||
| [dev-deps-svg]: https://david-dm.org/inspect-js/hasOwn/dev-status.svg | ||
| [dev-deps-url]: https://david-dm.org/inspect-js/hasOwn#info=devDependencies | ||
| [npm-badge-png]: https://nodei.co/npm/hasown.png?downloads=true&stars=true | ||
| [license-image]: https://img.shields.io/npm/l/hasown.svg | ||
| [license-url]: LICENSE | ||
| [downloads-image]: https://img.shields.io/npm/dm/hasown.svg | ||
| [downloads-url]: https://npm-stat.com/charts.html?package=hasown | ||
| [codecov-image]: https://codecov.io/gh/inspect-js/hasOwn/branch/main/graphs/badge.svg | ||
| [codecov-url]: https://app.codecov.io/gh/inspect-js/hasOwn/ | ||
| [actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/hasOwn | ||
| [actions-url]: https://github.com/inspect-js/hasOwn/actions |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
-8
| REPORTER = spec | ||
| test: | ||
| ./node_modules/.bin/mocha --recursive --reporter $(REPORTER) --require should | ||
| test-w: | ||
| ./node_modules/.bin/mocha --recursive --reporter $(REPORTER) --require should --watch | ||
| .PHONY: test test-w |
-61
| 'use strict' | ||
| describe('hasOwn test', function(){ | ||
| var hasOwn = require('../index') | ||
| it('should return true for own props', function(){ | ||
| hasOwn({name: 'x'}, 'name') | ||
| .should | ||
| .equal(true) | ||
| hasOwn({name: 'x'}, 'name') | ||
| .should | ||
| .equal(true) | ||
| }) | ||
| it('should return false for not own props', function(){ | ||
| var first = { name: 'x'} | ||
| var second = Object.create(first) | ||
| hasOwn(first, 'name') | ||
| .should | ||
| .equal(true) | ||
| hasOwn(first, 'x') | ||
| .should | ||
| .equal(false) | ||
| hasOwn(second, 'name') | ||
| .should | ||
| .equal(false) | ||
| second.name = 'bil' | ||
| hasOwn(second, 'name') | ||
| .should | ||
| .equal(true) | ||
| }) | ||
| it('should allow curry', function(){ | ||
| var person = { | ||
| name: 'x' | ||
| } | ||
| var child = Object.create(person) | ||
| child.age = 1 | ||
| child.firstName = 'bil' | ||
| var result = [] | ||
| var childHasOwn = hasOwn(child) | ||
| for(var k in child) if (childHasOwn(k)){ | ||
| result.push(k) | ||
| } | ||
| result | ||
| .should | ||
| .eql(['age','firstName']) | ||
| }) | ||
| }) |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
11
22.22%0
-100%0
-100%10837
-61.89%1
Infinity%15
650%49
-27.94%41
-25.45%2
Infinity%+ Added
+ Added