GitHub - SpaceWizz1/content-scope-scripts: A collection of shared JavaScript and HTML projects that are used within our Browsers; Must have.

Project Overview

A collection of shared JavaScript and HTML projects that are used within our Browsers.

Child Projects

Injected

A library of features/protections that are executed within our browsers.

Features have a deep integration with privacy-configuration, to allow dynamic enabling or disabling of features at runtime.

Special Pages

This project contains a set of isolated JavaScript applications that end up being embedded directly into our browsers. A 'special page' can be as simple as a single-screen, or as complex as a New Tab Page.

Messaging

This project serves as an abstraction layer for seamless web-to-native and native-to-web communications, inspired by the JSON-RPC format.

The module provides three core methods: notify for fire-and-forget messages, request for asynchronous request-response interactions, and subscribe for handling push-based data updates.

Types-generator

Utilities to automatically generate TypeScript types from JSON Schema files.


NPM commands

Consider using nvm to manage node versions, after installing in the project directory run:

From the top-level root folder of this npm workspace, you can run the following npm commands:

Install dependencies:

Will install all the dependencies we need to build and run the project:

Build all workspaces:

Use this to produce the same output as a release. The build directory will be populated with various artifacts.

Tip

You can run the build command from within any sub-project too, the artifacts will always be lifted out to the root-level build folder.

Run unit tests for all workspaces:

Run integration tests for all workspaces:

Run extended integration tests for all workspaces:

Clean tree and check for changes:

Generate documentation using TypeDoc:

Generate and watch documentation using TypeDoc:

Compile TypeScript files:

Watch and compile TypeScript files:

Lint the codebase using ESLint:

Lint and automatically fix issues:

Serve integration test pages on port 3220:

Serve special pages on port 3221:

npm run serve-special-pages