chore: Update package.json description for clarity

This commit is contained in:
Mauro Balades 2024-07-06 21:17:06 +02:00
parent 1f72a1630d
commit 7cfe4aa88d
15 changed files with 184 additions and 136 deletions

View file

@ -3,7 +3,11 @@ module.exports = {
es2021: true, es2021: true,
node: true, node: true,
}, },
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:unicorn/recommended'], extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:unicorn/recommended',
],
parser: '@typescript-eslint/parser', parser: '@typescript-eslint/parser',
parserOptions: { parserOptions: {
ecmaVersion: 'latest', ecmaVersion: 'latest',
@ -12,7 +16,7 @@ module.exports = {
plugins: ['@typescript-eslint', 'unicorn'], plugins: ['@typescript-eslint', 'unicorn'],
rules: { rules: {
'unicorn/no-process-exit': 0, 'unicorn/no-process-exit': 0,
// We are currently using commonjs. If / when it becomes viable for us to // We are currently using commonjs. If / when it becomes viable for us to
// switch to ESModules, we should consider enabling this rule // switch to ESModules, we should consider enabling this rule
'unicorn/prefer-module': 0, 'unicorn/prefer-module': 0,
}, },

View file

@ -9,14 +9,14 @@
# the `language` matrix defined below to confirm you have the correct set of # the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages. # supported CodeQL languages.
# #
name: "CodeQL" name: 'CodeQL'
on: on:
push: push:
branches: [ main ] branches: [main]
pull_request: pull_request:
# The branches below must be a subset of the branches above # The branches below must be a subset of the branches above
branches: [ main ] branches: [main]
schedule: schedule:
- cron: '16 12 * * 4' - cron: '16 12 * * 4'
@ -32,39 +32,39 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
language: [ 'javascript' ] language: ['javascript']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support # Learn more about CodeQL language support at https://git.io/codeql-language-support
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v1 uses: github/codeql-action/init@v1
with: with:
languages: ${{ matrix.language }} languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file. # If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file. # By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file. # Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main # queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below) # If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v1 uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell. # Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl # 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project # and modify them (or add more) to build your code if your project
# uses a compiled language # uses a compiled language
#- run: | #- run: |
# make bootstrap # make bootstrap
# make release # make release
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1 uses: github/codeql-action/analyze@v1

View file

@ -33,4 +33,3 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
### Firefox ### Firefox
This program downloads and modifies Firefox. [Follow their license](https://hg.mozilla.org/mozilla-central/file/tip/LICENSE) when distributing your program. This program downloads and modifies Firefox. [Follow their license](https://hg.mozilla.org/mozilla-central/file/tip/LICENSE) when distributing your program.

View file

@ -1,50 +1,50 @@
+++ +++
title = "Preparing Windows" title = "Preparing Windows"
weight = 0 weight = 0
+++ +++
# Preparing Windows # Preparing Windows
Building on windows is significantly more complex than building on macos or linux. This guide will walk you through preparing your Windows machine for building a Firefox fork. Before building, you should be aware that [only Windows 10 or 11 are officially supported](https://firefox-source-docs.mozilla.org/build/buildsystem/supported-configurations.html#build-hosts), but you might be able to get other versions to work. Building on windows is significantly more complex than building on macos or linux. This guide will walk you through preparing your Windows machine for building a Firefox fork. Before building, you should be aware that [only Windows 10 or 11 are officially supported](https://firefox-source-docs.mozilla.org/build/buildsystem/supported-configurations.html#build-hosts), but you might be able to get other versions to work.
## Installing Dependencies ## Installing Dependencies
The first thing you will need to do is install Microsoft's c++ build tools. You will need to download [Build Tools for Visual Studio 2022](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022). The following will need to be installed: The first thing you will need to do is install Microsoft's c++ build tools. You will need to download [Build Tools for Visual Studio 2022](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022). The following will need to be installed:
- **In the _Workloads_ tab** - **In the _Workloads_ tab**
- Desktop development with C++ - Desktop development with C++
- **In the _Individual components_ tab** - **In the _Individual components_ tab**
- MSVC v143 - VS 2022 C++ x64/x86 build tools. - MSVC v143 - VS 2022 C++ x64/x86 build tools.
- Windows 10 SDK (at least 10.0.19041.0). - Windows 10 SDK (at least 10.0.19041.0).
- C++ ATL for v143 build tools (x86 and x64). - C++ ATL for v143 build tools (x86 and x64).
> **Note:** > **Note:**
> If this guide ever gets out of date, you can get the latest build requirements from [Mozilla's docs](https://firefox-source-docs.mozilla.org/setup/windows_build.html#system-preparation) > If this guide ever gets out of date, you can get the latest build requirements from [Mozilla's docs](https://firefox-source-docs.mozilla.org/setup/windows_build.html#system-preparation)
You will need to install [MozillaBuild](https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe). Next, [install Git](https://git-scm.com/download/win). You will need to set the following specific options on install to ensure high performance: You will need to install [MozillaBuild](https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe). Next, [install Git](https://git-scm.com/download/win). You will need to set the following specific options on install to ensure high performance:
- Configuring the line ending conversions must be: Checkout as-is, commit as-is - Configuring the line ending conversions must be: Checkout as-is, commit as-is
- Enable experimental built-in file system monitor - Enable experimental built-in file system monitor
Install [NodeJS](https://nodejs.org/en/download/current/) on your system. This should also install chocolatey. If it does not, [install it manually](https://docs.chocolatey.org/en-us/choco/setup). To install the final two dependencies, run: Install [NodeJS](https://nodejs.org/en/download/current/) on your system. This should also install chocolatey. If it does not, [install it manually](https://docs.chocolatey.org/en-us/choco/setup). To install the final two dependencies, run:
```sh ```sh
npm install --global yarn npm install --global yarn
choco install make choco install make
``` ```
You should be good to return back to the main [Getting Started docs](/getting-started/overview) You should be good to return back to the main [Getting Started docs](/getting-started/overview)
## Additional packages required for releasing ## Additional packages required for releasing
If you are creating binaries to target windows, you will need nsis (which mach calls `makensisu` for some reason, even though the binary is `makensis`): If you are creating binaries to target windows, you will need nsis (which mach calls `makensisu` for some reason, even though the binary is `makensis`):
```powershell ```powershell
choco install nsis choco install nsis
``` ```
Note that you will also have to provide a path to nsis on your system. For mine it is: Note that you will also have to provide a path to nsis on your system. For mine it is:
```sh ```sh
export MAKENSISU="C:\\Program Files (x86)\\NSIS\\Bin\\makensis.exe" export MAKENSISU="C:\\Program Files (x86)\\NSIS\\Bin\\makensis.exe"
``` ```

View file

@ -9,20 +9,20 @@
#search { #search {
width: 100%; width: 100%;
display: block; display: block;
border:none; border: none;
border-left: 1px solid $color; border-left: 1px solid $color;
padding:1px 0; padding: 1px 0;
text-align: left; text-align: left;
line-height: $baseline; line-height: $baseline;
font-size: $font-size; font-size: $font-size;
font-family:$font-family; font-family: $font-family;
color:$color; color: $color;
background:transparent; background: transparent;
} }
#search:focus { #search:focus {
outline:none; outline: none;
border:none; border: none;
} }
.search-results { .search-results {
@ -42,7 +42,6 @@
} }
&__teaser { &__teaser {
} }
} }
} }
@ -58,4 +57,4 @@
cursor: pointer; cursor: pointer;
font-size: $baseline; font-size: $baseline;
line-height: 1; line-height: 1;
} }

