Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

webext-buildtools-chrome-webstore-builder

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

webext-buildtools-chrome-webstore-builder

webext-buildtools builder for deploying to Chrome Webstore. Based on chrome-webstore-upload

  • 1.1.18
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
9
increased by50%
Maintainers
1
Weekly downloads
 
Created
Source

npm-publish

Introduction

webext-buildtools builder which allows you to upload, publish and download crx file from Chrome Web Store.

If you need a complete solution for Web Extension build/deploy, go to webext-buildtools-integrated-builder repo.

To read what are webext-buildtools and builders go to webext-buildtools-builder-types repo.

Installation

npm install webext-buildtools-chrome-webstore-builder

Purpose

Builder is based on typed-chrome-webstore-api package and allows you to upload and publish your Web Extension to Chrome Web Store and then download published crx file.

Builder doesn't allow publish a new extension, only update the existing one (specified by extensionId in options) with new version.

Usage example

const ChromeWebstoreBuilder = require('webext-buildtools-chrome-webstore-builder').default;
const fs = require('fs-extra');

const options = { ... }; // see description below
const logMethod = console.log;
const builder = new ChromeWebstoreBuilder(options, logMethod);

// You can omit this, manifest will be extracted from zip file
builder.setInputManifest(await fs.readJson('./ext_dir/package.json'));
builder.setInputZipBuffer(await fs.read('./packed.zip'));

builder.requireUploadedExt();
builder.requirePublishedExt();
builder.requirePublishedCrxFile();

const buildResult = await builder.build();

Options

Options object described in declarations/options.d.ts

See how to get logMethod for pretty output.

apiAccess

To setup API access you need to specify clientId, clientSecret and refreshToken in options.apiAccess. To find out how to obtain them you can read:

Alternatively, you can directly set valid options.accessToken (be sure it's not expired).

Inputs

  1. setInputManifest(...). Optional. Object with parsed extension's package.json. Will be extracted from zip if not specified.
  2. setInputZipBuffer(...). Buffer with zipped extension dir. Required to upload extension.

You can use webext-buildtools-dir-reader-mw to generate needed inputs from extension directory.

Outputs

uploaded ext

Require to upload extension to Chrome Web Store (first step before publish)

Required options: extensionId, apiAccess or accessToken
Require methods: requireUploadedExt()
Assets:
const uploadInfo = buildResult.getAssets().uploadedExt.getValue() Contains information about extension before and after upload upload info definition

published ext

Require to publish extension to Chrome Web Store (second step). Normally is used with requireUploadedExt(), but can be used to publish already uploaded version

Required options: extensionId, apiAccess or accessToken
Require methods: requirePublishedExt()
Assets:
const publishInfo = buildResult.getAssets().publishedExt.getValue() publish info definition

published crx file

Download published crx file from Chrome Web Store (undocumented feature). Normally is used together with requireUploadedExt() and requirePublishedExt(), but can be used separately to download crx file for extensionId specified in options.

Required options: downloadCrx.outCrxFilePath (for not temporary file), extensionId
Require methods: requirePublishedCrxFile(), requirePublishedCrxBuffer()
Assets:
const crxFilePath = buildResult.getAssets().publishedCrxFile.getValue()
const crxBuffer = buildResult.getAssets().publishedCrxBuffer.getValue()

Errors

builder.build() call can be rejected with general Error or the following specific errors if extension upload was required:

  • InvalidManifestVersionError if manifest file has invalid extension version.
  • NewerVersionAlreadyUploadedError if currently uploaded version is greater than the version in the extension manifest.
  • SameVersionAlreadyUploadedError if currently uploaded version equals to the version in the extension manifest.
  • UploadInReviewError if upload failed due to item currently in the review state.

Keywords

FAQs

Package last updated on 10 Feb 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc