# @osmcha/osm-adiff-parser

> Parse OSM augmented diffs to create JSON representation of changesets

Latest version **3.1.0** (published 2025-03-31) · BSD-3-Clause license · 0 weekly downloads

## Install

```sh
npm install @osmcha/osm-adiff-parser
pnpm add @osmcha/osm-adiff-parser
yarn add @osmcha/osm-adiff-parser
bun add @osmcha/osm-adiff-parser
```

Provides the command `osm-adiff-parser`.

## Health

**Score 30/100 (F)** — status: maintenance-mode.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.1.0 |
| Published | 2025-03-31 |
| First published | 2024-08-29 |
| Weekly downloads | 0 |
| License | BSD-3-Clause |
| TypeScript types | none |
| Module format | ESM |
| Dependencies | 1 |
| Unpacked size | 12.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | jake-low, willemarcel |
| Keywords | openstreetmap, osm, overpass |

## Links

- npm: https://www.npmjs.com/package/@osmcha/osm-adiff-parser
- Repository: https://github.com/OSMCha/osm-adiff-parser
- Homepage: https://github.com/OSMCha/osm-adiff-parser#readme
- Issues: https://github.com/OSMCha/osm-adiff-parser/issues
- npm.io page: https://npm.io/package/@osmcha/osm-adiff-parser

## Dependencies (1)

- [sax](https://npm.io/package/sax.md) ^1.4.1

## Recent versions

- 3.1.0 (latest) — 2025-03-31
- 3.0.0 — 2025-01-28
- 2.0.0 — 2024-08-29

## README

# osm-adiff-parser

Parses OSM [augmented diff](https://wiki.openstreetmap.org/wiki/Overpass_API/Augmented_Diffs) XML and returns a plain JS object representing the diff.

## Installation

```
npm install @osmcha/osm-adiff-parser
```

## Usage

```js
import parser from 'osm-adiff-parser';
let adiff = await parser(augmentedDiffXmlString);
```

## Example input & output

Input (an augmented diff of a simple changeset which added a couple of tags to an existing node)
```xml
<osm version="0.6" generator="Overpass API not used, but achavi detects it at the start of string; OSMExpress/python/examples/augmented_diff.py">
  <note>The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.</note>
  <action type="modify">
    <old>
      <node id="2523603738" version="2" user="TheRomanP" uid="3844185" timestamp="2024-06-05T13:51:12Z" changeset="152289357" lon="-121.2881568" lat="47.6647943">
        <tag k="highway" v="trailhead" />
      </node>
    </old>
    <new>
      <node id="2523603738" version="3" timestamp="2024-08-20T21:36:16Z" uid="8794039" user="jake-low" changeset="155530622" lat="47.6647943" lon="-121.2881568">
        <tag k="highway" v="trailhead" />
        <tag k="name" v="Necklace Valley Trailhead" />
        <tag k="operator" v="US Forest Service" />
        <tag k="website" v="https://www.fs.usda.gov/recarea/mbs/recarea/?recid=80228" />
      </node>
    </new>
  </action>
</osm>
```

Output
```json
{
  "actions": [
    {
      "type": "modify",
      "old": {
        "type": "node",
        "id": 2523603738,
        "version": 2,
        "user": "TheRomanP",
        "uid": 3844185,
        "timestamp": "2024-06-05T13:51:12Z",
        "changeset": 152289357,
        "lon": -121.2881568,
        "lat": 47.6647943,
        "tags": {
          "highway": "trailhead"
        }
      },
      "new": {
        "type": "node",
        "id": 2523603738,
        "version": 3,
        "timestamp": "2024-08-20T21:36:16Z",
        "uid": 8794039,
        "user": "jake-low",
        "changeset": 155530622,
        "lat": 47.6647943,
        "lon": -121.2881568,
        "tags": {
          "highway": "trailhead",
          "name": "Necklace Valley Trailhead",
          "operator": "US Forest Service",
          "website": "https://www.fs.usda.gov/recarea/mbs/recarea/?recid=80228"
        }
      }
    }
  ],
  "note": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
}
```

## Command line interface

This package also provides a CLI tool which reads augmented diff XML from stdin and writes the parsed representation to stdout as JSON.

```
$ osm-adiff-parser --help
osm-adiff-parser v3.1.0
Convert OSM augmented diff XML to a JSON representation

Usage:
  osm-adiff-parser [options] < input.xml > output.json

Options:
  -h, --help     Show this help message
  -v, --version  Show version number
```

## History

This package is a fork of [mapbox/osm-adiff-parser](https://github.com/mapbox/osm-adiff-parser/) which is no longer maintained. Version 2.0.0 of `@osmcha/osm-adiff-parser` contains breaking API changes compared to version 1.1.0 of `osm-adiff-parser`. See the [CHANGELOG] for more details.

[CHANGELOG]: ./CHANGELOG.md

---
_Source: https://npm.io/package/@osmcha/osm-adiff-parser · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
