25 Commits

Author SHA1 Message Date
hand-dot
35cd4e32ba Merge origin/main into cli 2026-03-21 10:32:15 +09:00
hand-dot
cd3db68070 improve scripts 2026-03-21 10:20:23 +09:00
hand-dot
3d87f977d6 use vp 2026-03-21 09:24:02 +09:00
hand-dot
fc60395cac fix for playground test 2026-03-20 21:55:19 +09:00
hand-dot
193e82b837 Clean up pdf-lib lint and localize playground fonts 2026-03-20 19:11:58 +09:00
hand-dot
6c4900f00e Complete pdf-lib and ui Vite build migration 2026-03-20 19:04:44 +09:00
hand-dot
2dec270bc4 Migrate common and manipulator builds to Vite 2026-03-20 18:29:50 +09:00
hand-dot
c756700c09 Expand type-aware lint and fix pdf-lib Node ESM exports 2026-03-20 17:52:11 +09:00
hand-dot
982a3a0fcb Separate build tsconfig from typecheck aliases 2026-03-20 17:20:37 +09:00
hand-dot
11169c6692 Migrate generator and pdf-lib tests to Vitest 2026-03-20 15:48:05 +09:00
hand-dot
58a8c712cb Add TypeScript project references 2026-03-20 15:10:39 +09:00
hand-dot
d143331990 fix: replace toThrowError with toThrow for Jest 30 compatibility
Jest 30 removed the `toThrowError` matcher, unifying it with `toThrow`.
Also update UI snapshots for the new Jest snapshot header format.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 12:33:01 +09:00
hand-dot
41dffae848 fix(security): address PR review - IPv6 SSRF bypass and ensureBuffer defensive assertion
- Add IPv4-mapped IPv6 (::ffff:x.x.x.x), link-local (fe80::/10), and
  unique-local (fc00::/7) blocking to isUrlSafeToFetch
