Conversation
WalkthroughThis update extensively refactors the documentation site's assets and generated pages. It introduces new search, navigation, and hierarchy data, updates the embedded search library, overhauls the main JavaScript and CSS for accessibility, theming, and UI, and regenerates all class and enum HTML documentation with improved structure, accessibility, and consistency. Two enumerations gain new members. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~40 minutes Possibly related PRs
Suggested reviewers
Poem
Note ⚡️ Unit Test Generation is now available in beta!Learn more here, or try it out under "Finishing Touches" below. ✨ Finishing Touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (3)
packages/xrpl/HISTORY.md (1)
7-17: Changelog entry looks good – just keep “Unreleased” tidy.The new 4.4.0 section is well-formatted and dated.
After publishing the release, remember to move this block below “## Unreleased” (or remove the empty “Unreleased” header) so the history stays chronological.packages/ripple-binary-codec/HISTORY.md (2)
5-5: Keep release-date formatting consistent across entriesPrevious entries (e.g.,
2.4.1 (2025-6-18)) omit the leading zero for single-digit months, whereas the new entry uses07in2025-07-29. Pick one convention and apply it everywhere to avoid subtle merge conflicts and visual noise in future diffs.Example fix (if you prefer no leading zero, matching the surrounding lines):
-## 2.5.0 (2025-07-29) +## 2.5.0 (2025-7-29)
9-9: Align bullet-point wording with existing styleMost bullets start with “Support for …” or “Add/Added …”. The phrase “Adds new” is a bit redundant. For consistency and terseness, consider:
-* Adds new `STNumber` serialization type. +* Add `STNumber` serialization type.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (6)
packages/ripple-binary-codec/HISTORY.md(1 hunks)packages/ripple-binary-codec/package.json(1 hunks)packages/secret-numbers/HISTORY.md(1 hunks)packages/secret-numbers/package.json(1 hunks)packages/xrpl/HISTORY.md(1 hunks)packages/xrpl/package.json(1 hunks)
🧰 Additional context used
🧠 Learnings (7)
📓 Common learnings
Learnt from: shawnxie999
PR: XRPLF/xrpl.js#2661
File: packages/xrpl/test/integration/transactions/mptokenAuthorize.test.ts:29-118
Timestamp: 2024-12-06T19:25:15.376Z
Learning: In the XRPLF/xrpl.js TypeScript client library, when writing tests (e.g., in `packages/xrpl/test/integration/transactions/`), we generally do not need to test rippled server behaviors, because those behaviors are covered by rippled's own integration and unit tests.
Learnt from: mvadari
PR: XRPLF/xrpl.js#2690
File: packages/xrpl/tools/generateModels.js:18-18
Timestamp: 2024-10-08T16:29:11.194Z
Learning: `SField.cpp` and `TxFormats.cpp` are located in the `rippled` repository (`https://github.com/XRPLF/rippled/`), not in the current repository.
Learnt from: ckeshava
PR: XRPLF/xrpl.js#3027
File: packages/xrpl/src/models/ledger/MPTokenIssuance.ts:13-16
Timestamp: 2025-06-26T17:25:36.429Z
Learning: In the XRPL ecosystem, type choices for amount fields (like `number` vs `string`) in ledger objects such as `LockedAmount` vs `OutstandingAmount` in `MPTokenIssuance` are deliberate design decisions made across multiple products and cannot be changed unilaterally by individual contributors.
Learnt from: mvadari
PR: XRPLF/xrpl.js#2779
File: packages/xrpl/HISTORY.md:10-14
Timestamp: 2024-10-11T18:48:28.561Z
Learning: Ensure to reference the correct version numbers when commenting on changes to `HISTORY.md` to avoid confusion.
packages/secret-numbers/HISTORY.md (1)
Learnt from: mvadari
PR: #2779
File: packages/xrpl/HISTORY.md:10-14
Timestamp: 2024-10-11T18:48:28.561Z
Learning: Ensure to reference the correct version numbers when commenting on changes to HISTORY.md to avoid confusion.
packages/xrpl/package.json (7)
Learnt from: shawnxie999
PR: #2661
File: packages/xrpl/test/integration/transactions/mptokenAuthorize.test.ts:29-118
Timestamp: 2024-12-06T19:25:15.376Z
Learning: In the XRPLF/xrpl.js TypeScript client library, when writing tests (e.g., in packages/xrpl/test/integration/transactions/), we generally do not need to test rippled server behaviors, because those behaviors are covered by rippled's own integration and unit tests.
Learnt from: mvadari
PR: #2788
File: .github/workflows/nodejs.yml:25-25
Timestamp: 2024-09-26T21:14:56.813Z
Learning: In .github/workflows/nodejs.yml, the build-and-lint job's actions actions/setup-node and actions/cache are updated to @v4.
Learnt from: mvadari
PR: #2801
File: packages/xrpl/test/models/Batch.test.ts:0-0
Timestamp: 2025-04-16T15:22:45.633Z
Learning: Using as any type assertions is acceptable in test files for the XRPL.js project, as strict typing is not required for test code.
Learnt from: ckeshava
PR: #2873
File: packages/xrpl/test/integration/transactions/trustSet.test.ts:0-0
Timestamp: 2025-01-31T17:46:25.375Z
Learning: For the XRPL implementation, extensive test cases for deep freeze behavior (high/low side interactions, clearing flags, etc.) are maintained in the C++ implementation and don't need to be duplicated in the JavaScript implementation.
Learnt from: mvadari
PR: #2829
File: packages/xrpl/src/models/methods/ledgerEntry.ts:74-85
Timestamp: 2024-12-12T01:12:01.868Z
Learning: In the XRPL.js library, request parameters use camelCase (e.g., credentialType), while transaction model fields follow the XRP Ledger protocol's PascalCase convention (e.g., CredentialType).
Learnt from: ckeshava
PR: #2874
File: packages/xrpl/src/models/ledger/PermissionedDomain.ts:3-8
Timestamp: 2025-01-08T02:08:00.476Z
Learning: In xrpl.js, the Credential interface must maintain a nested structure with a Credential property containing Issuer and CredentialType fields to mirror the structure defined in the rippled codebase.
Learnt from: mvadari
PR: #2801
File: packages/xrpl/test/wallet/batchSigner.test.ts:0-0
Timestamp: 2025-04-16T15:28:21.204Z
Learning: In the XRPL.js library, hardcoded seeds in test files are acceptable as they don't represent protected data or real funds - they're only used for consistent test behavior.
packages/secret-numbers/package.json (1)
Learnt from: mvadari
PR: #2801
File: packages/xrpl/test/wallet/batchSigner.test.ts:0-0
Timestamp: 2025-04-16T15:28:21.204Z
Learning: In the XRPL.js library, hardcoded seeds in test files are acceptable as they don't represent protected data or real funds - they're only used for consistent test behavior.
packages/ripple-binary-codec/package.json (2)
Learnt from: shawnxie999
PR: #2661
File: packages/xrpl/test/integration/transactions/mptokenAuthorize.test.ts:29-118
Timestamp: 2024-12-06T19:25:15.376Z
Learning: In the XRPLF/xrpl.js TypeScript client library, when writing tests (e.g., in packages/xrpl/test/integration/transactions/), we generally do not need to test rippled server behaviors, because those behaviors are covered by rippled's own integration and unit tests.
Learnt from: mvadari
PR: #2690
File: packages/xrpl/tools/generateModels.js:18-18
Timestamp: 2024-10-08T16:29:11.194Z
Learning: SField.cpp and TxFormats.cpp are located in the rippled repository (https://github.com/XRPLF/rippled/), not in the current repository.
packages/ripple-binary-codec/HISTORY.md (2)
Learnt from: mvadari
PR: #2690
File: packages/xrpl/tools/generateModels.js:18-18
Timestamp: 2024-10-08T16:29:11.194Z
Learning: SField.cpp and TxFormats.cpp are located in the rippled repository (https://github.com/XRPLF/rippled/), not in the current repository.
Learnt from: mvadari
PR: #2779
File: packages/xrpl/HISTORY.md:10-14
Timestamp: 2024-10-11T18:48:28.561Z
Learning: Ensure to reference the correct version numbers when commenting on changes to HISTORY.md to avoid confusion.
packages/xrpl/HISTORY.md (3)
Learnt from: mvadari
PR: #2779
File: packages/xrpl/HISTORY.md:10-14
Timestamp: 2024-10-11T18:48:28.561Z
Learning: Ensure to reference the correct version numbers when commenting on changes to HISTORY.md to avoid confusion.
Learnt from: ckeshava
PR: #2874
File: packages/xrpl/test/integration/transactions/permissionedDomain.test.ts:25-80
Timestamp: 2025-01-08T02:12:28.489Z
Learning: For PermissionedDomain feature (XLS-80d), complex error cases like invalid credential format, duplicate credentials, and non-existent DomainID are tested in the rippled C++ implementation rather than being duplicated across SDK implementations like xrpl.js.
Learnt from: ckeshava
PR: #2874
File: packages/xrpl/test/integration/transactions/permissionedDomain.test.ts:25-80
Timestamp: 2025-01-08T02:12:28.489Z
Learning: The rippled C++ implementation (PR #5161) includes comprehensive test coverage for PermissionedDomain (XLS-80d) error cases. The JS SDK tests focus on the happy path since the error cases are already validated at the rippled level, following the principle of not duplicating complex validation testing across SDK implementations.
🔇 Additional comments (3)
packages/secret-numbers/HISTORY.md (1)
7-11: Release notes accepted.Version header and date align with the package.json bump, and the single breaking-change bullet is clear.
packages/ripple-binary-codec/package.json (1)
3-4: Version bump OK – ensure dependents update their range.The move to 2.5.0 is fine here, but make sure all packages that import
ripple-binary-codec(e.g.,xrpl) raise their dependency spec so consumers don’t silently stay on 2.4.x.packages/secret-numbers/package.json (1)
3-4: Version bump acknowledged.Major version increment matches HISTORY.md and updated bundle filenames; no further action required.
|
@ckeshava Release step 5 is recently added to make sure that artifacts are deleted and regenerated. Please make sure that you execute this step before building and publishing the artifacts to npm. https://github.com/XRPLF/xrpl.js/blob/main/CONTRIBUTING.md#release |
…ub Actions CI pipelines. However, this commit ensures that readers of the code-repository use the latest docs. This is required until we completely retire the use of the docs/ folder in this code repository
|
Update: I have reverted the changes relating to documentation from this PR. It is best done in a different PR since it eclipses the relevant parts of this PR. |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
docs/assets/style.css (2)
505-519: Consider using CSS custom property for font stack.While the comprehensive font stack is good for cross-platform compatibility, consider defining it as a custom property for easier maintenance:
+:root { + --font-stack-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; +} + body { background: var(--color-background); - font-family: - -apple-system, - BlinkMacSystemFont, - "Segoe UI", - "Noto Sans", - Helvetica, - Arial, - sans-serif, - "Apple Color Emoji", - "Segoe UI Emoji"; + font-family: var(--font-stack-sans); font-size: 16px; color: var(--color-text); margin: 0; }
1603-1608: Consider using subgrid for better layout control.The grid template columns use minmax for responsive sizing, but the fixed
20remfor the TOC column might be too rigid on some screens..container-main { - grid-template-columns: - minmax(0, 1fr) minmax(0, 2.5fr) minmax( - 0, - 20rem - ); + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, min(20rem, 25vw)); grid-template-areas: "sidebar content toc"; }
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (24)
docs/assets/hierarchy.js(1 hunks)docs/assets/main.js(1 hunks)docs/assets/navigation.js(1 hunks)docs/assets/style.css(29 hunks)docs/classes/ConnectionError.html(1 hunks)docs/classes/DisconnectedError.html(1 hunks)docs/classes/NotConnectedError.html(1 hunks)docs/classes/NotFoundError.html(1 hunks)docs/classes/ResponseFormatError.html(1 hunks)docs/classes/RippledError.html(1 hunks)docs/classes/RippledNotInitializedError.html(1 hunks)docs/classes/TimeoutError.html(1 hunks)docs/classes/UnexpectedError.html(1 hunks)docs/classes/ValidationError.html(1 hunks)docs/classes/XRPLFaucetError.html(1 hunks)docs/classes/XrplError.html(1 hunks)docs/enums/AMMClawbackFlags.html(1 hunks)docs/enums/AMMDepositFlags.html(1 hunks)docs/enums/AMMWithdrawFlags.html(1 hunks)docs/enums/AccountSetAsfFlags.html(1 hunks)docs/enums/AccountSetTfFlags.html(1 hunks)docs/enums/ECDSA.html(1 hunks)docs/enums/EnableAmendmentFlags.html(1 hunks)docs/enums/LedgerEntry.AccountRootFlags.html(1 hunks)
✅ Files skipped from review due to trivial changes (22)
- docs/assets/hierarchy.js
- docs/assets/navigation.js
- docs/enums/AMMClawbackFlags.html
- docs/enums/EnableAmendmentFlags.html
- docs/enums/ECDSA.html
- docs/enums/AMMWithdrawFlags.html
- docs/enums/AMMDepositFlags.html
- docs/enums/AccountSetTfFlags.html
- docs/classes/UnexpectedError.html
- docs/classes/NotConnectedError.html
- docs/enums/LedgerEntry.AccountRootFlags.html
- docs/classes/ResponseFormatError.html
- docs/classes/ConnectionError.html
- docs/classes/XrplError.html
- docs/classes/TimeoutError.html
- docs/classes/DisconnectedError.html
- docs/classes/RippledError.html
- docs/classes/ValidationError.html
- docs/enums/AccountSetAsfFlags.html
- docs/classes/XRPLFaucetError.html
- docs/classes/RippledNotInitializedError.html
- docs/classes/NotFoundError.html
🧰 Additional context used
🪛 Biome (2.1.2)
docs/assets/main.js
[error] 4-4: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause.
The declaration is defined in this switch clause:
Safe fix: Wrap the declaration in a block.
(lint/correctness/noSwitchDeclarations)
[error] 4-4: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause.
The declaration is defined in this switch clause:
Safe fix: Wrap the declaration in a block.
(lint/correctness/noSwitchDeclarations)
[error] 4-4: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause.
The declaration is defined in this switch clause:
Safe fix: Wrap the declaration in a block.
(lint/correctness/noSwitchDeclarations)
[error] 4-4: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause.
The declaration is defined in this switch clause:
Safe fix: Wrap the declaration in a block.
(lint/correctness/noSwitchDeclarations)
[error] 4-4: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause.
The declaration is defined in this switch clause:
Safe fix: Wrap the declaration in a block.
(lint/correctness/noSwitchDeclarations)
[error] 4-4: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause.
The declaration is defined in this switch clause:
Safe fix: Wrap the declaration in a block.
(lint/correctness/noSwitchDeclarations)
[error] 4-4: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause.
The declaration is defined in this switch clause:
Safe fix: Wrap the declaration in a block.
(lint/correctness/noSwitchDeclarations)
[error] 4-4: Shouldn't redeclare 'b'. Consider to delete it or rename it.
'b' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'b'. Consider to delete it or rename it.
'b' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'b'. Consider to delete it or rename it.
'b' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'b'. Consider to delete it or rename it.
'b' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'b'. Consider to delete it or rename it.
'b' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'b'. Consider to delete it or rename it.
'b' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'b'. Consider to delete it or rename it.
'b' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'c'. Consider to delete it or rename it.
'c' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'l'. Consider to delete it or rename it.
'l' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'i'. Consider to delete it or rename it.
'i' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'c'. Consider to delete it or rename it.
'c' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'm'. Consider to delete it or rename it.
'm' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'g'. Consider to delete it or rename it.
'g' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'm'. Consider to delete it or rename it.
'm' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'g'. Consider to delete it or rename it.
'g' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'c'. Consider to delete it or rename it.
'c' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'g'. Consider to delete it or rename it.
'g' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'c'. Consider to delete it or rename it.
'c' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare '_'. Consider to delete it or rename it.
'_' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'c'. Consider to delete it or rename it.
'c' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'k'. Consider to delete it or rename it.
'k' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'l'. Consider to delete it or rename it.
'l' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'd'. Consider to delete it or rename it.
'd' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 's'. Consider to delete it or rename it.
's' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'r'. Consider to delete it or rename it.
'r' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'r'. Consider to delete it or rename it.
'r' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'i'. Consider to delete it or rename it.
'i' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'i'. Consider to delete it or rename it.
'i' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'i'. Consider to delete it or rename it.
'i' is defined here:
(lint/suspicious/noRedeclare)
[error] 4-4: Shouldn't redeclare 'i'. Consider to delete it or rename it.
'i' is defined here:
(lint/suspicious/noRedeclare)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
- GitHub Check: integration (22.x)
- GitHub Check: integration (20.x)
- GitHub Check: browser (22.x)
- GitHub Check: unit (20.x)
- GitHub Check: unit (22.x)
- GitHub Check: build-and-lint (22.x)
- GitHub Check: Analyze (javascript)
🔇 Additional comments (10)
docs/assets/style.css (7)
2-16: Well-structured CSS custom properties for layout dimensions.The introduction of CSS custom properties for layout dimensions improves maintainability and consistency. The calculation for
--dim-header-heightcorrectly combines the toolbar height with border width.
22-30: Good addition of theme color variables.The new
background-activeandcontrast-textcolor variables enhance the theming system. The comment on line 22 helpfully clarifies that "active" refers to UI state, not the CSS:activepseudo-class.
378-383: Excellent accessibility improvements.Setting
color-schemeand implementing smooth scrolling withprefers-reduced-motionmedia query shows good attention to accessibility. This respects user preferences for motion sensitivity.
586-603: Modern scrollbar styling implementation.Good cross-browser scrollbar styling using both standard
scrollbar-*properties and webkit-specific pseudo-elements. The thin scrollbar with rounded thumb improves the visual design.
614-627: Smart overlay implementation for modal dialogs.The overlay styling with fade animations and the
closingclass provides smooth transitions. Using CSS animations instead of JavaScript for visual effects is a performance best practice.
807-808: Valuable comment about Firefox opacity issue.The comment warning about full opacity breaking event listeners on Firefox is crucial for maintainability. This kind of browser-specific quirk documentation prevents future bugs.
1135-1189: Comprehensive search dialog styling improvements.The search dialog implementation with flex layout, proper sizing constraints, and responsive max-height calculation (considering virtual keyboard) shows excellent attention to mobile UX. The will-change property on line 1153 appropriately hints at animation optimization.
docs/assets/main.js (3)
2-2: Good addition of search-related translations.The extended translations object now includes messages for search functionality failures and empty results, improving internationalization support.
3-4: Third-party library update appears correct.The lunr.js search library has been updated. The static analysis warnings about switch declarations and variable redeclarations are false positives from the minified code and can be safely ignored.
5-6: Well-structured search UI implementation.The search implementation includes proper accessibility features:
- ARIA attributes for search results
- Keyboard navigation support
- Use of
<mark>tags for highlighting matches- Proper focus management
The modal overlay handling with scroll locking is also well implemented.
…by a Gthub Actions CI pipelines. However, this commit ensures that readers of the code-repository use the latest docs. This is required until we completely retire the use of the docs/ folder in this code repository" This reverts commit 999132f.
High Level Overview of Change
This PR prepares new releases for
xrpl,ripple-binary-codecandsecret-numberspackage. It also updates thepackage-lock.jsonin light of the updated dependencies.Context of Change
Type of Change
Did you update HISTORY.md?
Test Plan