mirror of
https://github.com/VladSez/easy-invoice-pdf
synced 2026-04-21 13:37:40 +00:00
* feat: Add language attribute to date input fields in invoice form components - Include `lang="en"` attribute in date input fields of `InvoiceForm` and `GeneralInformation` components for improved accessibility and localization support. * fix: Update language attribute for date input fields in invoice form components * refactor: Improve layout and organization of invoice components - Remove unnecessary margin from the main container in the Home component. - Wrap the share invoice button and PDF download link in a fragment for better structure. - Adjust margins for the ProjectInfo and action button container for improved spacing. - Update the InvoicePDFViewer height to use full height for better responsiveness. - Remove the deprecated RegenerateInvoiceButton component to streamline the codebase. - Update the InvoiceClientPage to accept handleShareInvoice prop for better functionality. - Clean up unused language attributes in date input fields across invoice form components. * feat: Integrate Playwright for end-to-end testing and enhance invoice form components - Add Playwright configuration and dependencies for E2E testing. - Create GitHub Actions workflow for automated E2E tests on deployment. - Implement initial E2E tests for the Invoice Generator Page, verifying UI elements and form functionality. - Refactor invoice form components to include data-testid attributes for better testability. - Update .gitignore to exclude Playwright-related files and directories. * chore: Update GitHub Actions workflow for E2E testing and enhance test coverage - Upgrade pnpm version from 8 to 10 in the E2E workflow for improved package management. - Add new test case to verify header buttons and links on the Invoice Generator Page, ensuring UI elements are displayed correctly and have the expected attributes. * chore: Enhance ESLint configuration for Playwright integration - Add Playwright ESLint plugin to package.json for improved E2E testing support. - Update .eslintrc.json to include overrides for E2E test files. - Clean up GitHub Actions workflow by removing unnecessary pnpm version specification. * chore: Update Playwright configuration and improve test assertions - Increase timeout for expect assertions and test execution from 15 seconds to 30 seconds for better stability in E2E tests. - Comment out mobile viewport tests to streamline configuration and focus on desktop testing. * chore: Update configuration and refactor invoice form components - Add compiler options to remove console logs in production and enhance logging for fetch requests in next.config.mjs. - Update package.json to include new type definitions for ua-parser-js and add ua-parser-js as a dependency. - Refactor invoice form components to remove form prefix IDs, simplifying data-testid attributes for better testability. - Introduce DeviceContext for managing device type state and improve responsiveness in invoice form components. - Implement server-side device detection using user agent parsing for better rendering on mobile and desktop views. - Update media query hooks to streamline device type checks across components. * chore: Update Playwright configuration and enhance invoice form tests - Reduce timeout for expect assertions from 30 seconds to 15 seconds for improved test performance. - Add new test for handling currency switching in the Invoice Generator Page, verifying correct currency display and calculations. - Refactor buyer and seller information components to include tooltip messages and improve accessibility with aria attributes. - Update BuyerDialog and BuyerManagement components to enhance user experience with better visibility and edit functionality for buyer details. * chore: Update Playwright installation command in GitHub Actions workflow - Modify Playwright installation command to remove explicit browser specification, allowing for default browser installation with dependencies. * chore: Update GitHub Actions E2E workflow for Playwright report handling - Change condition for uploading Playwright report to ensure it uploads regardless of test outcome. - Reduce retention days for uploaded reports from 5 to 3 for better resource management. * chore: Update Playwright installation command in GitHub Actions workflow - Specify installation of Chromium and WebKit browsers along with dependencies for enhanced testing capabilities. * chore: Enhance E2E tests for seller and buyer management functionality - Add tests to verify the deletion process for sellers and buyers, including confirmation dialogs and success messages. - Ensure localStorage data is correctly saved and parsed for both seller and buyer information. - Introduce default data constants for sellers and buyers to streamline test setup. - Improve accessibility by adding screen reader text for delete buttons in the seller management component. * chore: Pin versions of GitHub Actions in E2E workflow for stability - Update actions/checkout, pnpm/action-setup, actions/setup-node, and actions/upload-artifact to specific versions for improved reliability and security. - Comment added to clarify the rationale for using pinned versions. * chore: Add E2E test for accordion items visibility and localStorage state management - Implement test to verify that accordion items are visible, collapsible, and their state is correctly saved in localStorage. - Ensure state persistence across page reloads and validate updated states after toggling sections. - Introduce ACCORDION_STATE_LOCAL_STORAGE_KEY and AccordionState type for better type safety and clarity. * chore: Update Playwright configuration and add comprehensive E2E tests for seller and buyer management - Increase timeout for expect assertions and test execution from 30 seconds to 60 seconds for improved stability in E2E tests. - Introduce new E2E tests for seller and buyer management, covering creation, editing, and deletion processes, including confirmation dialogs and success messages. - Ensure localStorage data is correctly saved and parsed for both seller and buyer information. - Implement detailed validation for form fields and visibility toggles in seller and buyer management dialogs. - Enhance accessibility by adding screen reader text for buttons and tooltips in the management components. * chore: Refactor Playwright configuration and enhance invoice item validation tests - Introduce a constant for timeout values in Playwright configuration for consistency and maintainability. - Add comprehensive validation tests for amount, net price, and VAT fields in the invoice items section, ensuring proper error messages for invalid inputs. - Update expected error messages in the schema to match the new formatting for better clarity. - Improve test structure by utilizing descriptive variable names and modularizing input handling for better readability. * chore: add pdf e2e tests - Add `pdf-parse` and its type definitions to package.json for PDF handling capabilities. - Increase Playwright timeout from 30 seconds to 60 seconds for improved test stability. - Introduce comprehensive E2E tests for PDF generation, verifying content in both English and Polish. - Implement cleanup procedures for test downloads to ensure a clean testing environment. - Validate invoice data updates in the generated PDF, ensuring accurate content reflects user inputs. * chore: add eslint, knip, lint-staged * chore: run prettier * chore: minor improvements * chore: add more test and improved e2e config * minor fixes * minor fixes * chore: add new test
88 lines
2.6 KiB
JSON
88 lines
2.6 KiB
JSON
{
|
|
"name": "pdf-invoice-generator",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"packageManager": "pnpm@10.6.5",
|
|
"engines": {
|
|
"node": ">=20.0.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"type-check": "tsc --noEmit",
|
|
"lint": "pnpm eslint . --cache",
|
|
"lint:fix": "pnpm eslint . --fix",
|
|
"prettify": "prettier --write --cache '**/*.{ts?(x),json,js,mjs,yml,yaml,md}'",
|
|
"knip": "knip",
|
|
"update-deps": "pnpm upgrade --interactive --latest",
|
|
"e2e": "pnpm exec playwright test",
|
|
"e2e:ui": "pnpm exec playwright test --ui",
|
|
"dedupe": "pnpm dedupe",
|
|
"lint-stage": "npx lint-staged --verbose",
|
|
"prepare": "husky"
|
|
},
|
|
"dependencies": {
|
|
"@hookform/resolvers": "3.9.0",
|
|
"@openpanel/nextjs": "1.0.7",
|
|
"@radix-ui/react-accordion": "1.2.3",
|
|
"@radix-ui/react-alert-dialog": "1.1.6",
|
|
"@radix-ui/react-dialog": "1.1.6",
|
|
"@radix-ui/react-label": "2.1.2",
|
|
"@radix-ui/react-popover": "1.1.6",
|
|
"@radix-ui/react-separator": "1.1.2",
|
|
"@radix-ui/react-slot": "1.1.2",
|
|
"@radix-ui/react-switch": "1.1.3",
|
|
"@radix-ui/react-tabs": "1.1.3",
|
|
"@radix-ui/react-tooltip": "1.1.8",
|
|
"@react-pdf/renderer": "4.3.0",
|
|
"@sentry/nextjs": "9.3.0",
|
|
"@types/ua-parser-js": "0.7.39",
|
|
"@vercel/speed-insights": "1.2.0",
|
|
"class-variance-authority": "0.7.1",
|
|
"clsx": "2.1.1",
|
|
"cmdk": "1.0.0",
|
|
"dayjs": "1.11.13",
|
|
"eslint-plugin-react-hooks": "5.2.0",
|
|
"file-saver": "2.0.5",
|
|
"jszip": "3.10.1",
|
|
"lucide-react": "0.477.0",
|
|
"lz-string": "1.5.0",
|
|
"n2words": "1.21.0",
|
|
"next": "14.2.15",
|
|
"nuqs": "2.1.0",
|
|
"pdf-parse": "1.1.1",
|
|
"react": "18.3.1",
|
|
"react-dom": "18.3.1",
|
|
"react-hook-form": "7.53.1",
|
|
"sonner": "1.7.4",
|
|
"tailwind-merge": "2.6.0",
|
|
"tailwindcss-animate": "1.0.7",
|
|
"ua-parser-js": "2.0.3",
|
|
"use-debounce": "10.0.4",
|
|
"zod": "3.24.2"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "3.3.1",
|
|
"@next/eslint-plugin-next": "15.2.3",
|
|
"@playwright/test": "1.51.1",
|
|
"@types/file-saver": "2.0.7",
|
|
"@types/node": "22.8.1",
|
|
"@types/pdf-parse": "1.1.4",
|
|
"@types/react": "18.3.12",
|
|
"@types/react-dom": "18.3.1",
|
|
"autoprefixer": "10.4.21",
|
|
"eslint": "9.23.0",
|
|
"eslint-config-next": "15.2.3",
|
|
"eslint-plugin-playwright": "2.2.0",
|
|
"husky": "9.1.7",
|
|
"knip": "5.46.0",
|
|
"lint-staged": "15.5.0",
|
|
"postcss": "^8",
|
|
"prettier": "3.5.3",
|
|
"prettier-plugin-tailwindcss": "0.6.11",
|
|
"tailwindcss": "3.4.14",
|
|
"typescript": "5.8.2",
|
|
"typescript-eslint": "8.28.0"
|
|
}
|
|
}
|