- Add defensive assertion in ensureBuffer cap to throw if size < requested

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 12:08:21 +09:00
hand-dot
8c3b6a713b fix(security): address decompression bomb, XSS, and SSRF vulnerabilities
- GHSA-vrqm-gvq7-rrwh: Add 100MB MAX_DECODED_SIZE limit to DecodeStream.ensureBuffer() to prevent decompression bomb attacks
- GHSA-xgx4-2wgv-4jhm: Replace innerHTML with safe DOM APIs in multiVariableText propPanel to prevent XSS via i18n labels
- GHSA-pgx6-7jcq-2qff: Add URL validation (isUrlSafeToFetch) before fetch() in getB64BasePdf and font loading to prevent SSRF

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 11:54:28 +09:00
ryoppippi
38eeecb3ed chore: replace npm-run-all with npm-run-all2 (#1288)
* chore: replace npm-run-all with npm-run-all2

* chore: replace npm-run-all with npm-run-all2 and use run-p shorthand
2025-12-05 09:42:53 +09:00
dependabot[bot]
968dddea63 build(deps-dev): bump typescript from 5.8.3 to 5.9.3 (#1211)
* build(deps-dev): bump typescript from 5.8.3 to 5.9.3

Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.8.3 to 5.9.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 5.9.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Apply TypeScript 5.9 compatibility changes

- Update Uint8Array types to Uint8Array<ArrayBuffer> for TypeScript 5.9 compatibility
- Changes based on PR #1145 comment by bnarnold

Co-Authored-By: Kyohei Fukuda <kyoheif@wix.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kyohei Fukuda <kyoheif@wix.com>
2025-11-09 08:32:15 +09:00
dependabot[bot]
cbebd553ce build(deps-dev): bump @types/pako from 2.0.3 to 2.0.4 (#1207)
Bumps [@types/pako](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pako) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pako)

---
updated-dependencies:
- dependency-name: "@types/pako"
  dependency-version: 2.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-08 13:56:59 +09:00
dependabot[bot]
53710d2402 build(deps): bump node-html-better-parser from 1.5.3 to 1.5.8 (#1204)
Bumps [node-html-better-parser](https://github.com/Sharcoux/node-html-parser) from 1.5.3 to 1.5.8.
- [Commits](https://github.com/Sharcoux/node-html-parser/compare/1.5.3...1.5.8)

---
updated-dependencies:
- dependency-name: node-html-better-parser
  dependency-version: 1.5.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-08 13:55:39 +09:00
dependabot[bot]
1579a040e0 Bump node-html-better-parser from 1.5.1 to 1.5.3 (#1171)
Bumps [node-html-better-parser](https://github.com/Sharcoux/node-html-parser) from 1.5.1 to 1.5.3.
- [Commits](https://github.com/Sharcoux/node-html-parser/compare/1.5.1...1.5.3)

---
updated-dependencies:
- dependency-name: node-html-better-parser
  dependency-version: 1.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-12 19:45:04 +09:00
Kyohei Fukuda
093f183d74 npm run prettier 2025-07-02 15:21:54 +09:00
dependabot[bot]
3b4994dec6 Bump node-html-better-parser from 1.4.11 to 1.5.1 (#1083)
Bumps [node-html-better-parser](https://github.com/Sharcoux/node-html-parser) from 1.4.11 to 1.5.1.
- [Commits](https://github.com/Sharcoux/node-html-parser/compare/1.4.11...1.5.1)

---
updated-dependencies:
- dependency-name: node-html-better-parser
  dependency-version: 1.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>
2025-06-26 19:26:27 +09:00
dependabot[bot]
6daf09964a Bump @types/pako from 1.0.7 to 2.0.3 in /packages/pdf-lib (#1067)
Bumps [@types/pako](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pako) from 1.0.7 to 2.0.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pako)

---
updated-dependencies:
- dependency-name: "@types/pako"
  dependency-version: 2.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-26 19:16:12 +09:00
dependabot[bot]
57d1c4e545 Bump pako from 1.0.11 to 2.1.0 in /packages/pdf-lib (#1063)
Bumps [pako](https://github.com/nodeca/pako) from 1.0.11 to 2.1.0.
- [Changelog](https://github.com/nodeca/pako/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/pako/compare/1.0.11...2.1.0)

---
updated-dependencies:
- dependency-name: pako
  dependency-version: 2.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-26 19:15:02 +09:00
dependabot[bot]
08357e87b4 Bump @types/color from 3.0.6 to 4.2.0 in /packages/pdf-lib (#1061)
Bumps [@types/color](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/color) from 3.0.6 to 4.2.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/color)

---
updated-dependencies:
- dependency-name: "@types/color"
  dependency-version: 4.2.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-26 19:14:47 +09:00
devin-ai-integration[bot]
e4a4c300cd Migrate pdf-lib into pdfme monorepo (#1059)
* Migrate pdf-lib into pdfme monorepo

- Add @pdfme/pdf-lib package to packages/ directory
- Update root package.json to include pdf-lib in workspaces
- Update all package dependencies to use workspace:* for @pdfme/pdf-lib
- Configure TypeScript build targets (cjs, esm, node) for pdf-lib
- Add ESLint configuration with relaxed rules for pdf-lib migration
- Integrate pdf-lib into monorepo build and clean scripts
- Add basic test suite for pdf-lib package
- All lint, build, and test suites pass successfully

This migration improves maintainability by consolidating all PDF operations
into a single repository and unified build/test/release process.

Co-Authored-By: Kyohei Fukuda <kyoheif@wix.com>

* Fix TypeScript module resolution for workspace dependencies

- Changed moduleResolution from 'bundler' to 'node' in common package
- This should resolve '@pdfme/pdf-lib' module resolution issues
- Reverted workspace dependency format back to '*' for npm compatibility

Co-Authored-By: Kyohei Fukuda <kyoheif@wix.com>

* Fix pdf-lib package.json exports paths

- Updated main, module, and exports paths to point to correct locations
- Changed from dist/*/index.js to dist/*/src/index.js to match build output
- Fixed TypeScript types path from dist/types/index.d.ts to dist/types/src/index.d.ts
- Resolves Vite package entry resolution errors and TypeScript module resolution issues

Co-Authored-By: Kyohei Fukuda <kyoheif@wix.com>

* Fix CodeQL security alerts in svg.ts

- Add input validation and sanitization for HTML/SVG parsing
- Prevent ReDoS attacks with regex limits and input size checks
- Sanitize font family names to prevent prototype pollution
- Add URL validation for image sources to prevent path traversal
- Limit transformation parsing to prevent infinite loops
- Maintain backward compatibility while improving security

Co-Authored-By: Kyohei Fukuda <kyoheif@wix.com>

* Implement comprehensive security fixes for CodeQL alerts in svg.ts

- Add input validation and sanitization for SVG content
- Implement safe HTML parsing with null checks and size limits
- Add controlled dynamic property access with allowlisted tag names
- Prevent style injection with filtered and limited style entries
- Add regex match limits to prevent ReDoS attacks
- Enhance font selection with input validation and type safety
- Sanitize image sources to prevent path traversal and injection
- Limit CSS style parsing to prevent potential vulnerabilities

These changes address the 2 high-severity CodeQL security alerts while
maintaining backward compatibility and functionality.

Co-Authored-By: Kyohei Fukuda <kyoheif@wix.com>

* Add additional security fixes for CodeQL alerts in svg.ts

- Implement safer property access for polygon node transformation
- Add input validation for points attribute with regex pattern matching
- Replace Object.assign with safer property assignment to prevent prototype pollution
- Add null checks and type validation for node attributes and childNodes
- Implement safer SVG node parsing with comprehensive validation
- Add array type checks for childNodes processing

These changes target the remaining 2 high-severity CodeQL security alerts
by addressing potential prototype pollution and unsafe property access.

Co-Authored-By: Kyohei Fukuda <kyoheif@wix.com>

* Implement comprehensive security hardening for CodeQL alerts in svg.ts

- Add comprehensive SVG content sanitization with allowlist-based tag filtering
- Implement strict input validation with bounds checking for all numeric inputs
- Replace unsafe dynamic property assignment with Object.defineProperty
- Add try-catch error handling for HTML parsing operations
- Restrict allowed style properties and validate string lengths
- Use setAttribute/removeAttribute instead of direct attribute manipulation
- Add type safety checks for all node operations
- Implement safer polygon-to-path conversion with validation

These changes address the 10 high-severity CodeQL security alerts by:
1. Preventing XSS through comprehensive input sanitization
2. Avoiding prototype pollution with safer property assignment
3. Adding bounds checking to prevent DoS attacks
4. Using allowlist-based validation for all user inputs
5. Implementing proper error handling to prevent crashes

Co-Authored-By: Kyohei Fukuda <kyoheif@wix.com>

* Potential fix for code scanning alert no. 32: Incomplete multi-character sanitization

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Potential fix for code scanning alert no. 39: Incomplete multi-character sanitization

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Fix inefficient regular expression in svg.ts to pass CodeQL

- Changed /([^:\s]+)*\s*:\s*([^;]+)/g to /([^:\s]+)\s*:\s*([^;]+)/g
- Removed the problematic * quantifier that could cause exponential backtracking
- This fixes the "Inefficient regular expression" security alert from GitHub Advanced Security

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* remove sanitize-html

* move tests

* fix for security

* update dependabot.yml

* organize

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-06-26 18:30:05 +09:00