{"_id":"@rexlabs/stitch","_rev":"123-dee2c349eaa4f9c7d6580b1ae56d7919","name":"@rexlabs/stitch","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@rexlabs/stitch","version":"0.1.0","license":"MIT","_id":"@rexlabs/stitch@0.1.0","maintainers":[{"name":"listingslab","email":"listingslab@gmail.com"},{"name":"dilshanrex","email":"dilshan.amadoru@rexsoftware.com.au"},{"name":"addstar34","email":"addstar34@gmail.com"},{"name":"cartant","email":"nicholas@cartant.com"},{"name":"therealsamlin","email":"sam.gh.lin@gmail.com"},{"name":"shokinke","email":"siobhan.hokin@rexsoftware.com.au"},{"name":"andrea.sartori","email":"andrea.sartori@rexsoftware.com.au"},{"name":"dara-rex","email":"dara.heng@bkvfoundry.com"},{"name":"nikchao","email":"nik.chaourov@gmail.com"},{"name":"jhmcbride","email":"jhmcbride@gmail.com"},{"name":"squibler","email":"daniel@interactivebusiness.com.au"},{"name":"summer005","email":"mying0505@gmail.com"},{"name":"ktickner","email":"ktickner.91@gmail.com"},{"name":"shawpaw","email":"jeanpierre.gassin@gmail.com"},{"name":"ababkov","email":"alex.babkov@rexsoftware.com.au"},{"name":"iamtommcc","email":"tom@tomm.cc"},{"name":"julianburr","email":"hello@julianburr.de"},{"name":"camerondarragh","email":"camdarragh@gmail.com"},{"name":"colemanator","email":"peter.coleman143@gmail.com"},{"name":"theshinytuxedo","email":"martin@martinwheeler.com.au"},{"name":"razodactyl","email":"razodactyl@gmail.com"},{"name":"aaronw","email":"aaron.williams@rexsoftware.com.au"},{"name":"lachlankrautz","email":"lachlan.krautz@gmail.com"},{"name":"startdaemons","email":"rhyses0107360@gmail.com"},{"name":"kingkhan","email":"email@saaditkhan.com"},{"name":"rcole5","email":"ryancole1684@gmail.com"},{"name":"brentonwheeler","email":"brenton.wheeler@rexsoftware.com.au"},{"name":"blankak","email":"blanka.krotilova@rexsoftware.com.au"}],"homepage":"https://github.com/rexlabsio/stitch","bin":{"stitch":"bin/stitch"},"dist":{"shasum":"66b4d19c374a6014207fa5e85f0362d6db02f12c","tarball":"https://registry.npmjs.org/@rexlabs/stitch/-/stitch-0.1.0.tgz","fileCount":26,"integrity":"sha512-uERZESXY3PLjaok/+nQnPq5+BzF6vTJlGlabaJf6BlOxZxF4/wz2/c0mcF2K5xieoXp/AGoIg7yWwJLhFhpa5g==","signatures":[{"sig":"MEUCIQDTwc0zkGCPNSeRfXXYdwGdAA6aQbF8O0xp7GXCrKXQIgIgYoIqejYAMyTSM5HuZ8mQliIeDvOjzJA6l589k2UqoYw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAzkrCRA9TVsSAnZWagAAg+AP/ivPiFr2zfWiIt9tLgml\n9HRO03WLjRxU9rxt5S4+WR6yWzY4uf4dzCWAfzOh5HPDkYbRIkmIN44WnFvy\nf6LGf+3Q6kh8ootucorcl+ULywtrvqhBRA3Rk3B397eK7flqP6sh8nDkwDgo\nTwnwU6ZPZ2a0n+oE2ZTDgdS2F9ZTRrJhHvjv2Til5vBaJrFC0YCUsObeQLEd\nq/22ARjhgcVCS1n66OQB+ua3hC8lcSbPWhicgSBCbBv62/dBrJ1hr3+KezOD\nOEiBV7aqzbOqN6K+wc1GvETw83ZBq5SRyKru8QT88iMSOMtjiomrhUobx0Ft\nss+Ihd8quHOmVQwze13cSlrEEKtZZ80UPiUt9wd1IHz1VryO5foizU4juz6u\ngzrTzOQ9egohLlrbIWtRGBcdaTWNarjl36a5TPGkTaFQrJI2ozY5VHMpi4Hc\nGZdgr+6MeRK0bUSw1clhNCXkV+3cuQrWfL57LbCoE7I7FKqCi1Sy5laeGQvs\nhB16a7XPys7VYUBLMLBhaaLl/BUE/xltkSD3+ywAEYOI8dSo2JH/jG9+yvTA\nBt7+mHQVFBt2sqAkoGd+6lLmBI57k5ROE+JOYVK+YQE56KHqiMREfYO8Loyb\n286Yw41ggxzmBxnJrXfPLzs1bXYoBn5YLa3C/LpPb/T0/YJgI5ZNYPRxJ5nK\nlJAF\r\n=3evs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"app.js","authors":[{"name":"Jean-Pierre Gassin","email":"jean-pierre.gassin@rexsoftware.com.au"},{"name":"Lachlan Krautz","email":"lachlan.krautz@rexsoftware.com.au"}],"_npmUser":{"name":"shawpaw","email":"jeanpierre.gassin@gmail.com"},"repository":{"url":"git@github.com:rexlabsio/stitch.git","type":"git"},"description":"Stitch together JSON definitions","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Rexlabs\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"lodash":"^4.17.11","fs-extra":"^7.0.0","commander":"^2.19.0","package.json":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^1.14.3","@types/node":"^10.12.10","@types/lodash":"^4.14.118","@types/fs-extra":"^5.0.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/stitch_0.1.0_1560492330611_0.41091527269471717","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@rexlabs/stitch","version":"0.2.0","license":"MIT","_id":"@rexlabs/stitch@0.2.0","maintainers":[{"name":"aaronw","email":"aaron.williams@rexsoftware.com.au"},{"name":"ababkov","email":"alex.babkov@rexsoftware.com.au"},{"name":"addstar34","email":"addstar34@gmail.com"},{"name":"andrea.sartori","email":"andrea.sartori@rexsoftware.com.au"},{"name":"blankak","email":"blanka.krotilova@rexsoftware.com.au"},{"name":"brentonwheeler","email":"brenton.wheeler@rexsoftware.com.au"},{"name":"camerondarragh","email":"camdarragh@gmail.com"},{"name":"cartant","email":"nicholas@cartant.com"},{"name":"colemanator","email":"peter.coleman143@gmail.com"},{"name":"dara-rex","email":"dara.heng@bkvfoundry.com"},{"name":"dilshanrex","email":"dilshan.amadoru@rexsoftware.com.au"},{"name":"iamtommcc","email":"tom@tomm.cc"},{"name":"jayhealey","email":"james.healey@rexsoftware.com.au"},{"name":"jhmcbride","email":"jhmcbride@gmail.com"},{"name":"julianburr","email":"hello@julianburr.de"},{"name":"kingkhan","email":"email@saaditkhan.com"},{"name":"ktickner","email":"ktickner.91@gmail.com"},{"name":"lachlankrautz","email":"lachlan.krautz@gmail.com"},{"name":"malkeir","email":"sam.chipperfield@rexsoftware.com.au"},{"name":"razodactyl","email":"razodactyl@gmail.com"},{"name":"rcole5","email":"ryancole1684@gmail.com"},{"name":"shawpaw","email":"jeanpierre.gassin@gmail.com"},{"name":"shokinke","email":"siobhan.hokin@rexsoftware.com.au"},{"name":"startdaemons","email":"rhyses0107360@gmail.com"},{"name":"summer005","email":"mying0505@gmail.com"},{"name":"therealsamlin","email":"sam.gh.lin@gmail.com"},{"name":"theshinytuxedo","email":"martin@martinwheeler.com.au"}],"homepage":"https://github.com/rexlabsio/stitch","bugs":{"url":"https://github.com/rexlabsio/stitch/issues"},"bin":{"stitch":"bin/stitch"},"dist":{"shasum":"7526d53751111f78849c2c5beb364cb93b09174b","tarball":"https://registry.npmjs.org/@rexlabs/stitch/-/stitch-0.2.0.tgz","fileCount":15,"integrity":"sha512-jPZmDil7hVWeAFAPlp8/PTDqcs0v0fOZMsSDwhkTqDYaVnDA8iR1HZGqhNk+EzEbcoZ1oLJayiedCh7orQoD1A==","signatures":[{"sig":"MEUCIGD8UGgVryHw2ho8DkGntXhtT1JzRCb29RdZDp+BjaT6AiEAk7hxxstsnZKs6CBtywlY+M9jNy4CAaGaxdsdrXkAchY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhCDNCRA9TVsSAnZWagAAn2sP+gJGqBEosQjLPHlKNwcw\njzfNnkitsgdHkqdyIl29SQ+h0vkgrbsNmShRQ0w/Hx4zLLsdGHtm1aXaqvL/\n7KOhYMP5s/9GjjkY9xyeEfNRzaV/e31LSC73Y0iVhra+6JAifkHeXvkzn2LJ\n2pgp2nNIBjgyp+BwYku4ol1MwzTUa+USYSub/izTJ8xd+DhhKDrto9eWh3lu\n2BaSgHSFy8eCseODIo4QH79JQ4QXRcL/20qml0h/ZydStLAiuCAlFTeoAeKy\nJ0vDCcMANq3YvtV7bZBeMLVHNAQBc5LPsPXLv7Yb2LL/B3ViSZa23M3B2vw1\nbrJ9CTvSs5bGnNiwedN1vL6H9y3ZSWUP6KzW9Ftlza2e1W08zmj3nFdMe8gO\nkqKZYJyfvOaJhBhuZw+LN4UlpJdpMxQ6QMtENTLN18teXTewgomwiwZu5DJ7\n5P+Qm+Ei/6XcoTCs02qyUeIKoSTV4tMLER9F8R1762x2mog+zmCPz2POkgL8\nxsmVe5rEfNmB/dLJb8NHqJRw37POz4tHiaEXTtABMlITOeTVGuxa/obwlMPV\nT5w/7DJkiFhWU0A4vuYhwt0VRFdB/8d538g4bIefGAFxPQMOpeEliGganRaM\nutHqaxPCYYW4VMyPKLX5evcJfh+Pvc2pvG/9lQPGE9RqNQc/m5F4xrb7S9qD\ny6gU\r\n=Hdn5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"app.js","authors":[{"name":"Jean-Pierre Gassin","email":"jean-pierre.gassin@rexsoftware.com.au"},{"name":"Lachlan Krautz","email":"lachlan.krautz@rexsoftware.com.au"}],"gitHead":"6be57d3e33709cc971ee076ea1e5047b300eb87a","_npmUser":{"name":"shawpaw","email":"jeanpierre.gassin@gmail.com"},"repository":{"url":"git+ssh://git@github.com/rexlabsio/stitch.git","type":"git"},"_npmVersion":"6.10.3","description":"Stitch together JSON definitions","directories":{},"_nodeVersion":"12.8.0","dependencies":{"lodash":"^4.17.11","fs-extra":"^7.0.0","commander":"^2.19.0","package.json":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^1.14.3","@types/node":"^10.12.10","@types/lodash":"^4.14.118","@types/fs-extra":"^5.0.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/stitch_0.2.0_1568940236625_0.2515548043094824","host":"s3://npm-registry-packages"}}},"time":{"created":"2019-06-14T06:05:30.609Z","modified":"2026-08-24T23:57:57.326Z","0.1.0":"2019-06-14T06:05:30.735Z","0.2.0":"2019-09-20T00:43:56.806Z"},"bugs":{"url":"https://github.com/rexlabsio/stitch/issues"},"license":"MIT","homepage":"https://github.com/rexlabsio/stitch","repository":{"url":"git+ssh://git@github.com/rexlabsio/stitch.git","type":"git"},"description":"Stitch together JSON definitions","maintainers":[{"email":"siobhan.hokin@rexsoftware.com.au","name":"shokinke"},{"email":"jhmcbride@gmail.com","name":"jhmcbride"},{"email":"alex.babkov@rexsoftware.com.au","name":"ababkov"},{"email":"peter.coleman143@gmail.com","name":"colemanator"},{"email":"endre.bernhardt@gmail.com","name":"endre.bernhardt"},{"email":"adsy.britt@gmail.com","name":"adsy"},{"email":"dinesh.selvamani@rexsoftware.com.au","name":"dineshrex"},{"email":"robinsonlaura445@gmail.com","name":"laura-kate"},{"email":"login.dev@rexsoftware.com.au","name":"rexlabs-sa"},{"email":"ralphnest.pamintuan@rexsoftware.com.au","name":"ralphpam"},{"email":"annamalai.saro@gmail.com","name":"asvny"},{"email":"mark.holmes@rexsoftware.com.au","name":"markholmesrex"},{"email":"itpekov.alexander@gmail.com","name":"itpekov"},{"email":"scott.atkinson@rexsoftware.com.au","name":"scottatkinsonrex"},{"email":"michael.esteves@rexsoftware.com.au","name":"michaelestevesrex"},{"email":"david.burns@rexsoftware.com.au","name":"david.burns.rex"},{"email":"sumali.carter@rexsoftware.com.au","name":"sumalicarter"},{"email":"paulo.basilio@rexsoftware.com.au","name":"paulobasilio-rexsoftware"},{"email":"roberto.harrison@rexsoftware.com.au","name":"robertoharrisonrex"},{"email":"tzara.ayton@rexsoftware.com.au","name":"tzaraayton"},{"email":"shaun.johnston@rexsoftware.com.au","name":"shaunj-rex"},{"email":"samuel.amador@rexsoftware.com.au","name":"samadorex2026"},{"email":"erino.sugisaki@rexsoftware.com.au","name":"erino"},{"email":"patrik.berg@rexsoftware.com.au","name":"patrikbtheiceberg"},{"email":"jpetterson@gmail.com","name":"jpetterson"},{"email":"rami@emergentlabs.ai","name":"ramigm"},{"email":"darzon.tato@rexsoftware.com.au","name":"darz-rex"},{"email":"khoa.duong@rexsoftware.com.au","name":"khoaduong.rex"},{"email":"ivanjo.sarmiento@rexsoftware.com.au","name":"ivan-rex"},{"email":"rodeljr.ganancial@rexsoftware.com.au","name":"rodelganancial"},{"email":"joey.quebral@rexsoftware.com.au","name":"maxrexsoftware"},{"email":"rachmar.mohammad@rexsoftware.com.au","name":"rmrexsoftware"},{"email":"admin@thesimplyinitiative.com.au","name":"dmastrorillo"},{"email":"edgar.poniente@rexsoftware.com.au","name":"eponiente"},{"email":"christian.tanpoco@rexsoftware.com.au","name":"christanpoco"},{"email":"lachlan.young@rexsoftware.com.au","name":"lachlanrex"},{"email":"eric.caratao@rexsoftware.com.au","name":"eric-caratao10"},{"email":"cameron.jones@rexsoftware.com.au","name":"crjonesrex"},{"email":"ernesto.alvarez@rexsoftware.com.au","name":"ernestoalvarezrex"},{"email":"dean.casili@rexsoftware.com.au","name":"dean-casili"},{"email":"remedios.yamat@rexsoftware.com.au","name":"remiyamat"},{"email":"robertus.primusanto@gmail.com","name":"rprimusanto"}],"readme":"# Stitch\n\nStitch is a tool used to pull together definitions written in JSON with the main focus on simplicity.\n\n- Stitch will base64 JavaScript files that are named appropriately (and reside in a `code` folder) and insert them \ninto your resulting definition.\n- Stitch will insert any `form` folder `definition.json` files into your result definition.\n\nAt its heart, it's a tool used to help write and maintain complex JSON files that would otherwise be incomprehensible.\n\n## Installation\n\nnpm: `npm i rexlabs/stitch`\n\nyarn: `yarn global add rexlabs/stitch`\n\n## Requirements\n\nFor environment requirements, see the `package.json`.\n\n## File structure\n\nThe folder that contains your `definition.json` is the entry point for `stitch` to work out of.\n\nYou *can* also have a `code` and `form` folder located in your entry point directory, this enables `stitch` to take \nadvantage of advanced base64 encoding (JavaScript) and JSON file combining (forms).\n\n```\ndefinition-folder\n|-- definition.json\n|-- code\n|   |-- my_step.js\n|-- form\n    |-- my_step.json\n```\n\nTo take advantage of the base64 encoding component of `stitch`, you'll need to name your JavaScript files located inside \nyour `code` folder the same as the step that they reside in, for example:\n\n> definition.json\n```json\n{\n      \"name\": \"loop\",\n      \"triggers\": \"check_loop\",\n      \"description\": \"Loop until I say to stop\",\n      \"label\": \"Loop step - do something\",\n      \"type\": \"task\",\n      \"function\": {\n        \"format\": \"base64\",\n        \"code\": \"\",\n        \"modules\": [\"lodash\"]\n      }\n}\n``` \n\n> loop.js\n```javascript\nconst _ = require(\"lodash\");\n\n/**\n * @param {Object} context\n * @returns {Object}\n */\nmodule.exports = function(context) {\n  return {\n    should_loop: _.get(context, \"state.meta.steps.loop.loop_index\", 0) < 3\n  };\n};\n```\n\n## Commands\n\n```sh\nUsage: stitch [options] [command]\n           \nOptions:\n  -h, --help                  output usage information\n                                                     \nCommands:\n  import <definition> <path>  Import an already exported definition to be expanded\n  export [options] <dir>      Export a definition to be weaved together\n```\n\n#### Import\n\nExpands an existing definition and writes to the `destination`\n\n`stitch import \"$(< file.json)\" <destination>`\n\n\n#### Export\n\nExport a definition from the supplied `dir`\n\n`stitch export <dir>`\n\n---\n\n### Examples\n\n#### Export directory and print to file\n`stitch export path/to/directory > result.json`\n\n#### Export directory and copy to clipboard (macOS)\n`stitch export path/to/directory | pbcopy`\n\n#### Import file from input\n`stitch import \"$(< file.json)\" <destination>`\n","readmeFilename":"README.md"}