Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
d5800c2
Merge tag 'v0.3.0' into develop
addon-stack Sep 24, 2025
f682b4c
feat: add Opera-specific locale validator and update locale builder l…
RostyslavNihrutsa Sep 30, 2025
fc97578
feat: add Firefox locale validator and integrate it into locale handling
RostyslavNihrutsa Sep 30, 2025
a1bcb11
Merge pull request #73 from RostyslavNihrutsa/develop
addon-stack Oct 2, 2025
2306a3d
chore: update author details and add .mailmap file
addon-stack Oct 8, 2025
bfab53e
refactor: update dependencies and migrate to `@addon-core` packages
addon-stack Oct 8, 2025
df85fcd
refactor: restructure vendor declarations and improve alias handling …
addon-stack Oct 8, 2025
12108be
Merge branch 'feature/storage' into develop
addon-stack Oct 8, 2025
9d23f49
Merge remote-tracking branch 'origin/develop' into develop
addon-stack Oct 8, 2025
d40b8cb
perf: configure husky and commitlint for commit message validation
addon-stack Oct 8, 2025
cdafd06
ci: add release-it configuration for automated versioning and changel…
addon-stack Oct 9, 2025
8d8d303
chore(prettier): update `.prettierignore` to exclude GitHub workflows…
addon-stack Oct 9, 2025
8b0ded1
chore: update dependencies and adjust package-lock.json
addon-stack Oct 9, 2025
b387cc1
refactor: adjust plugins, CI matrix, and Node.js version support
addon-stack Oct 9, 2025
d0fe719
chore(dependencies): update package-lock.json with additional depende…
addon-stack Oct 9, 2025
f1b06ae
ci: update workflow naming and correct npm script usage
addon-stack Oct 9, 2025
6aedcda
chore(deps): update core-js-compat to v3.46.0 in package-lock.json
addon-stack Oct 9, 2025
86e5ba1
chore: sync lockfile with package.json
addon-stack Oct 9, 2025
feea325
chore(deps): update dependencies
addon-stack Oct 9, 2025
9304995
test: migrate fixtures to `tests/fixtures` directory for better struc…
addon-stack Oct 9, 2025
70aeb5c
chore(typings): add module declarations and type definitions for `adn…
addon-stack Oct 9, 2025
8409775
chore(ci): update job name order in workflow configuration
addon-stack Oct 9, 2025
4ce1612
chore: update release-it configuration and repository URL
addon-stack Oct 10, 2025
607fc02
Merge branch 'feature/ci' into develop
addon-stack Oct 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .commitlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"extends": [
"@commitlint/config-conventional"
]
}
6 changes: 5 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
* text=auto eol=lf
pnpm-lock.yaml linguist-generated
package-lock.json linguist-generated
bun.lockb linguist-generated
yarn.lock linguist-generated

* text=auto eol=lf

*.bat text eol=crlf
*.cmd text eol=crlf
74 changes: 74 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: CI

on:
push:
branches:
- develop
- 'feature/**'
pull_request:
branches:
- develop
- 'feature/**'
workflow_call:
inputs:
full:
description: 'Run full OS x Node matrix'
required: false
type: boolean
default: false

jobs:
compute-matrix:
name: Compute matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set.outputs.matrix }}
name_suffix: ${{ steps.set.outputs.name_suffix }}
steps:
- id: set
run: |
if [[ "${{ inputs.full }}" == "true" ]]; then
echo 'matrix={"os":["ubuntu-latest","windows-latest"],"node":[22,24]}' >> $GITHUB_OUTPUT
echo 'name_suffix=(full matrix)' >> $GITHUB_OUTPUT
else
echo 'matrix={"os":["ubuntu-latest"],"node":[22]}' >> $GITHUB_OUTPUT
echo 'name_suffix=' >> $GITHUB_OUTPUT
fi

build-and-test:
name: Test and Build ${{ needs.compute-matrix.outputs.name_suffix }}
needs: compute-matrix
runs-on: ${{ matrix.os }}
permissions:
contents: read
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.compute-matrix.outputs.matrix) }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: npm

- name: Install dependencies
run: npm ci

- name: Typecheck
run: npm run typecheck

- name: Test
run: npm run test:ci

- name: Build
run: npm run build

- name: Upload coverage artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: coverage-${{ matrix.os }}-node${{ matrix.node }}
path: coverage
97 changes: 97 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Release

on:
push:
branches:
- main
workflow_dispatch:
inputs:
version:
description: 'Exact version to release (e.g. 1.2.3). Leave empty to auto-bump.'
required: false
type: string
preid:
description: 'Pre-release identifier (e.g. beta, rc). Optional'
required: false
type: string
npm_tag:
description: 'npm dist-tag (e.g. latest, beta)'
required: false
default: 'latest'
type: string

permissions:
contents: write
id-token: write

jobs:
ci:
name: CI
uses: ./.github/workflows/ci.yml
with:
full: true

release:
name: Release & Publish
runs-on: ubuntu-latest
needs: ci
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'npm'
registry-url: 'https://registry.npmjs.org'
always-auth: true

- name: Install dependencies
run: npm ci

- name: Configure Git user
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

- name: Run release-it
env:
DEBUG: release-it:*,@release-it/*
HUSKY: 0
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
VERSION_ARG=""
if [ -n "${{ inputs.version }}" ]; then
VERSION_ARG="${{ inputs.version }}"
fi

PREID_ARG=""
if [ -n "${{ inputs.preid }}" ]; then
PREID_ARG="--preRelease=${{ inputs.preid }}"
fi

if [ -n "${{ inputs.npm_tag }}" ]; then
NPM_TAG="${{ inputs.npm_tag }}"
else
NPM_TAG="latest"
fi
NPM_TAG_ARG="--npm.tag=${NPM_TAG}"

npm run release -- --ci $PREID_ARG $NPM_TAG_ARG $VERSION_ARG

- name: Sync main → develop
uses: devmasx/merge-branch@v1.4.0
with:
type: now
from_branch: main
target_branch: develop
github_token: ${{ secrets.GITHUB_TOKEN }}
env:
HUSKY: 0

5 changes: 5 additions & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env sh

# Husky commit-msg hook: validate commit message with commitlint

npx --no -- commitlint --edit "$1"
9 changes: 9 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env sh

# Husky pre-commit hook: format and run related tests on staged files

npm run format || exit 1
npm run typecheck || exit 1
npm run test || exit 1


7 changes: 7 additions & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env sh

# Husky pre-push hook: typecheck, run full tests, and build

npm run typecheck || exit 1
npm run test:ci || exit 1
npm run build || exit 1
1 change: 1 addition & 0 deletions .mailmap
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Addon Stack <addonbonedev@gmail.com> <191148085+addon-stack@users.noreply.github.com>
3 changes: 2 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
node_modules/
.github/workflows/
dist/
build/
addon/
src/cli/entrypoint/file/fixtures/
src/cli/entrypoint/file/tests/fixtures/
Loading