{"_id":"simple-diff","_rev":"3145068","name":"simple-diff","description":"simple diff for object and arrays with options","dist-tags":{"latest":"1.7.2"},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"time":{"modified":"2023-11-27T07:13:51.000Z","created":"2016-07-25T05:10:54.548Z","1.7.2":"2023-10-27T08:35:10.125Z","1.7.1":"2023-03-26T20:18:34.795Z","1.7.0":"2023-03-24T10:21:20.279Z","1.6.0":"2017-02-17T14:28:36.005Z","1.5.0":"2017-02-17T06:45:53.301Z","1.4.0":"2016-09-17T05:33:53.930Z","1.3.0":"2016-08-09T11:32:06.668Z","1.2.0":"2016-08-04T07:45:24.486Z","1.1.0":"2016-07-29T03:55:51.273Z","1.0.1":"2016-07-25T05:10:54.548Z"},"users":{},"author":{"name":"Sergii Kliuchnyk"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"versions":{"1.7.2":{"name":"simple-diff","version":"1.7.2","description":"simple diff for object and arrays with options","main":"simple-diff.js","types":"simple-diff.d.ts","scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"keywords":["diff"],"author":{"name":"Sergii Kliuchnyk"},"license":"MIT","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"homepage":"https://github.com/redexp/simple-diff#readme","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-uglify":"^1.5.4","mocha":"^2.5.3","sinon":"^1.17.7","sinon-chai":"^2.8.0"},"_id":"simple-diff@1.7.2","gitHead":"2564260750f4d35ba7dd88861f1ea9b20acfd285","_nodeVersion":"20.7.0","_npmVersion":"10.1.0","dist":{"shasum":"2bd1877a42b50e9d7d2280cef6d142590cb694ef","size":7758,"noattachment":false,"key":"/simple-diff/-/simple-diff-1.7.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/simple-diff/download/simple-diff-1.7.2.tgz"},"_npmUser":{"name":"redexp","email":"sergiikliuchnyk@gmail.com"},"directories":{},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/simple-diff_1.7.2_1698395709896_0.08838946940299519"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-10-27T08:35:10.125Z","publish_time":1698395710125,"_source_registry_name":"default","_cnpm_publish_time":1698395710125},"1.7.1":{"name":"simple-diff","version":"1.7.1","description":"simple diff for object and arrays with options","main":"simple-diff.js","types":"simple-diff.d.ts","scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"keywords":["diff"],"author":{"name":"Sergii Kliuchnyk"},"license":"MIT","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"homepage":"https://github.com/redexp/simple-diff#readme","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-uglify":"^1.5.4","mocha":"^2.5.3","sinon":"^1.17.7","sinon-chai":"^2.8.0"},"gitHead":"c248d39cf05d14bcf2e189586e462de75b84abc8","_id":"simple-diff@1.7.1","_nodeVersion":"14.21.3","_npmVersion":"6.14.18","dist":{"shasum":"88a628222eb66799cf0844ca4314b8a4030514de","size":7899,"noattachment":false,"key":"/simple-diff/-/simple-diff-1.7.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/simple-diff/download/simple-diff-1.7.1.tgz"},"_npmUser":{"name":"redexp","email":"sergiikliuchnyk@gmail.com"},"directories":{},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/simple-diff_1.7.1_1679861914602_0.09086390977446546"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-03-26T20:18:34.795Z","publish_time":1679861914795,"_cnpm_publish_time":1679861914795},"1.7.0":{"name":"simple-diff","version":"1.7.0","description":"simple diff for object and arrays with options","main":"simple-diff.js","types":"simple-diff.d.ts","scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"keywords":["diff"],"author":{"name":"Sergii Kliuchnyk"},"license":"MIT","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"homepage":"https://github.com/redexp/simple-diff#readme","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-uglify":"^1.5.4","mocha":"^2.5.3","sinon":"^1.17.7","sinon-chai":"^2.8.0"},"gitHead":"51bfed7f8d17e22b6e8eeadfe005df79f0f568db","_id":"simple-diff@1.7.0","_nodeVersion":"14.21.3","_npmVersion":"6.14.18","dist":{"shasum":"e35178c06cd2d67ac2b37be58bcc407c5ac410ed","size":7880,"noattachment":false,"key":"/simple-diff/-/simple-diff-1.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/simple-diff/download/simple-diff-1.7.0.tgz"},"_npmUser":{"name":"redexp","email":"sergiikliuchnyk@gmail.com"},"directories":{},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/simple-diff_1.7.0_1679653280105_0.5836765485268316"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-03-24T10:21:20.279Z","publish_time":1679653280279,"_cnpm_publish_time":1679653280279},"1.6.0":{"name":"simple-diff","version":"1.6.0","description":"simple diff for object and arrays with options","main":"simple-diff.js","scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"keywords":["diff"],"author":{"name":"Sergii Kliuchnyk"},"license":"MIT","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"homepage":"https://github.com/redexp/simple-diff#readme","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-uglify":"^1.5.4","mocha":"^2.5.3","sinon":"^1.17.7","sinon-chai":"^2.8.0"},"gitHead":"3abd2c557c8ed6e1696bec55ff294c025bdcad10","_id":"simple-diff@1.6.0","_shasum":"9bb5d950a7b464d1ecc86f204e88365019d5a542","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.1","_npmUser":{"name":"redexp","email":"redexp@ukr.net"},"dist":{"shasum":"9bb5d950a7b464d1ecc86f204e88365019d5a542","size":7745,"noattachment":false,"key":"/simple-diff/-/simple-diff-1.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/simple-diff/download/simple-diff-1.6.0.tgz"},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/simple-diff-1.6.0.tgz_1487341715402_0.8542681867256761"},"directories":{},"publish_time":1487341716005,"_hasShrinkwrap":false,"_cnpm_publish_time":1487341716005,"_cnpmcore_publish_time":"2021-12-17T00:05:13.630Z"},"1.5.0":{"name":"simple-diff","version":"1.5.0","description":"simple diff for object and arrays with options","main":"simple-diff.js","scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"keywords":["diff"],"author":{"name":"Sergii Kliuchnyk"},"license":"MIT","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"homepage":"https://github.com/redexp/simple-diff#readme","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-uglify":"^1.5.4","mocha":"^2.5.3","sinon":"^1.17.7","sinon-chai":"^2.8.0"},"gitHead":"e31626adc5d51fb4eb33f4d8cbd47ea05e9d44a7","_id":"simple-diff@1.5.0","_shasum":"1d9d7582ac49ca31085e0759ee739039d47f4380","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.1","_npmUser":{"name":"redexp","email":"redexp@ukr.net"},"dist":{"shasum":"1d9d7582ac49ca31085e0759ee739039d47f4380","size":7339,"noattachment":false,"key":"/simple-diff/-/simple-diff-1.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/simple-diff/download/simple-diff-1.5.0.tgz"},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/simple-diff-1.5.0.tgz_1487313952686_0.27893670182675123"},"directories":{},"publish_time":1487313953301,"_hasShrinkwrap":false,"_cnpm_publish_time":1487313953301,"_cnpmcore_publish_time":"2021-12-17T00:05:14.014Z"},"1.4.0":{"name":"simple-diff","version":"1.4.0","description":"simple diff for object and arrays with options","main":"simple-diff.js","scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"keywords":["diff"],"author":{"name":"Sergii Kliuchnyk"},"license":"MIT","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"homepage":"https://github.com/redexp/simple-diff#readme","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-uglify":"^1.5.4","mocha":"^2.5.3"},"gitHead":"e32299f2511ba9b971f90202c2568fc4bfeef442","_id":"simple-diff@1.4.0","_shasum":"6a763f86bbec38e04244d851d92fedbc6adef28d","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.1","_npmUser":{"name":"redexp","email":"redexp@ukr.net"},"dist":{"shasum":"6a763f86bbec38e04244d851d92fedbc6adef28d","size":6413,"noattachment":false,"key":"/simple-diff/-/simple-diff-1.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/simple-diff/download/simple-diff-1.4.0.tgz"},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/simple-diff-1.4.0.tgz_1474090432339_0.024886494502425194"},"directories":{},"publish_time":1474090433930,"_hasShrinkwrap":false,"_cnpm_publish_time":1474090433930,"_cnpmcore_publish_time":"2021-12-17T00:05:15.038Z"},"1.3.0":{"name":"simple-diff","version":"1.3.0","description":"simple diff for object and arrays with options","main":"simple-diff.js","scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"keywords":["diff"],"author":{"name":"Sergii Kliuchnyk"},"license":"MIT","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"homepage":"https://github.com/redexp/simple-diff#readme","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-uglify":"^1.5.4","mocha":"^2.5.3"},"gitHead":"a4ac46984d7bf7ae0a9457245440dc2018fb1083","_id":"simple-diff@1.3.0","_shasum":"be439fd1e1ba71dffa6d7a3f0def8531858cb63f","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.1","_npmUser":{"name":"redexp","email":"redexp@ukr.net"},"dist":{"shasum":"be439fd1e1ba71dffa6d7a3f0def8531858cb63f","size":6371,"noattachment":false,"key":"/simple-diff/-/simple-diff-1.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/simple-diff/download/simple-diff-1.3.0.tgz"},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/simple-diff-1.3.0.tgz_1470742325186_0.7436863724142313"},"directories":{},"publish_time":1470742326668,"_hasShrinkwrap":false,"_cnpm_publish_time":1470742326668,"_cnpmcore_publish_time":"2021-12-17T00:05:15.221Z"},"1.2.0":{"name":"simple-diff","version":"1.2.0","description":"simple diff for object and arrays with options","main":"simple-diff.js","scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"keywords":["diff"],"author":{"name":"Sergii Kliuchnyk"},"license":"MIT","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"homepage":"https://github.com/redexp/simple-diff#readme","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-uglify":"^1.5.4","mocha":"^2.5.3"},"gitHead":"78ab13e10569e2187391373dec7f54a44490647d","_id":"simple-diff@1.2.0","_shasum":"95ae6bfe1b3ea23f300e006a1800734ad5669111","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.1","_npmUser":{"name":"redexp","email":"redexp@ukr.net"},"dist":{"shasum":"95ae6bfe1b3ea23f300e006a1800734ad5669111","size":5911,"noattachment":false,"key":"/simple-diff/-/simple-diff-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/simple-diff/download/simple-diff-1.2.0.tgz"},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/simple-diff-1.2.0.tgz_1470296723009_0.6881290499586612"},"directories":{},"publish_time":1470296724486,"_hasShrinkwrap":false,"_cnpm_publish_time":1470296724486,"_cnpmcore_publish_time":"2021-12-17T00:05:15.401Z"},"1.1.0":{"name":"simple-diff","version":"1.1.0","description":"simple diff for object and arrays with options","main":"simple-diff.js","scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"keywords":["diff"],"author":{"name":"Sergii Kliuchnyk"},"license":"MIT","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"homepage":"https://github.com/redexp/simple-diff#readme","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-uglify":"^1.5.4","mocha":"^2.5.3"},"gitHead":"fca451bbffc11c79708f5f60322da68257667292","_id":"simple-diff@1.1.0","_shasum":"9ff418b95ea91715b216c13fe95c7d2f8cba18b7","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.1","_npmUser":{"name":"redexp","email":"redexp@ukr.net"},"dist":{"shasum":"9ff418b95ea91715b216c13fe95c7d2f8cba18b7","size":5789,"noattachment":false,"key":"/simple-diff/-/simple-diff-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/simple-diff/download/simple-diff-1.1.0.tgz"},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/simple-diff-1.1.0.tgz_1469764549645_0.06576611194759607"},"directories":{},"publish_time":1469764551273,"_hasShrinkwrap":false,"_cnpm_publish_time":1469764551273,"_cnpmcore_publish_time":"2021-12-17T00:05:15.627Z"},"1.0.1":{"name":"simple-diff","version":"1.0.1","description":"simple diff for object and arrays with options","main":"simple-diff.js","scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git+https://github.com/redexp/simple-diff.git"},"keywords":["diff"],"author":{"name":"Sergii Kliuchnyk"},"license":"MIT","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"homepage":"https://github.com/redexp/simple-diff#readme","devDependencies":{"chai":"^3.5.0","gulp":"^3.9.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-uglify":"^1.5.4","mocha":"^2.5.3"},"gitHead":"535ad6e9c0d03a9de2d31b937537a76dc62e1eb7","_id":"simple-diff@1.0.1","_shasum":"abd4bf4925891ee2c0f816f81f94f05003d5dd08","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.1","_npmUser":{"name":"redexp","email":"redexp@ukr.net"},"dist":{"shasum":"abd4bf4925891ee2c0f816f81f94f05003d5dd08","size":5577,"noattachment":false,"key":"/simple-diff/-/simple-diff-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/simple-diff/download/simple-diff-1.0.1.tgz"},"maintainers":[{"name":"redexp","email":"redexp@ukr.net"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/simple-diff-1.0.1.tgz_1469423452476_0.5826493045315146"},"directories":{},"publish_time":1469423454548,"_hasShrinkwrap":false,"_cnpm_publish_time":1469423454548,"_cnpmcore_publish_time":"2021-12-17T00:05:15.832Z"}},"readme":"simple-diff\n===========\n\nLib for simple diff with detection of moved items in array\n\n[![Build Status](https://travis-ci.org/redexp/simple-diff.svg?branch=master)](https://travis-ci.org/redexp/simple-diff)\n\n```javascript\nvar oldObject = {\n    prop1: 'value1',\n    prop2: [\n        {\n            id: 1,\n            name: 'name1'\n        },\n        {\n            id: 2,\n            name: 'name2'\n        },\n        {\n            id: 3,\n            name: 'name3'\n        },\n        {\n            id: 4,\n            name: 'name4'\n        }\n    ]\n};\n\nvar newObject = {\n    prop1: 'value01',\n    prop2: [\n        {\n            id: 2\n        },\n        {\n            id: 1,\n            name: 'name01'\n        },\n        {\n            id: 4,\n            name: 'name4'\n        },\n        {\n            id: 5,\n            name: 'name5'\n        }\n    ],\n    prop3: 'value3'\n};\n\nvar changes = diff(oldObject, newObject, {\n    idProp: 'id'\n});\n\nconsole.log(changes);\n```\nOutput\n```javascript\n[\n    {\n        oldPath: ['prop1'],\n        newPath: ['prop1'],\n        type: 'change',\n        oldValue: 'value1',\n        newValue: 'value01'\n    },\n    {\n        oldPath: ['prop2'],\n        newPath: ['prop2'],\n        type: 'remove-item',\n        oldIndex: 2,\n        curIndex: 2,\n        newIndex: -1,\n        oldValue: {\n            id: 3,\n            name: 'name3'\n        }\n    },\n    {\n        oldPath: ['prop2'],\n        newPath: ['prop2'],\n        type: 'add-item',\n        oldIndex: -1,\n        curIndex: -1,\n        newIndex: 3,\n        newValue: {\n            id: 5, \n            name: 'name5'\n        }\n    },\n    {\n        oldPath: ['prop2'],\n        newPath: ['prop2'],\n        type: 'move-item',\n        oldIndex: 1,\n        curIndex: 1,\n        newIndex: 0\n    },\n    {\n        oldPath: ['prop2', 1, 'name'],\n        newPath: ['prop2', 0, 'name'],\n        type: 'remove',\n        oldValue: 'name2',\n        newValue: undefined\n    },\n    {\n        oldPath: ['prop2', 0, 'name'],\n        newPath: ['prop2', 1, 'name'],\n        type: 'change',\n        oldValue: 'name1',\n        newValue: 'name01'\n    },\n    {\n        oldPath: ['prop3'],\n        newPath: ['prop3'],\n        type: 'add',\n        oldValue: undefined,\n        newValue: 'value3'\n    }\n]\n```\n \n# Installation\n\n`npm i simple-diff`\n\n`bower i simple-diff`\n\nLib will look for CommonJS or AMD or will be added global function called `simpleDiff()`.\n\n# Options\n\n## `idProp: 'id' || '*'`\n\nProperty name with unique value in it array. Default value is `id`. If your arrays do not have unique properties then you should set this option as `*` and lib will compare items one by one without trying to find moved items. \n \n## `idProps: {'path': 'propName' || '*'}` \n\nHash where key is path to array and value is id property. Path examples: `users.list`, `user.list.1.friends`, `users.list.*.friends`\n\n## `comparators: [[Class, function (oldValue, newValue, options)], ...]`\n\nArray of comparators to handle comparison of objects which do not have own properties. For example instead of `user.name` you have `user.getName()` or you need to compare `Date` objects or you just know quick way to compare large objects like by `id` property and you do not need full list of changes of those objects. First value of comparator should be some class and second is function which should return `true` if objects are equal and `false` if they not. In `options` will be `oldPath` and `newPath`.\n```javascript\nvar now = new Date();\nvar prevHour = new Date();\nprevHour.setHours(-1);\n\nvar changes = diff(\n\t{\n\t\tcreatedAt: now\n\t},\n\t{\n\t\tcreatedAt: prevHour\n\t},\n\t{\n\t\tcomparators: [\n\t\t\t[Date, function(oldValue, newValue, options) {\n\t\t\t    options.oldPath; // ['createdAt']\n\t\t\t    options.newPath; // ['createdAt']\n\t\t\t    \n\t\t\t    return oldValue.toString() === newValue.toString();\n\t\t\t}]\n\t\t]\n\t}\n);\n```\n\n## `ignore: function (oldValue, newValue, options)`\n\nFunction which will be called before each object comparison and if returning value will be `true` then objects will be ignored. In `options` will be `oldPath` and `newPath`. Useful to prevent from traversing through circular references and when you don't want to compare some kind of objects at all.\n\n## `callback: function (event)` \n\nFunction which will be called for each event. If callback is passed then lib will not create array of all changes.\n\n## `addEvent: 'add'`\n\nName of event when new property added to object. Default value is `add`\n\n## `changeEvent: 'change'` \n\nName of event when property value changed. Default value is `change`\n\n## `removeEvent: 'remove'` \n\nName of event when property removed from object. Default value is `remove`\n\n## `addItemEvent: 'add-item'` \n\nName of event when new item added to array. Default value is `add-item`\n\n## `removeItemEvent: 'remove-item'` \n\nName of event when item removed from array. Default value is `remove-item`\n\n## `moveItemEvent: 'move-item'` \n\nName of event when item changed it index in array. Default value is `move-item`\n\n","_attachments":{},"homepage":"https://github.com/redexp/simple-diff#readme","bugs":{"url":"https://github.com/redexp/simple-diff/issues"},"license":"MIT"}