{"action":"created","comment":{"url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/comments/35987740","id":35987740,"diff_hunk":"@@ -0,0 +1,17 @@\n+# Thali Cordova Plugin Replication Manager #\n+\n+### Contributing\n+\n+If you see a mistake, find a bug, or you think there is a better way to do something, feel free to contribute.\n+Email [thali-talk@thaliproject.org](mailto:thali-talk@thaliproject.org) to connect with other contributors and","path":"sample/www/jxcore/thali/readme.md","position":null,"original_position":6,"commit_id":"fab72733a0343f7c8348ef6285e46945ceeb94ee","original_commit_id":"fce34162abe2efe6a42ec799d52da6396ed44b73","user":{"login":"yaronyg","id":1480964,"avatar_url":"https://avatars.githubusercontent.com/u/1480964?v=3","gravatar_id":"","url":"https://api.github.com/users/yaronyg","html_url":"https://github.com/yaronyg","followers_url":"https://api.github.com/users/yaronyg/followers","following_url":"https://api.github.com/users/yaronyg/following{/other_user}","gists_url":"https://api.github.com/users/yaronyg/gists{/gist_id}","starred_url":"https://api.github.com/users/yaronyg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yaronyg/subscriptions","organizations_url":"https://api.github.com/users/yaronyg/orgs","repos_url":"https://api.github.com/users/yaronyg/repos","events_url":"https://api.github.com/users/yaronyg/events{/privacy}","received_events_url":"https://api.github.com/users/yaronyg/received_events","type":"User","site_admin":false},"body":":+1: ","created_at":"2015-07-31T16:04:17Z","updated_at":"2015-07-31T16:04:17Z","html_url":"https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r35987740","pull_request_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/25","_links":{"self":{"href":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/comments/35987740"},"html":{"href":"https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r35987740"},"pull_request":{"href":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/25"}}},"pull_request":{"url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/25","id":39865516,"html_url":"https://github.com/thaliproject/Thali_CordovaPlugin/pull/25","diff_url":"https://github.com/thaliproject/Thali_CordovaPlugin/pull/25.diff","patch_url":"https://github.com/thaliproject/Thali_CordovaPlugin/pull/25.patch","issue_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/issues/25","number":25,"state":"open","locked":false,"title":"This is to integrate story 0 into a single branch","user":{"login":"mattpodwysocki","id":49051,"avatar_url":"https://avatars.githubusercontent.com/u/49051?v=3","gravatar_id":"","url":"https://api.github.com/users/mattpodwysocki","html_url":"https://github.com/mattpodwysocki","followers_url":"https://api.github.com/users/mattpodwysocki/followers","following_url":"https://api.github.com/users/mattpodwysocki/following{/other_user}","gists_url":"https://api.github.com/users/mattpodwysocki/gists{/gist_id}","starred_url":"https://api.github.com/users/mattpodwysocki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattpodwysocki/subscriptions","organizations_url":"https://api.github.com/users/mattpodwysocki/orgs","repos_url":"https://api.github.com/users/mattpodwysocki/repos","events_url":"https://api.github.com/users/mattpodwysocki/events{/privacy}","received_events_url":"https://api.github.com/users/mattpodwysocki/received_events","type":"User","site_admin":false},"body":"This integrates Story 0 from the matthewp branch to the Story 0 branch.  This includes the following:\r\n- ReadMe changes to reflect install and testing instructions\r\n- Unit Testing with Jasmine\r\n- Mock Mobile back end for desktop testing\r\n- The Thali Emitter for low level communication\r\n- The Thali Replication Manager for handling replication between devices\n<a href='#crh-start'></a><a href='#crh-data-%7B%22processed%22%3A%20%5B%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23issuecomment-121337614%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23issuecomment-122059331%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23issuecomment-122069178%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23issuecomment-124597779%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34526069%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34526130%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34526416%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34528615%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34528632%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34528643%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34604317%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34604583%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34606383%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34608484%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34608572%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34608742%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34609172%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34633617%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34633704%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634180%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634415%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634445%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634468%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634719%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634889%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34635009%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34635411%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34635845%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34635875%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34635910%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34636052%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34636249%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34636265%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34636403%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34636446%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34637275%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34637499%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34827759%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34828157%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34828830%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34828946%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34920934%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34921676%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34921759%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34921778%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34923031%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34923177%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34923398%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34929156%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34929430%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34930296%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34931559%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35447399%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35447411%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35447417%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/2d765912ba6c40914ead7ae35ba1dc135d9524d0%23commitcomment-12074170%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/649662da7c7d4f432a988964a58d41501ce59cf9%23commitcomment-12260383%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/649662da7c7d4f432a988964a58d41501ce59cf9%23commitcomment-12260688%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/649662da7c7d4f432a988964a58d41501ce59cf9%23commitcomment-12260733%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/649662da7c7d4f432a988964a58d41501ce59cf9%23commitcomment-12261938%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/649662da7c7d4f432a988964a58d41501ce59cf9%23commitcomment-12348372%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/2d765912ba6c40914ead7ae35ba1dc135d9524d0%23commitcomment-12349110%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/2d765912ba6c40914ead7ae35ba1dc135d9524d0%23commitcomment-12349249%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/2d765912ba6c40914ead7ae35ba1dc135d9524d0%23commitcomment-12350970%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/ee5f21f87ae2e52462da917399119df678b31327%23commitcomment-12447505%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35897353%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35897402%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35897486%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35908603%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35909187%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35910542%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35913581%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35919468%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35919619%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35926119%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35926271%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35926472%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35984497%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35984621%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35984711%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35984729%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35984820%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35984844%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35984931%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35984954%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35985022%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35985151%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35985213%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35985231%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35985261%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35985313%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35985350%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35985464%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35985519%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35985558%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986051%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986089%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986151%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986196%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986232%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986263%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986332%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986415%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986438%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986538%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986572%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986596%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986744%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35986888%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35987020%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35987125%22%2C%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r35987220%22%5D%2C%20%22comments%22%3A%20%7B%22Commit%20ee5f21f87ae2e52462da917399119df678b31327%20test/www/jxcore/test/thaliscenarios.js%2037%2027%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/ee5f21f87ae2e52462da917399119df678b31327%23commitcomment-12447505%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22This%20form%20causes%20issues%20when%20err%20doesn%27t%20have%20.message%20defined%20%28at%20least%20on%20iOS%29.%20Execution%20just%20stops%20when%20I%20come%20across%20one%20of%20these.%20Timeouts%20still%20work%20though.%20On%20a%20side%20note%2C%20assert%20doesn%27t%20appear%20to%20be%20part%20of%20the%20official%20Tape%20API%20%28although%20it%27s%20aliased%20to%20.ok%20in%20code%29.%5Cr%5Cn%5Cr%5CnI%27ve%20tended%20to%20replace%20these%20with%3A%5Cr%5Cn%5Cr%5Cn%20%20%20%20%20%20t.ok%28%21%21err2%2C%20%5C%22Connect%20to%20bad%20peer%20should%20throw%20error%5C%22%29%3B%5Cr%5Cn%20%20%20%20%20%20t.ok%28err2.hasOwnProperty%28%27message%27%29%2C%20err2.message%29%3B%5Cr%5Cn%22%2C%20%22created_at%22%3A%20%222015-07-30T15%3A44%3A50Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/8226225%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/tobybrad%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20test/www/jxcore/test/thaliscenarios.js%3AL27%20%28ee5f21f%29%22%7D%2C%20%22Pull%206534eb9981840e71d5d0286c8001ede6fd33d9f8%20thali/thalireplicationmanager.js%2097%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34929430%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22If%20you%20get%20an%20error%20from%20stopBroadcasting%20this%20means%20you%20are%20in%20a%20very%20bad%20place.%20So%20wouldn%27t%20it%20make%20sense%20to%20do%20everything%20in%20the%20%5C%22else%5C%22%20clause%20anyway%20since%20you%20are%20basically%20in%20a%20hole%3F%20In%20other%20words%2C%20we%20should%20just%20have%20an%20if%20to%20emit%20the%20event%20but%20otherwise%20everything%20from%20line%2099%20down%20should%20run%20no%20matter%20what.%22%2C%20%22created_at%22%3A%20%222015-07-17T20%3A46%3A07Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20thali/thalireplicationmanager.js%3AL1-302%22%7D%2C%20%22Pull%20fce34162abe2efe6a42ec799d52da6396ed44b73%20sample/www/jxcore/thali/mockmobile.js%2019%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34921676%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Since%20the%20next%20four%20methods%20are%20all%20identical%20in%20contents%20but%20for%20a%20string%20why%20not%20just%20refactor%20this%20into%20a%20call%20to%20a%20single%20function%3F%22%2C%20%22created_at%22%3A%20%222015-07-17T19%3A12%3A11Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnI%27ll%20deal%20with%20this%20in%20my%20review%20of%20the%20new%20files%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A58%3A31Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20sample/www/jxcore/thali/mockmobile.js%3AL1-59%22%7D%2C%20%22Pull%20fce34162abe2efe6a42ec799d52da6396ed44b73%20sample/www/jxcore/test/thaliscenarios.js%209%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34828946%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Shouldn%27t%20we%20use%20plan%282%29%20so%20we%20can%20make%20sure%20that%20both%20call%20backs%20actually%20happened%3F%20Right%20now%20if%20via%20some%20strange%20bug%20the%20startBroadcasting%20never%20actually%20called%20back%20we%20wouldn%27t%20realize%20there%20was%20an%20error.%22%2C%20%22created_at%22%3A%20%222015-07-16T19%3A37%3A36Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A55%3A14Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20sample/www/jxcore/test/thaliscenarios.js%3AL1-80%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20README.md%20189%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34608484%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22This%20part%20confuses%20me.%20Why%20would%20we%20have%20a%20sample/android/www%20and%20sample/ios/www%3F%20I%20thought%20the%20whole%20point%20of%20having%20a%20single%20native%20UX%20layer%20in%20Node.js%20is%20that%20we%20have%20the%20exact%20same%20files%20for%20both%20iOS%20and%20android%2C%20at%20least%20at%20the%20Node.js%20layer.%20My%20expectation%20is%20that%20there%20would%20be%20a%20single%20directory%20called%20testing%20that%20contains%20all%20the%20test%20code%20and%20that%20the%20user%20would%20copy%20that%20code%20to%20the%20www%20folder.%22%2C%20%22created_at%22%3A%20%222015-07-14T19%3A25%3A55Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A33%3A40Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL135-191%22%7D%2C%20%22Pull%204ddd79fcf5f0179af524cc0907f32644d706c936%20README.md%203%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34526069%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Shouldn%27t%20this%20be%20%5C%22Work%20in%20progress%2C%20not%20release%20quality%20%21%21%5C%22%3F%22%2C%20%22created_at%22%3A%20%222015-07-14T00%3A03%3A18Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22This%20is%20the%20original%20wording%2C%20I%20haven%27t%20changed%20anything%20here%2C%20but%20yes%2C%20probably%20makes%20more%20sense%20that%20way.%22%2C%20%22created_at%22%3A%20%222015-07-14T00%3A49%3A33Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/11578097%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%3Ca%20href%3D%27%23crh-update-none%27%3E%3C/a%3E%22%2C%20%22created_at%22%3A%20%222015-07-24T17%3A49%3A24Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL1-68%22%7D%2C%20%22Pull%206534eb9981840e71d5d0286c8001ede6fd33d9f8%20README.md%20138%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34931559%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22You%20actually%20want%20that%20to%20say%20%5C%22Thali_Cordovaplugin%5C%22%2C%20the%20missing%20%27r%27%20is%20probably%20because%20you%20copied%20and%20pasted%20from%20an%20old%20Jukka%20checkin%20where%20he%20made%20that%20mistake.%20In%20fact%20he%20originally%20misnamed%20the%20entire%20project%20but%20we%20later%20fixed%20it.%20%3A%29%22%2C%20%22created_at%22%3A%20%222015-07-17T21%3A13%3A10Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22I%20believe%20this%20has%20been%20fixed.%22%2C%20%22created_at%22%3A%20%222015-07-30T22%3A00%3A09Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL105-124%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/thalireplicationmanager.md%2054%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34636446%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22What%20if%20we%20call%20start%20multiple%20times%20without%20calling%20stop%3F%5Cr%5Cn%5Cr%5CnDo%20we%20even%20support%20calling%20start%20and%20then%20stop%20and%20then%20start%20again%3F%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A42%3A57Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnI%27m%20closing%20this%20for%20the%20moment%20because%20this%20isn%27t%20a%20production%20file%20so%20it%20doesn%27t%20need%20to%20meet%20production%20quality.%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A50%3A45Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/thalireplicationmanager.md%3AL1-107%22%7D%2C%20%22Pull%20fce34162abe2efe6a42ec799d52da6396ed44b73%20sample/www/jxcore/test/thaliscenarios.js%208%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34828830%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22For%20hygiene%20sake%20please%20define%20the%20port%20using%20a%20variable.%20Preferably%20at%20a%20global%20level%20in%20another%20file%20so%20that%20all%20the%20tests%20that%20need%20a%20local%20PouchDB%20instance%20can%20share%20the%20same%20one.%20Prevents%20silly%20errors.%22%2C%20%22created_at%22%3A%20%222015-07-16T19%3A36%3A38Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnI%27ll%20deal%20with%20this%20when%20I%20review%20the%20new%20test%20files%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A53%3A57Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20sample/www/jxcore/test/thaliscenarios.js%3AL1-80%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/replication.md%2035%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634468%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22What%20happens%20if%20StopBroadcasting%20is%20called%20without%20an%20active%20StartBroadcasting%3F%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A09%3A36Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22Fixed%20as%20per%20discussion%22%2C%20%22created_at%22%3A%20%222015-07-30T19%3A17%3A38Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A39%3A08Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/replication.md%3AL1-107%22%7D%2C%20%22Pull%20528b8d41a9fc9e0bfccc855e034579037789c0f6%20README.md%2059%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34604317%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Is%20there%20a%20reason%20why%20we%20require%20node.js%20%28v0.12%29%20as%20opposed%20to%20just%20JXCore%3F%20They%20will%20need%20JXCore%20eventually%20and%20JXCore%20is%20100%25%20backwards%20compatible%20with%20Node.js%20so%20why%20not%20just%20use%20JXCore%3F%22%2C%20%22created_at%22%3A%20%222015-07-14T18%3A47%3A54Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22Fixed%22%2C%20%22created_at%22%3A%20%222015-07-30T17%3A37%3A03Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnBTW%2C%20if%20you%20care%2C%20the%20latest%20release%20is%20actually%200.3.0.4%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A30%3A24Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL1-100%22%7D%2C%20%22General%20Comment%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23issuecomment-121337614%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22As%20an%20all%20up%20comment%2C%20once%20we%20have%20a%20full%20code%20review%2C%20can%20you%20please%20rebase%20this%20PR%20so%20we%20don%27t%20have%20to%20stick%2052%20commits%20into%20our%20history%3F%20It%20makes%20it%20really%20hard%20to%20read%20histories%20that%20way.%20It%20would%20be%20better%20if%20this%20shows%20up%20as%20a%20single%20commit.%22%2C%20%22created_at%22%3A%20%222015-07-14T18%3A43%3A31Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%40mattpodwysocki%20Why%20do%20we%20still%20have%20the%20sample%20directory%3F%20Shouldn%27t%20all%20of%20those%20contents%20be%20in%20the%20test%20directory%3F%20I%27m%20putting%20myself%20in%20the%20shoes%20of%20a%20user%20looking%20at%20our%20depo%20thinking%20%5C%22Oh%20great%21%20A%20sample%21%5C%22%20But%20it%27s%20not%20really%20a%20sample%20at%20all%2C%20is%20it%3F%20It%27s%20really%20just%20our%20test%20infrastructure.%22%2C%20%22created_at%22%3A%20%222015-07-16T19%3A25%3A47Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%40mattpodwysocki%20Please%20delete%20API.md%20from%20root.%20It%27s%20old.%22%2C%20%22created_at%22%3A%20%222015-07-16T19%3A49%3A50Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%3Ca%20href%3D%27%23crh-update-none%27%3E%3C/a%3E%22%2C%20%22created_at%22%3A%20%222015-07-24T17%3A49%3A25Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22General%20Comment%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/replication.md%202%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34635411%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Question%201%20-%20Should%20this%20really%20be%20called%20replication.md%3F%20It%27s%20really%20just%20the%20native%20API%20layer%20for%20the%20discovery%20and%20p2p%20infrastructure.%20It%20really%20has%20nothing%20to%20do%20with%20replication.%20In%20fact%20some%20day%20it%20will%20be%20refactored%20%28along%20with%20ThaliEmitter%29%20as%20a%20stand%20alone%20NPM%20library%20that%20anyone%20who%20wants%20to%20use%20our%20discovery%20and%20p2p%20functionality%20with%20their%20TCP/IP%20servers%20and%20clients%20can%20use%20without%20the%20rest%20of%20Thali.%5Cr%5Cn%5Cr%5CnQuestion%202%20-%20Shouldn%27t%20we%20have%20some%20kind%20of%20short%20introduction%20that%20specifies%20that%20this%20is%20our%20%5C%22raw%5C%22%20interface%20to%20the%20native%20layer%20for%20handling%20local%20discovery%20and%20p2p%20and%20that%20developers%20should%20use%20ThaliEmitter%20instead%3F%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A25%3A48Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A41%3A54Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/replication.md%3AL1-107%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20package.json%201%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34637499%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22I%27m%20probably%20being%20thicker%20than%20usual%20but%20why%20is%20there%20a%20package.json%20file%20in%20the%20root%20of%20the%20entire%20repository%3F%20Shouldn%27t%20we%20just%20need%20one%20in%20the%20Thali%20%28and%20eventually%20Test%29%20directories%3F%22%2C%20%22created_at%22%3A%20%222015-07-15T01%3A02%3A55Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnI%20actually%20nuked%20this%20file%20in%20my%20PR.%20So%20I%27ll%20resolve%20this%20when%20I%20merge%20with%20your%20PR.%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A51%3A00Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20package.json%3AL1-24%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/thalireplicationmanager.md%2035%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34636403%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22What%20happens%20if%20we%20try%20to%20create%20multiple%20replication%20managers%20with%20the%20same%20DB%3F%20With%20different%20DBs%3F%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A42%3A33Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22That%27s%20undefined%20behavior%20because%20I%27m%20pretty%20sure%20it%20will%20just%20work%20to%20advertise%20and%20sync%20to%20any%20remote%20client.%20%20I%20don%27t%20think%20it%27s%20necessary%20to%20point%20this%20out.%22%2C%20%22created_at%22%3A%20%222015-07-30T20%3A56%3A43Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnWe%20can%20worry%20about%20these%20issues%20when%20we%20have%20something%20production%20ready.%20This%20is%20just%20for%20story%200.%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A50%3A00Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/thalireplicationmanager.md%3AL1-107%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/replication.md%2059%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634889%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Grammar%20nit%20%5C%22This%20method%20disconnects%20from%20the%20peer%20with%20the%20given%20peer%20identifier.%5C%22%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A16%3A54Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnActually%20this%20one%20isn%27t%20fixed%20in%20the%20PR.%20The%20grammar%20bug%20that%20is.%20I%27m%20%2B1ing%20because%20this%20isn%27t%20a%20blocking%20issue.%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A40%3A39Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/replication.md%3AL1-107%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/replication.md%2071%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34635009%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22I%20would%20suggest%20pointing%20out%20that%20we%20expect%20the%20connection%20kill%20to%20be%20intentionally%20dirty%20since%20the%20goal%20here%20is%20to%20really%20test%20how%20well%20the%20native%20layer%20handles%20unexpected%20connection%20failures.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A18%3A53Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22Fixed%20as%20per%20discussion%22%2C%20%22created_at%22%3A%20%222015-07-30T19%3A30%3A34Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A41%3A22Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/replication.md%3AL1-107%22%7D%2C%20%22Pull%204ddd79fcf5f0179af524cc0907f32644d706c936%20README.md%2011%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34526130%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Pet%20Peeve%20-%20Something%20is%20easy%20to%20use%20because%20it%20is%20easy%20to%20use%2C%20not%20because%20we%20said%20it%20is%20easy%20to%20use.%20Whenever%20someone%20has%20to%20say%20%5C%22they%20are%20easy%20to%20use%5C%22%20I%20usually%20don%27t%20believe%20them.%20%3A%29%22%2C%20%22created_at%22%3A%20%222015-07-14T00%3A04%3A36Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22I%27m%20not%20going%20to%20argue%20this%20because%20once%20again%20I%20didn%27t%20write%20this%20originally%2C%20but%20will%20keep%20some%20changes%20in%20mind%20here.%22%2C%20%22created_at%22%3A%20%222015-07-14T00%3A49%3A56Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/11578097%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%3Ca%20href%3D%27%23crh-update-none%27%3E%3C/a%3E%22%2C%20%22created_at%22%3A%20%222015-07-24T17%3A49%3A26Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL1-68%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20sample/ios/www/jxcore/thali/mockmobile.js%204%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34608742%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22how%20about%20making%20it%20a%20bit%20safer%3B%5Cr%5Cn%60%60%60%5Cr%5Cnkeys.hasOwnProperty%28key%29%20%7C%7C%20%20%28keys%5Bkey%5D%20%3D%20new%20NativeCall%28key%29%29%3B%5Cr%5Cn%60%60%60%22%2C%20%22created_at%22%3A%20%222015-07-14T19%3A28%3A10Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/4390745%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/obastemur%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnTechnically%20%40obastemur%20should%20approve%20this%20but%20he%20is%20on%20vacation%20at%20the%20moment.%20%3A%29%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A34%3A53Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20sample/ios/www/jxcore/thali/mockmobile.js%3AL1-59%22%7D%2C%20%22Commit%20649662da7c7d4f432a988964a58d41501ce59cf9%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/649662da7c7d4f432a988964a58d41501ce59cf9%23commitcomment-12260383%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22%40yaronyg%20%60jx.core.js%60%20is%20required%20for%20this%20example%20and%20will%20pull%20it%20in%20automatically%20I%20believe%20upon%20creation.%22%2C%20%22created_at%22%3A%20%222015-07-20T19%3A40%3A53Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22I%20actually%20deleted%20this%20script%20line%20in%20my%20project%20and%20it%20worked%20just%20fine.%20I%20think%20it%27s%20auto-loaded.%20We%20don%27t%20need%20to%20explicitly%20reference%20it.%22%2C%20%22created_at%22%3A%20%222015-07-20T19%3A54%3A40Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%40yaronyg%20the%20reason%20I%20kept%20it%20in%20was%20that%20the%20postcard%20app%20and%20others%20had%20it%20referenced.%20%20Better%20safe%20than%20sorry%20as%20it%20doesn%27t%20error%20to%20have%20it%20in%20there%20https%3A//github.com/thaliproject/postcardapp/blob/story_0_matthewp/www/index.html%22%2C%20%22created_at%22%3A%20%222015-07-20T19%3A56%3A24Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22It%27s%20obviously%20not%20a%20huge%20deal%20but%2C%20for%20example%2C%20at%20run%20time%20you%20will%20just%20get%20an%20error%20that%20jxcore.js%20isn%27t%20in%20assets%20so%20this%20line%20isn%27t%20doing%20anything.%20Also%20note%20that%20I%20believe%20the%20real%20jxcore.js%20is%20automatically%20loaded%20in%20the%20cordova%20webview%20by%20JXCore%20itself.%20No%20script%20tag%20needed.%22%2C%20%22created_at%22%3A%20%222015-07-20T21%3A04%3A07Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%3Ca%20href%3D%27%23crh-update-none%27%3E%3C/a%3E%22%2C%20%22created_at%22%3A%20%222015-07-24T17%3A49%3A27Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22Commit%20649662d%20comments%22%7D%2C%20%22Pull%206534eb9981840e71d5d0286c8001ede6fd33d9f8%20thali/thalireplicationmanager.js%20132%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34930296%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22You%20essentially%20repeat%20the%20same%20code%20to%20delete%20the%20client%2C%20replication%20and%20call%20disconnect%20both%20here%20and%20in%20syncRetry.%20I%20would%20suggest%20instead%20creating%20a%20syncPeer%20object%20which%20has%20on%20it%20a%20%27start%27%20method%20that%20will%20create%20the%20client%20mux%20bridge%2C%20the%20replication%20and%20call%20connect.%20And%20then%20a%20stop%20method%20that%20will%20shut%20those%20down.%20And%20then%20you%20can%20have%20a%20retry%20which%20calls%20stop%20and%20then%20start.%20That%20will%20centralize%20the%20code%2C%20make%20it%20clearer%20what%20is%20involved%20in%20a%20peer%20replication%20and%20generally%20prevent%20bugs.%22%2C%20%22created_at%22%3A%20%222015-07-17T20%3A56%3A25Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22Will%20consider%20as%20we%20split%20out%20the%20mux%20server%20bridge%20into%20its%20own%20module%22%2C%20%22created_at%22%3A%20%222015-07-30T22%3A02%3A23Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20thali/thalireplicationmanager.js%3AL1-302%22%7D%2C%20%22Pull%206534eb9981840e71d5d0286c8001ede6fd33d9f8%20thali/thalireplicationmanager.js%2081%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34929156%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Don%27t%20you%20need%20to%20stop%20and%20restart%20peer%20broadcasting%20so%20that%20the%20native%20code%20will%20call%20the%20new%20_serverBridgePort%3F%22%2C%20%22created_at%22%3A%20%222015-07-17T20%3A43%3A01Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20thali/thalireplicationmanager.js%3AL1-302%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20README.md%20196%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34608572%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Have%20you%20ever%20actually%20run%20the%20tests%20on%20iOS%3F%20If%20only%20to%20see%20if%20they%20actually%20talk%20to%20the%20console%20as%20they%20all%20fail%3F%22%2C%20%22created_at%22%3A%20%222015-07-14T19%3A26%3A48Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A33%3A59Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL135-191%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20README.md%20213%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34633617%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22We%20already%20have%20a%20dedicated%20license%20file%2C%20do%20we%20really%20want%20to%20repeat%20the%20license%20again%3F%22%2C%20%22created_at%22%3A%20%222015-07-14T23%3A54%3A30Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A36%3A04Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL135-191%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20emulator/index.js%201%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34637275%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Please%20exclude%20the%20emulator%20directory%20from%20this%20PR%20since%20they%20are%2C%20as%20you%20put%20it%2C%20a%20WIP.%20WIPs%20should%20live%20in%20the%20developer%20branch%2C%20not%20the%20story%20branch.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A58%3A57Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A51%3A54Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20emulator/index.js%3AL1-33%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/thalireplicationmanager.md%209%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34636265%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22It%20would%20be%20good%20to%20include%20our%20require%20as%20well.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A40%3A42Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22done%20for%20all%20cases%22%2C%20%22created_at%22%3A%20%222015-07-30T20%3A55%3A28Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A49%3A12Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/thalireplicationmanager.md%3AL1-107%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/replication.md%2027%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634445%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22I%20would%20just%20specify%20a%20tcp/ip%20local%20listener.%20We%20want%20people%20to%20re-use%20our%20code%20for%20lots%20of%20scenarios%2C%20not%20just%20Express-PouchDB.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A09%3A05Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A38%3A36Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/replication.md%3AL1-107%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/replication.md%2023%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634415%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22What%20happens%20if%20someone%20calls%20StartBroadcasting%20twice%20with%20the%20same%20deviceName%20and%20portNumber%20without%20calling%20StopBroadcasting%20in%20between%3F%5Cr%5CnWhat%20happens%20if%20someone%20calls%20StartBroadcasting%20twice%20with%20different%20deviceNames%20and%20portNumbers%20without%20calling%20StopBroadcasting%20in%20between%3F%5Cr%5CnIn%20general%20I%20believe%20the%20right%20answer%20is%20that%20we%20only%20allow%20a%20single%20outstanding%20call%20to%20StartBroadcasting%20regardless%20of%20the%20arguments%20and%20a%20second%20call%20without%20a%20StopBroadcasting%20in%20between%20is%20an%20error.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A08%3A32Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A38%3A18Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/replication.md%3AL1-107%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/replication.md%2022%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634180%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Is%20it%20advertising%20or%20broadcasting%3F%20We%20should%20pick%20one.%20I%20would%20suggest%20a%20more%20action%20oriented%20description.%20Something%20like%20%5C%22This%20method%20instructs%20the%20native%20layer%20to%20advertise%20the%20availability%20of%20the%20device%20under%20the%20specified%20deviceName%20and%20to%20direct%20any%20incoming%20connections%20to%20the%20specified%20portNumber%20available%20on%20localhost%20over%20TCP/IP.%5C%22%5Cr%5Cn%5Cr%5CnI%20don%27t%20specifically%20mention%20PouchDB/Express-PouchDB%20because%20it%20doesn%27t%20really%20matter%20what%20is%20listening.%20Just%20so%20long%20as%20it%20speaks%20TCP/IP.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A04%3A39Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22Fixed%20to%20remove%20any%20instance%20of%20PouchDB%20references%20and%20made%20it%20broadcasting%20not%20advertising%22%2C%20%22created_at%22%3A%20%222015-07-30T19%3A11%3A57Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A37%3A58Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/replication.md%3AL1-107%22%7D%2C%20%22Pull%20fce34162abe2efe6a42ec799d52da6396ed44b73%20sample/www/jxcore/app.js%2013%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34827759%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Nice%21%20Very%20simple%20solution%20to%20what%20could%20have%20been%20a%20nasty%20problem%21%20Thanks%21%22%2C%20%22created_at%22%3A%20%222015-07-16T19%3A26%3A34Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22Thanks%21%22%2C%20%22created_at%22%3A%20%222015-07-30T21%3A58%3A22Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A52%3A13Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20sample/www/jxcore/app.js%3AL1-30%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/thaliemitter.md%203%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34635845%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Wouldn%27t%20it%20make%20sense%20to%20point%20out%20to%20folks%20that%20this%20is%20the%20class%20we%20expect%20people%20to%20use%20when%20they%20want%20to%20use%20the%20Thali%20local%20discovery%20and%20p2p%20capabilities%20with%20TCP/IP%20clients%20and%20servers%20without%20the%20rest%20of%20Thali%3F%20We%20should%20probably%20also%20mention%20that%20in%20time%20we%20will%20refactor%20this%20into%20a%20stand%20alone%20NPM.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A33%3A08Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A47%3A09Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/thaliemitter.md%3AL1-190%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20sample/ios/www/jxcore/thali/thalireplicationmanager.js%20186%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34609172%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22is%20this%20console.log%20temporary%20or%20there%20is%20a%20need%20for%20logging%3F%22%2C%20%22created_at%22%3A%20%222015-07-14T19%3A32%3A05Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/4390745%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/obastemur%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnSee%20previously%20approval.%20%3A%29%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A35%3A12Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20sample/ios/www/jxcore/thali/thalireplicationmanager.js%3AL1-297%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/thaliemitter.md%207%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34635875%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Call%20before%20declare%20error.%20%3A%29%20The%20user%20at%20this%20point%20hasn%27t%20seen%20peerAvailabilityChanged.%20But%20I%20suppose%20we%20can%20live%20with%20that.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A33%3A40Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A47%3A31Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/thaliemitter.md%3AL1-190%22%7D%2C%20%22Pull%206534eb9981840e71d5d0286c8001ede6fd33d9f8%20thali/thalireplicationmanager.js%2055%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34923177%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22If%20someone%20calls%20start%20twice%20won%27t%20we%20end%20up%20leaking%20a%20serverBridge%3F%20Shouldn%27t%20we%20check%20to%20see%20if%20start%20has%20already%20been%20called%20without%20calling%20stop%20and%20return%20an%20error%3F%20That%20would%20prevent%20the%20leak.%5Cr%5Cn%5Cr%5CnBTW%2C%20there%20is%20an%20important%20assumption%20I%27m%20making%20here%20that%20isn%27t%20proven.%20In%20normal%20Node.js%20land%20if%20you%20start%20a%20server%20and%20even%20if%20the%20object%20representing%20the%20server%20goes%20out%20of%20context%20the%20server%20is%20still%20there%20running.%20For%20example%20I%20ran%20the%20following%20test%3A%5Cr%5Cn%5Cr%5Cn%60%60%60node%5Cr%5Cnfunction%20silly%28%29%20%7B%5Cr%5Cn%5Cr%5Cn%20%20var%20httpServer%20%3D%20http.createServer%28function%28request%2C%20response%29%20%7B%5Cr%5Cn%20%20%20%20response.statusCode%20%3D%20200%3B%5Cr%5Cn%20%20%20%20response.end%28%29%3B%5Cr%5Cn%20%20%7D%29%3B%5Cr%5Cn%5Cr%5Cn%20%20httpServer.listen%283001%29%3B%5Cr%5Cn%7D%5Cr%5Cn%5Cr%5Cnsilly%28%29%3B%5Cr%5Cn%60%60%60%5Cr%5Cn%5Cr%5CnThe%20server%20is%20still%20running%20on%20port%203001%20even%20after%20the%20httpServer%20variable%20has%20gone%20out%20of%20context.%5Cr%5Cn%5Cr%5CnSo%20we%20can%27t%20just%20assume%20that%20removing%20the%20reference%20to%20_serverBridge%20will%20mean%20that%20the%20muxServerBridge%20will%20stop%20its%20listener.%20That%27s%20why%20I%27m%20worried%20about%20the%20leak.%20There%20has%20to%20be%20a%20call%20to%20close%20on%20the%20_serverBridge%20if%20it%27s%20not%20null.%20But%20I%20still%20think%20it%27s%20best%20if%20we%20just%20prevent%20someone%20from%20calling%20start%20twice%20without%20an%20intervening%20stop.%22%2C%20%22created_at%22%3A%20%222015-07-17T19%3A30%3A18Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20thali/thalireplicationmanager.js%3AL1-302%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/replication.md%2046%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34634719%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Again%2C%20I%20would%20use%20more%20action%20oriented%20language.%20Something%20like%20%5C%22This%20method%20instructs%20the%20native%20layer%20to%20establish%20a%20TCP/IP%20connection%20to%20the%20peer%20identified%20by%20the%20peerIdentifier%2C%20which%20is%20obtained%20via%20a%20peerAvailabilityChanged%20event.%5C%22%5Cr%5Cn%5Cr%5CnAlso%20shouldn%27t%20we%20specify%20what%20the%20%5C%22in%20process%5C%22%20error%20is%20required%20to%20look%20like%3F%20Otherwise%20nobody%20can%20tell%20the%20difference%20between%20a%20%5C%22something%20went%20horribly%20wrong%5C%22%20error%20and%20a%20%5C%22hey%20dummy%2C%20you%20already%20called%20this%21%5C%22%20error.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A14%3A02Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A39%3A27Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/replication.md%3AL1-107%22%7D%2C%20%22Pull%206534eb9981840e71d5d0286c8001ede6fd33d9f8%20thali/thalireplicationmanager.js%2078%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34923398%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Who%20calls%20this%3F%20I%20did%20a%20search%20for%20_restart%20and%20only%20found%20the%20method%20declaration.%20Also%20if%20someone%20does%20call%20restart%20how%20can%20we%20be%20sure%20that%20the%20existing%20serverBridge%20has%20been%20closed%3F%20Shouldn%27t%20we%20try%20to%20close%20it%20again%20%28with%20a%20try/catch%29%20if%20it%27s%20not%20null%20just%20to%20be%20sure%20we%20aren%27t%20leaking%20anything%3F%22%2C%20%22created_at%22%3A%20%222015-07-17T19%3A33%3A16Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20thali/thalireplicationmanager.js%3AL1-302%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/thaliemitter.md%2010%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34635910%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Wouldn%27t%20it%20be%20good%20to%20include%20the%20require%20statement%20so%20they%20know%20what%20name%20we%20use%3F%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A34%3A13Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A48%3A07Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/thaliemitter.md%3AL1-190%22%7D%2C%20%22Commit%202d765912ba6c40914ead7ae35ba1dc135d9524d0%20README.md%201%203%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/commit/2d765912ba6c40914ead7ae35ba1dc135d9524d0%23commitcomment-12074170%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Please%20revert%20this%20entire%20change%20to%20the%20file.%20It%20completely%20shredded%20it%21%20Lines%20are%20cut%20off.%20Important%20information%20is%20deleted.%20It%27s%20a%20mess.%20Please%20roll%20it%20back.%22%2C%20%22created_at%22%3A%20%222015-07-08T23%3A59%3A09Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-24T18%3A22%3A41Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22Sigh....%20%3AP%20Don%27t%20mess%20with%20the%20review%20system%21%21%21%21%22%2C%20%22created_at%22%3A%20%222015-07-24T18%3A27%3A44Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-24T19%3A58%3A24Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL3%20%282d76591%29%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20README.md%20145%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34606383%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Don%27t%20we%20also%20have%20to%20tell%20the%20user%20that%20once%20the%20plugin%20is%20installed%20that%20they%20have%20to%20go%20to%20/www/jxcore%20and%20run%20%27jx%20install%20--autoremove%20%5C%22%2A.gz%5C%22%20../../thali/%27%3F%5Cr%5Cn%5Cr%5CnNote%2C%20btw%2C%20that%20this%20instruction%20would%20apply%20for%20both%20iOS%20and%20Android.%22%2C%20%22created_at%22%3A%20%222015-07-14T19%3A06%3A42Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22No%2C%20because%20there%20is%20nothing%20in%20the%20Thali%20Cordova%20Plugin%20itself%20that%20has%20any%20.gz%20files%20in%20it.%20%20The%20postcard%20app%20does%2C%20but%20not%20the%20plugin%22%2C%20%22created_at%22%3A%20%222015-07-30T17%3A38%3A26Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnIt%20actually%20turns%20out%20that%20%40obastemur%27s%20change%20didn%27t%20work%20due%20to%20some%20issue%20with%20Cordova%20so%20we%20are%20still%20having%20to%20do%20a%20search%20and%20replace%20but%20it%20doesn%27t%20need%20to%20be%20in%20the%20instructions%20anymore.%20So%20we%20are%20good.%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A31%3A34Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22Ooops%20the%20comment%20above%20was%20for%20another%20issue.%20But%20either%20way%20it%27s%20good.%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A32%3A37Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL105-124%22%7D%2C%20%22Pull%20528b8d41a9fc9e0bfccc855e034579037789c0f6%20README.md%20135%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34604583%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22I%20thought%20we%20only%20support%20api%2019%3F%20Not%2016%3F%20So%20shouldn%27t%20this%20be%2019%3F%22%2C%20%22created_at%22%3A%20%222015-07-14T18%3A50%3A23Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22Not%20applicable%20as%20we%20now%20have%20the%20change%20in%20the%20config.xml%20from%20Oz%22%2C%20%22created_at%22%3A%20%222015-07-30T17%3A37%3A35Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A32%3A49Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL105-124%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/thaliemitter.md%2033%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34636052%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22We%20should%20probably%20just%20copy%20the%20description%20from%20the%20previous%20file.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A37%3A16Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A48%3A34Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/thaliemitter.md%3AL1-190%22%7D%2C%20%22Pull%204ddd79fcf5f0179af524cc0907f32644d706c936%20README.md%2084%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34526416%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22The%20indenting%20on%20line%2071%2C%2075%2C%20etc.%20is%20wrong.%20These%20are%20all%20instructions%20for%20Android.%20So%20Line%2071%20should%20be%20%5C%22%23%23%23%23%20use%20Gradle%5C%22%20and%2075%20should%20be%20%5C%22%23%23%23%23%20Build%20the%20P2P%20library%20to%20local%20Maven%5C%22and%20the%20children%20of%20that%20should%20be%205%20%23s%20not%204.%22%2C%20%22created_at%22%3A%20%222015-07-14T00%3A08%3A53Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22Will%20fix%22%2C%20%22created_at%22%3A%20%222015-07-14T00%3A50%3A08Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/11578097%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%3Ca%20href%3D%27%23crh-update-complete%27%3E%3C/a%3E%22%2C%20%22created_at%22%3A%20%222015-07-24T17%3A49%3A28Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20README.md%3AL69-102%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/thalireplicationmanager.md%201%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34636249%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22It%20would%20probably%20be%20good%20to%20point%20out%20that%20this%20is%20just%20a%20hack%20for%20story%200%20and%20that%20this%20class%20will%20be%20changed%20and%20enhanced%20significantly%20in%20the%20future.%5Cr%5Cn%5Cr%5CnIt%20would%20probably%20also%20be%20good%20to%20point%20out%20what%20this%20thing%20actually%20does.%20In%20other%20words%20that%20it%20looks%20for%20anyone%20advertising%20our%20service%20ID%20and%20will%20try%20to%20synch%20everything%20it%20has%20with%20that%20person.%20And%20yes%2C%20this%20is%20just%20test%20code%20for%20story%200.%22%2C%20%22created_at%22%3A%20%222015-07-15T00%3A40%3A21Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22Done%20as%20noted%3A%5Cr%5Cn%5Cr%5CnThe%20%60ThaliReplicationManager%60%20class%20handles%20database%20replication%20between%20devices%2C%20using%20%5BPouchDB%5D%28http%3A//pouchdb.com/%29%20and%20the%20Thali%20Cordova%20bridge%20%60ThaliEmitter%60%20class.%20%20This%20class%20is%20meant%20solely%20for%20the%20purpose%20of%20demonstrating%20%5BThali%20Story%200%5D%28http%3A//thaliproject.org/stories%29%20and%20will%20be%20dramatically%20enhanced%20in%20the%20future.%22%2C%20%22created_at%22%3A%20%222015-07-30T20%3A01%3A32Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/49051%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mattpodwysocki%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A48%3A56Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/thalireplicationmanager.md%3AL1-107%22%7D%2C%20%22Pull%206534eb9981840e71d5d0286c8001ede6fd33d9f8%20thali/thalireplicationmanager.js%2073%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34923031%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22This%20function%20description%20is%20left%20over%20from%20something%20else%2C%20it%20doesn%27t%20apply%20to%20the%20function%20below.%22%2C%20%22created_at%22%3A%20%222015-07-17T19%3A28%3A49Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A56%3A43Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20thali/thalireplicationmanager.js%3AL1-302%22%7D%2C%20%22Pull%20fce34162abe2efe6a42ec799d52da6396ed44b73%20sample/www/jxcore/test/thaliscenarios.js%2019%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34920934%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22I%20suspect%20this%20is%20a%20test%20of%20calling%20stopBroadcasting%20without%20calling%20startBroadcasting.%20In%20which%20case%20the%20title%20should%20be%20changed.%22%2C%20%22created_at%22%3A%20%222015-07-17T19%3A03%3A12Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A57%3A31Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20sample/www/jxcore/test/thaliscenarios.js%3AL1-80%22%7D%2C%20%22Pull%20fce34162abe2efe6a42ec799d52da6396ed44b73%20sample/www/jxcore/thali/readme.md%209%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34921778%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Usual%20License%20comment.%22%2C%20%22created_at%22%3A%20%222015-07-17T19%3A13%3A23Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20sample/www/jxcore/thali/readme.md%3AL1-18%22%7D%2C%20%22Pull%20fce34162abe2efe6a42ec799d52da6396ed44b73%20sample/www/jxcore/thali/readme.md%206%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34921759%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Unfortunately%20the%20mailing%20list%20doesn%27t%20take%20emails%20from%20people%20who%20aren%27t%20registered.%20I%20would%20instead%20suggest%20telling%20them%20to%20file%20a%20Github%20issue.%22%2C%20%22created_at%22%3A%20%222015-07-17T19%3A13%3A14Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20sample/www/jxcore/thali/readme.md%3AL1-18%22%7D%2C%20%22Pull%20fefa1c30252ed9083a91ea46dbf41e71a70c6399%20doc/api/replication.md%208%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34633704%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Since%20KillConnection%20is%20never%20supposed%20to%20be%20used%20by%20%27normal%27%20code%20it%20would%20be%20good%20to%20put%20KillConnection%20into%20a%20completely%20separate%20section%20with%20a%20black%20box%20warning%20that%20any%20use%20of%20it%20outside%20of%20testing%20scenarios%20will%20result%20in%20electrocution%20and/or%20uncontrolled%20vomiting%22%2C%20%22created_at%22%3A%20%222015-07-14T23%3A55%3A58Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A37%3A20Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20doc/api/replication.md%3AL1-107%22%7D%2C%20%22Pull%20fce34162abe2efe6a42ec799d52da6396ed44b73%20sample/www/jxcore/test/readme.md%209%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/thaliproject/Thali_CordovaPlugin/pull/25%23discussion_r34828157%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22It%27s%20probably%20best%20to%20avoid%20repeating%20the%20license%22%2C%20%22created_at%22%3A%20%222015-07-16T19%3A30%3A20Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%2C%20%7B%22body%22%3A%20%22%3A%2B1%3A%20%5Cr%5Cn%5Cr%5CnOr%20not.%22%2C%20%22created_at%22%3A%20%222015-07-31T15%3A52%3A29Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/1480964%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/yaronyg%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20sample/www/jxcore/test/readme.md%3AL1-18%22%7D%7D%7D'></a>\n<a href='https://www.codereviewhub.com/'><img src='http://www.codereviewhub.com/site/github-bar.png' height=40></a>\n- [ ] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 README.md 145'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34606383'>File: README.md:L105-124</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Don't we also have to tell the user that once the plugin is installed that they have to go to /www/jxcore and run 'jx install --autoremove \"*.gz\" ../../thali/'?\nNote, btw, that this instruction would apply for both iOS and Android.\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> No, because there is nothing in the Thali Cordova Plugin itself that has any .gz files in it.  The postcard app does, but not the plugin\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nIt actually turns out that @obastemur's change didn't work due to some issue with Cordova so we are still having to do a search and replace but it doesn't need to be in the instructions anymore. So we are good.\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Ooops the comment above was for another issue. But either way it's good.\n- [ ] <a href='#crh-comment-Pull fce34162abe2efe6a42ec799d52da6396ed44b73 sample/www/jxcore/thali/readme.md 6'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34921759'>File: sample/www/jxcore/thali/readme.md:L1-18</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Unfortunately the mailing list doesn't take emails from people who aren't registered. I would instead suggest telling them to file a Github issue.\n- [ ] <a href='#crh-comment-Pull fce34162abe2efe6a42ec799d52da6396ed44b73 sample/www/jxcore/thali/readme.md 9'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34921778'>File: sample/www/jxcore/thali/readme.md:L1-18</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Usual License comment.\n- [ ] <a href='#crh-comment-Pull 6534eb9981840e71d5d0286c8001ede6fd33d9f8 thali/thalireplicationmanager.js 55'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34923177'>File: thali/thalireplicationmanager.js:L1-302</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> If someone calls start twice won't we end up leaking a serverBridge? Shouldn't we check to see if start has already been called without calling stop and return an error? That would prevent the leak.\nBTW, there is an important assumption I'm making here that isn't proven. In normal Node.js land if you start a server and even if the object representing the server goes out of context the server is still there running. For example I ran the following test:\n```node\nfunction silly() {\nvar httpServer = http.createServer(function(request, response) {\nresponse.statusCode = 200;\nresponse.end();\n});\nhttpServer.listen(3001);\n}\nsilly();\n```\nThe server is still running on port 3001 even after the httpServer variable has gone out of context.\nSo we can't just assume that removing the reference to _serverBridge will mean that the muxServerBridge will stop its listener. That's why I'm worried about the leak. There has to be a call to close on the _serverBridge if it's not null. But I still think it's best if we just prevent someone from calling start twice without an intervening stop.\n- [ ] <a href='#crh-comment-Pull 6534eb9981840e71d5d0286c8001ede6fd33d9f8 thali/thalireplicationmanager.js 78'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34923398'>File: thali/thalireplicationmanager.js:L1-302</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Who calls this? I did a search for _restart and only found the method declaration. Also if someone does call restart how can we be sure that the existing serverBridge has been closed? Shouldn't we try to close it again (with a try/catch) if it's not null just to be sure we aren't leaking anything?\n- [ ] <a href='#crh-comment-Pull 6534eb9981840e71d5d0286c8001ede6fd33d9f8 thali/thalireplicationmanager.js 81'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34929156'>File: thali/thalireplicationmanager.js:L1-302</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Don't you need to stop and restart peer broadcasting so that the native code will call the new _serverBridgePort?\n- [ ] <a href='#crh-comment-Pull 6534eb9981840e71d5d0286c8001ede6fd33d9f8 thali/thalireplicationmanager.js 97'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34929430'>File: thali/thalireplicationmanager.js:L1-302</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> If you get an error from stopBroadcasting this means you are in a very bad place. So wouldn't it make sense to do everything in the \"else\" clause anyway since you are basically in a hole? In other words, we should just have an if to emit the event but otherwise everything from line 99 down should run no matter what.\n- [ ] <a href='#crh-comment-Pull 6534eb9981840e71d5d0286c8001ede6fd33d9f8 thali/thalireplicationmanager.js 132'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34930296'>File: thali/thalireplicationmanager.js:L1-302</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> You essentially repeat the same code to delete the client, replication and call disconnect both here and in syncRetry. I would suggest instead creating a syncPeer object which has on it a 'start' method that will create the client mux bridge, the replication and call connect. And then a stop method that will shut those down. And then you can have a retry which calls stop and then start. That will centralize the code, make it clearer what is involved in a peer replication and generally prevent bugs.\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> Will consider as we split out the mux server bridge into its own module\n- [ ] <a href='#crh-comment-Pull 6534eb9981840e71d5d0286c8001ede6fd33d9f8 README.md 138'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34931559'>File: README.md:L105-124</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> You actually want that to say \"Thali_Cordovaplugin\", the missing 'r' is probably because you copied and pasted from an old Jukka checkin where he made that mistake. In fact he originally misnamed the entire project but we later fixed it. :)\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> I believe this has been fixed.\n- [ ] <a href='#crh-comment-Commit ee5f21f87ae2e52462da917399119df678b31327 test/www/jxcore/test/thaliscenarios.js 37 27'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/commit/ee5f21f87ae2e52462da917399119df678b31327#commitcomment-12447505'>File: test/www/jxcore/test/thaliscenarios.js:L27 (ee5f21f)</a></b>\n- <a href='https://github.com/tobybrad'><img border=0 src='https://avatars.githubusercontent.com/u/8226225?v=3' height=16 width=16'></a> This form causes issues when err doesn't have .message defined (at least on iOS). Execution just stops when I come across one of these. Timeouts still work though. On a side note, assert doesn't appear to be part of the official Tape API (although it's aliased to .ok in code).\nI've tended to replace these with:\nt.ok(!!err2, \"Connect to bad peer should throw error\");\nt.ok(err2.hasOwnProperty('message'), err2.message);\n- [x] <a href='#crh-comment-Commit 2d765912ba6c40914ead7ae35ba1dc135d9524d0 README.md 1 3'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/commit/2d765912ba6c40914ead7ae35ba1dc135d9524d0#commitcomment-12074170'>File: README.md:L3 (2d76591)</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Please revert this entire change to the file. It completely shredded it! Lines are cut off. Important information is deleted. It's a mess. Please roll it back.\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> :+1:\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Sigh.... :P Don't mess with the review system!!!!\n- [x] <a href='#crh-comment-Pull 4ddd79fcf5f0179af524cc0907f32644d706c936 README.md 3'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34526069'>File: README.md:L1-68</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Shouldn't this be \"Work in progress, not release quality !!\"?\n- <a href='https://github.com/mpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/11578097?v=3' height=16 width=16'></a> This is the original wording, I haven't changed anything here, but yes, probably makes more sense that way.\n- [x] <a href='#crh-comment-Pull 4ddd79fcf5f0179af524cc0907f32644d706c936 README.md 11'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34526130'>File: README.md:L1-68</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Pet Peeve - Something is easy to use because it is easy to use, not because we said it is easy to use. Whenever someone has to say \"they are easy to use\" I usually don't believe them. :)\n- <a href='https://github.com/mpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/11578097?v=3' height=16 width=16'></a> I'm not going to argue this because once again I didn't write this originally, but will keep some changes in mind here.\n- [x] <a href='#crh-comment-Pull 4ddd79fcf5f0179af524cc0907f32644d706c936 README.md 84'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34526416'>File: README.md:L69-102</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> The indenting on line 71, 75, etc. is wrong. These are all instructions for Android. So Line 71 should be \"#### use Gradle\" and 75 should be \"#### Build the P2P library to local Maven\"and the children of that should be 5 #s not 4.\n- <a href='https://github.com/mpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/11578097?v=3' height=16 width=16'></a> Will fix\n- [x] <a href='#crh-comment-General Comment'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#issuecomment-121337614'>General Comment</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> As an all up comment, once we have a full code review, can you please rebase this PR so we don't have to stick 52 commits into our history? It makes it really hard to read histories that way. It would be better if this shows up as a single commit.\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> @mattpodwysocki Why do we still have the sample directory? Shouldn't all of those contents be in the test directory? I'm putting myself in the shoes of a user looking at our depo thinking \"Oh great! A sample!\" But it's not really a sample at all, is it? It's really just our test infrastructure.\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> @mattpodwysocki Please delete API.md from root. It's old.\n- [x] <a href='#crh-comment-Pull 528b8d41a9fc9e0bfccc855e034579037789c0f6 README.md 59'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34604317'>File: README.md:L1-100</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Is there a reason why we require node.js (v0.12) as opposed to just JXCore? They will need JXCore eventually and JXCore is 100% backwards compatible with Node.js so why not just use JXCore?\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> Fixed\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nBTW, if you care, the latest release is actually 0.3.0.4\n- [x] <a href='#crh-comment-Pull 528b8d41a9fc9e0bfccc855e034579037789c0f6 README.md 135'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34604583'>File: README.md:L105-124</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> I thought we only support api 19? Not 16? So shouldn't this be 19?\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> Not applicable as we now have the change in the config.xml from Oz\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 README.md 189'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34608484'>File: README.md:L135-191</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> This part confuses me. Why would we have a sample/android/www and sample/ios/www? I thought the whole point of having a single native UX layer in Node.js is that we have the exact same files for both iOS and android, at least at the Node.js layer. My expectation is that there would be a single directory called testing that contains all the test code and that the user would copy that code to the www folder.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 README.md 196'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34608572'>File: README.md:L135-191</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Have you ever actually run the tests on iOS? If only to see if they actually talk to the console as they all fail?\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 sample/ios/www/jxcore/thali/mockmobile.js 4'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34608742'>File: sample/ios/www/jxcore/thali/mockmobile.js:L1-59</a></b>\n- <a href='https://github.com/obastemur'><img border=0 src='https://avatars.githubusercontent.com/u/4390745?v=3' height=16 width=16'></a> how about making it a bit safer;\n```\nkeys.hasOwnProperty(key) ||  (keys[key] = new NativeCall(key));\n```\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nTechnically @obastemur should approve this but he is on vacation at the moment. :)\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 sample/ios/www/jxcore/thali/thalireplicationmanager.js 186'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34609172'>File: sample/ios/www/jxcore/thali/thalireplicationmanager.js:L1-297</a></b>\n- <a href='https://github.com/obastemur'><img border=0 src='https://avatars.githubusercontent.com/u/4390745?v=3' height=16 width=16'></a> is this console.log temporary or there is a need for logging?\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nSee previously approval. :)\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 README.md 213'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34633617'>File: README.md:L135-191</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> We already have a dedicated license file, do we really want to repeat the license again?\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/replication.md 8'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34633704'>File: doc/api/replication.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Since KillConnection is never supposed to be used by 'normal' code it would be good to put KillConnection into a completely separate section with a black box warning that any use of it outside of testing scenarios will result in electrocution and/or uncontrolled vomiting\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/replication.md 22'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34634180'>File: doc/api/replication.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Is it advertising or broadcasting? We should pick one. I would suggest a more action oriented description. Something like \"This method instructs the native layer to advertise the availability of the device under the specified deviceName and to direct any incoming connections to the specified portNumber available on localhost over TCP/IP.\"\nI don't specifically mention PouchDB/Express-PouchDB because it doesn't really matter what is listening. Just so long as it speaks TCP/IP.\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> Fixed to remove any instance of PouchDB references and made it broadcasting not advertising\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/replication.md 23'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34634415'>File: doc/api/replication.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> What happens if someone calls StartBroadcasting twice with the same deviceName and portNumber without calling StopBroadcasting in between?\nWhat happens if someone calls StartBroadcasting twice with different deviceNames and portNumbers without calling StopBroadcasting in between?\nIn general I believe the right answer is that we only allow a single outstanding call to StartBroadcasting regardless of the arguments and a second call without a StopBroadcasting in between is an error.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/replication.md 27'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34634445'>File: doc/api/replication.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> I would just specify a tcp/ip local listener. We want people to re-use our code for lots of scenarios, not just Express-PouchDB.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/replication.md 35'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34634468'>File: doc/api/replication.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> What happens if StopBroadcasting is called without an active StartBroadcasting?\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> Fixed as per discussion\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/replication.md 46'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34634719'>File: doc/api/replication.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Again, I would use more action oriented language. Something like \"This method instructs the native layer to establish a TCP/IP connection to the peer identified by the peerIdentifier, which is obtained via a peerAvailabilityChanged event.\"\nAlso shouldn't we specify what the \"in process\" error is required to look like? Otherwise nobody can tell the difference between a \"something went horribly wrong\" error and a \"hey dummy, you already called this!\" error.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/replication.md 59'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34634889'>File: doc/api/replication.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Grammar nit \"This method disconnects from the peer with the given peer identifier.\"\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nActually this one isn't fixed in the PR. The grammar bug that is. I'm +1ing because this isn't a blocking issue.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/replication.md 71'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34635009'>File: doc/api/replication.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> I would suggest pointing out that we expect the connection kill to be intentionally dirty since the goal here is to really test how well the native layer handles unexpected connection failures.\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> Fixed as per discussion\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/replication.md 2'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34635411'>File: doc/api/replication.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Question 1 - Should this really be called replication.md? It's really just the native API layer for the discovery and p2p infrastructure. It really has nothing to do with replication. In fact some day it will be refactored (along with ThaliEmitter) as a stand alone NPM library that anyone who wants to use our discovery and p2p functionality with their TCP/IP servers and clients can use without the rest of Thali.\nQuestion 2 - Shouldn't we have some kind of short introduction that specifies that this is our \"raw\" interface to the native layer for handling local discovery and p2p and that developers should use ThaliEmitter instead?\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/thaliemitter.md 3'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34635845'>File: doc/api/thaliemitter.md:L1-190</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Wouldn't it make sense to point out to folks that this is the class we expect people to use when they want to use the Thali local discovery and p2p capabilities with TCP/IP clients and servers without the rest of Thali? We should probably also mention that in time we will refactor this into a stand alone NPM.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/thaliemitter.md 7'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34635875'>File: doc/api/thaliemitter.md:L1-190</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Call before declare error. :) The user at this point hasn't seen peerAvailabilityChanged. But I suppose we can live with that.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/thaliemitter.md 10'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34635910'>File: doc/api/thaliemitter.md:L1-190</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Wouldn't it be good to include the require statement so they know what name we use?\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/thaliemitter.md 33'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34636052'>File: doc/api/thaliemitter.md:L1-190</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> We should probably just copy the description from the previous file.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/thalireplicationmanager.md 1'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34636249'>File: doc/api/thalireplicationmanager.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> It would probably be good to point out that this is just a hack for story 0 and that this class will be changed and enhanced significantly in the future.\nIt would probably also be good to point out what this thing actually does. In other words that it looks for anyone advertising our service ID and will try to synch everything it has with that person. And yes, this is just test code for story 0.\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> Done as noted:\nThe `ThaliReplicationManager` class handles database replication between devices, using [PouchDB](http://pouchdb.com/) and the Thali Cordova bridge `ThaliEmitter` class.  This class is meant solely for the purpose of demonstrating [Thali Story 0](http://thaliproject.org/stories) and will be dramatically enhanced in the future.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/thalireplicationmanager.md 9'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34636265'>File: doc/api/thalireplicationmanager.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> It would be good to include our require as well.\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> done for all cases\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/thalireplicationmanager.md 35'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34636403'>File: doc/api/thalireplicationmanager.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> What happens if we try to create multiple replication managers with the same DB? With different DBs?\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> That's undefined behavior because I'm pretty sure it will just work to advertise and sync to any remote client.  I don't think it's necessary to point this out.\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nWe can worry about these issues when we have something production ready. This is just for story 0.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 doc/api/thalireplicationmanager.md 54'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34636446'>File: doc/api/thalireplicationmanager.md:L1-107</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> What if we call start multiple times without calling stop?\nDo we even support calling start and then stop and then start again?\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nI'm closing this for the moment because this isn't a production file so it doesn't need to meet production quality.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 emulator/index.js 1'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34637275'>File: emulator/index.js:L1-33</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Please exclude the emulator directory from this PR since they are, as you put it, a WIP. WIPs should live in the developer branch, not the story branch.\n- [x] <a href='#crh-comment-Pull fefa1c30252ed9083a91ea46dbf41e71a70c6399 package.json 1'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34637499'>File: package.json:L1-24</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> I'm probably being thicker than usual but why is there a package.json file in the root of the entire repository? Shouldn't we just need one in the Thali (and eventually Test) directories?\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nI actually nuked this file in my PR. So I'll resolve this when I merge with your PR.\n- [x] <a href='#crh-comment-Pull fce34162abe2efe6a42ec799d52da6396ed44b73 sample/www/jxcore/app.js 13'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34827759'>File: sample/www/jxcore/app.js:L1-30</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Nice! Very simple solution to what could have been a nasty problem! Thanks!\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> Thanks!\n- [x] <a href='#crh-comment-Pull fce34162abe2efe6a42ec799d52da6396ed44b73 sample/www/jxcore/test/readme.md 9'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34828157'>File: sample/www/jxcore/test/readme.md:L1-18</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> It's probably best to avoid repeating the license\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nOr not.\n- [x] <a href='#crh-comment-Pull fce34162abe2efe6a42ec799d52da6396ed44b73 sample/www/jxcore/test/thaliscenarios.js 8'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34828830'>File: sample/www/jxcore/test/thaliscenarios.js:L1-80</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> For hygiene sake please define the port using a variable. Preferably at a global level in another file so that all the tests that need a local PouchDB instance can share the same one. Prevents silly errors.\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nI'll deal with this when I review the new test files\n- [x] <a href='#crh-comment-Pull fce34162abe2efe6a42ec799d52da6396ed44b73 sample/www/jxcore/test/thaliscenarios.js 9'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34828946'>File: sample/www/jxcore/test/thaliscenarios.js:L1-80</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Shouldn't we use plan(2) so we can make sure that both call backs actually happened? Right now if via some strange bug the startBroadcasting never actually called back we wouldn't realize there was an error.\n- [x] <a href='#crh-comment-Pull fce34162abe2efe6a42ec799d52da6396ed44b73 sample/www/jxcore/test/thaliscenarios.js 19'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34920934'>File: sample/www/jxcore/test/thaliscenarios.js:L1-80</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> I suspect this is a test of calling stopBroadcasting without calling startBroadcasting. In which case the title should be changed.\n- [x] <a href='#crh-comment-Pull fce34162abe2efe6a42ec799d52da6396ed44b73 sample/www/jxcore/thali/mockmobile.js 19'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34921676'>File: sample/www/jxcore/thali/mockmobile.js:L1-59</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> Since the next four methods are all identical in contents but for a string why not just refactor this into a call to a single function?\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> :+1:\nI'll deal with this in my review of the new files\n- [x] <a href='#crh-comment-Pull 6534eb9981840e71d5d0286c8001ede6fd33d9f8 thali/thalireplicationmanager.js 73'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25#discussion_r34923031'>File: thali/thalireplicationmanager.js:L1-302</a></b>\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> This function description is left over from something else, it doesn't apply to the function below.\n- [x] <a href='#crh-comment-Commit 649662da7c7d4f432a988964a58d41501ce59cf9'></a> <img src='http://www.codereviewhub.com/site/github-completed.png' height=16 width=60>&nbsp;<b><a href='https://github.com/thaliproject/Thali_CordovaPlugin/commit/649662da7c7d4f432a988964a58d41501ce59cf9#commitcomment-12260383'>Commit 649662d comments</a></b>\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> @yaronyg `jx.core.js` is required for this example and will pull it in automatically I believe upon creation.\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> I actually deleted this script line in my project and it worked just fine. I think it's auto-loaded. We don't need to explicitly reference it.\n- <a href='https://github.com/mattpodwysocki'><img border=0 src='https://avatars.githubusercontent.com/u/49051?v=3' height=16 width=16'></a> @yaronyg the reason I kept it in was that the postcard app and others had it referenced.  Better safe than sorry as it doesn't error to have it in there https://github.com/thaliproject/postcardapp/blob/story_0_matthewp/www/index.html\n- <a href='https://github.com/yaronyg'><img border=0 src='https://avatars.githubusercontent.com/u/1480964?v=3' height=16 width=16'></a> It's obviously not a huge deal but, for example, at run time you will just get an error that jxcore.js isn't in assets so this line isn't doing anything. Also note that I believe the real jxcore.js is automatically loaded in the cordova webview by JXCore itself. No script tag needed.\n\n\n<a href='https://www.codereviewhub.com/thaliproject/Thali_CordovaPlugin/pull/25?mark_as_completed=1'><img src='http://www.codereviewhub.com/site/github-mark-as-completed.png' height=26></a>&nbsp;<a href='https://www.codereviewhub.com/thaliproject/Thali_CordovaPlugin/pull/25?approve=1'><img src='http://www.codereviewhub.com/site/github-approve.png' height=26></a>&nbsp;<a href='https://github.com/thaliproject/Thali_CordovaPlugin/pull/25'><img src='http://www.codereviewhub.com/site/github-refresh.png' height=26></a>\n<a href='#crh-end'></a>","created_at":"2015-07-13T22:50:27Z","updated_at":"2015-07-31T16:04:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6f535a169e26253beadb32d2b179de3dda590588","assignee":{"login":"mpodwysocki","id":11578097,"avatar_url":"https://avatars.githubusercontent.com/u/11578097?v=3","gravatar_id":"","url":"https://api.github.com/users/mpodwysocki","html_url":"https://github.com/mpodwysocki","followers_url":"https://api.github.com/users/mpodwysocki/followers","following_url":"https://api.github.com/users/mpodwysocki/following{/other_user}","gists_url":"https://api.github.com/users/mpodwysocki/gists{/gist_id}","starred_url":"https://api.github.com/users/mpodwysocki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpodwysocki/subscriptions","organizations_url":"https://api.github.com/users/mpodwysocki/orgs","repos_url":"https://api.github.com/users/mpodwysocki/repos","events_url":"https://api.github.com/users/mpodwysocki/events{/privacy}","received_events_url":"https://api.github.com/users/mpodwysocki/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/milestones/1","html_url":"https://github.com/thaliproject/Thali_CordovaPlugin/milestones/0%20-%20Turn%20on%20the%20lights","labels_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/milestones/1/labels","id":1145605,"number":1,"title":"0 - Turn on the lights","description":"","creator":{"login":"yaronyg","id":1480964,"avatar_url":"https://avatars.githubusercontent.com/u/1480964?v=3","gravatar_id":"","url":"https://api.github.com/users/yaronyg","html_url":"https://github.com/yaronyg","followers_url":"https://api.github.com/users/yaronyg/followers","following_url":"https://api.github.com/users/yaronyg/following{/other_user}","gists_url":"https://api.github.com/users/yaronyg/gists{/gist_id}","starred_url":"https://api.github.com/users/yaronyg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yaronyg/subscriptions","organizations_url":"https://api.github.com/users/yaronyg/orgs","repos_url":"https://api.github.com/users/yaronyg/repos","events_url":"https://api.github.com/users/yaronyg/events{/privacy}","received_events_url":"https://api.github.com/users/yaronyg/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":4,"state":"open","created_at":"2015-06-02T18:01:36Z","updated_at":"2015-07-31T15:25:01Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/25/commits","review_comments_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/25/comments","review_comment_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/issues/25/comments","statuses_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/statuses/fab72733a0343f7c8348ef6285e46945ceeb94ee","head":{"label":"thaliproject:story_0_matthewp","ref":"story_0_matthewp","sha":"fab72733a0343f7c8348ef6285e46945ceeb94ee","user":{"login":"thaliproject","id":7918300,"avatar_url":"https://avatars.githubusercontent.com/u/7918300?v=3","gravatar_id":"","url":"https://api.github.com/users/thaliproject","html_url":"https://github.com/thaliproject","followers_url":"https://api.github.com/users/thaliproject/followers","following_url":"https://api.github.com/users/thaliproject/following{/other_user}","gists_url":"https://api.github.com/users/thaliproject/gists{/gist_id}","starred_url":"https://api.github.com/users/thaliproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thaliproject/subscriptions","organizations_url":"https://api.github.com/users/thaliproject/orgs","repos_url":"https://api.github.com/users/thaliproject/repos","events_url":"https://api.github.com/users/thaliproject/events{/privacy}","received_events_url":"https://api.github.com/users/thaliproject/received_events","type":"Organization","site_admin":false},"repo":{"id":36732493,"name":"Thali_CordovaPlugin","full_name":"thaliproject/Thali_CordovaPlugin","owner":{"login":"thaliproject","id":7918300,"avatar_url":"https://avatars.githubusercontent.com/u/7918300?v=3","gravatar_id":"","url":"https://api.github.com/users/thaliproject","html_url":"https://github.com/thaliproject","followers_url":"https://api.github.com/users/thaliproject/followers","following_url":"https://api.github.com/users/thaliproject/following{/other_user}","gists_url":"https://api.github.com/users/thaliproject/gists{/gist_id}","starred_url":"https://api.github.com/users/thaliproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thaliproject/subscriptions","organizations_url":"https://api.github.com/users/thaliproject/orgs","repos_url":"https://api.github.com/users/thaliproject/repos","events_url":"https://api.github.com/users/thaliproject/events{/privacy}","received_events_url":"https://api.github.com/users/thaliproject/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/thaliproject/Thali_CordovaPlugin","description":"Thali p2p plugin ","fork":false,"url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin","forks_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/forks","keys_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/teams","hooks_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/hooks","issue_events_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/issues/events{/number}","events_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/events","assignees_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/assignees{/user}","branches_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/branches{/branch}","tags_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/tags","blobs_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/statuses/{sha}","languages_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/languages","stargazers_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/stargazers","contributors_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/contributors","subscribers_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/subscribers","subscription_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/subscription","commits_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/contents/{+path}","compare_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/merges","archive_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/downloads","issues_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/issues{/number}","pulls_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls{/number}","milestones_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/milestones{/number}","notifications_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/labels{/name}","releases_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/releases{/id}","created_at":"2015-06-02T12:45:51Z","updated_at":"2015-07-29T10:31:47Z","pushed_at":"2015-07-31T14:37:04Z","git_url":"git://github.com/thaliproject/Thali_CordovaPlugin.git","ssh_url":"git@github.com:thaliproject/Thali_CordovaPlugin.git","clone_url":"https://github.com/thaliproject/Thali_CordovaPlugin.git","svn_url":"https://github.com/thaliproject/Thali_CordovaPlugin","homepage":null,"size":1220,"stargazers_count":7,"watchers_count":7,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":33,"forks":1,"open_issues":33,"watchers":7,"default_branch":"master"}},"base":{"label":"thaliproject:story_0","ref":"story_0","sha":"de8ca85d3a931c2a89f90d4e8b39f9818a3b5bb4","user":{"login":"thaliproject","id":7918300,"avatar_url":"https://avatars.githubusercontent.com/u/7918300?v=3","gravatar_id":"","url":"https://api.github.com/users/thaliproject","html_url":"https://github.com/thaliproject","followers_url":"https://api.github.com/users/thaliproject/followers","following_url":"https://api.github.com/users/thaliproject/following{/other_user}","gists_url":"https://api.github.com/users/thaliproject/gists{/gist_id}","starred_url":"https://api.github.com/users/thaliproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thaliproject/subscriptions","organizations_url":"https://api.github.com/users/thaliproject/orgs","repos_url":"https://api.github.com/users/thaliproject/repos","events_url":"https://api.github.com/users/thaliproject/events{/privacy}","received_events_url":"https://api.github.com/users/thaliproject/received_events","type":"Organization","site_admin":false},"repo":{"id":36732493,"name":"Thali_CordovaPlugin","full_name":"thaliproject/Thali_CordovaPlugin","owner":{"login":"thaliproject","id":7918300,"avatar_url":"https://avatars.githubusercontent.com/u/7918300?v=3","gravatar_id":"","url":"https://api.github.com/users/thaliproject","html_url":"https://github.com/thaliproject","followers_url":"https://api.github.com/users/thaliproject/followers","following_url":"https://api.github.com/users/thaliproject/following{/other_user}","gists_url":"https://api.github.com/users/thaliproject/gists{/gist_id}","starred_url":"https://api.github.com/users/thaliproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thaliproject/subscriptions","organizations_url":"https://api.github.com/users/thaliproject/orgs","repos_url":"https://api.github.com/users/thaliproject/repos","events_url":"https://api.github.com/users/thaliproject/events{/privacy}","received_events_url":"https://api.github.com/users/thaliproject/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/thaliproject/Thali_CordovaPlugin","description":"Thali p2p plugin ","fork":false,"url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin","forks_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/forks","keys_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/teams","hooks_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/hooks","issue_events_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/issues/events{/number}","events_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/events","assignees_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/assignees{/user}","branches_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/branches{/branch}","tags_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/tags","blobs_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/statuses/{sha}","languages_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/languages","stargazers_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/stargazers","contributors_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/contributors","subscribers_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/subscribers","subscription_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/subscription","commits_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/contents/{+path}","compare_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/merges","archive_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/downloads","issues_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/issues{/number}","pulls_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls{/number}","milestones_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/milestones{/number}","notifications_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/labels{/name}","releases_url":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/releases{/id}","created_at":"2015-06-02T12:45:51Z","updated_at":"2015-07-29T10:31:47Z","pushed_at":"2015-07-31T14:37:04Z","git_url":"git://github.com/thaliproject/Thali_CordovaPlugin.git","ssh_url":"git@github.com:thaliproject/Thali_CordovaPlugin.git","clone_url":"https://github.com/thaliproject/Thali_CordovaPlugin.git","svn_url":"https://github.com/thaliproject/Thali_CordovaPlugin","homepage":null,"size":1220,"stargazers_count":7,"watchers_count":7,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":33,"forks":1,"open_issues":33,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/25"},"html":{"href":"https://github.com/thaliproject/Thali_CordovaPlugin/pull/25"},"issue":{"href":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/issues/25"},"comments":{"href":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/issues/25/comments"},"review_comments":{"href":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/25/comments"},"review_comment":{"href":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/pulls/25/commits"},"statuses":{"href":"https://api.github.com/repos/thaliproject/Thali_CordovaPlugin/statuses/fab72733a0343f7c8348ef6285e46945ceeb94ee"}}}}