build(deps): Lock file maintenance#857
Open
renovate[bot] wants to merge 73 commits into
Open
Conversation
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- Updated dependencies after merging with develop branch - Restored PR dependency versions (Jest 30.x, Papr 17.x, etc.) - All 322 tests passing - Coverage thresholds exceeded
- Fix z.record() API for Zod 4.x (now requires value type argument) - Update Jest config with babel-jest transformer for Papr 17.x ESM support - Add coverage thresholds (85/80/85/85) and proper transform patterns - Fix error handler type guard for Fastify 5.x compatibility - Add complete CodeRabbit configuration with assertive profile and pre_merge_checks - Improve StitchHelper test mock isolation - Add babel-jest dependency for better ESM handling
…ependencies - Add blank lines before/after code block in AGENTS.md for proper rendering - Move typescript from dependencies to devDependencies
Add explicit pre-check steps and critical warning before force-pushing to main, including git fetch origin/main and git log verification to confirm no other pushes have occurred.
…gents-md feat(deps): comprehensive dependency updates with AGENTS.md
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Some Audible books (e.g., B08PC8N4NC) have 12-digit category IDs
that were failing validation during update=1 requests.
Changed regex from /^\d{10}$|^\d{11}$/ to /^\d{10,12}$/ to
accept 10-12 digit genre ASINs.
Fixes #819
Add live tests to detect when Audible genre/category IDs exceed the expected 10-12 digit pattern. This will warn if Audible changes to use different digit lengths. Tests validate category_ladders from real API responses across multiple books and regions. Related to #819
- Make program_participation optional in podcastShape (types.ts:213) - Make social_media_images optional in baseShape (types.ts:201) - Add test data for ASINs B09X27Z3QL and B0GFYFCX3D - Add tests for parsing content without these optional fields Fixes issues #829 and #830 from production error logs. All 324 tests pass, coverage maintained: - Statements: 97.73% (threshold: 85%) - Branches: 95.32% (threshold: 80%) - Functions: 97.02% (threshold: 85%) - Lines: 97.91% (threshold: 85%)
- Export baseShape from types.ts for external use - Add pre-validation check in ApiHelper.parseResponse for content_delivery_type - Implement fallback to baseShape parsing when content_delivery_type is missing/unknown - Add warning log for unknown content_delivery_type values - Only throw 'region unavailable' when baseShape also fails - Add test data for ASINs B0GM8R53L2, B0CYDDN594, B08Y2NYFBY without content_delivery_type - Add 3 tests for content_delivery_type fallback scenarios Fixes Issue #828 (~481 production errors). All 327 tests pass, coverage maintained: - Statements: 97.75% (threshold: 85%) - Branches: 95.16% (threshold: 80%) - Functions: 97.02% (threshold: 85%) - Lines: 97.94% (threshold: 85%)
…seShape Based on investigation of Issue #831: - ASIN field was NOT missing - other required fields were - Audible API returns incomplete metadata for some products - Made non-critical fields optional to handle incomplete responses: - copyright: can be missing - publisher_summary: has merchandising_summary alternative - rating: not all books have ratings Also fixed copyright handling in ApiHelper to safely handle undefined. All 327 tests pass, coverage maintained: - Statements: 97.67% (threshold: 85%) - Branches: 94.96% (threshold: 80%) - Functions: 97.02% (threshold: 85%) - Lines: 97.94% (threshold: 85%)
Fix TypeScript error where response.rating can now be undefined after making rating optional in baseShape schema.
Replace unsafe 'as unknown as' cast with explicit FallbackAudibleProduct type that includes content_delivery_type: 'Unknown' discriminant. Update getFinalData and series methods to check for 'Unknown' before accessing series-specific fields. Also remove unused test dataset exports (bookWithoutContentDeliveryType2 and bookWithoutContentDeliveryType3) from test data file.
fix(schema): resolve validation errors causing ~500 production failures
- Create GitHub Actions workflow for automated Coolify deployments - Workflow builds Docker image and pushes to ghcr.io - Triggers Coolify deployment via API with Bearer token authentication - Add comprehensive Coolify deployment documentation to README - Update AGENTS.md with CI/CD deployment workflows section - Requires COOLIFY_WEBHOOK and COOLIFY_TOKEN secrets
… healthcheck start_period - Update deploy-coolify.yml to push 'develop' tag when building from develop branch - Increase docker-compose.develop.yml healthcheck start_period from 10s to 30s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
- The health endpoint has a 5s timeout for MongoDB/Redis pings - Docker healthcheck only waited 3s for curl to complete - Increasing to 10s gives curl enough time to complete before Docker marks container as unhealthy
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
The health route was attempting to connect to MongoDB during Fastify plugin registration, which could fail and prevent the route from being registered. Now the route registers immediately and only checks MongoDB/Redis when a request comes in. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…deployment Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Removed 3 tests with incorrect assumptions: - 'initialize MongoClient when not pre-populated' - health route does NOT create MongoClient - 'throw error when MONGODB_URI is not set' - health route does NOT check MONGODB_URI - 'call mongoClientCleanup on server close' - health route does NOT register onClose hooks
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Remove NODE_ prefix from environment variables in Coolify and Docker Swarm deployment sections, as the actual code uses MONGODB_URI, REDIS_URL, etc. without the prefix.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
- Create scripts/backup-mongodb.sh for daily MongoDB dumps using mongodump - Create scripts/borg-backup.sh for Borg backup wrapper with retention policies - Create scripts/setup-backup.sh for one-time setup and configuration - Create .borgbackup/config with MongoDB connection and backup settings - Configure retention: 7 daily, 4 weekly, 12 monthly backups - Support compression, encryption, and automated scheduling via systemd/cron
…fy logger (#836) * feat(errors): add custom error classes with HTTP status codes and switch to Fastify logger - Add ApiErrors.ts with NotFoundError, BadRequestError, and ApiError base class - Replace custom logger with Fastify's built-in logger across all helpers - Update route handlers to use new error classes for proper HTTP responses Fixes #827 Fixes #470
) * fix(scraper): update book genre selectors for new Audible HTML structure Update genre extraction selectors to match current Audible HTML structure Ultraworked with Sisyphus Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * fix(scraper): remove genre extraction from author pages Author pages no longer contain genre links. Return empty array instead. Ultraworked with Sisyphus Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * test(live): update ASIN for unavailable content test Previous ASIN B0036I54I6 is now available in US region. Changed to B07V2K2N5L. Ultraworked with Sisyphus Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * test(scraper): update test data for new Audible HTML structure Update test mocks and expectations to match new scraper behavior: - Author tests: expect empty genres array (genres removed from author pages) - Book tests: update mock HTML to use /tag/ URLs for genres - Update test data exports to include similar authors for genre-less authors Ultraworked with Sisyphus Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * test(api-live): add availability check for unavailable ASIN tests Modify the live test for unavailable content detection to first check availability using ApiHelper/fetchBook/parseResponse before asserting rejection. This prevents test failures when ASINs become available. - Add unavailableAsins allowlist for known unavailable ASINs - Add isInUnavailableAllowlist() helper function - Add checkAvailability() helper that validates response structure - Skip test with warning when ASIN becomes available instead of failing Fixes flakiness in live tests when external data changes. --------- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
* feat(errors): add ContentTypeMismatchError and ValidationError classes
* feat(messages): add content type and validation error messages
* feat(books): detect content type mismatches in ApiHelper
* feat(authors): detect content type mismatches in ScrapeHelper
* feat(chapters): detect content type mismatches for chapter requests
* feat(server): update error handler for structured error responses
* test: update integration tests for new error handling
* docs: document new error response format and breaking changes
* style: fix lint errors in test files
* fix: address review feedback - improve error message grammar and catch specificity
* refactor(server): update error handler for structured error responses
- Update fallback error handler to return { error: { code, message, details } }
- Add RATE_LIMIT_EXCEEDED code for rate limit errors
- Fix rate limit error handling to return proper response
docs: fix error JSON examples in CHANGELOG and README
- Remove redundant code field from error.details in examples
- Fix invalid JSON comment (//) with null value
- Update prose to state details is optional
- Remove duplicate literatureType entry from v1.9.0 section
test: add ContentTypeMismatchError branch coverage
- ScrapeHelper: test when isBookPage returns true (book page detected)
- ChapterHelper: test validateContentType with invalid types (Podcast,
undefined, AudibleOriginal)
* docs: document RATE_LIMIT_EXCEEDED error code
refactor(helper): use centralized ErrorMessageContentTypeMismatch for consistent error messages
test(helpers): consolidate duplicate tests with test.each and try/catch patterns
* docs(readme): add RATE_LIMIT_EXCEEDED example with retryAfter field
test(scrape): replace fail() with expect.assertions and throw new Error
* docs(readme): rename retryAfter to retryAfterSeconds for clarity
---------
Co-authored-by: GitHub Bot <bot@example.com>
| export MONGODB_HOST="dw4cwkk0kkcgwgsck8co88ss" | ||
| export MONGODB_PORT="27017" | ||
| export MONGODB_USER="audnexus" | ||
| export MONGODB_PASSWORD="fNO7QokATLr5I7ah482IH9SJKxywzVwy1SFKQVqnYg9zErVlBPP67QJk8JdZsaJM" |
Check notice
Code scanning / SonarCloud
Credentials should not be hard-coded Low
Contributor
Author
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
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.
This PR contains the following updates:
🔧 This Pull Request updates lock files to use the latest dependency versions.
Configuration
📅 Schedule: Branch creation - "before 4am on monday" in timezone CST, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.