{"id":22080,"date":"2018-06-29T12:15:11","date_gmt":"2018-06-29T09:15:11","guid":{"rendered":"https:\/\/www.webcodegeeks.com\/?p=22080"},"modified":"2018-06-29T12:15:02","modified_gmt":"2018-06-29T09:15:02","slug":"webpack-project-sitting-vulnerability","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/","title":{"rendered":"Webpack Project is sitting on a vulnerability, avoid it at all costs!"},"content":{"rendered":"<p>The other day, I was going through this <a href=\"https:\/\/medium.com\/p\/73fac4bc5068\">medium post<\/a> which describes the kind of chaos and insecurity currently plaguing the JavaScript world, and the <em>numero uno<\/em> reason for that is the astronomical number of npm packages.<\/p>\n<p>When you usually install a non-trivial library or application through a package manager, the expectation is that the number of dependencies should be as less as possible. This not only helps you in managing the disk space (very important for cloud hosting), but also makes a manageable code audit possible. For instance, the Python\u2019s Flask package (which is a considerably large web framework, a lot more complex than Webpack which is just a JavaScript bundler) has the <a href=\"https:\/\/github.com\/pallets\/flask\/blob\/master\/setup.py\">following four dependencies<\/a>:<\/p>\n<pre class=\"brush:bash\">install_requires=[\r\n 'Werkzeug&gt;=0.14',\r\n 'Jinja2&gt;=2.10',\r\n 'itsdangerous&gt;=0.24',\r\n 'click&gt;=5.1',\r\n],<\/pre>\n<p>On the other hand, this trivial Webpack package on NPM has <a href=\"https:\/\/www.npmjs.com\/package\/webpack\">25 dependencies on various 3rd party packages<\/a>!!<\/p>\n<pre class=\"brush:php\">@webassemblyjs\/ast\r\n @webassemblyjs\/helper-module-context\r\n @webassemblyjs\/wasm-edit\r\n @webassemblyjs\/wasm-opt\r\n @webassemblyjs\/wasm-parser\r\n acorn\r\n acorn-dynamic-import\r\n ajv\r\n ajv-keywords\r\n chrome-trace-event\r\n enhanced-resolve\r\n eslint-scope\r\n json-parse-better-errors\r\n loader-runner\r\n loader-utils\r\n memory-fs\r\n micromatch\r\n mkdirp\r\n neo-async\r\n node-libs-browser\r\n schema-utils\r\n tapable\r\n uglifyjs-webpack-plugin\r\n watchpack\r\n webpack-sources<\/pre>\n<p>However, your worry hasn\u2019t even started yet, your real worry starts when you realize that the other super-trivial package\u00a0mentioned in that article called <strong><a href=\"https:\/\/www.npmjs.com\/package\/is-odd\">is-odd<\/a><\/strong>\u00a0 has a whopping statistics of <strong>1.4 million<\/strong> downloads per week:<br \/>\n<a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/06\/is-odd.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-22086\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/06\/is-odd.png\" alt=\"\" width=\"453\" height=\"445\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/06\/is-odd.png 453w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/06\/is-odd-300x295.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/06\/is-odd-70x70.png 70w\" sizes=\"(max-width: 453px) 100vw, 453px\" \/><\/a><br \/>\nNow, any programmer worth his salt will know that its a <a href=\"https:\/\/stackoverflow.com\/questions\/6211613\/testing-whether-a-value-is-odd-or-even\">one line coding effort<\/a> to determine whether a given number is odd or even, even in JavaScript:<\/p>\n<pre class=\"brush:java\">function isEven(n) {\r\n return n % 2 == 0;\r\n}\r\n\r\nfunction isOdd(n) {\r\n return Math.abs(n % 2) == 1;\r\n}<\/pre>\n<p>Now, our master programmer who developed this \u201c<em>is-odd as a service<\/em>\u201d not only goes ahead and registers whole new npm packages called is-odd and is-even, but also makes a lot of his other packages depend on it. Can you even begin to imagine what kind of bureaucratic politician you have to be in order to do that!<\/p>\n<p>Now, this in itself couldn\u2019t have caused any problem, the real issue here is that the highly reputed and popular <strong>Webpack<\/strong> project is also using one of his packages (for doing a trivial regular expression check on a string) and the dependency chain is such that the following four packages are also pulled in whenever you install <strong>Webpack<\/strong> from npm since Webpack depends on them (and this is what explains is-odd\u2019s 1.4 million weekly download figure):<\/p>\n<p><i>is-odd -&gt; nanomatch -&gt; micromatch -&gt; webpack<\/i><\/p>\n<p>Now, even a CS undergraduate should be able to see the management nightmare, not only of burdening your hard disk space of these additional packages whenever you <strong>npm install webpack<\/strong>, but also the security nightmares associated with it. In future, if the developer of <strong>is-odd<\/strong> package clubbed some malware in his code and propagated it throughout the node-ecosystem, can you even begin to imagine the disaster its going to cause on your production machines? I agree that this applies to other packaging systems like <strong>pip<\/strong> and <strong>composer<\/strong> too, but problem here is that the number of npm packages is too large and too unmanageable.<\/p>\n<p>And to top it, the developers in the ecosystem are paying no heed to this, they think this is something to be proud of and worthy of chest thumping. They should try to understand that DRY (Don\u2019t Repeat Yourself) becomes a self-harming pattern beyond a certain extent, especially when you start releasing packages like is-odd and is-even. They get argumentative and counter you with a militant defense when you try to explain this point to them. For instance, I raised <a href=\"https:\/\/github.com\/webpack\/webpack\/issues\/7591\">an issue on Webpack\u2019s Github repository a few days ago<\/a> for this exact problem (<strong>remove dependency from micromatch package<\/strong>) and they simply closed it down giving some hilarious arguments. Their arguments are really interesting, but beyond sanity for someone who values security and maintainability of production applications.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>Published on Web Code Geeks with permission by Prahlad Yeri, partner at our <a href=\"\/\/www.webcodegeeks.com\/join-us\/wcg\/\" target=\"_blank\" rel=\"noopener\">WCG program<\/a>. See the original article here: <a href=\"https:\/\/www.prahladyeri.com\/blog\/2018\/06\/webpack-project-is-sitting-on-a-vulnerability-avoid-it-at-all-costs.html\" target=\"_blank\" rel=\"noopener\">Webpack Project is sitting on a vulnerability, avoid it at all costs!<\/a><\/p>\n<p>Opinions expressed by Web Code Geeks contributors are their own.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The other day, I was going through this medium post which describes the kind of chaos and insecurity currently plaguing the JavaScript world, and the numero uno reason for that is the astronomical number of npm packages. When you usually install a non-trivial library or application through a package manager, the expectation is that the &hellip;<\/p>\n","protected":false},"author":20,"featured_media":927,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-22080","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Webpack Project is sitting on a vulnerability, avoid it at all costs! - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Interested to learn more about Webpack Project vulnerability? Check out our article on how the astronomical number of npm packages are a security nightmare!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Webpack Project is sitting on a vulnerability, avoid it at all costs! - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Interested to learn more about Webpack Project vulnerability? Check out our article on how the astronomical number of npm packages are a security nightmare!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prahlad1981\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-29T09:15:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/web-dev-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Prahlad Yeri\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/prahladyeri\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prahlad Yeri\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/\"},\"author\":{\"name\":\"Prahlad Yeri\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/adbf41ec03855cdb1730dd42f2725bfd\"},\"headline\":\"Webpack Project is sitting on a vulnerability, avoid it at all costs!\",\"datePublished\":\"2018-06-29T09:15:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/\"},\"wordCount\":629,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/web-dev-logo.jpg\",\"articleSection\":[\"Web Dev\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/\",\"name\":\"Webpack Project is sitting on a vulnerability, avoid it at all costs! - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/web-dev-logo.jpg\",\"datePublished\":\"2018-06-29T09:15:11+00:00\",\"description\":\"Interested to learn more about Webpack Project vulnerability? Check out our article on how the astronomical number of npm packages are a security nightmare!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/web-dev-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/web-dev-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web Dev\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/web-development\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Webpack Project is sitting on a vulnerability, avoid it at all costs!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/adbf41ec03855cdb1730dd42f2725bfd\",\"name\":\"Prahlad Yeri\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70a8e7bba939c7539943aa1191374d2504d95a2a95acb04a1e44adc3b4c72fe3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70a8e7bba939c7539943aa1191374d2504d95a2a95acb04a1e44adc3b4c72fe3?s=96&d=mm&r=g\",\"caption\":\"Prahlad Yeri\"},\"description\":\"Prahlad is a freelance software developer working on web and mobile application development. He also likes to blog about programming and contribute to opensource.\",\"sameAs\":[\"http:\/\/www.prahladyeri.com\/\",\"https:\/\/www.facebook.com\/prahlad1981\",\"http:\/\/in.linkedin.com\/pub\/prahlad-yeri\/16\/a53\/243\/\",\"https:\/\/x.com\/https:\/\/twitter.com\/prahladyeri\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/prahlad-yeri\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Webpack Project is sitting on a vulnerability, avoid it at all costs! - Web Code Geeks - 2026","description":"Interested to learn more about Webpack Project vulnerability? Check out our article on how the astronomical number of npm packages are a security nightmare!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/","og_locale":"en_US","og_type":"article","og_title":"Webpack Project is sitting on a vulnerability, avoid it at all costs! - Web Code Geeks - 2026","og_description":"Interested to learn more about Webpack Project vulnerability? Check out our article on how the astronomical number of npm packages are a security nightmare!","og_url":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_author":"https:\/\/www.facebook.com\/prahlad1981","article_published_time":"2018-06-29T09:15:11+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/web-dev-logo.jpg","type":"image\/jpeg"}],"author":"Prahlad Yeri","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/prahladyeri","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Prahlad Yeri","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/"},"author":{"name":"Prahlad Yeri","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/adbf41ec03855cdb1730dd42f2725bfd"},"headline":"Webpack Project is sitting on a vulnerability, avoid it at all costs!","datePublished":"2018-06-29T09:15:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/"},"wordCount":629,"commentCount":1,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/web-dev-logo.jpg","articleSection":["Web Dev"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/","url":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/","name":"Webpack Project is sitting on a vulnerability, avoid it at all costs! - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/web-dev-logo.jpg","datePublished":"2018-06-29T09:15:11+00:00","description":"Interested to learn more about Webpack Project vulnerability? Check out our article on how the astronomical number of npm packages are a security nightmare!","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/web-dev-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/web-dev-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/web-development\/webpack-project-sitting-vulnerability\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Web Dev","item":"https:\/\/www.webcodegeeks.com\/category\/web-development\/"},{"@type":"ListItem","position":3,"name":"Webpack Project is sitting on a vulnerability, avoid it at all costs!"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/adbf41ec03855cdb1730dd42f2725bfd","name":"Prahlad Yeri","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/70a8e7bba939c7539943aa1191374d2504d95a2a95acb04a1e44adc3b4c72fe3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70a8e7bba939c7539943aa1191374d2504d95a2a95acb04a1e44adc3b4c72fe3?s=96&d=mm&r=g","caption":"Prahlad Yeri"},"description":"Prahlad is a freelance software developer working on web and mobile application development. He also likes to blog about programming and contribute to opensource.","sameAs":["http:\/\/www.prahladyeri.com\/","https:\/\/www.facebook.com\/prahlad1981","http:\/\/in.linkedin.com\/pub\/prahlad-yeri\/16\/a53\/243\/","https:\/\/x.com\/https:\/\/twitter.com\/prahladyeri"],"url":"https:\/\/www.webcodegeeks.com\/author\/prahlad-yeri\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/22080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=22080"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/22080\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/927"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=22080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=22080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=22080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}