Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
ba50f00
feat: add bulk processing
Encryptioner Nov 13, 2025
e809368
feat: added new feature and gave oklch support
Encryptioner Nov 13, 2025
377ede1
feat: add type version in package.json for module resolution node
Encryptioner Nov 14, 2025
d11c324
feat: update cross framework use and documentation
Encryptioner Nov 14, 2025
5f4a366
docs: create comprehensive documentation structure with user-friendly…
claude Nov 16, 2025
d433edf
docs: add comprehensive guides for all frameworks and best practices
claude Nov 16, 2025
d6f121c
feat: complete Phase 2 and Phase 3 feature implementations
claude Nov 16, 2025
5cec30f
docs: complete v5.0.0 documentation and fix TypeScript error
claude Nov 16, 2025
f773176
feat: implement Phase 4 production quality enhancements (v5.1.0)
claude Nov 16, 2025
5cb0417
docs: update documentation for Phase 4 features (v5.1.0)
claude Nov 16, 2025
44d0dd8
docs: update framework guides with Phase 4 image options
claude Nov 16, 2025
0356a20
docs: update API options reference with Phase 3 and Phase 4 features
claude Nov 16, 2025
6be4f91
refactor: consolidate all features under v1.0.0
claude Nov 16, 2025
3ca75f3
docs: add web search implementation status analysis
claude Nov 16, 2025
5353e05
feat: add MCP server support for server-side PDF generation
claude Nov 16, 2025
b1ea132
feat: enhance MCP server with 3 token-efficient tools
claude Nov 16, 2025
97918ec
docs: add comprehensive MCP server test results
claude Nov 16, 2025
3bb3fd8
docs: add MCP tools quick reference guide
claude Nov 16, 2025
e516fef
feat: add full server-side support with Puppeteer and hybrid frontend…
claude Nov 16, 2025
8142077
docs: update README with server-side usage and hybrid architecture
claude Nov 16, 2025
44dec5c
fix: version and pacakge name update
Encryptioner Nov 17, 2025
3487aca
merge: with release version 1
Encryptioner Nov 17, 2025
e9547a9
feat: update documentation structures
Encryptioner Nov 17, 2025
eaefaa5
merge: with version 1
Encryptioner Nov 17, 2025
bccbe25
feat: rearrange the documentations
Encryptioner Nov 17, 2025
bab5743
docs: prepare package for publication
claude Nov 17, 2025
fbe0be1
docs: fix all broken internal documentation links
claude Nov 17, 2025
1b18102
docs: fix remaining broken links in multi-page.md
claude Nov 17, 2025
f46f9b2
refactor: remove unnecessary import
Encryptioner Nov 17, 2025
6b405cc
Merge remote-tracking branch 'origin/claude/work-on-release-1.0.0-015…
Encryptioner Nov 17, 2025
8ac3773
refactor: move multi page feature to advanced doc
Encryptioner Nov 17, 2025
af80968
feat: implement batch PDF generation
claude Nov 17, 2025
0aa78fa
docs: move batch PDF documentation to dedicated guide
claude Nov 17, 2025
b0d6c6b
merge: integrate pre/release/1.0.0 changes with batch PDF feature
claude Nov 17, 2025
5171b2c
docs: add comprehensive feature documentation links
claude Nov 17, 2025
33bf11a
docs: create comprehensive feature documentation (core & advanced)
claude Nov 17, 2025
5ca1cf3
feat: add github workflow for publishing npm package
Encryptioner Nov 17, 2025
6d1c3b3
docs: remove obsolete NPM conversion section from README
claude Nov 17, 2025
99e4b80
docs: add MCP server section to README
claude Nov 17, 2025
6b2f08a
feat: add newPage parameter to batch PDF generation
claude Nov 17, 2025
5d5668a
docs: add comprehensive newPage parameter examples and tests
claude Nov 17, 2025
0acc110
Merge remote-tracking branch 'origin/claude/prepare-release-1.0.0-015…
Encryptioner Nov 18, 2025
2338ea3
fix: replace broken HTML demo with working Vite demo & add verification
claude Nov 18, 2025
ac44b5f
docs: add production readiness summary
claude Nov 18, 2025
3313a3e
feat: move multi page documentations into feature sections
Encryptioner Nov 18, 2025
0261efe
feat: document basic image handling first
Encryptioner Nov 18, 2025
4e880f4
fix: implement proper page break spacing for batch PDF newPage parameter
claude Nov 18, 2025
0ed79a8
refactor: redesign vite-demo as extensible feature testing platform
claude Nov 18, 2025
ee03c08
Merge remote-tracking branch 'origin/claude/prepare-release-1.0.0-015…
Encryptioner Nov 18, 2025
0511a2c
feat: remove unnecessary test case
Encryptioner Nov 18, 2025
d2dc5b6
fix: implement proper PDF merging for batch generation with newPage p…
claude Nov 18, 2025
8197bf5
feat: update documentation
Encryptioner Nov 18, 2025
d71f403
feat: update publishing docs
Encryptioner Nov 18, 2025
f07b0f3
chore: add pnpm-lock.yaml files for reproducible builds
Encryptioner Nov 18, 2025
2f83f8b
feat: update readme
Encryptioner Nov 18, 2025
276144f
feat: update github workflow
Encryptioner Nov 18, 2025
b5808eb
feat: comment lint check
Encryptioner Nov 18, 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
585 changes: 585 additions & 0 deletions .github/PUBLISHING.md

