-
Notifications
You must be signed in to change notification settings - Fork 16
I fix yur codes #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
chrisle
wants to merge
71
commits into
evanpurkhiser:main
Choose a base branch
from
chrisle:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
I fix yur codes #18
Conversation
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
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
|
@chrisle is attempting to deploy a commit to the evanpurkhiser's projects Team on Vercel. A member of the Team first needs to authorize it. |
d21ff78 to
801565b
Compare
- Add telemetry wrapper that disables Sentry by default - Enable telemetry via PROLINK_CONNECT_TELEMETRY=true env var - Add prepare script to build on git install - Add prepublishOnly script for npm publish - Update all source files to use telemetry wrapper
Add reuseAddr option to UDP sockets to allow binding to ports that may already be in use by Rekordbox. Also adds cap dependency for packet capture support.
Removes NP_PRODJLINK_TAG debug logging that was added for development. The status emitter now operates silently without verbose console output.
Applies prettier formatting to telemetry utility functions.
Fixes curly brace style for single-line if statements, adds comments to intentional no-op functions, and removes unnecessary async keyword.
Adds ability to extract embedded artwork directly from audio files on CDJ media (USB/SD) via NFS, enabling high-resolution artwork retrieval instead of relying on rekordbox thumbnails. Features: - NFS partial/range reads via fetchFileRange() for efficient byte fetching - Parsers for ID3v2 (MP3), MP4/M4A, FLAC, and AIFF with embedded ID3 - FileReader abstraction for testability (NFS and Buffer sources) - Database integration via getArtworkFromFile() method - Support for JPEG, PNG, and GIF artwork formats Supported file formats: - MP3 with ID3v2.3/2.4 APIC frames - M4A/MP4 with covr atoms - FLAC with PICTURE metadata blocks - AIFF with embedded ID3 chunks
- getArtwork() is now the primary method for artwork (extracts from audio file) - getArtworkThumbnail() gets low-res thumbnails from rekordbox database - getArtworkFromFile() is deprecated, calls getArtwork()
Adds a new passive monitoring mode that uses packet capture (pcap) instead of binding to UDP ports. This enables: - Running alongside Rekordbox without port conflicts - USB-connected device support (XDJ-XZ, XDJ-AZ) - Non-intrusive monitoring (devices don't know we exist) - RemoteDB queries for Rekordbox Link track metadata - AlphaTheta device auto-detection via USB and Ethernet (MAC prefix) New exports: `bringOnlinePassive()`, `PassiveProlinkNetwork`, and `findAlphaThetaInterface()`. Includes example script for testing.
Adds mock handler for Kaitai Struct parser files to prevent import errors during tests. Updates jest config to handle these binary parsers.
Adds unit tests for local database functionality including: - ANLZ file parsing (cue points, waveforms, beat grids) - SQLite database loading and validation - OneLibrary adapter for browsing playlists and tracks - Edge cases and error handling Includes test fixtures with a sample OneLibrary database and helpers for creating test data.
Applied consistent code formatting across the codebase and added TypeScript interfaces for the OneLibrary SQLite schema. Also made bringOnlinePassive synchronous since it doesn't perform any async operations. - New onelibrary-schema.ts with TypeScript interfaces for exportLibrary.db - Import ordering sorted alphabetically - Consistent line wrapping and formatting - bringOnlinePassive now returns synchronously
The cap module is required for passive packet capture mode but not for normal active mode. Moving it to optionalDependencies allows prolink-connect to be installed even if cap fails to build (e.g., missing libpcap).
All-in-one units don't broadcast mediaSlot info packets like standalone CDJs do. Added getWithoutMedia() fallback that attempts to fetch the rekordbox database via NFS directly when no media info is cached. Also added debug logging for mediaSlot broadcasts and unknown packet types.
…k networks Added new function that returns all detected AlphaTheta/Pioneer interfaces instead of just the first one. This enables users to choose which interface to use when multiple DJ devices are connected via different methods (USB and Ethernet). Includes tests.
Updated main README to highlight AlphaTheta/all-in-one controller support, OneLibrary, 6-channel support, and other new features. Added comprehensive passive mode documentation explaining interface detection methods and usage examples. Added Thanks To section crediting contributors.
Remove NP_PRODJLINK_TAG and NP_PROFILE_HYDRATION environment variable checks and associated console.log debug output that was added for NowPlaying development but doesn't belong in the library.
Introduced DatabaseAdapter interface to support multiple database formats:
- MetadataORM (existing rekordbox PDB format)
- OneLibraryAdapter (new OneLibrary format)
Added database preference setting ('auto', 'onelibrary', 'rekordbox') to
control which format to use when both are available. The adapter provides
a unified interface for track/artist/album lookups regardless of format.
Add research notes covering absolute position tracking, all-in-one unit support, extended ANLZ data, full startup sequences, and on-air channel detection.
Update package name, npm bin entry, README badges, and all import examples to use the new alphatheta-connect name. This reflects the rebranding of Pioneer DJ to AlphaTheta Corporation.
Updated package name, README description, and CLI binary name to reflect the AlphaTheta branding.
Add extractMetadataFromDevice() function that extracts complete metadata (title, artist, album, BPM, key, artwork) from audio files via NFS by reading only file headers instead of downloading entire files. - Create src/metadata.ts with extractMetadataFromDevice function - Add extractFullMetadata for raw NFS file data - Export new functions from package index - Add metadata-connect as dependency for format parsing - Add related projects section to README
Split the 900-line OneLibrary database adapter into separate modules for better maintainability: - onelibrary/encryption.ts - SQLCipher key derivation - onelibrary/connection.ts - Database connection setup - onelibrary/types.ts - Entity type interfaces - onelibrary/adapter.ts - Main adapter class - onelibrary/index.ts - Re-exports for clean imports Original onelibrary.ts now re-exports from the folder for backward compatibility. All existing imports continue to work unchanged.
Split the 670-line rekordbox database adapter into separate modules for better maintainability: - rekordbox/types.ts - Type definitions and interfaces - rekordbox/entity-creators.ts - PDB row to entity converters - rekordbox/anlz-parsers.ts - ANLZ section parsing functions - rekordbox/hydrator.ts - Database hydration class - rekordbox/table-mappings.ts - PDB table type mappings - rekordbox/index.ts - Main API functions and re-exports Original rekordbox.ts now re-exports from the folder for backward compatibility. All existing imports continue to work unchanged.
Updated the `package-lock.json` and `yarn.lock` files to reflect the latest dependencies. This ensures that the project uses the correct versions of packages for consistent builds.
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.
[v0.14.0] - 2026-01-16
Changed
Added
NP_PROFILE_HYDRATION=1environment variableNP_PRODJLINK_TAG=1environment variable[v0.13.0] - 2025-12-15
Added
network.configure({ vcdjName })PROLINK_CONNECT_SENTRY_DSNenvironment variableChanged
Fixed
ItemType.OriginalArtist(was misspelled asOrigianlArtist)