Added features, build process, fixed bugs, security hardened, performance tests#2
Open
mountaindude wants to merge 126 commits intoMuellerConstantin:mainfrom
Open
Added features, build process, fixed bugs, security hardened, performance tests#2mountaindude wants to merge 126 commits intoMuellerConstantin:mainfrom
mountaindude wants to merge 126 commits intoMuellerConstantin:mainfrom
Conversation
Co-authored-by: mountaindude <1029262+mountaindude@users.noreply.github.com>
Co-authored-by: mountaindude <1029262+mountaindude@users.noreply.github.com>
…adata Expose all file and field metadata on QVD data frames
Co-authored-by: mountaindude <1029262+mountaindude@users.noreply.github.com>
Co-authored-by: mountaindude <1029262+mountaindude@users.noreply.github.com>
…aller-files Split qvd.js into smaller, more manageable files
Co-authored-by: mountaindude <1029262+mountaindude@users.noreply.github.com>
…sses Add custom error classes for better error handling
Co-authored-by: mountaindude <1029262+mountaindude@users.noreply.github.com>
…ctions docs: Configure Copilot instructions with Conventional Commits standard
- Add validation to head(n): reject negative, non-integer, NaN, and Infinity values - Add validation to tail(n): reject negative, non-integer, NaN, and Infinity values - Add validation to rows(...args): reject non-integer and out-of-bounds indices - Add validation to at(row, column): reject invalid rows and non-existent columns - Add validation to select(...args): reject non-existent column names - Fix tail(0) edge case to return empty array instead of all rows - Use existing QvdValidationError class for consistent error handling - Add @throws JSDoc annotations to document error conditions - Include helpful context in error messages (provided value, valid ranges, available columns) - Add 39 comprehensive test cases in input-validation.test.js covering all edge cases - All 82 tests passing with improved coverage Co-authored-by: mountaindude <1029262+mountaindude@users.noreply.github.com>
…-to-qvddataframe feat: add comprehensive input validation to QvdDataFrame methods
…-to-qvddataframe
Co-authored-by: mountaindude <1029262+mountaindude@users.noreply.github.com>
… for multiple platforms and Node.js versions
…ity and organization - Renamed "Multi-Platform Test Solution Design" to "Testing Documentation" in README.md - Revised purpose and audience descriptions for better understanding - Enhanced key highlights and quick links in README.md - Updated test architecture and execution flow diagrams in TESTING.md - Improved test organization section with clearer categorization - Expanded platform coverage details and Node.js version strategy - Added security testing strategies and detailed test coverage examples - Streamlined self-hosted runner setup instructions for all platforms - Clarified development workflow and FAQ sections
…reamline steps for multiple platforms
…es checkout process
…onverting raw values to symbols, plus associated test
…VD writes - Add optional onProgress callback to toQvd() for real-time progress tracking - Optimize symbol table building with single-pass data iteration - Optimize index table building with Map-based O(1) lookups instead of O(n) findIndex - Reduce algorithmic complexity from O(n×m×s) to O(n×m) - Add comprehensive tests for progress callbacks and performance - Add progress demo example - Update documentation with progress tracking and performance optimization details Co-authored-by: mountaindude <1029262+mountaindude@users.noreply.github.com>
Co-authored-by: mountaindude <1029262+mountaindude@users.noreply.github.com>
…cks-performance-improvements feat: add progress callbacks and performance improvements for large QVD file writes
Owner
|
Wow, just wow! Thanks a lot for your effort. I'm definitely ready to commit the code to the library, but I'll need some time to review the changes. I'll especially need to check the CI/CD configuration and the GitHub Pages settings when I get home. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I ended up hanging out with Copilot for some hours today, working on this.
It's a significant change, but commit messages should be pretty informative/relevant.
Things look good based on the test cases both in the lib and in a couple of other projects where I have used the lib, but it's still too early to call the PR a success. I will keep using my new lib version during coming days and update the lib as/if needed.
Still, I wanted to share this with you to give you a chance to decide if you want to walk down the path of including this in your qvd4js project. If not I might publish my own npm lib as I really need a way of sharing this code across several projects/environments/developers.
Here is the GitHub workflow:

GitHub Pages page showing which performance tracking subpages there are:

A specific perf tracking subpage:
