Commit Graph

26 Commits

Author SHA1 Message Date
hand-dot
758983d564 fix fmt 2026-04-20 17:01:39 +09:00
hand-dot
1e38ff416d fix(release): unblock 6.0.4 publish 2026-04-03 18:10:18 +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
6b06c606f7 Clean up playground deps and update converter docs 2026-03-20 23:16:12 +09:00
hand-dot
fc7567b879 Finish Phase 1 cleanup and verification 2026-03-20 22:58:47 +09:00
hand-dot
2dec270bc4 Migrate common and manipulator builds to Vite 2026-03-20 18:29:50 +09:00
hand-dot
982a3a0fcb Separate build tsconfig from typecheck aliases 2026-03-20 17:20:37 +09:00
hand-dot
45082df08b Add Vitest foundation for common and manipulator 2026-03-20 15:31:31 +09:00
hand-dot
58a8c712cb Add TypeScript project references 2026-03-20 15:10:39 +09:00
hand-dot
0d0f89f12b Prepare ESM migration groundwork 2026-03-20 14:49:50 +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
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
Kyohei Fukuda
ceb71b5358 Refactor PDF manipulation functions to use const instead of export for improved readability 2025-03-20 16:04:09 +09:00
Devin AI
85025868d1 fix: replace file: references with wildcard (*) to fix pnpm compatibility (fixes #843)
Co-Authored-By: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>
2025-03-12 13:03:20 +00:00
Kyohei Fukuda
9fa60cba14 Refactor type definitions and improve type safety in dynamic template handling (#816) 2025-03-06 11:18:13 +09:00
Kyohei Fukuda
9ecd6346a6 Update package dependencies to use local paths for common and converter packages 2025-03-06 10:17:31 +09:00
devin-ai-integration[bot]
1edaba859c Fix linting errors in manipulator package (#804)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>
2025-03-05 11:09:47 +09:00
devin-ai-integration[bot]
1a58874c32 Update TypeScript to version 5.8.2 (#802)
* Update TypeScript to version 5.8.2 and fix type compatibility issues

Co-Authored-By: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

* Update package-lock.json for TypeScript 5.8.2

Co-Authored-By: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

* Fix TypeScript errors in generator package

Co-Authored-By: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

* Update moduleResolution to esnext in all tsconfig.esm.json files and fix type errors in generator package

Co-Authored-By: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

* Update moduleResolution to bundler in all tsconfig.esm.json files

Co-Authored-By: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>
2025-03-04 18:15:28 +09:00
Kyohei Fukuda
f134f15007 Fix formatting issues and ensure consistent use of commas in function parameters and object properties 2025-03-04 11:11:23 +09:00
Kyohei Fukuda
102ca8cc62 Fix eslint (#780)
* Refactor ESLint configuration: remove legacy .eslintrc.cjs files and replace with new .mjs configurations

* Remove unnecessary TypeScript ignore comments and simplify async calls in barcode tests

* Refactor date helper: remove TypeScript ignore comments and simplify AirDatepicker usage

* Enhance date helper: add AirDatepickerDate type and improve type annotations for onSelect callback

* Update TypeScript and ESLint configurations: change module to NodeNext, refine file patterns, and enhance lint command

* Refactor ESLint configuration: remove unnecessary language options for TypeScript files
2025-03-03 10:20:36 +09:00
Kyohei Fukuda
afbfa87674 [WIP] Add pdf2img integration for converting PDF to images in e2e tests (#774)
* Add pdf2img integration for converting PDF to images in e2e tests

* Refactor PDF generation tests to convert PDFs to images and validate against snapshots

* Refactor package.json files to remove "type": "module" and update import statements to CommonJS format

* Fix e2e test

* Add new image snapshots for e2e tests and remove obsolete snapshot
2025-03-01 16:24:01 +09:00
Kyohei Fukuda
b0d980c433 Modification to make the library ESM-based. (#770)
* Remove fast-xml-parser dependency and update vite-tsconfig-paths to 5.1.4

* tmp

* Refactor test files and scripts to use ES modules; remove obsolete files

* Enhance tests with new PDF utilities and update Jest configuration for ESM support
2025-03-01 02:23:24 +09:00
Kyohei Fukuda
8d824db3f5 Fix TS2835 (#762)
* tmp

* chore: update TypeScript configuration to use ESNext module and resolution

* fix: update remaining imports with .js extensions and tsconfig files with nodenext

Co-Authored-By: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-02-28 20:49:17 +09:00
Kyohei Fukuda
23443bbe20 Improve test (#720)
* use image snapshot

* remove

* Add new feature for user profile customization

* Implement user profile customization feature

* Update snapshots to reflect changes in button class names
2025-02-16 14:48:40 +09:00
Kyohei Fukuda
3aacf2a9b1 Manipulator package (#712)
* TMP

* Implement PDF manipulation functions: merge, split, remove, insert, extract, rotate, and organize with initial test structure

* feat(manipulator): implement merge and split functions (#714)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

* feat(manipulator): implement remove and insert functions (#715)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

* feat(manipulator): implement extract and rotate functions (#716)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

* feat(manipulator): implement organize function (#717)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

* feat(manipulator): add clean and build scripts for manipulator package

* feat: update .gitignore to exclude repomix-output.txt files

* fix(manipulator): update import paths and improve code consistency

* Minor fix

* add tests

* test(manipulator): add visual snapshot testing to E2E tests

Co-Authored-By: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com>

* fix(manipulator): update pdfToImages function to return Buffer array and add getPDFPageCount utility

---------

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-02-16 13:34:26 +09:00