View file

@ -3,7 +3,8 @@
*/ */
@font-face { @font-face {
font-family: 'FabricMDL2Icons'; font-family: 'FabricMDL2Icons';
src: url('data:application/octet-stream;base64,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') format('truetype'); src: url('data:application/octet-stream;base64,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')
format('truetype');
} }
.ms-Icon { .ms-Icon {
@ -17,24 +18,59 @@
} }
// Mixins // Mixins
@mixin ms-Icon--ChevronRightSmall { content: "\E970"; } @mixin ms-Icon--ChevronRightSmall {
@mixin ms-Icon--ChromeClose { content: "\E8BB"; } content: '\E970';
@mixin ms-Icon--Copy { content: "\E8C8"; } }
@mixin ms-Icon--GlobalNavButton { content: "\E700"; } @mixin ms-Icon--ChromeClose {
@mixin ms-Icon--MiniLink { content: "\E732"; } content: '\E8BB';
@mixin ms-Icon--Page { content: "\E7C3"; } }
@mixin ms-Icon--ProductRelease { content: "\EE2E"; } @mixin ms-Icon--Copy {
@mixin ms-Icon--Save { content: "\E74E"; } content: '\E8C8';
@mixin ms-Icon--Search { content: "\E721"; } }
@mixin ms-Icon--GlobalNavButton {
content: '\E700';
}
@mixin ms-Icon--MiniLink {
content: '\E732';
}
@mixin ms-Icon--Page {
content: '\E7C3';
}
@mixin ms-Icon--ProductRelease {
content: '\EE2E';
}
@mixin ms-Icon--Save {
content: '\E74E';
}
@mixin ms-Icon--Search {
content: '\E721';
}
// Classes // Classes
.ms-Icon--ChevronRightSmall:before { @include ms-Icon--ChevronRightSmall } .ms-Icon--ChevronRightSmall:before {
.ms-Icon--ChromeClose:before { @include ms-Icon--ChromeClose } @include ms-Icon--ChevronRightSmall;
.ms-Icon--Copy:before { @include ms-Icon--Copy } }
.ms-Icon--GlobalNavButton:before { @include ms-Icon--GlobalNavButton } .ms-Icon--ChromeClose:before {
.ms-Icon--MiniLink:before { @include ms-Icon--MiniLink } @include ms-Icon--ChromeClose;
.ms-Icon--Page:before { @include ms-Icon--Page } }
.ms-Icon--ProductRelease:before { @include ms-Icon--ProductRelease } .ms-Icon--Copy:before {
.ms-Icon--Save:before { @include ms-Icon--Save } @include ms-Icon--Copy;
.ms-Icon--Search:before { @include ms-Icon--Search } }
.ms-Icon--GlobalNavButton:before {
@include ms-Icon--GlobalNavButton;
}
.ms-Icon--MiniLink:before {
@include ms-Icon--MiniLink;
}
.ms-Icon--Page:before {
@include ms-Icon--Page;
}
.ms-Icon--ProductRelease:before {
@include ms-Icon--ProductRelease;
}
.ms-Icon--Save:before {
@include ms-Icon--Save;
}
.ms-Icon--Search:before {
@include ms-Icon--Search;
}

