{"id":18869316,"url":"https://github.com/codersales/javascript-chrome-extension-2-version-2","last_synced_at":"2026-05-01T04:35:51.617Z","repository":{"id":240930342,"uuid":"803815446","full_name":"CoderSales/javascript-chrome-extension-2-version-2","owner":"CoderSales","description":"javascript-chrome-extension-2-version-2","archived":false,"fork":false,"pushed_at":"2024-05-22T07:24:16.000Z","size":93,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-22T13:57:00.662Z","etag":null,"topics":["2024","chrome","extensions","google","javascript","msc"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CoderSales.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-21T12:39:49.000Z","updated_at":"2024-05-28T05:59:17.732Z","dependencies_parsed_at":"2024-05-28T05:59:13.802Z","dependency_job_id":null,"html_url":"https://github.com/CoderSales/javascript-chrome-extension-2-version-2","commit_stats":null,"previous_names":["codersales/javascript-chrome-extension-2-version-2"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2Fjavascript-chrome-extension-2-version-2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2Fjavascript-chrome-extension-2-version-2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2Fjavascript-chrome-extension-2-version-2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2Fjavascript-chrome-extension-2-version-2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CoderSales","download_url":"https://codeload.github.com/CoderSales/javascript-chrome-extension-2-version-2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239816510,"owners_count":19701753,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2024","chrome","extensions","google","javascript","msc"],"created_at":"2024-11-08T05:16:26.619Z","updated_at":"2026-02-14T05:30:19.074Z","avatar_url":"https://github.com/CoderSales.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# javascript-chrome-extension-2-version-2\n\nBase on / continuation of\n\n# javascript-chrome-extension-2\n\n## Description\n\njavascript-chrome-extension-2-version-2\n\n[First Chrome Extension Repository with References](https://github.com/CoderSales/automate-copying-open-urls-javascript/tree/main)\n\n____\n\n[Chrome Developer](https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world)\n\n[GitHub Google Extensions](https://github.com/GoogleChrome/chrome-extensions-samples/tree/main/functional-samples/tutorial.hello-world)\n\n[npm i chrome-types](https://www.npmjs.com/package/chrome-types?activeTab=readme)\n\n____\n\n## Commands\n\n```bash\n$ node\n```\n\n```bash\n$ python -m venv .venv\n```\n\n```bash\n$ source .venv/Scripts/activate\n```\n\n```bash\n$ pip install nodeenv\n```\n\n```bash\n$ npm i chrome-types\n```\n\n____\n\n## References\n\n[google chrome extensions dev - Google Search](https://www.google.com/search?q=google+chrome+extensions+dev\u0026newwindow=1\u0026sca_esv=722f3a8361f4f734\u0026sca_upv=1\u0026sxsrf=ADLYWIJWtLhSx-d7P8B_zXAJApm0EjTemg%3A1715591133775\u0026ei=3ddBZrf4LuGpxc8PkISQwAc\u0026ved=0ahUKEwj32u6Ao4qGAxXhVPEDHRACBHgQ4dUDCBA\u0026uact=5\u0026oq=google+chrome+extensions+dev\u0026gs_lp=Egxnd3Mtd2l6LXNlcnAiHGdvb2dsZSBjaHJvbWUgZXh0ZW5zaW9ucyBkZXYyCxAAGIAEGJECGIoFMgUQABiABDIFEAAYgAQyCxAAGIAEGJECGIoFMgYQABgWGB4yBhAAGBYYHjIGEAAYFhgeMgYQABgWGB4yCBAAGBYYHhgPMgYQABgWGB5I6BZQAFidFXABeAGQAQCYAX-gAe0EqgEDMy4zuAEDyAEA-AEBmAIHoAKMBZgDAOIDBRIBMSBAkgcDNC4zoAeoKg\u0026sclient=gws-wiz-serp)\n\n[chrome.management  |  API  |  Chrome for Developers](https://developer.chrome.com/docs/extensions/reference/api/management)\n\n[console.log delimiter separator - Google Search](https://www.google.com/search?q=console.log+delimiter+separator\u0026newwindow=1\u0026sca_esv=b99a51cc48654f1f\u0026sca_upv=1\u0026sxsrf=ADLYWIJ8ZBv9APyxEzsuOrkYtXgNCMFy6Q%3A1715640343787\u0026ei=F5hCZonZL8CH7NYPsea8qAo\u0026ved=0ahUKEwjJwIOq2ouGAxXAA9sEHTEzD6UQ4dUDCBA\u0026uact=5\u0026oq=console.log+delimiter+separator\u0026gs_lp=Egxnd3Mtd2l6LXNlcnAiH2NvbnNvbGUubG9nIGRlbGltaXRlciBzZXBhcmF0b3IyBBAAGEcyBBAAGEcyBBAAGEcyBBAAGEcyBBAAGEcyBBAAGEcyBBAAGEcyBBAAGEdIzAhQxQVYxQVwAXgCkAEAmAEAoAEAqgEAuAEDyAEA-AEBmAICoAILwgIKEAAYsAMY1gQYR5gDAOIDBRIBMSBAiAYBkAYIkgcBMqAHAA\u0026sclient=gws-wiz-serp)\n\n[Spacing in console.log | Codecademy](https://www.codecademy.com/forum_questions/5481982976b8fe6d52000926)\n\n[JavaScript console.log: How to make the comma param separator use newline for objects instead of space? - Stack Overflow](https://stackoverflow.com/questions/71499585/javascript-console-log-how-to-make-the-comma-param-separator-use-newline-for-ob)\n\n[querySelector(\".pathname\") - Google Search](https://www.google.com/search?q=querySelector%28%22.pathname%22%29\u0026newwindow=1\u0026sca_esv=f4c49221cb34c0ce\u0026sca_upv=1\u0026sxsrf=ADLYWIIQAI5YwTEg2g3Z9esQzd4jDufAbw%3A1715602992796\u0026ei=MAZCZq-FMMyCxc8PzLGA2A0\u0026ved=0ahUKEwiv3deXz4qGAxVMQfEDHcwYANsQ4dUDCBA\u0026oq=querySelector%28%22.pathname%22%29\u0026gs_lp=Egxnd3Mtd2l6LXNlcnAiGnF1ZXJ5U2VsZWN0b3IoIi5wYXRobmFtZSIpSIFmUABYAHAAeACQAQCYAXCgAXCqAQMwLjG4AQzIAQD4AQGYAgCgAgCYAwCSBwCgB1A\u0026sclient=gws-wiz-serp)\n\n[javascript - Getting href value in HTML without resolution of URL - Stack Overflow](https://stackoverflow.com/questions/62029646/getting-href-value-in-html-without-resolution-of-url)\n\n[.map javascript - Google Search](https://www.google.com/search?q=.map+javascript\u0026newwindow=1\u0026sca_esv=f4c49221cb34c0ce\u0026sca_upv=1\u0026sxsrf=ADLYWIIMFS-AMbqpicf-eJbx4qUJUYqwCw%3A1715603202860\u0026ei=AgdCZsONNPGtxc8P_OuWyAQ\u0026oq=.map+ja\u0026gs_lp=Egxnd3Mtd2l6LXNlcnAiBy5tYXAgamEqAggAMgUQABiABDIFEAAYgAQyBRAAGIAEMgUQABiABDIFEAAYgAQyBRAAGIAEMgUQABiABDIFEAAYgAQyBRAAGIAEMgUQABiABEj3IFDJC1iVE3ABeACQAQCYAU2gAdkBqgEBM7gBA8gBAPgBAZgCBKAC7AHCAgkQABiwAxgHGB6YAwCIBgGQBgqSBwE0oAeJFQ\u0026sclient=gws-wiz-serp)\n\n[Map - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)\n\n[HTML DOM Anchor pathname Property](https://www.w3schools.com/jsref/prop_anchor_pathname.asp)\n\n[javascript - How to update the groupId of a tab in chrome extensions? - Stack Overflow](https://stackoverflow.com/questions/77938748/how-to-update-the-groupid-of-a-tab-in-chrome-extensions)\n\n[URL - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/URL)\n\n[javascript extract url from tab - Google Search](https://www.google.com/search?q=javascript+extract+url+from+tab\u0026oq=javascript+extract+url+from+tab\u0026gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIICAEQABgWGB4yDQgCEAAYhgMYgAQYigUyDQgDEAAYhgMYgAQYigUyDQgEEAAYhgMYgAQYigUyCggFEAAYgAQYogQyCggGEAAYgAQYogQyCggHEAAYogQYiQXSAQkxMjA1NWowajeoAgCwAgA\u0026sourceid=chrome\u0026ie=UTF-8)\n\n[html - Use Javascript to get current tab url - Stack Overflow](https://stackoverflow.com/questions/70104602/use-javascript-to-get-current-tab-url)\n\n[chrome.tabs.query() - Google Search](https://www.google.com/search?q=chrome.tabs.query()\u0026sourceid=chrome\u0026ie=UTF-8)\n\n[tab current url javascript chrome extension - Google Search](https://www.google.com/search?q=tab+current+url+javascript+chrome+extension\u0026oq=tab+current+url+javascript+chrome+extension\u0026gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQIRigATIHCAIQIRifBdIBCDg4NjVqMGo3qAIIsAIB\u0026sourceid=chrome\u0026ie=UTF-8)\n\n[How can I get the URL of the current tab from a Google Chrome extension? - Stack Overflow](https://stackoverflow.com/questions/1979583/how-can-i-get-the-url-of-the-current-tab-from-a-google-chrome-extension)\n\n[chrome-extensions-samples/api-samples/tabCapture at main · GoogleChrome/chrome-extensions-samples](https://github.com/GoogleChrome/chrome-extensions-samples/tree/main/api-samples/tabCapture#chrometabcapture)\n\n[how does chrome extension work gets from extension html url - Google Search](https://www.google.com/search?q=how+does+chrome+extension+work+gets+from+extension+html+url\u0026oq=how+does+chrome+extension+work+gets+from+extension+html+url\u0026gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIGCAEQRRhA0gEJMjA2NDBqMGo3qAIAsAIA\u0026sourceid=chrome\u0026ie=UTF-8)\n\n[how does manifest call function in chrome extensions - Google Search](https://www.google.com/search?q=how+does+manifest+call+function+in+chrome+extensions\u0026oq=how+does+manifest+call+function+in+chrome+extensions\u0026gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIGCAEQRRhA0gEHOTI4ajBqN6gCALACAA\u0026sourceid=chrome\u0026ie=UTF-8)\n\n[\"action\": { \"default_popup\": \"popup.html\" - Google Search](https://www.google.com/search?q=%22action%22%3A+%7B+%22default_popup%22%3A+%22popup.html%22\u0026oq=%22action%22%3A+%7B+%22default_popup%22%3A+%22popup.html%22\u0026gs_lcrp=EgZjaHJvbWUyBggAEEUYOdIBCDEzMzFqMGo3qAIAsAIA\u0026sourceid=chrome\u0026ie=UTF-8)\n\n[chrome.action  |  API  |  Chrome for Developers](https://developer.chrome.com/docs/extensions/reference/api/action)\n\n[why is https:// an invalid url pattern - Google Search](https://www.google.com/search?q=why+is+https%3A%2F%2F+an+invalid+url+pattern\u0026oq=why+is+https%3A%2F%2F+an+invalid+url+pattern\u0026gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQIRigAdIBCDc0NzFqMGo3qAIAsAIA\u0026sourceid=chrome\u0026ie=UTF-8)\n\n[eclipse - java.lang.IllegalArgumentException: Invalid \u003curl-pattern\u003e WelcomeServlet in servlet mapping - Stack Overflow](https://stackoverflow.com/questions/31526814/java-lang-illegalargumentexception-invalid-url-pattern-welcomeservlet-in-serv)\n\n[GitHub](https://github.com/)\n\n[Stack Overflow - Where Developers Learn, Share, \u0026 Build Careers](https://stackoverflow.com/)\n\n[W3Schools Online Web Tutorials](https://www.w3schools.com/)\n\n[how to undo a set in javascript browser parse index - Google Search](https://www.google.com/search?q=how+to+undo+a+set+in+javascript+browser+parse+index\u0026newwindow=1\u0026sca_esv=4771c1dce5b9df5f\u0026sca_upv=1\u0026sxsrf=ADLYWIJo8s0rUwpTKTB7tbCQm1SJGpdTfg%3A1715612134848\u0026ei=5ilCZrKqM5WKxc8P4PmvYA\u0026ved=0ahUKEwiytfqe8YqGAxUVRfEDHeD8CwwQ4dUDCBA\u0026uact=5\u0026oq=how+to+undo+a+set+in+javascript+browser+parse+index\u0026gs_lp=Egxnd3Mtd2l6LXNlcnAiM2hvdyB0byB1bmRvIGEgc2V0IGluIGphdmFzY3JpcHQgYnJvd3NlciBwYXJzZSBpbmRleEjVEVDHDFjHDHABeAGQAQCYAecBoAHnAaoBAzItMbgBA8gBAPgBAZgCAaACCMICChAAGLADGNYEGEeYAwCIBgGQBgiSBwExoAdn\u0026sclient=gws-wiz-serp)\n\n[Set - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set)\n\n____\n\n```javascript\nconst iterator1 = set1.entries();\n\nfor (const entry of iterator1) {\n```\n\n[Set.prototype.entries() - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/entries)\n\n____\n\n[how to iterate through setiterator - Google Search](https://www.google.com/search?q=how+to+iterate+through+setiterator\u0026oq=how+to+iterate+through+setiterator\u0026gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIGCAEQRRhA0gEIODI3NGowajeoAgCwAgA\u0026sourceid=chrome\u0026ie=UTF-8)\n\n[javascript - Iterate over set elements - Stack Overflow](https://stackoverflow.com/questions/16401216/iterate-over-set-elements)\n\n[how to parse a set javascript - Google Search](https://www.google.com/search?q=how+to+parse+a+set+javascript\u0026newwindow=1\u0026sca_esv=4771c1dce5b9df5f\u0026sca_upv=1\u0026sxsrf=ADLYWIK7SOOcSfMb_VVq3SLJhsbMrrdPtw%3A1715614227016\u0026ei=EzJCZuxA_pDFzw_Cl5b4Cg\u0026ved=0ahUKEwislsqE-YqGAxV-SPEDHcKLBa8Q4dUDCBA\u0026uact=5\u0026oq=how+to+parse+a+set+javascript\u0026gs_lp=Egxnd3Mtd2l6LXNlcnAiHWhvdyB0byBwYXJzZSBhIHNldCBqYXZhc2NyaXB0MggQIRigARjDBEiaHVDmC1icF3ACeAGQAQCYAaADoAGGBaoBBzAuMi40LTG4AQPIAQD4AQGYAgSgAqwEwgIKEAAYsAMY1gQYR8ICBxAjGLACGCeYAwCIBgGQBgiSBwcyLjEuNC0xoAeJBg\u0026sclient=gws-wiz-serp)\n____\n\nHeadings from geeksforgeeks.org site:\n\n```text\n1. Using forEach() method:\n\n2. Using for...of loop:\n\n3. Converting Set to Array and using array iteration methods:\n```\n\n[How to Iterate over the Elements of a Set in JavaScript ? - GeeksforGeeks](https://www.geeksforgeeks.org/how-to-iterate-over-the-elements-of-a-set-in-javascript/)\n\n____\n\n[set [[Entries]] - Google Search](https://www.google.com/search?q=set+%5B%5BEntries%5D%5D\u0026oq=set+%5B%5BEntries%5D%5D\u0026gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQABiABDIICAIQABgWGB4yCAgDEAAYFhgeMggIBBAAGBYYHjIICAUQABgWGB4yCAgGEAAYFhgeMggIBxAAGBYYHjIICAgQABgWGB4yCAgJEAAYFhge0gEIMzc3NWowajeoAgCwAgA\u0026sourceid=chrome\u0026ie=UTF-8)\n\n[Set.prototype.entries() - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/entries)\n\n[how do you loop a setIterator in JavaScript that has Entries - Google Search](https://www.google.com/search?q=how+do+you+loop+a+setIterator+in+JavaScript+that+has+Entries\u0026newwindow=1\u0026sca_esv=4771c1dce5b9df5f\u0026sca_upv=1\u0026sxsrf=ADLYWIJapkvdP7tbnMMkNhAihQVnFt4Q5w%3A1715615844088\u0026ei=ZDhCZqn4BJyPxc8P1Z2T0Ak\u0026ved=0ahUKEwiputSH_4qGAxWcR_EDHdXOBJoQ4dUDCBA\u0026uact=5\u0026oq=how+do+you+loop+a+setIterator+in+JavaScript+that+has+Entries\u0026gs_lp=Egxnd3Mtd2l6LXNlcnAiPGhvdyBkbyB5b3UgbG9vcCBhIHNldEl0ZXJhdG9yIGluIEphdmFTY3JpcHQgdGhhdCBoYXMgRW50cmllczIHECEYoAEYCjIHECEYoAEYCkisiAFQ_iRYkocBcAJ4AZABAZgBnQGgAeoxqgEFMTIuNDS4AQPIAQD4AQGYAjmgAvw5wgIKEAAYsAMY1gQYR8ICBBAjGCfCAgsQABiABBiRAhiKBcICChAAGIAEGEMYigXCAgsQABiABBixAxiDAcICERAuGIAEGLEDGNEDGIMBGMcBwgIOEC4YgAQYsQMY0QMYxwHCAg4QABiABBixAxiDARiKBcICBRAAGIAEwgIOEC4YgAQYsQMYgwEYigXCAgQQABgDwgILEC4YgAQYsQMYigXCAgUQLhiABMICCBAuGIAEGNQCwgIHEAAYgAQYCsICChAAGIAEGBQYhwLCAgYQABgWGB7CAgsQABiABBiGAxiKBcICBRAhGKABwgIEECEYFcICCBAAGIAEGKIEmAMA4gMFEgExICmIBgGQBgiSBwo3LjQ4LjEuMC4xoAex1AI\u0026sclient=gws-wiz-serp)\n\n[Set.prototype[@@iterator]() - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/@@iterator)\n\n[javascript .emitPISessionOperation - Google Search](https://www.google.com/search?q=javascript+.emitPISessionOperation\u0026newwindow=1\u0026sca_esv=4771c1dce5b9df5f\u0026sca_upv=1\u0026sxsrf=ADLYWILHeFUCXpq7tjiVRs3BpssGKMn4zw%3A1715620447452\u0026ei=X0pCZrD7Gvm_xc8Pl9auqAo\u0026ved=0ahUKEwjwptuakIuGAxX5X_EDHRerC6UQ4dUDCBA\u0026uact=5\u0026oq=javascript+.emitPISessionOperation\u0026gs_lp=Egxnd3Mtd2l6LXNlcnAiImphdmFzY3JpcHQgLmVtaXRQSVNlc3Npb25PcGVyYXRpb25IukVQ-zRYnURwB3gAkAEAmAH5AaABlQyqAQYwLjEwLjG4AQPIAQD4AQGYAgCgAgCYAwCIBgGSBwCgB_AS\u0026sclient=gws-wiz-serp)\n\n[javascript console.log arguments - Google Search](https://www.google.com/search?q=javascript+consol.log+arguments\u0026oq=javascript+consol.log+arguments\u0026gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIICAEQABgWGB4yCAgCEAAYFhgeMggIAxAAGBYYHjIICAQQABgWGB4yCAgFEAAYFhgeMggIBhAAGBYYHjIICAcQABgWGB4yCAgIEAAYFhgeMg0ICRAAGIYDGIAEGIoF0gEJMTM5NzJqMGo3qAIAsAIA\u0026sourceid=chrome\u0026ie=UTF-8)\n\n____\n\n```javascript\nconsole.log(`First name: ${var1}, last name: ${var2}`);\n```\n\n[How to give two arguments in console.log()? | sitepoint.com](https://www.sitepoint.com/community/t/how-to-give-two-arguments-in-console-log/264955)\n\n____\n\n[js slice - Google Search](https://www.google.com/search?q=js+slice\u0026oq=js+slice\u0026gs_lcrp=EgZjaHJvbWUyDggAEEUYORhDGIAEGIoFMgcIARAAGIAEMgcIAhAAGIAEMgcIAxAAGIAEMgcIBBAAGIAEMgcIBRAAGIAEMgcIBhAAGIAEMgcIBxAAGIAEMgcICBAAGIAEMgcICRAAGIAE0gEIMzQyNGowajeoAgCwAgA\u0026sourceid=chrome\u0026ie=UTF-8)\n\n[JavaScript String slice() Method](https://www.w3schools.com/jsref/jsref_slice_string.asp)\n\n____\n\n```text\nHow to use the values method in a set\nYou retrieve the values in a set by using the \"values\" method, which returns an iterable. You can then use a for loop or for-of loop to loop through the values.\n\nThe example below shows the creation of a set of fruits with 4 elements and the use of the \"values\" method to loop through the elements with a for-of loop.\n```\n\n```javascript\nconst fruits = new Set([100,160, 200,300]);\nfor( const fruit of fruits.values()){\n    console.log(fruit);\n}\n```\n\n[How to Use Set and Map in JavaScript | freecodecamp.org](https://www.freecodecamp.org/news/set-and-map-in-javascript/#:~:text=You%20retrieve%20the%20values%20in,with%20a%20for%2Dof%20loop.)\n\n____\n\n\n[How to Loop Through an Array in JavaScript – JS Iterate Tutorial | freecodecamp.org](https://www.freecodecamp.org/news/how-to-loop-through-an-array-in-javascript-js-iterate-tutorial/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodersales%2Fjavascript-chrome-extension-2-version-2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodersales%2Fjavascript-chrome-extension-2-version-2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodersales%2Fjavascript-chrome-extension-2-version-2/lists"}