All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- ๐ฅ BREAKING CHANGE:
uploadChangesetnow returns a object instead of a single changeset ID. This is because:- the function supports chunking uploads into multiple changesets if it exceeds the limit of 10,000 features per changeset.
- For each feature that was created, the response now includes a mapping between the temporary ID used by the uploader, and the permanent ID allocated by the server.
- ๐ฅ BREAKING CHANGE: The type defintions for
Changesethave been changed to mark several properties as optional. (see #14) - ๐ฅ BREAKING CHANGE:
Changeset.created_at,Changeset.closed_at, andChangesetComment.dateare now astring, not aDate. This makes it more consistent with the XML format, and easier to serialise to JSON. - ๐ฅ BREAKING CHANGE:
ChangesetComment.uidis now anumber, not astring. This matches the behaviour of OSM's new json API. - ๐ฅ BREAKING CHANGE:
Changeset.discussionhas been renamed toChangeset.comments. This matches the behaviour of OSM's new json API.
- [getUsers] add type definitions for
social_links, also switch to the JSON API
- [uploadChangeset] fix tag values with linebreaks (
\n) not handled properly
- [uploadChangeset] add an
onProgresscallback, so that apps can show a progress bar while uploading - [uploadChangeset] compress changesets with gzip before uploading (if JS's
CompressionStreamis available natively)
- Add new options to the
OsmUserRolestring union. - Change
createChangesetCommentto return the changeset object instead of returningundefined. - Add 5 new functions that only administrators/moderators can use.
- Added a new function
closeNote - Fixed some note methods not working
- ๐ฅ BREAKING CHANGE: Fix authentication broken when using the
popupmode due to recent security changes
- Optionally support type-safe
Tags.Tagsis currently defined asRecord<string, string>. If you want additional type-safety, you can specify the keys are the allowed. See the docs for more info.
- Fix configuration issue which broke the type-definitions in the previous release
- When uploading a changeset, if you don't specify a
created_bytag, this library will add one itself, so that changesets always have acreated_bytag. - When uploading a changeset, the osmChange array is now automatically sorted, so that you don't have to worry about sorting in your own application.
- Fix bug causing OAuth not to work when using redirect-mode
- Allow custom HTTP headers or an
AbortSignalto be passed to every API method. - Added 2 new functions to get user-blocks
- Git repository moved to the osmlab organisation.
- Automatically split large changesets into chunks before uploading, if the changeset were to exceed the maximum number of features allowed by the API.
- Added a method to easily switch users (logout & log back in)
- Added 4 new functions for notes & changeset subscriptions
- Added 3 new functions for the preferences API
- Added 5 new functions for the new messaging API
- Added a new option
bboxtogetNotesForQuery - Added a new option
limittolistChangesets - Added new function
getPermissions - Added new function
getApiCapabilitiesand deprecatedgetCapabilities. The new function uses the recently-released JSON API, which has a different format.
- Update dependencies to satisfy
npm audit
- Fix crash when using the
getChangesetAPI
- Fix bug in v2.1.0, and also apply new logic osmChange parser
- Change how changeset tags are embedded into osmChange files (more info)
- ๐ฅ BREAKING CHANGE: Require nodejs v18 or newer. This allows the
fetchpolyfill to be removed. - (internal) modernise build infrastructure
- export type defintions for the OsmPatch format
- remove console.log and fix typedef
- fix bug with changeset xml
- fix bug with getRelationsForElement
- update dependencies
- minors improvements to osmChange generation
- fix an issue with escaping XML characters when uploading changeset
- Initial release