Skip to content

RFC: JSON Pointer (RFC 6901) and JSON Patch (RFC 6902) support #16327

Description

@gururaj1512

Description

This issue tracks the work required to implement first-class JSON Pointer (RFC 6901) and JSON Patch (RFC 6902) utility suites across the @stdlib/utils namespace.

The goal is to provide a zero-dependency, standard-compliant, immutable patching architecture suitable for incremental document updates (such as delta updates to Vega visualization specifications):

  1. JSON Pointer (@stdlib/utils/json-pointer/*): Serves as the foundational addressing layer for identifying and resolving values within JSON documents, parsing pointer strings into reference tokens, formatting tokens, validating array indices, and enforcing prototype pollution security boundaries.
  2. JSON Patch (@stdlib/utils/json-patch/*): Implements atomic patch execution for the six standard RFC 6902 operations (add, remove, replace, move, copy, and test) using structural sharing (path-cloning) to guarantee that unmodified subtrees maintain reference equality and the original document is never mutated.

Below is the complete hierarchical and alphabetical list of packages across both namespaces, annotated with their status and task type.


Package Checklist

JSON Pointer Suite (RFC 6901)

  • @stdlib/utils/json-pointer (Top-Level Namespace Aggregator)
    • @stdlib/utils/json-pointer/format
    • @stdlib/utils/json-pointer/get
    • @stdlib/utils/json-pointer/has
    • @stdlib/utils/json-pointer/parse
    • @stdlib/utils/json-pointer/resolve
    • @stdlib/utils/json-pointer/base (Base Operations Sub-Namespace)
      • @stdlib/utils/json-pointer/base/resolve-token
      • @stdlib/utils/json-pointer/base/assert (Base Assertions Sub-Namespace)
        • @stdlib/utils/json-pointer/base/assert/is-safe-token

JSON Patch Suite (RFC 6902)

  • @stdlib/utils/json-patch (Top-Level Namespace Aggregator)
    • @stdlib/utils/json-patch/apply
    • @stdlib/utils/json-patch/validate
    • @stdlib/utils/json-patch/ops (Patch Operations Sub-Namespace)
      • @stdlib/utils/json-patch/ops/add
      • @stdlib/utils/json-patch/ops/copy
      • @stdlib/utils/json-patch/ops/move
      • @stdlib/utils/json-patch/ops/remove
      • @stdlib/utils/json-patch/ops/replace
      • @stdlib/utils/json-patch/ops/assert
    • @stdlib/utils/json-patch/base (Base Operations Sub-Namespace)
      • @stdlib/utils/json-patch/base/delete-in
      • @stdlib/utils/json-patch/base/insert-in
      • @stdlib/utils/json-patch/base/set-in
      • @stdlib/utils/json-patch/base/shallow-clone

Related Issues

Related issues # , # , and # .

Questions

No.

Other

No.

Checklist

  • I have read and understood the Code of Conduct.
  • Searched for existing issues and pull requests.
  • The issue name begins with RFC:.

Activity

  1. self-assigned this
    on Oct 27, 2026
  2. added
    RFCRequest for comments. Feature requests and proposed changes.
    on Oct 27, 2026
  3. navenavelimargam commented on Oct 27, 2026

    @navenavelimargam
    Contributor

    Hi @gururaj1512,

    I'm interested in contributing to the JSON Pointer and JSON Patch utilities in stdlib. I noticed that several JSON Pointer pull requests are already linked to this issue.

    I'd be happy to take ownership of a separate, well-scoped package or subtask, such as one of the JSON Patch operations, if that would help move the work forward. Could you please let me know which part is still available and suitable for an independent contribution?

    Thank you!

  4. gururaj1512 commented on Oct 28, 2026

    @gururaj1512
    MemberAuthor

    Hey @navenavelimargam,

    Thanks for reaching out! This issue is primarily a tracking issue for work I've already drafted locally and am preparing PRs for, so the core operations are already spoken for. Definitely check stdlib's other issues.

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

Metadata

Metadata

Assignees

Labels

RFCRequest for comments. Feature requests and proposed changes.

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions