Skip to content

build(deps): Lock file maintenance#857

Open
renovate[bot] wants to merge 73 commits into
developfrom
renovate/lock-file-maintenance
Open

build(deps): Lock file maintenance#857
renovate[bot] wants to merge 73 commits into
developfrom
renovate/lock-file-maintenance

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Mar 16, 2026

This PR contains the following updates:

Update Change
lockFileMaintenance All locks refreshed

🔧 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

renovate Bot and others added 30 commits February 9, 2026 22:46
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
renovate Bot and others added 27 commits February 11, 2026 20:46
- 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>
@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Mar 16, 2026
Comment thread .borgbackup/config
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

Make sure these credentials get revoked, changed, and removed from the code. See more on SonarQube Cloud
@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented Mar 16, 2026

Edited/Blocked Notification

Renovate 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.

⚠️ Warning: custom changes will be lost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants