Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/plasmohq/bms
📢 Browser Market Submission
https://github.com/plasmohq/bms
addons browser-extension chrome firefox web-extension webext
Last synced: 2 months ago
JSON representation
📢 Browser Market Submission
- Host: GitHub
- URL: https://github.com/plasmohq/bms
- Owner: PlasmoHQ
- License: mit
- Created: 2022-02-20T03:39:52.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-14T22:15:03.000Z (about 1 year ago)
- Last Synced: 2024-05-11T05:02:58.808Z (9 months ago)
- Topics: addons, browser-extension, chrome, firefox, web-extension, webext
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@plasmo-corp/bms
- Size: 215 KB
- Stars: 24
- Watchers: 3
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Browser Market Submit
A NodeJS library from [Plasmo](https://www.plasmo.com/) to submit browser extensions to multiple stores. It is made to be used in the [Browser Platform Publisher](https://bpp.browser.market) action.
Supported stores:
- [Chrome Web Store](https://chrome.google.com/webstore/category/extensions)
- [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/extensions)
- [Edge Add-ons](https://microsoftedge.microsoft.com/addons)Unsupported stores:
- [Opera Add-ons](https://addons.opera.com/en/extensions): They do not have an automation API, and their cookie expires in 24 hours, making them unsuitable for CI/CD.
# Core packages used
- [@plasmohq/chrome-webstore-api](https://github.com/PlasmoHQ/chrome-webstore-api) - for uploading extensions to Chrome Web Store.
- [@plasmohq/mozilla-addons-api](https://github.com/PlasmoHQ/mozilla-addons-api) - for signing and uploading extensions to Firefox Addon API.
- [@plasmohq/edge-addons-api](https://github.com/PlasmoHQ/edge-addons-api) - for uploading and publishing extensions to Edge Add-ons API.# Installing
```shell
npm i -D @plasmohq/bms
# or
pnpm i -D @plasmohq/bms
# or
yarn add -D @plasmohq/bms
```# Usage
Following this [doc](./tokens.md) to gather the tokens necessary for the deployment, OR use [bpp's json schema](https://raw.githubusercontent.com/PlasmoHQ/bpp/v2/keys.schema.json) which provides intellisense on editors such as vscode. To use the json schema, create a `keys.json` file in vscode with the following content:
```json
{
"$schema": "https://raw.githubusercontent.com/PlasmoHQ/bpp/v2/keys.schema.json"
}
```Then, the nodejs API can be consumed as follows:
```ts
import {
submitChrome,
submitEdge,
submitFirefox,
} from "@plasmohq/bms"submitChrome({
extId: "EXT_ID",
refreshToken: "refreshToken",
clientId: "clientIdsubmit",
clientSecret: "clientSecret",
zip: "dist/some-zip-v{version}.zip",
verbose: false
})submitFirefox({
extId: "EXT_ID",
apiKey: "api_key",
apiSecret: "api_secret",
zip: "dist/some-zip-v{version}.zip",
verbose: false
})submitEdge({
clientId: "aaaaaaa-aaaa-bbbb-cccc-dddddddddddd",
clientSecret: "abcdefg",
productId: "aaaaaaa-aaaa-bbbb-cccc-dddddddddddd",
accessTokenUrl: "https://login.microsoftonline.com/aaaaaaa-aaaa-bbbb-cccc-dddddddddddd/oauth2/v2.0/token",
zip: "dist/some-zip-v{version}.zip",
notes: "Changes for reviewers",
verbose: false
})
```# Support
Join our [Discord channel](https://www.plasmo.com/s/d)!
# Acknowledgment
This library was inspired by:
- [web-ext-deploy](https://github.com/avi12/web-ext-deploy) by [avi12](https://github.com/avi12)
- The documentation and API of bms is largely inspired by web-ext-deploy.
- [chrome-webstore-upload-cli](https://github.com/fregante/chrome-webstore-upload-cli) by [fregante](https://github.com/fregante)
- [web-ext](https://github.com/mozilla/web-ext) by [mozilla](https://github.com/mozilla)# License
[MIT](./license) ⭐ [Plasmo Corp.](https://plasmo.com)