Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
eb1197a
feat(many): start migration to pnpm monorepo
bnachtweh Dec 4, 2025
39e13ac
feat(many): init test suite
Jul 23, 2026
ee96c0a
feat(nuxt): add runtime config support
Jul 30, 2026
51d3b1e
test(nuxt): no auto banner
Jul 30, 2026
bd44a20
feat(vue): init composable and plugin
Jul 30, 2026
64d5fb2
test(vue): init suite
Jul 30, 2026
1d24e7e
build(many): update root scripts
Jul 30, 2026
dab8a93
Merge branch 'main' into release/20250001
Jul 30, 2026
183959b
fix(many): update parser options for eslint
Jul 30, 2026
4cff8c8
ci(many): update commands
Jul 30, 2026
ab46327
fix(nuxt): do not include cookiebot id in config on runtime true
Jul 30, 2026
a2da198
doc(many): update website content
Aug 2, 2026
3b80413
doc(many): improve phrasing
Aug 2, 2026
336cbc0
build(doc): generate command
Aug 2, 2026
6dddf03
ci(docs): generate command
Aug 2, 2026
b350e87
build(many): catalog nuxt version
Aug 2, 2026
ac16f37
build(docs): fix vue icon version
Aug 2, 2026
ab31943
build(docs): explicitly add content module
Aug 2, 2026
8814035
test(vue): remove suite from sandbox
Aug 3, 2026
39e3f4d
build(vue): clean up compiled files
Aug 3, 2026
b98b336
ci(many): test script
Aug 3, 2026
7b88b8a
ci(many): resolve common module in test suite
Aug 3, 2026
8c30365
test(nuxt): add tsconfig
Aug 3, 2026
9dcfaff
ci(nuxt): prepare env after install
Aug 3, 2026
fed0368
test(nuxt): resolve alias per test project
Aug 3, 2026
f331157
test(nuxt): resolve alias in fixture apps
Aug 3, 2026
f5fd34e
ci(nuxt): install playwright chromium
Aug 3, 2026
666a384
ci(many): initial release workflow
Aug 3, 2026
de583ef
ci(many): correct environment
Aug 3, 2026
bc59461
ci(many): only bump release from root
bnachtweh Aug 3, 2026
73f675c
chore(release): v4.0.0-0
ambitiondev-release-bot[bot] Aug 3, 2026
182b126
ci(release): use changelog for release
bnachtweh Aug 3, 2026
157be58
chore(release): v4.0.0-1
ambitiondev-release-bot[bot] Aug 3, 2026
c053a12
ci(nuxt): run dev prepare in pipeline
bnachtweh Aug 3, 2026
33ba851
chore(release): v4.0.0-2
ambitiondev-release-bot[bot] Aug 3, 2026
e2b2cab
fix(nuxt): include script helper
bnachtweh Aug 3, 2026
1d4a87b
chore(release): v4.0.0-3
ambitiondev-release-bot[bot] Aug 3, 2026
10d2e41
refactor(common): use index files in stead of folder
bnachtweh Aug 3, 2026
abe2bbf
feat(nuxt): add and destroy cookie declaration
bnachtweh Aug 4, 2026
43dc68f
build(common): bundle esm version
bnachtweh Aug 4, 2026
f28aeee
chore(release): v4.0.0-4
ambitiondev-release-bot[bot] Aug 4, 2026
ed1d34c
build(common): migrate types
bnachtweh Aug 4, 2026
2047632
chore(release): v4.0.0-5
ambitiondev-release-bot[bot] Aug 4, 2026
b3f9c85
doc(many): add important notes
bnachtweh Aug 4, 2026
e2a0baf
fix(vue): reset pending states on early returns
bnachtweh Aug 4, 2026
de1db05
fix(nuxt): reset processing state on throw
bnachtweh Aug 4, 2026
e271afe
test(vue): early return branch scenarios
bnachtweh Aug 4, 2026
fa1e670
chore(release): v4.0.0-6
ambitiondev-release-bot[bot] Aug 4, 2026
fa4db0d
feat(nuxt): add cookiebot api options
bnachtweh Aug 4, 2026
7ba1cba
feat(nuxt): add data attributes for cookie declaration
bnachtweh Aug 4, 2026
6697ece
feat(vue): add cookiebot data attributes
bnachtweh Aug 4, 2026
6d8a1fc
ci(nuxt): prepare test envs
bnachtweh Aug 4, 2026
912b754
test(vue): mount with global settings
bnachtweh Aug 4, 2026
91089b8
chore(release): v4.0.0-7
ambitiondev-release-bot[bot] Aug 4, 2026
db4b10b
fix(nuxt): make options optional in composable
bnachtweh Aug 4, 2026
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
80 changes: 4 additions & 76 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,86 +1,14 @@
# http://editorconfig.org

