This document describes changes between each past release.
Breaking Changes
- Merge kinto-http into kinto.js (#1726, #1735)
- Generate ES6/ES2015 Javascript for Gecko mozilla-central (#2050)
Internal Changes
- Fix some eslint checks present in mozilla-central (#2051)
- fix: remove unused typeRoots config
- update dependabot monthly (#2014)
- ci: disable ipv6 for browser tests (#2001)
- upgrade to fake-indexeddb v4 (#1995)
- upgrade to rollup v3 (#1994)
- update dependencies to latest in current semver range (#1993)
- Pin Node version used in browser tests (#1990)
- Update
ChromeUtils
module imports - Replace deprecated substr method with substring method (#1822)
- Use the official demo URL (#1629)
- Upgrade to GitHub-native Dependabot (#1495)
- run browser tests on Linux (#1467)
- Make omitKeys more type-safe (#1456)
You can now import the following from the module:
Collection
: The class representing a Kinto collectionCollectionSyncOptions
: The options provided to theCollection.sync
methodConflict
: The API response representing a conflict that occurs during a sync operation
This version exports some types and useful utilities designed to make the adapter development experience a bit easier. You can now import the following from the module:
KintoBase
: The base class from which all Kinto instances are derivedBaseAdapter
: The base class from which all storage adapters are derivedAbstractBaseAdapter
: An abstract class used during development to trigger warnings on unimplemented methodsgetDeepKey
: A function to get deeply-nested object properties using dot notation (key1.key2.key3
)StorageProxy
: A TypeScript type describing the methods required for storage proxiesRecordStatus
: A TypeScript type representing the various states of the_status
property on recordsKintoBaseOptions
: A TypeScript type representing the configuration options of theKintoBase
class
This version is the first version to ship with our official TypeScript types! If you run into any issues using the library in your TypeScript project, please open an issue.
Breaking changes
- We've removed the automatically-included EventEmitter polyfill, making the
events
option forKinto
optional. You'll now need to bring your own emitter if you want to subscribe to events (which is not necessary for the vast majority of functionality). We suggest mitt, but anything that conforms to theEventEmitter
interface will do. - Both our CommonJS and bundled browser versions are now using ES2017 features. If you need to support older browsers, please ensure you're using something like Babel to transpile ES2017 to your desired target.
Bug fixes
- Fixed an issue where the emitted browser bundle referenced
global.process
, which only exists in Node environments. (#1352)
This release is the culmination of almost ten months of work to migrate kinto-http.js and kinto.js to TypeScript! In the process, we've modernized the build system for both libraries. For more information on what this means for you, checkout the migration guide.
Breaking changes
- Full rewrite in TypeScript (Thanks @dstaley!)
Internal changes
- Improve error wrapping of IndexedDB errors (#1205)
- Update build scripts to support Windows (#1120)
- removed unused variables (#1094)
- Update documentation examples with arrow functions and const (#1084)
- Remove timestamp from IDB instead storing null (#1082)
- Rewrite examples with promises to async/await (#1075)
- Replace Browserify and Babel with TypeScript and Rollup (#1061)
- Updates api.md to have more concise code examples (#1073)
- Fix #1043: Reject when transaction is aborted (#1044)
- Fix #1041: load kinto-http lazily (#1042)
- Respect localFields when deciding whether or not to mark a record as "updated" (#990).
- Fix pullMetadata really (#977)
pullMetadata
now passesheaders
. This should fix failures in syncing where authentication appeared to "go missing" in the middle of syncing, for example https://bugzilla.mozilla.org/show_bug.cgi?id=1551952.
- Fix header in Gecko export (#972)
- Sub-Object Filtering (#816)
- Provide key-value store id schema (#558)
- Support sync of collection metadata (#971)
- Gecko: use lazy imports' (#873)
- Ref #870: better bulk insert for IDB loadDump() (#871)
- IDB: remove redundant index on
id
field (#868) - Fix #862: Use getAll() in IDB if no filter is set (#865, #866)
- Rewrite README snippet with async/await
- Fix #859: Add support for expectedTimestamp to sync() and pullChanges()
- Ref #817: Rewrite api.md with async/await (#858)
Internal changes
- Another cheap fix to try to get the builds to stop breaking (#856)
- Explicitly depend on @babel/runtime (#850)
Bug fixes
- Add safety check for legacy DB detection (#846)
- Improve data migration (#840)
Internal changes
- Update babelify to the latest version 🚀 (#844)
- chore(package): update babel-loader to version 8.0.0 (#843)
- chore(package): update babel-eslint to version 9.0.0 (#842)
- Switch to
sinon.createSandbox()
- kinto.js now stores all collections in one unique database (#831)
- Fix #833: filter multiple values with other filters (#835)
- (Gecko) Fix Gecko build after #826 (#828)
- (Gecko) Load fetch and indexdb lazily (#827)
- Relax record id validation according to server (fixes #824) (#826)
- Add DBName option to IndexedDB adapter (ref #820) (#823)
- chore(package): update sinon to version 6.0.0 (#821)
- Convert all esdoc dependencies to major version ranges (#815)
- Update SRI hashes
- chore(package): update esdoc-type-inference-plugin to version 1.0.2 (#814)
- chore(package): update uglifyify to version 5.0.0 (#811)
- Clean up SyncResultObject#add based on feedback from Florian Quèze (#809).
- Fix SyncResultObject#add to be more performant. Previously it had quadratic behavior. Now we use a Map to track IDs we've already seen (#807).
- Add IndexedDB support in Firefox export (fixes #731) (#733)
- Pull every pages during sync (fixes #355) (#801)
- Add support for deleteAll method (#799) (thanks @agawish)
- Remove object-rest-spread transpilation for Firefox (#796).
- Remove IDB#resetSyncStatus (#774).
- Allow passing
localFields
when creating new collection (#785).
- Fix esdoc generation (thanks @zakaluka) (#773).
- Documentation updates (thanks @zakaluka @francois2metz) (#775, #778, #789).
- Remove async/await transpilation for Firefox (#732)
- Add IDB#resetSyncStatus (#767).
- Allow ID schemae to use the record itself when generating its ID (#727).
- Update requirements and dependencies: Sinon is now 4.0.0 or greater (#760, #748, #709), ESLint is now
^4.7.2
(#759, #757, #756, #753, #749, #746, #745, #739, #734, #721), Mocha is now 4.0.0 or greater (#768), Coveralls is now 3.0.0 or greater (#766), Prettier is now 1.7.2 (#765, #762, #751, #725, #714), esdoc-importpath-plugin is now 1.0.1 (#754, #742, #722), babel-eslint is now 8.0.0 or greater (#755), esdoc itself is now 1.0.1 or greater (#741), kinto-node-test-server is now a range dependency of^1.0.0
(#736), uglifyify is now 4.0.1 or greater (#717), chai is 4.0.1 or greater (#712) and chai-as-promised is now 7.0.0 or greater (#715). - Move off of husky and lint-staged to pre-commit, because it works better on partial commits (see Kinto/kinto-admin#419) (#737, #720, #719).
- docs: update docs to match explicit requirement on Node v6 or greater (#716, #730), add some information about use with WebSockets (#728), and note that we use Greenkeeper (#706).
- Fix strange test failures around 2017-10-10 (#770).
- Expose Kinto tracebacks when they occur, as we do in kinto-http (#729).
- Add a test for Firefox bug 1376618 (#726).
- Alphabetize a couple of object keys (#711).
Bug fixes:
- Fix EventEmitter typo (#699).
Bug fixes:
- No need to push "deleted" resolution (#696).
Dependency updates:
- Update to current location of EventEmitter (#697).
- Update gh-pages to 1.0.0 (#693).
- Update oodles of dependencies -- eslint to 3.19.0 (#639, #644, #654, #655, #658, #665, #667), fake-indexeddb to 2.0.3 (#645, #646, #647, #685, #695), kinto-http to 4.3.3 (#651, #667, #673, #686), esdoc-importpath-plugin to 0.1.1 (#653), babel-istanbul to version 0.12.2 (#656), kinto-node-test-server to version 1.0.0 (#661), sinon to version 2.0.0 (#663), babel-eslint to version 7.2.2 (#672), babel-loader to version 7.0.0 (#683), esdoc-importpath-plugin to version 0.1.2 (#684), http-server to version 0.10.0 (#689)
- Adopt Prettier (#659, #675, #682)
- esdoc: remove esdoc-es7-plugin (#660)
- Suppress lint warnings. (#662)
- Fix remote delete (#692). This breaks API compatibility for the
SyncResultObject.resolved
field. Details are in the updating.md file.
This release:
- updates a bunch of dependencies (#625, #626, #627, #628, #629, #630, #633, #634, #635, #636)
- refactors some internals of the sync() method to allow users to transform local deletes into remote keeps (#640)
This is a major version because it changes one aspect of how remote transformers work. Previously, a remote transformer could return anything for a deleted record, and that record would still be deleted. Now, if a transformer changes a record's _status, it will be respected.
- Override client options from collection (#622)
Breaking changes
- Remove open() and close() methods from BaseAdapter (#599)
New features
- Add sync events (#620)
- Retry requests once by default (#621)
This merges #562, which is a major version change because it removes the Firefox storage adapter. This code is specific to Gecko and will move to that repository.
This release:
- Accept a new sqliteHandle in adapterOptions in FirefoxStorage, and expose _init to let it be used sanely (#589).
- Update a bunch of dependencies (#579, #580, #586).
- Constrain dependency on underlying kinto when running tests (#584).
This release:
- Massive refactor of most methods from manually-handled promises to async/await (#538).
- Updates the documentation with a "NOP" schema example for use when you don't really need an
idSchema
(#533). - Optimize
collection#list
by doing filtering before putting documents in a list rather than after (#543). - Upgrades tests to Kinto 4.3 (#573).
- Fix for a puzzling bug involving IndexedDB use on Safari (#549).
- Fixes yet another bug in conflict resolution during CLIENT_WINS when using transformers (#570).
- Add a
FirefoxAdapter#resetSyncStatus
that resets sync status across all collections, rather than the one you happen to have gotten your hands on (#571). This is not possible as yet in IndexedDB, so it's only in FirefoxAdapter for now.
This might be the last release before we take FirefoxStorage out of this repo and move it to Gecko.
Bug fixes
- Fix safari issue on IDB cursor with empty values (#549, thanks @magopian!)
This release fixes a bug in the handling of lastModified
during a certain kind of conflict when using the SERVER_WINS
conflict resolution strategy.
This addresses a bug where conflicts weren't being resolved as "equal" in certain runtime environments (i.e. Gecko). See #529 for details.
This release fixes a couple of bugs having to do with conflicts.
- Decode conflicts (#525). Otherwise you'd get remotely-transformed versions of records in your local database.
- Fix conflict handling with published deletions (#522). This prevented conflict handling from working correctly when the conflict involved a record that was deleted locally.
I made a mistake in releasing 4.0.0 and published something wrong to NPM. This release is just a rebuild of 4.0.0, which shouldn't be used.
This release causes remote transformers to be invoked even on deleted records, and thereby allows you to write a remote transformer that mutates record IDs (#510). It is a backwards-incompatible change because now a remote transformer must handle deleted records, which are missing all the normal fields you would expect from your records.
There are also some fixes to documentation errors (#515, #514) and updates of dependencies (#508, #512, #509, #502).
This release fixes a bug in the FirefoxAdapter part (#488) of the Kinto client and updates a few dependencies.
This release introduces a bunch of new functionality:
- There are now new Collection methods
getAny
,deleteAny
, andupsert
(#455, #480), which might be useful if you want to implement key-value sorts of operations on Kinto. - Lots of work to make all Collection methods reentrant. (#460)
- There is now a
Collection#execute
method, which is used to run a transaction at the collection level. It works very similarly toBaseAdapter#execute
, but with Collection methods. (#477) - It's possible to
sync
to a different collection remotely than the one you have locally. (#462) - The
FirefoxAdapter
now accepts an argument specifying the filename of its Sqlite database. (#481)
- Add notion of local fields (fixes #173) (#423)
- Avoid redownloading our own changes (fixes #144) (#424)
- Previous version of record in sync result (fixes #335) (#421)
- Do not publish resolved conflicts with remote version (fixes #422)
The cleanRecord()
function from the collection module was dropped. Since local fields can be defined at the collection level, a cleanLocalFields()
method was introduced instead.
The format of updates and deletions in the SyncResultObject
has changed.
- The
updated
list now contains a list of objects withold
andnew
attributes - The
deleted
list now contains the full old record instead of just a stripped object containingid
Before with 2.X:
{
ok: true,
lastModified: 1434270764485,
conflicts: [],
errors: [],
created: [],
updated: [{
id: "08d5ae32-7f73-46bb-a8a6-c2bd80b15705",
title: "blog post",
_status: "synced",
last_modified: 1434270764485
}],
skipped: [],
published: [],
resolved: [],
deleted: [{
id: "131a100d-0732-494e-aa3c-e4a15e23eb77"
}],
}
Now with 3.X:
{
ok: true,
lastModified: 1434270764485,
conflicts: [],
errors: [],
created: [],
updated: [{
old: {
id: "08d5ae32-7f73-46bb-a8a6-c2bd80b15705",
title: "draft",
_status: "synced",
last_modified: 1434243221112
},
new: {
id: "08d5ae32-7f73-46bb-a8a6-c2bd80b15705",
title: "blog post",
_status: "synced",
last_modified: 1434270764485
}
}],
skipped: [],
published: [],
resolved: [],
deleted: [{
id: "131a100d-0732-494e-aa3c-e4a15e23eb77",
_status: "synced",
last_modified: 1434223456788
}],
}
- Merged #417: Ensure manually resolved conflicts are always published to the server.
- Fixed #399: Fixed incoming error object formatting. (#404)
- Fixed #402: Removed dependency to
deeper
, now replaced by a simple object comparison function (#406) - Added Python 3.5 to Travis CI build matrix (#405)
- The
Kinto.adapters.LocalStorage
adapter was removed. - The
BaseAdapter
interface for custom adapters has been updated. - The HTTP Error messages format has been slightly updated.
Since support for transactions has been introduced in this release, and as localStorage
doesn't support any kind of transactions natively, we've decided to drop support for it in Kinto.js. Please swith to using IndexedDB (which is the default adapter), or create your own if you target another persistence implementation.
Since adapters now support transactions, the BaseAdapter
interface now expect an execute()
method to be implemented for custom adapters. The Extending section has been updated accordingly.
The string message format for these now contains the HTTP status code description:
- Before:
HTTP 410; Service deprecated
- After:
HTTP 410 Gone: Service deprecated
Hooks can be called to extend the behaviour of Kinto. So far it is only possible to hook when incoming changes are to be applied.
incoming-changes
hooks are called just after new changes are retrieved, and before these changes are reflected locally.
To install a hook, you need to pass it to the collection:
function doSomething(payload, collection) {
// Do something with the payload here.
const {lastModified, changes} = payload;
const ids = changes.map((record) => record.id);
...
};
let collection = db.collection(collectionName, {
"hooks": {
"incoming-changes": [doSomething]
}
});
The IndexedDB adapter now allow batching write operations within a single transaction, and the synchronization flow implementation leverages this feature in many areas.
Leveraging IndexedDB transactions, general performances of the synchronization flow have been vastly improved.
In 1.x all the HTTP operations were performed in the api.js
module, which has been promoted to its own independent kinto-client
package and is now a dependency of Kinto.js.
- Fixed
babel-polyfill
should be a dependency, not a dev one.
- Merged #379: Ensure a single instance of babel-polyfill is imported.
Implemented enhancements:
- Allowing to define the remote endpoint in
#sync()
#257 - Lightweight dist files for modern browsers #249
Fixed bugs:
- Broken links in the doc #293
- Fix JSM compatibility for Firefox adapter #274 (leplatrem)
- Fix parsing of ES7 code in esdoc #294 (leplatrem)
Release enhancements:
- Add a minimalist dist file without polyfills #291
Fixed bugs:
- Records not deleted locally when already deleted on server (404 on delete) #284
- Handle network request timeouts. #263
- Relaxed UUID validation. #269 (n1k0)
- Update to Kinto 1.9.0 #267 (Natim)
- Change demo/demo.js to use a bucket #233
Implemented enhancements:
- Preserve old files in gh-pages branch, so older assets versions aren't overriden #241
- Hosted dist files should contain the version number in their filename #228
- Updated dist command to add current version to asset names. #230 (n1k0)
Fixed bugs:
- Handle the case of a flushed server in the demo. #231
- Fixes #231: Updated demo to handle flushed server. #232 (n1k0)
Merged pull requests:
- Updated dist and publish commands to support versioned assets. #248 (n1k0)
- Update babelify to version 7.0.1 🚀 #239 (greenkeeperio-bot)
- Update gh-pages to version 0.5.0 🚀 #237 (greenkeeperio-bot)
- Updated travis configuration to install Kinto 1.7.0. #229 (n1k0)
- Exposed open() and close() methods to the BaseAdapter interface. #227 (n1k0)
- 212 firefox entry point #219 (mozmark)
Implemented enhancements:
- Don't version dist files, publish & host them. #203
- Add a publish-demo command to deploy demo assets to gh-pages #202
- Investigate how to allow importing kinto public modules from other packages #193
- Remove unneeded external dependencies #190
- How does Kinto.js detect server was flushed and reupload the local database. #178
- Consistent reported errors formatting in sync result object #176
- Fixes #176: Consistent sync result error reporting. #220 (n1k0)
- Fixes #203: Removed dist files. #217 (n1k0)
- Flushed server handling. #214 (n1k0)
- Inject dependencies #199 (mozmark)
Fixed bugs:
- Installing 1.0.0-rc.5 through npm and using it from the node command triggers an error #208
- Fixes #114: Drop collection metas on #clear(). #221 (n1k0)
Closed issues:
- Investigate how to link to foreign symbols from within esdoc #215
- reject instead of throw if item not found in Collection#get #200
- Update tutorial to use the /v1 version of the public moz test kinto server #188
- Investigate Travis failure #182
- Avoid typing and extending classes for transformers #155
- Add an Authentication section to the docs #99
Merged pull requests:
- Update browserify to version 12.0.0 🚀 #224 (greenkeeperio-bot)
- Fixes #99: Added docs for authorization. #223 (n1k0)
- Update to Kinto 1.6.2 #222 (Natim)
- Fixes #215: Added internal links to esdoc. #218 (n1k0)
- Fixes #202: Added publish-demo command. #216 (n1k0)
- Fixes #190: Avoid exporting Buffer to dist files. #211 (n1k0)
- Fix snippet doc index (create instead of add) #207 (leplatrem)
- Fix details in documentation #205 (leplatrem)
- Fix import path in esdoc #204 (leplatrem)
- Moved fake indexedDB symbol imports to test logic. #201 (n1k0)
- Update to Kinto 1.5.1 #195 (Natim)
- Documentation improvements. #194 (n1k0)
- Adds esdoc support. #192 (n1k0)
v1.0.0-rc.5 (2015-09-30)
Merged pull requests:
v1.0.0-rc.4 (2015-09-29)
Implemented enhancements:
- Add server logging to integration tests, ensure process doesn't die. #185
- Handling errors during the this.create step of _importChange #165
- Raise an error when an id is passed to Collection#create but not necessary #158
- Pluggable ID schema's #138
- Avoid running coverage twice now that isparta is fixed #133
- Expose Collection.strategy.* #113
- Add lint/style check in Travis #5
- Fixes #122 - Added Kinto.createRemoteTransformer(). #139 (n1k0)
Fixed bugs:
- Improve consistency of conflict resolution strategies #150
- Why is Content-Length header required on Kinto server responses? #125
- Document
bucket
option #120 - Error when server returns 400 error response #110
Closed issues:
- Can we avoid OPTIONS preflights on (some) GET requests? #170
- Avoid checking the server settings for each collection #169
- Ensure lastModified value isn't updated if errors are encountered #163
- Cache headers #162
- Non-empty syncResults.updated when syncing to an empty remote collection #160
- Move
Collection\#use
to optional second argument ofKinto\#collection
#148 - Always brace single-line controlled statements #141
- Investigate offline support feature #140
- Freeze the versions of the compilers #131
- Coverage badge is broken #127
- Unhandled promise rejection if server response has no 'data' field #126
- Report http errors in a meaningful way #124
- Is mutating the [[Prototype]] of an object slow? #123
- Using Transformers with prototypal inheritance #122
- Maybe add fetch-only / push-only option in Collection#sync() #116
- Accept Syncto base64 record_ids #115
Merged pull requests:
- Fixes #185: detailed server error logging in case start fails. #186 (n1k0)
- Upgraded Kinto to 1.5.0. #184 (n1k0)
- 'git co' -> 'git clone' in install instructions #179 (michielbdejong)
- Fixes #169 - Instantiate Api only once #175 (michielbdejong)
- Fixes #165: Expose per-record import errors. #174 (n1k0)
- Fixes 155: Drop use of classes for transformers and IdSchema. #171 (n1k0)
- Fixes #158 - Collection#create Id requirements validation. #168 (n1k0)
- Upgraded Kinto to 1.4.0. #167 (n1k0)
- Correct code comment for
Collection\#pullChanges
#166 (michielbdejong) - Fixes #163: Ensure lastModified isn't saved on import errors encountered #164 (n1k0)
- Refs #160: Sync flow and result object format optimizations. #161 (n1k0)
- Section label resolving-conflicts -> resolving-conflicts-manually #159 (michielbdejong)
- Fixes #150 — Consistent conflicts resolution strategies. #152 (n1k0)
- Fixes #113 - Expose synchronization strategy constants. #151 (n1k0)
- Fixes #148 - Extra arg on Kinto#collection to replace Collection#use. #149 (michielbdejong)
- Fixes #125, fixes #110: Drop reliance on Content-Length header. #146 (n1k0)
- Fixes #120 - Documented bucket option. #145 (n1k0)
- Fixes #138 - Implement custom id schema's #143 (michielbdejong)
- Fix db transactions on safari. #142 (n1k0)
- Fix test failing when KINTO_PSERVE_EXECUTABLE is not set in the env. #132 (QuentinRoy)
- Add instructions on how to run functional tests. #130 (ametaireau)
- Hint at http error reporting in docs example, fix #124 #128 (michielbdejong)
- Add ESLint on TravisCI (fixes #5) #121 (leplatrem)
- Remove mentions of Cliquet #118 (leplatrem)
- Document list sorting and filtering #117 (leplatrem)
- Introduce local DB prefix #111 (leplatrem)
- Nits in backoff and alert header docs #109 (leplatrem)
- Clarify docs about having to resolve incoming conflicts #108 (leplatrem)
- Skip last pull if nothing to push #107 (leplatrem)
- [Ready for Review] Initial implementation of transformers. #106 (n1k0)
- Fixes #103 - Updated links to public static assets. #104 (n1k0)
- Remove the Backoff header handling exclusion for 304 responses #86 (n1k0)
- Change the license #2 (ametaireau)
1.0.0-rc.3 (2015-07-31)
1.0.0-rc.2 (2015-07-31)
Closed issues:
- Host static assets on a CDN #103
Merged pull requests:
1.0.0-rc.1 (2015-07-31)
Implemented enhancements:
- Add integration test for deprecation headers #85
- Handle deprecation headers #69
- Handle backoff indicators #68
- Support unlimited batch requests #64
Fixed bugs:
- Error on synchronization with a HTTP 304 on the collection from the server #71
Closed issues:
- Sync flow should stop when pushing changes fails #96
- Create a localStorage adapter. #94
- Cached Kinto collections instances are not uniquely identified #89
- Expose events for server backoff #84
- Provide a hook to interecept deprecation warnings. #81
- Builds are marked green even if failures occured. #74
- Add a simple functional test suite for the demo, using jsdom. #70
- Refactor generic HTTP error handling. #57
- Expose conflicting record details on BATCH 412 responses #56
- Demo is broken. #54
- Don't mention Cliquet in the repo description #47
- Fetch remote server settings. #41
- Add checks for unsupported Cliquet protocol version. #40
- Host a demo instance on Github pages #38
- Remote URL should have a trailing slash. #33
- Validate passed uuids #28
- Reflect record ids sent to BATCH in result object #15
- Handle BATCH 409 responses #14
- Handle BATCH request limit #13
- Improve error reporting when fetching changes failed. #12
- Implement local list filtering #6
Merged pull requests:
- Update after Kinto organization move. #102 (Natim)
- Prepare 1.0.0-rc.1 #101 (n1k0)
- Added synchronization flow diagram. #100 (n1k0)
- Fixes #91 - Added corsMode option. #98 (n1k0)
- Fixes #96 - Sync flow should stop when pushing changes fails. #97 (n1k0)
- [Landed] Added LocalStorage adapter. #95 (n1k0)
- Local storage adapters. #92 (n1k0)
- Documented current known limitations. #90 (n1k0)
- Refs #81, #84 - Add support for backoff and deprecated public events. #88 (n1k0)
- Fixes #85 - Added integration test for deprecation headers. #87 (n1k0)
- Fixes #68 - Handle Backoff header. #82 (n1k0)
- No sudo for travis #80 (magopian)
- Fixes #69 - Handle deprecation header. #79 (n1k0)
- Reintegrated coverage using a two-passes strategy. #77 (n1k0)
- Refs #74 - Removed coverage from continuous integration. #76 (n1k0)
- Upgrade to Kinto 1.3.1. #73 (n1k0)
- Fixes #71 - Simplified empty HTTP response handling. #72 (n1k0)
- Add safety check if batch limit setting is falsy (fixes #64) #65 (leplatrem)
- Automatically drop the trailing slash from passed remote url. #63 (n1k0)
- Fixes #54 - Upgrade to Kinto server v1.3. #62 (n1k0)
- Fixes #28 - Validate uuids #61 (n1k0)
- Fixes #13 - Batch requests chunking. #60 (n1k0)
- Fixes #57 - Better HTTP error handling. #58 (n1k0)
- Fixes #41 - Added Api#fetchServerSettings. #55 (n1k0)
- Refs #40 - Added checks for supported protocol version. #53 (n1k0)
- Closes #6 - Local collection data ordering & filtering. #52 (n1k0)
- Fixes #12 - Improved Api#fetchChangesSince error messages. #51 (n1k0)
- Added full integration test suite. #50 (n1k0)
- Adding the documentation badge in the readme. #49 (n1k0)
- "ReferenceError: render is not defined" and a few typos in tutorial #46 (ferjm)
- Update index.md #43 (ametaireau)
- Don't mention cliquet in the readme. #42 (ametaireau)
- Rename project to kinto.js #37 (n1k0)
- Kinto setup script. #32 (n1k0)
0.2 (2015-06-30)
Closed issues:
- Support opening different cliquetis instances in browser normal vs private modes #35
- Implement conflict resolution helper #25
- Don't store collection last_modified on sync() when conflicts have been encountered #23
- Support passing default auth headers to Cliquetis constructor #20
- Move docs to RTD #10
- Persist per-collection lastModified value #9
Merged pull requests:
- Closes #20 - Added support for request headers option to Cliquetis constructor. #36 (n1k0)
- Replace #18 - Demo local server script. #31 (n1k0)
- Fixes #25 - Conflict resolution helper. #27 (n1k0)
- Fixes #23 - Don't bump local collection last_modified on conflicts. #24 (n1k0)
- Switch to ETags instead of IMS-IUMS #22 (leplatrem)
- Better docs, including tutorial #21 (n1k0)
- Port Cliquetis for Kinto 1.0 #19 (Natim)
- Versionned dist file to ease sharing. #17 (n1k0)
- Added support for code coverage & coveralls service. #8 (n1k0)
- [Ready for Review] First sync() implementation. #7 (n1k0)
- Simplified Collection API. #4 (n1k0)
- First implementation of local CRUD operations. #3 (n1k0)
- Fixed broken npm package.
v1.0.0-rc.4 (2015-09-29)
Implemented enhancements:
- Add server logging to integration tests, ensure process doesn't die. #185
- Handling errors during the this.create step of _importChange #165
- Raise an error when an id is passed to Collection#create but not necessary #158
- Pluggable ID schema's #138
- Avoid running coverage twice now that isparta is fixed #133
- Expose Collection.strategy.* #113
- Add lint/style check in Travis #5
Fixed bugs:
- Improve consistency of conflict resolution strategies #150
- Why is Content-Length header required on Kinto server responses? #125
- Document
bucket
option #120 - Error when server returns 400 error response #110
Closed issues:
- Can we avoid OPTIONS preflights on (some) GET requests? #170
- Avoid checking the server settings for each collection #169
- Ensure lastModified value isn't updated if errors are encountered #163
- Cache headers #162
- Non-empty syncResults.updated when syncing to an empty remote collection #160
- Move
Collection\#use
to optional second argument ofKinto\#collection
#148 - Always brace single-line controlled statements #141
- Investigate offline support feature #140
- Freeze the versions of the compilers #131
- Coverage badge is broken #127
- Unhandled promise rejection if server response has no 'data' field #126
- Report http errors in a meaningful way #124
- Is mutating the [[Prototype]] of an object slow? #123
- Using Transformers with prototypal inheritance #122
- Maybe add fetch-only / push-only option in Collection#sync() #116
- Accept Syncto base64 record_ids #115
Merged pull requests:
- Fixes #185: detailed server error logging in case start fails. #186 (n1k0)
- Upgraded Kinto to 1.5.0. #184 (n1k0)
- 'git co' -> 'git clone' in install instructions #179 (michielbdejong)
- Fixes #169 - Instantiate Api only once #175 (michielbdejong)
- Fixes #165: Expose per-record import errors. #174 (n1k0)
- Fixes 155: Drop use of classes for transformers and IdSchema. #171 (n1k0)
- Fixes #158 - Collection#create Id requirements validation. #168 (n1k0)
- Upgraded Kinto to 1.4.0. #167 (n1k0)
- Correct code comment for
Collection\#pullChanges
#166 (michielbdejong) - Fixes #163: Ensure lastModified isn't saved on import errors encountered #164 (n1k0)
- Refs #160: Sync flow and result object format optimizations. #161 (n1k0)
- Section label resolving-conflicts -> resolving-conflicts-manually #159 (michielbdejong)
- Fixes #150 — Consistent conflicts resolution strategies. #152 (n1k0)
- Fixes #113 - Expose synchronization strategy constants. #151 (n1k0)
- Fixes #148 - Extra arg on Kinto#collection to replace Collection#use. #149 (michielbdejong)
- Fixes #125, fixes #110: Drop reliance on Content-Length header. #146 (n1k0)
- Fixes #120 - Documented bucket option. #145 (n1k0)
- Fixes #138 - Implement custom id schema's #143 (michielbdejong)
- Fix db transactions on safari. #142 (n1k0)
- Fixes #122 - Added Kinto.createRemoteTransformer(). #139 (n1k0)
- Fix test failing when KINTO_PSERVE_EXECUTABLE is not set in the env. #132 (QuentinRoy)
- Add instructions on how to run functional tests. #130 (ametaireau)
- Hint at http error reporting in docs example, fix #124 #128 (michielbdejong)
- Add ESLint on TravisCI (fixes #5) #121 (leplatrem)
- Remove mentions of Cliquet #118 (leplatrem)
- Document list sorting and filtering #117 (leplatrem)
- Introduce local DB prefix #111 (leplatrem)
- Nits in backoff and alert header docs #109 (leplatrem)
- Clarify docs about having to resolve incoming conflicts #108 (leplatrem)
- Skip last pull if nothing to push #107 (leplatrem)
- [Ready for Review] Initial implementation of transformers. #106 (n1k0)
- Fixes #103 - Updated links to public static assets. #104 (n1k0)
- Remove the Backoff header handling exclusion for 304 responses #86 (n1k0)
- Change the license #2 (ametaireau)
Utra minor fixes regarding npm package publication.
Implemented enhancements:
- Add integration test for deprecation headers #85
- Handle deprecation headers #69
- Handle backoff indicators #68
- Support unlimited batch requests #64
Fixed bugs:
- Error on synchronization with a HTTP 304 on the collection from the server #71
Closed issues:
- Sync flow should stop when pushing changes fails #96
- Create a localStorage adapter. #94
- Cached Kinto collections instances are not uniquely identified #89
- Expose events for server backoff #84
- Provide a hook to interecept deprecation warnings. #81
- Builds are marked green even if failures occured. #74
- Add a simple functional test suite for the demo, using jsdom. #70
- Refactor generic HTTP error handling. #57
- Expose conflicting record details on BATCH 412 responses #56
- Demo is broken. #54
- Don't mention Cliquet in the repo description #47
- Fetch remote server settings. #41
- Add checks for unsupported Cliquet protocol version. #40
- Host a demo instance on Github pages #38
- Remote URL should have a trailing slash. #33
- Validate passed uuids #28
- Reflect record ids sent to BATCH in result object #15
- Handle BATCH 409 responses #14
- Handle BATCH request limit #13
- Improve error reporting when fetching changes failed. #12
- Implement local list filtering #6
Merged pull requests:
- Update after Kinto organization move. #102 (Natim)
- Added synchronization flow diagram. #100 (n1k0)
- Fixes #91 - Added corsMode option. #98 (n1k0)
- Fixes #96 - Sync flow should stop when pushing changes fails. #97 (n1k0)
- [Landed] Added LocalStorage adapter. #95 (n1k0)
- Local storage adapters. #92 (n1k0)
- Documented current known limitations. #90 (n1k0)
- Refs #81, #84 - Add support for backoff and deprecated public events. #88 (n1k0)
- Fixes #85 - Added integration test for deprecation headers. #87 (n1k0)
- Fixes #68 - Handle Backoff header. #82 (n1k0)
- No sudo for travis #80 (magopian)
- Fixes #69 - Handle deprecation header. #79 (n1k0)
- Reintegrated coverage using a two-passes strategy. #77 (n1k0)
- Refs #74 - Removed coverage from continuous integration. #76 (n1k0)
- Upgrade to Kinto 1.3.1. #73 (n1k0)
- Fixes #71 - Simplified empty HTTP response handling. #72 (n1k0)
- Add safety check if batch limit setting is falsy (fixes #64) #65 (leplatrem)
- Automatically drop the trailing slash from passed remote url. #63 (n1k0)
- Fixes #54 - Upgrade to Kinto server v1.3. #62 (n1k0)
- Fixes #13 - Batch requests chunking. #60 (n1k0)
- Fixes #57 - Better HTTP error handling. #58 (n1k0)
- Fixes #41 - Added Api#fetchServerSettings. #55 (n1k0)
- Closes #6 - Local collection data ordering & filtering. #52 (n1k0)
0.2 (2015-06-30)
Closed issues:
- Support opening different cliquetis instances in browser normal vs private modes #35
- Implement conflict resolution helper #25
- Don't store collection last_modified on sync() when conflicts have been encountered #23
- Support passing default auth headers to Cliquetis constructor #20
- Move docs to RTD #10
- Persist per-collection lastModified value #9
* This Change Log was automatically generated by github_changelog_generator