brainstorm

draft with new data format

adding data-format.txt as design doc for this branch (remove before merging)

fill in missing functions in cachinglayer.js

draft inmemorystorage.js and localstorage.js to work with new cachinglayer.js

helper functions

start test suite for cachinglayer internals

test cachinglayer internal functions

working on inmemorystorage tests

almost done fixing existing tests

try to work out add-to-parents situation

fix _nodesFromRoot

fix some localstorage tests

remove failing parts of sync-suite

fix indexeddb suite

all tests passing now, as long as you run them suite-by-suite

run tests suite-by-suite

support for old node format

sync brainstorm

sync-suite test descriptions

fleshing out some of the tests as draft

add maxAge param to cachinglayer#get

tests for conflict handling

adding more tests

26 tests to go

wrote 6 tests, invented 5 new ones

20 tests left to write

16 tests left to write

8 tests left to write, have to change how onConflict works

7 of 58 to go

3 tests left to write, documented baseclient API changes in changelog

work from Cochin

fix handleResponse

env.rs.caching._responses

more tests passing

fix next test

createFolders/createDocuments

interpretStatus and completePush

delete success response test passing

another test passing, with new create decision

25 tests passing

starting rs.on('conflict', ... tests

fixing path field in test objects, adding some tests about conflicts

split up into 25 sync tests and 42 versioning tests

isolate failing test in both

got to PUT failure test

this.dealWithFailure()

24 versioning tests passing

conflict responses

all 31 existing versioning tests passing

maxAge tests

add document fetch timeout test

test.done -> test result

fixing fetch of non-existing node

fix fetch non-existing folder test

now have timeout tests for document/folder, fetch/refresh/non-existing

22 sync tests, 33 versioning tests

mock sync.doTask()

check for local database corruption

deal with local storage being unavailable

fix promises in findTasks

properly initialize InMemoryStorage in test

sync suite passing

13 tests left to write and make pass

new caching unit tests

new caching unit working

document data-format.txt

mention document merge

official -> common

move data-format.md into doc/, add doc/api.md

indicate which functions changed in 0.10

trying to work out how the sync feature is loaded

initialize remoteStorage.sync

correct remoteStorage.sync object init

correct onConflict function passed to remoteStorage.sync object init

restore self-constructing remoteStorage.caching property

get rid of waitForPath

new test ideas to check that sync always keeps running at top threads until all knowable tasks are done

body: false and itemsMap => true

test passing again after data format adjustments

make caching constants backwards compatible

flush function

getNodes, setNodes tests

fix tests

some integration fixes

fix formatting

no meta-data stored in itemsMap

add needsFetch check

fix numThreads, handle 404s

numToAdd <= 0

add timestamps, catch remote action promise rejections

update new api in baseclient

resolve conflicts after saving conflicted objects

fix tests with new conflict events

_tasks -> [] instead of -> true

_startTime and inConflict

import from vagrant

merge

fix 2 small errors

fireConflicts(), fix maxAge, fix 412 response ETag

check for corrupt server responses

fix unauth detection

enqueue pushes and don't start new tasks when stopped === true

explain revert-or-swallow

classic conflict events -> revert-or-swallow

fix baseclient test with new caching unit interface

fix sync suite

versioning suite passing

all 256 tests passing again

resole TODOs in remotestorage-suite

this.local.onDiff

starting to need timeouts to clean up tests...

finishTask

fix sync-suite

req-done

revert-or-swallow -> keep/revert

move InMemoryStorage between suites

make all test suites pass together

move '], nothing: [' up to first failing test

move '], nothing: [' up to first failing test

clean up some console.log statements and don't make assumptions about running requests from timeouts

start sync when caching is activated

first attempt at handling 404 responses

deleteTrees -> deleteRemoteTrees

also collect missingChildren from old remote

remove old todo notes

clean up deprecated webfinger urls

remove old todo notes from data-format.md

allow starter-kit to run on special http port; all others on https port 443

build head

fix stopSync, fix webfingerOnload, remoteStorage.on(...) input checking, debugging initial widget state

fix new webfinger function

build head

conditional refresh

tryOne no longer exists for webfinger

got sync cycle bootstrap working

got remoteStorage.stopSync() working

remoteStorage.reset() convenience function

migrate legacy nodes in forAllNodes as well; deal with folder 304s

fix dataFromFetch.toBeSaved ref; deal with deletions in deepClone and indexedDB

IDBObjectStore.delete() instead of .remove()

fix parent node creation during putting

fix descending into incoming folders

some log statements related to keep/revert conflict events

remoteStorage.startSync() convenience function

deal with missing itemsMap

remove a bunch of console.log statements

remove another console.log

fixing some of the bugs in deleteRemoteTrees

find tasks recursively, run 10 threads by default

build

bring back enable and disable functions

10ms stagger in sync threads and count putsRunning and getsRunning

implement flushing

console.log -> RemoteStorage.log

try to fix sync button binding

return objs from flush

build head

emit SyncError when wireclient rejects its promise

found out why initial state was being set incorrectly

update docs a bit

change back package.json

revert release/head to master

revert discover.js to master

comment out failing tests

remove unfinished tests

jshint

remove unfinished tests
Fix params extraction from location hash 

The current code broke applications that use hash navigation. For example, if I access my application with url http://toto.org/#settings, #settings is extracted by extractParams and the hash cleared, so my application never get it.
So I think that if hash is not of the form key=val&…, we should ignore it.
Housekeeping
Update remoteStorage event docs, emit {not-}connected (closes #609)
Fix typo
Update HEAD release
Remove bitdeli badge/link

GitHub now has provides better stats on
https://github.com/remotestorage/remotestorage.js/graphs/traffic
Fire `connected` event on startup if remote already connected
Update HEAD release
Merge branch 'master' into sync-per-node

Conflicts:
	src/remotestorage.js
	test/unit/remotestorage-suite.js
Rename check to checkPermission
Rename checkPath to checkPathPermission
Improve documentation for Caching class
Fix typos and formatting of data-format.md
Comment caching class
Minor rewording for data-format doc
Use caching.ALL constant instead of direct value
Refactor Access#getModuleName
Clean up and document Access class
Clean up baseclient