root = true

# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true

# We recommend you to keep these unchanged
[*]
indent_size = 2
indent_style = space
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 100

[*.feature]
indent_style = space
indent_size = 2

[*.{json}]
indent_style = space
indent_size = 2

[*.{mjs,js,vue,d.ts,ts,tsx,scss}]
indent_style = space
indent_size = 4
quote_type = single
quote_type = double

[*.md]
indent_style = space
indent_size = 4
trim_trailing_whitespace = false

[*.neon]
indent_style = tab
indent_size = 4

[*.php]
indent_style = space
indent_size = 4

[*.sh]
indent_style = tab
indent_size = 4

[*.{yaml,yml}]
indent_style = space
indent_size = 2
trim_trailing_whitespace = false

[.babelrc]
indent_style = space
indent_size = 2

[.gitmodules]
indent_style = tab
indent_size = 4

[.php_cs{,.dist}]
indent_style = space
indent_size = 4

[composer.json]
indent_style = space
indent_size = 4

[docker-compose{,.override}.{yaml,yml}]
indent_style = space
indent_size = 2

[Dockerfile]
indent_style = tab
indent_size = 4

[phpspec.yml{,.dist}]
indent_style = space
indent_size = 4

[phpstan.neon]
indent_style = tab
indent_size = 4

[phpunit.xml{,.dist}]
indent_style = space
indent_size = 4
22 changes: 0 additions & 22 deletions .github/actions/build-all/action.yml

This file was deleted.

14 changes: 0 additions & 14 deletions .github/actions/build-package/action.yml

This file was deleted.

12 changes: 12 additions & 0 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Build
description: Build the package

runs:
using: composite
steps:
- name: Setup
uses: ./.github/actions/setup

- name: Build the package
shell: bash
run: pnpm build
12 changes: 0 additions & 12 deletions .github/actions/install/action.yml

This file was deleted.

11 changes: 7 additions & 4 deletions .github/actions/lint/action.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
name: Prepare
name: Lint
description: Run linting for the package

runs:
using: composite
steps:
- uses: ./.github/actions/install
- name: Lint packages
run: npx lerna run lint
- name: Setup
uses: ./.github/actions/setup

- name: Run linting
shell: bash
run: pnpm lint
16 changes: 0 additions & 16 deletions .github/actions/prepare-env/action.yml

This file was deleted.

18 changes: 18 additions & 0 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Setup
description: Setup Node.js and pnpm, and install dependencies

runs:
using: composite
steps:
- name: Setup pnpm
uses: pnpm/action-setup@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 24
cache: "pnpm"

- name: Install dependencies
shell: bash
run: pnpm install --frozen-lockfile
58 changes: 34 additions & 24 deletions .github/actions/test/action.yml
Original file line number Diff line number Diff line change
@@ -1,30 +1,40 @@
name: Test
description: Run tests for the package

inputs:
package-path:
description: Package directory to run tests in
required: true
script:
description: npm script name to run
required: false
default: test:coverage
cookiebot-id:
description: Cookiebot ID for test environments
required: false
default: ""

