šŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →
Socket
Book a DemoInstallSign in
Socket

chrome-webstore

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

chrome-webstore - npm Package Compare versions

Comparing version

to
2.0.0

CHANGELOG.md

67

client.d.ts

@@ -16,2 +16,6 @@ import {

url: string
category: {
name: string
slug: string
}
author: {

@@ -22,2 +26,5 @@ name: string

}
developer: {
verified: boolean | null
}
users: string

@@ -28,7 +35,3 @@ rating: {

}
price: string | null
category: {
name: string
slug: string
}
featured: boolean | null
images: {

@@ -41,4 +44,6 @@ '26x26': string | null

'460x340': string | null
'700x280': string | null
}
status: string | null
features: string[]
android: string | null
}

@@ -50,10 +55,7 @@

export interface Detail extends Item {
description: string
website: string
support: string
version: string
size: string
published: string
purchases: null
languages: string[]
description: string
type: string
developer: {

@@ -63,4 +65,12 @@ email: string | null

policy: string | null
verified: boolean | null
trader: boolean | null
}
type: string
website: string | null
support: string | null
video: string | null
screenshots: string[]
languages: string[]
features: string[]
collects: string[]
manifest: string

@@ -90,4 +100,4 @@ related: Item[] | undefined

export interface Issue {
type: string
status: string
type: 'problem' | 'question' | 'suggestion'
status: 'open' | 'in progress' | 'closed'
title: string

@@ -135,7 +145,2 @@ description: string

/**
* Item feature set
*/
export type Features = 'offline' | 'google' | 'free' | 'android' | 'gdrive'
/**
* Items options

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

/**
* Filter items by search term
*/
search?: string
/**
* Filter items by category name

@@ -154,10 +155,6 @@ */

/**
* Filter items by number of stars
* Filter items by search term
*/
rating?: 5 | 4 | 3 | 2
search?: string
/**
* Filter items by feature set
*/
features?: Features[]
/**
* Number of items to return

@@ -168,6 +165,10 @@ * @default 5

/**
* Start returning items from `offset` (**requires** `category`)
* Filter items by number of stars
*/
offset?: number
rating?: 5 | 4 | 3 | 2
/**
* Iteration token
*/
next?: string
/**
* Set locale for the response data

@@ -207,3 +208,3 @@ * @default en

* Sort order
* @default helpful
* @default recent
*/

@@ -258,3 +259,3 @@ sort?: 'helpful' | 'recent'

* List Web Store items (subset of the detail data)
* @param options `search` | `category` | `rating` | `features` | `count` | `offset` | `locale` | `version`
* @param options `category` | `search` | `count` | `rating` | `next` | `locale` | `version`
*/

@@ -261,0 +262,0 @@ function items(options: ItemsOptions): Promise<Item[]>

@@ -14,3 +14,3 @@

items: ({search, category, rating, features, count, offset, locale, version, ...options}) => compose(
items: ({category, search, count, rating, next, locale, version, ...options}) => compose(
_ => compose.client({...options,

@@ -20,10 +20,7 @@ method: 'POST',

qs: {
category,
searchTerm: search,
category,
features: (features || [])
.map((i) => ({offline: 4, google: 1, free: 5, android: 0, gdrive: 12}[i]))
.concat({5: 9, 4: 8, 3: 7, 2: 6}[rating])
.filter((i) => typeof i === 'number'),
features: {5: 9, 4: 8, 3: 7, 2: 6}[rating],
count: count || 5,
token: offset ? `${offset}@${offset}` : undefined,
token: next,
hl: locale || 'en',

@@ -33,3 +30,9 @@ pv: version || VERSION,

}),
({body}) => JSON.parse(body.slice(5))[1][1].map(item),
({body}) => ((
json = JSON.parse(body.slice(5)),
items = json[1][1].map(item),
next = json[1][4] && json[1][4] !== '#@' && json[1][4]) => (
next ? items.next = next : undefined,
items
))()
)(),

@@ -66,3 +69,3 @@

[count || 5, offset || 0],
{helpful: 1, recent: 2}[sort] || 1,
{helpful: 1, recent: 2}[sort] || 2,
[]

@@ -69,0 +72,0 @@ ]),

@@ -8,2 +8,11 @@

url: detail[0][37],
version: detail[6],
size: detail[25],
published: detail[7],
description: detail[1],
type: detail[10],
category: {
name: detail[0][10],
slug: detail[0][9],
},
author: {

@@ -14,8 +23,11 @@ name: detail[0][2],

},
description: detail[1],
developer: {
email: detail[35][0] || null,
address: detail[35][1] || null,
policy: detail[35][2] || null,
verified: !!detail[0][34] || null,
trader: !!detail[35][3] || null,
},
website: detail[3],
support: detail[5],
version: detail[6],
size: detail[25],
published: detail[7],
users: detail[0][23],

@@ -26,8 +38,3 @@ rating: {

},
price: detail[0][30],
purchases: detail[36],
category: {
name: detail[0][10],
slug: detail[0][9],
},
featured: !!detail[0][89] || null,
images: {

@@ -40,12 +47,29 @@ '26x26': detail[0][3],

'460x340': detail[0][5],
'700x280': detail[0][17],
},
video: String(detail[11][0][19]).includes('youtube.com')
? `https://www.youtube.com/watch?v=${detail[11][0][19].replace(/.*embed\/(.*)\?.*/, '$1')}`
: null,
screenshots: (String(detail[11][0][19]).includes('youtube.com') ? detail[11].slice(1) : detail[11])
.map((arr) => arr[17]).filter(Boolean),
languages: detail[8],
developer: {
email: detail[35][0] || null,
address: detail[35][1] || null,
policy: detail[35][2] || null,
},
type: detail[10],
status: detail[0][84],
features: [
detail[0][78] && 'Offers in-app purchases',
detail[0][53] && 'Runs offline',
detail[0][69] && 'Available for Android',
detail[0][56] && 'By Google',
].filter(Boolean),
android: detail[0][69] || null,
collects: detail[39].map((index) => ({
1: 'Personally identifiable information',
2: 'Health information',
3: 'Financial and payment information',
4: 'Authentication information',
5: 'Personal communications',
6: 'Location',
7: 'Web history',
8: 'User activity',
9: 'Website content',
}[index])),
manifest: detail[9][0],
})

