chrome-webstore
Advanced tools
Comparing version 1.4.8 to 2.0.0
@@ -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": {}, |
381
README.md
@@ -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 |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
32834
10
490
351
Updatedrequest-compose@^2.1.5