runs:
using: composite
steps:
- name: Install Playwright
run: npx playwright@1.48.0 install
working-directory: packages/nuxt
shell: bash
- name: Run test suite
run: npx lerna run test:coverage
- name: Setup
uses: ./.github/actions/setup

- name: Run tests in ${{ inputs.package-path }}
shell: bash
- name: Common Package Report Coverage
uses: davelosert/vitest-coverage-report-action@v2
with:
name: Common Package
json-summary-path: ./packages/common/coverage/coverage-summary.json
json-final-path: ./packages/common/coverage/coverage-final.json
- name: Vue Package Report Coverage
uses: davelosert/vitest-coverage-report-action@v2
with:
name: Vue Package
json-summary-path: ./packages/vue/coverage/coverage-summary.json
json-final-path: ./packages/vue/coverage/coverage-final.json
- name: Nuxt Package Report Coverage
uses: davelosert/vitest-coverage-report-action@v2
with:
name: Nuxt Package
json-summary-path: ./packages/nuxt/coverage/coverage-summary.json
json-final-path: ./packages/nuxt/coverage/coverage-final.json
working-directory: ${{ inputs.package-path }}
run: |
case "${{ inputs.package-path }}" in
packages/vue* )
VITE_COOKIEBOT_ID="${{ inputs.cookiebot-id }}" pnpm run ${{ inputs.script }}
;;
packages/nuxt* )
pnpm run dev:prepare
pnpm run test:prepare
pnpm exec playwright install chromium
NUXT_PUBLIC_COOKIEBOT_ID="${{ inputs.cookiebot-id }}" COOKIEBOT_ID="${{ inputs.cookiebot-id }}" pnpm run ${{ inputs.script }}
;;
* )
pnpm run ${{ inputs.script }}
;;
esac
109 changes: 109 additions & 0 deletions .github/workflows/analyse.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: Analyse package health

on:
push:
branches:
- main
pull_request:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
# STAGE 1: Quality Gate
lint:
name: Lint
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Lint
uses: ./.github/actions/lint

discover-test-packages:
name: Discover test packages
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.discover.outputs.matrix }}
has-packages: ${{ steps.discover.outputs.has-packages }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Discover package test scripts
id: discover
shell: bash
run: |
node <<'NODE'
const fs = require('node:fs');
const path = require('node:path');

const packagesDir = path.join(process.cwd(), 'packages');
const matrix = [];

for (const entry of fs.readdirSync(packagesDir, { withFileTypes: true })) {
if (!entry.isDirectory()) continue;

const packagePath = path.join(packagesDir, entry.name);
const packageJsonPath = path.join(packagePath, 'package.json');
if (!fs.existsSync(packageJsonPath)) continue;

const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
const scripts = packageJson.scripts || {};
const script = scripts['test:coverage'] ? 'test:coverage' : (scripts.test ? 'test' : null);
if (!script) continue;

matrix.push({
name: packageJson.name || entry.name,
path: `packages/${entry.name}`,
script,
});
}

const outputPath = process.env.GITHUB_OUTPUT;
fs.appendFileSync(outputPath, `matrix=${JSON.stringify(matrix)}\n`);
fs.appendFileSync(outputPath, `has-packages=${matrix.length > 0 ? 'true' : 'false'}\n`);
NODE

test:
permissions:
contents: read
name: Test (${{ matrix.package.name }})
runs-on: ubuntu-latest
needs: [discover-test-packages]
if: needs.discover-test-packages.outputs.has-packages == 'true'
strategy:
fail-fast: false
matrix:
package: ${{ fromJson(needs.discover-test-packages.outputs.matrix) }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Test package
uses: ./.github/actions/test
with:
package-path: ${{ matrix.package.path }}
script: ${{ matrix.package.script }}
cookiebot-id: ${{ secrets.COOKIEBOT_ID }}

# STAGE 2: Build
build:
name: Build
runs-on: ubuntu-latest
needs: [lint, test]
if: always() && needs.lint.result == 'success' && (needs.test.result == 'success' || needs.test.result == 'skipped')

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Build
uses: ./.github/actions/build
Loading
Loading