@@ -8,2 +8,6 @@

url: item[37],
category: {
name: item[10],
slug: item[9],
},
author: {

@@ -14,2 +18,5 @@ name: item[2],

},
developer: {
verified: !!item[34] || null,
},
users: item[23],

@@ -20,7 +27,3 @@ rating: {

},
price: item[30],
category: {
name: item[10],
slug: item[9],
},
featured: !!item[89] || null,
images: {

@@ -33,4 +36,11 @@ '26x26': item[3],

'460x340': item[5],
'700x280': item[17],
},
status: item[84],
features: [
item[78] && 'Offers in-app purchases',
item[53] && 'Runs offline',
item[69] && 'Available for Android',
item[56] && 'By Google',
].filter(Boolean),
android: item[69] || null,
})
{
"name": "chrome-webstore",
"version": "1.4.8",
"version": "2.0.0",
"description": "Google Chrome Web Store HTTP Client",

@@ -18,6 +18,6 @@ "keywords": [

"dependencies": {
"request-compose": "^2.1.1"
"request-compose": "^2.1.5"
},
"devDependencies": {
"request-logs": "^2.1.3"
"request-logs": "^2.1.4"
},

@@ -24,0 +24,0 @@ "bin": {},

@@ -18,9 +18,9 @@

Name | Arguments | Returns | Description
--- | --- | --- | ---
detail | `{id, related, more, locale, version, ...options}` | `{Object}` | Full details about a Web Store item
items | `{search, category, rating, features, count, offset, locale, version, ...options}` | `[Array]` | List Web Store items (subset of the detail data)
reviews | `{id, count, offset, locale, sort, version, ...options}` | `[Array]` | List reviews for an item
issues | `{id, type, count, page, version, ...options}` | `[Array]` | List issues for an item
version | `{...options}` | `string` | Chrome Web Store [API version](#chrome-web-store-api-version)
| Name | Arguments | Returns | Description
| --- | --- | --- | ---
| detail | `{id, related, more, locale, version, ...options}` | `{Object}` | Full details about a Web Store item
| items | `{category, search, count, rating, next, locale, version, ...options}` | `[Array]` | List Web Store items (subset of the detail data)
| reviews | `{id, count, offset, locale, sort, version, ...options}` | `[Array]` | List reviews for an item
| issues | `{id, type, count, page, version, ...options}` | `[Array]` | List issues for an item
| version | `{...options}` | `string` | Chrome Web Store [API version](#chrome-web-store-api-version)

@@ -31,3 +31,3 @@ ```js

;(async () => {
var items = await webstore.items({search: 'markdown', category: 'extensions'})
var items = await webstore.items({category: 'extensions', search: 'markdown'})
var details = await webstore.detail({id: 'ckkdlimhmcjmikdlpkmbgfkaikojcbjk'})

@@ -45,31 +45,49 @@ var reviews = await webstore.reviews({id: 'ckkdlimhmcjmikdlpkmbgfkaikojcbjk'})

{
id: 'ckkdlimhmcjmikdlpkmbgfkaikojcbjk',
name: 'Markdown Viewer',
title: 'Markdown Viewer',
slug: 'markdown-viewer',
url: 'https://chrome.google.com/webstore/detail/markdown-viewer/ckkdlimhmcjmikdlpkmbgfkaikojcbjk',
author: { name: 'simov.github.io', domain: null, url: null },
description: 'āœ” Renders local and remote URLs\nāœ” Granular access to remote origins\nāœ” Multiple markdown parsers\nāœ” Full control over the compiler options\nāœ” Themes (including GitHub theme)\nāœ” GitHub Flavored Markdown (GFM)\nāœ” Auto reload on file change\nāœ” Syntax highlighted code blocks\nāœ” Table of Contents (TOC)\nāœ” MathJax and Emoji support\nāœ” Remembers scroll position\nāœ” Markdown Content-Type detection\nāœ” URL detection using RegExp\nāœ” Toggle Content Security Policy (CSP)\nāœ” Override page encoding\nāœ” Settings synchronization\nāœ” Raw and rendered markdown views\nāœ” Free and Open Source\n\n✚ Local Files\n\n1. Navigate to `chrome://extensions`\n2. Locate Markdown Viewer and click on the `DETAILS` button\n3. Make sure that the `Allow access to file URLs` switch is turned on\n\n✚ Remote Files\n\n1. Click on the Markdown Viewer icon and select `Advanced Options`\n2. Add the origin that you want enabled for the Markdown Viewer extension\n\n✚ Compiler Options\n\nāœ” Compilers: Marked, Remark\nāœ” Documentation: https://github.com/simov/markdown-viewer#compiler-options\n\n✚ Content Options\n\nāœ” Features: Autoreload, TOC, Mathjax, Emoji, Scroll\nāœ” Documentation: https://github.com/simov/markdown-viewer#content-options\n\n✚ Full Documentation\n\nāœ” https://github.com/simov/markdown-viewer',
website: 'https://github.com/simov/markdown-viewer',
support: 'https://github.com/simov/markdown-viewer/issues',
version: '3.6',
size: '223KiB',
published: 'July 7, 2018',
users: '51,850',
rating: { average: 4.355704697986577, count: 149 },
price: 'Free',
purchases: null,
category: { name: 'Productivity', slug: 'ext/7-productivity' },
images:
{ '26x26': 'https://lh3.googleusercontent.com/78nux4sjd5uRGIB1oaSFT_zkiktsy-GX_HAGTrKlxnOiw1Jc7Fwhx8IijRpoqYgeiuuPxzQa=w26-h26-e365',
'128x128': 'https://lh3.googleusercontent.com/78nux4sjd5uRGIB1oaSFT_zkiktsy-GX_HAGTrKlxnOiw1Jc7Fwhx8IijRpoqYgeiuuPxzQa=w128-h128-e365',
'141x90': 'https://lh3.googleusercontent.com/vWHnrFwI1i8--kb0_A9UO4_6xMd0GJOpNvu1iTrh1F0gIbrSkdW1ALzvStVbK6lChDVjAjKG=w141-h90-e365',
'220x140': 'https://lh3.googleusercontent.com/vWHnrFwI1i8--kb0_A9UO4_6xMd0GJOpNvu1iTrh1F0gIbrSkdW1ALzvStVbK6lChDVjAjKG=w220-h140-e365',
'440x280': 'https://lh3.googleusercontent.com/vWHnrFwI1i8--kb0_A9UO4_6xMd0GJOpNvu1iTrh1F0gIbrSkdW1ALzvStVbK6lChDVjAjKG=w440-h280-e365',
'460x340': null },
id: 'dpgjihldbpodlmnjolekemlfbcajnmod',
name: 'Sumopaint - Online Image Editor',
title: 'Sumopaint is a full featured painting and image editing application.',
slug: 'sumopaint-online-image-ed',
url: 'https://chrome.google.com/webstore/detail/sumopaint-online-image-ed/dpgjihldbpodlmnjolekemlfbcajnmod?hl=en',
version: '12.4',
size: '23.83KiB',
published: 'October 13, 2022',
description: 'Features:\n\nLayers with undo support\n\n - 11 blending modes\n - Duplicate, merge and flatten layers\n - Rotate and flip\n - Zoom and pan\n\nLayers with classic layer effects\n\n - Drop Shadow\n - Inner Shadow\n - Outer Glow\n - Inner Glow\n - Bevel\n - Color Overlay\n - Stroke\n - Gradient Bevel\n - Gradient Glow\n\n20 filters and effects in the following categories\n\n - Blur\n - Distort\n - Noise\n - Pixelate\n - Sharpen\t\n - Posterize\n - Threshold\n\nProfessional painting tools\n\n - Over 300 brushes\n - Advanced options like gravity and auto orient\n - Real time bezier-curve smoothing\n - Animated brushes\n - Smudge, blur, sharpen, dodge, burn and saturation tools\n\nSelection tools with full undo support\n\n - Lasso\n - Rectangular lasso\n - Magic wand\n - Rectangular and elliptical selections\n - Border, feather, expand and contract selection\n\nImage enhancement tools including\n\n - Unsharp mask\n - Levels\n - Brightness / contrast\n - Hue / saturation\n - Color balance\n - Color temperature\n\nGradient tool\n\n - 15 gradient types including linear, radial and angle modes\n - 170 preset color selections\n - Gradients are anti-aliased\n\nClone stamp tool\n\n - Over 300 brushes\n - Diameter, opacity and flow\n - Advanced options like scattering and random rotation',
type: 'Extension',
category: { name: 'Photos', slug: 'ext/28-photos' },
author: { name: 'Sumo Apps Ltd', domain: 'sumo.app', url: 'http://sumo.app' },
developer: {
email: 'support@sumo.app',
address: 'Satamakatu 1\nSumoapps\nHelsinki 00160\nFI',
policy: 'https://sumo.app/privacy',
verified: true,
trader: true
},
website: 'https://sumo.app',
support: 'https://sumo.app/support/',
users: '700,000+',
rating: { average: 3.518426294820717, count: 2008 },
featured: true,
images: {
'26x26': 'https://lh3.googleusercontent.com/jjujkKH5X8zleN6uq4cSBPNBvHGRJjxs8MbSiybos8tE_0AS0W04NCUSBPfsEWkOxmyYejDbX7BrHxiOo6uca4az=w50-h50-e365-rj-sc0x00ffffff',
'128x128': 'https://lh3.googleusercontent.com/jjujkKH5X8zleN6uq4cSBPNBvHGRJjxs8MbSiybos8tE_0AS0W04NCUSBPfsEWkOxmyYejDbX7BrHxiOo6uca4az=w128-h128-e365-rj-sc0x00ffffff',
'141x90': 'https://lh3.googleusercontent.com/7MCIVPZgkKaYDpvZVlM26A2v516PBFqa84FAqCo9BzOBJGLaIvk-y5faQyIb1NqNzIiSbgHIxdnYuNwOMZaOwb67ZA=w141-h90-e365-rj-sc0x00ffffff',
'220x140': 'https://lh3.googleusercontent.com/7MCIVPZgkKaYDpvZVlM26A2v516PBFqa84FAqCo9BzOBJGLaIvk-y5faQyIb1NqNzIiSbgHIxdnYuNwOMZaOwb67ZA=w220-h140-e365-rj-sc0x00ffffff',
'440x280': 'https://lh3.googleusercontent.com/7MCIVPZgkKaYDpvZVlM26A2v516PBFqa84FAqCo9BzOBJGLaIvk-y5faQyIb1NqNzIiSbgHIxdnYuNwOMZaOwb67ZA=w440-h280-e365-rj-sc0x00ffffff',
'460x340': 'https://lh3.googleusercontent.com/-4WplyGF4xWrmmpYa4G1T1f5GYrBDoO1DZbsORuYzm1scM_0AH72h31nazB9QP7_nH3_nGcJ_acdK8sMbTPBXvke=w460-h340-e365-rj-sc0x00ffffff',
'700x280': 'https://lh3.googleusercontent.com/EdN8VYISOGk72gGevtyKGwvAi3Qu1vqCvQ8qcBWWKANK96riTJ11pWoqoNgkyNHI67aEo4_6Q15Hrixloi1CxLQehA=w700-h280-e365-rj-sc0x00ffffff'
},
video: 'https://www.youtube.com/watch?v=QYg6U0TclTw',
screenshots: [
'https://lh3.googleusercontent.com/guLYdee1TQiFYAWClDeGQzmH8m6kdFZLgU1rmcG38OqmiIxLH9sT-uob7eg8_99_0MhCO-16HOrES6VQVIYd4Eij=w640-h400-e365-rj-sc0x00ffffff',
'https://lh3.googleusercontent.com/z1wChYxrKCpJNsmsQ8Cqc8IcM11UEUi-79R9Z1eqySmF9KdSAi1XrKcYl7382bchKnle2zZ1-qua5K0RvgATconk=w640-h400-e365-rj-sc0x00ffffff'
],
languages: [ 'English' ],
developer: { email: null, address: null, policy: null },
type: 'Extension',
status: 'Published',
manifest: '{\n"update_url": "https://clients2.google.com/service/update2/crx",\n\n "manifest_version": 2,\n "name" : "Markdown Viewer",\n "version" : "3.6",\n "description" : "Markdown Viewer",\n\n "browser_action": {\n "default_icon": {\n "19" : "/images/icon19.png",\n "38" : "/images/icon38.png"\n },\n "default_title": "Markdown Viewer",\n "default_popup": "/content/popup.html"\n },\n\n "options_page": "/content/options.html",\n\n "background" : {\n "scripts": [\n "/vendor/marked.min.js",\n "/vendor/remark.min.js",\n "/vendor/remark-html.min.js",\n "/vendor/remark-slug.min.js",\n "/vendor/remark-frontmatter.min.js",\n\n "/background/compilers/marked.js",\n "/background/compilers/remark.js",\n\n "/background/storage.js",\n "/background/webrequest.js",\n "/background/detect.js",\n "/background/inject.js",\n "/background/messages.js",\n "/background/mathjax.js",\n\n "/background/index.js"\n ],\n "persistent": false\n },\n\n "web_accessible_resources": [\n "/themes/github.css",\n "/themes/github-dark.css",\n\n "/themes/godspeed.css",\n "/themes/new-modern.css",\n "/themes/torpedo.css",\n "/themes/vostok.css",\n\n "/themes/ghostwriter.css",\n "/themes/radar.css",\n "/themes/foghorn.css",\n "/themes/markdown.css",\n "/themes/markedapp-byword.css",\n "/themes/solarized-dark.css",\n "/themes/solarized-light.css",\n\n "/themes/screen.css",\n "/themes/markdown5.css",\n "/themes/markdown6.css",\n "/themes/markdown7.css",\n "/themes/markdown8.css",\n "/themes/markdown9.css",\n "/themes/markdown-alt.css"\n ],\n\n "icons": {\n "16" : "/images/icon16.png",\n "48" : "/images/icon48.png",\n "128": "/images/icon128.png"\n },\n\n "homepage_url": "https://chrome.google.com/webstore/detail/markdown-viewer/ckkdlimhmcjmikdlpkmbgfkaikojcbjk",\n\n "permissions": [\n "storage",\n "file:///*"\n ],\n\n "optional_permissions": [\n "https://*/",\n "http://*/",\n "*://*/",\n "webRequest",\n "webRequestBlocking"\n ]\n}\n'
features: [ 'Offers in-app purchases' ],
android: null,
collects: [
'Personally identifiable information',
'User activity',
'Website content'
],
manifest: '{\n\"update_url\": \"https://clients2.google.com/service/update2/crx\",\n\n\t\"manifest_version\": 3,\n\t\"name\": \"Sumopaint - Online Image Editor\",\n\t\"short_name\": \"Sumopaint\",\n\t\"version\": \"12.4\",\n\t\"description\": \"Sumopaint is a full featured painting and image editing application.\",\n\t\"author\": \"Sumo Apps Ltd\",\n\t\"action\": {\n\t\t\"default_icon\": \"sumo128.png\"\n\t},\n\t\"permissions\": [\n\t\t\"contextMenus\"\n\t],\n\t\"icons\": {\n\t\t\"16\": \"sumo16.png\",\n\t\t\"32\": \"sumo32.png\",\n\t\t\"48\": \"sumo48.png\",\n\t\t\"128\": \"sumo128.png\"\n\t},\n\t\"background\": {\n\t\t\"service_worker\": \"background.js\"\n\t}\n}'
}

@@ -85,38 +103,58 @@ ```

[
{ id: 'elifhakcjgalahccnjkneoccemfahfoa',
name: 'Markdown Here',
title: 'Write your email in Markdown, then make it pretty.',
slug: 'markdown-here',
url: 'https://chrome.google.com/webstore/detail/markdown-here/elifhakcjgalahccnjkneoccemfahfoa',
author: { name: 'Adam Pritchard', domain: null, url: null },
users: '84,640',
rating: { average: 4.533132530120482, count: 332 },
price: 'Free',
{
id: 'dpgjihldbpodlmnjolekemlfbcajnmod',
name: 'Sumopaint - Online Image Editor',
title: 'Sumopaint is a full featured painting and image editing application.',
slug: 'sumopaint-online-image-ed',
url: 'https://chrome.google.com/webstore/detail/sumopaint-online-image-ed/dpgjihldbpodlmnjolekemlfbcajnmod?hl=en',
category: { name: 'Photos', slug: 'ext/28-photos' },
author: {
name: 'Sumo Apps Ltd',
domain: 'sumo.app',
url: 'http://sumo.app'
},
developer: { verified: true },
users: '700,000+',
rating: { average: 3.518426294820717, count: 2008 },
featured: true,
images: {
'26x26': 'https://lh3.googleusercontent.com/jjujkKH5X8zleN6uq4cSBPNBvHGRJjxs8MbSiybos8tE_0AS0W04NCUSBPfsEWkOxmyYejDbX7BrHxiOo6uca4az=w50-h50-e365-rj-sc0x00ffffff',
'128x128': 'https://lh3.googleusercontent.com/jjujkKH5X8zleN6uq4cSBPNBvHGRJjxs8MbSiybos8tE_0AS0W04NCUSBPfsEWkOxmyYejDbX7BrHxiOo6uca4az=w128-h128-e365-rj-sc0x00ffffff',
'141x90': 'https://lh3.googleusercontent.com/7MCIVPZgkKaYDpvZVlM26A2v516PBFqa84FAqCo9BzOBJGLaIvk-y5faQyIb1NqNzIiSbgHIxdnYuNwOMZaOwb67ZA=w141-h90-e365-rj-sc0x00ffffff',
'220x140': 'https://lh3.googleusercontent.com/7MCIVPZgkKaYDpvZVlM26A2v516PBFqa84FAqCo9BzOBJGLaIvk-y5faQyIb1NqNzIiSbgHIxdnYuNwOMZaOwb67ZA=w220-h140-e365-rj-sc0x00ffffff',
'440x280': 'https://lh3.googleusercontent.com/7MCIVPZgkKaYDpvZVlM26A2v516PBFqa84FAqCo9BzOBJGLaIvk-y5faQyIb1NqNzIiSbgHIxdnYuNwOMZaOwb67ZA=w440-h280-e365-rj-sc0x00ffffff',
'460x340': 'https://lh3.googleusercontent.com/-4WplyGF4xWrmmpYa4G1T1f5GYrBDoO1DZbsORuYzm1scM_0AH72h31nazB9QP7_nH3_nGcJ_acdK8sMbTPBXvke=w460-h340-e365-rj-sc0x00ffffff',
'700x280': 'https://lh3.googleusercontent.com/EdN8VYISOGk72gGevtyKGwvAi3Qu1vqCvQ8qcBWWKANK96riTJ11pWoqoNgkyNHI67aEo4_6Q15Hrixloi1CxLQehA=w700-h280-e365-rj-sc0x00ffffff'
},
features: [ 'Offers in-app purchases' ],
android: null
},
{
id: 'gmbmikajjgmnabiglmofipeabaddhgne',
name: 'Save to Google Drive',
title: 'Save web content or screen capture directly to Google Drive.',
slug: 'save-to-google-drive',
url: 'https://chrome.google.com/webstore/detail/save-to-google-drive/gmbmikajjgmnabiglmofipeabaddhgne?hl=en',
category: { name: 'Productivity', slug: 'ext/7-productivity' },
images:
{ '26x26': 'https://lh3.googleusercontent.com/8MnGCOk0daD0BIo1KPOICczj9L1gioa-v4wFIFgIZw5uWRdhDh2UoFZvlcsgisLIgb2o4j484w=w26-h26-e365',
'128x128': 'https://lh3.googleusercontent.com/8MnGCOk0daD0BIo1KPOICczj9L1gioa-v4wFIFgIZw5uWRdhDh2UoFZvlcsgisLIgb2o4j484w=w128-h128-e365',
'141x90': 'https://lh3.googleusercontent.com/0kFPdu9d7f3WZeQjQcNdzpy-vwVh6V_7HSXWQEKR4qV7W-9neRr7zIctUNHCMKo5huzRU0yu-Q=w141-h90-e365',
'220x140': 'https://lh3.googleusercontent.com/0kFPdu9d7f3WZeQjQcNdzpy-vwVh6V_7HSXWQEKR4qV7W-9neRr7zIctUNHCMKo5huzRU0yu-Q=w220-h140-e365',
'440x280': 'https://lh3.googleusercontent.com/0kFPdu9d7f3WZeQjQcNdzpy-vwVh6V_7HSXWQEKR4qV7W-9neRr7zIctUNHCMKo5huzRU0yu-Q=w440-h280-e365',
'460x340': null },
status: 'Published' },
{ id: 'ckkdlimhmcjmikdlpkmbgfkaikojcbjk',
name: 'Markdown Viewer',
title: 'Markdown Viewer',
slug: 'markdown-viewer',
url: 'https://chrome.google.com/webstore/detail/markdown-viewer/ckkdlimhmcjmikdlpkmbgfkaikojcbjk',
author: { name: 'simov.github.io', domain: null, url: null },
users: '51,850',
rating: { average: 4.355704697986577, count: 149 },
price: 'Free',
category: { name: 'Productivity', slug: 'ext/7-productivity' },
images:
{ '26x26': 'https://lh3.googleusercontent.com/78nux4sjd5uRGIB1oaSFT_zkiktsy-GX_HAGTrKlxnOiw1Jc7Fwhx8IijRpoqYgeiuuPxzQa=w26-h26-e365',
'128x128': 'https://lh3.googleusercontent.com/78nux4sjd5uRGIB1oaSFT_zkiktsy-GX_HAGTrKlxnOiw1Jc7Fwhx8IijRpoqYgeiuuPxzQa=w128-h128-e365',
'141x90': 'https://lh3.googleusercontent.com/vWHnrFwI1i8--kb0_A9UO4_6xMd0GJOpNvu1iTrh1F0gIbrSkdW1ALzvStVbK6lChDVjAjKG=w141-h90-e365',
'220x140': 'https://lh3.googleusercontent.com/vWHnrFwI1i8--kb0_A9UO4_6xMd0GJOpNvu1iTrh1F0gIbrSkdW1ALzvStVbK6lChDVjAjKG=w220-h140-e365',
'440x280': 'https://lh3.googleusercontent.com/vWHnrFwI1i8--kb0_A9UO4_6xMd0GJOpNvu1iTrh1F0gIbrSkdW1ALzvStVbK6lChDVjAjKG=w440-h280-e365',
'460x340': null },
status: 'Published' }
author: {
name: 'drive.google.com',
domain: 'drive.google.com',
url: 'http://drive.google.com'
},
developer: { verified: true },
users: '6,000,000+',
rating: { average: 3.9656769846283426, count: 4749 },
featured: true,
images: {
'26x26': 'https://lh3.googleusercontent.com/TFO5gDBZMhZOyeKAozOLYsxulAwh_RT7qY3vdqKt_8NTMWQjSNRLFc9CjPdkC2MSPimqwSB__nG24HKw4Y1hMdtLLw=w50-h50-e365-rj-sc0x00ffffff',
'128x128': 'https://lh3.googleusercontent.com/TFO5gDBZMhZOyeKAozOLYsxulAwh_RT7qY3vdqKt_8NTMWQjSNRLFc9CjPdkC2MSPimqwSB__nG24HKw4Y1hMdtLLw=w128-h128-e365-rj-sc0x00ffffff',
'141x90': 'https://lh3.googleusercontent.com/KArsUAqEY9DFj0UFwe6_YcPfio4hPpdrv34txEUI7Be7rcpDPaAE3iJkXemXt3J_JCybFbG-j7LJCyeFrT6RsOe-kA=w141-h90-e365-rj-sc0x00ffffff',
'220x140': 'https://lh3.googleusercontent.com/KArsUAqEY9DFj0UFwe6_YcPfio4hPpdrv34txEUI7Be7rcpDPaAE3iJkXemXt3J_JCybFbG-j7LJCyeFrT6RsOe-kA=w220-h140-e365-rj-sc0x00ffffff',
'440x280': 'https://lh3.googleusercontent.com/KArsUAqEY9DFj0UFwe6_YcPfio4hPpdrv34txEUI7Be7rcpDPaAE3iJkXemXt3J_JCybFbG-j7LJCyeFrT6RsOe-kA=w440-h280-e365-rj-sc0x00ffffff',
'460x340': 'https://lh3.googleusercontent.com/0AU-EgW79LftIbAvDgxBsJmDMq9XCh0-xCi6j3nh7ylD2Pao1IURMDk5dcN14O0cKzuRTsQreSgPXW-7oOzosPaa=w460-h340-e365-rj-sc0x00ffffff',
'700x280': 'https://lh3.googleusercontent.com/dSqg6CV0197_qE2gpLhyta9qIlnM6QtqiviS5KnCP8xe-Y-FAjnr64L_JWeqq1dxUzfhb-bZQzEikIRTBnVK-Nmo=w700-h280-e365-rj-sc0x00ffffff'
},
features: [ 'Available for Android', 'By Google' ],
android: 'https://play.google.com/store/apps/details?id=com.google.android.apps.docs&hl=en'
}
]

@@ -132,18 +170,24 @@ ```

[
{ rating: 5,
message: 'Awesome extension. \n\nThank you very much :)',
created: 1533732378563,
updated: 1533732655781,
author:
{ id: '0000009cb63b6d30',
name: 'Quan Lao',
avatar: null } },
{ rating: 3,
message: 'Useful and effective.\nGood to have a provision to easily include additional codeblock languages as an extension function.',
created: 1531466745894,
updated: 1531466864058,
author:
{ id: '000000ed243a38c0',
name: 'Girisan Ramankutty',
avatar: 'https://lh3.googleusercontent.com/-yXupPr2Oyig/AAAAAAAAAAI/AAAAAAAAAFg/_9tTLqzivCA/s40-c-k/photo.jpg' } }
{
rating: 5,
message: 'Support for lots of markdown specs.\nDark mode :)',
created: 1644609424890,
updated: 1644609424890,
author: {
id: '000000cd0b7c0eec',
name: 'Deron Parker',
avatar: 'https://lh3.googleusercontent.com/a-/AD5-WClO31kP_7qk6WSVqT63EhMnp3yqkE1g6HkEfyA6=s40-c-k'
}
},
{
rating: 5,
message: 'Simple and neat.',
created: 1639891093261,
updated: 1639891128229,
author: {
id: '000000a15fe4ea93',
name: 'Dongryul Kim',
avatar: 'https://lh3.googleusercontent.com/a-/AD5-WCmlzkt6UmOXkQ7J0ohwwV3NlvpT-uwQbGgIqL7lUw=s40-c-k'
}
}
]

@@ -159,24 +203,30 @@ ```

[
{ type: 'problem',
{
type: 'problem',
status: 'open',
title: 'MD viewer issue',
description: 'I am loading local file URLs to the browser and MD viewer is not markingdown the file anymore, I have allowed all sites and remote/local files so am struggling to understand why it\'s not working anymore',
browser: '5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',
version: '3.6',
date: 1552132412409,
author:
{ id: '000000db916e36f5',
name: 'jermaine ijieh',
avatar: 'https://lh3.googleusercontent.com/a-/AAuE7mBx6Mib80sZHY7D2eznEIYCjj_hlYn3iKGhxfLtDg=s40-c-k' } },
{ type: 'suggestion',
status: 'closed',
title: 'Blacklisting',
description: 'Instead of whitelisting I would prefer to blacklist sites:\n\nI would like to have md-display support on all sites but I would disable it on website which already have it embedded, e.g. github.com.',
browser: '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36',
version: '3.6',
date: 1540380998369,
author:
{ id: '00000050ec61452a',
name: 'Earl Marshal',
avatar: 'https://lh3.googleusercontent.com/a-/AAuE7mAqC0HHGKzwA7P1YArM1y-EvYIH4c7CMFO0le-_Iw=s40-c-k' } }
title: 'Breaks GitHub webpage on .md files',
description: 'It has some issues with GitHub .md files. If you need to reproduce it, just enable the extension and visit any repository that has a README.md file in its root directory.',
browser: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
version: '3.9',
date: 1594171647368,
author: {
id: '00000093b1605b13',
name: 'Facundo Chambo',
avatar: 'https://lh3.googleusercontent.com/a-/AD5-WCnA_GGX10TQZaGPtqQT_wPHI3Cw1gXzDOuqKUXuGA=s40-c-k'
}
},
{
type: 'suggestion',
status: 'open',
title: '[Suggestion] Add cdn for bootstrap ',
description: "Maybe that's will be nice to add bootstrap or some other popular javascript for extends designs capabilities",
browser: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52',
version: '4.0',
date: 1632736940037,
author: {
id: '000000c0f6622e3c',
name: 'Xavier Pierre',
avatar: 'https://lh3.googleusercontent.com/a/default-user=s40-c-k'
}
}
]

@@ -192,10 +242,10 @@ ```

Parameter | Example | Description
--- | :---: | ---
id | `'ckkdlimhmcjmikdlpkmbgfkaikojcbjk'` | Item ID
related | `true` | Include a list of related extensions
more | `true` | Include a list with more items from the same developer
locale | `'bg'` | Set locale for the response data (defaults to 'en')
version | `20210820`| [API version](#chrome-web-store-api-version)
...options | `agent, timeout` | any [request-compose][compose-client-options] option
| Parameter | Example | Description
| --- | :---: | ---
| id | `'ckkdlimhmcjmikdlpkmbgfkaikojcbjk'` | Item ID
| related | `true` | Include a list of related extensions
| more | `true` | Include a list with more items from the same developer
| locale | `'bg'` | Set locale for the response data (defaults to 'en')
| version | `20210820`| [API version](#chrome-web-store-api-version)
| ...options | `agent, timeout` | any [request-compose][compose-client-options] option

@@ -206,37 +256,29 @@ ---

Parameter | Example | Description
--- | :---: | ---
search | `'markdown'` | Filter items by search term
category | `'extensions'` | Filter items by category name
rating | `5` / `4` / `3` / `2` | Filter items by number of stars
features | `['free', 'gdrive']` | Filter items by feature set
count | `15` | Number of items to return (defaults to 5)
offset | `15` | Start returning items from `offset` (**requires** `category`)
locale | `'bg'` | Set locale for the response data (defaults to 'en')
version | `20210820` | [API version](#chrome-web-store-api-version)
...options | `agent, timeout` | any [request-compose][compose-client-options] option
| Parameter | Example | Description
| --- | :---: | ---
| category | `'extensions'` | Filter items by category name
| search | `'markdown'` | Filter items by search term
| count | `15` | Number of items to return (defaults to 5)
| rating | `5` / `4` / `3` / `2` | Filter items by number of stars
| next | `...` | Iteration token
| locale | `'bg'` | Set locale for the response data (defaults to 'en')
| version | `20210820` | [API version](#chrome-web-store-api-version)
| ...options | `agent, timeout` | any [request-compose][compose-client-options] option
### category
In case more items are available the returned items array will contain one additional property called `next`, holding the iteration token. Use that token to request the next page of items.
> Check out [examples/category.json][example-category] for a full list of available category names.
Note that specifying `category` is required for the iteration to work, also collections cannot be iterated.
Category | Description
--- | ---
`extensions` | All extensions
`ext/[NAME]` | Extensions category
`themes` | All themes
`theme/[NAME]` | Themes category
`apps` | All apps
`app/[NAME]` | Apps category
`collection/[NAME]` | Collection
### category
### features
| Category | Description
| --- | ---
| `extensions` | All extensions
| `ext/[NAME]` | Extensions category
| `themes` | All themes
| `apps` | All apps
| `app/[NAME]` | Apps category
| `collection/[NAME]` | Collection
Value | Description
--- | ---
`'offline'` | Runs Offline
`'google'` | By Google
`'free'` | Free
`'android'` | Available for Android
`'gdrive'` | Works with Google Drive
Check out [examples/category.json][example-category] for a list of available category names. Additional category and collection names can be obtain from CWS by navigating to them.

@@ -247,11 +289,11 @@ ---

Parameter | Example | Description
--- | :---: | ---
id | `'ckkdlimhmcjmikdlpkmbgfkaikojcbjk'` | Item ID
count | `10` | Number of reviews to return (defaults to 5)
offset | `10` | Start returning items from offset
locale | `'en'` | Return reviews only in locale (defaults to all locales)
sort | `'helpful'` / `'recent'` | Sort order (defaults to helpful)
version | `20210820`| [API version](#chrome-web-store-api-version)
...options | `agent, timeout` | any [request-compose][compose-client-options] option
| Parameter | Example | Description
| --- | :---: | ---
| id | `'ckkdlimhmcjmikdlpkmbgfkaikojcbjk'` | Item ID
| count | `10` | Number of reviews to return (defaults to 5)
| offset | `10` | Start returning items from offset
| locale | `'en'` | Return reviews only in locale (defaults to all locales)
| sort | `'helpful'` / `'recent'` | Sort order (defaults to recent)
| version | `20210820`| [API version](#chrome-web-store-api-version)
| ...options | `agent, timeout` | any [request-compose][compose-client-options] option

@@ -262,10 +304,10 @@ ---

Parameter | Example | Description
--- | :---: | ---
id | `'ckkdlimhmcjmikdlpkmbgfkaikojcbjk'` | Item ID
type | `'problem'` / `'question'` / `'suggestion'` | Filter by issue type (defaults to all)
count | `10` | Number of issues to return (defaults to 5)
page | `2` | Start returning issues from page (page * count)
version | `20210820`| [API version](#chrome-web-store-api-version)
...options | `agent, timeout` | any [request-compose][compose-client-options] option
| Parameter | Example | Description
| --- | :---: | ---
| id | `'ckkdlimhmcjmikdlpkmbgfkaikojcbjk'` | Item ID
| type | `'problem'` / `'question'` / `'suggestion'` | Filter by issue type (defaults to all)
| count | `10` | Number of issues to return (defaults to 5)
| page | `2` | Start returning issues from page (page * count)
| version | `20210820`| [API version](#chrome-web-store-api-version)
| ...options | `agent, timeout` | any [request-compose][compose-client-options] option

@@ -276,5 +318,5 @@ ---

Parameter | Example | Description
--- | :---: | ---
...options | `agent, timeout` | any [request-compose][compose-client-options] option
| Parameter | Example | Description
| --- | :---: | ---
| ...options | `agent, timeout` | any [request-compose][compose-client-options] option

@@ -309,10 +351,3 @@ # Chrome Web Store API Version

[npm-version]: https://img.shields.io/npm/v/chrome-webstore.svg?style=flat-square (NPM Package Version)
[travis-ci]: https://img.shields.io/travis/simov/chrome-webstore/master.svg?style=flat-square (Build Status - Travis CI)
[coveralls-status]: https://img.shields.io/coveralls/simov/chrome-webstore.svg?style=flat-square (Test Coverage - Coveralls)
[codecov-status]: https://img.shields.io/codecov/c/github/simov/chrome-webstore.svg?style=flat-square (Test Coverage - Codecov)
[npm]: https://www.npmjs.com/package/chrome-webstore
[travis]: https://travis-ci.org/simov/chrome-webstore
[coveralls]: https://coveralls.io/github/simov/chrome-webstore
[codecov]: https://codecov.io/github/simov/chrome-webstore?branch=master

@@ -319,0 +354,0 @@ [compose-client-options]: https://github.com/simov/request-compose#options