{"action":"created","comment":{"url":"https://api.github.com/repos/SitePen/dstore/pulls/comments/36568338","id":36568338,"diff_hunk":"@@ -0,0 +1,581 @@\n+import * as arrayUtil from 'dojo-core/array';\n+import * as aspect from 'dojo-core/aspect';\n+import Evented from 'dojo-core/Evented';\n+import { default as has, add as hasAdd } from 'dojo-core/has';\n+import { EventObject, Handle, Hash } from 'dojo-core/interfaces';\n+import * as lang from 'dojo-core/lang';\n+import Promise from 'dojo-core/Promise';\n+import Filter from './Filter';\n+import * as dstore from './interfaces';\n+import QueryMethod, { QueryMethodArgs } from './QueryMethod';\n+\n+// module:\n+//\t\tdstore/Store\n+/* jshint proto: true */\n+// detect __proto__, and avoid using it on Firefox, as they warn about\n+// deoptimizations. The watch method is a clear indicator of the Firefox\n+// JS engine.\n+\n+hasAdd('object-proto', Boolean((<any> {})['__proto__']) && !(<any> {}).watch);\n+const hasProto = has('object-proto');\n+\n+export interface NewableStoreModel {\n+\tnew (args?: {}): any;\n+\tcreateSubclass?: (arg: any[]) => any;\n+\tprototype: any;\n+}\n+\n+export interface StoreArgs {\n+\tModel?: NewableStoreModel;\n+}\n+\n+export default class Store<T> extends Evented implements dstore.Collection<T>, Hash<any> {\n+\t[ index: string ]: any;\n+\t// summary:\n+\t//\t\tCreates an object, throws an error if the object already exists\n+\t// object: Object\n+\t//\t\tThe object to store.\n+\t// directives: dstore/Store.PutDirectives?\n+\t//\t\tAdditional directives for creating objects.\n+\t// returns: Object\n+\t//\t\tThe object that was stored, with any changes that were made by\n+\t//\t\tthe storage system (like generated id)\n+\tadd: (object: any, directives?: dstore.PutDirectives) => any;\n+\n+\t// autoEmitEvents: Boolean\n+\t//\t\tIndicates if the events should automatically be fired for put, add, remove\n+\t//\t\tmethod calls. Stores may wish to explicitly fire events, to control when\n+\t//\t\tand which event is fired.\n+\tautoEmitEvents: boolean;\n+\n+\t// autoEmitHandles: Handle[]\n+\t//\t\tHoldes handles to the aspects responsible for automatically emitting events\n+\t//\t\twhen add, remove, or put are called.\n+\t// TODO - Once all classes are converted to typescript, and overriding value for autoEmitEvents\n+\t// can be passed to the constructor, and this will no longer be necessary.\n+\tautoEmitHandles: Handle[];\n+\n+\tfetch: (args?: dstore.FetchArgs) => dstore.FetchPromise<T>;\n+\n+\tFilter: typeof Filter;\n+\n+\t// summary:\n+\t//\t\tRetrieves an object by its identity\n+\t// id: Number\n+\t//\t\tThe identity to use to lookup the object\n+\t// returns: Object\n+\t//\t\tThe object in the store that matches the given id.\n+\tget: (id: string | number) => any;\n+\n+\t// idProperty: String\n+\t//\t\tIndicates the property to use as the identity property. The values of this\n+\t//\t\tproperty should be unique.\n+\tidProperty: string;\n+\n+\t// Model: Function\n+\t//\t\tThis should be a entity (like a class/constructor) with a 'prototype' property that will be\n+\t//\t\tused as the prototype for all objects returned from this store. One can set\n+\t//\t\tthis to the Model from dmodel/Model to return Model objects, or leave this\n+\t//\t\tto null if you don't want any methods to decorate the returned\n+\t//\t\tobjects (this can improve performance by avoiding prototype setting),\n+\tModel: NewableStoreModel;\n+\n+\t// parse: Function\n+\t//\t\tOne can provide a parsing function that will permit the parsing of the data. By\n+\t//\t\tdefault we assume the provide data is a simple JavaScript array that requires\n+\t//\t\tno parsing (subclass stores may provide their own default parse function)\n+\tparse: (...args: any[]) => any;\n+\n+\t// summary:\n+\t//\t\tStores an object\n+\t// object: Object\n+\t//\t\tThe object to store.\n+\t// directives: dstore/Store.PutDirectives?\n+\t//\t\tAdditional directives for storing objects.\n+\t// returns: Object\n+\t//\t\tThe object that was stored, with any changes that were made by\n+\t//\t\tthe storage system (like generated id)\n+\tput: (object: any, directives?: dstore.PutDirectives) => any;\n+\n+\t// queryAccessors: Boolean\n+\t//\t\tIndicates if client-side query engine filtering should (if the store property is true)\n+\t//\t\taccess object properties through the get() function (enabling querying by\n+\t//\t\tcomputed properties), or if it should (by setting this to false) use direct/raw\n+\t// \t\tproperty access (which may more closely follow database querying style).\n+\tqueryAccessors: boolean =  true;\n+\n+\t// summary:\n+\t//\t\tDeletes an object by its identity\n+\t// id: Number\n+\t//\t\tThe identity to use to delete the object\n+\tremove: (id: any) => Promise<Object>;\n+\n+\t// queryLog: __QueryLogEntry[]\n+\t//\t\tThe query operations represented by this collection\n+\tqueryLog: dstore.QueryLogEntry<any> [];\n+\n+\tstorage: Evented;\n+\n+\t// stringify: Function\n+\t//\t\tFor stores that serialize data (to send to a server, for example) the stringify\n+\t//\t\tfunction can be specified to control how objects are serialized to strings\n+\tstringify: () => any;\n+\n+\tconstructor(options?: StoreArgs) {\n+\t\tsuper();\n+\t\tthis.autoEmitEvents = true;\n+\t\tthis.autoEmitHandles = [];\n+\t\tthis.idProperty = 'id';\n+\t\tthis.queryLog = [];\n+\t\tthis.Filter = Filter;\n+\t\t// Set defaults\n+\t\t// perform the mixin\n+\t\toptions && lang.mixin(this, options);\n+\t\t// TODO - Don't do this, it's a workaround to make inheritance from this class via\n+\t\t// declare work properly.\n+\t\tfor (let name in this) {\n+\t\t\tlet value = this[name];\n+\t\t\tif (Object.prototype.toString.call(value) === '[object Function]') {\n+\t\t\t\tvalue.nom = name;\n+\t\t\t}\n+\t\t}\n+\n+\t\t// TODO - This is designed specifically for working with declare-based inheritance and needs to be reworked.\n+\t\tif (this.Model && this.Model.createSubclass) {\n+\t\t\t// we need a distinct model for each store, so we can\n+\t\t\t// save the reference back to this store on it.\n+\t\t\t// we always create a new model to be safe.\n+\t\t\tthis.Model = this.Model.createSubclass([]).extend({\n+\t\t\t\t// give a reference back to the store for saving, etc.\n+\t\t\t\t_store: this\n+\t\t\t});\n+\t\t}\n+\n+\t\t// the object the store can use for holding any local data or events\n+\t\tthis.storage = new Evented();\n+\t\tconst store = this;\n+\t\tif (this.autoEmitEvents) {\n+\t\t\t// emit events when modification operations are called\n+\t\t\tthis.autoEmitHandles.push(aspect.after(this, 'add', <any> this._emitUpdateEvent('add')));\n+\t\t\tthis.autoEmitHandles.push(aspect.after(this, 'put', <any> this._emitUpdateEvent('update')));\n+\t\t\tthis.autoEmitHandles.push(aspect.after(this, 'remove', function (result, args) {\n+\t\t\t\tconst emit = function (result: Promise<any> | any) {","path":"src/Store.ts","position":null,"original_position":162,"commit_id":"4dc0b24b325a41f179bfe82fe07e815e343b508f","original_commit_id":"27ece3e3c22f432952ca7c9fcb1d220a0120bcbc","user":{"login":"maier49","id":5474358,"avatar_url":"https://avatars.githubusercontent.com/u/5474358?v=3","gravatar_id":"","url":"https://api.github.com/users/maier49","html_url":"https://github.com/maier49","followers_url":"https://api.github.com/users/maier49/followers","following_url":"https://api.github.com/users/maier49/following{/other_user}","gists_url":"https://api.github.com/users/maier49/gists{/gist_id}","starred_url":"https://api.github.com/users/maier49/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maier49/subscriptions","organizations_url":"https://api.github.com/users/maier49/orgs","repos_url":"https://api.github.com/users/maier49/repos","events_url":"https://api.github.com/users/maier49/events{/privacy}","received_events_url":"https://api.github.com/users/maier49/received_events","type":"User","site_admin":false},"body":"I simplified the type and removed the redundant return.","created_at":"2015-08-07T22:52:08Z","updated_at":"2015-08-07T22:52:08Z","html_url":"https://github.com/SitePen/dstore/pull/145#discussion_r36568338","pull_request_url":"https://api.github.com/repos/SitePen/dstore/pulls/145","_links":{"self":{"href":"https://api.github.com/repos/SitePen/dstore/pulls/comments/36568338"},"html":{"href":"https://github.com/SitePen/dstore/pull/145#discussion_r36568338"},"pull_request":{"href":"https://api.github.com/repos/SitePen/dstore/pulls/145"}}},"pull_request":{"url":"https://api.github.com/repos/SitePen/dstore/pulls/145","id":40867395,"html_url":"https://github.com/SitePen/dstore/pull/145","diff_url":"https://github.com/SitePen/dstore/pull/145.diff","patch_url":"https://github.com/SitePen/dstore/pull/145.patch","issue_url":"https://api.github.com/repos/SitePen/dstore/issues/145","number":145,"state":"open","locked":false,"title":"Convert several modules to TypeScript","user":{"login":"maier49","id":5474358,"avatar_url":"https://avatars.githubusercontent.com/u/5474358?v=3","gravatar_id":"","url":"https://api.github.com/users/maier49","html_url":"https://github.com/maier49","followers_url":"https://api.github.com/users/maier49/followers","following_url":"https://api.github.com/users/maier49/following{/other_user}","gists_url":"https://api.github.com/users/maier49/gists{/gist_id}","starred_url":"https://api.github.com/users/maier49/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maier49/subscriptions","organizations_url":"https://api.github.com/users/maier49/orgs","repos_url":"https://api.github.com/users/maier49/repos","events_url":"https://api.github.com/users/maier49/events{/privacy}","received_events_url":"https://api.github.com/users/maier49/received_events","type":"User","site_admin":false},"body":"Fixes #143, Fixes #138, Fixes #137, Fixes #136\r\n\r\n * QueryResults has been converted to TypeScript\r\n * Filter has been converted to TypeScript\r\n * Store and tests/unit/Store have been converted.\r\n * Request and tests/unit/Request have been converted.\r\n\r\nAll test cases that were previously passing are still\r\npassing, as well as the Request test cases.\r\n\r\nQueryResults needed to be modified to return an ES6 style\r\npromise, because of calls to super made by the promise\r\nreturned from dojo-core/Request. This conversion in turn\r\nrequired many tests cases and some sources files to be\r\nupdated, as they were relying on the fact that Dojo 1 style\r\npromises execute synchronously in some cases.","created_at":"2015-07-27T03:15:31Z","updated_at":"2015-08-07T22:52:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a58b672c174adb6ef639c1971fb4f26b89a0bc63","assignee":{"login":"kfranqueiro","id":398379,"avatar_url":"https://avatars.githubusercontent.com/u/398379?v=3","gravatar_id":"","url":"https://api.github.com/users/kfranqueiro","html_url":"https://github.com/kfranqueiro","followers_url":"https://api.github.com/users/kfranqueiro/followers","following_url":"https://api.github.com/users/kfranqueiro/following{/other_user}","gists_url":"https://api.github.com/users/kfranqueiro/gists{/gist_id}","starred_url":"https://api.github.com/users/kfranqueiro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kfranqueiro/subscriptions","organizations_url":"https://api.github.com/users/kfranqueiro/orgs","repos_url":"https://api.github.com/users/kfranqueiro/repos","events_url":"https://api.github.com/users/kfranqueiro/events{/privacy}","received_events_url":"https://api.github.com/users/kfranqueiro/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/SitePen/dstore/pulls/145/commits","review_comments_url":"https://api.github.com/repos/SitePen/dstore/pulls/145/comments","review_comment_url":"https://api.github.com/repos/SitePen/dstore/pulls/comments{/number}","comments_url":"https://api.github.com/repos/SitePen/dstore/issues/145/comments","statuses_url":"https://api.github.com/repos/SitePen/dstore/statuses/4dc0b24b325a41f179bfe82fe07e815e343b508f","head":{"label":"maier49:convert-request-to-ts","ref":"convert-request-to-ts","sha":"4dc0b24b325a41f179bfe82fe07e815e343b508f","user":{"login":"maier49","id":5474358,"avatar_url":"https://avatars.githubusercontent.com/u/5474358?v=3","gravatar_id":"","url":"https://api.github.com/users/maier49","html_url":"https://github.com/maier49","followers_url":"https://api.github.com/users/maier49/followers","following_url":"https://api.github.com/users/maier49/following{/other_user}","gists_url":"https://api.github.com/users/maier49/gists{/gist_id}","starred_url":"https://api.github.com/users/maier49/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maier49/subscriptions","organizations_url":"https://api.github.com/users/maier49/orgs","repos_url":"https://api.github.com/users/maier49/repos","events_url":"https://api.github.com/users/maier49/events{/privacy}","received_events_url":"https://api.github.com/users/maier49/received_events","type":"User","site_admin":false},"repo":{"id":38319671,"name":"dstore","full_name":"maier49/dstore","owner":{"login":"maier49","id":5474358,"avatar_url":"https://avatars.githubusercontent.com/u/5474358?v=3","gravatar_id":"","url":"https://api.github.com/users/maier49","html_url":"https://github.com/maier49","followers_url":"https://api.github.com/users/maier49/followers","following_url":"https://api.github.com/users/maier49/following{/other_user}","gists_url":"https://api.github.com/users/maier49/gists{/gist_id}","starred_url":"https://api.github.com/users/maier49/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maier49/subscriptions","organizations_url":"https://api.github.com/users/maier49/orgs","repos_url":"https://api.github.com/users/maier49/repos","events_url":"https://api.github.com/users/maier49/events{/privacy}","received_events_url":"https://api.github.com/users/maier49/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/maier49/dstore","description":"","fork":true,"url":"https://api.github.com/repos/maier49/dstore","forks_url":"https://api.github.com/repos/maier49/dstore/forks","keys_url":"https://api.github.com/repos/maier49/dstore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/maier49/dstore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/maier49/dstore/teams","hooks_url":"https://api.github.com/repos/maier49/dstore/hooks","issue_events_url":"https://api.github.com/repos/maier49/dstore/issues/events{/number}","events_url":"https://api.github.com/repos/maier49/dstore/events","assignees_url":"https://api.github.com/repos/maier49/dstore/assignees{/user}","branches_url":"https://api.github.com/repos/maier49/dstore/branches{/branch}","tags_url":"https://api.github.com/repos/maier49/dstore/tags","blobs_url":"https://api.github.com/repos/maier49/dstore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/maier49/dstore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/maier49/dstore/git/refs{/sha}","trees_url":"https://api.github.com/repos/maier49/dstore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/maier49/dstore/statuses/{sha}","languages_url":"https://api.github.com/repos/maier49/dstore/languages","stargazers_url":"https://api.github.com/repos/maier49/dstore/stargazers","contributors_url":"https://api.github.com/repos/maier49/dstore/contributors","subscribers_url":"https://api.github.com/repos/maier49/dstore/subscribers","subscription_url":"https://api.github.com/repos/maier49/dstore/subscription","commits_url":"https://api.github.com/repos/maier49/dstore/commits{/sha}","git_commits_url":"https://api.github.com/repos/maier49/dstore/git/commits{/sha}","comments_url":"https://api.github.com/repos/maier49/dstore/comments{/number}","issue_comment_url":"https://api.github.com/repos/maier49/dstore/issues/comments{/number}","contents_url":"https://api.github.com/repos/maier49/dstore/contents/{+path}","compare_url":"https://api.github.com/repos/maier49/dstore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/maier49/dstore/merges","archive_url":"https://api.github.com/repos/maier49/dstore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/maier49/dstore/downloads","issues_url":"https://api.github.com/repos/maier49/dstore/issues{/number}","pulls_url":"https://api.github.com/repos/maier49/dstore/pulls{/number}","milestones_url":"https://api.github.com/repos/maier49/dstore/milestones{/number}","notifications_url":"https://api.github.com/repos/maier49/dstore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/maier49/dstore/labels{/name}","releases_url":"https://api.github.com/repos/maier49/dstore/releases{/id}","created_at":"2015-06-30T16:14:31Z","updated_at":"2015-06-30T16:14:31Z","pushed_at":"2015-08-07T22:51:19Z","git_url":"git://github.com/maier49/dstore.git","ssh_url":"git@github.com:maier49/dstore.git","clone_url":"https://github.com/maier49/dstore.git","svn_url":"https://github.com/maier49/dstore","homepage":"http://dstorejs.io/","size":1338,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"SitePen:master","ref":"master","sha":"6a161bd6947ab2b1e346ade78a1547136d244b8f","user":{"login":"SitePen","id":1067343,"avatar_url":"https://avatars.githubusercontent.com/u/1067343?v=3","gravatar_id":"","url":"https://api.github.com/users/SitePen","html_url":"https://github.com/SitePen","followers_url":"https://api.github.com/users/SitePen/followers","following_url":"https://api.github.com/users/SitePen/following{/other_user}","gists_url":"https://api.github.com/users/SitePen/gists{/gist_id}","starred_url":"https://api.github.com/users/SitePen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SitePen/subscriptions","organizations_url":"https://api.github.com/users/SitePen/orgs","repos_url":"https://api.github.com/users/SitePen/repos","events_url":"https://api.github.com/users/SitePen/events{/privacy}","received_events_url":"https://api.github.com/users/SitePen/received_events","type":"Organization","site_admin":false},"repo":{"id":11800427,"name":"dstore","full_name":"SitePen/dstore","owner":{"login":"SitePen","id":1067343,"avatar_url":"https://avatars.githubusercontent.com/u/1067343?v=3","gravatar_id":"","url":"https://api.github.com/users/SitePen","html_url":"https://github.com/SitePen","followers_url":"https://api.github.com/users/SitePen/followers","following_url":"https://api.github.com/users/SitePen/following{/other_user}","gists_url":"https://api.github.com/users/SitePen/gists{/gist_id}","starred_url":"https://api.github.com/users/SitePen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SitePen/subscriptions","organizations_url":"https://api.github.com/users/SitePen/orgs","repos_url":"https://api.github.com/users/SitePen/repos","events_url":"https://api.github.com/users/SitePen/events{/privacy}","received_events_url":"https://api.github.com/users/SitePen/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SitePen/dstore","description":"","fork":false,"url":"https://api.github.com/repos/SitePen/dstore","forks_url":"https://api.github.com/repos/SitePen/dstore/forks","keys_url":"https://api.github.com/repos/SitePen/dstore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SitePen/dstore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SitePen/dstore/teams","hooks_url":"https://api.github.com/repos/SitePen/dstore/hooks","issue_events_url":"https://api.github.com/repos/SitePen/dstore/issues/events{/number}","events_url":"https://api.github.com/repos/SitePen/dstore/events","assignees_url":"https://api.github.com/repos/SitePen/dstore/assignees{/user}","branches_url":"https://api.github.com/repos/SitePen/dstore/branches{/branch}","tags_url":"https://api.github.com/repos/SitePen/dstore/tags","blobs_url":"https://api.github.com/repos/SitePen/dstore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SitePen/dstore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SitePen/dstore/git/refs{/sha}","trees_url":"https://api.github.com/repos/SitePen/dstore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SitePen/dstore/statuses/{sha}","languages_url":"https://api.github.com/repos/SitePen/dstore/languages","stargazers_url":"https://api.github.com/repos/SitePen/dstore/stargazers","contributors_url":"https://api.github.com/repos/SitePen/dstore/contributors","subscribers_url":"https://api.github.com/repos/SitePen/dstore/subscribers","subscription_url":"https://api.github.com/repos/SitePen/dstore/subscription","commits_url":"https://api.github.com/repos/SitePen/dstore/commits{/sha}","git_commits_url":"https://api.github.com/repos/SitePen/dstore/git/commits{/sha}","comments_url":"https://api.github.com/repos/SitePen/dstore/comments{/number}","issue_comment_url":"https://api.github.com/repos/SitePen/dstore/issues/comments{/number}","contents_url":"https://api.github.com/repos/SitePen/dstore/contents/{+path}","compare_url":"https://api.github.com/repos/SitePen/dstore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SitePen/dstore/merges","archive_url":"https://api.github.com/repos/SitePen/dstore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SitePen/dstore/downloads","issues_url":"https://api.github.com/repos/SitePen/dstore/issues{/number}","pulls_url":"https://api.github.com/repos/SitePen/dstore/pulls{/number}","milestones_url":"https://api.github.com/repos/SitePen/dstore/milestones{/number}","notifications_url":"https://api.github.com/repos/SitePen/dstore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SitePen/dstore/labels{/name}","releases_url":"https://api.github.com/repos/SitePen/dstore/releases{/id}","created_at":"2013-07-31T20:24:42Z","updated_at":"2015-07-16T20:35:54Z","pushed_at":"2015-08-07T22:51:20Z","git_url":"git://github.com/SitePen/dstore.git","ssh_url":"git@github.com:SitePen/dstore.git","clone_url":"https://github.com/SitePen/dstore.git","svn_url":"https://github.com/SitePen/dstore","homepage":"http://dstorejs.io/","size":3250,"stargazers_count":207,"watchers_count":207,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":45,"mirror_url":null,"open_issues_count":38,"forks":45,"open_issues":38,"watchers":207,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/SitePen/dstore/pulls/145"},"html":{"href":"https://github.com/SitePen/dstore/pull/145"},"issue":{"href":"https://api.github.com/repos/SitePen/dstore/issues/145"},"comments":{"href":"https://api.github.com/repos/SitePen/dstore/issues/145/comments"},"review_comments":{"href":"https://api.github.com/repos/SitePen/dstore/pulls/145/comments"},"review_comment":{"href":"https://api.github.com/repos/SitePen/dstore/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/SitePen/dstore/pulls/145/commits"},"statuses":{"href":"https://api.github.com/repos/SitePen/dstore/statuses/4dc0b24b325a41f179bfe82fe07e815e343b508f"}}}}