Socket
Socket
Sign inDemoInstall

doc-path

Package Overview
Dependencies
Maintainers
1
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

doc-path - npm Package Compare versions

Comparing version 3.0.7 to 3.1.0

2

dist/path.js

@@ -6,2 +6,2 @@ /**

*/
"use strict";function evaluatePath(t,e){if(!t)return null;let{dotIndex:r,key:a,remaining:n}=state(e);return r>=0&&!t[e]?Array.isArray(t[a])?t[a].map(t=>evaluatePath(t,n)):evaluatePath(t[a],n):Array.isArray(t)?t.map(t=>evaluatePath(t,e)):r>=0&&e!==a&&t[a]?evaluatePath(t[a],n):-1===r&&t[a]&&!t[e]?t[a]:t[e]}function setPath(t,e,r){if(!t)throw new Error("No object was provided.");if(!e)throw new Error("No keyPath was provided.");return _sp(t,e,r)}function _sp(t,e,r){let{dotIndex:a,key:n,remaining:i}=state(e);if(e.startsWith("__proto__")||e.startsWith("constructor")||e.startsWith("prototype"))return t;if(a>=0){if(!t[n]&&Array.isArray(t))return t.forEach(t=>_sp(t,e,r));t[n]||(t[n]={}),_sp(t[n],i,r)}else{if(Array.isArray(t))return t.forEach(t=>_sp(t,i,r));t[n]=r}return t}function state(t){let e=findFirstNonEscapedDotIndex(t);return{dotIndex:e,key:t.slice(0,e>=0?e:void 0).replace(/\\./g,"."),remaining:t.slice(e+1)}}function findFirstNonEscapedDotIndex(t){for(let e=0;e<t.length;e++){const r=e>0?t[e-1]:"";if("."===t[e]&&"\\"!==r)return e}return-1}module.exports={evaluatePath:evaluatePath,setPath:setPath};
"use strict";function evaluatePath(t,e){if(!t)return null;let{dotIndex:r,key:a,remaining:n}=state(e);return r>=0&&"object"==typeof t&&!(e in t)?Array.isArray(t[a])?t[a].map(t=>evaluatePath(t,n)):evaluatePath(t[a],n):Array.isArray(t)?t.map(t=>evaluatePath(t,e)):r>=0&&e!==a&&"object"==typeof t&&a in t?evaluatePath(t[a],n):-1===r&&"object"==typeof t&&a in t&&!(e in t)?t[a]:t[e]}function setPath(t,e,r){if(!t)throw new Error("No object was provided.");if(!e)throw new Error("No keyPath was provided.");return _sp(t,e,r)}function _sp(t,e,r){let{dotIndex:a,key:n,remaining:i}=state(e);if(e.startsWith("__proto__")||e.startsWith("constructor")||e.startsWith("prototype"))return t;if(a>=0){if(!t[n]&&Array.isArray(t))return t.forEach(t=>_sp(t,e,r));t[n]||(t[n]={}),_sp(t[n],i,r)}else{if(Array.isArray(t))return t.forEach(t=>_sp(t,i,r));t[n]=r}return t}function state(t){let e=findFirstNonEscapedDotIndex(t);return{dotIndex:e,key:t.slice(0,e>=0?e:void 0).replace(/\\./g,"."),remaining:t.slice(e+1)}}function findFirstNonEscapedDotIndex(t){for(let e=0;e<t.length;e++){const r=e>0?t[e-1]:"";if("."===t[e]&&"\\"!==r)return e}return-1}module.exports={evaluatePath:evaluatePath,setPath:setPath};

@@ -5,3 +5,3 @@ {

"description": "A document path library for Node",
"version": "3.0.7",
"version": "3.1.0",
"homepage": "https://mrodrig.github.io/doc-path",

@@ -8,0 +8,0 @@ "repository": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc