{"_id":"migrate-versioned-log","_rev":"4-4dc93be6b523d71586e6eef01f9f41a5","name":"migrate-versioned-log","description":"transform semantically versioned append-only log entries","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"migrate-versioned-log","description":"transform semantically versioned append-only log entries","version":"1.0.0","author":{"name":"Kyle E. Mitchell","email":"kyle@kemitchell.com","url":"https://kemitchell.com/"},"dependencies":{"array-find":"^1.0.0","async.map":"^0.5.2","dezalgo":"^1.0.3","semver":"^5.2.0","through2":"^2.0.1"},"devDependencies":{"collect-stream":"^1.1.1","defence-cli":"^2.0.0","from2-array":"0.0.4","pump":"^1.0.1","replace-require-self":"^1.1.1","standard":"^7.1.2"},"files":["index.js"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/kemitchell/migrate-versioned-log.js.git"},"scripts":{"lint":"standard","test":"defence --info javascript README.md | replace-require-self | node"},"gitHead":"9e9b6e5a4d566190dbecc0ca7918479a7e0ded2c","bugs":{"url":"https://github.com/kemitchell/migrate-versioned-log.js/issues"},"homepage":"https://github.com/kemitchell/migrate-versioned-log.js#readme","_id":"migrate-versioned-log@1.0.0","_shasum":"c10f10b1f5efafec0cd6fbadf7658a8db65aff7c","_from":".","_npmVersion":"3.10.3","_nodeVersion":"4.4.7","_npmUser":{"name":"kemitchell","email":"kyle@kemitchell.com"},"dist":{"shasum":"c10f10b1f5efafec0cd6fbadf7658a8db65aff7c","tarball":"https://registry.npmjs.org/migrate-versioned-log/-/migrate-versioned-log-1.0.0.tgz","integrity":"sha512-xOPNoC4EaKOii7Yz3FTibalwJnrHBwC6wfejp5aX1NXgVRfmwEMFhgW7tfz/UQ74wi40DQqIunLRYJcHMehjoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB3OAdhzm1XDXUJZgdCOruKgvWhFLAf0Xhy7DU9hFTwhAiEAsuSBwjsGUw2ZJQDLFgKmbc3d9zV+wyKbH18vAunYoZI="}]},"maintainers":[{"name":"kemitchell","email":"kyle@kemitchell.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/migrate-versioned-log-1.0.0.tgz_1467960427801_0.5284019713290036"}},"1.0.1":{"name":"migrate-versioned-log","description":"transform semantically versioned append-only log entries","version":"1.0.1","author":{"name":"Kyle E. Mitchell","email":"kyle@kemitchell.com","url":"https://kemitchell.com/"},"dependencies":{"array-find":"^1.0.0","async.map":"^0.5.2","dezalgo":"^1.0.3","semver":"^5.2.0","through2":"^2.0.1"},"devDependencies":{"collect-stream":"^1.1.1","defence-cli":"^2.0.0","from2-array":"0.0.4","pump":"^1.0.1","replace-require-self":"^1.1.1","standard":"^7.1.2"},"files":["index.js"],"keywords":["SemVer","TCP","client","database","kappa","log","version"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/kemitchell/migrate-versioned-log.js.git"},"scripts":{"lint":"standard","test":"defence --info javascript README.md | replace-require-self | node"},"gitHead":"63c33bc593d23e7505b062b87e9e1f28ade26a22","bugs":{"url":"https://github.com/kemitchell/migrate-versioned-log.js/issues"},"homepage":"https://github.com/kemitchell/migrate-versioned-log.js#readme","_id":"migrate-versioned-log@1.0.1","_shasum":"a6bb2c2340195f2b5aef58d6d77374ad61659d08","_from":".","_npmVersion":"3.10.3","_nodeVersion":"4.4.7","_npmUser":{"name":"kemitchell","email":"kyle@kemitchell.com"},"dist":{"shasum":"a6bb2c2340195f2b5aef58d6d77374ad61659d08","tarball":"https://registry.npmjs.org/migrate-versioned-log/-/migrate-versioned-log-1.0.1.tgz","integrity":"sha512-EshiTivxBTQ1m10XrMUsV6bIfMAFtj25j5ivzYAgR4+Zi341TIvZvYHfWfqmTLQyrYiZIec7VXn2no+YfnglfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBMxgBEMzwplAdeS/0jnjXq2+mpkUY7HUYpLQSgCK4KdAiEAgrKYYJJmRqVlpzC0oo0q6W49Da3sTN8OlTs0fayDDpI="}]},"maintainers":[{"name":"kemitchell","email":"kyle@kemitchell.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/migrate-versioned-log-1.0.1.tgz_1468269859520_0.8295633080415428"}}},"readme":"This package helps you build [transform streams] that migrate, or\nupgrade, [semantically versioned][semver] append-only log entries.\n\n[transform streams]: https://nodejs.org/api/stream.html#stream_duplex_and_transform_streams\n\n[semver]: https://www.npmjs.com/package/semver\n\nTo create a transform, pass an `Array` of `Object` in the shape:\n\n```js\n[\n  {\n    fromRange: SemVerRange,\n    toVersion: SemVer,\n    transform: function (entry, callback) {\n      callback(null, [/* transformed entries */])\n    }\n  }\n]\n```\n\n`toVersion` must be greater than all ranges that satisfy `fromRange`.\n\nThe transforms expect and emit chunks in the shape:\n\n```js\n{index: Number, version: SemVer, entry: Object}\n```\n\n## Example\n\nThis example is run as a test for the package.  It uses a few packages\nfrom the [mississippi] streams collection.\n\n[mississippi]: https://www.npmjs.com/package/mississippi\n\n```javascript\nvar assert = require('assert')\nvar collect = require('collect-stream')\nvar from2Array = require('from2-array')\nvar migrate = require('migrate-versioned-log')\nvar pump = require('pump')\n\nvar log = [\n  // A 1.0.0 set operation.\n  {index: 1, version: '1.0.0', entry: {key: 'a', value: 1}},\n  // From version 2.0.0, set operations are logged with two entries:\n  // One to initialize. One to set.\n  {index: 2, version: '2.0.0', entry: {type: 'init', key: 'b'}},\n  {index: 3, version: '2.0.0', entry: {type: 'set', key: 'b', value: 2}}\n]\n\nvar migrated = [\n  // The old 1.0.0 entry is migrated to two 2.0.0 entries.\n  {index: 1, version: '2.0.0', entry: {type: 'init', key: 'a'}},\n  {index: 1, version: '2.0.0', entry: {type: 'set', key: 'a', value: 1}},\n  // The 2.0.0 entries remain the same.\n  {index: 2, version: '2.0.0', entry: {type: 'init', key: 'b'}},\n  {index: 3, version: '2.0.0', entry: {type: 'set', key: 'b', value: 2}}\n]\n\ncollect(\n  pump(\n    from2Array.obj(log),\n    migrate([{\n      fromRange: '1.x',\n      toVersion: '2.0.0',\n      transform: function (entry, callback) {\n        callback(null, [\n          {type: 'init', key: entry.key},\n          {type: 'set', key: entry.key, value: entry.value}\n        ])\n      }\n    }])\n  ),\n  function (error, data) {\n    assert.ifError(error)\n    assert.deepEqual(data, migrated)\n  }\n)\n```\n","maintainers":[{"name":"kemitchell","email":"kyle@kemitchell.com"}],"time":{"modified":"2022-06-19T19:28:25.745Z","created":"2016-07-08T06:47:10.159Z","1.0.0":"2016-07-08T06:47:10.159Z","1.0.1":"2016-07-11T20:44:22.423Z"},"homepage":"https://github.com/kemitchell/migrate-versioned-log.js#readme","repository":{"type":"git","url":"git+https://github.com/kemitchell/migrate-versioned-log.js.git"},"author":{"name":"Kyle E. Mitchell","email":"kyle@kemitchell.com","url":"https://kemitchell.com/"},"bugs":{"url":"https://github.com/kemitchell/migrate-versioned-log.js/issues"},"license":"MIT","readmeFilename":"README.md","keywords":["SemVer","TCP","client","database","kappa","log","version"]}