View file

@ -1 +1 @@
&nbsp;<a class="anchor" href="#{{ id }}">&#xE732;</a> &nbsp;<a class="anchor" href="#{{ id }}">&#xE732;</a>

View file

@ -1,6 +1,6 @@
{ {
"name": "@zen-browser/surfer", "name": "@zen-browser/surfer",
"version": "1.0.0", "version": "1.0.1",
"description": "Simplifying building firefox forks!", "description": "Simplifying building firefox forks!",
"main": "index.js", "main": "index.js",
"bin": { "bin": {
@ -27,8 +27,7 @@
"firefox-fork", "firefox-fork",
"build-tool" "build-tool"
], ],
"authors": [ "authors": [],
],
"license": "MPL-2.0", "license": "MPL-2.0",
"bugs": { "bugs": {
"url": "https://github.com/zen-browser/surfer/issues" "url": "https://github.com/zen-browser/surfer/issues"

View file

@ -70,7 +70,7 @@ export const commands: Cmd[] = [
{ {
arg: '--force', arg: '--force',
description: 'Delete the engine directory if it already exists', description: 'Delete the engine directory if it already exists',
} },
], ],
requestController: async () => requestController: async () =>
(await import('./commands/download')).download, (await import('./commands/download')).download,
@ -79,8 +79,7 @@ export const commands: Cmd[] = [
cmd: 'update', cmd: 'update',
aliases: ['update-ff'], aliases: ['update-ff'],
description: 'Update Firefox to latest version.', description: 'Update Firefox to latest version.',
requestController: async () => requestController: async () => (await import('./commands/update')).update,
(await import('./commands/update')).update,
disableMiddleware: true, disableMiddleware: true,
}, },
{ {

View file

@ -4,9 +4,7 @@
import { bin_name, config } from '..' import { bin_name, config } from '..'
import { log } from '../log' import { log } from '../log'
import { import { downloadInternals } from './download/firefox'
downloadInternals
} from './download/firefox'
type Options = { type Options = {
force?: boolean force?: boolean
@ -23,7 +21,7 @@ export const download = async (options: Options): Promise<void> => {
process.exit(1) process.exit(1)
} }
await downloadInternals({version, force: options.force}) await downloadInternals({ version, force: options.force })
log.success( log.success(
`You should be ready to make changes to ${config.name}.`, `You should be ready to make changes to ${config.name}.`,

View file

@ -1,9 +1,4 @@
import { import { existsSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs'
existsSync,
readFileSync,
unlinkSync,
writeFileSync,
} from 'node:fs'
import { join } from 'node:path' import { join } from 'node:path'
import { isMatch } from 'picomatch' import { isMatch } from 'picomatch'
@ -65,8 +60,8 @@ export async function resolveAddonDownloadUrl(
`https://api.github.com/repos/${addon.repo}/releases/tags/${addon.version}`, `https://api.github.com/repos/${addon.repo}/releases/tags/${addon.version}`,
{ {
headers: { headers: {
'User-Agent': 'gluon-build -> addon downloader' 'User-Agent': 'gluon-build -> addon downloader',
} },
} }
) )

View file

@ -112,7 +112,13 @@ async function downloadFirefoxSource(version: string) {
return filename return filename
} }
export async function downloadInternals({ version, force }: { version: string, force?: boolean }) { export async function downloadInternals({
version,
force,
}: {
version: string
force?: boolean
}) {
// Provide a legible error if there is no version specified // Provide a legible error if there is no version specified
if (!version) { if (!version) {
log.error( log.error(
@ -127,7 +133,9 @@ export async function downloadInternals({ version, force }: { version: string, f
} }
// If the engine directory is empty, we should delete it. // If the engine directory is empty, we should delete it.
const engineIsEmpty = existsSync(ENGINE_DIR) && await readdir(ENGINE_DIR).then((files) => files.length === 0) const engineIsEmpty =
existsSync(ENGINE_DIR) &&
(await readdir(ENGINE_DIR).then((files) => files.length === 0))
if (engineIsEmpty) { if (engineIsEmpty) {
log.info("'engine/' is empty, it...") log.info("'engine/' is empty, it...")
rmSync(ENGINE_DIR, { recursive: true }) rmSync(ENGINE_DIR, { recursive: true })
@ -150,4 +158,4 @@ export async function downloadInternals({ version, force }: { version: string, f
config.version.version = version config.version.version = version
writeFileSync(configPath, JSON.stringify(config, undefined, 2)) writeFileSync(configPath, JSON.stringify(config, undefined, 2))
} }

View file

@ -88,7 +88,13 @@ async function writeUpdateFileToDisk(
channel: string, channel: string,
updateObject: { updateObject: {
updates: { updates: {
update: Record<string, string | number | Record<string, string | number | undefined> | undefined> update: Record<
string,
| string
| number
| Record<string, string | number | undefined>
| undefined
>
} }
} }
) { ) {

View file

@ -114,5 +114,7 @@ function cleanInput(toBeCleaned: string): string {
export function commandExistsSync(commandName: string): boolean { export function commandExistsSync(commandName: string): boolean {
const cleanedCommandName = cleanInput(commandName) const cleanedCommandName = cleanInput(commandName)
return onWindows ? commandExistsWindowsSync(commandName, cleanedCommandName) : commandExistsUnixSync(commandName, cleanedCommandName); return onWindows
? commandExistsWindowsSync(commandName, cleanedCommandName)
: commandExistsUnixSync(commandName, cleanedCommandName)
} }

View file

@ -14,7 +14,10 @@ export function stringTemplate(
// Replace only replaces the first instance of a string. We want to // Replace only replaces the first instance of a string. We want to
// replace all instances // replace all instances
while (temporary.includes(`\${${variable}}`)) { while (temporary.includes(`\${${variable}}`)) {
temporary = temporary.replace(`\${${variable}}`, variables[variable].toString()) temporary = temporary.replace(
`\${${variable}}`,
variables[variable].toString()
)
} }
} }