Large diffs are not rendered by default.

55 changes: 55 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: CI

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
test:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: ['18.20.0', '20', '22']

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

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9.0.0

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

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Run type check
run: pnpm run typecheck

- name: Run tests
run: pnpm test -- run --passWithNoTests

# TODO: Re-enable once ESLint is properly configured for v9
# - name: Run linter
# run: pnpm run lint

- name: Build package
run: pnpm run build

- name: Verify build outputs
run: |
echo "Checking dist/ directory..."
ls -la dist/
echo "Checking mcp/dist/ directory..."
ls -la mcp/dist/
112 changes: 112 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: Publish to NPM

on:
# Trigger on version tags (e.g., v1.0.0, v1.2.3)
push:
tags:
- 'v*'

# Allow manual trigger from Actions tab
workflow_dispatch:
inputs:
tag:
description: 'Tag to publish (e.g., v1.0.0)'
required: false
type: string

jobs:
publish:
runs-on: ubuntu-latest

permissions:
contents: read
id-token: write # Required for NPM provenance

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9.0.0

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18.20.0'
cache: 'pnpm'
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Run type check
run: pnpm run typecheck

- name: Run tests
run: pnpm test -- run --passWithNoTests

# TODO: Re-enable once ESLint is properly configured for v9
# - name: Run linter
# run: pnpm run lint

- name: Build package
run: pnpm run build

- name: Verify build outputs
run: |
echo "Checking dist/ directory..."
ls -la dist/
echo "Checking mcp/dist/ directory..."
ls -la mcp/dist/

- name: Extract version from tag
id: extract_version
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ] && [ -n "${{ inputs.tag }}" ]; then
TAG="${{ inputs.tag }}"
else
TAG="${GITHUB_REF#refs/tags/}"
fi
VERSION="${TAG#v}"
echo "tag=$TAG" >> $GITHUB_OUTPUT
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Publishing version: $VERSION"

- name: Verify package.json version matches tag
run: |
PACKAGE_VERSION=$(node -p "require('./package.json').version")
TAG_VERSION="${{ steps.extract_version.outputs.version }}"
echo "package.json version: $PACKAGE_VERSION"
echo "Tag version: $TAG_VERSION"
if [ "$PACKAGE_VERSION" != "$TAG_VERSION" ]; then
echo "Error: package.json version ($PACKAGE_VERSION) does not match tag version ($TAG_VERSION)"
exit 1
fi

- name: Create .npmrc
run: |
cat << EOF > "$HOME/.npmrc"
//registry.npmjs.org/:_authToken=\$NPM_TOKEN
EOF

- name: Publish to NPM
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
# Publish with provenance for supply chain security
pnpm publish --no-git-checks --access public --provenance

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
generate_release_notes: true
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Dependencies
node_modules/
.pnpm-store/
pnpm-lock.yaml
# pnpm-lock.yaml should be committed for reproducible builds

# Build outputs
dist/
Expand Down
33 changes: 13 additions & 20 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
# Source files (only publish dist/)
# This file is mostly informational since package.json "files" array controls what's published
# The "files" array whitelists: dist/, mcp/dist/, documentation/, README.md, LICENSE.md, CHANGELOG.md

# Exclude development files
src/
*.ts
*.tsx
!*.d.ts

# Configuration files
# Exclude config files
tsconfig.json
tsup.config.ts
.prettierrc
.prettierignore
.editorconfig
.npmrc

# Development files
# Exclude test files
*.test.ts
*.test.tsx
*.spec.ts
Expand All @@ -21,41 +25,30 @@ test/
tests/
coverage/

# Documentation (keep README.md)
# Exclude development docs (docs/ is for internal notes, documentation/ is for users)
docs/
examples/
EXAMPLE.tsx
*.md
!README.md
!LICENSE.md
CLAUDE.md

# Build artifacts
# Exclude build artifacts
node_modules/
.pnpm-store/
pnpm-lock.yaml
*.log
*.tgz
.DS_Store
.env
.env.*

# Git files
# Exclude version control
.git/
.gitignore
.gitattributes

# IDE files
# Exclude IDE files
.vscode/
.idea/
*.swp
*.swo
*~

# CI/CD
# Exclude CI/CD
.github/
.gitlab-ci.yml
.travis.yml

# Other
*.orig
.npmrc
Loading