{"_id":"@ach/ach","_rev":"10-f695f5f849f9c427d7ba475f8114a273","name":"@ach/ach","description":"NACHA ACH EFT File Parser/Editor/Formatter for CCD+ / PPD+ / CTX+","dist-tags":{"latest":"1.1.0","alpha":"2.0.0-alpha","alpha2":"2.0.0-alpha2","alpha3":"2.0.0-alpha3"},"versions":{"1.0.0":{"name":"@ach/ach","version":"1.0.0","description":"NACHA ACH EFT File Parser/Editor/Formatter for CCD+ / PPD+ / CTX+","keywords":["eft","ach","nacha","ccd","ccd+","ppd","ppd+","parse","parser","format","formatter","reader","writer","json"],"main":"lib","bin":{"ach":"bin/ach.js"},"author":{"name":"Eli Doran","email":"eli+npm@elidoran.com"},"license":"MIT","scripts":{"compile":"coffee --bare --compile lib bin","clean":"rm -rf ./lib/*.js ./bin/command.js","prepublish":"npm run compile","postpublish":"npm run clean","test":"mocha --compilers coffee:coffee-script/register --reporter spec --bail --check-leaks test/bin test/lib/**"},"repository":{"type":"git","url":"git://github.com/elidoran/node-ach.git"},"bugs":{"url":"http://github.com/elidoran/node-ach/issues"},"devDependencies":{"coffee-script":"^1.10.0","mocha":"^2.4.5"},"dependencies":{"each-part":"^0.8.1","strung":"^1.0.4"},"homepage":"https://github.com/elidoran/node-ach#readme","_id":"@ach/ach@1.0.0","_shasum":"dd01c57d2ff7e668cbfa7d2cec87a3a683e43648","_from":".","_npmVersion":"3.8.8","_nodeVersion":"6.0.0","_npmUser":{"name":"ach","email":"eli+ach@elidoran.com"},"dist":{"shasum":"dd01c57d2ff7e668cbfa7d2cec87a3a683e43648","tarball":"https://registry.npmjs.org/@ach/ach/-/ach-1.0.0.tgz","integrity":"sha512-L3b12Y5AFpOBVJw1ApAftmEKi+naWJ1647fb6ITmB6fsUNSDcwzF9izTxCS2k8JGoUOdEtcjtyHhEXkjOtsneA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdbIMExPWCpQ0300nRRTtZRBzbR8Yjr/LRZKPlWq/mKQIgQxP9JcQc4gJ+vRZ4kNtxTgFy2jA1eDs/rnsIWlotIV0="}]},"maintainers":[{"name":"ach","email":"eli+ach@elidoran.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/ach-1.0.0.tgz_1462096020845_0.3980489824898541"}},"1.0.2":{"name":"@ach/ach","version":"1.0.2","description":"NACHA ACH EFT File Parser/Editor/Formatter for CCD+ / PPD+ / CTX+","keywords":["eft","ach","nacha","ccd","ccd+","ppd","ppd+","parse","parser","format","formatter","reader","writer","json"],"main":"lib","bin":{"ach":"bin/ach.js"},"author":{"name":"Eli Doran","email":"eli+npm@elidoran.com"},"license":"MIT","scripts":{"compile":"coffee --bare --compile lib bin","clean":"rm -f ./bin/command.js ; find ./lib -name \"*.js\" -type f -delete","prepublish":"npm run compile","postpublish":"npm run clean","test":"mocha --compilers coffee:coffee-script/register --reporter spec --bail --check-leaks test/bin test/lib/**"},"repository":{"type":"git","url":"git://github.com/elidoran/node-ach.git"},"bugs":{"url":"http://github.com/elidoran/node-ach/issues"},"devDependencies":{"coffee-script":"^1.10.0","mocha":"^2.4.5"},"dependencies":{"each-part":"^0.8.1","strung":"^1.0.4"},"homepage":"https://github.com/elidoran/node-ach#readme","_id":"@ach/ach@1.0.2","_shasum":"6e52d4db9c7e9ca70f8fc923ea46f0c3e9bad35a","_from":".","_npmVersion":"3.8.8","_nodeVersion":"6.0.0","_npmUser":{"name":"elidoran","email":"eli+npm@elidoran.com"},"dist":{"shasum":"6e52d4db9c7e9ca70f8fc923ea46f0c3e9bad35a","tarball":"https://registry.npmjs.org/@ach/ach/-/ach-1.0.2.tgz","integrity":"sha512-SGgMFg6mNgM+ss5XrfEu7OFSorTQmI04DlnlIUH4qMIb4o/3aq08Y4tJMCPBvAuXLXn87Gp3UOmynmp3gdUO6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHHLD2BgPJUK3XbRdVveakOwZWRTUW6P1cOfAwjzXgB8AiBXc45V3kcpKINV96B0Hol1rP4s65CEvVw1TIYWLDMyGg=="}]},"maintainers":[{"name":"ach","email":"eli+ach@elidoran.com"},{"name":"elidoran","email":"eli+npm@elidoran.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ach-1.0.2.tgz_1462171151520_0.9006426425185055"}},"1.0.3":{"name":"@ach/ach","version":"1.0.3","description":"NACHA ACH EFT File Parser/Editor/Formatter for CCD+ / PPD+ / CTX+","keywords":["eft","ach","nacha","ccd","ccd+","ppd","ppd+","parse","parser","format","formatter","reader","writer","json"],"main":"lib","bin":{"ach":"bin/ach.js"},"author":{"name":"Eli Doran","email":"eli+npm@elidoran.com"},"license":"MIT","scripts":{"compile":"coffee --bare --compile lib bin","clean":"rm -f ./bin/command.js ; find ./lib -name \"*.js\" -type f -delete","prepublish":"npm run compile","postpublish":"npm run clean","test":"mocha --compilers coffee:coffee-script/register --reporter spec --bail --check-leaks test/bin test/lib/**"},"repository":{"type":"git","url":"git://github.com/elidoran/node-ach.git"},"bugs":{"url":"http://github.com/elidoran/node-ach/issues"},"devDependencies":{"coffee-script":"^1.10.0","mocha":"^2.4.5"},"dependencies":{"each-part":"^0.8.1","strung":"^1.0.4"},"homepage":"https://github.com/elidoran/node-ach#readme","_id":"@ach/ach@1.0.3","_shasum":"de61547a519fe468bdbd4fca714c2d87078b549a","_from":".","_npmVersion":"3.8.8","_nodeVersion":"6.0.0","_npmUser":{"name":"elidoran","email":"eli+npm@elidoran.com"},"dist":{"shasum":"de61547a519fe468bdbd4fca714c2d87078b549a","tarball":"https://registry.npmjs.org/@ach/ach/-/ach-1.0.3.tgz","integrity":"sha512-R3qiZFeXlo581NGK5Z6lRBteG8Vq+7pobg3AeHEiAxT8F7eZi06ayt03Zz+7wf+tjauvgaOSB2CoBzDHWIFtow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBY497pFLi7K++3A00pWAJW2wyAl3F+giH2BPGqz3SuFAiEA4tQef32BRaWWZP3HilJlRo5nEABgFqMxgRHFsTRy+4M="}]},"maintainers":[{"name":"ach","email":"eli+ach@elidoran.com"},{"name":"elidoran","email":"eli+npm@elidoran.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ach-1.0.3.tgz_1462377883555_0.7721777546685189"}},"2.0.0-alpha":{"name":"@ach/ach","version":"2.0.0-alpha","description":"NACHA ACH EFT File Parser/Editor/Formatter for CCD+ / PPD+ / CTX+","keywords":["eft","ach","nacha","ccd","ccd+","ppd","ppd+","parse","parser","format","formatter","reader","writer","json"],"main":"lib","bin":{"ach":"bin/ach.js"},"author":{"name":"Eli Doran","email":"eli+npm@elidoran.com"},"license":"MIT","scripts":{"compile":"coffee --bare --compile lib bin","clean":"rm -f ./bin/command.js ; find ./lib -name \"*.js\" -type f -delete","prepublish":"npm run compile","postpublish":"npm run clean","test":"mocha --compilers coffee:coffee-script/register --reporter spec --bail --check-leaks test/bin test/lib/**"},"repository":{"type":"git","url":"git://github.com/elidoran/node-ach.git"},"bugs":{"url":"http://github.com/elidoran/node-ach/issues"},"devDependencies":{"coffee-script":"^1.10.0","mocha":"^2.4.5"},"dependencies":{"each-part":"^0.8.1","strung":"^1.0.4"},"homepage":"https://github.com/elidoran/node-ach#readme","_id":"@ach/ach@2.0.0-alpha","_shasum":"fc91b08e023e77f7f662dbb5d7fda57c26574f4a","_from":".","_npmVersion":"3.8.8","_nodeVersion":"6.0.0","_npmUser":{"name":"elidoran","email":"eli+npm@elidoran.com"},"dist":{"shasum":"fc91b08e023e77f7f662dbb5d7fda57c26574f4a","tarball":"https://registry.npmjs.org/@ach/ach/-/ach-2.0.0-alpha.tgz","integrity":"sha512-bpWFjAaWO0k0LlotQvojQVNUh19iCES2PTrlwmbw3RBuOeIEXKz/TDc49DXBvLGXOTKmssM1ijnN8xkI8jABxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnK70oHYNgP7EUvBwmYjF5HJBqzQlT5QSrT7DwfUZoFQIgM/sFT9FnBRN1AVxH6gvE1FNZr9mC6zs+ohHOzX1PvRk="}]},"maintainers":[{"name":"ach","email":"eli+ach@elidoran.com"},{"name":"elidoran","email":"eli+npm@elidoran.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/ach-2.0.0-alpha.tgz_1463595994722_0.043390699895098805"}},"2.0.0-alpha2":{"name":"@ach/ach","version":"2.0.0-alpha2","description":"NACHA ACH EFT File Parser/Editor/Formatter for CCD+ / PPD+ / CTX+","keywords":["eft","ach","nacha","ccd","ccd+","ppd","ppd+","parse","parser","format","formatter","reader","writer","json"],"main":"lib","bin":{"ach":"bin/ach.js"},"author":{"name":"Eli Doran","email":"eli+npm@elidoran.com"},"license":"MIT","scripts":{"compile":"coffee --bare --compile lib bin","clean":"rm -f ./bin/command.js ; find ./lib -name \"*.js\" -type f -delete","prepublish":"npm run compile","postpublish":"npm run clean","test":"mocha --compilers coffee:coffee-script/register --reporter spec --bail --check-leaks test/bin test/lib/**"},"repository":{"type":"git","url":"git://github.com/elidoran/node-ach.git"},"bugs":{"url":"http://github.com/elidoran/node-ach/issues"},"devDependencies":{"coffee-script":"^1.10.0","mocha":"^2.4.5"},"dependencies":{"each-part":"^0.8.1","requireg":"^0.1.5","strung":"^1.0.4"},"homepage":"https://github.com/elidoran/node-ach#readme","_id":"@ach/ach@2.0.0-alpha2","_shasum":"8fd11492b98b8a6b7ae2db898a6c472ec53c51b1","_from":".","_npmVersion":"3.8.8","_nodeVersion":"6.0.0","_npmUser":{"name":"elidoran","email":"eli+npm@elidoran.com"},"dist":{"shasum":"8fd11492b98b8a6b7ae2db898a6c472ec53c51b1","tarball":"https://registry.npmjs.org/@ach/ach/-/ach-2.0.0-alpha2.tgz","integrity":"sha512-cy06HfKyuygREI7vKjgrH9j8v/xKM/gaER2KLQIyuKD50ImEGNIXeuKrD6J96b9YmMDfLqIjcpgLiO5fIZ/keA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDk+XXKpsxvx0EEB6fT83GC9gvyEYeUznNj5SnxIO0gaQIgVfNl434ZuWYnK9LLleRyM2LqeE8CqvXHWLn9upk1QKA="}]},"maintainers":[{"name":"ach","email":"eli+ach@elidoran.com"},{"name":"elidoran","email":"eli+npm@elidoran.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ach-2.0.0-alpha2.tgz_1463598087661_0.36521026585251093"}},"2.0.0-alpha3":{"name":"@ach/ach","version":"2.0.0-alpha3","description":"NACHA ACH EFT File Parser/Editor/Formatter for CCD+ / PPD+ / CTX+","keywords":["eft","ach","nacha","ccd","ccd+","ppd","ppd+","parse","parser","format","formatter","reader","writer","json"],"main":"lib","bin":{"ach":"bin/ach.js"},"author":{"name":"Eli Doran","email":"eli+npm@elidoran.com"},"license":"MIT","scripts":{"compile":"coffee --bare --compile lib bin","clean":"rm -f ./bin/command.js ; find ./lib -name \"*.js\" -type f -delete","prepublish":"npm run compile","postpublish":"npm run clean","test":"mocha --compilers coffee:coffee-script/register --reporter spec --bail --check-leaks test/bin test/lib/**"},"repository":{"type":"git","url":"git://github.com/elidoran/node-ach.git"},"bugs":{"url":"http://github.com/elidoran/node-ach/issues"},"devDependencies":{"coffee-script":"^1.10.0","mocha":"^2.4.5"},"dependencies":{"each-part":"^0.8.1","requireg":"^0.1.5","strung":"^1.0.4"},"homepage":"https://github.com/elidoran/node-ach#readme","_id":"@ach/ach@2.0.0-alpha3","_shasum":"457ba5f77d9cb01461e0291a1982f232414e109e","_from":".","_npmVersion":"3.8.8","_nodeVersion":"6.0.0","_npmUser":{"name":"elidoran","email":"eli+npm@elidoran.com"},"dist":{"shasum":"457ba5f77d9cb01461e0291a1982f232414e109e","tarball":"https://registry.npmjs.org/@ach/ach/-/ach-2.0.0-alpha3.tgz","integrity":"sha512-pFgpSWNfvHbJThBGxmokLGRQLBZ7TGvQ409dgRB78Nlji/qo08Tagu+gJ0SQSdJkIWKjS/J2XDPZ2dqGbW+q/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6GETV20vFAmp6+7A31SuToCQt9XtR8OHSciXDUI0D/QIgZJZgc5JPKvMfektPvSSrlBkCcLixkej6x2eQvfftQgg="}]},"maintainers":[{"name":"ach","email":"eli+ach@elidoran.com"},{"name":"elidoran","email":"eli+npm@elidoran.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ach-2.0.0-alpha3.tgz_1463598714063_0.8066022414714098"}},"1.1.0":{"name":"@ach/ach","version":"1.1.0","description":"NACHA ACH EFT File Parser/Editor/Formatter for CCD+ / PPD+ / CTX+","keywords":["eft","ach","nacha","ccd","ccd+","ppd","ppd+","parse","parser","format","formatter","reader","writer","json"],"main":"lib","bin":{"ach":"bin/ach.js"},"author":{"name":"Eli Doran","email":"eli+npm@elidoran.com"},"license":"MIT","scripts":{"compile":"coffee --bare --compile lib bin","clean":"rm -f ./bin/command.js ; find ./lib -name \"*.js\" -type f -delete","prepublish":"npm run compile","postpublish":"npm run clean","test":"mocha --compilers coffee:coffee-script/register --reporter spec --bail --check-leaks test/bin test/lib/**"},"repository":{"type":"git","url":"git://github.com/elidoran/node-ach.git"},"bugs":{"url":"http://github.com/elidoran/node-ach/issues"},"devDependencies":{"coffee-script":"^1.11.1","mocha":"^3.1.2"},"dependencies":{"each-part":"^0.9.0","requireg":"^0.1.6","strung":"^1.0.5"},"homepage":"https://github.com/elidoran/node-ach#readme","_id":"@ach/ach@1.1.0","_shasum":"70a11c002a08051a7c713976e8599f459ee85cfd","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.8.1","_npmUser":{"name":"elidoran","email":"eli+npm@elidoran.com"},"dist":{"shasum":"70a11c002a08051a7c713976e8599f459ee85cfd","tarball":"https://registry.npmjs.org/@ach/ach/-/ach-1.1.0.tgz","integrity":"sha512-seFb7FnooBsqUCyPseIFAMfUH5/YHc4sNsOl/LACtveiSN/XaPaNActqZbTnYT6j48D8ortFmi3+qu4OK2ywqQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAtCq1xmntBDF/tWy59grcnC+FWBh56heyVR1wPW8KtJAiATTn1cue4a/RxNB7u3Gj+uwWS0UaNJkpZHB6vSDDkbUg=="}]},"maintainers":[{"name":"ach","email":"eli+ach@elidoran.com"},{"name":"elidoran","email":"eli+npm@elidoran.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ach-1.1.0.tgz_1478572157568_0.5373877515085042"}}},"readme":"# NACHA ACH CCD+/PPD+ Formatter/Parser\n[![Build Status](https://travis-ci.org/elidoran/node-ach.svg?branch=master)](https://travis-ci.org/elidoran/node-ach)\n[![Dependency Status](https://gemnasium.com/badges/github.com/elidoran/node-ach.svg)](https://gemnasium.com/github.com/elidoran/node-ach)\n[![npm version](https://badge.fury.io/js/%40ach%2Fach.svg)](https://badge.fury.io/js/%40ach%2Fach)\n\nParses and formats NACHA ACH standard CCD+/PPD+ bank transaction files.\n\n## Install Options\n\n### Install CLI\n\n    npm install -g @ach/ach\n\n### Install Library\n\n    npm install @ach/ach --save\n\n# Table of Contents\n\n1. [Install Options](#install-options)\n    1. [Install CLI](#install-cli)\n    2. [Install Library](#install-library)\n2. [Use CLI](#use-cli)\n3. [Use API](#use-api)\n    1. [create()](#api-create)\n    2. [wrap()](#api-wrap)\n    3. [Using from().edit().to()](#using-fromeditto)\n    4. [from()](#api-from)\n    5. [edit()](#api-edit)\n    6. [to()](#api-to)\n    7. [Examples](#api-examples)\n4. [Future Plans](#future-plans)\n    1. [Additional Output Formats](#additional-output-formats)\n    2. [Additional Bank Formats](#additional-bank-formats)\n\n## Use CLI\n\n* Provide input to stdin and get output from stdout.\n* Both input and output formats default to 'ACH' when not provided.\n* Provide one or more transform scripts use in between parsing and formatting\n\n```sh\n# these are all the same\n# ach is both the CLI name and the default format\nach from ach to ach and edit with some.js\nach from ach to ach edit with some.js      # no 'and'\nach from ach to ach edit some.js           # no 'with'\nach from ach to ach some.js                # no 'edit'\nach to ach some.js                         # no 'from ach'\nach from ach some.js                       # or, no 'to ach'\nach some.js                                # only the edit script\n\n# short options\nach -i ach -o ach -e some.js\n\n# long options\nach --input ach --output ach --edit some.js\n\n# can input or output an ach file object in JSON\n# read an ACH file and output it as JSON\nach to json\n# read a JSON file and output it as ACH\nach from json\n\n# read a file as ACH, send it thru another transform, and output as ACH\nach edit some-transform.js\n\n# provide the content with OS specific commands to pipe it in and out\ncat file.ach | ach to json > file.json\ncat file.json | ach from json > file.ach\n```\n\nNote: when more formats are added all this will look better :)\n\n[Back to: Table of Contents](#table-of-contents)\n\n\n## Use API\n\n`ach` has three main functions to start with\n\n1. create() - used to generate an ACH file object with a series of calls\n2. wrap() - wraps an already built ACH file object to be used with create()'s API\n3. from() - used to start specifying a stream pipeline to parse/format\n\n[Back to: Table of Contents](#table-of-contents)\n\n\n### API: create()\n\n```coffeescript\nach = require('@ach/ach')\n\n# this shows chained functions, but, you can hold the returns in a variable to reuse\nachFile = ach.create\n  from: # the company generating the ACH file\n    name: 'Your Company'\n    # company tax ID. If the \"predetermined char\" isn't in front then\n    # a space is prepended\n    fein: '123456789'\n\n  for: # the bank the ACH file is being sent to\n    name: 'Our Bank' # they receive the file\n    routing: '123456789' # the routing number for the bank, with check digit\n\n  .ccd # a batch using CCD format\n    effectiveDate: '991231' # format: YYMMDD\n    description: 'Payment'  # or, Payroll, or whatever\n    # optional values\n    note: 'the \"discretionary data\"'\n    date: 'Mar 30'\n\n  .credit # send money to another company\n    name: 'Target Company'    # company receiving the money\n    account:                  # their bank account info\n      num: '135792468'\n      type: 'C'               # C - checking (default), S - Savings\n    routing: '987654321'      # their bank's routing number\n    amount: 12345             # amount in cents\n    # optional. CCD/PPD allows a single 'addenda' with an 80 character block\n    addenda: 'some addenda 80 chars long'\n\n  .credit # send money to another company\n    name: 'Another Company'   # company receiving the money\n    account:                  # their bank account info\n      num: '159260'\n      type: 'C'               # C - checking (default), S - Savings\n    routing: '987654321'      # their bank's routing number\n    amount: 13579             # amount in cents\n\n  .debit # take that money from your company\n    name: 'Your Company'      # your company sending the money\n    account:                  # your bank account info\n      num: '135792468'\n      type: 'C'               # C - checking (default), S - Savings\n    routing: '987654321'      # their bank's routing number\n    amount: 25924             # amount in cents\n    # optional. CCD/PPD allows a single 80 character 'addenda'\n    addenda: 'some addenda 80 chars long'\n\n  # same with a PPD batch.\n  # .ppd # a batch using PPD format\n  #   effectiveDate: '991231' # format: YYMMDD\n  #   description: 'Payroll'\n  #   # optional values\n  #   note: 'Some Employee'\n  #   date: 'Mar 30'\n\n# then you can send it to a stream or get it as a string.\n# 1. stream\nach.from(achFile).to process.stdout\nach.from(achFile).to someFileStream\n\n# 2. string\nach.from(achFile).to (string) -> console.log 'ACH File:\\n', string\n```\n\n[Back to: Table of Contents](#table-of-contents)\n\n## API: wrap()\n\n```coffeescript\nach = require '@ach/ach'\nachObject = getSomeAchObjectSomehow()\n\nach.wrap achObject\n  # then use the same API functions provided by ach.create()\n  .ccd {}\n  .credit {}\n  .debit {}\n\n# the `achObject` has all changes made by function calls\n```\n\n[Back to: Table of Contents](#table-of-contents)\n\n## Using from().edit().to()\n\nThe goal is to setup a pipeline of stream transforms which parse an input stream, optionally edit the parsed object, then format the object back into a string and output it.\n\nThere are variations to use an object as the source as well as provide the result as a string or object.\n\nThese are used by the ach CLI.\n\nAn example pipeline:\n\n1. a file reader as the 'source' stream\n2. 'ach' format stream parser (transform) which converts the file to an ACH object\n3. optionally, some editing transform provided by user which receives the object, edits it, and passes it on\n4. 'ach' format stream formatter (writer) which converts the object to a string\n5. the final writer, maybe a file writer\n\n[Back to: Table of Contents](#table-of-contents)\n\n### API: from()\n\nValid arguments:\n\n1. a string representing the input format\n2. a string as the source of content\n3. a Readable stream as the source of content\n4. an object with two optional properties\n\nThe object (#4) can have:\n\n* format - the name of the input format. currently only 'ach' and 'json' are available\n* source - the input source may be:\n    * stream - any Readable object, or process.stdin (the default)\n    * string - string content must be in a format compatible with a known parser\n    * object - an ACH object to send into the pipeline\n\n[Back to: Table of Contents](#table-of-contents)\n\n### API: edit()\n\nValid argument for `edit()` is an array. Array elements must be:\n\n  1. string - a path, relative to the current working directory, to a JavaScript or CoffeeScript file\n  2. a Transform class\n  3. an instance of a Transform\n  4. an object with implementation functions for Transform constructor\n\n[Back to: Table of Contents](#table-of-contents)\n\n### API: to()\n\nValid arguments:\n\n1. a string representing the output format\n2. a writable stream\n3. an object with two optional properties\n\nThe object (#3) can have:\n\n* format - the name of the output format. currently only 'ach' and 'json' are available\n* target - the output target may be:\n    * stream - a Writable object, or process.stdout (the default)\n    * function - a listener to receive either the object or string. If a format is specified then the listener receives a string in that format. Without a specified format it receives the ACH object.\n\n[Back to: Table of Contents](#table-of-contents)\n\n### API Examples\n\n```coffeescript\n# specify everything, the longest style:\ninput  = source: process.stdin, format: 'ach'\noutput = target: process.stdout, format: 'ach'\nach.from(input).to output\n# Note: the above are all defaults and can be left out.\n\n# the `source` and `target` properties can be: streams, strings, an ACH object\n# specify only a format by specifying it as a string\nach.from('json').to()\nach.from().to 'json'\n\n# specify the source content as a string:\nsomeString = getAchObjectAsString()\nach.from(someString).to 'json'\n# Note: it knows to do this because someString isn't a valid format\n\n# input from a file reader\ninputFile = fs.createReadStream 'some-file.ach', encoding:'utf8'\nach.from(inputFile).to(whatever)\n\n\n# basic trio  \nach.from('ach').edit(updateFileHeader).to 'json'\n```\n\n[Back to: Table of Contents](#table-of-contents)\n\n## Future Plans\n\n\n### Additional Output Formats\n\n[Back to: Table of Contents](#table-of-contents)\n\n1. 'english' - a human readable format\n1. JSON\n2. YAML\n3. XML\n\n\n### Additional Bank Formats\n\n[Back to: Table of Contents](#table-of-contents)\n\nThere are many more formats in the NACHA ACH standards.\n\n1. CTX - This is very similar to CCD/PPD. It allows many addendas using EDI X12 820 format.\n2. IAT - International\n3. ... there's more\n\n[Back to: Table of Contents](#table-of-contents)\n\n## MIT License\n","maintainers":[{"name":"ach","email":"eli+ach@elidoran.com"},{"name":"elidoran","email":"eli+npm@elidoran.com"}],"time":{"modified":"2022-06-12T14:16:01.990Z","created":"2016-05-01T09:47:01.800Z","1.0.0":"2016-05-01T09:47:01.800Z","1.0.2":"2016-05-02T06:39:13.856Z","1.0.3":"2016-05-04T16:04:46.304Z","2.0.0-alpha":"2016-05-18T18:26:38.048Z","2.0.0-alpha2":"2016-05-18T19:01:30.081Z","2.0.0-alpha3":"2016-05-18T19:11:56.349Z","1.1.0":"2016-11-08T02:29:18.138Z"},"homepage":"https://github.com/elidoran/node-ach#readme","keywords":["eft","ach","nacha","ccd","ccd+","ppd","ppd+","parse","parser","format","formatter","reader","writer","json"],"repository":{"type":"git","url":"git://github.com/elidoran/node-ach.git"},"author":{"name":"Eli Doran","email":"eli+npm@elidoran.com"},"bugs":{"url":"http://github.com/elidoran/node-ach/issues"},"license":"MIT","readmeFilename":"README.md"}