mirror of
https://github.com/zen-browser/www.git
synced 2025-07-07 17:05:32 +02:00
Merge pull request #650 from zen-browser/feat/pnpm
feat(pnpm): replace npm with pnpm and setup cspell
This commit is contained in:
commit
61118947f9
24 changed files with 11037 additions and 14996 deletions
|
@ -1,21 +1,21 @@
|
||||||
import { type Linter } from "eslint";
|
import { type Linter } from 'eslint'
|
||||||
|
|
||||||
import { configFiles } from "./shared";
|
import { configFiles } from './shared'
|
||||||
|
|
||||||
export const configFilesConfig: Linter.Config = {
|
export const configFilesConfig: Linter.Config = {
|
||||||
name: "eslint/config-files",
|
name: 'eslint/config-files',
|
||||||
files: configFiles,
|
files: configFiles,
|
||||||
rules: {
|
rules: {
|
||||||
"no-console": "off",
|
'no-console': 'off',
|
||||||
"@typescript-eslint/no-var-requires": "off",
|
'@typescript-eslint/no-var-requires': 'off',
|
||||||
"import/no-default-export": "off",
|
'import/no-default-export': 'off',
|
||||||
"import/default": "off", // Allow missing default exports in config files
|
'import/default': 'off', // Allow missing default exports in config files
|
||||||
"@typescript-eslint/no-unsafe-assignment": "off",
|
'@typescript-eslint/no-unsafe-assignment': 'off',
|
||||||
"@typescript-eslint/no-unsafe-member-access": "off",
|
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||||
"@typescript-eslint/no-unsafe-call": "off",
|
'@typescript-eslint/no-unsafe-call': 'off',
|
||||||
"@typescript-eslint/no-unsafe-return": "off",
|
'@typescript-eslint/no-unsafe-return': 'off',
|
||||||
"@typescript-eslint/no-unsafe-argument": "off",
|
'@typescript-eslint/no-unsafe-argument': 'off',
|
||||||
"prefer-const": "off",
|
'prefer-const': 'off',
|
||||||
"@typescript-eslint/no-explicit-any": "off",
|
'@typescript-eslint/no-explicit-any': 'off',
|
||||||
},
|
},
|
||||||
};
|
}
|
||||||
|
|
21
.eslint/cspell.ts
Normal file
21
.eslint/cspell.ts
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
import cspellPlugin from '@cspell/eslint-plugin'
|
||||||
|
import { type Linter } from 'eslint'
|
||||||
|
|
||||||
|
import cspellJson from '../cspell.json'
|
||||||
|
import { sharedFiles } from './shared'
|
||||||
|
|
||||||
|
export const cspellConfig: Linter.Config = {
|
||||||
|
name: 'eslint/cspell',
|
||||||
|
files: sharedFiles,
|
||||||
|
ignores: cspellJson.ignorePaths,
|
||||||
|
plugins: { '@cspell': cspellPlugin },
|
||||||
|
rules: {
|
||||||
|
'@cspell/spellchecker': [
|
||||||
|
'warn',
|
||||||
|
{
|
||||||
|
configFile: new URL('../cspell.json', import.meta.url).toString(),
|
||||||
|
cspell: {},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}
|
|
@ -1,14 +1,14 @@
|
||||||
import { type Linter } from "eslint";
|
import { type Linter } from 'eslint'
|
||||||
import react from "eslint-plugin-react";
|
import react from 'eslint-plugin-react'
|
||||||
import * as reactHooks from "eslint-plugin-react-hooks";
|
import * as reactHooks from 'eslint-plugin-react-hooks'
|
||||||
|
|
||||||
import { javascriptFiles, typescriptFiles } from "./shared";
|
import { javascriptFiles, typescriptFiles } from './shared'
|
||||||
|
|
||||||
export const reactConfig: Linter.Config = {
|
export const reactConfig: Linter.Config = {
|
||||||
name: "eslint/react",
|
name: 'eslint/react',
|
||||||
files: [
|
files: [
|
||||||
...typescriptFiles.filter((f) => f.includes("tsx")),
|
...typescriptFiles.filter(f => f.includes('tsx')),
|
||||||
...javascriptFiles.filter((f) => f.includes("jsx")),
|
...javascriptFiles.filter(f => f.includes('jsx')),
|
||||||
],
|
],
|
||||||
plugins: {
|
plugins: {
|
||||||
react,
|
react,
|
||||||
|
@ -16,44 +16,41 @@ export const reactConfig: Linter.Config = {
|
||||||
rules: {
|
rules: {
|
||||||
...react.configs.recommended.rules,
|
...react.configs.recommended.rules,
|
||||||
|
|
||||||
"react/react-in-jsx-scope": "off", // Not needed in React 17+
|
'react/react-in-jsx-scope': 'off', // Not needed in React 17+
|
||||||
"react/prop-types": "off", // Using TypeScript
|
'react/prop-types': 'off', // Using TypeScript
|
||||||
"react/jsx-uses-react": "off",
|
'react/jsx-uses-react': 'off',
|
||||||
"react/jsx-uses-vars": "error",
|
'react/jsx-uses-vars': 'error',
|
||||||
"react/no-unescaped-entities": "off",
|
'react/no-unescaped-entities': 'off',
|
||||||
"react/jsx-key": "error",
|
'react/jsx-key': 'error',
|
||||||
"react/jsx-no-useless-fragment": "error",
|
'react/jsx-no-useless-fragment': 'error',
|
||||||
"react/self-closing-comp": "error",
|
'react/self-closing-comp': 'error',
|
||||||
"react/jsx-boolean-value": ["error", "never"],
|
'react/jsx-boolean-value': ['error', 'never'],
|
||||||
"react/jsx-curly-brace-presence": [
|
'react/jsx-curly-brace-presence': ['error', { props: 'never', children: 'never' }],
|
||||||
"error",
|
'react/function-component-definition': [
|
||||||
{ props: "never", children: "never" },
|
'error',
|
||||||
],
|
|
||||||
"react/function-component-definition": [
|
|
||||||
"error",
|
|
||||||
{
|
{
|
||||||
namedComponents: "arrow-function",
|
namedComponents: 'arrow-function',
|
||||||
unnamedComponents: "arrow-function",
|
unnamedComponents: 'arrow-function',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
react: {
|
react: {
|
||||||
version: "18.2", // React version
|
version: '18.2', // React version
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
}
|
||||||
|
|
||||||
export const reactHooksConfig: Linter.Config = {
|
export const reactHooksConfig: Linter.Config = {
|
||||||
name: "eslint/react-hooks",
|
name: 'eslint/react-hooks',
|
||||||
files: [
|
files: [
|
||||||
...typescriptFiles.filter((f) => f.includes("tsx")),
|
...typescriptFiles.filter(f => f.includes('tsx')),
|
||||||
...javascriptFiles.filter((f) => f.includes("jsx")),
|
...javascriptFiles.filter(f => f.includes('jsx')),
|
||||||
],
|
],
|
||||||
plugins: {
|
plugins: {
|
||||||
"react-hooks": reactHooks,
|
'react-hooks': reactHooks,
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
...reactHooks.configs.recommended.rules,
|
...reactHooks.configs.recommended.rules,
|
||||||
},
|
},
|
||||||
};
|
}
|
||||||
|
|
70
.github/workflows/ci-pipeline.yml
vendored
70
.github/workflows/ci-pipeline.yml
vendored
|
@ -15,17 +15,20 @@ jobs:
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: lts/*
|
node-version: lts/*
|
||||||
|
- uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
version: 10.11.0
|
||||||
- name: Cache node_modules
|
- name: Cache node_modules
|
||||||
id: cache-deps
|
id: cache-deps
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
node_modules
|
node_modules
|
||||||
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
|
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
- name: Verify npm installation
|
- name: Verify pnpm installation
|
||||||
run: npm --version
|
run: pnpm --version
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm ci
|
run: pnpm install --frozen-lockfile
|
||||||
|
|
||||||
eslint:
|
eslint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -37,14 +40,17 @@ jobs:
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 22
|
node-version: 22
|
||||||
|
- uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
version: 10.11.0
|
||||||
- name: Restore node_modules from cache
|
- name: Restore node_modules from cache
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
node_modules
|
node_modules
|
||||||
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
|
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
- name: Run Eslint check
|
- name: Run Eslint check
|
||||||
run: npm run lint
|
run: pnpm run lint
|
||||||
|
|
||||||
prettier:
|
prettier:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -54,14 +60,37 @@ jobs:
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: lts/*
|
node-version: lts/*
|
||||||
|
- uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
version: 10.11.0
|
||||||
- name: Restore node_modules from cache
|
- name: Restore node_modules from cache
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
node_modules
|
node_modules
|
||||||
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
|
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
- name: Run Prettier check
|
- name: Run Prettier check
|
||||||
run: npm run format:check
|
run: pnpm run format:check
|
||||||
|
|
||||||
|
cspell:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: setup
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: lts/*
|
||||||
|
- uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
version: 10.11.0
|
||||||
|
- name: Restore node_modules from cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
node_modules
|
||||||
|
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
|
- name: Run cspell check
|
||||||
|
run: pnpm run spell
|
||||||
|
|
||||||
vitest:
|
vitest:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -71,14 +100,17 @@ jobs:
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: lts/*
|
node-version: lts/*
|
||||||
|
- uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
version: 10.11.0
|
||||||
- name: Restore node_modules from cache
|
- name: Restore node_modules from cache
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
node_modules
|
node_modules
|
||||||
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
|
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
- name: Run Vitest tests
|
- name: Run Vitest tests
|
||||||
run: npx vitest run
|
run: pnpm vitest run
|
||||||
|
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -88,14 +120,17 @@ jobs:
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: lts/*
|
node-version: lts/*
|
||||||
|
- uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
version: 10.11.0
|
||||||
- name: Restore node_modules from cache
|
- name: Restore node_modules from cache
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
node_modules
|
node_modules
|
||||||
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
|
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
- name: Build project
|
- name: Build project
|
||||||
run: npm run build
|
run: pnpm run build
|
||||||
- name: Upload build output
|
- name: Upload build output
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
@ -113,20 +148,23 @@ jobs:
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: lts/*
|
node-version: lts/*
|
||||||
|
- uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
version: 10.11.0
|
||||||
- name: Restore node_modules from cache
|
- name: Restore node_modules from cache
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
node_modules
|
node_modules
|
||||||
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
|
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm ci
|
run: pnpm install --frozen-lockfile
|
||||||
- name: Install Playwright Browsers
|
- name: Install Playwright Browsers
|
||||||
run: npx playwright install --with-deps
|
run: pnpm exec playwright install --with-deps
|
||||||
- name: Download build output
|
- name: Download build output
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: build
|
name: build
|
||||||
path: dist
|
path: dist
|
||||||
- name: Run Playwright tests
|
- name: Run Playwright tests
|
||||||
run: npx playwright test
|
run: pnpm run test:playwright
|
||||||
|
|
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -29,4 +29,7 @@ npm-debug.log*
|
||||||
/blob-report/
|
/blob-report/
|
||||||
/playwright/.cache/
|
/playwright/.cache/
|
||||||
|
|
||||||
/coverage
|
/coverage
|
||||||
|
|
||||||
|
# cache
|
||||||
|
.eslintcache
|
|
@ -1 +0,0 @@
|
||||||
npx lint-staged
|
|
|
@ -45,3 +45,9 @@ wrangler.toml
|
||||||
public/fonts/
|
public/fonts/
|
||||||
public/favicon.ico
|
public/favicon.ico
|
||||||
public/favicon.svg
|
public/favicon.svg
|
||||||
|
|
||||||
|
# GitHub Markdown files
|
||||||
|
.github/ISSUE_TEMPLATE/
|
||||||
|
.github/PULL_REQUEST_TEMPLATE/
|
||||||
|
CONTRIBUTING.md
|
||||||
|
README.md
|
|
@ -28,8 +28,8 @@ git checkout -b <BRANCH_NAME>
|
||||||
5. Start the development environment.
|
5. Start the development environment.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install # or your favorite package manager
|
pnpm install
|
||||||
npm run dev
|
pnpm dev
|
||||||
```
|
```
|
||||||
|
|
||||||
6. Make your changes.
|
6. Make your changes.
|
||||||
|
@ -38,7 +38,7 @@ npm run dev
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git add .
|
git add .
|
||||||
git commit -m "Your commit message"
|
git commit -m "feat: add new feature description"
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
|
@ -53,7 +53,7 @@ Commits must be signed. You can learn more about [Commit Signing][] here.
|
||||||
### Commit Message Guidelines
|
### Commit Message Guidelines
|
||||||
|
|
||||||
- Commit messages must include a "type" as described in Conventional Commits
|
- Commit messages must include a "type" as described in Conventional Commits
|
||||||
- Commit messages **must** start with a capital letter
|
- Commit messages **must** start with a lowercase letter
|
||||||
- Commit messages **must not** end with a period `.`
|
- Commit messages **must not** end with a period `.`
|
||||||
- Commit messages **must** be in English _sorry for the constraint_
|
- Commit messages **must** be in English _sorry for the constraint_
|
||||||
|
|
||||||
|
|
30
commitlint.config.js
Normal file
30
commitlint.config.js
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
/**
|
||||||
|
* @type {import('@commitlint/types').UserConfig}
|
||||||
|
*/
|
||||||
|
export default {
|
||||||
|
extends: ['@commitlint/config-conventional'],
|
||||||
|
rules: {
|
||||||
|
// Customize rules as needed
|
||||||
|
'type-enum': [
|
||||||
|
2,
|
||||||
|
'always',
|
||||||
|
[
|
||||||
|
'build',
|
||||||
|
'chore',
|
||||||
|
'ci',
|
||||||
|
'docs',
|
||||||
|
'feat',
|
||||||
|
'fix',
|
||||||
|
'perf',
|
||||||
|
'refactor',
|
||||||
|
'revert',
|
||||||
|
'style',
|
||||||
|
'test',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'subject-case': [2, 'never', ['pascal-case', 'upper-case']],
|
||||||
|
'subject-max-length': [2, 'always', 100],
|
||||||
|
'body-max-line-length': [2, 'always', 100],
|
||||||
|
'footer-max-line-length': [2, 'always', 100],
|
||||||
|
},
|
||||||
|
}
|
81
cspell.json
Normal file
81
cspell.json
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json",
|
||||||
|
"language": "en",
|
||||||
|
"files": ["**/*.{ts,js,astro,html,css,json,yml,yaml,md}"],
|
||||||
|
"words": [
|
||||||
|
"createdDefault",
|
||||||
|
"createdAsc",
|
||||||
|
"createdDesc",
|
||||||
|
"updatedDefault",
|
||||||
|
"updatedAsc",
|
||||||
|
"updatedDesc",
|
||||||
|
"Astronav",
|
||||||
|
"tuta",
|
||||||
|
"junicode",
|
||||||
|
"cfasync",
|
||||||
|
"Junicode",
|
||||||
|
"Galdámez",
|
||||||
|
"García",
|
||||||
|
"brhm",
|
||||||
|
"Brhm",
|
||||||
|
"kristijanribaric",
|
||||||
|
"Ribaric",
|
||||||
|
"larvey",
|
||||||
|
"Larvey",
|
||||||
|
"taroj",
|
||||||
|
"Jokagi",
|
||||||
|
"jace",
|
||||||
|
"Jace",
|
||||||
|
"canoa",
|
||||||
|
"Canoa",
|
||||||
|
"itro",
|
||||||
|
"jafeth",
|
||||||
|
"Jafeth",
|
||||||
|
"Garro",
|
||||||
|
"XPCOM",
|
||||||
|
"zsync",
|
||||||
|
"flatpaks",
|
||||||
|
"Nehalem",
|
||||||
|
"VAAPI",
|
||||||
|
"FMPEG",
|
||||||
|
"AMOLED",
|
||||||
|
"jank",
|
||||||
|
"mfsa",
|
||||||
|
"OCSP",
|
||||||
|
"unfloatable",
|
||||||
|
"laggy",
|
||||||
|
"NSIS",
|
||||||
|
"wmfcdm",
|
||||||
|
"unfocusing",
|
||||||
|
"Briel",
|
||||||
|
"Otero",
|
||||||
|
"Pdzly",
|
||||||
|
"ferrocyante"
|
||||||
|
],
|
||||||
|
"flagWords": [],
|
||||||
|
"ignorePaths": [
|
||||||
|
"node_modules/**",
|
||||||
|
".git/**",
|
||||||
|
"dist/**",
|
||||||
|
"build/**",
|
||||||
|
".astro/**",
|
||||||
|
"coverage/**",
|
||||||
|
"playwright-report/**",
|
||||||
|
"test-results/**",
|
||||||
|
"*.min.js",
|
||||||
|
"*.bundle.js",
|
||||||
|
"package-lock.json",
|
||||||
|
"yarn.lock",
|
||||||
|
"pnpm-lock.yaml"
|
||||||
|
],
|
||||||
|
"allowCompoundWords": true,
|
||||||
|
"dictionaries": ["typescript", "node", "html", "css", "bash", "npm"],
|
||||||
|
"import": [
|
||||||
|
"@cspell/dict-typescript/cspell-ext.json",
|
||||||
|
"@cspell/dict-node/cspell-ext.json",
|
||||||
|
"@cspell/dict-html/cspell-ext.json",
|
||||||
|
"@cspell/dict-css/cspell-ext.json",
|
||||||
|
"@cspell/dict-bash/cspell-ext.json",
|
||||||
|
"@cspell/dict-npm/cspell-ext.json"
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,64 +1,64 @@
|
||||||
import { dirname, resolve } from "node:path";
|
import { dirname, resolve } from 'node:path'
|
||||||
import { fileURLToPath } from "node:url";
|
import { fileURLToPath } from 'node:url'
|
||||||
|
|
||||||
import { includeIgnoreFile } from "@eslint/compat";
|
import { includeIgnoreFile } from '@eslint/compat'
|
||||||
import { type TSESLint } from "@typescript-eslint/utils";
|
import { type TSESLint } from '@typescript-eslint/utils'
|
||||||
import prettierConfig from "eslint-config-prettier";
|
import prettierConfig from 'eslint-config-prettier'
|
||||||
import astro from "eslint-plugin-astro";
|
import astro from 'eslint-plugin-astro'
|
||||||
import tseslint, { configs } from "typescript-eslint";
|
import tseslint, { configs } from 'typescript-eslint'
|
||||||
|
|
||||||
// Import modular configurations
|
// Import modular configurations
|
||||||
import { astroConfig } from "./.eslint/astro";
|
import { astroConfig } from './.eslint/astro'
|
||||||
import { baseConfig } from "./.eslint/base";
|
import { baseConfig } from './.eslint/base'
|
||||||
import { configFilesConfig } from "./.eslint/config-files";
|
import { configFilesConfig } from './.eslint/config-files'
|
||||||
import { importConfigArray } from "./.eslint/import";
|
import { cspellConfig } from './.eslint/cspell'
|
||||||
import { javascriptConfig } from "./.eslint/javascript";
|
import { importConfigArray } from './.eslint/import'
|
||||||
import { jsxA11yConfig } from "./.eslint/jsx-a11y";
|
import { javascriptConfig } from './.eslint/javascript'
|
||||||
import { reactConfig, reactHooksConfig } from "./.eslint/react";
|
import { jsxA11yConfig } from './.eslint/jsx-a11y'
|
||||||
import { testConfig } from "./.eslint/test";
|
import { reactConfig, reactHooksConfig } from './.eslint/react'
|
||||||
import { createTypescriptConfig } from "./.eslint/typescript";
|
import { testConfig } from './.eslint/test'
|
||||||
|
import { createTypescriptConfig } from './.eslint/typescript'
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url)
|
||||||
const __dirname = dirname(__filename);
|
const __dirname = dirname(__filename)
|
||||||
|
|
||||||
const tsConfigPath = resolve(__dirname, "./tsconfig.json");
|
const tsConfigPath = resolve(__dirname, './tsconfig.json')
|
||||||
|
|
||||||
const ignoresConfig = {
|
const ignoresConfig = {
|
||||||
name: "eslint/ignores",
|
name: 'eslint/ignores',
|
||||||
ignores: [
|
ignores: [
|
||||||
// Build outputs
|
// Build outputs
|
||||||
"**/dist/**",
|
'**/dist/**',
|
||||||
"**/build/**",
|
'**/build/**',
|
||||||
"**/.astro/**",
|
'**/.astro/**',
|
||||||
"**/node_modules/**",
|
'**/node_modules/**',
|
||||||
|
|
||||||
// Test outputs
|
// Test outputs
|
||||||
"**/coverage/**",
|
'**/coverage/**',
|
||||||
"**/playwright-report/**",
|
'**/playwright-report/**',
|
||||||
"**/test-results/**",
|
'**/test-results/**',
|
||||||
|
|
||||||
// Config files that don't need linting
|
// Config files that don't need linting
|
||||||
"**/*.config.js",
|
'**/*.config.js',
|
||||||
"**/*.config.mjs",
|
'**/*.config.mjs',
|
||||||
"**/wrangler.toml",
|
'**/wrangler.toml',
|
||||||
|
|
||||||
// Other common ignores
|
// Other common ignores
|
||||||
"**/.next/**",
|
'**/.next/**',
|
||||||
"**/.nuxt/**",
|
'**/.output/**',
|
||||||
"**/.output/**",
|
'**/.vercel/**',
|
||||||
"**/.vercel/**",
|
'**/.netlify/**',
|
||||||
"**/.netlify/**",
|
'**/public/**',
|
||||||
"**/public/**",
|
'**/*.min.js',
|
||||||
"**/*.min.js",
|
'**/*.d.ts',
|
||||||
"**/*.d.ts",
|
'**/CHANGELOG.md',
|
||||||
"**/CHANGELOG.md",
|
'**/README.md',
|
||||||
"**/README.md",
|
|
||||||
],
|
],
|
||||||
} satisfies TSESLint.FlatConfig.Config;
|
} satisfies TSESLint.FlatConfig.Config
|
||||||
|
|
||||||
const config: TSESLint.FlatConfig.ConfigArray = tseslint.config(
|
const config: TSESLint.FlatConfig.ConfigArray = tseslint.config(
|
||||||
// Include .gitignore patterns
|
// Include .gitignore patterns
|
||||||
includeIgnoreFile(resolve(__dirname, ".gitignore")),
|
includeIgnoreFile(resolve(__dirname, '.gitignore')),
|
||||||
|
|
||||||
// Core configurations
|
// Core configurations
|
||||||
ignoresConfig,
|
ignoresConfig,
|
||||||
|
@ -87,8 +87,11 @@ const config: TSESLint.FlatConfig.ConfigArray = tseslint.config(
|
||||||
testConfig,
|
testConfig,
|
||||||
configFilesConfig,
|
configFilesConfig,
|
||||||
|
|
||||||
// Prettier integration (must be last)
|
// Spell checking
|
||||||
prettierConfig,
|
cspellConfig,
|
||||||
);
|
|
||||||
|
|
||||||
export default config;
|
// Prettier integration (must be last)
|
||||||
|
prettierConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
export default config
|
||||||
|
|
82
lefthook.yaml
Normal file
82
lefthook.yaml
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
pre-commit:
|
||||||
|
piped: true
|
||||||
|
commands:
|
||||||
|
prettier:
|
||||||
|
priority: 1
|
||||||
|
glob: "*.{js,cjs,mjs,jsx,ts,cts,mts,tsx,d.ts,md,mdx,yaml,yml,json,html,css,astro}"
|
||||||
|
run: |
|
||||||
|
pnpm prettier {staged_files} --write
|
||||||
|
stage_fixed: true
|
||||||
|
|
||||||
|
eslint:
|
||||||
|
priority: 2
|
||||||
|
run: |
|
||||||
|
pnpm lefthook run eslint
|
||||||
|
|
||||||
|
cspell:
|
||||||
|
priority: 3
|
||||||
|
run: |
|
||||||
|
pnpm lefthook run cspell
|
||||||
|
|
||||||
|
eslint:
|
||||||
|
parallel: true
|
||||||
|
commands:
|
||||||
|
base:
|
||||||
|
glob: "*.{js,cjs,mjs,jsx,ts,cts,mts,tsx,d.ts,astro}"
|
||||||
|
exclude:
|
||||||
|
- public/**
|
||||||
|
- dist/**
|
||||||
|
- playwright-report/**
|
||||||
|
- test-results/**
|
||||||
|
run: |
|
||||||
|
pnpm eslint {staged_files} --max-warnings=0 --fix --cache
|
||||||
|
stage_fixed: true
|
||||||
|
|
||||||
|
src:
|
||||||
|
root: src/
|
||||||
|
glob: "*.{js,cjs,mjs,jsx,ts,cts,mts,tsx,d.ts,astro}"
|
||||||
|
run: |
|
||||||
|
pnpm eslint {staged_files} --max-warnings=0 --fix --cache
|
||||||
|
stage_fixed: true
|
||||||
|
|
||||||
|
scripts:
|
||||||
|
root: scripts/
|
||||||
|
glob: "*.{js,ts,py}"
|
||||||
|
run: |
|
||||||
|
pnpm eslint {staged_files} --max-warnings=0 --fix --cache
|
||||||
|
stage_fixed: true
|
||||||
|
|
||||||
|
cspell:
|
||||||
|
parallel: true
|
||||||
|
commands:
|
||||||
|
base:
|
||||||
|
glob: "*.{js,cjs,mjs,jsx,ts,cts,mts,tsx,d.ts,astro,json,yaml,yml,md,mdx}"
|
||||||
|
run: |
|
||||||
|
pnpm cspell {staged_files}
|
||||||
|
stage_fixed: true
|
||||||
|
|
||||||
|
src:
|
||||||
|
root: src/
|
||||||
|
glob: "*.{js,cjs,mjs,jsx,ts,cts,mts,tsx,d.ts,astro,json,yaml,yml,md,mdx}"
|
||||||
|
run: |
|
||||||
|
pnpm cspell {staged_files}
|
||||||
|
stage_fixed: true
|
||||||
|
|
||||||
|
scripts:
|
||||||
|
root: scripts/
|
||||||
|
glob: "*.{js,cjs,mjs,jsx,ts,cts,mts,tsx,d.ts,json,yaml,yml,md,mdx}"
|
||||||
|
run: |
|
||||||
|
pnpm cspell {staged_files}
|
||||||
|
stage_fixed: true
|
||||||
|
|
||||||
|
commit-msg:
|
||||||
|
commands:
|
||||||
|
commitlint:
|
||||||
|
run: |
|
||||||
|
pnpm commitlint --edit {1}
|
||||||
|
|
||||||
|
post-merge:
|
||||||
|
commands:
|
||||||
|
pnpm:
|
||||||
|
glob: "{package.json,pnpm-lock.yaml}"
|
||||||
|
run: pnpm install
|
14791
package-lock.json
generated
14791
package-lock.json
generated
File diff suppressed because it is too large
Load diff
49
package.json
49
package.json
|
@ -2,6 +2,10 @@
|
||||||
"name": "www",
|
"name": "www",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
|
"engines": {
|
||||||
|
"pnpm": "^10.0.0"
|
||||||
|
},
|
||||||
|
"packageManager": "pnpm@10.11.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "astro dev --port 3000",
|
"dev": "astro dev --port 3000",
|
||||||
"start": "astro preview --port 3000",
|
"start": "astro preview --port 3000",
|
||||||
|
@ -9,14 +13,16 @@
|
||||||
"preview": "astro preview --port 3000",
|
"preview": "astro preview --port 3000",
|
||||||
"wrangler": "wrangler",
|
"wrangler": "wrangler",
|
||||||
"astro": "astro",
|
"astro": "astro",
|
||||||
"lint": "eslint ./src --ext .js,.jsx,.ts,.tsx,.astro",
|
"lint": "eslint . --max-warnings=0 --cache",
|
||||||
"lint:fix": "eslint ./src --ext .js,.jsx,.ts,.tsx,.astro --fix",
|
"lint:fix": "eslint . --fix",
|
||||||
"format": "prettier --write ./src",
|
"spell": "cspell \"src/**/*.{ts,tsx,js,jsx,astro,md,json,yml,yaml}\"",
|
||||||
"format:check": "prettier --check ./src",
|
"format": "prettier --write .",
|
||||||
"prepare": "husky",
|
"format:check": "prettier --check . --cache",
|
||||||
"test": "npx vitest run",
|
"commitlint": "commitlint --edit",
|
||||||
"test:coverage": "npx vitest --coverage",
|
"test": "vitest run",
|
||||||
"test:playwright": "npx playwright test --reporter=list"
|
"test:coverage": "vitest --coverage",
|
||||||
|
"test:playwright": "playwright test --reporter=list",
|
||||||
|
"prepare": "lefthook install"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/check": "0.9.4",
|
"@astrojs/check": "0.9.4",
|
||||||
|
@ -37,6 +43,8 @@
|
||||||
"clsx": "2.1.1",
|
"clsx": "2.1.1",
|
||||||
"date-fns": "4.1.0",
|
"date-fns": "4.1.0",
|
||||||
"free-astro-components": "1.2.0",
|
"free-astro-components": "1.2.0",
|
||||||
|
"jiti": "^2.4.2",
|
||||||
|
"lefthook": "^1.11.13",
|
||||||
"motion": "^12.15.0",
|
"motion": "^12.15.0",
|
||||||
"postcss": "8.5.1",
|
"postcss": "8.5.1",
|
||||||
"react": "^19.1.0",
|
"react": "^19.1.0",
|
||||||
|
@ -47,6 +55,15 @@
|
||||||
"typescript": "5.6.3"
|
"typescript": "5.6.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@commitlint/cli": "^19.8.1",
|
||||||
|
"@commitlint/config-conventional": "^19.8.1",
|
||||||
|
"@cspell/dict-bash": "^4.2.0",
|
||||||
|
"@cspell/dict-css": "^4.0.17",
|
||||||
|
"@cspell/dict-html": "^4.0.11",
|
||||||
|
"@cspell/dict-node": "^5.0.7",
|
||||||
|
"@cspell/dict-npm": "^5.2.4",
|
||||||
|
"@cspell/dict-typescript": "^3.2.1",
|
||||||
|
"@cspell/eslint-plugin": "^9.0.2",
|
||||||
"@eslint/compat": "1.2.9",
|
"@eslint/compat": "1.2.9",
|
||||||
"@eslint/eslintrc": "3.3.1",
|
"@eslint/eslintrc": "3.3.1",
|
||||||
"@eslint/js": "9.27.0",
|
"@eslint/js": "9.27.0",
|
||||||
|
@ -60,17 +77,17 @@
|
||||||
"@typescript-eslint/parser": "8.33.0",
|
"@typescript-eslint/parser": "8.33.0",
|
||||||
"@typescript-eslint/utils": "8.33.0",
|
"@typescript-eslint/utils": "8.33.0",
|
||||||
"@vitest/coverage-istanbul": "3.1.3",
|
"@vitest/coverage-istanbul": "3.1.3",
|
||||||
|
"cspell": "^9.0.2",
|
||||||
"eslint": "9.27.0",
|
"eslint": "9.27.0",
|
||||||
"eslint-config-prettier": "10.1.5",
|
"eslint-config-prettier": "10.1.5",
|
||||||
"eslint-import-resolver-typescript": "4.4.1",
|
"eslint-import-resolver-typescript": "4.4.1",
|
||||||
"eslint-plugin-astro": "1.3.1",
|
"eslint-plugin-astro": "1.3.1",
|
||||||
"eslint-plugin-import": "2.31.0",
|
"eslint-plugin-import": "2.31.0",
|
||||||
|
"eslint-plugin-jsonc": "^2.20.1",
|
||||||
"eslint-plugin-jsx-a11y": "6.10.2",
|
"eslint-plugin-jsx-a11y": "6.10.2",
|
||||||
"eslint-plugin-react": "7.37.5",
|
"eslint-plugin-react": "7.37.5",
|
||||||
"eslint-plugin-react-hooks": "5.2.0",
|
"eslint-plugin-react-hooks": "5.2.0",
|
||||||
"husky": "9.1.7",
|
|
||||||
"jsdom": "26.1.0",
|
"jsdom": "26.1.0",
|
||||||
"lint-staged": "15.2.7",
|
|
||||||
"prettier": "3.5.3",
|
"prettier": "3.5.3",
|
||||||
"prettier-plugin-astro": "0.14.1",
|
"prettier-plugin-astro": "0.14.1",
|
||||||
"prettier-plugin-tailwindcss": "^0.6.11",
|
"prettier-plugin-tailwindcss": "^0.6.11",
|
||||||
|
@ -78,17 +95,5 @@
|
||||||
"vite-tsconfig-paths": "5.1.4",
|
"vite-tsconfig-paths": "5.1.4",
|
||||||
"vitest": "3.1.3",
|
"vitest": "3.1.3",
|
||||||
"wrangler": "4.17.0"
|
"wrangler": "4.17.0"
|
||||||
},
|
|
||||||
"overrides": {
|
|
||||||
"jiti": "2.4.2"
|
|
||||||
},
|
|
||||||
"lint-staged": {
|
|
||||||
"src/**/*.{ts,tsx,astro,js,jsx}": [
|
|
||||||
"eslint --fix",
|
|
||||||
"prettier --write"
|
|
||||||
],
|
|
||||||
"src/**/*.{json,md,css}": [
|
|
||||||
"prettier --write"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
10569
pnpm-lock.yaml
generated
Normal file
10569
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load diff
2
pnpm-workspace.yaml
Normal file
2
pnpm-workspace.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
onlyBuiltDependencies:
|
||||||
|
- lefthook
|
|
@ -8,36 +8,36 @@ export default {
|
||||||
useTabs: false,
|
useTabs: false,
|
||||||
semi: false,
|
semi: false,
|
||||||
singleQuote: true,
|
singleQuote: true,
|
||||||
quoteProps: "as-needed",
|
quoteProps: 'as-needed',
|
||||||
trailingComma: "es5",
|
trailingComma: 'es5',
|
||||||
bracketSpacing: true,
|
bracketSpacing: true,
|
||||||
bracketSameLine: false,
|
bracketSameLine: false,
|
||||||
arrowParens: "avoid",
|
arrowParens: 'avoid',
|
||||||
|
|
||||||
// Language-specific formatting
|
// Language-specific formatting
|
||||||
overrides: [
|
overrides: [
|
||||||
{
|
{
|
||||||
files: "*.astro",
|
files: '*.astro',
|
||||||
options: {
|
options: {
|
||||||
parser: "astro",
|
parser: 'astro',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
files: ["*.json", "*.jsonc"],
|
files: ['*.json', '*.jsonc'],
|
||||||
options: {
|
options: {
|
||||||
trailingComma: "none",
|
trailingComma: 'none',
|
||||||
singleQuote: false,
|
singleQuote: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
files: ["*.md", "*.mdx"],
|
files: ['*.md', '*.mdx'],
|
||||||
options: {
|
options: {
|
||||||
printWidth: 80,
|
printWidth: 80,
|
||||||
proseWrap: "never",
|
proseWrap: 'never',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
files: ["*.yml", "*.yaml"],
|
files: ['*.yml', '*.yaml'],
|
||||||
options: {
|
options: {
|
||||||
singleQuote: false,
|
singleQuote: false,
|
||||||
},
|
},
|
||||||
|
@ -46,13 +46,13 @@ export default {
|
||||||
|
|
||||||
// Plugins
|
// Plugins
|
||||||
plugins: [
|
plugins: [
|
||||||
"prettier-plugin-astro",
|
'prettier-plugin-astro',
|
||||||
"prettier-plugin-tailwindcss", // Must be last
|
'prettier-plugin-tailwindcss', // Must be last
|
||||||
],
|
],
|
||||||
|
|
||||||
// Plugin-specific options
|
// Plugin-specific options
|
||||||
tailwindFunctions: ["clsx", "cn", "twMerge"],
|
tailwindFunctions: ['clsx', 'cn', 'twMerge'],
|
||||||
|
|
||||||
// Astro-specific options
|
// Astro-specific options
|
||||||
astroAllowShorthand: false,
|
astroAllowShorthand: false,
|
||||||
};
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
"guid": "licenses-and-hosting",
|
"guid": "licenses-and-hosting",
|
||||||
"status": "active",
|
"status": "active",
|
||||||
"name": "Licenses and hosting",
|
"name": "Licenses and hosting",
|
||||||
"description": "Help me pay for the licenses and hosting of the project. This includes self-hosting build servers, cloudflare services, and software lienses.",
|
"description": "Help me pay for the licenses and hosting of the project. This includes self-hosting build servers, cloudflare services, and software licenses.",
|
||||||
"amount": 420,
|
"amount": 420,
|
||||||
"currency": "EUR",
|
"currency": "EUR",
|
||||||
"frequency": "yearly",
|
"frequency": "yearly",
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
"extends": [
|
"extends": ["config:recommended", ":semanticCommits", "config:js-app"],
|
||||||
"config:recommended",
|
|
||||||
":semanticCommits",
|
|
||||||
"config:js-app"
|
|
||||||
],
|
|
||||||
"timezone": "UTC",
|
"timezone": "UTC",
|
||||||
"schedule": ["before 9am on Monday"],
|
"schedule": ["before 9am on Monday"],
|
||||||
"labels": ["dependencies"],
|
"labels": ["dependencies"],
|
||||||
|
|
|
@ -280,7 +280,7 @@ const descriptions = Object.values(features.featureTabs).map(tab => tab.descript
|
||||||
transform: translate3d(-50%, 0, -100px) scale(0.95);
|
transform: translate3d(-50%, 0, -100px) scale(0.95);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Dont animate translation on small screens */
|
/* Don't animate translation on small screens */
|
||||||
@media (max-width: 1024px) {
|
@media (max-width: 1024px) {
|
||||||
.feature-video {
|
.feature-video {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -148,7 +148,7 @@ const locale = getLocale(Astro)
|
||||||
font-optical-sizing: auto;
|
font-optical-sizing: auto;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-variation-settings: 'wdth' 100;
|
font-variation-settings: 'width' 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 .italic {
|
h1 .italic {
|
||||||
|
|
|
@ -189,7 +189,7 @@ const platformDescriptions = download.platformDescriptions
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Security Notice -->
|
<!-- Security Notice -->
|
||||||
<div class="bg-opaicty-10 grid grid-cols-[auto,1fr] gap-4 rounded-2xl bg-subtle p-6">
|
<div class="grid grid-cols-[auto,1fr] gap-4 rounded-2xl bg-subtle bg-opacity-10 p-6">
|
||||||
<div class="h-fit rounded-xl bg-subtle p-3">
|
<div class="h-fit rounded-xl bg-subtle p-3">
|
||||||
<LockIcon class="h-5 w-5" />
|
<LockIcon class="h-5 w-5" />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
"version": "1.0.0-a.2",
|
"version": "1.0.0-a.2",
|
||||||
"date": "12/07/2024",
|
"date": "12/07/2024",
|
||||||
"extra": "This release is the second alpha release of the 1.0.0-alpha series. It includes a lot of bug fixes and improvements given the feedback we received from the first alpha release. This release is still not considered stable, but it's a big step towards the first stable release.",
|
"extra": "This release is the second alpha release of the 1.0.0-alpha series. It includes a lot of bug fixes and improvements given the feedback we received from the first alpha release. This release is still not considered stable, but it's a big step towards the first stable release.",
|
||||||
"features": ["Added support for macOS aaarch64!", "Some performance improvements"],
|
"features": ["Added support for macOS aarch64!", "Some performance improvements"],
|
||||||
"fixes": [
|
"fixes": [
|
||||||
{
|
{
|
||||||
"description": "Fixed rounded corners of browser views for some websites",
|
"description": "Fixed rounded corners of browser views for some websites",
|
||||||
|
@ -231,7 +231,7 @@
|
||||||
"Added support for the latest version of Firefox (128.0.3).",
|
"Added support for the latest version of Firefox (128.0.3).",
|
||||||
"Improved the compact view mode",
|
"Improved the compact view mode",
|
||||||
"New logo for the browser!",
|
"New logo for the browser!",
|
||||||
"Imrpoved speed of the browser"
|
"Improved speed of the browser"
|
||||||
],
|
],
|
||||||
"fixes": [
|
"fixes": [
|
||||||
{
|
{
|
||||||
|
@ -259,7 +259,7 @@
|
||||||
{
|
{
|
||||||
"version": "1.0.0-a.11",
|
"version": "1.0.0-a.11",
|
||||||
"date": "02/08/2024",
|
"date": "02/08/2024",
|
||||||
"extra": "This release is the eleventh alpha release of the 1.0.0-alpha series.\n\nWe skipped some releases because we were working on some big features and improvements. This release includes some big performance improvements and support for other platforms.\n\nHopefuly things will get a bit more stable from now on.",
|
"extra": "This release is the eleventh alpha release of the 1.0.0-alpha series.\n\nWe skipped some releases because we were working on some big features and improvements. This release includes some big performance improvements and support for other platforms.\n\nHopefully things will get a bit more stable from now on.",
|
||||||
"features": [
|
"features": [
|
||||||
"Added support for Windows Generic CPUs",
|
"Added support for Windows Generic CPUs",
|
||||||
"Added support for Linux Generic CPUs",
|
"Added support for Linux Generic CPUs",
|
||||||
|
@ -315,7 +315,7 @@
|
||||||
"New compact mode design, it's much better now",
|
"New compact mode design, it's much better now",
|
||||||
"Reduced CPU requirements for MacOS Intel CPUs",
|
"Reduced CPU requirements for MacOS Intel CPUs",
|
||||||
"Reduced blur for floating URL bar",
|
"Reduced blur for floating URL bar",
|
||||||
"Allow the sidebar to be wider, customisable in about:config"
|
"Allow the sidebar to be wider, customizable in about:config"
|
||||||
],
|
],
|
||||||
"fixes": [
|
"fixes": [
|
||||||
{
|
{
|
||||||
|
@ -567,7 +567,7 @@
|
||||||
"issue": 414
|
"issue": 414
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "The treshhold for the expanded tab sidebar in compact mode is too high",
|
"description": "The threshold for the expanded tab sidebar in compact mode is too high",
|
||||||
"issue": 389
|
"issue": 389
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -732,7 +732,7 @@
|
||||||
"version": "1.0.1-a",
|
"version": "1.0.1-a",
|
||||||
"date": "15/09/2024",
|
"date": "15/09/2024",
|
||||||
"workflowId": 10911842349,
|
"workflowId": 10911842349,
|
||||||
"extra": "This version marks a more stable alpha release.\n\nThis release brings a few improvements to the UI and some important quality of life features for workspaces, such as separate pinned tabs, custom icons and assigned tab conainers!\n\nWe've also added a new AppImage installer for Linux users and started signing our Windows builds with a verified digital signature, making Windows Defender and other antivirus software less annoying!\n\nAlso, we've made the browser's layout more stable for mods, improved overal UX and added an a better theme support (Now called Zen Mods)!",
|
"extra": "This version marks a more stable alpha release.\n\nThis release brings a few improvements to the UI and some important quality of life features for workspaces, such as separate pinned tabs, custom icons and assigned tab containers!\n\nWe've also added a new AppImage installer for Linux users and started signing our Windows builds with a verified digital signature, making Windows Defender and other antivirus software less annoying!\n\nAlso, we've made the browser's layout more stable for mods, improved overall UX and added an a better theme support (Now called Zen Mods)!",
|
||||||
"features": [
|
"features": [
|
||||||
"Added verified digital signature to Windows builds",
|
"Added verified digital signature to Windows builds",
|
||||||
"Added Zen to Homebrew Cask repository",
|
"Added Zen to Homebrew Cask repository",
|
||||||
|
@ -844,7 +844,7 @@
|
||||||
"Compact mode now stays open for a longer time if the mouse exits the app",
|
"Compact mode now stays open for a longer time if the mouse exits the app",
|
||||||
"MacOS buttons will now be at the left side of the toolbar",
|
"MacOS buttons will now be at the left side of the toolbar",
|
||||||
"Updated to the latest version of Firefox (130.0.1)",
|
"Updated to the latest version of Firefox (130.0.1)",
|
||||||
"Added a way to modify compact mode behavior from right clickin the tab bar",
|
"Added a way to modify compact mode behavior from right clicking the tab bar",
|
||||||
"No paddings or borders will be shown when in fullscreen no more",
|
"No paddings or borders will be shown when in fullscreen no more",
|
||||||
"Applied a more consistent design for the tab bar",
|
"Applied a more consistent design for the tab bar",
|
||||||
"Correctly signed the Windows updater"
|
"Correctly signed the Windows updater"
|
||||||
|
@ -852,7 +852,7 @@
|
||||||
"fixes": [
|
"fixes": [
|
||||||
{
|
{
|
||||||
"description": "Can't split tab, if one of the tabs has been previously split",
|
"description": "Can't split tab, if one of the tabs has been previously split",
|
||||||
"isse": 1592
|
"issue": 1592
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Exit button padding is not correct",
|
"description": "Exit button padding is not correct",
|
||||||
|
@ -957,7 +957,7 @@
|
||||||
],
|
],
|
||||||
"themeChanges": ["Toggle inputs will not use the themed tertiary color"],
|
"themeChanges": ["Toggle inputs will not use the themed tertiary color"],
|
||||||
"breakingChanges": [
|
"breakingChanges": [
|
||||||
"The keyboard shortcuts will be overriden by the defaults ones in this update"
|
"The keyboard shortcuts will be overridden by the defaults ones in this update"
|
||||||
],
|
],
|
||||||
"fixes": [
|
"fixes": [
|
||||||
{
|
{
|
||||||
|
@ -1061,7 +1061,7 @@
|
||||||
"Added a new feature to save the pinned state of tabs in the session store, allowing for better tab management across sessions",
|
"Added a new feature to save the pinned state of tabs in the session store, allowing for better tab management across sessions",
|
||||||
"Reduced the vertical tab toolbox width to 44px, providing a more compact layout and freeing up more screen space for content",
|
"Reduced the vertical tab toolbox width to 44px, providing a more compact layout and freeing up more screen space for content",
|
||||||
"Added support for containers in the sidebar websites",
|
"Added support for containers in the sidebar websites",
|
||||||
"Changed amoled theme's base color",
|
"Changed AMOLED theme's base color",
|
||||||
"Worked on keyboard shortcuts",
|
"Worked on keyboard shortcuts",
|
||||||
"Improved light mode experience",
|
"Improved light mode experience",
|
||||||
"Allow VAAPI/FMPEG APIs only for Linux",
|
"Allow VAAPI/FMPEG APIs only for Linux",
|
||||||
|
@ -1079,7 +1079,7 @@
|
||||||
"description": "Fixed compact mode overlapping the tabs"
|
"description": "Fixed compact mode overlapping the tabs"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed browser bottom padding misaligns",
|
"description": "Fixed browser bottom padding misaligned",
|
||||||
"issue": 2007
|
"issue": 2007
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1095,7 +1095,7 @@
|
||||||
"issue": 2015
|
"issue": 2015
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed 'Tabs sidebar Expand on Hover casuses jank with latest UI'",
|
"description": "Fixed 'Tabs sidebar Expand on Hover causes jank with latest UI'",
|
||||||
"issue": 2033
|
"issue": 2033
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1192,11 +1192,11 @@
|
||||||
"extra": "This release is a small release that fixes some annoying bugs, and adds some small improvements.\n\nThese releases will commonly mostly contain bug fixes and small improvements as our current goal right now is to stabilize the browser.\n\nThanks everyone for the feedback!",
|
"extra": "This release is a small release that fixes some annoying bugs, and adds some small improvements.\n\nThese releases will commonly mostly contain bug fixes and small improvements as our current goal right now is to stabilize the browser.\n\nThanks everyone for the feedback!",
|
||||||
"features": [
|
"features": [
|
||||||
"Fixed always rendering the split view overlay, potentially fixing huge speed issues",
|
"Fixed always rendering the split view overlay, potentially fixing huge speed issues",
|
||||||
"Disabled 'all' webrender options by default, performance increase for unsuported GPUs"
|
"Disabled 'all' webrender options by default, performance increase for unsupported GPUs"
|
||||||
],
|
],
|
||||||
"fixes": [
|
"fixes": [
|
||||||
{
|
{
|
||||||
"description": "Fixed tab overlflow changing the height of the web view"
|
"description": "Fixed tab overflow changing the height of the web view"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed 'cancel' button for workspaces creation not working"
|
"description": "Fixed 'cancel' button for workspaces creation not working"
|
||||||
|
@ -1278,7 +1278,7 @@
|
||||||
"version": "1.0.1-a.15",
|
"version": "1.0.1-a.15",
|
||||||
"date": "31/10/2024",
|
"date": "31/10/2024",
|
||||||
"workflowId": 11600705444,
|
"workflowId": 11600705444,
|
||||||
"extra": "This release introduces Zen Glance, a new convenient way to preview links!\n\nZen Glance allows you to open a link preview in a small window, without leaving the current page. This feature is perfect for quickly checking links without losing your place.\n\nWe've also updated to the latest stable version of Firefox (what a mess, everything got broken!), and we can already start to see some early stages of tab groups!\n\nStart using Zen Glance today my 'ctrl+clic' or 'alt+click' on macos on any link and experience this new way of browsing!",
|
"extra": "This release introduces Zen Glance, a new convenient way to preview links!\n\nZen Glance allows you to open a link preview in a small window, without leaving the current page. This feature is perfect for quickly checking links without losing your place.\n\nWe've also updated to the latest stable version of Firefox (what a mess, everything got broken!), and we can already start to see some early stages of tab groups!\n\nStart using Zen Glance today my 'ctrl+click' or 'alt+click' on macos on any link and experience this new way of browsing!",
|
||||||
"fixes": [
|
"fixes": [
|
||||||
{
|
{
|
||||||
"description": "Fixed gradient theme not applying to sidebar using expand on hover",
|
"description": "Fixed gradient theme not applying to sidebar using expand on hover",
|
||||||
|
@ -1340,7 +1340,7 @@
|
||||||
"description": "Fixed disabling 'show newtab button under last active tab' not hiding the button"
|
"description": "Fixed disabling 'show newtab button under last active tab' not hiding the button"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed wrong aligment on glance action buttons"
|
"description": "Fixed wrong alignment on glance action buttons"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -1392,7 +1392,7 @@
|
||||||
"Added support for forward/backward mouse buttons for switching workspaces",
|
"Added support for forward/backward mouse buttons for switching workspaces",
|
||||||
"Pinned tabs and essentials will stay active in all windows",
|
"Pinned tabs and essentials will stay active in all windows",
|
||||||
"For macos, the browser will now have a transparency/blur factor, based on the theme's contrast. Giving a more native look to the browser",
|
"For macos, the browser will now have a transparency/blur factor, based on the theme's contrast. Giving a more native look to the browser",
|
||||||
"Improved UI theme colors generation and newtab aligment",
|
"Improved UI theme colors generation and newtab alignment",
|
||||||
"Default border radius will be OS specific, giving a more native look to the browser",
|
"Default border radius will be OS specific, giving a more native look to the browser",
|
||||||
"Added weather widget to the newtab",
|
"Added weather widget to the newtab",
|
||||||
"Updated to the latest stable version of Firefox (132.0.1)",
|
"Updated to the latest stable version of Firefox (132.0.1)",
|
||||||
|
@ -1471,7 +1471,7 @@
|
||||||
"description": "Fixed compact mode background being possibly transparent if the custom colors allow it"
|
"description": "Fixed compact mode background being possibly transparent if the custom colors allow it"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed not having any background if the workspace hasnt gotten a color yet"
|
"description": "Fixed not having any background if the workspace hasn't gotten a color yet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed texture slider not working",
|
"description": "Fixed texture slider not working",
|
||||||
|
@ -1485,7 +1485,7 @@
|
||||||
"description": "Fixed some translations issues"
|
"description": "Fixed some translations issues"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed workspaces buttons scalling down when being clicked"
|
"description": "Fixed workspaces buttons scaling down when being clicked"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"breakingChanges": [
|
"breakingChanges": [
|
||||||
|
@ -1522,7 +1522,7 @@
|
||||||
"description": "Fixed support URLs pointing to a 404 pages"
|
"description": "Fixed support URLs pointing to a 404 pages"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed extra all-tabs and newtab buttons not appearing on customised toolbar"
|
"description": "Fixed extra all-tabs and newtab buttons not appearing on customized toolbar"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed workspaces indicator appearing when workspaces are disabled"
|
"description": "Fixed workspaces indicator appearing when workspaces are disabled"
|
||||||
|
@ -1575,7 +1575,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed restoring pinned tabs to their pinned URLs on startup if the option is checked",
|
"description": "Fixed restoring pinned tabs to their pinned URLs on startup if the option is checked",
|
||||||
"isue": 2817
|
"issue": 2817
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Prevent creating new window for dragging pinned tab out of the window."
|
"description": "Prevent creating new window for dragging pinned tab out of the window."
|
||||||
|
@ -1631,7 +1631,7 @@
|
||||||
"breakingChanges": [
|
"breakingChanges": [
|
||||||
"Urlbar now will open when clicking on it instead of on-mousedown",
|
"Urlbar now will open when clicking on it instead of on-mousedown",
|
||||||
"Changed default glance opening trigger to 'alt+click' on linux/windows systems",
|
"Changed default glance opening trigger to 'alt+click' on linux/windows systems",
|
||||||
"Removed collapsible sidebar expande on hover (mod will be available soon). This is due to the dificulty of maintaining it as we evolve the sidebar"
|
"Removed collapsible sidebar expanding on hover (mod will be available soon). This is due to the difficulty of maintaining it as we evolve the sidebar"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1722,7 +1722,7 @@
|
||||||
"version": "1.0.2-b.3",
|
"version": "1.0.2-b.3",
|
||||||
"date": "19/12/2024",
|
"date": "19/12/2024",
|
||||||
"workflowId": 12419745635,
|
"workflowId": 12419745635,
|
||||||
"extra": "This release brings more bug fixing and ovcerall stability while also including some small polishing features/details. Our goal during the beta phase is to get everything as stable and ready for our stable release!\n\nNote: We will be hosting a hall-of-fame event, where top 20 zen rices will be featured in the website!\n\nMerry Christmas everyone!",
|
"extra": "This release brings more bug fixing and overall stability while also including some small polishing features/details. Our goal during the beta phase is to get everything as stable and ready for our stable release!\n\nNote: We will be hosting a hall-of-fame event, where top 20 zen rices will be featured in the website!\n\nMerry Christmas everyone!",
|
||||||
"fixes": [
|
"fixes": [
|
||||||
"Fixed workspaces not being initialized correctly when creating a fresh profile",
|
"Fixed workspaces not being initialized correctly when creating a fresh profile",
|
||||||
"Fixed gradient generator not being correctly initialized on startup",
|
"Fixed gradient generator not being correctly initialized on startup",
|
||||||
|
@ -1757,7 +1757,7 @@
|
||||||
"Added experimental rounded corners for website (Disabled by default on macos)",
|
"Added experimental rounded corners for website (Disabled by default on macos)",
|
||||||
"Added fallback cache-based website favicon in case we fail to fetch the website's favicon for essentials/pinned tabs",
|
"Added fallback cache-based website favicon in case we fail to fetch the website's favicon for essentials/pinned tabs",
|
||||||
"Added a more optimized version of zen hardening, there should be less performance issues now and less font-rendering issues",
|
"Added a more optimized version of zen hardening, there should be less performance issues now and less font-rendering issues",
|
||||||
"Added a smoother scrolling experience by using msd physics and changing scroll values/offests (Disabled in macos)",
|
"Added a smoother scrolling experience by using msd physics and changing scroll values/offsets (Disabled in macos)",
|
||||||
"Optimized workspace switching animations"
|
"Optimized workspace switching animations"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -1783,20 +1783,20 @@
|
||||||
"Fixed compact mode animations on hover for macos, having laggy window buttons and splitter size for macos",
|
"Fixed compact mode animations on hover for macos, having laggy window buttons and splitter size for macos",
|
||||||
"Minor fixes to layout spacing and padding",
|
"Minor fixes to layout spacing and padding",
|
||||||
{
|
{
|
||||||
"description": "Fixed URL bar being outisde of the window in compact mode while typing",
|
"description": "Fixed URL bar being outside of the window in compact mode while typing",
|
||||||
"issue": 3913
|
"issue": 3913
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed tab context menu not working when changing tab to a different workspace",
|
"description": "Fixed tab context menu not working when changing tab to a different workspace",
|
||||||
"isue": 2963
|
"issue": 2963
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed fullscreen videos having a top-bar on certain layouts",
|
"description": "Fixed fullscreen videos having a top-bar on certain layouts",
|
||||||
"isue": 3269
|
"issue": 3269
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Fixed wrong firefox version when using extensions API, therefor breaking some extensions",
|
"description": "Fixed wrong firefox version when using extensions API, therefor breaking some extensions",
|
||||||
"isue": 1366
|
"issue": 1366
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"features": [
|
"features": [
|
||||||
|
@ -1804,14 +1804,14 @@
|
||||||
"Disable Normandy studies by default",
|
"Disable Normandy studies by default",
|
||||||
"Zen Mods will now not load if the browser is opened in safe mode",
|
"Zen Mods will now not load if the browser is opened in safe mode",
|
||||||
"Removed permission buttons in the URL bar into an unified button, saving space (single toolbar layout)",
|
"Removed permission buttons in the URL bar into an unified button, saving space (single toolbar layout)",
|
||||||
"Added support for function keys in the range of F13-F24, also for nums lock and scroll lock keys",
|
"Added support for function keys in the range of F13-F24, also for num lock and scroll lock keys",
|
||||||
"Add experimental window controls preference to hide the window controls always (zen.view.experimental-no-window-controls)",
|
"Add experimental window controls preference to hide the window controls always (zen.view.experimental-no-window-controls)",
|
||||||
"Fixed and improved PGO, LTO and clang plugins for all builds, improving performance"
|
"Fixed and improved PGO, LTO and clang plugins for all builds, improving performance"
|
||||||
],
|
],
|
||||||
"breakingChanges": [
|
"breakingChanges": [
|
||||||
"Due to a high amount of complaints, we've changed the 'Inspect Element' shortcut to 'Ctrl+Shift+L' (Windows/Linux) and 'Cmd+Opt+I' (macOS). This is done to prioritize the 'Copy current URL' shortcut",
|
"Due to a high amount of complaints, we've changed the 'Inspect Element' shortcut to 'Ctrl+Shift+L' (Windows/Linux) and 'Cmd+Opt+I' (macOS). This is done to prioritize the 'Copy current URL' shortcut",
|
||||||
{
|
{
|
||||||
"description": "Removed opimized builds for linux and windows",
|
"description": "Removed optimized builds for linux and windows",
|
||||||
"link": "https://github.com/zen-browser/desktop/wiki/Why-have-optimized-builds-been-removed%3F"
|
"link": "https://github.com/zen-browser/desktop/wiki/Why-have-optimized-builds-been-removed%3F"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1836,7 +1836,7 @@
|
||||||
"extra": "This new release includes more polishing changes and bug fixes. We are most excited about our latest release schedule. We are now using Firefox's Release Candidates for Twilight, meaning we can test out new Firefox versions before they are released to the public. This will allow us to fix any issues before they are released to the public.\n\nIt may be a bit late, but happy new year! We hope you have a great year ahead!",
|
"extra": "This new release includes more polishing changes and bug fixes. We are most excited about our latest release schedule. We are now using Firefox's Release Candidates for Twilight, meaning we can test out new Firefox versions before they are released to the public. This will allow us to fix any issues before they are released to the public.\n\nIt may be a bit late, but happy new year! We hope you have a great year ahead!",
|
||||||
"fixes": [
|
"fixes": [
|
||||||
"Fixed compact mode sidebar not hiding fully on some occasions",
|
"Fixed compact mode sidebar not hiding fully on some occasions",
|
||||||
"Fixed context menu checkbox icon aligments for Windows users",
|
"Fixed context menu checkbox icon alignment for Windows users",
|
||||||
"Fixed having multiple windows displaying the wrong essentials at startup",
|
"Fixed having multiple windows displaying the wrong essentials at startup",
|
||||||
{
|
{
|
||||||
"description": "Fixed toolbar jittering when in compact mode",
|
"description": "Fixed toolbar jittering when in compact mode",
|
||||||
|
@ -1860,9 +1860,9 @@
|
||||||
"issue": 4047
|
"issue": 4047
|
||||||
},
|
},
|
||||||
"Update application identifier for Zen Browser to align with new naming conventions (MacOS)",
|
"Update application identifier for Zen Browser to align with new naming conventions (MacOS)",
|
||||||
"Fixed translations trying to be overriden on Windows builds",
|
"Fixed translations trying to be overridden on Windows builds",
|
||||||
{
|
{
|
||||||
"description": "Fixed web panels closing and inmediately opening again when clicking on the toolbar button",
|
"description": "Fixed web panels closing and immediately opening again when clicking on the toolbar button",
|
||||||
"issue": 4049
|
"issue": 4049
|
||||||
},
|
},
|
||||||
"Fixed issues when building PGO, leading to bad optimization techniques",
|
"Fixed issues when building PGO, leading to bad optimization techniques",
|
||||||
|
@ -1906,14 +1906,14 @@
|
||||||
"Fixed moving pinned tabs into the essential tabs container breaking the UI",
|
"Fixed moving pinned tabs into the essential tabs container breaking the UI",
|
||||||
"Fixed compact mode not opening when hovering on the side when the window changes size",
|
"Fixed compact mode not opening when hovering on the side when the window changes size",
|
||||||
"Improved security for Zen Mods, only allowing installs from the Zen Mods website",
|
"Improved security for Zen Mods, only allowing installs from the Zen Mods website",
|
||||||
"Fixed the completly broken save bookmark dialog",
|
"Fixed the completely broken save bookmark dialog",
|
||||||
"Fixed and improved the grain texture for workspace backgrounds (Thanks to @different55)",
|
"Fixed and improved the grain texture for workspace backgrounds (Thanks to @different55)",
|
||||||
"Fixed zen's app bundle ID giving an incorrect identifier",
|
"Fixed zen's app bundle ID giving an incorrect identifier",
|
||||||
"Fixed issue related to changing workspace with the 4 / 5 mouse buttons and we now take into consideration natural scrolling",
|
"Fixed issue related to changing workspace with the 4 / 5 mouse buttons and we now take into consideration natural scrolling",
|
||||||
"Fixed some website dialogs overflowing the window",
|
"Fixed some website dialogs overflowing the window",
|
||||||
"Fixed moving around pins not saving their position after a restart",
|
"Fixed moving around pins not saving their position after a restart",
|
||||||
{
|
{
|
||||||
"description": "Fixed extension Pin to Toolbar overlayed with gtk theme toggle",
|
"description": "Fixed extension Pin to Toolbar overlaid with gtk theme toggle",
|
||||||
"issue": 1934
|
"issue": 1934
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -2066,7 +2066,7 @@
|
||||||
"fixes": [
|
"fixes": [
|
||||||
"Fixed essentials background having the wrong border radius",
|
"Fixed essentials background having the wrong border radius",
|
||||||
"Fixed compact mode sidebar not re-opening when the animation key is off",
|
"Fixed compact mode sidebar not re-opening when the animation key is off",
|
||||||
"Fixed closing pinned tabs with CTRL+W making the browser unuseable",
|
"Fixed closing pinned tabs with CTRL+W making the browser unusable",
|
||||||
{
|
{
|
||||||
"description": "Fixed glance opening on essential tabs even if it's disabled",
|
"description": "Fixed glance opening on essential tabs even if it's disabled",
|
||||||
"issue": 4564
|
"issue": 4564
|
||||||
|
@ -2074,7 +2074,7 @@
|
||||||
"Fixed crash on overflow menu in macos",
|
"Fixed crash on overflow menu in macos",
|
||||||
"Fixed elements shifting on macos fullscreen",
|
"Fixed elements shifting on macos fullscreen",
|
||||||
"Fixed changing entering on customizable mode when having multiple windows",
|
"Fixed changing entering on customizable mode when having multiple windows",
|
||||||
"Fixed empty space ontop of the vertical tabs when there's no buttons inside it",
|
"Fixed empty space on top of the vertical tabs when there's no buttons inside it",
|
||||||
"Fixed having an empty overflow menu when using single toolbar layout",
|
"Fixed having an empty overflow menu when using single toolbar layout",
|
||||||
"Fixed print dialog not opening and fixed website dialogs being clipped",
|
"Fixed print dialog not opening and fixed website dialogs being clipped",
|
||||||
"Fixed keyboard shortcuts not working after pinning extension to the bookmarks bar",
|
"Fixed keyboard shortcuts not working after pinning extension to the bookmarks bar",
|
||||||
|
@ -2089,7 +2089,7 @@
|
||||||
"Glance will now wait for the answer to 'this page might not save your data' before closing the tab",
|
"Glance will now wait for the answer to 'this page might not save your data' before closing the tab",
|
||||||
"Better and more consistent workspace transition for touchpad users",
|
"Better and more consistent workspace transition for touchpad users",
|
||||||
"Added more native tab border radius",
|
"Added more native tab border radius",
|
||||||
"Split view rearangement now has transition animations",
|
"Split view rearrangement now has transition animations",
|
||||||
"Improved the display of workspace icons in the workspace switcher",
|
"Improved the display of workspace icons in the workspace switcher",
|
||||||
"New tab animation is now smoother",
|
"New tab animation is now smoother",
|
||||||
"Increase tab unloader timeout from 20 to 40 minutes",
|
"Increase tab unloader timeout from 20 to 40 minutes",
|
||||||
|
@ -2100,7 +2100,7 @@
|
||||||
],
|
],
|
||||||
"breakingChanges": [
|
"breakingChanges": [
|
||||||
"The default newtab position is now at the top (can be disabled in the settings under Look & Feel)",
|
"The default newtab position is now at the top (can be disabled in the settings under Look & Feel)",
|
||||||
"Changed default pinned behaviour where it always opens a new tab if only pinned tabs exist"
|
"Changed default pinned behavior where it always opens a new tab if only pinned tabs exist"
|
||||||
],
|
],
|
||||||
"workflowId": 13053102880,
|
"workflowId": 13053102880,
|
||||||
"date": "30/01/2025"
|
"date": "30/01/2025"
|
||||||
|
@ -2189,17 +2189,17 @@
|
||||||
"Fixed tabs sharing screens not hiding when switching workspaces",
|
"Fixed tabs sharing screens not hiding when switching workspaces",
|
||||||
"Fixed URL bar glitching when focusing in compact mode",
|
"Fixed URL bar glitching when focusing in compact mode",
|
||||||
"Fixed pinned tabs separator using the wrong tabs when hiding",
|
"Fixed pinned tabs separator using the wrong tabs when hiding",
|
||||||
"Fixed rearanging essential tabs containing glance tabs",
|
"Fixed rearranging essential tabs containing glance tabs",
|
||||||
"Fixed normal tabs opening where pinned tabs are after having a glance tab opened",
|
"Fixed normal tabs opening where pinned tabs are after having a glance tab opened",
|
||||||
"Fixed trying to unload an about:* page rendering the browser useless",
|
"Fixed trying to unload an about:* page rendering the browser useless",
|
||||||
"Fixed floating URL bar glitching hovering compact mode sidebar",
|
"Fixed floating URL bar glitching hovering compact mode sidebar",
|
||||||
"Fixed pinned/essentials tabs being reorganized when opening multiple windows",
|
"Fixed pinned/essentials tabs being reorganized when opening multiple windows",
|
||||||
"Fixed renaming/changing icons on some occations not working",
|
"Fixed renaming/changing icons on some occasions not working",
|
||||||
"Fixed pinning tabs with glance opened not working",
|
"Fixed pinning tabs with glance opened not working",
|
||||||
"Fixed pinned tabs / essentials opening in the container that the window was opened",
|
"Fixed pinned tabs / essentials opening in the container that the window was opened",
|
||||||
"Fixed not being able to move around multiple pinned tabs at the same time",
|
"Fixed not being able to move around multiple pinned tabs at the same time",
|
||||||
"Fixed selecting essentials/pinned tabs when switching workspaces",
|
"Fixed selecting essentials/pinned tabs when switching workspaces",
|
||||||
"Fixed opening new windows with contaienr specific essentials showing all at once"
|
"Fixed opening new windows with container specific essentials showing all at once"
|
||||||
],
|
],
|
||||||
"features": [
|
"features": [
|
||||||
"\ud83d\udd25 Tabs are handled in different containers, meaning faster transitions and better swiping experience",
|
"\ud83d\udd25 Tabs are handled in different containers, meaning faster transitions and better swiping experience",
|
||||||
|
@ -2220,14 +2220,14 @@
|
||||||
"Removed 'status alert' green dot from tabs",
|
"Removed 'status alert' green dot from tabs",
|
||||||
"Added improved and bouncier toast notifications",
|
"Added improved and bouncier toast notifications",
|
||||||
"URL bar is now fully floatable, always at the center of the screen and with better looks",
|
"URL bar is now fully floatable, always at the center of the screen and with better looks",
|
||||||
"Added an option to completly ignore hovering over the compact mode sidebar ('zen.view.compact.show-sidebar-and-toolbar-on-hover' in about:config)",
|
"Added an option to completely ignore hovering over the compact mode sidebar ('zen.view.compact.show-sidebar-and-toolbar-on-hover' in about:config)",
|
||||||
"Improved shadows, borders and corners in common UI elements",
|
"Improved shadows, borders and corners in common UI elements",
|
||||||
"Compact mode now also gets texture if any is set",
|
"Compact mode now also gets texture if any is set",
|
||||||
"MacOS window buttons are now mono colored (zen.widget.mac.mono-window-controls in about:config)",
|
"MacOS window buttons are now mono colored (zen.widget.mac.mono-window-controls in about:config)",
|
||||||
"Add support for additional languages: Welsh, Estonian, Persian, Finnish, Hebrew, and Icelandic",
|
"Add support for additional languages: Welsh, Estonian, Persian, Finnish, Hebrew, and Icelandic",
|
||||||
"Swiping between workspaces now has a force feedback and a maximum limit",
|
"Swiping between workspaces now has a force feedback and a maximum limit",
|
||||||
"Double clicking on an essential now resets to the original URL",
|
"Double clicking on an essential now resets to the original URL",
|
||||||
"Changed default behaviour of the '-' button on pinned tabs to reset, unload and switch the tab"
|
"Changed default behavior of the '-' button on pinned tabs to reset, unload and switch the tab"
|
||||||
],
|
],
|
||||||
"breakingChanges": [
|
"breakingChanges": [
|
||||||
"Removed profile switching toolbar button and dialog, now that firefox will release them in their next version",
|
"Removed profile switching toolbar button and dialog, now that firefox will release them in their next version",
|
||||||
|
|
|
@ -8,14 +8,14 @@ describe('getReleasesWithChecksums', () => {
|
||||||
'zen.macos-universal.dmg': 'macsum',
|
'zen.macos-universal.dmg': 'macsum',
|
||||||
'zen.installer.exe': 'winsum',
|
'zen.installer.exe': 'winsum',
|
||||||
'zen.installer-arm64.exe': 'winarmsum',
|
'zen.installer-arm64.exe': 'winarmsum',
|
||||||
'zen.linux-x86_64.tar.xz': 'linx86sum',
|
'zen.linux-x86_64.tar.xz': 'linux86sum',
|
||||||
'zen.linux-aarch64.tar.xz': 'linaarchsum',
|
'zen.linux-aarch64.tar.xz': 'linaarchsum',
|
||||||
}
|
}
|
||||||
const releases = getReleasesWithChecksums('en')(checksums)
|
const releases = getReleasesWithChecksums('en')(checksums)
|
||||||
expect(releases.macos.universal.checksum).toBe('macsum')
|
expect(releases.macos.universal.checksum).toBe('macsum')
|
||||||
expect(releases.windows.x86_64.checksum).toBe('winsum')
|
expect(releases.windows.x86_64.checksum).toBe('winsum')
|
||||||
expect(releases.windows.arm64.checksum).toBe('winarmsum')
|
expect(releases.windows.arm64.checksum).toBe('winarmsum')
|
||||||
expect(releases.linux.x86_64.tarball.checksum).toBe('linx86sum')
|
expect(releases.linux.x86_64.tarball.checksum).toBe('linux86sum')
|
||||||
expect(releases.linux.aarch64.tarball.checksum).toBe('linaarchsum')
|
expect(releases.linux.aarch64.tarball.checksum).toBe('linaarchsum')
|
||||||
expect(releases.linux.flathub.all.label).toBe('Flathub')
|
expect(releases.linux.flathub.all.label).toBe('Flathub')
|
||||||
expect(releases.linux.flathub.all.link).toBe('https://flathub.org/apps/app.zen_browser.zen')
|
expect(releases.linux.flathub.all.link).toBe('https://flathub.org/apps/app.zen_browser.zen')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue