• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In
You are now the owner of this repo.

ThePalaceProject / web-patron
82%
main: 82%

Build:
Build:
LAST BUILD BRANCH: refs/tags/v0.14.0
DEFAULT BRANCH: main
Repo Added 22 Jul 2021 01:05AM UTC
Token NYLsywhVCNMt2ofO8m0o4lOLYk8jtzujj regen
Build 418 Last
Files 21
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH refs/tags/v0.14.0
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • PP-1631
  • PP-2191
  • PP-2191-update
  • PP-2240
  • PP-2243
  • PP-2283
  • PP-2310
  • PP-2463
  • PP-2666
  • PP-3296
  • PP-3655
  • PP-3680
  • PP-4041
  • PP-4048
  • PP-954
  • app-store-link
  • audiobook-support
  • bearer-token
  • bugfix/404-on-first-page-load
  • bugfix/authenticate-with-correct-href
  • bugfix/book-url-containing-http
  • bugfix/cancelled-failed-redirect-login
  • bugfix/containers-not-running
  • bugfix/fix-test-errors
  • bugfix/include-auth-doc-url-for-missing-catalog-root
  • bugfix/missing-login-error-message
  • bugfix/omit-unimplemented-basictoken-auth
  • bugfix/per-entry-feed-parsing
  • bugfix/saml-login-faiure-infinite-loop
  • bugfix/search-breadcrumbs
  • bugfix/too-much-registry-fetching
  • bugfix/webpack-build-error
  • chore/activate-runtime-config
  • chore/allow-saml-auth-switching
  • chore/bugsnag-and-gtm-via-env
  • chore/ci-improvements
  • chore/clean-up-expected-test-error-output
  • chore/clean-up-lint-issues
  • chore/dockerfile-cmd-exec-form
  • chore/dynamic-registry-support
  • chore/handle-redirect-auth-switching
  • chore/improve-cpw-startup
  • chore/missed-code-review-fix
  • chore/pp-4083-reload-static-libraries
  • chore/reduce-server-side-caching
  • chore/refactor-multilibraryhome-library-filtering
  • chore/remove-axisnow-decryptor
  • chore/remove-mybooks-page-signout-button
  • chore/request-logging
  • chore/run-ci-checks-in-container
  • chore/runtime-config-module
  • chore/server-side-registry-foundation
  • chore/test-multiple-node-versions
  • chore/trigger-config-load-on-startup
  • chore/update-dependencies
  • chore/update-libraries-config
  • chore/update-packages
  • chore/update-release-config
  • chore/update-some-dependencies
  • chore/use-camel-case-config
  • chore/use-central-jira-release-sync-action
  • chore/warnings-for-saml-signout
  • dependabot/npm_and_yarn/babel/core-7.29.6
  • dependabot/npm_and_yarn/babel/runtime-7.27.0
  • dependabot/npm_and_yarn/brace-expansion-1.1.12
  • dependabot/npm_and_yarn/brace-expansion-1.1.13
  • dependabot/npm_and_yarn/cross-fetch-3.1.5
  • dependabot/npm_and_yarn/decode-uri-component-0.2.2
  • dependabot/npm_and_yarn/dompurify-3.2.4
  • dependabot/npm_and_yarn/dompurify-3.3.2
  • dependabot/npm_and_yarn/dompurify-3.4.0
  • dependabot/npm_and_yarn/dompurify-3.4.11
  • dependabot/npm_and_yarn/dompurify-3.4.9
  • dependabot/npm_and_yarn/express-4.18.2
  • dependabot/npm_and_yarn/fast-uri-3.1.2
  • dependabot/npm_and_yarn/flatted-3.4.2
  • dependabot/npm_and_yarn/js-cookie-3.0.7
  • dependabot/npm_and_yarn/jsdom-16.5.0
  • dependabot/npm_and_yarn/json5-1.0.2
  • dependabot/npm_and_yarn/lodash-4.17.23
  • dependabot/npm_and_yarn/lodash-4.18.1
  • dependabot/npm_and_yarn/lodash-es-4.17.21
  • dependabot/npm_and_yarn/minimatch-3.1.5
  • dependabot/npm_and_yarn/minimist-1.2.6
  • dependabot/npm_and_yarn/minimist-1.2.8
  • dependabot/npm_and_yarn/moment-2.29.2
  • dependabot/npm_and_yarn/moment-2.29.4
  • dependabot/npm_and_yarn/multi-046d9124cb
  • dependabot/npm_and_yarn/multi-0d13b2d87f
  • dependabot/npm_and_yarn/multi-1576d89741
  • dependabot/npm_and_yarn/multi-4e67b7c87e
  • dependabot/npm_and_yarn/multi-75e6bc5210
  • dependabot/npm_and_yarn/multi-920648a0a8
  • dependabot/npm_and_yarn/multi-b736e7530d
  • dependabot/npm_and_yarn/multi-b82bf31249
  • dependabot/npm_and_yarn/multi-bf05dc1ecf
  • dependabot/npm_and_yarn/next-15.2.3
  • dependabot/npm_and_yarn/next-15.2.4
  • dependabot/npm_and_yarn/next-15.4.10
  • dependabot/npm_and_yarn/next-15.4.7
  • dependabot/npm_and_yarn/next-15.4.8
  • dependabot/npm_and_yarn/next-15.4.9
  • dependabot/npm_and_yarn/next-15.5.10
  • dependabot/npm_and_yarn/next-15.5.14
  • dependabot/npm_and_yarn/next-15.5.15
  • dependabot/npm_and_yarn/next-15.5.18
  • dependabot/npm_and_yarn/next-16.1.5
  • dependabot/npm_and_yarn/next-16.1.7
  • dependabot/npm_and_yarn/node-fetch-2.6.7
  • dependabot/npm_and_yarn/qs-6.14.2
  • dependabot/npm_and_yarn/qs-6.5.3
  • dependabot/npm_and_yarn/storybook-8.6.15
  • dependabot/npm_and_yarn/storybook-8.6.17
  • dependabot/npm_and_yarn/terser-4.8.1
  • dependabot/npm_and_yarn/tmp-0.2.4
  • dependabot/npm_and_yarn/tmp-0.2.7
  • dependabot/npm_and_yarn/urijs-1.19.10
  • dependabot/npm_and_yarn/urijs-1.19.11
  • dependabot/npm_and_yarn/urijs-1.19.8
  • dependabot/npm_and_yarn/urijs-1.19.9
  • feature/PP-4097-add-jira-release-sync-workflow
  • feature/book-series-metadata
  • feature/catalog-home-button
  • feature/configurable-default-media-support
  • feature/configuration-enhancements
  • feature/heuristic-slug-library-shortname
  • feature/home-page-link-titles
  • feature/library-card-signup
  • feature/multi-library-search
  • feature/oidc-auth-handler
  • feature/oidc-logout-support
  • feature/opds2-feed-handling
  • feature/patron-dropdown
  • feature/preview-button
  • feature/reset-pw-link
  • feature/saml-logout-support
  • feature/sort-library-list-by-name
  • feature/support-item-level-catalog-urls
  • feature/suppress-unsupported-auth-mechanisms
  • feature/upgrade-to-changelog-enforcer-3.3.0
  • feature/use-new-gh-actions-environment-files
  • feature/validate-some-responses
  • feature/version-info
  • main
  • no-password-login
  • play-store-link
  • refactor/prominent-web-reader-button
  • refs/tags/test-release
  • refs/tags/test-release-2
  • refs/tags/v0.1.0
  • refs/tags/v0.1.1
  • refs/tags/v0.10.0
  • refs/tags/v0.11.0
  • refs/tags/v0.12.0
  • refs/tags/v0.13.0
  • refs/tags/v0.13.1
  • refs/tags/v0.14.0
  • refs/tags/v0.2.1
  • refs/tags/v0.3.0
  • refs/tags/v0.4.0
  • refs/tags/v0.4.1
  • refs/tags/v0.5.0
  • refs/tags/v0.6.0
  • refs/tags/v0.7.0
  • refs/tags/v0.8.0
  • refs/tags/v0.9.0
  • restore-branding
  • revert-branding
  • search-all-langs
  • sync-with-nypl
  • test-pr
  • update-actions
  • update-logo
  • upgrade_next
  • working/upgrade-without-legacy-peer-deps

