Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
60 changes: 60 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: CI

on:
push:
branches: [main, master]
pull_request:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
package:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
with:
version: 11.6.0
- uses: actions/setup-node@v6
with:
node-version: 24
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm typecheck
- run: pnpm format:check
- run: pnpm build
- run: pnpm exec playwright install --with-deps chromium
- run: pnpm test:package

browser:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
browser: [chromium, firefox, webkit]
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
with:
version: 11.6.0
- uses: actions/setup-node@v6
with:
node-version: 24
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm exec playwright install --with-deps ${{ matrix.browser }}
- run: pnpm exec playwright test --project=${{ matrix.browser }}
- uses: actions/upload-artifact@v7
if: failure()
with:
name: playwright-${{ matrix.browser }}
path: |
playwright-report/
test-results/
retention-days: 7
78 changes: 78 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Publish npm release

on:
release:
types: [published]

permissions:
contents: read

concurrency:
group: npm-release
cancel-in-progress: false

jobs:
verify:
if: github.event.release.prerelease == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.event.release.tag_name }}
- uses: pnpm/action-setup@v6
with:
version: 11.6.0
- uses: actions/setup-node@v6
with:
node-version: 24
cache: pnpm
- name: Validate stable release version
env:
RELEASE_TAG: ${{ github.event.release.tag_name }}
run: |
node --input-type=module <<'NODE'
import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';
const { version } = JSON.parse(readFileSync('package.json', 'utf8'));
assert.match(version, /^\d+\.\d+\.\d+$/);
assert.equal(process.env.RELEASE_TAG, `v${version}`);
NODE
- run: pnpm install --frozen-lockfile
- run: pnpm typecheck
- run: pnpm format:check
- run: pnpm exec playwright install --with-deps
- run: pnpm test
- run: pnpm build
- name: Pack and verify the release artifact
run: pnpm test:package --out-dir artifacts
- uses: actions/upload-artifact@v7
with:
name: npm-tarball
path: artifacts/*.tgz
if-no-files-found: error
retention-days: 7

publish:
needs: verify
runs-on: ubuntu-latest
environment: npm
permissions:
contents: read
id-token: write
steps:
- uses: actions/setup-node@v6
with:
node-version: 24
registry-url: https://registry.npmjs.org
package-manager-cache: false
- uses: actions/download-artifact@v8
with:
name: npm-tarball
path: artifacts
- name: Publish the verified tarball through npm trusted publishing
run: |
set -eu
set -- artifacts/*.tgz
[ "$#" -eq 1 ]
[ -f "$1" ]
npm publish "$1" --ignore-scripts --access public --provenance --tag latest
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Changelog

## 0.2.0

- Restore bubbling, composed `load` and `error` events; emit only for the current operation.
- Add passive, SSR-safe manual registration with an optional custom element name.
- Add opt-in Office read-only mode through the document embed API, retaining legacy editable renderer support.
- Isolate dialogs, network requests, Office connections and PDF workers per instance; cancel obsolete loads on source replacement, close and disconnect.
- Add accessible dialog controls, keyboard activation, focus restoration and mobile safe-area/dynamic viewport sizing.
- Upgrade ranui/ranuts to 0.5.0 and PDF.js to 6.4.299; correct PDF page numbering, completion, errors, pixel density and cleanup.
- Ship PDF workers, fonts, cMaps and WASM assets for local deployment.
- Update Node 24+ tooling, strict installed-package type checks, browser regressions and CI/trusted-publishing workflows.
- Document Vue registration, configurable Office hosts, offline deployment and migration limitations.

## 0.1.0-alpha-3 (2026-08-08)

### Changed
Expand Down
Loading
Loading