22 Jul 2026 08:03PM UTC coverage: 81.781% (+0.5%) from 81.303%
29955114804

push

github

web-flow
OPDS 2 support MVP (PP-2718) (#166)

## Description

Adds OPDS 2 (JSON) support as a format-agnostic alternative to the
existing OPDS 1.x (Atom/XML) catalog client, gated behind a feature
flag.
- New format-agnostic fetch layer (`dataflow/catalog.ts`) negotiates
OPDS 2 via an `Accept` header and dispatches to an OPDS 2 or OPDS 1.x
parser based on the response's `Content-Type`. Servers that don't serve
OPDS 2 (or ignore the header) fall back to the existing (and unchanged)
Atom parser. All call sites that previously imported
`fetchCollection`/`fetchBook` from `dataflow/opds1/fetch` now import
them from here instead.
- New OPDS 2 catalog parser and lenient runtime validation
(`dataflow/opds2/`, `validation/opds2Catalog.ts`) map Palace
Manager-produced OPDS 2 JSON into the same internal
`Book`/`CollectionData` model the OPDS 1 parser produces, including
borrow/hold/loan status, fulfillment and open-access links (with
indirection chains, e.g. bearer-token-wrapped or streaming formats),
series, and facets/groups/navigation. Schema mismatches are reported as
telemetry only and never block rendering.
- Feature flag env var `PALACE_CPW_FEATURE_OPDS2` controls whether OPDS
2 negotiation is attempted; off by default.

**Supporting changes**: 
- OPDS-entry indirection types are normalized between the two spec's
differing media-type spellings.
- `getMedium` now recognizes OPDS 2's `@type` metadata.

**Note for review**: 
- `jest.config.js` now sets `restoreMocks: true` so spies auto-restore
after each test, fixing a latent footgun that I noticed after forgetting
to manually `mockRestore()`. It could leak a mock into later tests. It
is unrelated to OPDS 2 but was needed to keep the new OPDS 2 test suites
isolated from each other, and it required moving a handful of
pre-existing module-scope spies into `beforeEach` in files that I
wouldn't have otherwise touched: `
- test-utils/mockToDateString.ts`, 
- `test-utils/index.tsx`, 
- `UserContext.test.tsx`, 
- `ContextP... (continued)

296 of 393 branches covered (75.32%)

Branch coverage included in aggregate %.

15 of 15 new or added lines in 5 files covered. (100.0%)

503 of 584 relevant lines covered (86.13%)

29.74 hits per line

Relevant lines Covered
Build:
Build:
584 RELEVANT LINES 503 COVERED LINES
29.74 HITS PER LINE
Source Files on main
  • Tree
  • List 21
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
29955114804 refs/tags/v0.14.0 OPDS 2 support MVP (PP-2718) (#166) ## Description Adds OPDS 2 (JSON) support as a format-agnostic alternative to the existing OPDS 1.x (Atom/XML) catalog client, gated behind a feature flag. - New format-agnostic fetch layer (`dataflow/catalog.... push 22 Jul 2026 08:28PM UTC web-flow github
81.78
29953578263 main OPDS 2 support MVP (PP-2718) (#166) ## Description Adds OPDS 2 (JSON) support as a format-agnostic alternative to the existing OPDS 1.x (Atom/XML) catalog client, gated behind a feature flag. - New format-agnostic fetch layer (`dataflow/catalog.... push 22 Jul 2026 08:05PM UTC web-flow github
81.78
29952716164 feature/opds2-feed-handling Update deployment configuration Pull #166 22 Jul 2026 07:53PM UTC tdilauro github
81.78
29884254180 feature/opds2-feed-handling Code review feedback Pull #166 22 Jul 2026 01:53AM UTC tdilauro github
81.72
29876734992 main Code review feedback for #164 (PP-3760) (#167) ## Description Code review feedback for #164. ## Motivation and Context I prematurely merged #164. [Jira PP-3760] ## How Has This Been Tested? - All tests still pass. ## Checklist: - N/A - ... push 21 Jul 2026 11:20PM UTC web-flow github
81.3
29875753862 feature/support-item-level-catalog-urls Code review feedback push 21 Jul 2026 11:02PM UTC tdilauro github
81.3
29875529455 feature/support-item-level-catalog-urls Code review feedback push 21 Jul 2026 10:58PM UTC tdilauro github
81.3
29875491401 main Experimental canonical resource URL support POC (PP-3760) (#164) ## Description - Adds an experimental cross-library item landing page at `/{landing-slug}/{workId}` (default slug: `_item_`), giving each work a canonical URL that is not tied to a... push 21 Jul 2026 10:58PM UTC web-flow github
81.3
29870582868 main Support alternate SAML auth flow via the "force_authn=true" param (PP-4792) (#165) ## Description Adds a "Use a different account" option to the SAML login error and cancelled-login screens, the SAML analogue of the OIDC account switching added ... push 21 Jul 2026 09:37PM UTC web-flow github
88.5
29867770774 feature/opds2-feed-handling Refactor and fix some tests push 21 Jul 2026 08:56PM UTC tdilauro github
88.86
See All Builds (396)

Badge your Repo: web-patron

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc